; LLVM IR from AdaptiveCpp/AdaptiveCpp :: tests/pcuda/pcuda_test_suite.ll (ZN5boost9unit_test9framework3runEmb)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.boost::unit_test::basic_cstring" = type { ptr, ptr }
%"class.boost::unit_test::test_case_counter" = type <{ %"class.boost::unit_test::test_tree_visitor", %"class.boost::unit_test::test_case_counter::readonly_property43", i8, [7 x i8] }>
%"class.boost::unit_test::test_tree_visitor" = type { ptr }
%"class.boost::unit_test::test_case_counter::readonly_property43" = type { %"class.boost::unit_test::readonly_property" }
%"class.boost::unit_test::readonly_property" = type { %"class.boost::unit_test::class_property" }
%"class.boost::unit_test::class_property" = type { i64 }
%"struct.boost::unit_test::framework::setup_error" = type { %"class.std::runtime_error" }
%"class.std::runtime_error" = type { %"class.std::exception", %"struct.std::__cow_string" }
%"class.std::exception" = type { ptr }
%"struct.std::__cow_string" = type { %union.anon.93 }
%union.anon.93 = type { ptr }
%"class.boost::unit_test::framework_init_observer_t" = type <{ %"class.boost::unit_test::test_observer", i8, [7 x i8] }>
%"class.boost::unit_test::test_observer" = type { ptr }
%"struct.boost::unit_test::framework::register_observer_helper" = type <{ ptr, i8, [7 x i8] }>
%"struct.boost::unit_test::for_each::static_any.134" = type { %"struct.std::_Rb_tree_const_iterator.135" }
%"struct.std::_Rb_tree_const_iterator.135" = type { ptr }
%"struct.mpl_::bool_" = type { i8 }
%"struct.boost::is_const.136" = type { i8 }
%"struct.boost::type.137" = type { i8 }
%"struct.boost::unit_test::ut_detail::test_unit_id_restore" = type { ptr, i64 }
%"class.boost::function.133" = type { %"class.boost::function0" }
%"class.boost::function0" = type { %"class.boost::function_base" }
%"class.boost::function_base" = type { ptr, %"union.boost::detail::function::function_buffer" }
%"union.boost::detail::function::function_buffer" = type { %"union.boost::detail::function::function_buffer_members" }
%"union.boost::detail::function::function_buffer_members" = type { %"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" }
%"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" = type { { i64, i64 }, ptr }
%"class.boost::_bi::bind_t.188" = type { %"class.boost::_mfi::mf2.189", %"class.boost::_bi::list3.190" }
%"class.boost::_mfi::mf2.189" = type { { i64, i64 } }
%"class.boost::_bi::list3.190" = type { %"struct.boost::_bi::storage3.191" }
%"struct.boost::_bi::storage3.191" = type { %"struct.boost::_bi::storage2.192", %"class.boost::_bi::value.196" }
%"struct.boost::_bi::storage2.192" = type { %"struct.boost::_bi::storage1.193", %"class.boost::_bi::value.195" }
%"struct.boost::_bi::storage1.193" = type { %"class.boost::_bi::value.194" }
%"class.boost::_bi::value.194" = type { ptr }
%"class.boost::_bi::value.195" = type { %"class.boost::unit_test::test_case_counter::readonly_property43" }
%"class.boost::_bi::value.196" = type { i64 }
%"class.std::vector.34" = type { %"struct.std::_Vector_base.35" }
%"struct.std::_Vector_base.35" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.197" = type { ptr }
%"class.std::allocator.36" = type { i8 }
%"struct.boost::unit_test::for_each::static_any" = type { %"struct.std::_Rb_tree_const_iterator" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"struct.boost::is_const" = type { i8 }
%"struct.boost::type.198" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.199" = type { ptr }
%"class.boost::shared_ptr.94" = type { ptr, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { ptr }
%"struct.boost::unit_test::framework::swap_on_delete" = type { ptr, ptr }
%"class.boost::unit_test::ut_detail::entry_value_collector" = type { i8 }
%"struct.boost::unit_test::log::begin" = type { %"class.boost::unit_test::basic_cstring", i64 }
%"class.boost::unit_test::lazy_ostream_impl" = type { %"class.boost::unit_test::lazy_ostream.base", ptr, ptr }
%"class.boost::unit_test::lazy_ostream.base" = type <{ ptr, i8 }>
%"class.boost::unit_test::lazy_ostream_impl.200" = type { %"class.boost::unit_test::lazy_ostream.base", ptr, ptr }
%"class.boost::unit_test::test_unit" = type { i32, %"class.boost::unit_test::basic_cstring", %"class.boost::unit_test::basic_cstring", i64, %"class.boost::unit_test::test_unit::readonly_property62", %"class.boost::unit_test::test_unit::readonly_property63", %"class.boost::unit_test::test_unit::readonly_property66", %"class.boost::unit_test::test_unit::readonly_property64", %"class.boost::unit_test::test_unit::readonly_property69", %"class.boost::unit_test::readwrite_property", %"class.boost::unit_test::readwrite_property", %"class.boost::unit_test::readwrite_property.20", %"class.boost::unit_test::readwrite_property.22", %"class.boost::unit_test::readwrite_property.23", %"class.boost::unit_test::readwrite_property.23", %"class.boost::unit_test::readwrite_property.22", %"class.boost::unit_test::readwrite_property.25", %"class.boost::unit_test::readwrite_property.32" }
%"class.boost::unit_test::test_unit::readonly_property62" = type { %"class.boost::unit_test::readonly_property" }
%"class.boost::unit_test::test_unit::readonly_property63" = type { %"class.boost::unit_test::readonly_property" }
%"class.boost::unit_test::test_unit::readonly_property66" = type { %"class.boost::unit_test::readonly_property.0" }
%"class.boost::unit_test::readonly_property.0" = type { %"class.boost::unit_test::class_property.1" }
%"class.boost::unit_test::class_property.1" = type { %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::unit_test::test_unit::readonly_property64" = type { %"class.boost::unit_test::readonly_property.5" }
%"class.boost::unit_test::readonly_property.5" = type { %"class.boost::unit_test::class_property.6" }
%"class.boost::unit_test::class_property.6" = type { %"class.std::vector.7" }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::unit_test::test_unit::readonly_property69" = type { %"class.boost::unit_test::readonly_property.12" }
%"class.boost::unit_test::readonly_property.12" = type { %"class.boost::unit_test::class_property.13" }
%"class.boost::unit_test::class_property.13" = type { %"class.std::vector.14" }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<boost::function<boost::test_tools::assertion_result (unsigned long)>, std::allocator<boost::function<boost::test_tools::assertion_result (unsigned long)>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::function<boost::test_tools::assertion_result (unsigned long)>, std::allocator<boost::function<boost::test_tools::assertion_result (unsigned long)>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::function<boost::test_tools::assertion_result (unsigned long)>, std::allocator<boost::function<boost::test_tools::assertion_result (unsigned long)>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::function<boost::test_tools::assertion_result (unsigned long)>, std::allocator<boost::function<boost::test_tools::assertion_result (unsigned long)>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::unit_test::readwrite_property" = type { %"class.boost::unit_test::class_property.19" }
%"class.boost::unit_test::class_property.19" = type { %"class.std::__cxx11::basic_string" }
%"class.boost::unit_test::readwrite_property.20" = type { %"class.boost::unit_test::class_property.21" }
%"class.boost::unit_test::class_property.21" = type { i32 }
%"class.boost::unit_test::readwrite_property.23" = type { %"class.boost::unit_test::class_property.24" }
%"class.boost::unit_test::class_property.24" = type { i32 }
%"class.boost::unit_test::readwrite_property.22" = type { %"class.boost::unit_test::class_property" }
%"class.boost::unit_test::readwrite_property.25" = type { %"class.boost::unit_test::class_property.26" }
%"class.boost::unit_test::class_property.26" = type { %"class.std::vector.27" }
%"class.std::vector.27" = type { %"struct.std::_Vector_base.28" }
%"struct.std::_Vector_base.28" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::decorator::base>, std::allocator<boost::shared_ptr<boost::unit_test::decorator::base>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::decorator::base>, std::allocator<boost::shared_ptr<boost::unit_test::decorator::base>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::decorator::base>, std::allocator<boost::shared_ptr<boost::unit_test::decorator::base>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::decorator::base>, std::allocator<boost::shared_ptr<boost::unit_test::decorator::base>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::unit_test::readwrite_property.32" = type { %"class.boost::unit_test::class_property.33" }
%"class.boost::unit_test::class_property.33" = type { %"class.std::vector.34" }
%"class.boost::unit_test::framework::state" = type { ptr, %"class.std::vector.100", i64, %"class.std::map.105", i64, i64, i8, %"class.std::set", %"class.std::vector.115", i32, %"class.std::set.120", %"class.boost::execution_monitor", %"class.std::map.126", %"class.boost::unit_test::runtime_config::stream_holder" }
%"class.std::vector.100" = type { %"struct.std::_Vector_base.101" }
%"struct.std::_Vector_base.101" = type { %"struct.std::_Vector_base<boost::unit_test::test_suite *, std::allocator<boost::unit_test::test_suite *>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::unit_test::test_suite *, std::allocator<boost::unit_test::test_suite *>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::unit_test::test_suite *, std::allocator<boost::unit_test::test_suite *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::unit_test::test_suite *, std::allocator<boost::unit_test::test_suite *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.105" = type { %"class.std::_Rb_tree.106" }
%"class.std::_Rb_tree.106" = type { %"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, boost::unit_test::test_unit *>, std::_Select1st<std::pair<const unsigned long, boost::unit_test::test_unit *>>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, boost::unit_test::test_unit *>, std::_Select1st<std::pair<const unsigned long, boost::unit_test::test_unit *>>, std::less<unsigned long>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.110" }
%"class.std::_Rb_tree.110" = type { %"struct.std::_Rb_tree<boost::unit_test::test_observer *, boost::unit_test::test_observer *, std::_Identity<boost::unit_test::test_observer *>, boost::unit_test::framework::state::priority_order>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<boost::unit_test::test_observer *, boost::unit_test::test_observer *, std::_Identity<boost::unit_test::test_observer *>, boost::unit_test::framework::state::priority_order>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.115" = type { %"struct.std::_Vector_base.116" }
%"struct.std::_Vector_base.116" = type { %"struct.std::_Vector_base<boost::unit_test::framework::state::context_frame, std::allocator<boost::unit_test::framework::state::context_frame>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::unit_test::framework::state::context_frame, std::allocator<boost::unit_test::framework::state::context_frame>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::unit_test::framework::state::context_frame, std::allocator<boost::unit_test::framework::state::context_frame>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::unit_test::framework::state::context_frame, std::allocator<boost::unit_test::framework::state::context_frame>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set.120" = type { %"class.std::_Rb_tree.121" }
%"class.std::_Rb_tree.121" = type { %"struct.std::_Rb_tree<boost::unit_test::global_fixture *, boost::unit_test::global_fixture *, std::_Identity<boost::unit_test::global_fixture *>, std::less<boost::unit_test::global_fixture *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<boost::unit_test::global_fixture *, boost::unit_test::global_fixture *, std::_Identity<boost::unit_test::global_fixture *>, std::less<boost::unit_test::global_fixture *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.boost::execution_monitor" = type { %"class.boost::unit_test::readwrite_property.97", %"class.boost::unit_test::readwrite_property.97", %"class.boost::unit_test::readwrite_property.22", %"class.boost::unit_test::readwrite_property.97", %"class.boost::unit_test::readwrite_property.20", %"class.boost::shared_ptr.99", %"class.boost::scoped_array" }
%"class.boost::unit_test::readwrite_property.97" = type { %"class.boost::unit_test::class_property.98" }
%"class.boost::unit_test::class_property.98" = type { i8 }
%"class.boost::shared_ptr.99" = type { ptr, %"class.boost::detail::shared_count" }
%"class.boost::scoped_array" = type { ptr }
%"class.std::map.126" = type { %"class.std::_Rb_tree.127" }
%"class.std::_Rb_tree.127" = type { %"struct.std::_Rb_tree<boost::unit_test::output_format, std::pair<const boost::unit_test::output_format, boost::unit_test::runtime_config::stream_holder>, std::_Select1st<std::pair<const boost::unit_test::output_format, boost::unit_test::runtime_config::stream_holder>>, std::less<boost::unit_test::output_format>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<boost::unit_test::output_format, std::pair<const boost::unit_test::output_format, boost::unit_test::runtime_config::stream_holder>, std::_Select1st<std::pair<const boost::unit_test::output_format, boost::unit_test::runtime_config::stream_holder>>, std::less<boost::unit_test::output_format>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.boost::unit_test::runtime_config::stream_holder" = type { %"class.boost::shared_ptr.132", ptr }
%"class.boost::shared_ptr.132" = type { ptr, %"class.boost::detail::shared_count" }

@_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE = external hidden global ptr, align 8
@_ZN5boost9unit_test12_GLOBAL__N_117unit_test_monitorE = external hidden global ptr, align 8
@_ZTIN5boost19execution_exceptionE = external dso_local constant { ptr, ptr }, align 8
@_ZN5boost9unit_test14runtime_config16btrt_run_filtersB5cxx11E = external dso_local global %"class.std::__cxx11::basic_string", align 8
@.str.133 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZN5boost9unit_test14runtime_config16btrt_random_seedB5cxx11E = external dso_local global %"class.std::__cxx11::basic_string", align 8
@.str.135 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [42 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost19execution_exception4whatEv(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::basic_cstring") align 8, ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(280) ptr @_ZN5boost9unit_test9framework3getEmNS0_14test_unit_typeE(i64 noundef, i32 noundef) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost9unit_test18traverse_test_treeEmRNS0_17test_tree_visitorEb(i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) #2

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

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

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

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

; Function Attrs: inlinehint mustprogress noreturn uwtable
declare dso_local void @_ZN5boost9unit_test9ut_detail15throw_exceptionINS0_9framework11setup_errorEEEvRKT_(ptr noundef nonnull align 8 dereferenceable(16)) #6

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

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv() #2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48)) #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEbRKNS1_15static_any_baseESC_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEbRKNS1_15static_any_baseESD_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_13test_observerESt3setIS4_NS0_9framework5state14priority_orderESaIS4_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISB_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost9unit_test14runtime_config3getISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_NS0_13basic_cstringIKcEE(ptr noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #4 align 2

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

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

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost9unit_test9framework16test_in_progressEv() #2

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

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

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #11

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5boost9unit_test9framework3runEmb(i64 noundef %0, i1 noundef zeroext %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i64, align 8
  %4 = alloca i8, align 1
  %5 = alloca %"class.boost::unit_test::test_case_counter", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"struct.boost::unit_test::framework::setup_error", align 8
  %9 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %10 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %15 = alloca %"class.boost::unit_test::framework_init_observer_t", align 8
  %16 = alloca %"struct.boost::unit_test::framework::register_observer_helper", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %19 = alloca %"struct.mpl_::bool_", align 1
  %20 = alloca %"struct.boost::is_const.136", align 1
  %21 = alloca %"struct.boost::is_const.136", align 1
  %22 = alloca ptr, align 8
  %23 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %24 = alloca %"struct.mpl_::bool_", align 1
  %25 = alloca %"struct.boost::is_const.136", align 1
  %26 = alloca %"struct.boost::is_const.136", align 1
  %27 = alloca i8, align 1
  %28 = alloca %"struct.mpl_::bool_", align 1
  %29 = alloca %"struct.boost::is_const.136", align 1
  %30 = alloca %"struct.boost::is_const.136", align 1
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca %"struct.boost::type.137", align 1
  %34 = alloca %"struct.mpl_::bool_", align 1
  %35 = alloca %"struct.boost::is_const.136", align 1
  %36 = alloca %"struct.boost::is_const.136", align 1
  %37 = alloca %"struct.boost::unit_test::ut_detail::test_unit_id_restore", align 8
  %38 = alloca i32, align 4
  %39 = alloca %"class.boost::function.133", align 8
  %40 = alloca %"class.boost::_bi::bind_t.188", align 8
  %41 = alloca %"class.boost::unit_test::test_case_counter::readonly_property43", align 8
  %42 = alloca { i64, i64 }, align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %45 = alloca %"struct.mpl_::bool_", align 1
  %46 = alloca %"struct.boost::is_const.136", align 1
  %47 = alloca %"struct.boost::is_const.136", align 1
  %48 = alloca ptr, align 8
  %49 = alloca %"class.std::vector.34", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.197", align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator.197", align 8
  %52 = alloca %"class.std::allocator.36", align 1
  %53 = alloca ptr, align 8
  %54 = alloca %"struct.boost::unit_test::for_each::static_any", align 8
  %55 = alloca %"struct.mpl_::bool_", align 1
  %56 = alloca %"struct.boost::is_const", align 1
  %57 = alloca %"struct.boost::is_const", align 1
  %58 = alloca ptr, align 8
  %59 = alloca %"struct.boost::unit_test::for_each::static_any", align 8
  %60 = alloca %"struct.mpl_::bool_", align 1
  %61 = alloca %"struct.boost::is_const", align 1
  %62 = alloca %"struct.boost::is_const", align 1
  %63 = alloca i8, align 1
  %64 = alloca %"struct.mpl_::bool_", align 1
  %65 = alloca %"struct.boost::is_const", align 1
  %66 = alloca %"struct.boost::is_const", align 1
  %67 = alloca ptr, align 8
  %68 = alloca %"struct.boost::type.198", align 1
  %69 = alloca %"struct.mpl_::bool_", align 1
  %70 = alloca %"struct.boost::is_const", align 1
  %71 = alloca %"struct.boost::is_const", align 1
  %72 = alloca %"class.__gnu_cxx::__normal_iterator.199", align 8
  %73 = alloca %"class.__gnu_cxx::__normal_iterator.197", align 8
  %74 = alloca %"class.boost::shared_ptr.94", align 8
  %75 = alloca %"class.__gnu_cxx::__normal_iterator.197", align 8
  %76 = alloca %"struct.mpl_::bool_", align 1
  %77 = alloca %"struct.boost::is_const", align 1
  %78 = alloca %"struct.boost::is_const", align 1
  %79 = alloca %"struct.boost::unit_test::framework::swap_on_delete", align 8
  %80 = alloca i32, align 4
  %81 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %82 = alloca %"class.boost::unit_test::ut_detail::entry_value_collector", align 1
  %83 = alloca %"struct.boost::unit_test::log::begin", align 8
  %84 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %85 = alloca %"class.boost::unit_test::lazy_ostream_impl", align 8
  %86 = alloca %"class.boost::unit_test::lazy_ostream_impl.200", align 8
  %87 = alloca ptr, align 8
  %88 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %89 = alloca %"struct.mpl_::bool_", align 1
  %90 = alloca %"struct.boost::is_const.136", align 1
  %91 = alloca %"struct.boost::is_const.136", align 1
  %92 = alloca ptr, align 8
  %93 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %94 = alloca %"struct.mpl_::bool_", align 1
  %95 = alloca %"struct.boost::is_const.136", align 1
  %96 = alloca %"struct.boost::is_const.136", align 1
  %97 = alloca i8, align 1
  %98 = alloca %"struct.mpl_::bool_", align 1
  %99 = alloca %"struct.boost::is_const.136", align 1
  %100 = alloca %"struct.boost::is_const.136", align 1
  %101 = alloca %"struct.mpl_::bool_", align 1
  %102 = alloca %"struct.boost::is_const.136", align 1
  %103 = alloca %"struct.boost::is_const.136", align 1
  %104 = alloca ptr, align 8
  %105 = alloca %"struct.boost::type.137", align 1
  %106 = alloca %"struct.mpl_::bool_", align 1
  %107 = alloca %"struct.boost::is_const.136", align 1
  %108 = alloca %"struct.boost::is_const.136", align 1
  %109 = alloca %"struct.boost::unit_test::ut_detail::test_unit_id_restore", align 8
  %110 = alloca %"struct.boost::unit_test::framework::setup_error", align 8
  %111 = alloca %"class.boost::unit_test::basic_cstring", align 8
  store i64 %0, ptr %3, align 8, !tbaa !5
  %112 = zext i1 %1 to i8
  store i8 %112, ptr %4, align 1, !tbaa !9
  %113 = load i64, ptr %3, align 8, !tbaa !5
  %114 = icmp eq i64 %113, 4294967295
  br i1 %114, label %115, label %121

115:                                              ; preds = %2
  %116 = call noundef nonnull align 8 dereferenceable(400) ptr @_ZN5boost9unit_test9framework17master_test_suiteEv()
  %117 = getelementptr inbounds i8, ptr %116, i64 8
  %118 = getelementptr inbounds %"class.boost::unit_test::test_unit", ptr %117, i32 0, i32 4
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK5boost9unit_test14class_propertyImEcvRKmEv(ptr noundef nonnull align 8 dereferenceable(8) %118)
  %120 = load i64, ptr %119, align 8, !tbaa !5
  store i64 %120, ptr %3, align 8, !tbaa !5
  br label %121

121:                                              ; preds = %115, %2
  %122 = call noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
  %123 = load i64, ptr %3, align 8, !tbaa !5
  call void @_ZN5boost9unit_test9framework5state17deduce_run_statusEm(ptr noundef nonnull align 8 dereferenceable(360) %122, i64 noundef %123)
  call void @llvm.lifetime.start.p0(i64 24, ptr %5) #12
  call void @_ZN5boost9unit_test17test_case_counterC2Eb(ptr noundef nonnull align 8 dereferenceable(17) %5, i1 noundef zeroext false)
  %124 = load i64, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test18traverse_test_treeEmRNS0_17test_tree_visitorEb(i64 noundef %124, ptr noundef nonnull align 8 dereferenceable(8) %5, i1 noundef zeroext false)
          to label %125 unwind label %132

125:                                              ; preds = %121
  %126 = getelementptr inbounds %"class.boost::unit_test::test_case_counter", ptr %5, i32 0, i32 1
  %127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK5boost9unit_test14class_propertyImEcvRKmEv(ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %128 unwind label %132

128:                                              ; preds = %125
  %129 = load i64, ptr %127, align 8, !tbaa !5
  %130 = icmp ne i64 %129, 0
  br i1 %130, label %131, label %136

131:                                              ; preds = %128
  br label %157

132:                                              ; preds = %125, %121
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %6, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %7, align 4
  br label %931

136:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #12
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(32) @_ZN5boost9unit_test14runtime_config16btrt_run_filtersB5cxx11E)
          to label %137 unwind label %148

137:                                              ; preds = %136
  %138 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost9unit_test14runtime_config3getISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_NS0_13basic_cstringIKcEE(ptr noundef %10)
          to label %139 unwind label %148

139:                                              ; preds = %137
  %140 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %138) #12
  br i1 %140, label %141, label %143

141:                                              ; preds = %139
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef @.str.133, i64 noundef 18)
          to label %142 unwind label %148

142:                                              ; preds = %141
  br label %145

143:                                              ; preds = %139
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef @.str.134, i64 noundef 61)
          to label %144 unwind label %148

144:                                              ; preds = %143
  br label %145

145:                                              ; preds = %144, %142
  invoke void @_ZN5boost9unit_test9framework11setup_errorC2ENS0_13basic_cstringIKcEE(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef %9)
          to label %146 unwind label %148

146:                                              ; preds = %145
  invoke void @_ZN5boost9unit_test9ut_detail15throw_exceptionINS0_9framework11setup_errorEEEvRKT_(ptr noundef nonnull align 8 dereferenceable(16) %8) #13
          to label %147 unwind label %152

147:                                              ; preds = %146
  unreachable

148:                                              ; preds = %145, %143, %141, %137, %136
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %6, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %7, align 4
  br label %156

152:                                              ; preds = %146
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %6, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %7, align 4
  call void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #12
  br label %156

156:                                              ; preds = %152, %148
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #12
  br label %931

157:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #12
  %158 = invoke noundef zeroext i1 @_ZN5boost9unit_test9framework16test_in_progressEv()
          to label %159 unwind label %195

159:                                              ; preds = %157
  %160 = zext i1 %158 to i8
  store i8 %160, ptr %11, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #12
  %161 = load i8, ptr %4, align 1, !tbaa !9, !range !11, !noundef !12
  %162 = trunc i8 %161 to i1
  br i1 %162, label %163, label %167

163:                                              ; preds = %159
  %164 = load i8, ptr %11, align 1, !tbaa !9, !range !11, !noundef !12
  %165 = trunc i8 %164 to i1
  %166 = xor i1 %165, true
  br label %167

167:                                              ; preds = %163, %159
  %168 = phi i1 [ true, %159 ], [ %166, %163 ]
  %169 = zext i1 %168 to i8
  store i8 %169, ptr %12, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #12
  store i8 1, ptr %13, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #12
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %170 unwind label %199

170:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #12
  call void @_ZN5boost9unit_test25framework_init_observer_tC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %15) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #12
  invoke void @_ZN5boost9unit_test9framework24register_observer_helperC2ERNS0_13test_observerE(ptr noundef nonnull align 8 dereferenceable(9) %16, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %171 unwind label %203

171:                                              ; preds = %170
  %172 = load i8, ptr %12, align 1, !tbaa !9, !range !11, !noundef !12
  %173 = trunc i8 %172 to i1
  br i1 %173, label %174, label %428

174:                                              ; preds = %171
  %175 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %176 unwind label %207

176:                                              ; preds = %174
  %177 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %175, i32 0, i32 6
  store i8 0, ptr %177, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #12
  %178 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %179 unwind label %211

179:                                              ; preds = %176
  %180 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %178, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #12
  %181 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %182 unwind label %215

182:                                              ; preds = %179
  %183 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %181, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %183)
          to label %184 unwind label %215

184:                                              ; preds = %182
  %185 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %186 unwind label %215

186:                                              ; preds = %184
  %187 = invoke ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %180)
          to label %188 unwind label %215

188:                                              ; preds = %186
  %189 = getelementptr inbounds %"struct.boost::unit_test::for_each::static_any.134", ptr %18, i32 0, i32 0
  %190 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.135", ptr %189, i32 0, i32 0
  store ptr %187, ptr %190, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  store ptr %18, ptr %17, align 8, !tbaa !60
  %191 = load ptr, ptr %17, align 8, !tbaa !60
  %192 = invoke noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %193 unwind label %219

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

194:                                              ; preds = %193
  br label %425

195:                                              ; preds = %157
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %6, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %7, align 4
  br label %930

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

203:                                              ; preds = %170
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %6, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %7, align 4
  br label %928

207:                                              ; preds = %909, %900, %729, %725, %724, %721, %719, %428, %174
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %6, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %7, align 4
  br label %927

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

215:                                              ; preds = %186, %184, %182, %179
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %6, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  br label %427

219:                                              ; preds = %188
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %6, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %7, align 4
  br label %426

223:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #12
  %224 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %225 unwind label %241

225:                                              ; preds = %223
  %226 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %224, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #12
  %227 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %228 unwind label %245

228:                                              ; preds = %225
  %229 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %227, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %229)
          to label %230 unwind label %245

230:                                              ; preds = %228
  %231 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %232 unwind label %245

232:                                              ; preds = %230
  %233 = invoke ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %226)
          to label %234 unwind label %245

234:                                              ; preds = %232
  %235 = getelementptr inbounds %"struct.boost::unit_test::for_each::static_any.134", ptr %23, i32 0, i32 0
  %236 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.135", ptr %235, i32 0, i32 0
  store ptr %233, ptr %236, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #12
  store ptr %23, ptr %22, align 8, !tbaa !60
  %237 = load ptr, ptr %22, align 8, !tbaa !60
  %238 = invoke noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %237)
          to label %239 unwind label %249

239:                                              ; preds = %234
  br i1 %238, label %240, label %253

240:                                              ; preds = %239
  br label %422

241:                                              ; preds = %223
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %6, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %7, align 4
  br label %424

245:                                              ; preds = %232, %230, %228, %225
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %6, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #12
  br label %424

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

253:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #12
  store i8 1, ptr %27, align 1, !tbaa !9
  br label %254

254:                                              ; preds = %415, %253
  %255 = load i8, ptr %27, align 1, !tbaa !9, !range !11, !noundef !12
  %256 = trunc i8 %255 to i1
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #12
  br i1 %256, label %257, label %272

257:                                              ; preds = %254
  %258 = load ptr, ptr %17, align 8, !tbaa !60
  %259 = load ptr, ptr %22, align 8, !tbaa !60
  %260 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %261 unwind label %275

261:                                              ; preds = %257
  %262 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %260, i32 0, i32 7
  %263 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %264 unwind label %279

264:                                              ; preds = %261
  %265 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %263, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %265)
          to label %266 unwind label %279

266:                                              ; preds = %264
  %267 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %268 unwind label %279

268:                                              ; preds = %266
  %269 = invoke noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEbRKNS1_15static_any_baseESD_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %258, ptr noundef nonnull align 1 dereferenceable(1) %259, ptr noundef nonnull align 8 dereferenceable(48) %262)
          to label %270 unwind label %279

270:                                              ; preds = %268
  %271 = xor i1 %269, true
  br label %272

272:                                              ; preds = %270, %254
  %273 = phi i1 [ false, %254 ], [ %271, %270 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #12
  br i1 %273, label %283, label %274

274:                                              ; preds = %272
  store i32 2, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #12
  br label %421

275:                                              ; preds = %399, %257
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %6, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %7, align 4
  br label %420

279:                                              ; preds = %268, %266, %264, %261
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %6, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #12
  br label %420

283:                                              ; preds = %272
  store i8 0, ptr %27, align 1, !tbaa !9
  br i1 false, label %284, label %285

284:                                              ; preds = %283
  br label %395

285:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #12
  %286 = load ptr, ptr %17, align 8, !tbaa !60
  %287 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %288 unwind label %303

288:                                              ; preds = %285
  %289 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %287, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #12
  %290 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %291 unwind label %307

291:                                              ; preds = %288
  %292 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %290, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %292)
          to label %293 unwind label %307

293:                                              ; preds = %291
  %294 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %295 unwind label %307

295:                                              ; preds = %293
  %296 = invoke noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_13test_observerESt3setIS4_NS0_9framework5state14priority_orderESaIS4_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISB_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %286, ptr noundef nonnull align 8 dereferenceable(48) %289)
          to label %297 unwind label %307

297:                                              ; preds = %295
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #12
  store ptr %296, ptr %32, align 8, !tbaa !60
  br label %298

298:                                              ; preds = %386, %297
  %299 = load i8, ptr %27, align 1, !tbaa !9, !range !11, !noundef !12
  %300 = trunc i8 %299 to i1
  %301 = xor i1 %300, true
  br i1 %301, label %311, label %302

302:                                              ; preds = %298
  store i32 5, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #12
  br label %394

303:                                              ; preds = %285
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %6, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %7, align 4
  br label %393

307:                                              ; preds = %295, %293, %291, %288
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %6, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #12
  br label %393

311:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #12
  %312 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %313 unwind label %339

313:                                              ; preds = %311
  %314 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %312, i32 0, i32 2
  %315 = load i64, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreC2ERmm(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(8) %314, i64 noundef %315)
          to label %316 unwind label %339

316:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #12
  %317 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_117unit_test_monitorE, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #12
  %318 = load ptr, ptr %32, align 8, !tbaa !60
  %319 = getelementptr inbounds %"class.boost::unit_test::test_case_counter", ptr %5, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %319, i64 8, i1 false)
  %320 = load i64, ptr %3, align 8, !tbaa !5
  store { i64, i64 } { i64 1, i64 0 }, ptr %42, align 8, !tbaa !61
  %321 = getelementptr inbounds { i64, i64 }, ptr %42, i32 0, i32 0
  %322 = load i64, ptr %321, align 8
  %323 = getelementptr inbounds { i64, i64 }, ptr %42, i32 0, i32 1
  %324 = load i64, ptr %323, align 8
  %325 = getelementptr inbounds %"class.boost::unit_test::test_case_counter::readonly_property43", ptr %41, i32 0, i32 0
  %326 = getelementptr inbounds %"class.boost::unit_test::readonly_property", ptr %325, i32 0, i32 0
  %327 = getelementptr inbounds %"class.boost::unit_test::class_property", ptr %326, i32 0, i32 0
  %328 = load i64, ptr %327, align 8
  invoke void @_ZN5boost4bindIvNS_9unit_test13test_observerEmmPS2_NS1_17test_case_counter19readonly_property43EmEENS_3_bi6bind_tIT_NS_4_mfi3mf2IS8_T0_T1_T2_EENS6_9list_av_3IT3_T4_T5_E4typeEEEMSB_FS8_SC_SD_ESG_SH_SI_(ptr dead_on_unwind writable sret(%"class.boost::_bi::bind_t.188") align 8 %40, i64 %322, i64 %324, ptr noundef %318, i64 %328, i64 noundef %320)
          to label %329 unwind label %343

329:                                              ; preds = %316
  invoke void @_ZN5boost8functionIFvvEEC2INS_3_bi6bind_tIvNS_4_mfi3mf2IvNS_9unit_test13test_observerEmmEENS4_5list3INS4_5valueIPS9_EENSC_INS8_17test_case_counter19readonly_property43EEENSC_ImEEEEEEEET_NS_10enable_if_IXntsr11is_integralISL_EE5valueEiE4typeE(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef byval(%"class.boost::_bi::bind_t.188") align 8 %40, i32 noundef 0)
          to label %330 unwind label %343

330:                                              ; preds = %329
  %331 = invoke noundef i32 @_ZN5boost9unit_test19unit_test_monitor_t21execute_and_translateERKNS_8functionIFvvEEEm(ptr noundef nonnull align 8 dereferenceable(48) %317, ptr noundef nonnull align 8 dereferenceable(32) %39, i64 noundef 0)
          to label %332 unwind label %347

332:                                              ; preds = %330
  call void @_ZN5boost9function0IvED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #12
  store i32 %331, ptr %38, align 4, !tbaa !62
  %333 = load i8, ptr %13, align 1, !tbaa !9, !range !11, !noundef !12
  %334 = trunc i8 %333 to i1
  br i1 %334, label %335, label %362

335:                                              ; preds = %332
  %336 = load i32, ptr %38, align 4, !tbaa !62
  %337 = icmp ne i32 %336, 0
  br i1 %337, label %338, label %352

338:                                              ; preds = %335
  store i8 0, ptr %13, align 1, !tbaa !9
  br label %361

339:                                              ; preds = %313, %311
  %340 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5boost19execution_exceptionE
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %6, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %7, align 4
  br label %364

343:                                              ; preds = %329, %316
  %344 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5boost19execution_exceptionE
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %6, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %7, align 4
  br label %351

347:                                              ; preds = %330
  %348 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5boost19execution_exceptionE
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %6, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %7, align 4
  call void @_ZN5boost9function0IvED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #12
  br label %351

351:                                              ; preds = %347, %343
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #12
  br label %363

352:                                              ; preds = %335
  %353 = invoke noundef zeroext i1 @_ZNK5boost9unit_test25framework_init_observer_t10has_failedEv(ptr noundef nonnull align 8 dereferenceable(9) %15)
          to label %354 unwind label %356

354:                                              ; preds = %352
  br i1 %353, label %355, label %360

355:                                              ; preds = %354
  store i8 0, ptr %13, align 1, !tbaa !9
  br label %360

356:                                              ; preds = %352
  %357 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5boost19execution_exceptionE
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %6, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %7, align 4
  br label %363

360:                                              ; preds = %355, %354
  br label %361

361:                                              ; preds = %360, %338
  br label %362

362:                                              ; preds = %361, %332
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #12
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #12
  br label %385

363:                                              ; preds = %356, %351
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #12
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #12
  br label %364

364:                                              ; preds = %363, %339
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #12
  br label %365

365:                                              ; preds = %364
  %366 = load i32, ptr %7, align 4
  %367 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN5boost19execution_exceptionE) #12
  %368 = icmp eq i32 %366, %367
  br i1 %368, label %369, label %393

369:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #12
  %370 = load ptr, ptr %6, align 8
  %371 = call ptr @__cxa_begin_catch(ptr %370) #12
  store ptr %371, ptr %43, align 8
  %372 = load i8, ptr %13, align 1, !tbaa !9, !range !11, !noundef !12
  %373 = trunc i8 %372 to i1
  br i1 %373, label %374, label %383

374:                                              ; preds = %369
  store i8 0, ptr %13, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #12
  %375 = load ptr, ptr %43, align 8, !tbaa !60
  invoke void @_ZNK5boost19execution_exception4whatEv(ptr dead_on_unwind writable sret(%"class.boost::unit_test::basic_cstring") align 8 %44, ptr noundef nonnull align 8 dereferenceable(64) %375)
          to label %376 unwind label %379

376:                                              ; preds = %374
  %377 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost9unit_test13basic_cstringIKcEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %378 unwind label %379

378:                                              ; preds = %376
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #12
  br label %383

379:                                              ; preds = %376, %374
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %6, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #12
  invoke void @__cxa_end_catch()
          to label %391 unwind label %937

383:                                              ; preds = %378, %369
  invoke void @__cxa_end_catch()
          to label %384 unwind label %387

384:                                              ; preds = %383
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #12
  br label %385

385:                                              ; preds = %384, %362
  br label %386

386:                                              ; preds = %385
  store i8 1, ptr %27, align 1, !tbaa !9
  br label %298, !llvm.loop !64

387:                                              ; preds = %383
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %6, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %7, align 4
  br label %392

391:                                              ; preds = %379
  br label %392

392:                                              ; preds = %391, %387
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #12
  br label %393

393:                                              ; preds = %392, %365, %307, %303
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #12
  br label %420

394:                                              ; preds = %302
  br label %395

395:                                              ; preds = %394, %284
  br label %396

396:                                              ; preds = %395
  %397 = load i8, ptr %27, align 1, !tbaa !9, !range !11, !noundef !12
  %398 = trunc i8 %397 to i1
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #12
  br i1 %398, label %399, label %411

399:                                              ; preds = %396
  %400 = load ptr, ptr %17, align 8, !tbaa !60
  %401 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %402 unwind label %275

402:                                              ; preds = %399
  %403 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %401, i32 0, i32 7
  %404 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %405 unwind label %416

405:                                              ; preds = %402
  %406 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %404, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %406)
          to label %407 unwind label %416

407:                                              ; preds = %405
  %408 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %409 unwind label %416

409:                                              ; preds = %407
  invoke void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %400, ptr noundef nonnull align 8 dereferenceable(48) %403)
          to label %410 unwind label %416

410:                                              ; preds = %409
  br label %415

411:                                              ; preds = %396
  %412 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %413 unwind label %416

413:                                              ; preds = %411
  %414 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %412, i32 0, i32 7
  br label %415

415:                                              ; preds = %413, %410
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #12
  br label %254, !llvm.loop !66

416:                                              ; preds = %411, %409, %407, %405, %402
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %6, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #12
  br label %420

420:                                              ; preds = %416, %393, %279, %275
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #12
  br label %423

421:                                              ; preds = %274
  br label %422

422:                                              ; preds = %421, %240
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #12
  br label %425

423:                                              ; preds = %420, %249
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  br label %424

424:                                              ; preds = %423, %245, %241
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #12
  br label %426

425:                                              ; preds = %422, %194
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  br label %428

426:                                              ; preds = %424, %219
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  br label %427

427:                                              ; preds = %426, %215, %211
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  br label %927

428:                                              ; preds = %425, %171
  invoke void @_ZN5boost9unit_test9framework24register_observer_helper14deregister_obsEv(ptr noundef nonnull align 8 dereferenceable(9) %16)
          to label %429 unwind label %207

429:                                              ; preds = %428
  %430 = load i8, ptr %13, align 1, !tbaa !9, !range !11, !noundef !12
  %431 = trunc i8 %430 to i1
  br i1 %431, label %432, label %719

432:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #12
  %433 = load i64, ptr %3, align 8, !tbaa !5
  %434 = invoke noundef nonnull align 8 dereferenceable(280) ptr @_ZN5boost9unit_test9framework3getEmNS0_14test_unit_typeE(i64 noundef %433, i32 noundef 17)
          to label %435 unwind label %468

435:                                              ; preds = %432
  store ptr %434, ptr %48, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #12
  %436 = load ptr, ptr %48, align 8, !tbaa !60
  %437 = getelementptr inbounds %"class.boost::unit_test::test_unit", ptr %436, i32 0, i32 17
  %438 = getelementptr inbounds %"class.boost::unit_test::class_property.33", ptr %437, i32 0, i32 0
  %439 = call ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %438) #12
  %440 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.197", ptr %50, i32 0, i32 0
  store ptr %439, ptr %440, align 8
  %441 = load ptr, ptr %48, align 8, !tbaa !60
  %442 = getelementptr inbounds %"class.boost::unit_test::test_unit", ptr %441, i32 0, i32 17
  %443 = getelementptr inbounds %"class.boost::unit_test::class_property.33", ptr %442, i32 0, i32 0
  %444 = call ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %443) #12
  %445 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.197", ptr %51, i32 0, i32 0
  store ptr %444, ptr %445, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #12
  call void @_ZNSaIN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #12
  %446 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.197", ptr %50, i32 0, i32 0
  %447 = load ptr, ptr %446, align 8
  %448 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.197", ptr %51, i32 0, i32 0
  %449 = load ptr, ptr %448, align 8
  invoke void @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EEC2IN9__gnu_cxx17__normal_iteratorIPS4_S6_EEvEET_SC_RKS5_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr %447, ptr %449, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %450 unwind label %472

450:                                              ; preds = %435
  call void @_ZNSt15__new_allocatorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #12
  %451 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %452 unwind label %476

452:                                              ; preds = %450
  %453 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %451, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #12
  %454 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %455 unwind label %480

455:                                              ; preds = %452
  %456 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %454, i32 0, i32 10
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %456)
          to label %457 unwind label %480

457:                                              ; preds = %455
  %458 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %459 unwind label %480

459:                                              ; preds = %457
  %460 = invoke ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %453)
          to label %461 unwind label %480

461:                                              ; preds = %459
  %462 = getelementptr inbounds %"struct.boost::unit_test::for_each::static_any", ptr %54, i32 0, i32 0
  %463 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %462, i32 0, i32 0
  store ptr %460, ptr %463, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #12
  store ptr %54, ptr %53, align 8, !tbaa !60
  %464 = load ptr, ptr %53, align 8, !tbaa !60
  %465 = invoke noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %464)
          to label %466 unwind label %484

466:                                              ; preds = %461
  br i1 %465, label %467, label %488

467:                                              ; preds = %466
  br label %641

468:                                              ; preds = %432
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %6, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %7, align 4
  br label %718

472:                                              ; preds = %435
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %6, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #12
  br label %717

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

480:                                              ; preds = %459, %457, %455, %452
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %6, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #12
  br label %655

484:                                              ; preds = %461
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %6, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %7, align 4
  br label %654

488:                                              ; preds = %466
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #12
  %489 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %490 unwind label %506

490:                                              ; preds = %488
  %491 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %489, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #12
  %492 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %493 unwind label %510

493:                                              ; preds = %490
  %494 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %492, i32 0, i32 10
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %494)
          to label %495 unwind label %510

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %497 unwind label %510

497:                                              ; preds = %495
  %498 = invoke ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %491)
          to label %499 unwind label %510

499:                                              ; preds = %497
  %500 = getelementptr inbounds %"struct.boost::unit_test::for_each::static_any", ptr %59, i32 0, i32 0
  %501 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %500, i32 0, i32 0
  store ptr %498, ptr %501, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #12
  store ptr %59, ptr %58, align 8, !tbaa !60
  %502 = load ptr, ptr %58, align 8, !tbaa !60
  %503 = invoke noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %502)
          to label %504 unwind label %514

504:                                              ; preds = %499
  br i1 %503, label %505, label %518

505:                                              ; preds = %504
  br label %638

506:                                              ; preds = %488
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %6, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %7, align 4
  br label %640

510:                                              ; preds = %497, %495, %493, %490
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %6, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #12
  br label %640

514:                                              ; preds = %499
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %6, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %7, align 4
  br label %639

518:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #12
  store i8 1, ptr %63, align 1, !tbaa !9
  br label %519

519:                                              ; preds = %631, %518
  %520 = load i8, ptr %63, align 1, !tbaa !9, !range !11, !noundef !12
  %521 = trunc i8 %520 to i1
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #12
  br i1 %521, label %522, label %537

522:                                              ; preds = %519
  %523 = load ptr, ptr %53, align 8, !tbaa !60
  %524 = load ptr, ptr %58, align 8, !tbaa !60
  %525 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %526 unwind label %540

526:                                              ; preds = %522
  %527 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %525, i32 0, i32 10
  %528 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %529 unwind label %544

529:                                              ; preds = %526
  %530 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %528, i32 0, i32 10
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %530)
          to label %531 unwind label %544

531:                                              ; preds = %529
  %532 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %533 unwind label %544

533:                                              ; preds = %531
  %534 = invoke noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEbRKNS1_15static_any_baseESC_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %523, ptr noundef nonnull align 1 dereferenceable(1) %524, ptr noundef nonnull align 8 dereferenceable(48) %527)
          to label %535 unwind label %544

535:                                              ; preds = %533
  %536 = xor i1 %534, true
  br label %537

537:                                              ; preds = %535, %519
  %538 = phi i1 [ false, %519 ], [ %536, %535 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #12
  br i1 %538, label %548, label %539

539:                                              ; preds = %537
  store i32 8, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #12
  br label %637

540:                                              ; preds = %615, %522
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %6, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %7, align 4
  br label %636

544:                                              ; preds = %533, %531, %529, %526
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %6, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #12
  br label %636

548:                                              ; preds = %537
  store i8 0, ptr %63, align 1, !tbaa !9
  br i1 false, label %549, label %550

549:                                              ; preds = %548
  br label %611

550:                                              ; preds = %548
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #12
  %551 = load ptr, ptr %53, align 8, !tbaa !60
  %552 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %553 unwind label %568

553:                                              ; preds = %550
  %554 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %552, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #12
  %555 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %556 unwind label %572

556:                                              ; preds = %553
  %557 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %555, i32 0, i32 10
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %557)
          to label %558 unwind label %572

558:                                              ; preds = %556
  %559 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %560 unwind label %572

560:                                              ; preds = %558
  %561 = invoke noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_17test_unit_fixtureESt3setIPNS0_14global_fixtureESt4lessIS7_ESaIS7_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISC_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %551, ptr noundef nonnull align 8 dereferenceable(48) %554)
          to label %562 unwind label %572

562:                                              ; preds = %560
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #12
  store ptr %561, ptr %67, align 8, !tbaa !60
  br label %563

563:                                              ; preds = %595, %562
  %564 = load i8, ptr %63, align 1, !tbaa !9, !range !11, !noundef !12
  %565 = trunc i8 %564 to i1
  %566 = xor i1 %565, true
  br i1 %566, label %576, label %567

567:                                              ; preds = %563
  store i32 11, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #12
  br label %610

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

572:                                              ; preds = %560, %558, %556, %553
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %6, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #12
  br label %609

576:                                              ; preds = %563
  %577 = load ptr, ptr %48, align 8, !tbaa !60
  %578 = getelementptr inbounds %"class.boost::unit_test::test_unit", ptr %577, i32 0, i32 17
  %579 = getelementptr inbounds %"class.boost::unit_test::class_property.33", ptr %578, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #12
  %580 = load ptr, ptr %48, align 8, !tbaa !60
  %581 = getelementptr inbounds %"class.boost::unit_test::test_unit", ptr %580, i32 0, i32 17
  %582 = getelementptr inbounds %"class.boost::unit_test::class_property.33", ptr %581, i32 0, i32 0
  %583 = call ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %582) #12
  %584 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.197", ptr %73, i32 0, i32 0
  store ptr %583, ptr %584, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost10shared_ptrINS1_9unit_test17test_unit_fixtureEEESt6vectorIS5_SaIS5_EEEC2IPS5_vEERKNS0_IT_SA_EE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %73) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #12
  %585 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #14
          to label %586 unwind label %596

586:                                              ; preds = %576
  %587 = load ptr, ptr %67, align 8, !tbaa !60
  invoke void @_ZN5boost9unit_test9framework4impl21global_fixture_handleC2EPNS0_17test_unit_fixtureE(ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef %587)
          to label %588 unwind label %600

588:                                              ; preds = %586
  invoke void @_ZN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEEC2INS1_9framework4impl21global_fixture_handleEEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef %585)
          to label %589 unwind label %596

589:                                              ; preds = %588
  %590 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.199", ptr %72, i32 0, i32 0
  %591 = load ptr, ptr %590, align 8
  %592 = invoke ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE6insertEN9__gnu_cxx17__normal_iteratorIPKS4_S6_EEOS4_(ptr noundef nonnull align 8 dereferenceable(24) %579, ptr %591, ptr noundef nonnull align 8 dereferenceable(16) %74)
          to label %593 unwind label %604

593:                                              ; preds = %589
  %594 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.197", ptr %75, i32 0, i32 0
  store ptr %592, ptr %594, align 8
  call void @_ZN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #12
  br label %595

595:                                              ; preds = %593
  store i8 1, ptr %63, align 1, !tbaa !9
  br label %563, !llvm.loop !67

596:                                              ; preds = %588, %576
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %6, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %7, align 4
  br label %608

600:                                              ; preds = %586
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %6, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %7, align 4
  call void @_ZdlPvm(ptr noundef %585, i64 noundef 16) #15
  br label %608

604:                                              ; preds = %589
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %6, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %7, align 4
  call void @_ZN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #12
  br label %608

608:                                              ; preds = %604, %600, %596
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #12
  br label %609

609:                                              ; preds = %608, %572, %568
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #12
  br label %636

610:                                              ; preds = %567
  br label %611

611:                                              ; preds = %610, %549
  br label %612

612:                                              ; preds = %611
  %613 = load i8, ptr %63, align 1, !tbaa !9, !range !11, !noundef !12
  %614 = trunc i8 %613 to i1
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #12
  br i1 %614, label %615, label %627

615:                                              ; preds = %612
  %616 = load ptr, ptr %53, align 8, !tbaa !60
  %617 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %618 unwind label %540

618:                                              ; preds = %615
  %619 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %617, i32 0, i32 10
  %620 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %621 unwind label %632

621:                                              ; preds = %618
  %622 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %620, i32 0, i32 10
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %622)
          to label %623 unwind label %632

623:                                              ; preds = %621
  %624 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %625 unwind label %632

625:                                              ; preds = %623
  invoke void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %616, ptr noundef nonnull align 8 dereferenceable(48) %619)
          to label %626 unwind label %632

626:                                              ; preds = %625
  br label %631

627:                                              ; preds = %612
  %628 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %629 unwind label %632

629:                                              ; preds = %627
  %630 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %628, i32 0, i32 10
  br label %631

631:                                              ; preds = %629, %626
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #12
  br label %519, !llvm.loop !68

632:                                              ; preds = %627, %625, %623, %621, %618
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %6, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #12
  br label %636

636:                                              ; preds = %632, %609, %544, %540
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #12
  br label %639

637:                                              ; preds = %539
  br label %638

638:                                              ; preds = %637, %505
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #12
  br label %641

639:                                              ; preds = %636, %514
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #12
  br label %640

640:                                              ; preds = %639, %510, %506
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #12
  br label %654

641:                                              ; preds = %638, %467
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #12
  %642 = load ptr, ptr %48, align 8, !tbaa !60
  %643 = getelementptr inbounds %"class.boost::unit_test::test_unit", ptr %642, i32 0, i32 17
  %644 = getelementptr inbounds %"class.boost::unit_test::class_property.33", ptr %643, i32 0, i32 0
  invoke void @_ZN5boost9unit_test9framework14swap_on_deleteISt6vectorINS_10shared_ptrINS0_17test_unit_fixtureEEESaIS6_EEEC2ERS8_SA_(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(24) %644)
          to label %645 unwind label %656

645:                                              ; preds = %641
  %646 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %647 unwind label %660

647:                                              ; preds = %645
  %648 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %646, i32 0, i32 6
  store i8 1, ptr %648, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #12
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(32) @_ZN5boost9unit_test14runtime_config16btrt_random_seedB5cxx11E)
          to label %649 unwind label %664

649:                                              ; preds = %647
  %650 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost9unit_test14runtime_config3getIjEERKT_NS0_13basic_cstringIKcEE(ptr noundef %81)
          to label %651 unwind label %664

651:                                              ; preds = %649
  %652 = load i32, ptr %650, align 4, !tbaa !69
  store i32 %652, ptr %80, align 4, !tbaa !69
  %653 = load i32, ptr %80, align 4, !tbaa !69
  switch i32 %653, label %674 [
    i32 0, label %688
    i32 1, label %668
  ]

654:                                              ; preds = %640, %484
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #12
  br label %655

655:                                              ; preds = %654, %480, %476
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #12
  br label %716

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

660:                                              ; preds = %645
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %6, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %7, align 4
  br label %714

664:                                              ; preds = %690, %688, %649, %647
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %6, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %7, align 4
  br label %713

668:                                              ; preds = %651
  %669 = call i32 @rand() #12
  %670 = sext i32 %669 to i64
  %671 = call i64 @time(ptr noundef null) #12
  %672 = xor i64 %670, %671
  %673 = trunc i64 %672 to i32
  store i32 %673, ptr %80, align 4, !tbaa !69
  br label %674

674:                                              ; preds = %668, %651
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #12
  %675 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr %83) #12
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef @.str.135)
          to label %676 unwind label %694

676:                                              ; preds = %674
  invoke void @_ZN5boost9unit_test3log5beginC2ENS0_13basic_cstringIKcEEm(ptr noundef nonnull align 8 dereferenceable(24) %83, ptr noundef %84, i64 noundef 0)
          to label %677 unwind label %694

677:                                              ; preds = %676
  %678 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost9unit_test15unit_test_log_tlsERKNS0_3log5beginE(ptr noundef nonnull align 8 dereferenceable(8) %675, ptr noundef nonnull align 8 dereferenceable(24) %83)
          to label %679 unwind label %694

679:                                              ; preds = %677
  invoke void @_ZN5boost9unit_test15unit_test_log_tclENS0_9log_levelE(ptr dead_on_unwind writable sret(%"class.boost::unit_test::ut_detail::entry_value_collector") align 1 %82, ptr noundef nonnull align 8 dereferenceable(8) %678, i32 noundef 2)
          to label %680 unwind label %694

680:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #12
  %681 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %682 unwind label %698

682:                                              ; preds = %680
  invoke void @_ZN5boost9unit_testlsIA42_cEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS5_EERKS4_S7_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.200") align 8 %86, ptr noundef nonnull align 8 dereferenceable(9) %681, ptr noundef nonnull align 1 dereferenceable(42) @.str.136)
          to label %683 unwind label %698

683:                                              ; preds = %682
  invoke void @_ZN5boost9unit_testlsINS0_12lazy_ostreamEA42_cjEENS0_17lazy_ostream_implINS4_IT_T0_RKS6_EET1_RKSA_EERKS9_SC_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %684 unwind label %702

684:                                              ; preds = %683
  %685 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost9unit_test9ut_detail21entry_value_collectorlsERKNS0_12lazy_ostreamE(ptr noundef nonnull align 1 dereferenceable(1) %82, ptr noundef nonnull align 8 dereferenceable(9) %85)
          to label %686 unwind label %706

686:                                              ; preds = %684
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #12
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #12
  call void @_ZN5boost9unit_test9ut_detail21entry_value_collectorD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #12
  %687 = load i32, ptr %80, align 4, !tbaa !69
  call void @srand(i32 noundef %687) #12
  br label %688

688:                                              ; preds = %686, %651
  %689 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %690 unwind label %664

690:                                              ; preds = %688
  %691 = load i64, ptr %3, align 8, !tbaa !5
  %692 = invoke noundef i32 @_ZN5boost9unit_test9framework5state17execute_test_treeEmmPKNS2_23random_generator_helperE(ptr noundef nonnull align 8 dereferenceable(360) %689, i64 noundef %691, i64 noundef 0, ptr noundef null)
          to label %693 unwind label %664

693:                                              ; preds = %690
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  call void @_ZN5boost9unit_test9framework14swap_on_deleteISt6vectorINS_10shared_ptrINS0_17test_unit_fixtureEEESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #12
  call void @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  br label %719

694:                                              ; preds = %679, %677, %676, %674
  %695 = landingpad { ptr, i32 }
          cleanup
  %696 = extractvalue { ptr, i32 } %695, 0
  store ptr %696, ptr %6, align 8
  %697 = extractvalue { ptr, i32 } %695, 1
  store i32 %697, ptr %7, align 4
  br label %712

698:                                              ; preds = %682, %680
  %699 = landingpad { ptr, i32 }
          cleanup
  %700 = extractvalue { ptr, i32 } %699, 0
  store ptr %700, ptr %6, align 8
  %701 = extractvalue { ptr, i32 } %699, 1
  store i32 %701, ptr %7, align 4
  br label %711

702:                                              ; preds = %683
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %6, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %7, align 4
  br label %710

706:                                              ; preds = %684
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %6, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %7, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #12
  br label %710

710:                                              ; preds = %706, %702
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #12
  br label %711

711:                                              ; preds = %710, %698
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #12
  call void @_ZN5boost9unit_test9ut_detail21entry_value_collectorD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #12
  br label %712

712:                                              ; preds = %711, %694
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #12
  br label %713

713:                                              ; preds = %712, %664
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  br label %714

714:                                              ; preds = %713, %660
  call void @_ZN5boost9unit_test9framework14swap_on_deleteISt6vectorINS_10shared_ptrINS0_17test_unit_fixtureEEESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #12
  br label %715

715:                                              ; preds = %714, %656
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #12
  br label %716

716:                                              ; preds = %715, %655
  call void @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #12
  br label %717

717:                                              ; preds = %716, %472
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #12
  br label %718

718:                                              ; preds = %717, %468
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  br label %927

719:                                              ; preds = %693, %429
  %720 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %721 unwind label %207

721:                                              ; preds = %719
  %722 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %720, i32 0, i32 6
  store i8 0, ptr %722, align 8, !tbaa !13
  %723 = load i64, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test16results_reporter11make_reportENS0_12report_levelEm(i32 noundef 0, i64 noundef %723)
          to label %724 unwind label %207

724:                                              ; preds = %721
  invoke void @_ZN5boost9unit_test9framework24register_observer_helper12register_obsEv(ptr noundef nonnull align 8 dereferenceable(9) %16)
          to label %725 unwind label %207

725:                                              ; preds = %724
  invoke void @_ZN5boost9unit_test25framework_init_observer_t5clearEv(ptr noundef nonnull align 8 dereferenceable(9) %15)
          to label %726 unwind label %207

726:                                              ; preds = %725
  %727 = load i8, ptr %12, align 1, !tbaa !9, !range !11, !noundef !12
  %728 = trunc i8 %727 to i1
  br i1 %728, label %729, label %900

729:                                              ; preds = %726
  %730 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %731 unwind label %207

731:                                              ; preds = %729
  %732 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %730, i32 0, i32 6
  store i8 0, ptr %732, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #12
  %733 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %734 unwind label %750

734:                                              ; preds = %731
  %735 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %733, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #12
  %736 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %737 unwind label %754

737:                                              ; preds = %734
  %738 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %736, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %738)
          to label %739 unwind label %754

739:                                              ; preds = %737
  %740 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %741 unwind label %754

741:                                              ; preds = %739
  %742 = invoke ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %735)
          to label %743 unwind label %754

743:                                              ; preds = %741
  %744 = getelementptr inbounds %"struct.boost::unit_test::for_each::static_any.134", ptr %88, i32 0, i32 0
  %745 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.135", ptr %744, i32 0, i32 0
  store ptr %742, ptr %745, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #12
  store ptr %88, ptr %87, align 8, !tbaa !60
  %746 = load ptr, ptr %87, align 8, !tbaa !60
  %747 = invoke noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %746)
          to label %748 unwind label %758

748:                                              ; preds = %743
  br i1 %747, label %749, label %762

749:                                              ; preds = %748
  br label %897

750:                                              ; preds = %731
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %6, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %7, align 4
  br label %899

754:                                              ; preds = %741, %739, %737, %734
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %6, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #12
  br label %899

758:                                              ; preds = %743
  %759 = landingpad { ptr, i32 }
          cleanup
  %760 = extractvalue { ptr, i32 } %759, 0
  store ptr %760, ptr %6, align 8
  %761 = extractvalue { ptr, i32 } %759, 1
  store i32 %761, ptr %7, align 4
  br label %898

762:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #12
  %763 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %764 unwind label %780

764:                                              ; preds = %762
  %765 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %763, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #12
  %766 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %767 unwind label %784

767:                                              ; preds = %764
  %768 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %766, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %768)
          to label %769 unwind label %784

769:                                              ; preds = %767
  %770 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %771 unwind label %784

771:                                              ; preds = %769
  %772 = invoke ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %765)
          to label %773 unwind label %784

773:                                              ; preds = %771
  %774 = getelementptr inbounds %"struct.boost::unit_test::for_each::static_any.134", ptr %93, i32 0, i32 0
  %775 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.135", ptr %774, i32 0, i32 0
  store ptr %772, ptr %775, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #12
  store ptr %93, ptr %92, align 8, !tbaa !60
  %776 = load ptr, ptr %92, align 8, !tbaa !60
  %777 = invoke noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %776)
          to label %778 unwind label %788

778:                                              ; preds = %773
  br i1 %777, label %779, label %792

779:                                              ; preds = %778
  br label %894

780:                                              ; preds = %762
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %6, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %7, align 4
  br label %896

784:                                              ; preds = %771, %769, %767, %764
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %6, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #12
  br label %896

788:                                              ; preds = %773
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %6, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %7, align 4
  br label %895

792:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #12
  store i8 1, ptr %97, align 1, !tbaa !9
  br label %793

793:                                              ; preds = %891, %792
  %794 = load i8, ptr %97, align 1, !tbaa !9, !range !11, !noundef !12
  %795 = trunc i8 %794 to i1
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #12
  br i1 %795, label %796, label %811

796:                                              ; preds = %793
  %797 = load ptr, ptr %87, align 8, !tbaa !60
  %798 = load ptr, ptr %92, align 8, !tbaa !60
  %799 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %800 unwind label %814

800:                                              ; preds = %796
  %801 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %799, i32 0, i32 7
  %802 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %803 unwind label %818

803:                                              ; preds = %800
  %804 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %802, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %804)
          to label %805 unwind label %818

805:                                              ; preds = %803
  %806 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %807 unwind label %818

807:                                              ; preds = %805
  %808 = invoke noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEbRKNS1_15static_any_baseESD_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %797, ptr noundef nonnull align 1 dereferenceable(1) %798, ptr noundef nonnull align 8 dereferenceable(48) %801)
          to label %809 unwind label %818

809:                                              ; preds = %807
  %810 = xor i1 %808, true
  br label %811

811:                                              ; preds = %809, %793
  %812 = phi i1 [ false, %793 ], [ %810, %809 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #12
  br i1 %812, label %822, label %813

813:                                              ; preds = %811
  store i32 15, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #12
  br label %893

814:                                              ; preds = %824, %796
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %6, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %7, align 4
  br label %892

818:                                              ; preds = %807, %805, %803, %800
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %6, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #12
  br label %892

822:                                              ; preds = %811
  store i8 0, ptr %97, align 1, !tbaa !9
  br i1 false, label %823, label %824

823:                                              ; preds = %822
  br label %891

824:                                              ; preds = %822
  %825 = load ptr, ptr %87, align 8, !tbaa !60
  %826 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %827 unwind label %814

827:                                              ; preds = %824
  %828 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %826, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #12
  %829 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %830 unwind label %837

830:                                              ; preds = %827
  %831 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %829, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %831)
          to label %832 unwind label %837

832:                                              ; preds = %830
  %833 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %834 unwind label %837

834:                                              ; preds = %832
  invoke void @_ZN5boost9unit_test8for_each4prevISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %825, ptr noundef nonnull align 8 dereferenceable(48) %828)
          to label %835 unwind label %837

835:                                              ; preds = %834
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #12
  br i1 false, label %836, label %841

836:                                              ; preds = %835
  br label %890

837:                                              ; preds = %834, %832, %830, %827
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %6, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #12
  br label %892

841:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #12
  %842 = load ptr, ptr %87, align 8, !tbaa !60
  %843 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %844 unwind label %859

844:                                              ; preds = %841
  %845 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %843, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #12
  %846 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %847 unwind label %863

847:                                              ; preds = %844
  %848 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %846, i32 0, i32 7
  invoke void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %848)
          to label %849 unwind label %863

849:                                              ; preds = %847
  %850 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %851 unwind label %863

851:                                              ; preds = %849
  %852 = invoke noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_13test_observerESt3setIS4_NS0_9framework5state14priority_orderESaIS4_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISB_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %842, ptr noundef nonnull align 8 dereferenceable(48) %845)
          to label %853 unwind label %863

853:                                              ; preds = %851
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #12
  store ptr %852, ptr %104, align 8, !tbaa !60
  br label %854

854:                                              ; preds = %878, %853
  %855 = load i8, ptr %97, align 1, !tbaa !9, !range !11, !noundef !12
  %856 = trunc i8 %855 to i1
  %857 = xor i1 %856, true
  br i1 %857, label %867, label %858

858:                                              ; preds = %854
  store i32 17, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #12
  br label %889

859:                                              ; preds = %841
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %6, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %7, align 4
  br label %888

863:                                              ; preds = %851, %849, %847, %844
  %864 = landingpad { ptr, i32 }
          cleanup
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %6, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #12
  br label %888

867:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 16, ptr %109) #12
  %868 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %869 unwind label %879

869:                                              ; preds = %867
  %870 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %868, i32 0, i32 2
  %871 = load i64, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreC2ERmm(ptr noundef nonnull align 8 dereferenceable(16) %109, ptr noundef nonnull align 8 dereferenceable(8) %870, i64 noundef %871)
          to label %872 unwind label %879

872:                                              ; preds = %869
  %873 = load ptr, ptr %104, align 8, !tbaa !60
  %874 = load ptr, ptr %873, align 8, !tbaa !70
  %875 = getelementptr inbounds ptr, ptr %874, i64 1
  %876 = load ptr, ptr %875, align 8
  invoke void %876(ptr noundef nonnull align 8 dereferenceable(8) %873)
          to label %877 unwind label %883

877:                                              ; preds = %872
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %109) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #12
  br label %878

878:                                              ; preds = %877
  store i8 1, ptr %97, align 1, !tbaa !9
  br label %854, !llvm.loop !72

879:                                              ; preds = %869, %867
  %880 = landingpad { ptr, i32 }
          cleanup
  %881 = extractvalue { ptr, i32 } %880, 0
  store ptr %881, ptr %6, align 8
  %882 = extractvalue { ptr, i32 } %880, 1
  store i32 %882, ptr %7, align 4
  br label %887

883:                                              ; preds = %872
  %884 = landingpad { ptr, i32 }
          cleanup
  %885 = extractvalue { ptr, i32 } %884, 0
  store ptr %885, ptr %6, align 8
  %886 = extractvalue { ptr, i32 } %884, 1
  store i32 %886, ptr %7, align 4
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %109) #12
  br label %887

887:                                              ; preds = %883, %879
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #12
  br label %888

888:                                              ; preds = %887, %863, %859
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #12
  br label %892

889:                                              ; preds = %858
  br label %890

890:                                              ; preds = %889, %836
  br label %891

891:                                              ; preds = %890, %823
  br label %793, !llvm.loop !73

892:                                              ; preds = %888, %837, %818, %814
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #12
  br label %895

893:                                              ; preds = %813
  br label %894

894:                                              ; preds = %893, %779
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #12
  br label %897

895:                                              ; preds = %892, %788
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #12
  br label %896

896:                                              ; preds = %895, %784, %780
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #12
  br label %898

897:                                              ; preds = %894, %749
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #12
  br label %900

898:                                              ; preds = %896, %758
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #12
  br label %899

899:                                              ; preds = %898, %754, %750
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #12
  br label %927

900:                                              ; preds = %897, %726
  %901 = load i8, ptr %11, align 1, !tbaa !9, !range !11, !noundef !12
  %902 = trunc i8 %901 to i1
  %903 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %904 unwind label %207

904:                                              ; preds = %900
  %905 = getelementptr inbounds %"class.boost::unit_test::framework::state", ptr %903, i32 0, i32 6
  %906 = zext i1 %902 to i8
  store i8 %906, ptr %905, align 8, !tbaa !13
  %907 = load i8, ptr %13, align 1, !tbaa !9, !range !11, !noundef !12
  %908 = trunc i8 %907 to i1
  br i1 %908, label %909, label %913

909:                                              ; preds = %904
  %910 = invoke noundef zeroext i1 @_ZNK5boost9unit_test25framework_init_observer_t10has_failedEv(ptr noundef nonnull align 8 dereferenceable(9) %15)
          to label %911 unwind label %207

911:                                              ; preds = %909
  br i1 %910, label %913, label %912

912:                                              ; preds = %911
  br label %926

913:                                              ; preds = %911, %904
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #12
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %914 unwind label %917

914:                                              ; preds = %913
  invoke void @_ZN5boost9unit_test9framework11setup_errorC2ENS0_13basic_cstringIKcEE(ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef %111)
          to label %915 unwind label %917

915:                                              ; preds = %914
  invoke void @_ZN5boost9unit_test9ut_detail15throw_exceptionINS0_9framework11setup_errorEEEvRKT_(ptr noundef nonnull align 8 dereferenceable(16) %110) #13
          to label %916 unwind label %921

916:                                              ; preds = %915
  unreachable

917:                                              ; preds = %914, %913
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %6, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %7, align 4
  br label %925

921:                                              ; preds = %915
  %922 = landingpad { ptr, i32 }
          cleanup
  %923 = extractvalue { ptr, i32 } %922, 0
  store ptr %923, ptr %6, align 8
  %924 = extractvalue { ptr, i32 } %922, 1
  store i32 %924, ptr %7, align 4
  call void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #12
  br label %925

925:                                              ; preds = %921, %917
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #12
  br label %927

926:                                              ; preds = %912
  call void @_ZN5boost9unit_test9framework24register_observer_helperD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %16) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #12
  call void @_ZN5boost9unit_test13test_observerD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %15) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #12
  call void @_ZN5boost9unit_test17test_tree_visitorD2Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #12
  ret void

927:                                              ; preds = %925, %899, %718, %427, %207
  call void @_ZN5boost9unit_test9framework24register_observer_helperD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %16) #12
  br label %928

928:                                              ; preds = %927, %203
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #12
  call void @_ZN5boost9unit_test13test_observerD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %15) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #12
  br label %929

929:                                              ; preds = %928, %199
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #12
  br label %930

930:                                              ; preds = %929, %195
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #12
  br label %931

931:                                              ; preds = %930, %156, %132
  call void @_ZN5boost9unit_test17test_tree_visitorD2Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #12
  br label %932

932:                                              ; preds = %931
  %933 = load ptr, ptr %6, align 8
  %934 = load i32, ptr %7, align 4
  %935 = insertvalue { ptr, i32 } poison, ptr %933, 0
  %936 = insertvalue { ptr, i32 } %935, i32 %934, 1
  resume { ptr, i32 } %936

937:                                              ; preds = %379
  %938 = landingpad { ptr, i32 }
          catch ptr null
  %939 = extractvalue { ptr, i32 } %938, 0
  call void @__clang_call_terminate(ptr %939) #16
  unreachable
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5boost9unit_test19unit_test_monitor_t21execute_and_translateERKNS_8functionIFvvEEEm(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4bindIvNS_9unit_test13test_observerEmmPS2_NS1_17test_case_counter19readonly_property43EmEENS_3_bi6bind_tIT_NS_4_mfi3mf2IS8_T0_T1_T2_EENS6_9list_av_3IT3_T4_T5_E4typeEEEMSB_FS8_SC_SD_ESG_SH_SI_(ptr dead_on_unwind noalias writable sret(%"class.boost::_bi::bind_t.188") align 8, i64, i64, ptr noundef, i64, i64 noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost8functionIFvvEEC2INS_3_bi6bind_tIvNS_4_mfi3mf2IvNS_9unit_test13test_observerEmmEENS4_5list3INS4_5valueIPS9_EENSC_INS8_17test_case_counter19readonly_property43EEENSC_ImEEEEEEEET_NS_10enable_if_IXntsr11is_integralISL_EE5valueEiE4typeE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef byval(%"class.boost::_bi::bind_t.188") align 8, i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK5boost9unit_test25framework_init_observer_t10has_failedEv(ptr noundef nonnull align 8 dereferenceable(9)) #4 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_17test_unit_fixtureESt3setIPNS0_14global_fixtureESt4lessIS7_ESaIS7_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISC_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) #0

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost9unit_test14runtime_config3getIjEERKT_NS0_13basic_cstringIKcEE(ptr noundef) #3

; Function Attrs: nounwind
declare i32 @rand() #11

; Function Attrs: nounwind
declare i64 @time(ptr noundef) #11

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost9unit_test15unit_test_log_tclENS0_9log_levelE(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::ut_detail::entry_value_collector") align 1, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost9unit_testlsINS0_12lazy_ostreamEA42_cjEENS0_17lazy_ostream_implINS4_IT_T0_RKS6_EET1_RKSA_EERKS9_SC_(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::lazy_ostream_impl") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost9unit_testlsIA42_cEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS5_EERKS4_S7_(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::lazy_ostream_impl.200") align 8, ptr noundef nonnull align 8 dereferenceable(9), ptr noundef nonnull align 1 dereferenceable(42)) #3

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

; Function Attrs: nounwind
declare void @srand(i32 noundef) #11

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5boost9unit_test9framework5state17execute_test_treeEmmPKNS2_23random_generator_helperE(ptr noundef nonnull align 8 dereferenceable(360), i64 noundef, i64 noundef, ptr noundef) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost9unit_test16results_reporter11make_reportENS0_12report_levelEm(i32 noundef, i64 noundef) #2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each4prevISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) #0

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

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

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

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

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

declare void @_ZN5boost9unit_test9ut_detail21entry_value_collectorD1Ev(ptr)

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = !{!14, !10, i64 104}
!14 = !{!"_ZTSN5boost9unit_test9framework5stateE", !15, i64 0, !16, i64 8, !6, i64 32, !20, i64 40, !6, i64 88, !6, i64 96, !10, i64 104, !28, i64 112, !33, i64 160, !37, i64 184, !38, i64 192, !43, i64 240, !53, i64 288, !58, i64 336}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!"_ZTSSt6vectorIPN5boost9unit_test10test_suiteESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIPN5boost9unit_test10test_suiteESaIS3_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIPN5boost9unit_test10test_suiteESaIS3_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN5boost9unit_test10test_suiteESaIS3_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!20 = !{!"_ZTSSt3mapImPN5boost9unit_test9test_unitESt4lessImESaISt4pairIKmS3_EEE", !21, i64 0}
!21 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmPN5boost9unit_test9test_unitEESt10_Select1stIS6_ESt4lessImESaIS6_EE", !22, i64 0}
!22 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmPN5boost9unit_test9test_unitEESt10_Select1stIS6_ESt4lessImESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !23, i64 0, !25, i64 8}
!23 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !24, i64 0}
!24 = !{!"_ZTSSt4lessImE"}
!25 = !{!"_ZTSSt15_Rb_tree_header", !26, i64 0, !6, i64 32}
!26 = !{!"_ZTSSt18_Rb_tree_node_base", !27, i64 0, !15, i64 8, !15, i64 16, !15, i64 24}
!27 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!28 = !{!"_ZTSSt3setIPN5boost9unit_test13test_observerENS1_9framework5state14priority_orderESaIS3_EE", !29, i64 0}
!29 = !{!"_ZTSSt8_Rb_treeIPN5boost9unit_test13test_observerES3_St9_IdentityIS3_ENS1_9framework5state14priority_orderESaIS3_EE", !30, i64 0}
!30 = !{!"_ZTSNSt8_Rb_treeIPN5boost9unit_test13test_observerES3_St9_IdentityIS3_ENS1_9framework5state14priority_orderESaIS3_EE13_Rb_tree_implIS8_Lb1EEE", !31, i64 0, !25, i64 8}
!31 = !{!"_ZTSSt20_Rb_tree_key_compareIN5boost9unit_test9framework5state14priority_orderEE", !32, i64 0}
!32 = !{!"_ZTSN5boost9unit_test9framework5state14priority_orderE"}
!33 = !{!"_ZTSSt6vectorIN5boost9unit_test9framework5state13context_frameESaIS4_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIN5boost9unit_test9framework5state13context_frameESaIS4_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN5boost9unit_test9framework5state13context_frameESaIS4_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN5boost9unit_test9framework5state13context_frameESaIS4_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!37 = !{!"int", !7, i64 0}
!38 = !{!"_ZTSSt3setIPN5boost9unit_test14global_fixtureESt4lessIS3_ESaIS3_EE", !39, i64 0}
!39 = !{!"_ZTSSt8_Rb_treeIPN5boost9unit_test14global_fixtureES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE", !40, i64 0}
!40 = !{!"_ZTSNSt8_Rb_treeIPN5boost9unit_test14global_fixtureES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !41, i64 0, !25, i64 8}
!41 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPN5boost9unit_test14global_fixtureEEE", !42, i64 0}
!42 = !{!"_ZTSSt4lessIPN5boost9unit_test14global_fixtureEE"}
!43 = !{!"_ZTSN5boost17execution_monitorE", !44, i64 0, !44, i64 1, !46, i64 8, !44, i64 16, !48, i64 20, !50, i64 24, !52, i64 40}
!44 = !{!"_ZTSN5boost9unit_test18readwrite_propertyIbEE", !45, i64 0}
!45 = !{!"_ZTSN5boost9unit_test14class_propertyIbEE", !10, i64 0}
!46 = !{!"_ZTSN5boost9unit_test18readwrite_propertyImEE", !47, i64 0}
!47 = !{!"_ZTSN5boost9unit_test14class_propertyImEE", !6, i64 0}
!48 = !{!"_ZTSN5boost9unit_test18readwrite_propertyIjEE", !49, i64 0}
!49 = !{!"_ZTSN5boost9unit_test14class_propertyIjEE", !37, i64 0}
!50 = !{!"_ZTSN5boost10shared_ptrINS_6detail22translator_holder_baseEEE", !15, i64 0, !51, i64 8}
!51 = !{!"_ZTSN5boost6detail12shared_countE", !15, i64 0}
!52 = !{!"_ZTSN5boost12scoped_arrayIcEE", !15, i64 0}
!53 = !{!"_ZTSSt3mapIN5boost9unit_test13output_formatENS1_14runtime_config13stream_holderESt4lessIS2_ESaISt4pairIKS2_S4_EEE", !54, i64 0}
!54 = !{!"_ZTSSt8_Rb_treeIN5boost9unit_test13output_formatESt4pairIKS2_NS1_14runtime_config13stream_holderEESt10_Select1stIS7_ESt4lessIS2_ESaIS7_EE", !55, i64 0}
!55 = !{!"_ZTSNSt8_Rb_treeIN5boost9unit_test13output_formatESt4pairIKS2_NS1_14runtime_config13stream_holderEESt10_Select1stIS7_ESt4lessIS2_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !56, i64 0, !25, i64 8}
!56 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN5boost9unit_test13output_formatEEE", !57, i64 0}
!57 = !{!"_ZTSSt4lessIN5boost9unit_test13output_formatEE"}
!58 = !{!"_ZTSN5boost9unit_test14runtime_config13stream_holderE", !59, i64 0, !15, i64 16}
!59 = !{!"_ZTSN5boost10shared_ptrINS_9unit_test14runtime_config13stream_holder16callback_cleanerEEE", !15, i64 0, !51, i64 8}
!60 = !{!15, !15, i64 0}
!61 = !{!7, !7, i64 0}
!62 = !{!63, !63, i64 0}
!63 = !{!"_ZTSN5boost9unit_test19unit_test_monitor_t11error_levelE", !7, i64 0}
!64 = distinct !{!64, !65}
!65 = !{!"llvm.loop.mustprogress"}
!66 = distinct !{!66, !65}
!67 = distinct !{!67, !65}
!68 = distinct !{!68, !65}
!69 = !{!37, !37, i64 0}
!70 = !{!71, !71, i64 0}
!71 = !{!"vtable pointer", !8, i64 0}
!72 = distinct !{!72, !65}
!73 = distinct !{!73, !65}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.boost::unit_test::basic_cstring" = type { ptr, ptr }
%"class.boost::unit_test::test_case_counter" = type <{ %"class.boost::unit_test::test_tree_visitor", %"class.boost::unit_test::test_case_counter::readonly_property43", i8, [7 x i8] }>
%"class.boost::unit_test::test_tree_visitor" = type { ptr }
%"class.boost::unit_test::test_case_counter::readonly_property43" = type { %"class.boost::unit_test::readonly_property" }
%"class.boost::unit_test::readonly_property" = type { %"class.boost::unit_test::class_property" }
%"class.boost::unit_test::class_property" = type { i64 }
%"struct.boost::unit_test::framework::setup_error" = type { %"class.std::runtime_error" }
%"class.std::runtime_error" = type { %"class.std::exception", %"struct.std::__cow_string" }
%"class.std::exception" = type { ptr }
%"struct.std::__cow_string" = type { %union.anon.93 }
%union.anon.93 = type { ptr }
%"class.boost::unit_test::framework_init_observer_t" = type <{ %"class.boost::unit_test::test_observer", i8, [7 x i8] }>
%"class.boost::unit_test::test_observer" = type { ptr }
%"struct.boost::unit_test::framework::register_observer_helper" = type <{ ptr, i8, [7 x i8] }>
%"struct.boost::unit_test::for_each::static_any.134" = type { %"struct.std::_Rb_tree_const_iterator.135" }
%"struct.std::_Rb_tree_const_iterator.135" = type { ptr }
%"struct.boost::is_const.136" = type { i8 }
%"struct.boost::unit_test::ut_detail::test_unit_id_restore" = type { ptr, i64 }
%"class.boost::function.133" = type { %"class.boost::function0" }
%"class.boost::function0" = type { %"class.boost::function_base" }
%"class.boost::function_base" = type { ptr, %"union.boost::detail::function::function_buffer" }
%"union.boost::detail::function::function_buffer" = type { %"union.boost::detail::function::function_buffer_members" }
%"union.boost::detail::function::function_buffer_members" = type { %"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" }
%"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" = type { { i64, i64 }, ptr }
%"class.boost::_bi::bind_t.188" = type { %"class.boost::_mfi::mf2.189", %"class.boost::_bi::list3.190" }
%"class.boost::_mfi::mf2.189" = type { { i64, i64 } }
%"class.boost::_bi::list3.190" = type { %"struct.boost::_bi::storage3.191" }
%"struct.boost::_bi::storage3.191" = type { %"struct.boost::_bi::storage2.192", %"class.boost::_bi::value.196" }
%"struct.boost::_bi::storage2.192" = type { %"struct.boost::_bi::storage1.193", %"class.boost::_bi::value.195" }
%"struct.boost::_bi::storage1.193" = type { %"class.boost::_bi::value.194" }
%"class.boost::_bi::value.194" = type { ptr }
%"class.boost::_bi::value.195" = type { %"class.boost::unit_test::test_case_counter::readonly_property43" }
%"class.boost::_bi::value.196" = type { i64 }
%"class.std::vector.34" = type { %"struct.std::_Vector_base.35" }
%"struct.std::_Vector_base.35" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::unit_test::test_unit_fixture>, std::allocator<boost::shared_ptr<boost::unit_test::test_unit_fixture>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.36" = type { i8 }
%"struct.boost::unit_test::for_each::static_any" = type { %"struct.std::_Rb_tree_const_iterator" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"struct.boost::is_const" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.199" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.197" = type { ptr }
%"class.boost::shared_ptr.94" = type { ptr, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { ptr }
%"struct.boost::unit_test::framework::swap_on_delete" = type { ptr, ptr }
%"class.boost::unit_test::ut_detail::entry_value_collector" = type { i8 }
%"struct.boost::unit_test::log::begin" = type { %"class.boost::unit_test::basic_cstring", i64 }
%"class.boost::unit_test::lazy_ostream_impl" = type { %"class.boost::unit_test::lazy_ostream.base", ptr, ptr }
%"class.boost::unit_test::lazy_ostream.base" = type <{ ptr, i8 }>
%"class.boost::unit_test::lazy_ostream_impl.200" = type { %"class.boost::unit_test::lazy_ostream.base", ptr, ptr }

@_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE = external hidden local_unnamed_addr global ptr, align 8
@_ZN5boost9unit_test12_GLOBAL__N_117unit_test_monitorE = external hidden local_unnamed_addr global ptr, align 8
@_ZTIN5boost19execution_exceptionE = external dso_local constant { ptr, ptr }, align 8
@_ZN5boost9unit_test14runtime_config16btrt_run_filtersB5cxx11E = external dso_local global %"class.std::__cxx11::basic_string", align 8
@.str.133 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZN5boost9unit_test14runtime_config16btrt_random_seedB5cxx11E = external dso_local global %"class.std::__cxx11::basic_string", align 8
@.str.135 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [42 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost19execution_exception4whatEv(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::basic_cstring") align 8, ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(280) ptr @_ZN5boost9unit_test9framework3getEmNS0_14test_unit_typeE(i64 noundef, i32 noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost9unit_test18traverse_test_treeEmRNS0_17test_tree_visitorEb(i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #2

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

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

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

; Function Attrs: inlinehint mustprogress noreturn uwtable
declare dso_local void @_ZN5boost9unit_test9ut_detail15throw_exceptionINS0_9framework11setup_errorEEEvRKT_(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv() local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost9unit_test9framework5state17deduce_run_statusEm(ptr noundef nonnull align 8 dereferenceable(360), i64 noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEbRKNS1_15static_any_baseESC_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEbRKNS1_15static_any_baseESD_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_13test_observerESt3setIS4_NS0_9framework5state14priority_orderESaIS4_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISB_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost9unit_test14runtime_config3getISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_NS0_13basic_cstringIKcEE(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

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

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

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost9unit_test9framework16test_in_progressEv() local_unnamed_addr #2

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

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #9

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5boost9unit_test9framework3runEmb(i64 noundef %0, i1 noundef zeroext %1) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.boost::unit_test::test_case_counter", align 8
  %4 = alloca %"struct.boost::unit_test::framework::setup_error", align 8
  %5 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %6 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %7 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %8 = alloca %"class.boost::unit_test::framework_init_observer_t", align 8
  %9 = alloca %"struct.boost::unit_test::framework::register_observer_helper", align 8
  %10 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %11 = alloca %"struct.boost::is_const.136", align 1
  %12 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %13 = alloca %"struct.boost::is_const.136", align 1
  %14 = alloca %"struct.boost::is_const.136", align 1
  %15 = alloca %"struct.boost::is_const.136", align 1
  %16 = alloca %"struct.boost::unit_test::ut_detail::test_unit_id_restore", align 8
  %17 = alloca %"class.boost::function.133", align 8
  %18 = alloca %"class.boost::_bi::bind_t.188", align 8
  %19 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %20 = alloca %"struct.boost::is_const.136", align 1
  %21 = alloca %"class.std::vector.34", align 8
  %22 = alloca %"class.std::allocator.36", align 1
  %23 = alloca %"struct.boost::unit_test::for_each::static_any", align 8
  %24 = alloca %"struct.boost::is_const", align 1
  %25 = alloca %"struct.boost::unit_test::for_each::static_any", align 8
  %26 = alloca %"struct.boost::is_const", align 1
  %27 = alloca %"struct.boost::is_const", align 1
  %28 = alloca %"struct.boost::is_const", align 1
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.199", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.197", align 8
  %31 = alloca %"class.boost::shared_ptr.94", align 8
  %32 = alloca %"struct.boost::is_const", align 1
  %33 = alloca %"struct.boost::unit_test::framework::swap_on_delete", align 8
  %34 = alloca i32, align 4
  %35 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %36 = alloca %"class.boost::unit_test::ut_detail::entry_value_collector", align 1
  %37 = alloca %"struct.boost::unit_test::log::begin", align 8
  %38 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %39 = alloca %"class.boost::unit_test::lazy_ostream_impl", align 8
  %40 = alloca %"class.boost::unit_test::lazy_ostream_impl.200", align 8
  %41 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %42 = alloca %"struct.boost::is_const.136", align 1
  %43 = alloca %"struct.boost::unit_test::for_each::static_any.134", align 8
  %44 = alloca %"struct.boost::is_const.136", align 1
  %45 = alloca %"struct.boost::is_const.136", align 1
  %46 = alloca %"struct.boost::is_const.136", align 1
  %47 = alloca %"struct.boost::is_const.136", align 1
  %48 = alloca %"struct.boost::unit_test::ut_detail::test_unit_id_restore", align 8
  %49 = alloca %"struct.boost::unit_test::framework::setup_error", align 8
  %50 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %51 = icmp eq i64 %0, 4294967295
  br i1 %51, label %52, label %57

52:                                               ; preds = %2
  %53 = tail call noundef nonnull align 8 dereferenceable(400) ptr @_ZN5boost9unit_test9framework17master_test_suiteEv()
  %54 = getelementptr inbounds i8, ptr %53, i64 56
  %55 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK5boost9unit_test14class_propertyImEcvRKmEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
  %56 = load i64, ptr %55, align 8, !tbaa !5
  br label %57

57:                                               ; preds = %52, %2
  %.0 = phi i64 [ %56, %52 ], [ %0, %2 ]
  %58 = tail call noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
  tail call void @_ZN5boost9unit_test9framework5state17deduce_run_statusEm(ptr noundef nonnull align 8 dereferenceable(360) %58, i64 noundef %.0)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #10
  call void @_ZN5boost9unit_test17test_case_counterC2Eb(ptr noundef nonnull align 8 dereferenceable(17) %3, i1 noundef zeroext false)
  invoke void @_ZN5boost9unit_test18traverse_test_treeEmRNS0_17test_tree_visitorEb(i64 noundef %.0, ptr noundef nonnull align 8 dereferenceable(8) %3, i1 noundef zeroext false)
          to label %59 unwind label %63

59:                                               ; preds = %57
  %60 = getelementptr inbounds i8, ptr %3, i64 8
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK5boost9unit_test14class_propertyImEcvRKmEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
  %62 = load i64, ptr %61, align 8, !tbaa !5
  %.not = icmp eq i64 %62, 0
  br i1 %.not, label %67, label %81

63:                                               ; preds = %57
  %64 = landingpad { ptr, i32 }
          cleanup
  %65 = extractvalue { ptr, i32 } %64, 0
  %66 = extractvalue { ptr, i32 } %64, 1
  br label %463

67:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #10
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(32) @_ZN5boost9unit_test14runtime_config16btrt_run_filtersB5cxx11E)
  %68 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost9unit_test14runtime_config3getISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_NS0_13basic_cstringIKcEE(ptr noundef nonnull %6)
          to label %69 unwind label %76

69:                                               ; preds = %67
  %70 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #10
  br i1 %70, label %71, label %72

71:                                               ; preds = %69
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull @.str.133, i64 noundef 18)
  br label %73

72:                                               ; preds = %69
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull @.str.134, i64 noundef 61)
  br label %73

73:                                               ; preds = %72, %71
  invoke void @_ZN5boost9unit_test9framework11setup_errorC2ENS0_13basic_cstringIKcEE(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull %5)
          to label %74 unwind label %76

74:                                               ; preds = %73
  invoke void @_ZN5boost9unit_test9ut_detail15throw_exceptionINS0_9framework11setup_errorEEEvRKT_(ptr noundef nonnull align 8 dereferenceable(16) %4) #11
          to label %75 unwind label %78

75:                                               ; preds = %74
  unreachable

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

78:                                               ; preds = %74
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #10
  br label %80

80:                                               ; preds = %78, %76
  %.pn = phi { ptr, i32 } [ %79, %78 ], [ %77, %76 ]
  %.066 = extractvalue { ptr, i32 } %.pn, 0
  %.068 = extractvalue { ptr, i32 } %.pn, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #10
  br label %463

81:                                               ; preds = %59
  %82 = invoke noundef zeroext i1 @_ZN5boost9unit_test9framework16test_in_progressEv()
          to label %83 unwind label %100

83:                                               ; preds = %81
  %84 = zext i1 %82 to i8
  %.demorgan = and i1 %82, %1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #10
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #10
  call void @_ZN5boost9unit_test25framework_init_observer_tC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %8) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #10
  invoke void @_ZN5boost9unit_test9framework24register_observer_helperC2ERNS0_13test_observerE(ptr noundef nonnull align 8 dereferenceable(9) %9, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %85 unwind label %104

85:                                               ; preds = %83
  br i1 %.demorgan, label %222, label %86

86:                                               ; preds = %85
  %87 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %88 unwind label %108

88:                                               ; preds = %86
  %89 = getelementptr inbounds i8, ptr %87, i64 104
  store i8 0, ptr %89, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  %90 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %91 unwind label %112

91:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #10
  %92 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %93 unwind label %116

93:                                               ; preds = %91
  %94 = getelementptr inbounds i8, ptr %90, i64 112
  %95 = getelementptr inbounds i8, ptr %92, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %95)
  %96 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %11)
  %97 = invoke ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %94)
          to label %98 unwind label %116

98:                                               ; preds = %93
  store ptr %97, ptr %10, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  %99 = call noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %10)
  br i1 %99, label %221, label %120

100:                                              ; preds = %81
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  %103 = extractvalue { ptr, i32 } %101, 1
  br label %463

104:                                              ; preds = %83
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  %107 = extractvalue { ptr, i32 } %105, 1
  br label %462

108:                                              ; preds = %446, %366, %364, %362, %360, %222, %86
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  %111 = extractvalue { ptr, i32 } %109, 1
  br label %461

112:                                              ; preds = %88
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  %115 = extractvalue { ptr, i32 } %113, 1
  br label %461

116:                                              ; preds = %93, %91
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  %119 = extractvalue { ptr, i32 } %117, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  br label %461

120:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  %121 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %122 unwind label %131

122:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #10
  %123 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %124 unwind label %135

124:                                              ; preds = %122
  %125 = getelementptr inbounds i8, ptr %121, i64 112
  %126 = getelementptr inbounds i8, ptr %123, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %126)
  %127 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %13)
  %128 = invoke ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %125)
          to label %129 unwind label %135

129:                                              ; preds = %124
  store ptr %128, ptr %12, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #10
  %130 = call noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %12)
  br i1 %130, label %.loopexit148, label %.preheader147.split

131:                                              ; preds = %120
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  %134 = extractvalue { ptr, i32 } %132, 1
  br label %220

135:                                              ; preds = %124, %122
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  %138 = extractvalue { ptr, i32 } %136, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #10
  br label %220

.preheader147.split:                              ; preds = %129, %212
  %.099 = phi i8 [ %.4103, %212 ], [ 1, %129 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #10
  %139 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %140 unwind label %148

140:                                              ; preds = %.preheader147.split
  %141 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %142 unwind label %152

142:                                              ; preds = %140
  %143 = getelementptr inbounds i8, ptr %139, i64 112
  %144 = getelementptr inbounds i8, ptr %141, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %144)
  %145 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %14)
  %146 = invoke noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEbRKNS1_15static_any_baseESD_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %10, ptr noundef nonnull align 1 dereferenceable(1) %12, ptr noundef nonnull align 8 dereferenceable(48) %143)
          to label %147 unwind label %152

147:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  br i1 %146, label %.loopexit148, label %156

148:                                              ; preds = %205, %.preheader147.split
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  %151 = extractvalue { ptr, i32 } %149, 1
  br label %.loopexit146

152:                                              ; preds = %142, %140
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  %155 = extractvalue { ptr, i32 } %153, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  br label %.loopexit146

156:                                              ; preds = %147
  %157 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %158 unwind label %166

158:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #10
  %159 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %160 unwind label %170

160:                                              ; preds = %158
  %161 = getelementptr inbounds i8, ptr %157, i64 112
  %162 = getelementptr inbounds i8, ptr %159, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %162)
  %163 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %15)
  %164 = call noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_13test_observerESt3setIS4_NS0_9framework5state14priority_orderESaIS4_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISB_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %10, ptr noundef nonnull align 8 dereferenceable(48) %161)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #10
  %165 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %174 unwind label %183

166:                                              ; preds = %156
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  %169 = extractvalue { ptr, i32 } %167, 1
  br label %.loopexit146

170:                                              ; preds = %158
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  %173 = extractvalue { ptr, i32 } %171, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #10
  br label %.loopexit146

174:                                              ; preds = %160
  %175 = getelementptr inbounds i8, ptr %165, i64 32
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreC2ERmm(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(8) %175, i64 noundef %.0)
  %176 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_117unit_test_monitorE, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #10
  %.sroa.031.0.copyload = load i64, ptr %60, align 8
  invoke void @_ZN5boost4bindIvNS_9unit_test13test_observerEmmPS2_NS1_17test_case_counter19readonly_property43EmEENS_3_bi6bind_tIT_NS_4_mfi3mf2IS8_T0_T1_T2_EENS6_9list_av_3IT3_T4_T5_E4typeEEEMSB_FS8_SC_SD_ESG_SH_SI_(ptr dead_on_unwind nonnull writable sret(%"class.boost::_bi::bind_t.188") align 8 %18, i64 1, i64 0, ptr noundef %164, i64 %.sroa.031.0.copyload, i64 noundef %.0)
          to label %177 unwind label %185

177:                                              ; preds = %174
  invoke void @_ZN5boost8functionIFvvEEC2INS_3_bi6bind_tIvNS_4_mfi3mf2IvNS_9unit_test13test_observerEmmEENS4_5list3INS4_5valueIPS9_EENSC_INS8_17test_case_counter19readonly_property43EEENSC_ImEEEEEEEET_NS_10enable_if_IXntsr11is_integralISL_EE5valueEiE4typeE(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull byval(%"class.boost::_bi::bind_t.188") align 8 %18, i32 noundef 0)
          to label %178 unwind label %185

178:                                              ; preds = %177
  %179 = invoke noundef i32 @_ZN5boost9unit_test19unit_test_monitor_t21execute_and_translateERKNS_8functionIFvvEEEm(ptr noundef nonnull align 8 dereferenceable(48) %176, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 noundef 0)
          to label %180 unwind label %187

180:                                              ; preds = %178
  call void @_ZN5boost9function0IvED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  %181 = trunc nuw i8 %.099 to i1
  br i1 %181, label %182, label %192

182:                                              ; preds = %180
  %.not118 = icmp eq i32 %179, 0
  br i1 %.not118, label %190, label %192

183:                                              ; preds = %160
  %184 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5boost19execution_exceptionE
  br label %193

185:                                              ; preds = %177, %174
  %186 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5boost19execution_exceptionE
  br label %189

187:                                              ; preds = %178
  %188 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5boost19execution_exceptionE
  call void @_ZN5boost9function0IvED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %189

189:                                              ; preds = %187, %185
  %.pn113 = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #10
  br label %193

190:                                              ; preds = %182
  %191 = call noundef zeroext i1 @_ZNK5boost9unit_test25framework_init_observer_t10has_failedEv(ptr noundef nonnull align 8 dereferenceable(9) %8)
  %spec.select = select i1 %191, i8 0, i8 %.099
  br label %192

192:                                              ; preds = %190, %182, %180
  %.2101 = phi i8 [ %.099, %180 ], [ 0, %182 ], [ %spec.select, %190 ]
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #10
  br label %205

193:                                              ; preds = %189, %183
  %.pn113.pn = phi { ptr, i32 } [ %.pn113, %189 ], [ %184, %183 ]
  %.2 = extractvalue { ptr, i32 } %.pn113.pn, 0
  %.270 = extractvalue { ptr, i32 } %.pn113.pn, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #10
  %194 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN5boost19execution_exceptionE) #10
  %195 = icmp eq i32 %.270, %194
  br i1 %195, label %196, label %.loopexit146

196:                                              ; preds = %193
  %197 = call ptr @__cxa_begin_catch(ptr %.2) #10
  %198 = trunc nuw i8 %.099 to i1
  br i1 %198, label %199, label %204

199:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #10
  invoke void @_ZNK5boost19execution_exception4whatEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::basic_cstring") align 8 %19, ptr noundef nonnull align 8 dereferenceable(64) %197)
          to label %200 unwind label %202

200:                                              ; preds = %199
  %201 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost9unit_test13basic_cstringIKcEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(16) %19)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #10
  br label %204

202:                                              ; preds = %199
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #10
  invoke void @__cxa_end_catch()
          to label %209 unwind label %466

204:                                              ; preds = %200, %196
  %.3102 = phi i8 [ 0, %200 ], [ %.099, %196 ]
  invoke void @__cxa_end_catch()
          to label %205 unwind label %207

205:                                              ; preds = %204, %192
  %.4103 = phi i8 [ %.2101, %192 ], [ %.3102, %204 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #10
  %206 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %210 unwind label %148

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

209:                                              ; preds = %202, %207
  %.pn116 = phi { ptr, i32 } [ %208, %207 ], [ %203, %202 ]
  %.3 = extractvalue { ptr, i32 } %.pn116, 0
  %.371 = extractvalue { ptr, i32 } %.pn116, 1
  br label %.loopexit146

210:                                              ; preds = %205
  %211 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %212 unwind label %216

212:                                              ; preds = %210
  %213 = getelementptr inbounds i8, ptr %206, i64 112
  %214 = getelementptr inbounds i8, ptr %211, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %214)
  %215 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %20)
  call void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %10, ptr noundef nonnull align 8 dereferenceable(48) %213)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #10
  br label %.preheader147.split, !llvm.loop !58

216:                                              ; preds = %210
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  %219 = extractvalue { ptr, i32 } %217, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #10
  br label %.loopexit146

.loopexit146:                                     ; preds = %193, %166, %170, %209, %216, %152, %148
  %.573 = phi i32 [ %219, %216 ], [ %151, %148 ], [ %155, %152 ], [ %.371, %209 ], [ %173, %170 ], [ %169, %166 ], [ %.270, %193 ]
  %.5 = phi ptr [ %218, %216 ], [ %150, %148 ], [ %154, %152 ], [ %.3, %209 ], [ %172, %170 ], [ %168, %166 ], [ %.2, %193 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  br label %220

.loopexit148:                                     ; preds = %147, %129
  %.5104 = phi i8 [ 1, %129 ], [ %.099, %147 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  br label %221

220:                                              ; preds = %.loopexit146, %135, %131
  %.674 = phi i32 [ %.573, %.loopexit146 ], [ %138, %135 ], [ %134, %131 ]
  %.6 = phi ptr [ %.5, %.loopexit146 ], [ %137, %135 ], [ %133, %131 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  br label %461

221:                                              ; preds = %98, %.loopexit148
  %.6105 = phi i8 [ 1, %98 ], [ %.5104, %.loopexit148 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  br label %222

222:                                              ; preds = %221, %85
  %.7106 = phi i8 [ %.6105, %221 ], [ 1, %85 ]
  invoke void @_ZN5boost9unit_test9framework24register_observer_helper14deregister_obsEv(ptr noundef nonnull align 8 dereferenceable(9) %9)
          to label %223 unwind label %108

223:                                              ; preds = %222
  %224 = trunc nuw i8 %.7106 to i1
  br i1 %224, label %225, label %360

225:                                              ; preds = %223
  %226 = invoke noundef nonnull align 8 dereferenceable(280) ptr @_ZN5boost9unit_test9framework3getEmNS0_14test_unit_typeE(i64 noundef %.0, i32 noundef 17)
          to label %227 unwind label %242

227:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #10
  %228 = getelementptr inbounds i8, ptr %226, i64 256
  %229 = call ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %228) #10
  %230 = call ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %228) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #10
  call void @_ZNSaIN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  invoke void @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EEC2IN9__gnu_cxx17__normal_iteratorIPS4_S6_EEvEET_SC_RKS5_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr %229, ptr %230, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %231 unwind label %244

231:                                              ; preds = %227
  call void @_ZNSt15__new_allocatorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #10
  %232 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %233 unwind label %246

233:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #10
  %234 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %235 unwind label %248

235:                                              ; preds = %233
  %236 = getelementptr inbounds i8, ptr %232, i64 192
  %237 = getelementptr inbounds i8, ptr %234, i64 192
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %237)
  %238 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %24)
  %239 = invoke ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %236)
          to label %240 unwind label %248

240:                                              ; preds = %235
  store ptr %239, ptr %23, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #10
  %241 = call noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %23)
  br i1 %241, label %310, label %250

242:                                              ; preds = %225
  %243 = landingpad { ptr, i32 }
          cleanup
  br label %359

244:                                              ; preds = %227
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  br label %358

246:                                              ; preds = %231
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %357

248:                                              ; preds = %235, %233
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #10
  br label %357

250:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  %251 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %252 unwind label %261

252:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #10
  %253 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %254 unwind label %263

254:                                              ; preds = %252
  %255 = getelementptr inbounds i8, ptr %251, i64 192
  %256 = getelementptr inbounds i8, ptr %253, i64 192
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %256)
  %257 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %26)
  %258 = invoke ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSB_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %255)
          to label %259 unwind label %263

259:                                              ; preds = %254
  store ptr %258, ptr %25, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #10
  %260 = call noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %25)
  br i1 %260, label %.loopexit145, label %.preheader144.split

261:                                              ; preds = %250
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %309

263:                                              ; preds = %254, %252
  %264 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #10
  br label %309

.preheader144.split:                              ; preds = %259, %302
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #10
  %265 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %266 unwind label %274

266:                                              ; preds = %.preheader144.split
  %267 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %268 unwind label %276

268:                                              ; preds = %266
  %269 = getelementptr inbounds i8, ptr %265, i64 192
  %270 = getelementptr inbounds i8, ptr %267, i64 192
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %270)
  %271 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %27)
  %272 = invoke noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEbRKNS1_15static_any_baseESC_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %23, ptr noundef nonnull align 1 dereferenceable(1) %25, ptr noundef nonnull align 8 dereferenceable(48) %269)
          to label %273 unwind label %276

273:                                              ; preds = %268
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #10
  br i1 %272, label %.loopexit145, label %278

274:                                              ; preds = %.split181.us, %.preheader144.split
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %308

276:                                              ; preds = %268, %266
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #10
  br label %308

278:                                              ; preds = %273
  %279 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %280 unwind label %295

280:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #10
  %281 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %.split.us unwind label %297

.split.us:                                        ; preds = %280
  %282 = getelementptr inbounds i8, ptr %279, i64 192
  %283 = getelementptr inbounds i8, ptr %281, i64 192
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %283)
  %284 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %28)
  %285 = call noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_17test_unit_fixtureESt3setIPNS0_14global_fixtureESt4lessIS7_ESaIS7_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISC_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %23, ptr noundef nonnull align 8 dereferenceable(48) %282)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #10
  %286 = call ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %228) #10
  store ptr %286, ptr %30, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost10shared_ptrINS1_9unit_test17test_unit_fixtureEEESt6vectorIS5_SaIS5_EEEC2IPS5_vEERKNS0_IT_SA_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #10
  %287 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #12
          to label %288 unwind label %.split176.us

288:                                              ; preds = %.split.us
  call void @_ZN5boost9unit_test9framework4impl21global_fixture_handleC2EPNS0_17test_unit_fixtureE(ptr noundef nonnull align 8 dereferenceable(16) %287, ptr noundef %285)
  invoke void @_ZN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEEC2INS1_9framework4impl21global_fixture_handleEEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull %287)
          to label %289 unwind label %.split176.us

289:                                              ; preds = %288
  %290 = load ptr, ptr %29, align 8
  %291 = invoke ptr @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EE6insertEN9__gnu_cxx17__normal_iteratorIPKS4_S6_EEOS4_(ptr noundef nonnull align 8 dereferenceable(24) %228, ptr %290, ptr noundef nonnull align 8 dereferenceable(16) %31)
          to label %.split181.us unwind label %.split178.us

.split181.us:                                     ; preds = %289
  call void @_ZN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #10
  %292 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %300 unwind label %274

.split176.us:                                     ; preds = %288, %.split.us
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %299

.split178.us:                                     ; preds = %289
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost10shared_ptrINS_9unit_test17test_unit_fixtureEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #10
  br label %299

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

297:                                              ; preds = %280
  %298 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  br label %308

299:                                              ; preds = %.split178.us, %.split176.us
  %.pn119 = phi { ptr, i32 } [ %294, %.split178.us ], [ %293, %.split176.us ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  br label %308

300:                                              ; preds = %.split181.us
  %301 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %302 unwind label %306

302:                                              ; preds = %300
  %303 = getelementptr inbounds i8, ptr %292, i64 192
  %304 = getelementptr inbounds i8, ptr %301, i64 192
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEENS_8is_constIT_EERSB_(ptr noundef nonnull align 8 dereferenceable(48) %304)
  %305 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %32)
  call void @_ZN5boost9unit_test8for_each4nextISt3setIPNS0_14global_fixtureESt4lessIS5_ESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %23, ptr noundef nonnull align 8 dereferenceable(48) %303)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #10
  br label %.preheader144.split, !llvm.loop !60

306:                                              ; preds = %300
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #10
  br label %308

308:                                              ; preds = %295, %297, %299, %306, %276, %274
  %.pn119.pn.pn = phi { ptr, i32 } [ %307, %306 ], [ %275, %274 ], [ %277, %276 ], [ %.pn119, %299 ], [ %298, %297 ], [ %296, %295 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  br label %309

.loopexit145:                                     ; preds = %273, %259
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  br label %310

309:                                              ; preds = %308, %263, %261
  %.pn119.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn, %308 ], [ %264, %263 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  br label %357

310:                                              ; preds = %240, %.loopexit145
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #10
  call void @_ZN5boost9unit_test9framework14swap_on_deleteISt6vectorINS_10shared_ptrINS0_17test_unit_fixtureEEESaIS6_EEEC2ERS8_SA_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(24) %228)
  %311 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %312 unwind label %317

312:                                              ; preds = %310
  %313 = getelementptr inbounds i8, ptr %311, i64 104
  store i8 1, ptr %313, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #10
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(32) @_ZN5boost9unit_test14runtime_config16btrt_random_seedB5cxx11E)
  %314 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost9unit_test14runtime_config3getIjEERKT_NS0_13basic_cstringIKcEE(ptr noundef nonnull %35)
          to label %315 unwind label %319

315:                                              ; preds = %312
  %316 = load i32, ptr %314, align 4, !tbaa !61
  store i32 %316, ptr %34, align 4, !tbaa !61
  switch i32 %316, label %326 [
    i32 0, label %339
    i32 1, label %321
  ]

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

319:                                              ; preds = %341, %339, %312
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %355

321:                                              ; preds = %315
  %322 = call i32 @rand() #10
  %323 = call i64 @time(ptr noundef null) #10
  %324 = trunc i64 %323 to i32
  %325 = xor i32 %322, %324
  store i32 %325, ptr %34, align 4, !tbaa !61
  br label %326

326:                                              ; preds = %321, %315
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #10
  %327 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #10
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull @.str.135)
          to label %328 unwind label %344

328:                                              ; preds = %326
  invoke void @_ZN5boost9unit_test3log5beginC2ENS0_13basic_cstringIKcEEm(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull %38, i64 noundef 0)
          to label %329 unwind label %344

329:                                              ; preds = %328
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost9unit_test15unit_test_log_tlsERKNS0_3log5beginE(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef nonnull align 8 dereferenceable(24) %37)
          to label %331 unwind label %344

331:                                              ; preds = %329
  invoke void @_ZN5boost9unit_test15unit_test_log_tclENS0_9log_levelE(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::ut_detail::entry_value_collector") align 1 %36, ptr noundef nonnull align 8 dereferenceable(8) %330, i32 noundef 2)
          to label %332 unwind label %344

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #10
  %333 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  invoke void @_ZN5boost9unit_testlsIA42_cEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS5_EERKS4_S7_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.200") align 8 %40, ptr noundef nonnull align 8 dereferenceable(9) %333, ptr noundef nonnull align 1 dereferenceable(42) @.str.136)
          to label %334 unwind label %346

334:                                              ; preds = %332
  invoke void @_ZN5boost9unit_testlsINS0_12lazy_ostreamEA42_cjEENS0_17lazy_ostream_implINS4_IT_T0_RKS6_EET1_RKSA_EERKS9_SC_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %335 unwind label %348

335:                                              ; preds = %334
  %336 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost9unit_test9ut_detail21entry_value_collectorlsERKNS0_12lazy_ostreamE(ptr noundef nonnull align 1 dereferenceable(1) %36, ptr noundef nonnull align 8 dereferenceable(9) %39)
          to label %337 unwind label %350

337:                                              ; preds = %335
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #10
  call void @_ZN5boost9unit_test9ut_detail21entry_value_collectorD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #10
  %338 = load i32, ptr %34, align 4, !tbaa !61
  call void @srand(i32 noundef %338) #10
  br label %339

339:                                              ; preds = %337, %315
  %340 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %341 unwind label %319

341:                                              ; preds = %339
  %342 = invoke noundef i32 @_ZN5boost9unit_test9framework5state17execute_test_treeEmmPKNS2_23random_generator_helperE(ptr noundef nonnull align 8 dereferenceable(360) %340, i64 noundef %.0, i64 noundef 0, ptr noundef null)
          to label %343 unwind label %319

343:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #10
  call void @_ZN5boost9unit_test9framework14swap_on_deleteISt6vectorINS_10shared_ptrINS0_17test_unit_fixtureEEESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #10
  call void @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #10
  br label %360

344:                                              ; preds = %331, %329, %328, %326
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %354

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

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

350:                                              ; preds = %335
  %351 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  br label %352

352:                                              ; preds = %350, %348
  %.pn125 = phi { ptr, i32 } [ %351, %350 ], [ %349, %348 ]
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %353

353:                                              ; preds = %352, %346
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %352 ], [ %347, %346 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #10
  call void @_ZN5boost9unit_test9ut_detail21entry_value_collectorD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  br label %354

354:                                              ; preds = %353, %344
  %.pn125.pn.pn = phi { ptr, i32 } [ %.pn125.pn, %353 ], [ %345, %344 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #10
  br label %355

355:                                              ; preds = %354, %319
  %.pn129 = phi { ptr, i32 } [ %320, %319 ], [ %.pn125.pn.pn, %354 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #10
  br label %356

356:                                              ; preds = %355, %317
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %355 ], [ %318, %317 ]
  call void @_ZN5boost9unit_test9framework14swap_on_deleteISt6vectorINS_10shared_ptrINS0_17test_unit_fixtureEEESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #10
  br label %357

357:                                              ; preds = %246, %248, %309, %356
  %.pn129.pn.pn = phi { ptr, i32 } [ %.pn129.pn, %356 ], [ %.pn119.pn.pn.pn, %309 ], [ %249, %248 ], [ %247, %246 ]
  call void @_ZNSt6vectorIN5boost10shared_ptrINS0_9unit_test17test_unit_fixtureEEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  br label %358

358:                                              ; preds = %357, %244
  %.pn129.pn.pn.pn = phi { ptr, i32 } [ %.pn129.pn.pn, %357 ], [ %245, %244 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #10
  br label %359

359:                                              ; preds = %358, %242
  %.pn129.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn129.pn.pn.pn, %358 ], [ %243, %242 ]
  %.20 = extractvalue { ptr, i32 } %.pn129.pn.pn.pn.pn, 0
  %.2088 = extractvalue { ptr, i32 } %.pn129.pn.pn.pn.pn, 1
  br label %461

360:                                              ; preds = %343, %223
  %361 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %362 unwind label %108

362:                                              ; preds = %360
  %363 = getelementptr inbounds i8, ptr %361, i64 104
  store i8 0, ptr %363, align 8, !tbaa !9
  invoke void @_ZN5boost9unit_test16results_reporter11make_reportENS0_12report_levelEm(i32 noundef 0, i64 noundef %.0)
          to label %364 unwind label %108

364:                                              ; preds = %362
  invoke void @_ZN5boost9unit_test9framework24register_observer_helper12register_obsEv(ptr noundef nonnull align 8 dereferenceable(9) %9)
          to label %365 unwind label %108

365:                                              ; preds = %364
  call void @_ZN5boost9unit_test25framework_init_observer_t5clearEv(ptr noundef nonnull align 8 dereferenceable(9) %8)
  br i1 %.demorgan, label %446, label %366

366:                                              ; preds = %365
  %367 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %368 unwind label %108

368:                                              ; preds = %366
  %369 = getelementptr inbounds i8, ptr %367, i64 104
  store i8 0, ptr %369, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #10
  %370 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %371 unwind label %380

371:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #10
  %372 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %373 unwind label %382

373:                                              ; preds = %371
  %374 = getelementptr inbounds i8, ptr %370, i64 112
  %375 = getelementptr inbounds i8, ptr %372, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %375)
  %376 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %42)
  %377 = invoke ptr @_ZN5boost9unit_test8for_each3endISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %374)
          to label %378 unwind label %382

378:                                              ; preds = %373
  store ptr %377, ptr %41, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #10
  %379 = call noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %41)
  br i1 %379, label %444, label %384

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

382:                                              ; preds = %373, %371
  %383 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #10
  br label %445

384:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #10
  %385 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %386 unwind label %395

386:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #10
  %387 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %388 unwind label %397

388:                                              ; preds = %386
  %389 = getelementptr inbounds i8, ptr %385, i64 112
  %390 = getelementptr inbounds i8, ptr %387, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %390)
  %391 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %44)
  %392 = invoke ptr @_ZN5boost9unit_test8for_each5beginISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS1_10static_anyINT_8iteratorEEERSC_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(48) %389)
          to label %393 unwind label %397

393:                                              ; preds = %388
  store ptr %392, ptr %43, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #10
  %394 = call noundef zeroext i1 @_ZNK5boost9unit_test8for_each15static_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %43)
  br i1 %394, label %.loopexit143, label %.preheader.split

395:                                              ; preds = %384
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %443

397:                                              ; preds = %388, %386
  %398 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #10
  br label %443

.preheader.split:                                 ; preds = %393, %.loopexit.split.us
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #10
  %399 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %400 unwind label %408

400:                                              ; preds = %.preheader.split
  %401 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %402 unwind label %410

402:                                              ; preds = %400
  %403 = getelementptr inbounds i8, ptr %399, i64 112
  %404 = getelementptr inbounds i8, ptr %401, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %404)
  %405 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %45)
  %406 = invoke noundef zeroext i1 @_ZN5boost9unit_test8for_each4doneISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEbRKNS1_15static_any_baseESD_RT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %41, ptr noundef nonnull align 1 dereferenceable(1) %43, ptr noundef nonnull align 8 dereferenceable(48) %403)
          to label %407 unwind label %410

407:                                              ; preds = %402
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #10
  br i1 %406, label %.loopexit143, label %412

408:                                              ; preds = %412, %.preheader.split
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %442

410:                                              ; preds = %402, %400
  %411 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #10
  br label %442

412:                                              ; preds = %407
  %413 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %414 unwind label %408

414:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #10
  %415 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %416 unwind label %421

416:                                              ; preds = %414
  %417 = getelementptr inbounds i8, ptr %413, i64 112
  %418 = getelementptr inbounds i8, ptr %415, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %418)
  %419 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %46)
  call void @_ZN5boost9unit_test8for_each4prevISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %41, ptr noundef nonnull align 8 dereferenceable(48) %417)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #10
  %420 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %423 unwind label %437

421:                                              ; preds = %414
  %422 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #10
  br label %442

423:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #10
  %424 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %.split186.us unwind label %439

.split186.us:                                     ; preds = %423
  %425 = getelementptr inbounds i8, ptr %420, i64 112
  %426 = getelementptr inbounds i8, ptr %424, i64 112
  call void @_ZN5boost9unit_test8for_each13is_const_collISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEENS_8is_constIT_EERSC_(ptr noundef nonnull align 8 dereferenceable(48) %426)
  %427 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost17integral_constantIbLb0EEcvRKN4mpl_5bool_ILb0EEEEv(ptr noundef nonnull align 1 dereferenceable(1) %47)
  %428 = call noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_13test_observerESt3setIS4_NS0_9framework5state14priority_orderESaIS4_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISB_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %41, ptr noundef nonnull align 8 dereferenceable(48) %425)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #10
  %429 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %430 unwind label %.split188.us

430:                                              ; preds = %.split186.us
  %431 = getelementptr inbounds i8, ptr %429, i64 32
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreC2ERmm(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(8) %431, i64 noundef %.0)
  %432 = load ptr, ptr %428, align 8, !tbaa !62
  %433 = getelementptr inbounds i8, ptr %432, i64 8
  %434 = load ptr, ptr %433, align 8
  invoke void %434(ptr noundef nonnull align 8 dereferenceable(8) %428)
          to label %.loopexit.split.us unwind label %.split191.us

.loopexit.split.us:                               ; preds = %430
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #10
  br label %.preheader.split, !llvm.loop !64

.split188.us:                                     ; preds = %.split186.us
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %441

.split191.us:                                     ; preds = %430
  %436 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test9ut_detail20test_unit_id_restoreD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  br label %441

437:                                              ; preds = %416
  %438 = landingpad { ptr, i32 }
          cleanup
  br label %442

439:                                              ; preds = %423
  %440 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #10
  br label %442

441:                                              ; preds = %.split191.us, %.split188.us
  %.pn135 = phi { ptr, i32 } [ %436, %.split191.us ], [ %435, %.split188.us ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #10
  br label %442

442:                                              ; preds = %437, %439, %441, %421, %410, %408
  %.pn135.pn.pn = phi { ptr, i32 } [ %422, %421 ], [ %409, %408 ], [ %411, %410 ], [ %.pn135, %441 ], [ %440, %439 ], [ %438, %437 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  br label %443

.loopexit143:                                     ; preds = %407, %393
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  br label %444

443:                                              ; preds = %442, %397, %395
  %.pn135.pn.pn.pn = phi { ptr, i32 } [ %.pn135.pn.pn, %442 ], [ %398, %397 ], [ %396, %395 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  br label %445

444:                                              ; preds = %378, %.loopexit143
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  br label %446

445:                                              ; preds = %443, %382, %380
  %.pn135.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn135.pn.pn.pn, %443 ], [ %383, %382 ], [ %381, %380 ]
  %.25 = extractvalue { ptr, i32 } %.pn135.pn.pn.pn.pn, 0
  %.2593 = extractvalue { ptr, i32 } %.pn135.pn.pn.pn.pn, 1
  br label %461

446:                                              ; preds = %444, %365
  %447 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZN5boost9unit_test9framework4impl12_GLOBAL__N_111s_frk_stateEv()
          to label %448 unwind label %108

448:                                              ; preds = %446
  %449 = getelementptr inbounds i8, ptr %447, i64 104
  store i8 %84, ptr %449, align 8, !tbaa !9
  br i1 %224, label %450, label %452

450:                                              ; preds = %448
  %451 = call noundef zeroext i1 @_ZNK5boost9unit_test25framework_init_observer_t10has_failedEv(ptr noundef nonnull align 8 dereferenceable(9) %8)
  br i1 %451, label %452, label %460

452:                                              ; preds = %450, %448
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #10
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(16) %7)
  invoke void @_ZN5boost9unit_test9framework11setup_errorC2ENS0_13basic_cstringIKcEE(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull %50)
          to label %453 unwind label %455

453:                                              ; preds = %452
  invoke void @_ZN5boost9unit_test9ut_detail15throw_exceptionINS0_9framework11setup_errorEEEvRKT_(ptr noundef nonnull align 8 dereferenceable(16) %49) #11
          to label %454 unwind label %457

454:                                              ; preds = %453
  unreachable

455:                                              ; preds = %452
  %456 = landingpad { ptr, i32 }
          cleanup
  br label %459

457:                                              ; preds = %453
  %458 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #10
  br label %459

459:                                              ; preds = %457, %455
  %.pn141 = phi { ptr, i32 } [ %458, %457 ], [ %456, %455 ]
  %.26 = extractvalue { ptr, i32 } %.pn141, 0
  %.2694 = extractvalue { ptr, i32 } %.pn141, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #10
  br label %461

460:                                              ; preds = %450
  call void @_ZN5boost9unit_test9framework24register_observer_helperD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %9) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #10
  call void @_ZN5boost9unit_test13test_observerD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %8) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #10
  call void @_ZN5boost9unit_test17test_tree_visitorD2Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #10
  ret void

461:                                              ; preds = %112, %116, %220, %459, %445, %359, %108
  %.2795 = phi i32 [ %.2694, %459 ], [ %111, %108 ], [ %.2593, %445 ], [ %.2088, %359 ], [ %.674, %220 ], [ %119, %116 ], [ %115, %112 ]
  %.27 = phi ptr [ %.26, %459 ], [ %110, %108 ], [ %.25, %445 ], [ %.20, %359 ], [ %.6, %220 ], [ %118, %116 ], [ %114, %112 ]
  call void @_ZN5boost9unit_test9framework24register_observer_helperD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %9) #10
  br label %462

462:                                              ; preds = %461, %104
  %.2896 = phi i32 [ %.2795, %461 ], [ %107, %104 ]
  %.28 = phi ptr [ %.27, %461 ], [ %106, %104 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #10
  call void @_ZN5boost9unit_test13test_observerD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %8) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #10
  br label %463

463:                                              ; preds = %100, %462, %80, %63
  %.3098 = phi i32 [ %.068, %80 ], [ %66, %63 ], [ %.2896, %462 ], [ %103, %100 ]
  %.30 = phi ptr [ %.066, %80 ], [ %65, %63 ], [ %.28, %462 ], [ %102, %100 ]
  call void @_ZN5boost9unit_test17test_tree_visitorD2Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #10
  %464 = insertvalue { ptr, i32 } poison, ptr %.30, 0
  %465 = insertvalue { ptr, i32 } %464, i32 %.3098, 1
  resume { ptr, i32 } %465

466:                                              ; preds = %202
  %467 = landingpad { ptr, i32 }
          catch ptr null
  %468 = extractvalue { ptr, i32 } %467, 0
  call void @__clang_call_terminate(ptr %468) #13
  unreachable
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5boost9unit_test19unit_test_monitor_t21execute_and_translateERKNS_8functionIFvvEEEm(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost4bindIvNS_9unit_test13test_observerEmmPS2_NS1_17test_case_counter19readonly_property43EmEENS_3_bi6bind_tIT_NS_4_mfi3mf2IS8_T0_T1_T2_EENS6_9list_av_3IT3_T4_T5_E4typeEEEMSB_FS8_SC_SD_ESG_SH_SI_(ptr dead_on_unwind noalias writable sret(%"class.boost::_bi::bind_t.188") align 8, i64, i64, ptr noundef, i64, i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost8functionIFvvEEC2INS_3_bi6bind_tIvNS_4_mfi3mf2IvNS_9unit_test13test_observerEmmEENS4_5list3INS4_5valueIPS9_EENSC_INS8_17test_case_counter19readonly_property43EEENSC_ImEEEEEEEET_NS_10enable_if_IXntsr11is_integralISL_EE5valueEiE4typeE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef byval(%"class.boost::_bi::bind_t.188") align 8, i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK5boost9unit_test25framework_init_observer_t10has_failedEv(ptr noundef nonnull align 8 dereferenceable(9)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5boost9unit_test8for_each5derefIPNS0_17test_unit_fixtureESt3setIPNS0_14global_fixtureESt4lessIS7_ESaIS7_EEEET_RKNS1_15static_any_baseERT0_NS_4typeISC_EEN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost9unit_test14runtime_config3getIjEERKT_NS0_13basic_cstringIKcEE(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #9

; Function Attrs: nounwind
declare i64 @time(ptr noundef) local_unnamed_addr #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost9unit_test15unit_test_log_tclENS0_9log_levelE(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::ut_detail::entry_value_collector") align 1, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost9unit_testlsINS0_12lazy_ostreamEA42_cjEENS0_17lazy_ostream_implINS4_IT_T0_RKS6_EET1_RKSA_EERKS9_SC_(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::lazy_ostream_impl") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost9unit_testlsIA42_cEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS5_EERKS4_S7_(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::lazy_ostream_impl.200") align 8, ptr noundef nonnull align 8 dereferenceable(9), ptr noundef nonnull align 1 dereferenceable(42)) local_unnamed_addr #3

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

; Function Attrs: nounwind
declare void @srand(i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5boost9unit_test9framework5state17execute_test_treeEmmPKNS2_23random_generator_helperE(ptr noundef nonnull align 8 dereferenceable(360), i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost9unit_test16results_reporter11make_reportENS0_12report_levelEm(i32 noundef, i64 noundef) local_unnamed_addr #2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost9unit_test8for_each4prevISt3setIPNS0_13test_observerENS0_9framework5state14priority_orderESaIS5_EEEEvRKNS1_15static_any_baseERT_N4mpl_5bool_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

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

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

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

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

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

declare void @_ZN5boost9unit_test9ut_detail21entry_value_collectorD1Ev(ptr) local_unnamed_addr

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !24, i64 104}
!10 = !{!"_ZTSN5boost9unit_test9framework5stateE", !11, i64 0, !12, i64 8, !6, i64 32, !16, i64 40, !6, i64 88, !6, i64 96, !24, i64 104, !25, i64 112, !30, i64 160, !34, i64 184, !35, i64 192, !40, i64 240, !50, i64 288, !55, i64 336}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIPN5boost9unit_test10test_suiteESaIS3_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIPN5boost9unit_test10test_suiteESaIS3_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIPN5boost9unit_test10test_suiteESaIS3_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIPN5boost9unit_test10test_suiteESaIS3_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!16 = !{!"_ZTSSt3mapImPN5boost9unit_test9test_unitESt4lessImESaISt4pairIKmS3_EEE", !17, i64 0}
!17 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmPN5boost9unit_test9test_unitEESt10_Select1stIS6_ESt4lessImESaIS6_EE", !18, i64 0}
!18 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmPN5boost9unit_test9test_unitEESt10_Select1stIS6_ESt4lessImESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !19, i64 0, !21, i64 8}
!19 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !20, i64 0}
!20 = !{!"_ZTSSt4lessImE"}
!21 = !{!"_ZTSSt15_Rb_tree_header", !22, i64 0, !6, i64 32}
!22 = !{!"_ZTSSt18_Rb_tree_node_base", !23, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!23 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"_ZTSSt3setIPN5boost9unit_test13test_observerENS1_9framework5state14priority_orderESaIS3_EE", !26, i64 0}
!26 = !{!"_ZTSSt8_Rb_treeIPN5boost9unit_test13test_observerES3_St9_IdentityIS3_ENS1_9framework5state14priority_orderESaIS3_EE", !27, i64 0}
!27 = !{!"_ZTSNSt8_Rb_treeIPN5boost9unit_test13test_observerES3_St9_IdentityIS3_ENS1_9framework5state14priority_orderESaIS3_EE13_Rb_tree_implIS8_Lb1EEE", !28, i64 0, !21, i64 8}
!28 = !{!"_ZTSSt20_Rb_tree_key_compareIN5boost9unit_test9framework5state14priority_orderEE", !29, i64 0}
!29 = !{!"_ZTSN5boost9unit_test9framework5state14priority_orderE"}
!30 = !{!"_ZTSSt6vectorIN5boost9unit_test9framework5state13context_frameESaIS4_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIN5boost9unit_test9framework5state13context_frameESaIS4_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN5boost9unit_test9framework5state13context_frameESaIS4_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN5boost9unit_test9framework5state13context_frameESaIS4_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!34 = !{!"int", !7, i64 0}
!35 = !{!"_ZTSSt3setIPN5boost9unit_test14global_fixtureESt4lessIS3_ESaIS3_EE", !36, i64 0}
!36 = !{!"_ZTSSt8_Rb_treeIPN5boost9unit_test14global_fixtureES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE", !37, i64 0}
!37 = !{!"_ZTSNSt8_Rb_treeIPN5boost9unit_test14global_fixtureES3_St9_IdentityIS3_ESt4lessIS3_ESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !38, i64 0, !21, i64 8}
!38 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPN5boost9unit_test14global_fixtureEEE", !39, i64 0}
!39 = !{!"_ZTSSt4lessIPN5boost9unit_test14global_fixtureEE"}
!40 = !{!"_ZTSN5boost17execution_monitorE", !41, i64 0, !41, i64 1, !43, i64 8, !41, i64 16, !45, i64 20, !47, i64 24, !49, i64 40}
!41 = !{!"_ZTSN5boost9unit_test18readwrite_propertyIbEE", !42, i64 0}
!42 = !{!"_ZTSN5boost9unit_test14class_propertyIbEE", !24, i64 0}
!43 = !{!"_ZTSN5boost9unit_test18readwrite_propertyImEE", !44, i64 0}
!44 = !{!"_ZTSN5boost9unit_test14class_propertyImEE", !6, i64 0}
!45 = !{!"_ZTSN5boost9unit_test18readwrite_propertyIjEE", !46, i64 0}
!46 = !{!"_ZTSN5boost9unit_test14class_propertyIjEE", !34, i64 0}
!47 = !{!"_ZTSN5boost10shared_ptrINS_6detail22translator_holder_baseEEE", !11, i64 0, !48, i64 8}
!48 = !{!"_ZTSN5boost6detail12shared_countE", !11, i64 0}
!49 = !{!"_ZTSN5boost12scoped_arrayIcEE", !11, i64 0}
!50 = !{!"_ZTSSt3mapIN5boost9unit_test13output_formatENS1_14runtime_config13stream_holderESt4lessIS2_ESaISt4pairIKS2_S4_EEE", !51, i64 0}
!51 = !{!"_ZTSSt8_Rb_treeIN5boost9unit_test13output_formatESt4pairIKS2_NS1_14runtime_config13stream_holderEESt10_Select1stIS7_ESt4lessIS2_ESaIS7_EE", !52, i64 0}
!52 = !{!"_ZTSNSt8_Rb_treeIN5boost9unit_test13output_formatESt4pairIKS2_NS1_14runtime_config13stream_holderEESt10_Select1stIS7_ESt4lessIS2_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !53, i64 0, !21, i64 8}
!53 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN5boost9unit_test13output_formatEEE", !54, i64 0}
!54 = !{!"_ZTSSt4lessIN5boost9unit_test13output_formatEE"}
!55 = !{!"_ZTSN5boost9unit_test14runtime_config13stream_holderE", !56, i64 0, !11, i64 16}
!56 = !{!"_ZTSN5boost10shared_ptrINS_9unit_test14runtime_config13stream_holder16callback_cleanerEEE", !11, i64 0, !48, i64 8}
!57 = !{!11, !11, i64 0}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = distinct !{!60, !59}
!61 = !{!34, !34, i64 0}
!62 = !{!63, !63, i64 0}
!63 = !{!"vtable pointer", !8, i64 0}
!64 = distinct !{!64, !59}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass