; LLVM IR from Mjolnir-MD/Mjolnir :: test/core/test_pulling_force_interaction.ll (ZN12PullingForce11test_methodEv)

; 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.std::allocator" = type { i8 }
%"class.mjolnir::PullingForceInteraction" = type { %"class.mjolnir::ExternalForceInteractionBase", %"class.std::vector.314" }
%"class.mjolnir::ExternalForceInteractionBase" = type { ptr }
%"class.std::vector.314" = type { %"struct.std::_Vector_base.315" }
%"struct.std::_Vector_base.315" = type { %"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"struct.std::pair.319" = type { i64, %"class.mjolnir::math::Matrix" }
%"class.mjolnir::math::Matrix" = type { %"struct.std::array" }
%"struct.std::array" = type { [3 x double] }
%"class.std::allocator.316" = type { i8 }
%"class.mjolnir::System" = type { i8, i8, %"class.std::map.321", %"class.std::map.326", %"class.mjolnir::math::Matrix.331", i64, %"class.std::vector.333", %"class.std::vector.333", %"class.std::vector.338", %"class.std::vector.338", %"class.std::vector.338", %"class.std::vector", %"class.std::vector" }
%"class.std::map.321" = type { %"class.std::_Rb_tree.322" }
%"class.std::_Rb_tree.322" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_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::map.326" = type { %"class.std::_Rb_tree.327" }
%"class.std::_Rb_tree.327" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.mjolnir::math::Matrix.331" = type { %"struct.std::array.332" }
%"struct.std::array.332" = type { [9 x double] }
%"class.std::vector.333" = type { %"struct.std::_Vector_base.334" }
%"struct.std::_Vector_base.334" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.338" = type { %"struct.std::_Vector_base.339" }
%"struct.std::_Vector_base.339" = type { %"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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 }
%"struct.mjolnir::UnlimitedBoundary" = type { i8 }
%"class.boost::unit_test::basic_cstring" = type { ptr, ptr }
%"class.boost::test_tools::assertion_result" = type { %"class.boost::test_tools::assertion_result::readonly_property65", %"class.boost::shared_ptr.225" }
%"class.boost::test_tools::assertion_result::readonly_property65" = type { %"class.boost::unit_test::readonly_property.213" }
%"class.boost::unit_test::readonly_property.213" = type { %"class.boost::unit_test::class_property.98" }
%"class.boost::unit_test::class_property.98" = type { i8 }
%"class.boost::shared_ptr.225" = type { ptr, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { ptr }
%"struct.boost::test_tools::tt_detail::assertion_evaluate_t" = type <{ ptr, %"class.std::__cxx11::list.343", i8, [7 x i8] }>
%"class.std::__cxx11::list.343" = type { %"class.std::__cxx11::_List_base.344" }
%"class.std::__cxx11::_List_base.344" = type { %"struct.std::__cxx11::_List_base<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>, std::allocator<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>, std::allocator<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.boost::test_tools::assertion::binary_expr" = type { %"class.boost::test_tools::assertion::value_expr", ptr }
%"class.boost::test_tools::assertion::value_expr" = type { double }
%"class.boost::test_tools::assertion::seed" = type { i8 }
%"struct.boost::test_tools::tt_detail::tolerance_manip" = type { double }
%"class.boost::unit_test::lazy_ostream_impl.349" = type { %"class.boost::unit_test::lazy_ostream.base", ptr, ptr }
%"class.boost::unit_test::lazy_ostream.base" = type <{ ptr, i8 }>
%"struct.boost::test_tools::tt_detail::assertion_type" = type { i32 }

@_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE = external hidden global ptr, align 8
@.str.401 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [38 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; 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 #1 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) #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(9), ptr noundef, i64 noundef, i32 noundef, i32 noundef, i64 noundef, ...) #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN12PullingForce11test_methodEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.mjolnir::PullingForceInteraction", align 8
  %8 = alloca %"class.std::vector.314", align 8
  %9 = alloca %"class.std::initializer_list", align 8
  %10 = alloca [2 x %"struct.std::pair.319"], align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.mjolnir::math::Matrix", align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.mjolnir::math::Matrix", align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca %"class.std::allocator.316", align 1
  %22 = alloca %"class.mjolnir::System", align 8
  %23 = alloca %"struct.mjolnir::UnlimitedBoundary", align 1
  %24 = alloca i64, align 8
  %25 = alloca %"class.mjolnir::math::Matrix", align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca %"class.mjolnir::math::Matrix", align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca %"class.mjolnir::math::Matrix", align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %39 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %40 = alloca %"class.boost::test_tools::assertion_result", align 8
  %41 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %42 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %43 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %44 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %45 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %46 = alloca double, align 8
  %47 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %48 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %49 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %50 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %51 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %52 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %53 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %54 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %55 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %56 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %57 = alloca %"class.boost::test_tools::assertion_result", align 8
  %58 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %59 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %60 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %61 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %62 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %63 = alloca double, align 8
  %64 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %65 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %66 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %67 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %68 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %69 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %70 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %71 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %72 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %73 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %74 = alloca %"class.boost::test_tools::assertion_result", align 8
  %75 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %76 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %77 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %78 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %79 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %80 = alloca double, align 8
  %81 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %82 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %83 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %84 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %85 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %86 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %87 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %88 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %89 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %90 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %91 = alloca %"class.boost::test_tools::assertion_result", align 8
  %92 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %93 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %94 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %95 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %96 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %97 = alloca double, align 8
  %98 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %99 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %100 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %101 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %102 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %103 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %104 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %105 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %106 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %107 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %108 = alloca %"class.boost::test_tools::assertion_result", align 8
  %109 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %110 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %111 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %112 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %113 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %114 = alloca double, align 8
  %115 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %116 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %117 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %118 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %119 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %120 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %121 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %122 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %123 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %124 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %125 = alloca %"class.boost::test_tools::assertion_result", align 8
  %126 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %127 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %128 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %129 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %130 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %131 = alloca double, align 8
  %132 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %133 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %134 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %135 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %136 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %137 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %138 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %139 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %140 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %141 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %142 = alloca %"class.boost::test_tools::assertion_result", align 8
  %143 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %144 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %145 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %146 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %147 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %148 = alloca double, align 8
  %149 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %150 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %151 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %152 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %153 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %154 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %155 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %156 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %157 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %158 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %159 = alloca %"class.boost::test_tools::assertion_result", align 8
  %160 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %161 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %162 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %163 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %164 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %165 = alloca double, align 8
  %166 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %167 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %168 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %169 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %170 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %171 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %172 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %173 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %174 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %175 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %176 = alloca %"class.boost::test_tools::assertion_result", align 8
  %177 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %178 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %179 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %180 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %181 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %182 = alloca double, align 8
  %183 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %184 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %185 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %186 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %187 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %188 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %189 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %190 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %191 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %192 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %193 = alloca %"class.boost::test_tools::assertion_result", align 8
  %194 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %195 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %196 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %197 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %198 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %199 = alloca double, align 8
  %200 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %201 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %202 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %203 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %204 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %205 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %206 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %207 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %208 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %209 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %210 = alloca %"class.boost::test_tools::assertion_result", align 8
  %211 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %212 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %213 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %214 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %215 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %216 = alloca double, align 8
  %217 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %218 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %219 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %220 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %221 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %222 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %223 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %224 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %225 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %226 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %227 = alloca %"class.boost::test_tools::assertion_result", align 8
  %228 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %229 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %230 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %231 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %232 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %233 = alloca double, align 8
  %234 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %235 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %236 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %237 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %238 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %239 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %240 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %241 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %242 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef @.str.402, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %243 unwind label %260

243:                                              ; preds = %1
  invoke void @_ZN7mjolnir20basic_logger_managerIcSt11char_traitsIcEE18set_default_loggerERKNSt7__cxx1112basic_stringIcS2_SaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %244 unwind label %264

244:                                              ; preds = %243
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  store i32 0, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  store double 1.000000e-01, ptr %13, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  store double 2.000000e-01, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  store double 3.000000e-01, ptr %15, align 8, !tbaa !11
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  call void @_ZNSt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEC2IiS3_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS7_S8_EEEbE4typeELb1EEEOS7_OS8_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(24) %12)
  %245 = getelementptr inbounds %"struct.std::pair.319", ptr %10, i64 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  store i32 2, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  store double -3.000000e-01, ptr %18, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  store double -4.000000e-01, ptr %19, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  store double -5.000000e-01, ptr %20, align 8, !tbaa !11
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  call void @_ZNSt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEC2IiS3_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS7_S8_EEEbE4typeELb1EEEOS7_OS8_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(24) %17)
  %246 = getelementptr inbounds %"class.std::initializer_list", ptr %9, i32 0, i32 0
  store ptr %10, ptr %246, align 8, !tbaa !13
  %247 = getelementptr inbounds %"class.std::initializer_list", ptr %9, i32 0, i32 1
  store i64 2, ptr %247, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #6
  call void @_ZNSaISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  %248 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
  %249 = load ptr, ptr %248, align 8
  %250 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
  %251 = load i64, ptr %250, align 8
  invoke void @_ZNSt6vectorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr %249, i64 %251, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %252 unwind label %269

252:                                              ; preds = %244
  invoke void @_ZN7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2EOSt6vectorISt4pairImNS_4math6MatrixIdLm3ELm1EEEESaISA_EE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %253 unwind label %273

253:                                              ; preds = %252
  call void @_ZNSt6vectorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @_ZNSt15__new_allocatorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 352, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #6
  invoke void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2EmRKNS2_IdNS_4math6MatrixIdLm3ELm1EEEEE(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 4, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %254 unwind label %278

254:                                              ; preds = %253
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  store i64 0, ptr %24, align 8, !tbaa !17
  br label %255

255:                                              ; preds = %301, %254
  %256 = load i64, ptr %24, align 8, !tbaa !17
  %257 = call noundef i64 @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(352) %22) #6
  %258 = icmp ult i64 %256, %257
  br i1 %258, label %282, label %259

259:                                              ; preds = %255
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  br label %308

260:                                              ; preds = %1
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %5, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %6, align 4
  br label %268

264:                                              ; preds = %243
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %5, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %268

268:                                              ; preds = %264, %260
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #6
  br label %1373

269:                                              ; preds = %244
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %5, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %6, align 4
  br label %277

273:                                              ; preds = %252
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %5, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %6, align 4
  call void @_ZNSt6vectorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  br label %277

277:                                              ; preds = %273, %269
  call void @_ZNSt15__new_allocatorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #6
  br label %1372

278:                                              ; preds = %253
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %5, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  br label %1371

282:                                              ; preds = %255
  %283 = load i64, ptr %24, align 8, !tbaa !17
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %283) #6
  store double 1.000000e+00, ptr %284, align 8, !tbaa !11
  %285 = load i64, ptr %24, align 8, !tbaa !17
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %285) #6
  store double 1.000000e+00, ptr %286, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  store double 0.000000e+00, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #6
  store double 0.000000e+00, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  store double 0.000000e+00, ptr %28, align 8, !tbaa !11
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #6
  %287 = load i64, ptr %24, align 8, !tbaa !17
  %288 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %287) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %288, ptr align 8 %25, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  store double 0.000000e+00, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  store double 0.000000e+00, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  store double 0.000000e+00, ptr %32, align 8, !tbaa !11
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #6
  %289 = load i64, ptr %24, align 8, !tbaa !17
  %290 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %289) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %290, ptr align 8 %29, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  store double 0.000000e+00, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  store double 0.000000e+00, ptr %35, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  store double 0.000000e+00, ptr %36, align 8, !tbaa !11
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #6
  %291 = load i64, ptr %24, align 8, !tbaa !17
  %292 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %291) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %292, ptr align 8 %33, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #6
  %293 = load i64, ptr %24, align 8, !tbaa !17
  %294 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %293) #6
  %295 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef @.str.403)
          to label %296 unwind label %304

296:                                              ; preds = %282
  %297 = load i64, ptr %24, align 8, !tbaa !17
  %298 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %297) #6
  %299 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef @.str.404)
          to label %300 unwind label %304

300:                                              ; preds = %296
  br label %301

301:                                              ; preds = %300
  %302 = load i64, ptr %24, align 8, !tbaa !17
  %303 = add i64 %302, 1
  store i64 %303, ptr %24, align 8, !tbaa !17
  br label %255, !llvm.loop !20

304:                                              ; preds = %296, %282
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %5, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  br label %1370

308:                                              ; preds = %259
  call void @_ZNK7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE10calc_forceERNS_6SystemIS3_EE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(352) %22) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  store double 0x3EB0C6F7A0B5ED8D, ptr %37, align 8, !tbaa !11
  br label %309

309:                                              ; preds = %351, %308
  %310 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef @.str.401, i64 noundef 96)
          to label %311 unwind label %837

311:                                              ; preds = %309
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %312 unwind label %837

312:                                              ; preds = %311
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %310, ptr noundef %38, i64 noundef 51, ptr noundef %39)
          to label %313 unwind label %837

313:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  store double 1.000000e-01, ptr %46, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %44, ptr noundef nonnull align 1 dereferenceable(1) %45, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %314 unwind label %841

314:                                              ; preds = %313
  %315 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 0) #6
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %315) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %43, ptr noundef nonnull align 1 dereferenceable(1) %44, ptr noundef nonnull align 8 dereferenceable(8) %316)
          to label %317 unwind label %841

317:                                              ; preds = %314
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %42, ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %318 unwind label %841

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  %319 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %320 unwind label %845

320:                                              ; preds = %318
  %321 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %47, i32 0, i32 0
  store double %319, ptr %321, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %41, ptr noundef nonnull align 8 dereferenceable(33) %42, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %322 unwind label %845

322:                                              ; preds = %320
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %40, ptr noundef nonnull align 8 dereferenceable(33) %41)
          to label %323 unwind label %849

323:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #6
  %324 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %325 unwind label %853

325:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef @.str.405, i64 noundef 37)
          to label %326 unwind label %857

326:                                              ; preds = %325
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %48, ptr noundef nonnull align 8 dereferenceable(9) %324, ptr noundef nonnull align 8 dereferenceable(16) %49)
          to label %327 unwind label %857

327:                                              ; preds = %326
  %328 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %329 unwind label %861

329:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #6
  %330 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %331 unwind label %865

331:                                              ; preds = %329
  %332 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %50, i32 0, i32 0
  store double %330, ptr %332, align 8
  %333 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %328, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %334 unwind label %865

334:                                              ; preds = %331
  %335 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %48, ptr noundef nonnull align 8 dereferenceable(9) %333)
          to label %336 unwind label %865

336:                                              ; preds = %334
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef @.str.401, i64 noundef 96)
          to label %337 unwind label %865

337:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %53, i32 noundef 1)
          to label %338 unwind label %869

338:                                              ; preds = %337
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #6
  %339 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %340 unwind label %873

340:                                              ; preds = %338
  %341 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %54, i32 0, i32 0
  store double %339, ptr %341, align 8
  %342 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %343 unwind label %873

343:                                              ; preds = %340
  %344 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %52, i32 0, i32 0
  store i32 %342, ptr %344, align 4
  %345 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %52)
          to label %346 unwind label %873

346:                                              ; preds = %343
  %347 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(9) %335, ptr noundef %51, i64 noundef 51, i32 noundef 1, i32 noundef %345, i64 noundef 0)
          to label %348 unwind label %873

348:                                              ; preds = %346
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #6
  br label %349

349:                                              ; preds = %348
  %350 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %351 unwind label %837

351:                                              ; preds = %349
  br i1 %350, label %309, label %352, !llvm.loop !22

352:                                              ; preds = %351
  br label %353

353:                                              ; preds = %395, %352
  %354 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %55, ptr noundef @.str.401, i64 noundef 96)
          to label %355 unwind label %837

355:                                              ; preds = %353
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56)
          to label %356 unwind label %837

356:                                              ; preds = %355
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef %55, i64 noundef 52, ptr noundef %56)
          to label %357 unwind label %837

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 24, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %59) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  store double 2.000000e-01, ptr %63, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %61, ptr noundef nonnull align 1 dereferenceable(1) %62, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %358 unwind label %885

358:                                              ; preds = %357
  %359 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 0) #6
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %359) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %60, ptr noundef nonnull align 1 dereferenceable(1) %61, ptr noundef nonnull align 8 dereferenceable(8) %360)
          to label %361 unwind label %885

361:                                              ; preds = %358
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %59, ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %362 unwind label %885

362:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  %363 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %364 unwind label %889

364:                                              ; preds = %362
  %365 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %64, i32 0, i32 0
  store double %363, ptr %365, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %58, ptr noundef nonnull align 8 dereferenceable(33) %59, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %366 unwind label %889

366:                                              ; preds = %364
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %57, ptr noundef nonnull align 8 dereferenceable(33) %58)
          to label %367 unwind label %893

367:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #6
  %368 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %369 unwind label %897

369:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef @.str.406, i64 noundef 37)
          to label %370 unwind label %901

370:                                              ; preds = %369
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %65, ptr noundef nonnull align 8 dereferenceable(9) %368, ptr noundef nonnull align 8 dereferenceable(16) %66)
          to label %371 unwind label %901

371:                                              ; preds = %370
  %372 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %373 unwind label %905

373:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #6
  %374 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %375 unwind label %909

375:                                              ; preds = %373
  %376 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %67, i32 0, i32 0
  store double %374, ptr %376, align 8
  %377 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %372, ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %378 unwind label %909

378:                                              ; preds = %375
  %379 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %65, ptr noundef nonnull align 8 dereferenceable(9) %377)
          to label %380 unwind label %909

380:                                              ; preds = %378
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef @.str.401, i64 noundef 96)
          to label %381 unwind label %909

381:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %70, i32 noundef 1)
          to label %382 unwind label %913

382:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  %383 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %384 unwind label %917

384:                                              ; preds = %382
  %385 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %71, i32 0, i32 0
  store double %383, ptr %385, align 8
  %386 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %70, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %387 unwind label %917

387:                                              ; preds = %384
  %388 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %69, i32 0, i32 0
  store i32 %386, ptr %388, align 4
  %389 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %69)
          to label %390 unwind label %917

390:                                              ; preds = %387
  %391 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(9) %379, ptr noundef %68, i64 noundef 52, i32 noundef 1, i32 noundef %389, i64 noundef 0)
          to label %392 unwind label %917

392:                                              ; preds = %390
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #6
  br label %393

393:                                              ; preds = %392
  %394 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %395 unwind label %837

395:                                              ; preds = %393
  br i1 %394, label %353, label %396, !llvm.loop !23

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %439, %396
  %398 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %72, ptr noundef @.str.401, i64 noundef 96)
          to label %399 unwind label %837

399:                                              ; preds = %397
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %400 unwind label %837

400:                                              ; preds = %399
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef %72, i64 noundef 53, ptr noundef %73)
          to label %401 unwind label %837

401:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 24, ptr %74) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %75) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #6
  store double 3.000000e-01, ptr %80, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %78, ptr noundef nonnull align 1 dereferenceable(1) %79, ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %402 unwind label %929

402:                                              ; preds = %401
  %403 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 0) #6
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %403) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %77, ptr noundef nonnull align 1 dereferenceable(1) %78, ptr noundef nonnull align 8 dereferenceable(8) %404)
          to label %405 unwind label %929

405:                                              ; preds = %402
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %76, ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %406 unwind label %929

406:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #6
  %407 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %408 unwind label %933

408:                                              ; preds = %406
  %409 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %81, i32 0, i32 0
  store double %407, ptr %409, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %75, ptr noundef nonnull align 8 dereferenceable(33) %76, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %410 unwind label %933

410:                                              ; preds = %408
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %74, ptr noundef nonnull align 8 dereferenceable(33) %75)
          to label %411 unwind label %937

411:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #6
  %412 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %413 unwind label %941

413:                                              ; preds = %411
  call void @llvm.lifetime.start.p0(i64 16, ptr %83) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef @.str.407, i64 noundef 37)
          to label %414 unwind label %945

414:                                              ; preds = %413
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %82, ptr noundef nonnull align 8 dereferenceable(9) %412, ptr noundef nonnull align 8 dereferenceable(16) %83)
          to label %415 unwind label %945

415:                                              ; preds = %414
  %416 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %417 unwind label %949

417:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #6
  %418 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %419 unwind label %953

419:                                              ; preds = %417
  %420 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %84, i32 0, i32 0
  store double %418, ptr %420, align 8
  %421 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %416, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %422 unwind label %953

422:                                              ; preds = %419
  %423 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %82, ptr noundef nonnull align 8 dereferenceable(9) %421)
          to label %424 unwind label %953

424:                                              ; preds = %422
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %85, ptr noundef @.str.401, i64 noundef 96)
          to label %425 unwind label %953

425:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %87, i32 noundef 1)
          to label %426 unwind label %957

426:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #6
  %427 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %428 unwind label %961

428:                                              ; preds = %426
  %429 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %88, i32 0, i32 0
  store double %427, ptr %429, align 8
  %430 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %87, ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %431 unwind label %961

431:                                              ; preds = %428
  %432 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %86, i32 0, i32 0
  store i32 %430, ptr %432, align 4
  %433 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %86)
          to label %434 unwind label %961

434:                                              ; preds = %431
  %435 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 8 dereferenceable(9) %423, ptr noundef %85, i64 noundef 53, i32 noundef 1, i32 noundef %433, i64 noundef 0)
          to label %436 unwind label %961

436:                                              ; preds = %434
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %75) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %76) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #6
  br label %437

437:                                              ; preds = %436
  %438 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %439 unwind label %837

439:                                              ; preds = %437
  br i1 %438, label %397, label %440, !llvm.loop !24

440:                                              ; preds = %439
  br label %441

441:                                              ; preds = %483, %440
  %442 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef @.str.401, i64 noundef 96)
          to label %443 unwind label %837

443:                                              ; preds = %441
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %444 unwind label %837

444:                                              ; preds = %443
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef %89, i64 noundef 55, ptr noundef %90)
          to label %445 unwind label %837

445:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 24, ptr %91) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %93) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %94) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #6
  store double 0.000000e+00, ptr %97, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %95, ptr noundef nonnull align 1 dereferenceable(1) %96, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %446 unwind label %973

446:                                              ; preds = %445
  %447 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 1) #6
  %448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %447) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %94, ptr noundef nonnull align 1 dereferenceable(1) %95, ptr noundef nonnull align 8 dereferenceable(8) %448)
          to label %449 unwind label %973

449:                                              ; preds = %446
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %93, ptr noundef nonnull align 8 dereferenceable(16) %94)
          to label %450 unwind label %973

450:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #6
  %451 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %452 unwind label %977

452:                                              ; preds = %450
  %453 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %98, i32 0, i32 0
  store double %451, ptr %453, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %92, ptr noundef nonnull align 8 dereferenceable(33) %93, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %454 unwind label %977

454:                                              ; preds = %452
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %91, ptr noundef nonnull align 8 dereferenceable(33) %92)
          to label %455 unwind label %981

455:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #6
  %456 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %457 unwind label %985

457:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef @.str.408, i64 noundef 37)
          to label %458 unwind label %989

458:                                              ; preds = %457
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %99, ptr noundef nonnull align 8 dereferenceable(9) %456, ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %459 unwind label %989

459:                                              ; preds = %458
  %460 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %461 unwind label %993

461:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #6
  %462 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %463 unwind label %997

463:                                              ; preds = %461
  %464 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %101, i32 0, i32 0
  store double %462, ptr %464, align 8
  %465 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %460, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %466 unwind label %997

466:                                              ; preds = %463
  %467 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %99, ptr noundef nonnull align 8 dereferenceable(9) %465)
          to label %468 unwind label %997

468:                                              ; preds = %466
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %102, ptr noundef @.str.401, i64 noundef 96)
          to label %469 unwind label %997

469:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %104, i32 noundef 1)
          to label %470 unwind label %1001

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #6
  %471 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %472 unwind label %1005

472:                                              ; preds = %470
  %473 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %105, i32 0, i32 0
  store double %471, ptr %473, align 8
  %474 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %104, ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %475 unwind label %1005

475:                                              ; preds = %472
  %476 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %103, i32 0, i32 0
  store i32 %474, ptr %476, align 4
  %477 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %103)
          to label %478 unwind label %1005

478:                                              ; preds = %475
  %479 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %91, ptr noundef nonnull align 8 dereferenceable(9) %467, ptr noundef %102, i64 noundef 55, i32 noundef 1, i32 noundef %477, i64 noundef 0)
          to label %480 unwind label %1005

480:                                              ; preds = %478
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %92) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %93) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #6
  br label %481

481:                                              ; preds = %480
  %482 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %483 unwind label %837

483:                                              ; preds = %481
  br i1 %482, label %441, label %484, !llvm.loop !25

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %527, %484
  %486 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef @.str.401, i64 noundef 96)
          to label %487 unwind label %837

487:                                              ; preds = %485
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107)
          to label %488 unwind label %837

488:                                              ; preds = %487
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef %106, i64 noundef 56, ptr noundef %107)
          to label %489 unwind label %837

489:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 24, ptr %108) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %109) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %110) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %111) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #6
  store double 0.000000e+00, ptr %114, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %112, ptr noundef nonnull align 1 dereferenceable(1) %113, ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %490 unwind label %1017

490:                                              ; preds = %489
  %491 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 1) #6
  %492 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %491) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %111, ptr noundef nonnull align 1 dereferenceable(1) %112, ptr noundef nonnull align 8 dereferenceable(8) %492)
          to label %493 unwind label %1017

493:                                              ; preds = %490
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %110, ptr noundef nonnull align 8 dereferenceable(16) %111)
          to label %494 unwind label %1017

494:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #6
  %495 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %496 unwind label %1021

496:                                              ; preds = %494
  %497 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %115, i32 0, i32 0
  store double %495, ptr %497, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %109, ptr noundef nonnull align 8 dereferenceable(33) %110, ptr noundef nonnull align 8 dereferenceable(8) %115)
          to label %498 unwind label %1021

498:                                              ; preds = %496
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %108, ptr noundef nonnull align 8 dereferenceable(33) %109)
          to label %499 unwind label %1025

499:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #6
  %500 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %501 unwind label %1029

501:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 16, ptr %117) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr noundef @.str.409, i64 noundef 37)
          to label %502 unwind label %1033

502:                                              ; preds = %501
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %116, ptr noundef nonnull align 8 dereferenceable(9) %500, ptr noundef nonnull align 8 dereferenceable(16) %117)
          to label %503 unwind label %1033

503:                                              ; preds = %502
  %504 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %505 unwind label %1037

505:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #6
  %506 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %507 unwind label %1041

507:                                              ; preds = %505
  %508 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %118, i32 0, i32 0
  store double %506, ptr %508, align 8
  %509 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %504, ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %510 unwind label %1041

510:                                              ; preds = %507
  %511 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %116, ptr noundef nonnull align 8 dereferenceable(9) %509)
          to label %512 unwind label %1041

512:                                              ; preds = %510
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %119, ptr noundef @.str.401, i64 noundef 96)
          to label %513 unwind label %1041

513:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %121, i32 noundef 1)
          to label %514 unwind label %1045

514:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #6
  %515 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %516 unwind label %1049

516:                                              ; preds = %514
  %517 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %122, i32 0, i32 0
  store double %515, ptr %517, align 8
  %518 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %121, ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %519 unwind label %1049

519:                                              ; preds = %516
  %520 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %120, i32 0, i32 0
  store i32 %518, ptr %520, align 4
  %521 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %120)
          to label %522 unwind label %1049

522:                                              ; preds = %519
  %523 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %108, ptr noundef nonnull align 8 dereferenceable(9) %511, ptr noundef %119, i64 noundef 56, i32 noundef 1, i32 noundef %521, i64 noundef 0)
          to label %524 unwind label %1049

524:                                              ; preds = %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %109) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %110) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %110) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %109) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %108) #6
  br label %525

525:                                              ; preds = %524
  %526 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %527 unwind label %837

527:                                              ; preds = %525
  br i1 %526, label %485, label %528, !llvm.loop !26

528:                                              ; preds = %527
  br label %529

529:                                              ; preds = %571, %528
  %530 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %123, ptr noundef @.str.401, i64 noundef 96)
          to label %531 unwind label %837

531:                                              ; preds = %529
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %124)
          to label %532 unwind label %837

532:                                              ; preds = %531
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %530, ptr noundef %123, i64 noundef 57, ptr noundef %124)
          to label %533 unwind label %837

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 24, ptr %125) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %126) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %127) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %130) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #6
  store double 0.000000e+00, ptr %131, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %129, ptr noundef nonnull align 1 dereferenceable(1) %130, ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %534 unwind label %1061

534:                                              ; preds = %533
  %535 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 1) #6
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %535) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %128, ptr noundef nonnull align 1 dereferenceable(1) %129, ptr noundef nonnull align 8 dereferenceable(8) %536)
          to label %537 unwind label %1061

537:                                              ; preds = %534
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %127, ptr noundef nonnull align 8 dereferenceable(16) %128)
          to label %538 unwind label %1061

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #6
  %539 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %540 unwind label %1065

540:                                              ; preds = %538
  %541 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %132, i32 0, i32 0
  store double %539, ptr %541, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %126, ptr noundef nonnull align 8 dereferenceable(33) %127, ptr noundef nonnull align 8 dereferenceable(8) %132)
          to label %542 unwind label %1065

542:                                              ; preds = %540
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %125, ptr noundef nonnull align 8 dereferenceable(33) %126)
          to label %543 unwind label %1069

543:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #6
  %544 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %545 unwind label %1073

545:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 16, ptr %134) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef @.str.410, i64 noundef 37)
          to label %546 unwind label %1077

546:                                              ; preds = %545
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %133, ptr noundef nonnull align 8 dereferenceable(9) %544, ptr noundef nonnull align 8 dereferenceable(16) %134)
          to label %547 unwind label %1077

547:                                              ; preds = %546
  %548 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %549 unwind label %1081

549:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #6
  %550 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %551 unwind label %1085

551:                                              ; preds = %549
  %552 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %135, i32 0, i32 0
  store double %550, ptr %552, align 8
  %553 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %548, ptr noundef nonnull align 8 dereferenceable(8) %135)
          to label %554 unwind label %1085

554:                                              ; preds = %551
  %555 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %133, ptr noundef nonnull align 8 dereferenceable(9) %553)
          to label %556 unwind label %1085

556:                                              ; preds = %554
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %136, ptr noundef @.str.401, i64 noundef 96)
          to label %557 unwind label %1085

557:                                              ; preds = %556
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %138, i32 noundef 1)
          to label %558 unwind label %1089

558:                                              ; preds = %557
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #6
  %559 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %560 unwind label %1093

560:                                              ; preds = %558
  %561 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %139, i32 0, i32 0
  store double %559, ptr %561, align 8
  %562 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %138, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %563 unwind label %1093

563:                                              ; preds = %560
  %564 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %137, i32 0, i32 0
  store i32 %562, ptr %564, align 4
  %565 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %137)
          to label %566 unwind label %1093

566:                                              ; preds = %563
  %567 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 8 dereferenceable(9) %555, ptr noundef %136, i64 noundef 57, i32 noundef 1, i32 noundef %565, i64 noundef 0)
          to label %568 unwind label %1093

568:                                              ; preds = %566
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %134) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %125) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %126) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %127) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %127) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %126) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %125) #6
  br label %569

569:                                              ; preds = %568
  %570 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %571 unwind label %837

571:                                              ; preds = %569
  br i1 %570, label %529, label %572, !llvm.loop !27

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %615, %572
  %574 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %140, ptr noundef @.str.401, i64 noundef 96)
          to label %575 unwind label %837

575:                                              ; preds = %573
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %141)
          to label %576 unwind label %837

576:                                              ; preds = %575
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %574, ptr noundef %140, i64 noundef 59, ptr noundef %141)
          to label %577 unwind label %837

577:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 24, ptr %142) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %143) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %144) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %145) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #6
  store double -3.000000e-01, ptr %148, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %146, ptr noundef nonnull align 1 dereferenceable(1) %147, ptr noundef nonnull align 8 dereferenceable(8) %148)
          to label %578 unwind label %1105

578:                                              ; preds = %577
  %579 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 2) #6
  %580 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %579) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %145, ptr noundef nonnull align 1 dereferenceable(1) %146, ptr noundef nonnull align 8 dereferenceable(8) %580)
          to label %581 unwind label %1105

581:                                              ; preds = %578
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %144, ptr noundef nonnull align 8 dereferenceable(16) %145)
          to label %582 unwind label %1105

582:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #6
  %583 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %584 unwind label %1109

584:                                              ; preds = %582
  %585 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %149, i32 0, i32 0
  store double %583, ptr %585, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %143, ptr noundef nonnull align 8 dereferenceable(33) %144, ptr noundef nonnull align 8 dereferenceable(8) %149)
          to label %586 unwind label %1109

586:                                              ; preds = %584
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %142, ptr noundef nonnull align 8 dereferenceable(33) %143)
          to label %587 unwind label %1113

587:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 32, ptr %150) #6
  %588 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %589 unwind label %1117

589:                                              ; preds = %587
  call void @llvm.lifetime.start.p0(i64 16, ptr %151) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef @.str.411, i64 noundef 38)
          to label %590 unwind label %1121

590:                                              ; preds = %589
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %150, ptr noundef nonnull align 8 dereferenceable(9) %588, ptr noundef nonnull align 8 dereferenceable(16) %151)
          to label %591 unwind label %1121

591:                                              ; preds = %590
  %592 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %593 unwind label %1125

593:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #6
  %594 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %595 unwind label %1129

595:                                              ; preds = %593
  %596 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %152, i32 0, i32 0
  store double %594, ptr %596, align 8
  %597 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %592, ptr noundef nonnull align 8 dereferenceable(8) %152)
          to label %598 unwind label %1129

598:                                              ; preds = %595
  %599 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %150, ptr noundef nonnull align 8 dereferenceable(9) %597)
          to label %600 unwind label %1129

600:                                              ; preds = %598
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %153, ptr noundef @.str.401, i64 noundef 96)
          to label %601 unwind label %1129

601:                                              ; preds = %600
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %155, i32 noundef 1)
          to label %602 unwind label %1133

602:                                              ; preds = %601
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #6
  %603 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %604 unwind label %1137

604:                                              ; preds = %602
  %605 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %156, i32 0, i32 0
  store double %603, ptr %605, align 8
  %606 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %155, ptr noundef nonnull align 8 dereferenceable(8) %156)
          to label %607 unwind label %1137

607:                                              ; preds = %604
  %608 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %154, i32 0, i32 0
  store i32 %606, ptr %608, align 4
  %609 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %154)
          to label %610 unwind label %1137

610:                                              ; preds = %607
  %611 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %142, ptr noundef nonnull align 8 dereferenceable(9) %599, ptr noundef %153, i64 noundef 59, i32 noundef 1, i32 noundef %609, i64 noundef 0)
          to label %612 unwind label %1137

612:                                              ; preds = %610
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %151) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %142) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %143) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %144) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %145) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %144) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %143) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %142) #6
  br label %613

613:                                              ; preds = %612
  %614 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %615 unwind label %837

615:                                              ; preds = %613
  br i1 %614, label %573, label %616, !llvm.loop !28

616:                                              ; preds = %615
  br label %617

617:                                              ; preds = %659, %616
  %618 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %157, ptr noundef @.str.401, i64 noundef 96)
          to label %619 unwind label %837

619:                                              ; preds = %617
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158)
          to label %620 unwind label %837

620:                                              ; preds = %619
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef %157, i64 noundef 60, ptr noundef %158)
          to label %621 unwind label %837

621:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 24, ptr %159) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %160) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %161) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %162) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #6
  store double -4.000000e-01, ptr %165, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %163, ptr noundef nonnull align 1 dereferenceable(1) %164, ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %622 unwind label %1149

622:                                              ; preds = %621
  %623 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 2) #6
  %624 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %623) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %162, ptr noundef nonnull align 1 dereferenceable(1) %163, ptr noundef nonnull align 8 dereferenceable(8) %624)
          to label %625 unwind label %1149

625:                                              ; preds = %622
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %161, ptr noundef nonnull align 8 dereferenceable(16) %162)
          to label %626 unwind label %1149

626:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #6
  %627 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %628 unwind label %1153

628:                                              ; preds = %626
  %629 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %166, i32 0, i32 0
  store double %627, ptr %629, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %160, ptr noundef nonnull align 8 dereferenceable(33) %161, ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %630 unwind label %1153

630:                                              ; preds = %628
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %159, ptr noundef nonnull align 8 dereferenceable(33) %160)
          to label %631 unwind label %1157

631:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 32, ptr %167) #6
  %632 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %633 unwind label %1161

633:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 16, ptr %168) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef @.str.412, i64 noundef 38)
          to label %634 unwind label %1165

634:                                              ; preds = %633
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %167, ptr noundef nonnull align 8 dereferenceable(9) %632, ptr noundef nonnull align 8 dereferenceable(16) %168)
          to label %635 unwind label %1165

635:                                              ; preds = %634
  %636 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %637 unwind label %1169

637:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #6
  %638 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %639 unwind label %1173

639:                                              ; preds = %637
  %640 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %169, i32 0, i32 0
  store double %638, ptr %640, align 8
  %641 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %636, ptr noundef nonnull align 8 dereferenceable(8) %169)
          to label %642 unwind label %1173

642:                                              ; preds = %639
  %643 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %167, ptr noundef nonnull align 8 dereferenceable(9) %641)
          to label %644 unwind label %1173

644:                                              ; preds = %642
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %170, ptr noundef @.str.401, i64 noundef 96)
          to label %645 unwind label %1173

645:                                              ; preds = %644
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %172, i32 noundef 1)
          to label %646 unwind label %1177

646:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #6
  %647 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %648 unwind label %1181

648:                                              ; preds = %646
  %649 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %173, i32 0, i32 0
  store double %647, ptr %649, align 8
  %650 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %172, ptr noundef nonnull align 8 dereferenceable(8) %173)
          to label %651 unwind label %1181

651:                                              ; preds = %648
  %652 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %171, i32 0, i32 0
  store i32 %650, ptr %652, align 4
  %653 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %171)
          to label %654 unwind label %1181

654:                                              ; preds = %651
  %655 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %159, ptr noundef nonnull align 8 dereferenceable(9) %643, ptr noundef %170, i64 noundef 60, i32 noundef 1, i32 noundef %653, i64 noundef 0)
          to label %656 unwind label %1181

656:                                              ; preds = %654
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %168) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %159) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %160) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %161) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %162) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %161) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %160) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #6
  br label %657

657:                                              ; preds = %656
  %658 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %659 unwind label %837

659:                                              ; preds = %657
  br i1 %658, label %617, label %660, !llvm.loop !29

660:                                              ; preds = %659
  br label %661

661:                                              ; preds = %703, %660
  %662 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %174, ptr noundef @.str.401, i64 noundef 96)
          to label %663 unwind label %837

663:                                              ; preds = %661
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %175)
          to label %664 unwind label %837

664:                                              ; preds = %663
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %662, ptr noundef %174, i64 noundef 61, ptr noundef %175)
          to label %665 unwind label %837

665:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 24, ptr %176) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %177) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %178) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %179) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %181) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #6
  store double -5.000000e-01, ptr %182, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %180, ptr noundef nonnull align 1 dereferenceable(1) %181, ptr noundef nonnull align 8 dereferenceable(8) %182)
          to label %666 unwind label %1193

666:                                              ; preds = %665
  %667 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 2) #6
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %667) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %179, ptr noundef nonnull align 1 dereferenceable(1) %180, ptr noundef nonnull align 8 dereferenceable(8) %668)
          to label %669 unwind label %1193

669:                                              ; preds = %666
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %178, ptr noundef nonnull align 8 dereferenceable(16) %179)
          to label %670 unwind label %1193

670:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #6
  %671 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %672 unwind label %1197

672:                                              ; preds = %670
  %673 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %183, i32 0, i32 0
  store double %671, ptr %673, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %177, ptr noundef nonnull align 8 dereferenceable(33) %178, ptr noundef nonnull align 8 dereferenceable(8) %183)
          to label %674 unwind label %1197

674:                                              ; preds = %672
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %176, ptr noundef nonnull align 8 dereferenceable(33) %177)
          to label %675 unwind label %1201

675:                                              ; preds = %674
  call void @llvm.lifetime.start.p0(i64 32, ptr %184) #6
  %676 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %677 unwind label %1205

677:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 16, ptr %185) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %185, ptr noundef @.str.413, i64 noundef 38)
          to label %678 unwind label %1209

678:                                              ; preds = %677
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %184, ptr noundef nonnull align 8 dereferenceable(9) %676, ptr noundef nonnull align 8 dereferenceable(16) %185)
          to label %679 unwind label %1209

679:                                              ; preds = %678
  %680 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %681 unwind label %1213

681:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #6
  %682 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %683 unwind label %1217

683:                                              ; preds = %681
  %684 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %186, i32 0, i32 0
  store double %682, ptr %684, align 8
  %685 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %680, ptr noundef nonnull align 8 dereferenceable(8) %186)
          to label %686 unwind label %1217

686:                                              ; preds = %683
  %687 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %184, ptr noundef nonnull align 8 dereferenceable(9) %685)
          to label %688 unwind label %1217

688:                                              ; preds = %686
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %187, ptr noundef @.str.401, i64 noundef 96)
          to label %689 unwind label %1217

689:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %189, i32 noundef 1)
          to label %690 unwind label %1221

690:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #6
  %691 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %692 unwind label %1225

692:                                              ; preds = %690
  %693 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %190, i32 0, i32 0
  store double %691, ptr %693, align 8
  %694 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %189, ptr noundef nonnull align 8 dereferenceable(8) %190)
          to label %695 unwind label %1225

695:                                              ; preds = %692
  %696 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %188, i32 0, i32 0
  store i32 %694, ptr %696, align 4
  %697 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %188)
          to label %698 unwind label %1225

698:                                              ; preds = %695
  %699 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %176, ptr noundef nonnull align 8 dereferenceable(9) %687, ptr noundef %187, i64 noundef 61, i32 noundef 1, i32 noundef %697, i64 noundef 0)
          to label %700 unwind label %1225

700:                                              ; preds = %698
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %176) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %177) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %178) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %181) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %178) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %177) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %176) #6
  br label %701

701:                                              ; preds = %700
  %702 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %703 unwind label %837

703:                                              ; preds = %701
  br i1 %702, label %661, label %704, !llvm.loop !30

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %747, %704
  %706 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %191, ptr noundef @.str.401, i64 noundef 96)
          to label %707 unwind label %837

707:                                              ; preds = %705
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %192)
          to label %708 unwind label %837

708:                                              ; preds = %707
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %706, ptr noundef %191, i64 noundef 63, ptr noundef %192)
          to label %709 unwind label %837

709:                                              ; preds = %708
  call void @llvm.lifetime.start.p0(i64 24, ptr %193) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %194) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %195) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %196) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %198) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #6
  store double 0.000000e+00, ptr %199, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %197, ptr noundef nonnull align 1 dereferenceable(1) %198, ptr noundef nonnull align 8 dereferenceable(8) %199)
          to label %710 unwind label %1237

710:                                              ; preds = %709
  %711 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 3) #6
  %712 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %711) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %196, ptr noundef nonnull align 1 dereferenceable(1) %197, ptr noundef nonnull align 8 dereferenceable(8) %712)
          to label %713 unwind label %1237

713:                                              ; preds = %710
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %195, ptr noundef nonnull align 8 dereferenceable(16) %196)
          to label %714 unwind label %1237

714:                                              ; preds = %713
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #6
  %715 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %716 unwind label %1241

716:                                              ; preds = %714
  %717 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %200, i32 0, i32 0
  store double %715, ptr %717, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %194, ptr noundef nonnull align 8 dereferenceable(33) %195, ptr noundef nonnull align 8 dereferenceable(8) %200)
          to label %718 unwind label %1241

718:                                              ; preds = %716
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %193, ptr noundef nonnull align 8 dereferenceable(33) %194)
          to label %719 unwind label %1245

719:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #6
  %720 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %721 unwind label %1249

721:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 16, ptr %202) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef @.str.414, i64 noundef 37)
          to label %722 unwind label %1253

722:                                              ; preds = %721
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %201, ptr noundef nonnull align 8 dereferenceable(9) %720, ptr noundef nonnull align 8 dereferenceable(16) %202)
          to label %723 unwind label %1253

723:                                              ; preds = %722
  %724 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %725 unwind label %1257

725:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #6
  %726 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %727 unwind label %1261

727:                                              ; preds = %725
  %728 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %203, i32 0, i32 0
  store double %726, ptr %728, align 8
  %729 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %724, ptr noundef nonnull align 8 dereferenceable(8) %203)
          to label %730 unwind label %1261

730:                                              ; preds = %727
  %731 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %201, ptr noundef nonnull align 8 dereferenceable(9) %729)
          to label %732 unwind label %1261

732:                                              ; preds = %730
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef @.str.401, i64 noundef 96)
          to label %733 unwind label %1261

733:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %206, i32 noundef 1)
          to label %734 unwind label %1265

734:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #6
  %735 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %736 unwind label %1269

736:                                              ; preds = %734
  %737 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %207, i32 0, i32 0
  store double %735, ptr %737, align 8
  %738 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %206, ptr noundef nonnull align 8 dereferenceable(8) %207)
          to label %739 unwind label %1269

739:                                              ; preds = %736
  %740 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %205, i32 0, i32 0
  store i32 %738, ptr %740, align 4
  %741 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %205)
          to label %742 unwind label %1269

742:                                              ; preds = %739
  %743 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %193, ptr noundef nonnull align 8 dereferenceable(9) %731, ptr noundef %204, i64 noundef 63, i32 noundef 1, i32 noundef %741, i64 noundef 0)
          to label %744 unwind label %1269

744:                                              ; preds = %742
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %193) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %194) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %195) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %196) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %195) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %194) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #6
  br label %745

745:                                              ; preds = %744
  %746 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %747 unwind label %837

747:                                              ; preds = %745
  br i1 %746, label %705, label %748, !llvm.loop !31

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %791, %748
  %750 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %208, ptr noundef @.str.401, i64 noundef 96)
          to label %751 unwind label %837

751:                                              ; preds = %749
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %209)
          to label %752 unwind label %837

752:                                              ; preds = %751
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %750, ptr noundef %208, i64 noundef 64, ptr noundef %209)
          to label %753 unwind label %837

753:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 24, ptr %210) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %211) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %212) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %213) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %215) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %216) #6
  store double 0.000000e+00, ptr %216, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %214, ptr noundef nonnull align 1 dereferenceable(1) %215, ptr noundef nonnull align 8 dereferenceable(8) %216)
          to label %754 unwind label %1281

754:                                              ; preds = %753
  %755 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 3) #6
  %756 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %755) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %213, ptr noundef nonnull align 1 dereferenceable(1) %214, ptr noundef nonnull align 8 dereferenceable(8) %756)
          to label %757 unwind label %1281

757:                                              ; preds = %754
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %212, ptr noundef nonnull align 8 dereferenceable(16) %213)
          to label %758 unwind label %1281

758:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #6
  %759 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %760 unwind label %1285

760:                                              ; preds = %758
  %761 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %217, i32 0, i32 0
  store double %759, ptr %761, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %211, ptr noundef nonnull align 8 dereferenceable(33) %212, ptr noundef nonnull align 8 dereferenceable(8) %217)
          to label %762 unwind label %1285

762:                                              ; preds = %760
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %210, ptr noundef nonnull align 8 dereferenceable(33) %211)
          to label %763 unwind label %1289

763:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 32, ptr %218) #6
  %764 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %765 unwind label %1293

765:                                              ; preds = %763
  call void @llvm.lifetime.start.p0(i64 16, ptr %219) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %219, ptr noundef @.str.415, i64 noundef 37)
          to label %766 unwind label %1297

766:                                              ; preds = %765
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %218, ptr noundef nonnull align 8 dereferenceable(9) %764, ptr noundef nonnull align 8 dereferenceable(16) %219)
          to label %767 unwind label %1297

767:                                              ; preds = %766
  %768 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %769 unwind label %1301

769:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #6
  %770 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %771 unwind label %1305

771:                                              ; preds = %769
  %772 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %220, i32 0, i32 0
  store double %770, ptr %772, align 8
  %773 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %768, ptr noundef nonnull align 8 dereferenceable(8) %220)
          to label %774 unwind label %1305

774:                                              ; preds = %771
  %775 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %218, ptr noundef nonnull align 8 dereferenceable(9) %773)
          to label %776 unwind label %1305

776:                                              ; preds = %774
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr noundef @.str.401, i64 noundef 96)
          to label %777 unwind label %1305

777:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %223, i32 noundef 1)
          to label %778 unwind label %1309

778:                                              ; preds = %777
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #6
  %779 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %780 unwind label %1313

780:                                              ; preds = %778
  %781 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %224, i32 0, i32 0
  store double %779, ptr %781, align 8
  %782 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %223, ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %783 unwind label %1313

783:                                              ; preds = %780
  %784 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %222, i32 0, i32 0
  store i32 %782, ptr %784, align 4
  %785 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %222)
          to label %786 unwind label %1313

786:                                              ; preds = %783
  %787 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %210, ptr noundef nonnull align 8 dereferenceable(9) %775, ptr noundef %221, i64 noundef 64, i32 noundef 1, i32 noundef %785, i64 noundef 0)
          to label %788 unwind label %1313

788:                                              ; preds = %786
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %219) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %210) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %211) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %212) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %215) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %213) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %212) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %211) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %210) #6
  br label %789

789:                                              ; preds = %788
  %790 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %791 unwind label %837

791:                                              ; preds = %789
  br i1 %790, label %749, label %792, !llvm.loop !32

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %835, %792
  %794 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !5
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %225, ptr noundef @.str.401, i64 noundef 96)
          to label %795 unwind label %837

795:                                              ; preds = %793
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %226)
          to label %796 unwind label %837

796:                                              ; preds = %795
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %794, ptr noundef %225, i64 noundef 65, ptr noundef %226)
          to label %797 unwind label %837

797:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 24, ptr %227) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %228) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %229) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %230) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %232) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #6
  store double 0.000000e+00, ptr %233, align 8, !tbaa !11
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %231, ptr noundef nonnull align 1 dereferenceable(1) %232, ptr noundef nonnull align 8 dereferenceable(8) %233)
          to label %798 unwind label %1325

798:                                              ; preds = %797
  %799 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef 3) #6
  %800 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %799) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %230, ptr noundef nonnull align 1 dereferenceable(1) %231, ptr noundef nonnull align 8 dereferenceable(8) %800)
          to label %801 unwind label %1325

801:                                              ; preds = %798
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %229, ptr noundef nonnull align 8 dereferenceable(16) %230)
          to label %802 unwind label %1325

802:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #6
  %803 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %804 unwind label %1329

804:                                              ; preds = %802
  %805 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %234, i32 0, i32 0
  store double %803, ptr %805, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %228, ptr noundef nonnull align 8 dereferenceable(33) %229, ptr noundef nonnull align 8 dereferenceable(8) %234)
          to label %806 unwind label %1329

806:                                              ; preds = %804
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %227, ptr noundef nonnull align 8 dereferenceable(33) %228)
          to label %807 unwind label %1333

807:                                              ; preds = %806
  call void @llvm.lifetime.start.p0(i64 32, ptr %235) #6
  %808 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %809 unwind label %1337

809:                                              ; preds = %807
  call void @llvm.lifetime.start.p0(i64 16, ptr %236) #6
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %236, ptr noundef @.str.416, i64 noundef 37)
          to label %810 unwind label %1341

810:                                              ; preds = %809
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %235, ptr noundef nonnull align 8 dereferenceable(9) %808, ptr noundef nonnull align 8 dereferenceable(16) %236)
          to label %811 unwind label %1341

811:                                              ; preds = %810
  %812 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %813 unwind label %1345

813:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #6
  %814 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %815 unwind label %1349

815:                                              ; preds = %813
  %816 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %237, i32 0, i32 0
  store double %814, ptr %816, align 8
  %817 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %812, ptr noundef nonnull align 8 dereferenceable(8) %237)
          to label %818 unwind label %1349

818:                                              ; preds = %815
  %819 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %235, ptr noundef nonnull align 8 dereferenceable(9) %817)
          to label %820 unwind label %1349

820:                                              ; preds = %818
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %238, ptr noundef @.str.401, i64 noundef 96)
          to label %821 unwind label %1349

821:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #6
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %240, i32 noundef 1)
          to label %822 unwind label %1353

822:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #6
  %823 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %824 unwind label %1357

824:                                              ; preds = %822
  %825 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %241, i32 0, i32 0
  store double %823, ptr %825, align 8
  %826 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %240, ptr noundef nonnull align 8 dereferenceable(8) %241)
          to label %827 unwind label %1357

827:                                              ; preds = %824
  %828 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %239, i32 0, i32 0
  store i32 %826, ptr %828, align 4
  %829 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %239)
          to label %830 unwind label %1357

830:                                              ; preds = %827
  %831 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %227, ptr noundef nonnull align 8 dereferenceable(9) %819, ptr noundef %238, i64 noundef 65, i32 noundef 1, i32 noundef %829, i64 noundef 0)
          to label %832 unwind label %1357

832:                                              ; preds = %830
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %236) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %235) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %227) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %228) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %229) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %230) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %229) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %228) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %227) #6
  br label %833

833:                                              ; preds = %832
  %834 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %835 unwind label %837

835:                                              ; preds = %833
  br i1 %834, label %793, label %836, !llvm.loop !33

836:                                              ; preds = %835
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %22) #6
  call void @llvm.lifetime.end.p0(i64 352, ptr %22) #6
  call void @_ZN7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #6
  ret void

837:                                              ; preds = %833, %796, %795, %793, %789, %752, %751, %749, %745, %708, %707, %705, %701, %664, %663, %661, %657, %620, %619, %617, %613, %576, %575, %573, %569, %532, %531, %529, %525, %488, %487, %485, %481, %444, %443, %441, %437, %400, %399, %397, %393, %356, %355, %353, %349, %312, %311, %309
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %5, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %6, align 4
  br label %1369

841:                                              ; preds = %317, %314, %313
  %842 = landingpad { ptr, i32 }
          cleanup
  %843 = extractvalue { ptr, i32 } %842, 0
  store ptr %843, ptr %5, align 8
  %844 = extractvalue { ptr, i32 } %842, 1
  store i32 %844, ptr %6, align 4
  br label %884

845:                                              ; preds = %320, %318
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %5, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %6, align 4
  br label %883

849:                                              ; preds = %322
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %5, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %6, align 4
  br label %882

853:                                              ; preds = %323
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %5, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %6, align 4
  br label %881

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

861:                                              ; preds = %327
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %5, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %6, align 4
  br label %879

865:                                              ; preds = %336, %334, %331, %329
  %866 = landingpad { ptr, i32 }
          cleanup
  %867 = extractvalue { ptr, i32 } %866, 0
  store ptr %867, ptr %5, align 8
  %868 = extractvalue { ptr, i32 } %866, 1
  store i32 %868, ptr %6, align 4
  br label %878

869:                                              ; preds = %337
  %870 = landingpad { ptr, i32 }
          cleanup
  %871 = extractvalue { ptr, i32 } %870, 0
  store ptr %871, ptr %5, align 8
  %872 = extractvalue { ptr, i32 } %870, 1
  store i32 %872, ptr %6, align 4
  br label %877

873:                                              ; preds = %346, %343, %340, %338
  %874 = landingpad { ptr, i32 }
          cleanup
  %875 = extractvalue { ptr, i32 } %874, 0
  store ptr %875, ptr %5, align 8
  %876 = extractvalue { ptr, i32 } %874, 1
  store i32 %876, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  br label %877

877:                                              ; preds = %873, %869
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  br label %878

878:                                              ; preds = %877, %865
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  br label %879

879:                                              ; preds = %878, %861
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  br label %880

880:                                              ; preds = %879, %857
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #6
  br label %881

881:                                              ; preds = %880, %853
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #6
  br label %882

882:                                              ; preds = %881, %849
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %41) #6
  br label %883

883:                                              ; preds = %882, %845
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %42) #6
  br label %884

884:                                              ; preds = %883, %841
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #6
  br label %1369

885:                                              ; preds = %361, %358, %357
  %886 = landingpad { ptr, i32 }
          cleanup
  %887 = extractvalue { ptr, i32 } %886, 0
  store ptr %887, ptr %5, align 8
  %888 = extractvalue { ptr, i32 } %886, 1
  store i32 %888, ptr %6, align 4
  br label %928

889:                                              ; preds = %364, %362
  %890 = landingpad { ptr, i32 }
          cleanup
  %891 = extractvalue { ptr, i32 } %890, 0
  store ptr %891, ptr %5, align 8
  %892 = extractvalue { ptr, i32 } %890, 1
  store i32 %892, ptr %6, align 4
  br label %927

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

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

901:                                              ; preds = %370, %369
  %902 = landingpad { ptr, i32 }
          cleanup
  %903 = extractvalue { ptr, i32 } %902, 0
  store ptr %903, ptr %5, align 8
  %904 = extractvalue { ptr, i32 } %902, 1
  store i32 %904, ptr %6, align 4
  br label %924

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

909:                                              ; preds = %380, %378, %375, %373
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %5, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %6, align 4
  br label %922

913:                                              ; preds = %381
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %5, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %6, align 4
  br label %921

917:                                              ; preds = %390, %387, %384, %382
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %5, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  br label %921

921:                                              ; preds = %917, %913
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  br label %922

922:                                              ; preds = %921, %909
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  br label %923

923:                                              ; preds = %922, %905
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %924

924:                                              ; preds = %923, %901
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #6
  br label %925

925:                                              ; preds = %924, %897
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #6
  br label %926

926:                                              ; preds = %925, %893
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %58) #6
  br label %927

927:                                              ; preds = %926, %889
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %59) #6
  br label %928

928:                                              ; preds = %927, %885
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #6
  br label %1369

929:                                              ; preds = %405, %402, %401
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %5, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %6, align 4
  br label %972

933:                                              ; preds = %408, %406
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %5, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %6, align 4
  br label %971

937:                                              ; preds = %410
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %5, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %6, align 4
  br label %970

941:                                              ; preds = %411
  %942 = landingpad { ptr, i32 }
          cleanup
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %5, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %6, align 4
  br label %969

945:                                              ; preds = %414, %413
  %946 = landingpad { ptr, i32 }
          cleanup
  %947 = extractvalue { ptr, i32 } %946, 0
  store ptr %947, ptr %5, align 8
  %948 = extractvalue { ptr, i32 } %946, 1
  store i32 %948, ptr %6, align 4
  br label %968

949:                                              ; preds = %415
  %950 = landingpad { ptr, i32 }
          cleanup
  %951 = extractvalue { ptr, i32 } %950, 0
  store ptr %951, ptr %5, align 8
  %952 = extractvalue { ptr, i32 } %950, 1
  store i32 %952, ptr %6, align 4
  br label %967

953:                                              ; preds = %424, %422, %419, %417
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %5, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %6, align 4
  br label %966

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

961:                                              ; preds = %434, %431, %428, %426
  %962 = landingpad { ptr, i32 }
          cleanup
  %963 = extractvalue { ptr, i32 } %962, 0
  store ptr %963, ptr %5, align 8
  %964 = extractvalue { ptr, i32 } %962, 1
  store i32 %964, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  br label %965

965:                                              ; preds = %961, %957
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #6
  br label %966

966:                                              ; preds = %965, %953
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #6
  br label %967

967:                                              ; preds = %966, %949
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %968

968:                                              ; preds = %967, %945
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #6
  br label %969

969:                                              ; preds = %968, %941
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #6
  br label %970

970:                                              ; preds = %969, %937
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %75) #6
  br label %971

971:                                              ; preds = %970, %933
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %76) #6
  br label %972

972:                                              ; preds = %971, %929
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #6
  br label %1369

973:                                              ; preds = %449, %446, %445
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %5, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %6, align 4
  br label %1016

977:                                              ; preds = %452, %450
  %978 = landingpad { ptr, i32 }
          cleanup
  %979 = extractvalue { ptr, i32 } %978, 0
  store ptr %979, ptr %5, align 8
  %980 = extractvalue { ptr, i32 } %978, 1
  store i32 %980, ptr %6, align 4
  br label %1015

981:                                              ; preds = %454
  %982 = landingpad { ptr, i32 }
          cleanup
  %983 = extractvalue { ptr, i32 } %982, 0
  store ptr %983, ptr %5, align 8
  %984 = extractvalue { ptr, i32 } %982, 1
  store i32 %984, ptr %6, align 4
  br label %1014

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

989:                                              ; preds = %458, %457
  %990 = landingpad { ptr, i32 }
          cleanup
  %991 = extractvalue { ptr, i32 } %990, 0
  store ptr %991, ptr %5, align 8
  %992 = extractvalue { ptr, i32 } %990, 1
  store i32 %992, ptr %6, align 4
  br label %1012

993:                                              ; preds = %459
  %994 = landingpad { ptr, i32 }
          cleanup
  %995 = extractvalue { ptr, i32 } %994, 0
  store ptr %995, ptr %5, align 8
  %996 = extractvalue { ptr, i32 } %994, 1
  store i32 %996, ptr %6, align 4
  br label %1011

997:                                              ; preds = %468, %466, %463, %461
  %998 = landingpad { ptr, i32 }
          cleanup
  %999 = extractvalue { ptr, i32 } %998, 0
  store ptr %999, ptr %5, align 8
  %1000 = extractvalue { ptr, i32 } %998, 1
  store i32 %1000, ptr %6, align 4
  br label %1010

1001:                                             ; preds = %469
  %1002 = landingpad { ptr, i32 }
          cleanup
  %1003 = extractvalue { ptr, i32 } %1002, 0
  store ptr %1003, ptr %5, align 8
  %1004 = extractvalue { ptr, i32 } %1002, 1
  store i32 %1004, ptr %6, align 4
  br label %1009

1005:                                             ; preds = %478, %475, %472, %470
  %1006 = landingpad { ptr, i32 }
          cleanup
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %5, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #6
  br label %1009

1009:                                             ; preds = %1005, %1001
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #6
  br label %1010

1010:                                             ; preds = %1009, %997
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #6
  br label %1011

1011:                                             ; preds = %1010, %993
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %1012

1012:                                             ; preds = %1011, %989
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #6
  br label %1013

1013:                                             ; preds = %1012, %985
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #6
  br label %1014

1014:                                             ; preds = %1013, %981
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %92) #6
  br label %1015

1015:                                             ; preds = %1014, %977
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %93) #6
  br label %1016

1016:                                             ; preds = %1015, %973
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #6
  br label %1369

1017:                                             ; preds = %493, %490, %489
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %5, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %6, align 4
  br label %1060

1021:                                             ; preds = %496, %494
  %1022 = landingpad { ptr, i32 }
          cleanup
  %1023 = extractvalue { ptr, i32 } %1022, 0
  store ptr %1023, ptr %5, align 8
  %1024 = extractvalue { ptr, i32 } %1022, 1
  store i32 %1024, ptr %6, align 4
  br label %1059

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

1029:                                             ; preds = %499
  %1030 = landingpad { ptr, i32 }
          cleanup
  %1031 = extractvalue { ptr, i32 } %1030, 0
  store ptr %1031, ptr %5, align 8
  %1032 = extractvalue { ptr, i32 } %1030, 1
  store i32 %1032, ptr %6, align 4
  br label %1057

1033:                                             ; preds = %502, %501
  %1034 = landingpad { ptr, i32 }
          cleanup
  %1035 = extractvalue { ptr, i32 } %1034, 0
  store ptr %1035, ptr %5, align 8
  %1036 = extractvalue { ptr, i32 } %1034, 1
  store i32 %1036, ptr %6, align 4
  br label %1056

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

1041:                                             ; preds = %512, %510, %507, %505
  %1042 = landingpad { ptr, i32 }
          cleanup
  %1043 = extractvalue { ptr, i32 } %1042, 0
  store ptr %1043, ptr %5, align 8
  %1044 = extractvalue { ptr, i32 } %1042, 1
  store i32 %1044, ptr %6, align 4
  br label %1054

1045:                                             ; preds = %513
  %1046 = landingpad { ptr, i32 }
          cleanup
  %1047 = extractvalue { ptr, i32 } %1046, 0
  store ptr %1047, ptr %5, align 8
  %1048 = extractvalue { ptr, i32 } %1046, 1
  store i32 %1048, ptr %6, align 4
  br label %1053

1049:                                             ; preds = %522, %519, %516, %514
  %1050 = landingpad { ptr, i32 }
          cleanup
  %1051 = extractvalue { ptr, i32 } %1050, 0
  store ptr %1051, ptr %5, align 8
  %1052 = extractvalue { ptr, i32 } %1050, 1
  store i32 %1052, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #6
  br label %1053

1053:                                             ; preds = %1049, %1045
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #6
  br label %1054

1054:                                             ; preds = %1053, %1041
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #6
  br label %1055

1055:                                             ; preds = %1054, %1037
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #6
  br label %1056

1056:                                             ; preds = %1055, %1033
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #6
  br label %1057

1057:                                             ; preds = %1056, %1029
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #6
  br label %1058

1058:                                             ; preds = %1057, %1025
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %109) #6
  br label %1059

1059:                                             ; preds = %1058, %1021
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %110) #6
  br label %1060

1060:                                             ; preds = %1059, %1017
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %110) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %109) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %108) #6
  br label %1369

1061:                                             ; preds = %537, %534, %533
  %1062 = landingpad { ptr, i32 }
          cleanup
  %1063 = extractvalue { ptr, i32 } %1062, 0
  store ptr %1063, ptr %5, align 8
  %1064 = extractvalue { ptr, i32 } %1062, 1
  store i32 %1064, ptr %6, align 4
  br label %1104

1065:                                             ; preds = %540, %538
  %1066 = landingpad { ptr, i32 }
          cleanup
  %1067 = extractvalue { ptr, i32 } %1066, 0
  store ptr %1067, ptr %5, align 8
  %1068 = extractvalue { ptr, i32 } %1066, 1
  store i32 %1068, ptr %6, align 4
  br label %1103

1069:                                             ; preds = %542
  %1070 = landingpad { ptr, i32 }
          cleanup
  %1071 = extractvalue { ptr, i32 } %1070, 0
  store ptr %1071, ptr %5, align 8
  %1072 = extractvalue { ptr, i32 } %1070, 1
  store i32 %1072, ptr %6, align 4
  br label %1102

1073:                                             ; preds = %543
  %1074 = landingpad { ptr, i32 }
          cleanup
  %1075 = extractvalue { ptr, i32 } %1074, 0
  store ptr %1075, ptr %5, align 8
  %1076 = extractvalue { ptr, i32 } %1074, 1
  store i32 %1076, ptr %6, align 4
  br label %1101

1077:                                             ; preds = %546, %545
  %1078 = landingpad { ptr, i32 }
          cleanup
  %1079 = extractvalue { ptr, i32 } %1078, 0
  store ptr %1079, ptr %5, align 8
  %1080 = extractvalue { ptr, i32 } %1078, 1
  store i32 %1080, ptr %6, align 4
  br label %1100

1081:                                             ; preds = %547
  %1082 = landingpad { ptr, i32 }
          cleanup
  %1083 = extractvalue { ptr, i32 } %1082, 0
  store ptr %1083, ptr %5, align 8
  %1084 = extractvalue { ptr, i32 } %1082, 1
  store i32 %1084, ptr %6, align 4
  br label %1099

1085:                                             ; preds = %556, %554, %551, %549
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %5, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %6, align 4
  br label %1098

1089:                                             ; preds = %557
  %1090 = landingpad { ptr, i32 }
          cleanup
  %1091 = extractvalue { ptr, i32 } %1090, 0
  store ptr %1091, ptr %5, align 8
  %1092 = extractvalue { ptr, i32 } %1090, 1
  store i32 %1092, ptr %6, align 4
  br label %1097

1093:                                             ; preds = %566, %563, %560, %558
  %1094 = landingpad { ptr, i32 }
          cleanup
  %1095 = extractvalue { ptr, i32 } %1094, 0
  store ptr %1095, ptr %5, align 8
  %1096 = extractvalue { ptr, i32 } %1094, 1
  store i32 %1096, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #6
  br label %1097

1097:                                             ; preds = %1093, %1089
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #6
  br label %1098

1098:                                             ; preds = %1097, %1085
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #6
  br label %1099

1099:                                             ; preds = %1098, %1081
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  br label %1100

1100:                                             ; preds = %1099, %1077
  call void @llvm.lifetime.end.p0(i64 16, ptr %134) #6
  br label %1101

1101:                                             ; preds = %1100, %1073
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %125) #6
  br label %1102

1102:                                             ; preds = %1101, %1069
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %126) #6
  br label %1103

1103:                                             ; preds = %1102, %1065
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %127) #6
  br label %1104

1104:                                             ; preds = %1103, %1061
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %127) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %126) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %125) #6
  br label %1369

1105:                                             ; preds = %581, %578, %577
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %5, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %6, align 4
  br label %1148

1109:                                             ; preds = %584, %582
  %1110 = landingpad { ptr, i32 }
          cleanup
  %1111 = extractvalue { ptr, i32 } %1110, 0
  store ptr %1111, ptr %5, align 8
  %1112 = extractvalue { ptr, i32 } %1110, 1
  store i32 %1112, ptr %6, align 4
  br label %1147

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

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

1121:                                             ; preds = %590, %589
  %1122 = landingpad { ptr, i32 }
          cleanup
  %1123 = extractvalue { ptr, i32 } %1122, 0
  store ptr %1123, ptr %5, align 8
  %1124 = extractvalue { ptr, i32 } %1122, 1
  store i32 %1124, ptr %6, align 4
  br label %1144

1125:                                             ; preds = %591
  %1126 = landingpad { ptr, i32 }
          cleanup
  %1127 = extractvalue { ptr, i32 } %1126, 0
  store ptr %1127, ptr %5, align 8
  %1128 = extractvalue { ptr, i32 } %1126, 1
  store i32 %1128, ptr %6, align 4
  br label %1143

1129:                                             ; preds = %600, %598, %595, %593
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %5, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %6, align 4
  br label %1142

1133:                                             ; preds = %601
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %5, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %6, align 4
  br label %1141

1137:                                             ; preds = %610, %607, %604, %602
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %5, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #6
  br label %1141

1141:                                             ; preds = %1137, %1133
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #6
  br label %1142

1142:                                             ; preds = %1141, %1129
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #6
  br label %1143

1143:                                             ; preds = %1142, %1125
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #6
  br label %1144

1144:                                             ; preds = %1143, %1121
  call void @llvm.lifetime.end.p0(i64 16, ptr %151) #6
  br label %1145

1145:                                             ; preds = %1144, %1117
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %142) #6
  br label %1146

1146:                                             ; preds = %1145, %1113
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %143) #6
  br label %1147

1147:                                             ; preds = %1146, %1109
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %144) #6
  br label %1148

1148:                                             ; preds = %1147, %1105
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %145) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %144) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %143) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %142) #6
  br label %1369

1149:                                             ; preds = %625, %622, %621
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %5, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %6, align 4
  br label %1192

1153:                                             ; preds = %628, %626
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %5, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %6, align 4
  br label %1191

1157:                                             ; preds = %630
  %1158 = landingpad { ptr, i32 }
          cleanup
  %1159 = extractvalue { ptr, i32 } %1158, 0
  store ptr %1159, ptr %5, align 8
  %1160 = extractvalue { ptr, i32 } %1158, 1
  store i32 %1160, ptr %6, align 4
  br label %1190

1161:                                             ; preds = %631
  %1162 = landingpad { ptr, i32 }
          cleanup
  %1163 = extractvalue { ptr, i32 } %1162, 0
  store ptr %1163, ptr %5, align 8
  %1164 = extractvalue { ptr, i32 } %1162, 1
  store i32 %1164, ptr %6, align 4
  br label %1189

1165:                                             ; preds = %634, %633
  %1166 = landingpad { ptr, i32 }
          cleanup
  %1167 = extractvalue { ptr, i32 } %1166, 0
  store ptr %1167, ptr %5, align 8
  %1168 = extractvalue { ptr, i32 } %1166, 1
  store i32 %1168, ptr %6, align 4
  br label %1188

1169:                                             ; preds = %635
  %1170 = landingpad { ptr, i32 }
          cleanup
  %1171 = extractvalue { ptr, i32 } %1170, 0
  store ptr %1171, ptr %5, align 8
  %1172 = extractvalue { ptr, i32 } %1170, 1
  store i32 %1172, ptr %6, align 4
  br label %1187

1173:                                             ; preds = %644, %642, %639, %637
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %5, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %6, align 4
  br label %1186

1177:                                             ; preds = %645
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %5, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %6, align 4
  br label %1185

1181:                                             ; preds = %654, %651, %648, %646
  %1182 = landingpad { ptr, i32 }
          cleanup
  %1183 = extractvalue { ptr, i32 } %1182, 0
  store ptr %1183, ptr %5, align 8
  %1184 = extractvalue { ptr, i32 } %1182, 1
  store i32 %1184, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #6
  br label %1185

1185:                                             ; preds = %1181, %1177
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #6
  br label %1186

1186:                                             ; preds = %1185, %1173
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #6
  br label %1187

1187:                                             ; preds = %1186, %1169
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  br label %1188

1188:                                             ; preds = %1187, %1165
  call void @llvm.lifetime.end.p0(i64 16, ptr %168) #6
  br label %1189

1189:                                             ; preds = %1188, %1161
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %159) #6
  br label %1190

1190:                                             ; preds = %1189, %1157
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %160) #6
  br label %1191

1191:                                             ; preds = %1190, %1153
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %161) #6
  br label %1192

1192:                                             ; preds = %1191, %1149
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %162) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %161) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %160) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #6
  br label %1369

1193:                                             ; preds = %669, %666, %665
  %1194 = landingpad { ptr, i32 }
          cleanup
  %1195 = extractvalue { ptr, i32 } %1194, 0
  store ptr %1195, ptr %5, align 8
  %1196 = extractvalue { ptr, i32 } %1194, 1
  store i32 %1196, ptr %6, align 4
  br label %1236

1197:                                             ; preds = %672, %670
  %1198 = landingpad { ptr, i32 }
          cleanup
  %1199 = extractvalue { ptr, i32 } %1198, 0
  store ptr %1199, ptr %5, align 8
  %1200 = extractvalue { ptr, i32 } %1198, 1
  store i32 %1200, ptr %6, align 4
  br label %1235

1201:                                             ; preds = %674
  %1202 = landingpad { ptr, i32 }
          cleanup
  %1203 = extractvalue { ptr, i32 } %1202, 0
  store ptr %1203, ptr %5, align 8
  %1204 = extractvalue { ptr, i32 } %1202, 1
  store i32 %1204, ptr %6, align 4
  br label %1234

1205:                                             ; preds = %675
  %1206 = landingpad { ptr, i32 }
          cleanup
  %1207 = extractvalue { ptr, i32 } %1206, 0
  store ptr %1207, ptr %5, align 8
  %1208 = extractvalue { ptr, i32 } %1206, 1
  store i32 %1208, ptr %6, align 4
  br label %1233

1209:                                             ; preds = %678, %677
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %5, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %6, align 4
  br label %1232

1213:                                             ; preds = %679
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %5, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %6, align 4
  br label %1231

1217:                                             ; preds = %688, %686, %683, %681
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %5, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %6, align 4
  br label %1230

1221:                                             ; preds = %689
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %5, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %6, align 4
  br label %1229

1225:                                             ; preds = %698, %695, %692, %690
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %5, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #6
  br label %1229

1229:                                             ; preds = %1225, %1221
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #6
  br label %1230

1230:                                             ; preds = %1229, %1217
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #6
  br label %1231

1231:                                             ; preds = %1230, %1213
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #6
  br label %1232

1232:                                             ; preds = %1231, %1209
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #6
  br label %1233

1233:                                             ; preds = %1232, %1205
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %176) #6
  br label %1234

1234:                                             ; preds = %1233, %1201
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %177) #6
  br label %1235

1235:                                             ; preds = %1234, %1197
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %178) #6
  br label %1236

1236:                                             ; preds = %1235, %1193
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %181) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %178) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %177) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %176) #6
  br label %1369

1237:                                             ; preds = %713, %710, %709
  %1238 = landingpad { ptr, i32 }
          cleanup
  %1239 = extractvalue { ptr, i32 } %1238, 0
  store ptr %1239, ptr %5, align 8
  %1240 = extractvalue { ptr, i32 } %1238, 1
  store i32 %1240, ptr %6, align 4
  br label %1280

1241:                                             ; preds = %716, %714
  %1242 = landingpad { ptr, i32 }
          cleanup
  %1243 = extractvalue { ptr, i32 } %1242, 0
  store ptr %1243, ptr %5, align 8
  %1244 = extractvalue { ptr, i32 } %1242, 1
  store i32 %1244, ptr %6, align 4
  br label %1279

1245:                                             ; preds = %718
  %1246 = landingpad { ptr, i32 }
          cleanup
  %1247 = extractvalue { ptr, i32 } %1246, 0
  store ptr %1247, ptr %5, align 8
  %1248 = extractvalue { ptr, i32 } %1246, 1
  store i32 %1248, ptr %6, align 4
  br label %1278

1249:                                             ; preds = %719
  %1250 = landingpad { ptr, i32 }
          cleanup
  %1251 = extractvalue { ptr, i32 } %1250, 0
  store ptr %1251, ptr %5, align 8
  %1252 = extractvalue { ptr, i32 } %1250, 1
  store i32 %1252, ptr %6, align 4
  br label %1277

1253:                                             ; preds = %722, %721
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %5, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %6, align 4
  br label %1276

1257:                                             ; preds = %723
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %5, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %6, align 4
  br label %1275

1261:                                             ; preds = %732, %730, %727, %725
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %5, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %6, align 4
  br label %1274

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

1269:                                             ; preds = %742, %739, %736, %734
  %1270 = landingpad { ptr, i32 }
          cleanup
  %1271 = extractvalue { ptr, i32 } %1270, 0
  store ptr %1271, ptr %5, align 8
  %1272 = extractvalue { ptr, i32 } %1270, 1
  store i32 %1272, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #6
  br label %1273

1273:                                             ; preds = %1269, %1265
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #6
  br label %1274

1274:                                             ; preds = %1273, %1261
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #6
  br label %1275

1275:                                             ; preds = %1274, %1257
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #6
  br label %1276

1276:                                             ; preds = %1275, %1253
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #6
  br label %1277

1277:                                             ; preds = %1276, %1249
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %193) #6
  br label %1278

1278:                                             ; preds = %1277, %1245
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %194) #6
  br label %1279

1279:                                             ; preds = %1278, %1241
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %195) #6
  br label %1280

1280:                                             ; preds = %1279, %1237
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %196) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %195) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %194) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #6
  br label %1369

1281:                                             ; preds = %757, %754, %753
  %1282 = landingpad { ptr, i32 }
          cleanup
  %1283 = extractvalue { ptr, i32 } %1282, 0
  store ptr %1283, ptr %5, align 8
  %1284 = extractvalue { ptr, i32 } %1282, 1
  store i32 %1284, ptr %6, align 4
  br label %1324

1285:                                             ; preds = %760, %758
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %5, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %6, align 4
  br label %1323

1289:                                             ; preds = %762
  %1290 = landingpad { ptr, i32 }
          cleanup
  %1291 = extractvalue { ptr, i32 } %1290, 0
  store ptr %1291, ptr %5, align 8
  %1292 = extractvalue { ptr, i32 } %1290, 1
  store i32 %1292, ptr %6, align 4
  br label %1322

1293:                                             ; preds = %763
  %1294 = landingpad { ptr, i32 }
          cleanup
  %1295 = extractvalue { ptr, i32 } %1294, 0
  store ptr %1295, ptr %5, align 8
  %1296 = extractvalue { ptr, i32 } %1294, 1
  store i32 %1296, ptr %6, align 4
  br label %1321

1297:                                             ; preds = %766, %765
  %1298 = landingpad { ptr, i32 }
          cleanup
  %1299 = extractvalue { ptr, i32 } %1298, 0
  store ptr %1299, ptr %5, align 8
  %1300 = extractvalue { ptr, i32 } %1298, 1
  store i32 %1300, ptr %6, align 4
  br label %1320

1301:                                             ; preds = %767
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %5, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %6, align 4
  br label %1319

1305:                                             ; preds = %776, %774, %771, %769
  %1306 = landingpad { ptr, i32 }
          cleanup
  %1307 = extractvalue { ptr, i32 } %1306, 0
  store ptr %1307, ptr %5, align 8
  %1308 = extractvalue { ptr, i32 } %1306, 1
  store i32 %1308, ptr %6, align 4
  br label %1318

1309:                                             ; preds = %777
  %1310 = landingpad { ptr, i32 }
          cleanup
  %1311 = extractvalue { ptr, i32 } %1310, 0
  store ptr %1311, ptr %5, align 8
  %1312 = extractvalue { ptr, i32 } %1310, 1
  store i32 %1312, ptr %6, align 4
  br label %1317

1313:                                             ; preds = %786, %783, %780, %778
  %1314 = landingpad { ptr, i32 }
          cleanup
  %1315 = extractvalue { ptr, i32 } %1314, 0
  store ptr %1315, ptr %5, align 8
  %1316 = extractvalue { ptr, i32 } %1314, 1
  store i32 %1316, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #6
  br label %1317

1317:                                             ; preds = %1313, %1309
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #6
  br label %1318

1318:                                             ; preds = %1317, %1305
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #6
  br label %1319

1319:                                             ; preds = %1318, %1301
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #6
  br label %1320

1320:                                             ; preds = %1319, %1297
  call void @llvm.lifetime.end.p0(i64 16, ptr %219) #6
  br label %1321

1321:                                             ; preds = %1320, %1293
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %210) #6
  br label %1322

1322:                                             ; preds = %1321, %1289
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %211) #6
  br label %1323

1323:                                             ; preds = %1322, %1285
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %212) #6
  br label %1324

1324:                                             ; preds = %1323, %1281
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %215) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %213) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %212) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %211) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %210) #6
  br label %1369

1325:                                             ; preds = %801, %798, %797
  %1326 = landingpad { ptr, i32 }
          cleanup
  %1327 = extractvalue { ptr, i32 } %1326, 0
  store ptr %1327, ptr %5, align 8
  %1328 = extractvalue { ptr, i32 } %1326, 1
  store i32 %1328, ptr %6, align 4
  br label %1368

1329:                                             ; preds = %804, %802
  %1330 = landingpad { ptr, i32 }
          cleanup
  %1331 = extractvalue { ptr, i32 } %1330, 0
  store ptr %1331, ptr %5, align 8
  %1332 = extractvalue { ptr, i32 } %1330, 1
  store i32 %1332, ptr %6, align 4
  br label %1367

1333:                                             ; preds = %806
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %5, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %6, align 4
  br label %1366

1337:                                             ; preds = %807
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %5, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %6, align 4
  br label %1365

1341:                                             ; preds = %810, %809
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %5, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %6, align 4
  br label %1364

1345:                                             ; preds = %811
  %1346 = landingpad { ptr, i32 }
          cleanup
  %1347 = extractvalue { ptr, i32 } %1346, 0
  store ptr %1347, ptr %5, align 8
  %1348 = extractvalue { ptr, i32 } %1346, 1
  store i32 %1348, ptr %6, align 4
  br label %1363

1349:                                             ; preds = %820, %818, %815, %813
  %1350 = landingpad { ptr, i32 }
          cleanup
  %1351 = extractvalue { ptr, i32 } %1350, 0
  store ptr %1351, ptr %5, align 8
  %1352 = extractvalue { ptr, i32 } %1350, 1
  store i32 %1352, ptr %6, align 4
  br label %1362

1353:                                             ; preds = %821
  %1354 = landingpad { ptr, i32 }
          cleanup
  %1355 = extractvalue { ptr, i32 } %1354, 0
  store ptr %1355, ptr %5, align 8
  %1356 = extractvalue { ptr, i32 } %1354, 1
  store i32 %1356, ptr %6, align 4
  br label %1361

1357:                                             ; preds = %830, %827, %824, %822
  %1358 = landingpad { ptr, i32 }
          cleanup
  %1359 = extractvalue { ptr, i32 } %1358, 0
  store ptr %1359, ptr %5, align 8
  %1360 = extractvalue { ptr, i32 } %1358, 1
  store i32 %1360, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #6
  br label %1361

1361:                                             ; preds = %1357, %1353
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #6
  br label %1362

1362:                                             ; preds = %1361, %1349
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #6
  br label %1363

1363:                                             ; preds = %1362, %1345
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #6
  br label %1364

1364:                                             ; preds = %1363, %1341
  call void @llvm.lifetime.end.p0(i64 16, ptr %236) #6
  br label %1365

1365:                                             ; preds = %1364, %1337
  call void @llvm.lifetime.end.p0(i64 32, ptr %235) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %227) #6
  br label %1366

1366:                                             ; preds = %1365, %1333
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %228) #6
  br label %1367

1367:                                             ; preds = %1366, %1329
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %229) #6
  br label %1368

1368:                                             ; preds = %1367, %1325
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %230) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %229) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %228) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %227) #6
  br label %1369

1369:                                             ; preds = %1368, %1324, %1280, %1236, %1192, %1148, %1104, %1060, %1016, %972, %928, %884, %837
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  br label %1370

1370:                                             ; preds = %1369, %304
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %22) #6
  br label %1371

1371:                                             ; preds = %1370, %278
  call void @llvm.lifetime.end.p0(i64 352, ptr %22) #6
  call void @_ZN7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %1372

1372:                                             ; preds = %1371, %277
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #6
  br label %1373

1373:                                             ; preds = %1372, %268
  %1374 = load ptr, ptr %5, align 8
  %1375 = load i32, ptr %6, align 4
  %1376 = insertvalue { ptr, i32 } poison, ptr %1374, 0
  %1377 = insertvalue { ptr, i32 } %1376, i32 %1375, 1
  resume { ptr, i32 } %1377
}

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(352)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE10calc_forceERNS_6SystemIS3_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(352)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind noalias writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8, ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind noalias writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::value_expr") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion_result") align 8, ptr noundef nonnull align 8 dereferenceable(33)) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8, ptr noundef nonnull align 8 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16)) #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv() #4

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !6, i64 0}
!14 = !{!"_ZTSSt16initializer_listISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEE", !6, i64 0, !15, i64 8}
!15 = !{!"long", !7, i64 0}
!16 = !{!14, !15, i64 8}
!17 = !{!15, !15, i64 0}
!18 = !{i64 0, i64 24, !19}
!19 = !{!7, !7, i64 0}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = distinct !{!22, !21}
!23 = distinct !{!23, !21}
!24 = distinct !{!24, !21}
!25 = distinct !{!25, !21}
!26 = distinct !{!26, !21}
!27 = distinct !{!27, !21}
!28 = distinct !{!28, !21}
!29 = distinct !{!29, !21}
!30 = distinct !{!30, !21}
!31 = distinct !{!31, !21}
!32 = distinct !{!32, !21}
!33 = distinct !{!33, !21}


; 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.std::allocator" = type { i8 }
%"class.mjolnir::PullingForceInteraction" = type { %"class.mjolnir::ExternalForceInteractionBase", %"class.std::vector.314" }
%"class.mjolnir::ExternalForceInteractionBase" = type { ptr }
%"class.std::vector.314" = type { %"struct.std::_Vector_base.315" }
%"struct.std::_Vector_base.315" = type { %"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>, std::allocator<std::pair<unsigned long, mjolnir::math::Matrix<double, 3, 1>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.319" = type { i64, %"class.mjolnir::math::Matrix" }
%"class.mjolnir::math::Matrix" = type { %"struct.std::array" }
%"struct.std::array" = type { [3 x double] }
%"class.std::allocator.316" = type { i8 }
%"class.mjolnir::System" = type { i8, i8, %"class.std::map.321", %"class.std::map.326", %"class.mjolnir::math::Matrix.331", i64, %"class.std::vector.333", %"class.std::vector.333", %"class.std::vector.338", %"class.std::vector.338", %"class.std::vector.338", %"class.std::vector", %"class.std::vector" }
%"class.std::map.321" = type { %"class.std::_Rb_tree.322" }
%"class.std::_Rb_tree.322" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, double>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, double>>, std::less<std::__cxx11::basic_string<char>>>::_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::map.326" = type { %"class.std::_Rb_tree.327" }
%"class.std::_Rb_tree.327" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, mjolnir::DynamicVariable<double>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.mjolnir::math::Matrix.331" = type { %"struct.std::array.332" }
%"struct.std::array.332" = type { [9 x double] }
%"class.std::vector.333" = type { %"struct.std::_Vector_base.334" }
%"struct.std::_Vector_base.334" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.338" = type { %"struct.std::_Vector_base.339" }
%"struct.std::_Vector_base.339" = type { %"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<mjolnir::math::Matrix<double, 3, 1>, std::allocator<mjolnir::math::Matrix<double, 3, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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 }
%"struct.mjolnir::UnlimitedBoundary" = type { i8 }
%"class.boost::unit_test::basic_cstring" = type { ptr, ptr }
%"class.boost::test_tools::assertion_result" = type { %"class.boost::test_tools::assertion_result::readonly_property65", %"class.boost::shared_ptr.225" }
%"class.boost::test_tools::assertion_result::readonly_property65" = type { %"class.boost::unit_test::readonly_property.213" }
%"class.boost::unit_test::readonly_property.213" = type { %"class.boost::unit_test::class_property.98" }
%"class.boost::unit_test::class_property.98" = type { i8 }
%"class.boost::shared_ptr.225" = type { ptr, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { ptr }
%"struct.boost::test_tools::tt_detail::assertion_evaluate_t" = type <{ ptr, %"class.std::__cxx11::list.343", i8, [7 x i8] }>
%"class.std::__cxx11::list.343" = type { %"class.std::__cxx11::_List_base.344" }
%"class.std::__cxx11::_List_base.344" = type { %"struct.std::__cxx11::_List_base<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>, std::allocator<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>, std::allocator<boost::shared_ptr<boost::test_tools::tt_detail::assertion_evaluation_context>>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.boost::test_tools::assertion::binary_expr" = type { %"class.boost::test_tools::assertion::value_expr", ptr }
%"class.boost::test_tools::assertion::value_expr" = type { double }
%"class.boost::test_tools::assertion::seed" = type { i8 }
%"struct.boost::test_tools::tt_detail::tolerance_manip" = type { double }
%"class.boost::unit_test::lazy_ostream_impl.349" = type { %"class.boost::unit_test::lazy_ostream.base", ptr, ptr }
%"class.boost::unit_test::lazy_ostream.base" = type <{ ptr, i8 }>
%"struct.boost::test_tools::tt_detail::assertion_type" = type { i32 }

@_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE = external hidden local_unnamed_addr global ptr, align 8
@.str.401 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [38 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; 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 #1 align 2

; Function Attrs: mustprogress 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) #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(9), ptr noundef, i64 noundef, i32 noundef, i32 noundef, i64 noundef, ...) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN12PullingForce11test_methodEv(ptr nocapture noundef nonnull readnone align 1 dereferenceable(1) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = alloca %"class.mjolnir::PullingForceInteraction", align 8
  %5 = alloca %"class.std::vector.314", align 8
  %6 = alloca [2 x %"struct.std::pair.319"], align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.mjolnir::math::Matrix", align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.mjolnir::math::Matrix", align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca %"class.std::allocator.316", align 1
  %18 = alloca %"class.mjolnir::System", align 8
  %19 = alloca %"struct.mjolnir::UnlimitedBoundary", align 1
  %20 = alloca %"class.mjolnir::math::Matrix", align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca %"class.mjolnir::math::Matrix", align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca %"class.mjolnir::math::Matrix", align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %33 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %34 = alloca %"class.boost::test_tools::assertion_result", align 8
  %35 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %36 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %37 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %38 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %39 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %40 = alloca double, align 8
  %41 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %42 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %43 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %44 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %45 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %46 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %47 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %48 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %49 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %50 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %51 = alloca %"class.boost::test_tools::assertion_result", align 8
  %52 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %53 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %54 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %55 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %56 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %57 = alloca double, align 8
  %58 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %59 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %60 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %61 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %62 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %63 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %64 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %65 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %66 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %67 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %68 = alloca %"class.boost::test_tools::assertion_result", align 8
  %69 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %70 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %71 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %72 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %73 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %74 = alloca double, align 8
  %75 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %76 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %77 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %78 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %79 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %80 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %81 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %82 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %83 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %84 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %85 = alloca %"class.boost::test_tools::assertion_result", align 8
  %86 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %87 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %88 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %89 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %90 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %91 = alloca double, align 8
  %92 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %93 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %94 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %95 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %96 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %97 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %98 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %99 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %100 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %101 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %102 = alloca %"class.boost::test_tools::assertion_result", align 8
  %103 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %104 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %105 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %106 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %107 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %108 = alloca double, align 8
  %109 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %110 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %111 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %112 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %113 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %114 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %115 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %116 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %117 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %118 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %119 = alloca %"class.boost::test_tools::assertion_result", align 8
  %120 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %121 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %122 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %123 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %124 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %125 = alloca double, align 8
  %126 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %127 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %128 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %129 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %130 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %131 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %132 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %133 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %134 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %135 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %136 = alloca %"class.boost::test_tools::assertion_result", align 8
  %137 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %138 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %139 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %140 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %141 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %142 = alloca double, align 8
  %143 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %144 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %145 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %146 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %147 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %148 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %149 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %150 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %151 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %152 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %153 = alloca %"class.boost::test_tools::assertion_result", align 8
  %154 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %155 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %156 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %157 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %158 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %159 = alloca double, align 8
  %160 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %161 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %162 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %163 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %164 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %165 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %166 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %167 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %168 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %169 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %170 = alloca %"class.boost::test_tools::assertion_result", align 8
  %171 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %172 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %173 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %174 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %175 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %176 = alloca double, align 8
  %177 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %178 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %179 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %180 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %181 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %182 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %183 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %184 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %185 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %186 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %187 = alloca %"class.boost::test_tools::assertion_result", align 8
  %188 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %189 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %190 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %191 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %192 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %193 = alloca double, align 8
  %194 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %195 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %196 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %197 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %198 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %199 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %200 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %201 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %202 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %203 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %204 = alloca %"class.boost::test_tools::assertion_result", align 8
  %205 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %206 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %207 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %208 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %209 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %210 = alloca double, align 8
  %211 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %212 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %213 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %214 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %215 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %216 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %217 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %218 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %219 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %220 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %221 = alloca %"class.boost::test_tools::assertion_result", align 8
  %222 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %223 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %224 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %225 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %226 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %227 = alloca double, align 8
  %228 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %229 = alloca %"class.boost::unit_test::lazy_ostream_impl.349", align 8
  %230 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %231 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %232 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %233 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %234 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %235 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.402, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %236 unwind label %242

236:                                              ; preds = %1
  invoke void @_ZN7mjolnir20basic_logger_managerIcSt11char_traitsIcEE18set_default_loggerERKNSt7__cxx1112basic_stringIcS2_SaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %237 unwind label %244

237:                                              ; preds = %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  store i32 0, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  store double 1.000000e-01, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  store double 2.000000e-01, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  store double 3.000000e-01, ptr %11, align 8, !tbaa !9
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #6
  call void @_ZNSt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEC2IiS3_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS7_S8_EEEbE4typeELb1EEEOS7_OS8_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 8 dereferenceable(24) %8)
  %238 = getelementptr inbounds i8, ptr %6, i64 32
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  store i32 2, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  store double -3.000000e-01, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  store double -4.000000e-01, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  store double -5.000000e-01, ptr %16, align 8, !tbaa !9
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  call void @_ZNSt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEC2IiS3_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS7_S8_EEEbE4typeELb1EEEOS7_OS8_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 8 dereferenceable(24) %13)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  call void @_ZNSaISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  invoke void @_ZNSt6vectorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr nonnull %6, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %239 unwind label %247

239:                                              ; preds = %237
  call void @_ZN7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2EOSt6vectorISt4pairImNS_4math6MatrixIdLm3ELm1EEEESaISA_EE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %5)
  call void @_ZNSt6vectorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @_ZNSt15__new_allocatorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 352, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #6
  invoke void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2EmRKNS2_IdNS_4math6MatrixIdLm3ELm1EEEEE(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 4, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %240 unwind label %249

240:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  %241 = call noundef i64 @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(352) %18) #6
  %.not = icmp eq i64 %241, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %261, %240
  call void @_ZNK7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE10calc_forceERNS_6SystemIS3_EE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(352) %18) #6
  br label %267

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

244:                                              ; preds = %236
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  br label %246

246:                                              ; preds = %244, %242
  %.pn = phi { ptr, i32 } [ %245, %244 ], [ %243, %242 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #6
  br label %787

247:                                              ; preds = %237
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt4pairImN7mjolnir4math6MatrixIdLm3ELm1EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  br label %786

249:                                              ; preds = %239
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  br label %785

.lr.ph:                                           ; preds = %240, %261
  %.011192 = phi i64 [ %262, %261 ], [ 0, %240 ]
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef %.011192) #6
  store double 1.000000e+00, ptr %251, align 8, !tbaa !9
  %252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef %.011192) #6
  store double 1.000000e+00, ptr %252, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  store double 0.000000e+00, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  store double 0.000000e+00, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  store double 0.000000e+00, ptr %23, align 8, !tbaa !9
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  %253 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef %.011192) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %253, ptr noundef nonnull align 8 dereferenceable(24) %20, i64 24, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #6
  store double 0.000000e+00, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  store double 0.000000e+00, ptr %27, align 8, !tbaa !9
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  %254 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef %.011192) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %254, ptr noundef nonnull align 8 dereferenceable(24) %24, i64 24, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  store double 0.000000e+00, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  store double 0.000000e+00, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  store double 0.000000e+00, ptr %31, align 8, !tbaa !9
  call void @_ZN7mjolnir4math6MatrixIdLm3ELm1EEC2IJdddETnNSt9enable_ifIXeqsZT_L_ZNS2_10total_sizeEEEDnE4typeELDn0EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #6
  %255 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef %.011192) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %255, ptr noundef nonnull align 8 dereferenceable(24) %28, i64 24, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #6
  %256 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef %.011192) #6
  %257 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef nonnull @.str.403)
          to label %258 unwind label %265

258:                                              ; preds = %.lr.ph
  %259 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef %.011192) #6
  %260 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull @.str.404)
          to label %261 unwind label %265

261:                                              ; preds = %258
  %262 = add nuw i64 %.011192, 1
  %263 = call noundef i64 @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(352) %18) #6
  %264 = icmp ult i64 %262, %263
  br i1 %264, label %.lr.ph, label %._crit_edge, !llvm.loop !13

265:                                              ; preds = %258, %.lr.ph
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

267:                                              ; preds = %292, %._crit_edge
  %268 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %268, ptr noundef nonnull %32, i64 noundef 51, ptr noundef nonnull %33)
          to label %269 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

269:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  store double 1.000000e-01, ptr %40, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %38, ptr noundef nonnull align 1 dereferenceable(1) %39, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %270 unwind label %581

270:                                              ; preds = %269
  %271 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 0) #6
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %271) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %37, ptr noundef nonnull align 1 dereferenceable(1) %38, ptr noundef nonnull align 8 dereferenceable(8) %272)
          to label %273 unwind label %581

273:                                              ; preds = %270
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %36, ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %274 unwind label %581

274:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  %275 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %276 unwind label %583

276:                                              ; preds = %274
  store double %275, ptr %41, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %35, ptr noundef nonnull align 8 dereferenceable(33) %36, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %277 unwind label %583

277:                                              ; preds = %276
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %34, ptr noundef nonnull align 8 dereferenceable(33) %35)
          to label %278 unwind label %585

278:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #6
  %279 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull @.str.405, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %42, ptr noundef nonnull align 8 dereferenceable(9) %279, ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %280 unwind label %587

280:                                              ; preds = %278
  %281 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #6
  %282 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %283 unwind label %589

283:                                              ; preds = %280
  store double %282, ptr %44, align 8
  %284 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %281, ptr noundef nonnull align 8 dereferenceable(8) %44)
  %285 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %42, ptr noundef nonnull align 8 dereferenceable(9) %284)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %47, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #6
  %286 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %287 unwind label %591

287:                                              ; preds = %283
  store double %286, ptr %48, align 8
  %288 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %289 unwind label %591

289:                                              ; preds = %287
  store i32 %288, ptr %46, align 4
  %290 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %46)
  %291 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(9) %285, ptr noundef nonnull %45, i64 noundef 51, i32 noundef 1, i32 noundef %290, i64 noundef 0)
          to label %292 unwind label %591

292:                                              ; preds = %289
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #6
  %293 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %293, label %267, label %.preheader189, !llvm.loop !17

.preheader189:                                    ; preds = %292, %318
  %294 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull %49, i64 noundef 52, ptr noundef nonnull %50)
          to label %295 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

295:                                              ; preds = %.preheader189
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %52) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %53) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #6
  store double 2.000000e-01, ptr %57, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %55, ptr noundef nonnull align 1 dereferenceable(1) %56, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %296 unwind label %598

296:                                              ; preds = %295
  %297 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 0) #6
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %297) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %54, ptr noundef nonnull align 1 dereferenceable(1) %55, ptr noundef nonnull align 8 dereferenceable(8) %298)
          to label %299 unwind label %598

299:                                              ; preds = %296
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %53, ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %300 unwind label %598

300:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #6
  %301 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %302 unwind label %600

302:                                              ; preds = %300
  store double %301, ptr %58, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %52, ptr noundef nonnull align 8 dereferenceable(33) %53, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %303 unwind label %600

303:                                              ; preds = %302
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %51, ptr noundef nonnull align 8 dereferenceable(33) %52)
          to label %304 unwind label %602

304:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #6
  %305 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %60) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull @.str.406, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %59, ptr noundef nonnull align 8 dereferenceable(9) %305, ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %306 unwind label %604

306:                                              ; preds = %304
  %307 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #6
  %308 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %309 unwind label %606

309:                                              ; preds = %306
  store double %308, ptr %61, align 8
  %310 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %307, ptr noundef nonnull align 8 dereferenceable(8) %61)
  %311 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %59, ptr noundef nonnull align 8 dereferenceable(9) %310)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %64) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %64, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #6
  %312 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %313 unwind label %608

313:                                              ; preds = %309
  store double %312, ptr %65, align 8
  %314 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %315 unwind label %608

315:                                              ; preds = %313
  store i32 %314, ptr %63, align 4
  %316 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %63)
  %317 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(9) %311, ptr noundef nonnull %62, i64 noundef 52, i32 noundef 1, i32 noundef %316, i64 noundef 0)
          to label %318 unwind label %608

318:                                              ; preds = %315
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %53) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #6
  %319 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %319, label %.preheader189, label %.preheader185, !llvm.loop !18

.preheader185:                                    ; preds = %318, %344
  %320 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef nonnull %66, i64 noundef 53, ptr noundef nonnull %67)
          to label %321 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

321:                                              ; preds = %.preheader185
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %68) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %69) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %70) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #6
  store double 3.000000e-01, ptr %74, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %72, ptr noundef nonnull align 1 dereferenceable(1) %73, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %322 unwind label %615

322:                                              ; preds = %321
  %323 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 0) #6
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %323) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %71, ptr noundef nonnull align 1 dereferenceable(1) %72, ptr noundef nonnull align 8 dereferenceable(8) %324)
          to label %325 unwind label %615

325:                                              ; preds = %322
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %70, ptr noundef nonnull align 8 dereferenceable(16) %71)
          to label %326 unwind label %615

326:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #6
  %327 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %328 unwind label %617

328:                                              ; preds = %326
  store double %327, ptr %75, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %69, ptr noundef nonnull align 8 dereferenceable(33) %70, ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %329 unwind label %617

329:                                              ; preds = %328
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %68, ptr noundef nonnull align 8 dereferenceable(33) %69)
          to label %330 unwind label %619

330:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #6
  %331 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %77) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull @.str.407, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %76, ptr noundef nonnull align 8 dereferenceable(9) %331, ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %332 unwind label %621

332:                                              ; preds = %330
  %333 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #6
  %334 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %335 unwind label %623

335:                                              ; preds = %332
  store double %334, ptr %78, align 8
  %336 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %333, ptr noundef nonnull align 8 dereferenceable(8) %78)
  %337 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %76, ptr noundef nonnull align 8 dereferenceable(9) %336)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %80) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %81) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %81, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #6
  %338 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %339 unwind label %625

339:                                              ; preds = %335
  store double %338, ptr %82, align 8
  %340 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %81, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %341 unwind label %625

341:                                              ; preds = %339
  store i32 %340, ptr %80, align 4
  %342 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %80)
  %343 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(9) %337, ptr noundef nonnull %79, i64 noundef 53, i32 noundef 1, i32 noundef %342, i64 noundef 0)
          to label %344 unwind label %625

344:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %69) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %69) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #6
  %345 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %345, label %.preheader185, label %.preheader182, !llvm.loop !19

.preheader182:                                    ; preds = %344, %370
  %346 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %84)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull %83, i64 noundef 55, ptr noundef nonnull %84)
          to label %347 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

347:                                              ; preds = %.preheader182
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %85) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %86) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %87) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %88) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %90) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #6
  store double 0.000000e+00, ptr %91, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %89, ptr noundef nonnull align 1 dereferenceable(1) %90, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %348 unwind label %632

348:                                              ; preds = %347
  %349 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 1) #6
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %349) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %88, ptr noundef nonnull align 1 dereferenceable(1) %89, ptr noundef nonnull align 8 dereferenceable(8) %350)
          to label %351 unwind label %632

351:                                              ; preds = %348
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %87, ptr noundef nonnull align 8 dereferenceable(16) %88)
          to label %352 unwind label %632

352:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #6
  %353 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %354 unwind label %634

354:                                              ; preds = %352
  store double %353, ptr %92, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %86, ptr noundef nonnull align 8 dereferenceable(33) %87, ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %355 unwind label %634

355:                                              ; preds = %354
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %85, ptr noundef nonnull align 8 dereferenceable(33) %86)
          to label %356 unwind label %636

356:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #6
  %357 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %94) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull @.str.408, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %93, ptr noundef nonnull align 8 dereferenceable(9) %357, ptr noundef nonnull align 8 dereferenceable(16) %94)
          to label %358 unwind label %638

358:                                              ; preds = %356
  %359 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #6
  %360 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %361 unwind label %640

361:                                              ; preds = %358
  store double %360, ptr %95, align 8
  %362 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %359, ptr noundef nonnull align 8 dereferenceable(8) %95)
  %363 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %93, ptr noundef nonnull align 8 dereferenceable(9) %362)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %96, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %97) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %98) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %98, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #6
  %364 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %365 unwind label %642

365:                                              ; preds = %361
  store double %364, ptr %99, align 8
  %366 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %98, ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %367 unwind label %642

367:                                              ; preds = %365
  store i32 %366, ptr %97, align 4
  %368 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %97)
  %369 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %85, ptr noundef nonnull align 8 dereferenceable(9) %363, ptr noundef nonnull %96, i64 noundef 55, i32 noundef 1, i32 noundef %368, i64 noundef 0)
          to label %370 unwind label %642

370:                                              ; preds = %367
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %87) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %85) #6
  %371 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %371, label %.preheader182, label %.preheader178, !llvm.loop !20

.preheader178:                                    ; preds = %370, %396
  %372 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull %100, i64 noundef 56, ptr noundef nonnull %101)
          to label %373 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

373:                                              ; preds = %.preheader178
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %102) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %103) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %104) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %105) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %107) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %108) #6
  store double 0.000000e+00, ptr %108, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %106, ptr noundef nonnull align 1 dereferenceable(1) %107, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %374 unwind label %649

374:                                              ; preds = %373
  %375 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 1) #6
  %376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %375) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %105, ptr noundef nonnull align 1 dereferenceable(1) %106, ptr noundef nonnull align 8 dereferenceable(8) %376)
          to label %377 unwind label %649

377:                                              ; preds = %374
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %104, ptr noundef nonnull align 8 dereferenceable(16) %105)
          to label %378 unwind label %649

378:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %109) #6
  %379 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %380 unwind label %651

380:                                              ; preds = %378
  store double %379, ptr %109, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %103, ptr noundef nonnull align 8 dereferenceable(33) %104, ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %381 unwind label %651

381:                                              ; preds = %380
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %102, ptr noundef nonnull align 8 dereferenceable(33) %103)
          to label %382 unwind label %653

382:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #6
  %383 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %111) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull @.str.409, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %110, ptr noundef nonnull align 8 dereferenceable(9) %383, ptr noundef nonnull align 8 dereferenceable(16) %111)
          to label %384 unwind label %655

384:                                              ; preds = %382
  %385 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #6
  %386 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %387 unwind label %657

387:                                              ; preds = %384
  store double %386, ptr %112, align 8
  %388 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %385, ptr noundef nonnull align 8 dereferenceable(8) %112)
  %389 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %110, ptr noundef nonnull align 8 dereferenceable(9) %388)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %114) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %115) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %115, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %116) #6
  %390 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %391 unwind label %659

391:                                              ; preds = %387
  store double %390, ptr %116, align 8
  %392 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %115, ptr noundef nonnull align 8 dereferenceable(8) %116)
          to label %393 unwind label %659

393:                                              ; preds = %391
  store i32 %392, ptr %114, align 4
  %394 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %114)
  %395 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %102, ptr noundef nonnull align 8 dereferenceable(9) %389, ptr noundef nonnull %113, i64 noundef 56, i32 noundef 1, i32 noundef %394, i64 noundef 0)
          to label %396 unwind label %659

396:                                              ; preds = %393
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %115) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %114) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %103) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %104) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %104) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %103) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %102) #6
  %397 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %397, label %.preheader178, label %.preheader175, !llvm.loop !21

.preheader175:                                    ; preds = %396, %422
  %398 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef nonnull %117, i64 noundef 57, ptr noundef nonnull %118)
          to label %399 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

399:                                              ; preds = %.preheader175
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %119) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %120) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %121) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %122) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %124) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %125) #6
  store double 0.000000e+00, ptr %125, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %123, ptr noundef nonnull align 1 dereferenceable(1) %124, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %400 unwind label %666

400:                                              ; preds = %399
  %401 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 1) #6
  %402 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %401) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %122, ptr noundef nonnull align 1 dereferenceable(1) %123, ptr noundef nonnull align 8 dereferenceable(8) %402)
          to label %403 unwind label %666

403:                                              ; preds = %400
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %121, ptr noundef nonnull align 8 dereferenceable(16) %122)
          to label %404 unwind label %666

404:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %126) #6
  %405 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %406 unwind label %668

406:                                              ; preds = %404
  store double %405, ptr %126, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %120, ptr noundef nonnull align 8 dereferenceable(33) %121, ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %407 unwind label %668

407:                                              ; preds = %406
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %119, ptr noundef nonnull align 8 dereferenceable(33) %120)
          to label %408 unwind label %670

408:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #6
  %409 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %128) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef nonnull @.str.410, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %127, ptr noundef nonnull align 8 dereferenceable(9) %409, ptr noundef nonnull align 8 dereferenceable(16) %128)
          to label %410 unwind label %672

410:                                              ; preds = %408
  %411 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %129) #6
  %412 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %413 unwind label %674

413:                                              ; preds = %410
  store double %412, ptr %129, align 8
  %414 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %411, ptr noundef nonnull align 8 dereferenceable(8) %129)
  %415 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %127, ptr noundef nonnull align 8 dereferenceable(9) %414)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %130, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %131) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %132) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %132, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %133) #6
  %416 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %417 unwind label %676

417:                                              ; preds = %413
  store double %416, ptr %133, align 8
  %418 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %132, ptr noundef nonnull align 8 dereferenceable(8) %133)
          to label %419 unwind label %676

419:                                              ; preds = %417
  store i32 %418, ptr %131, align 4
  %420 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %131)
  %421 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef nonnull align 8 dereferenceable(9) %415, ptr noundef nonnull %130, i64 noundef 57, i32 noundef 1, i32 noundef %420, i64 noundef 0)
          to label %422 unwind label %676

422:                                              ; preds = %419
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %133) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %132) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %131) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %128) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %120) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %121) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %122) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %121) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %120) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %119) #6
  %423 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %423, label %.preheader175, label %.preheader171, !llvm.loop !22

.preheader171:                                    ; preds = %422, %448
  %424 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %424, ptr noundef nonnull %134, i64 noundef 59, ptr noundef nonnull %135)
          to label %425 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

425:                                              ; preds = %.preheader171
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %136) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %137) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %138) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %139) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %141) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #6
  store double -3.000000e-01, ptr %142, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %140, ptr noundef nonnull align 1 dereferenceable(1) %141, ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %426 unwind label %683

426:                                              ; preds = %425
  %427 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 2) #6
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %427) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %139, ptr noundef nonnull align 1 dereferenceable(1) %140, ptr noundef nonnull align 8 dereferenceable(8) %428)
          to label %429 unwind label %683

429:                                              ; preds = %426
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %138, ptr noundef nonnull align 8 dereferenceable(16) %139)
          to label %430 unwind label %683

430:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %143) #6
  %431 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %432 unwind label %685

432:                                              ; preds = %430
  store double %431, ptr %143, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %137, ptr noundef nonnull align 8 dereferenceable(33) %138, ptr noundef nonnull align 8 dereferenceable(8) %143)
          to label %433 unwind label %685

433:                                              ; preds = %432
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %136, ptr noundef nonnull align 8 dereferenceable(33) %137)
          to label %434 unwind label %687

434:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #6
  %435 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %145) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %145, ptr noundef nonnull @.str.411, i64 noundef 38)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %144, ptr noundef nonnull align 8 dereferenceable(9) %435, ptr noundef nonnull align 8 dereferenceable(16) %145)
          to label %436 unwind label %689

436:                                              ; preds = %434
  %437 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %146) #6
  %438 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %439 unwind label %691

439:                                              ; preds = %436
  store double %438, ptr %146, align 8
  %440 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %437, ptr noundef nonnull align 8 dereferenceable(8) %146)
  %441 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %144, ptr noundef nonnull align 8 dereferenceable(9) %440)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %148) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %149) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %149, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %150) #6
  %442 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %443 unwind label %693

443:                                              ; preds = %439
  store double %442, ptr %150, align 8
  %444 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %149, ptr noundef nonnull align 8 dereferenceable(8) %150)
          to label %445 unwind label %693

445:                                              ; preds = %443
  store i32 %444, ptr %148, align 4
  %446 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %148)
  %447 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %136, ptr noundef nonnull align 8 dereferenceable(9) %441, ptr noundef nonnull %147, i64 noundef 59, i32 noundef 1, i32 noundef %446, i64 noundef 0)
          to label %448 unwind label %693

448:                                              ; preds = %445
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %149) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %145) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %136) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %137) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %138) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %139) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %138) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %137) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %136) #6
  %449 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %449, label %.preheader171, label %.preheader168, !llvm.loop !23

.preheader168:                                    ; preds = %448, %474
  %450 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %152)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef nonnull %151, i64 noundef 60, ptr noundef nonnull %152)
          to label %451 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

451:                                              ; preds = %.preheader168
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %153) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %154) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %155) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %156) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %157) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %158) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %159) #6
  store double -4.000000e-01, ptr %159, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %157, ptr noundef nonnull align 1 dereferenceable(1) %158, ptr noundef nonnull align 8 dereferenceable(8) %159)
          to label %452 unwind label %700

452:                                              ; preds = %451
  %453 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 2) #6
  %454 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %453) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %156, ptr noundef nonnull align 1 dereferenceable(1) %157, ptr noundef nonnull align 8 dereferenceable(8) %454)
          to label %455 unwind label %700

455:                                              ; preds = %452
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %155, ptr noundef nonnull align 8 dereferenceable(16) %156)
          to label %456 unwind label %700

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %160) #6
  %457 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %458 unwind label %702

458:                                              ; preds = %456
  store double %457, ptr %160, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %154, ptr noundef nonnull align 8 dereferenceable(33) %155, ptr noundef nonnull align 8 dereferenceable(8) %160)
          to label %459 unwind label %702

459:                                              ; preds = %458
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %153, ptr noundef nonnull align 8 dereferenceable(33) %154)
          to label %460 unwind label %704

460:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #6
  %461 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %162) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %162, ptr noundef nonnull @.str.412, i64 noundef 38)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %161, ptr noundef nonnull align 8 dereferenceable(9) %461, ptr noundef nonnull align 8 dereferenceable(16) %162)
          to label %462 unwind label %706

462:                                              ; preds = %460
  %463 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %163) #6
  %464 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %465 unwind label %708

465:                                              ; preds = %462
  store double %464, ptr %163, align 8
  %466 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %463, ptr noundef nonnull align 8 dereferenceable(8) %163)
  %467 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %161, ptr noundef nonnull align 8 dereferenceable(9) %466)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %165) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %166) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %166, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %167) #6
  %468 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %469 unwind label %710

469:                                              ; preds = %465
  store double %468, ptr %167, align 8
  %470 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %166, ptr noundef nonnull align 8 dereferenceable(8) %167)
          to label %471 unwind label %710

471:                                              ; preds = %469
  store i32 %470, ptr %165, align 4
  %472 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %165)
  %473 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 8 dereferenceable(9) %467, ptr noundef nonnull %164, i64 noundef 60, i32 noundef 1, i32 noundef %472, i64 noundef 0)
          to label %474 unwind label %710

474:                                              ; preds = %471
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %167) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %166) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %165) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %163) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %162) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %153) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %154) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %155) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %158) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %156) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %155) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %154) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %153) #6
  %475 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %475, label %.preheader168, label %.preheader164, !llvm.loop !24

.preheader164:                                    ; preds = %474, %500
  %476 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %169)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %476, ptr noundef nonnull %168, i64 noundef 61, ptr noundef nonnull %169)
          to label %477 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

477:                                              ; preds = %.preheader164
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %170) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %171) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %172) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %173) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %174) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %175) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %176) #6
  store double -5.000000e-01, ptr %176, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %174, ptr noundef nonnull align 1 dereferenceable(1) %175, ptr noundef nonnull align 8 dereferenceable(8) %176)
          to label %478 unwind label %717

478:                                              ; preds = %477
  %479 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 2) #6
  %480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %479) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %173, ptr noundef nonnull align 1 dereferenceable(1) %174, ptr noundef nonnull align 8 dereferenceable(8) %480)
          to label %481 unwind label %717

481:                                              ; preds = %478
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %172, ptr noundef nonnull align 8 dereferenceable(16) %173)
          to label %482 unwind label %717

482:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %177) #6
  %483 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %484 unwind label %719

484:                                              ; preds = %482
  store double %483, ptr %177, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %171, ptr noundef nonnull align 8 dereferenceable(33) %172, ptr noundef nonnull align 8 dereferenceable(8) %177)
          to label %485 unwind label %719

485:                                              ; preds = %484
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %170, ptr noundef nonnull align 8 dereferenceable(33) %171)
          to label %486 unwind label %721

486:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #6
  %487 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %179) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %179, ptr noundef nonnull @.str.413, i64 noundef 38)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %178, ptr noundef nonnull align 8 dereferenceable(9) %487, ptr noundef nonnull align 8 dereferenceable(16) %179)
          to label %488 unwind label %723

488:                                              ; preds = %486
  %489 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %180) #6
  %490 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %491 unwind label %725

491:                                              ; preds = %488
  store double %490, ptr %180, align 8
  %492 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %489, ptr noundef nonnull align 8 dereferenceable(8) %180)
  %493 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %178, ptr noundef nonnull align 8 dereferenceable(9) %492)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %182) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %183) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %183, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %184) #6
  %494 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %495 unwind label %727

495:                                              ; preds = %491
  store double %494, ptr %184, align 8
  %496 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %183, ptr noundef nonnull align 8 dereferenceable(8) %184)
          to label %497 unwind label %727

497:                                              ; preds = %495
  store i32 %496, ptr %182, align 4
  %498 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %182)
  %499 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %170, ptr noundef nonnull align 8 dereferenceable(9) %493, ptr noundef nonnull %181, i64 noundef 61, i32 noundef 1, i32 noundef %498, i64 noundef 0)
          to label %500 unwind label %727

500:                                              ; preds = %497
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %184) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %183) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %182) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %179) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %170) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %171) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %172) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %176) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %174) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %173) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %172) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %171) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %170) #6
  %501 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %501, label %.preheader164, label %.preheader161, !llvm.loop !25

.preheader161:                                    ; preds = %500, %526
  %502 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %185, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %186)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef nonnull %185, i64 noundef 63, ptr noundef nonnull %186)
          to label %503 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

503:                                              ; preds = %.preheader161
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %187) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %188) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %189) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %190) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %191) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %192) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %193) #6
  store double 0.000000e+00, ptr %193, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %191, ptr noundef nonnull align 1 dereferenceable(1) %192, ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %504 unwind label %734

504:                                              ; preds = %503
  %505 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 3) #6
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %505) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %190, ptr noundef nonnull align 1 dereferenceable(1) %191, ptr noundef nonnull align 8 dereferenceable(8) %506)
          to label %507 unwind label %734

507:                                              ; preds = %504
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %189, ptr noundef nonnull align 8 dereferenceable(16) %190)
          to label %508 unwind label %734

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %194) #6
  %509 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %510 unwind label %736

510:                                              ; preds = %508
  store double %509, ptr %194, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %188, ptr noundef nonnull align 8 dereferenceable(33) %189, ptr noundef nonnull align 8 dereferenceable(8) %194)
          to label %511 unwind label %736

511:                                              ; preds = %510
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %187, ptr noundef nonnull align 8 dereferenceable(33) %188)
          to label %512 unwind label %738

512:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %195) #6
  %513 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %196) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %196, ptr noundef nonnull @.str.414, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %195, ptr noundef nonnull align 8 dereferenceable(9) %513, ptr noundef nonnull align 8 dereferenceable(16) %196)
          to label %514 unwind label %740

514:                                              ; preds = %512
  %515 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %197) #6
  %516 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %517 unwind label %742

517:                                              ; preds = %514
  store double %516, ptr %197, align 8
  %518 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %515, ptr noundef nonnull align 8 dereferenceable(8) %197)
  %519 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %195, ptr noundef nonnull align 8 dereferenceable(9) %518)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %198, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %199) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %200) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %200, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %201) #6
  %520 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %521 unwind label %744

521:                                              ; preds = %517
  store double %520, ptr %201, align 8
  %522 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %200, ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %523 unwind label %744

523:                                              ; preds = %521
  store i32 %522, ptr %199, align 4
  %524 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %199)
  %525 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %187, ptr noundef nonnull align 8 dereferenceable(9) %519, ptr noundef nonnull %198, i64 noundef 63, i32 noundef 1, i32 noundef %524, i64 noundef 0)
          to label %526 unwind label %744

526:                                              ; preds = %523
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %200) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %199) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %197) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %196) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %187) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %188) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %194) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %189) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %193) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %192) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %191) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %190) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %189) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %188) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %187) #6
  %527 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %527, label %.preheader161, label %.preheader157, !llvm.loop !26

.preheader157:                                    ; preds = %526, %552
  %528 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %528, ptr noundef nonnull %202, i64 noundef 64, ptr noundef nonnull %203)
          to label %529 unwind label %.loopexit.split-lp.loopexit

529:                                              ; preds = %.preheader157
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %204) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %205) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %206) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %207) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %208) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %209) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %210) #6
  store double 0.000000e+00, ptr %210, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %208, ptr noundef nonnull align 1 dereferenceable(1) %209, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %530 unwind label %751

530:                                              ; preds = %529
  %531 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 3) #6
  %532 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %531) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %207, ptr noundef nonnull align 1 dereferenceable(1) %208, ptr noundef nonnull align 8 dereferenceable(8) %532)
          to label %533 unwind label %751

533:                                              ; preds = %530
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %206, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %534 unwind label %751

534:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %211) #6
  %535 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %536 unwind label %753

536:                                              ; preds = %534
  store double %535, ptr %211, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %205, ptr noundef nonnull align 8 dereferenceable(33) %206, ptr noundef nonnull align 8 dereferenceable(8) %211)
          to label %537 unwind label %753

537:                                              ; preds = %536
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %204, ptr noundef nonnull align 8 dereferenceable(33) %205)
          to label %538 unwind label %755

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %212) #6
  %539 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %213) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %213, ptr noundef nonnull @.str.415, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %212, ptr noundef nonnull align 8 dereferenceable(9) %539, ptr noundef nonnull align 8 dereferenceable(16) %213)
          to label %540 unwind label %757

540:                                              ; preds = %538
  %541 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %214) #6
  %542 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %543 unwind label %759

543:                                              ; preds = %540
  store double %542, ptr %214, align 8
  %544 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %541, ptr noundef nonnull align 8 dereferenceable(8) %214)
  %545 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %212, ptr noundef nonnull align 8 dereferenceable(9) %544)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %216) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %217) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %217, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %218) #6
  %546 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %547 unwind label %761

547:                                              ; preds = %543
  store double %546, ptr %218, align 8
  %548 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %217, ptr noundef nonnull align 8 dereferenceable(8) %218)
          to label %549 unwind label %761

549:                                              ; preds = %547
  store i32 %548, ptr %216, align 4
  %550 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %216)
  %551 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %204, ptr noundef nonnull align 8 dereferenceable(9) %545, ptr noundef nonnull %215, i64 noundef 64, i32 noundef 1, i32 noundef %550, i64 noundef 0)
          to label %552 unwind label %761

552:                                              ; preds = %549
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %218) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %217) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %216) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %214) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %213) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %204) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %205) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %211) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %206) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %210) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %208) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %207) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %206) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %205) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %204) #6
  %553 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %553, label %.preheader157, label %.preheader, !llvm.loop !27

.preheader:                                       ; preds = %552, %578
  %554 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !15
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %219, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %220)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %554, ptr noundef nonnull %219, i64 noundef 65, ptr noundef nonnull %220)
          to label %555 unwind label %.loopexit

555:                                              ; preds = %.preheader
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %221) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %222) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %223) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %224) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %225) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %226) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %227) #6
  store double 0.000000e+00, ptr %227, align 8, !tbaa !9
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %225, ptr noundef nonnull align 1 dereferenceable(1) %226, ptr noundef nonnull align 8 dereferenceable(8) %227)
          to label %556 unwind label %768

556:                                              ; preds = %555
  %557 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %18, i64 noundef 3) #6
  %558 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %557) #6
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %224, ptr noundef nonnull align 1 dereferenceable(1) %225, ptr noundef nonnull align 8 dereferenceable(8) %558)
          to label %559 unwind label %768

559:                                              ; preds = %556
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %223, ptr noundef nonnull align 8 dereferenceable(16) %224)
          to label %560 unwind label %768

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %228) #6
  %561 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %562 unwind label %770

562:                                              ; preds = %560
  store double %561, ptr %228, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %222, ptr noundef nonnull align 8 dereferenceable(33) %223, ptr noundef nonnull align 8 dereferenceable(8) %228)
          to label %563 unwind label %770

563:                                              ; preds = %562
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %221, ptr noundef nonnull align 8 dereferenceable(33) %222)
          to label %564 unwind label %772

564:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %229) #6
  %565 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %230) #6
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %230, ptr noundef nonnull @.str.416, i64 noundef 37)
  invoke void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8 %229, ptr noundef nonnull align 8 dereferenceable(9) %565, ptr noundef nonnull align 8 dereferenceable(16) %230)
          to label %566 unwind label %774

566:                                              ; preds = %564
  %567 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %231) #6
  %568 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %569 unwind label %776

569:                                              ; preds = %566
  store double %568, ptr %231, align 8
  %570 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detaillsIdEERNS_9unit_test12lazy_ostreamES5_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %567, ptr noundef nonnull align 8 dereferenceable(8) %231)
  %571 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %229, ptr noundef nonnull align 8 dereferenceable(9) %570)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %232, ptr noundef nonnull @.str.401, i64 noundef 96)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %233) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %234) #6
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %234, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %235) #6
  %572 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 0x3EB0C6F7A0B5ED8D)
          to label %573 unwind label %778

573:                                              ; preds = %569
  store double %572, ptr %235, align 8
  %574 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %234, ptr noundef nonnull align 8 dereferenceable(8) %235)
          to label %575 unwind label %778

575:                                              ; preds = %573
  store i32 %574, ptr %233, align 4
  %576 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %233)
  %577 = invoke noundef zeroext i1 (ptr, ptr, ptr, i64, i32, i32, i64, ...) @_ZN5boost10test_tools9tt_detail16report_assertionERKNS0_16assertion_resultERKNS_9unit_test12lazy_ostreamENS5_13basic_cstringIKcEEmNS1_10tool_levelENS1_10check_typeEmz(ptr noundef nonnull align 8 dereferenceable(24) %221, ptr noundef nonnull align 8 dereferenceable(9) %571, ptr noundef nonnull %232, i64 noundef 65, i32 noundef 1, i32 noundef %576, i64 noundef 0)
          to label %578 unwind label %778

578:                                              ; preds = %575
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %235) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %234) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %233) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %231) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %230) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %221) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %222) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %223) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %227) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %226) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %224) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %223) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %222) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %221) #6
  %579 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %579, label %.preheader, label %580, !llvm.loop !28

580:                                              ; preds = %578
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %18) #6
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %18) #6
  call void @_ZN7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  ret void

.loopexit:                                        ; preds = %.preheader
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit:                      ; preds = %.preheader157
  %lpad.loopexit158 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit:    ; preds = %.preheader161
  %lpad.loopexit162 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader164
  %lpad.loopexit165 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader168
  %lpad.loopexit169 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader171
  %lpad.loopexit172 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader175
  %lpad.loopexit176 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader178
  %lpad.loopexit179 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader182
  %lpad.loopexit183 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader185
  %lpad.loopexit186 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.preheader189
  %lpad.loopexit190 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %267
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

581:                                              ; preds = %273, %270, %269
  %582 = landingpad { ptr, i32 }
          cleanup
  br label %597

583:                                              ; preds = %276, %274
  %584 = landingpad { ptr, i32 }
          cleanup
  br label %596

585:                                              ; preds = %277
  %586 = landingpad { ptr, i32 }
          cleanup
  br label %595

587:                                              ; preds = %278
  %588 = landingpad { ptr, i32 }
          cleanup
  br label %594

589:                                              ; preds = %280
  %590 = landingpad { ptr, i32 }
          cleanup
  br label %593

591:                                              ; preds = %289, %287, %283
  %592 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #6
  br label %593

593:                                              ; preds = %591, %589
  %.pn79 = phi { ptr, i32 } [ %592, %591 ], [ %590, %589 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %594

594:                                              ; preds = %593, %587
  %.pn79.pn = phi { ptr, i32 } [ %.pn79, %593 ], [ %588, %587 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #6
  br label %595

595:                                              ; preds = %594, %585
  %.pn79.pn.pn = phi { ptr, i32 } [ %.pn79.pn, %594 ], [ %586, %585 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %35) #6
  br label %596

596:                                              ; preds = %595, %583
  %.pn79.pn.pn.pn = phi { ptr, i32 } [ %.pn79.pn.pn, %595 ], [ %584, %583 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %36) #6
  br label %597

597:                                              ; preds = %596, %581
  %.pn79.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn79.pn.pn.pn, %596 ], [ %582, %581 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #6
  br label %.loopexit.split-lp

598:                                              ; preds = %299, %296, %295
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %614

600:                                              ; preds = %302, %300
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %613

602:                                              ; preds = %303
  %603 = landingpad { ptr, i32 }
          cleanup
  br label %612

604:                                              ; preds = %304
  %605 = landingpad { ptr, i32 }
          cleanup
  br label %611

606:                                              ; preds = %306
  %607 = landingpad { ptr, i32 }
          cleanup
  br label %610

608:                                              ; preds = %315, %313, %309
  %609 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #6
  br label %610

610:                                              ; preds = %608, %606
  %.pn85 = phi { ptr, i32 } [ %609, %608 ], [ %607, %606 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %611

611:                                              ; preds = %610, %604
  %.pn85.pn = phi { ptr, i32 } [ %.pn85, %610 ], [ %605, %604 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #6
  br label %612

612:                                              ; preds = %611, %602
  %.pn85.pn.pn = phi { ptr, i32 } [ %.pn85.pn, %611 ], [ %603, %602 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %52) #6
  br label %613

613:                                              ; preds = %612, %600
  %.pn85.pn.pn.pn = phi { ptr, i32 } [ %.pn85.pn.pn, %612 ], [ %601, %600 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %53) #6
  br label %614

614:                                              ; preds = %613, %598
  %.pn85.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn85.pn.pn.pn, %613 ], [ %599, %598 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #6
  br label %.loopexit.split-lp

615:                                              ; preds = %325, %322, %321
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %631

617:                                              ; preds = %328, %326
  %618 = landingpad { ptr, i32 }
          cleanup
  br label %630

619:                                              ; preds = %329
  %620 = landingpad { ptr, i32 }
          cleanup
  br label %629

621:                                              ; preds = %330
  %622 = landingpad { ptr, i32 }
          cleanup
  br label %628

623:                                              ; preds = %332
  %624 = landingpad { ptr, i32 }
          cleanup
  br label %627

625:                                              ; preds = %341, %339, %335
  %626 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #6
  br label %627

627:                                              ; preds = %625, %623
  %.pn91 = phi { ptr, i32 } [ %626, %625 ], [ %624, %623 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %628

628:                                              ; preds = %627, %621
  %.pn91.pn = phi { ptr, i32 } [ %.pn91, %627 ], [ %622, %621 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #6
  br label %629

629:                                              ; preds = %628, %619
  %.pn91.pn.pn = phi { ptr, i32 } [ %.pn91.pn, %628 ], [ %620, %619 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %69) #6
  br label %630

630:                                              ; preds = %629, %617
  %.pn91.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn, %629 ], [ %618, %617 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %70) #6
  br label %631

631:                                              ; preds = %630, %615
  %.pn91.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn.pn, %630 ], [ %616, %615 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %69) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #6
  br label %.loopexit.split-lp

632:                                              ; preds = %351, %348, %347
  %633 = landingpad { ptr, i32 }
          cleanup
  br label %648

634:                                              ; preds = %354, %352
  %635 = landingpad { ptr, i32 }
          cleanup
  br label %647

636:                                              ; preds = %355
  %637 = landingpad { ptr, i32 }
          cleanup
  br label %646

638:                                              ; preds = %356
  %639 = landingpad { ptr, i32 }
          cleanup
  br label %645

640:                                              ; preds = %358
  %641 = landingpad { ptr, i32 }
          cleanup
  br label %644

642:                                              ; preds = %367, %365, %361
  %643 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #6
  br label %644

644:                                              ; preds = %642, %640
  %.pn97 = phi { ptr, i32 } [ %643, %642 ], [ %641, %640 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %645

645:                                              ; preds = %644, %638
  %.pn97.pn = phi { ptr, i32 } [ %.pn97, %644 ], [ %639, %638 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #6
  br label %646

646:                                              ; preds = %645, %636
  %.pn97.pn.pn = phi { ptr, i32 } [ %.pn97.pn, %645 ], [ %637, %636 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %86) #6
  br label %647

647:                                              ; preds = %646, %634
  %.pn97.pn.pn.pn = phi { ptr, i32 } [ %.pn97.pn.pn, %646 ], [ %635, %634 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %87) #6
  br label %648

648:                                              ; preds = %647, %632
  %.pn97.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn97.pn.pn.pn, %647 ], [ %633, %632 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %85) #6
  br label %.loopexit.split-lp

649:                                              ; preds = %377, %374, %373
  %650 = landingpad { ptr, i32 }
          cleanup
  br label %665

651:                                              ; preds = %380, %378
  %652 = landingpad { ptr, i32 }
          cleanup
  br label %664

653:                                              ; preds = %381
  %654 = landingpad { ptr, i32 }
          cleanup
  br label %663

655:                                              ; preds = %382
  %656 = landingpad { ptr, i32 }
          cleanup
  br label %662

657:                                              ; preds = %384
  %658 = landingpad { ptr, i32 }
          cleanup
  br label %661

659:                                              ; preds = %393, %391, %387
  %660 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %115) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %114) #6
  br label %661

661:                                              ; preds = %659, %657
  %.pn103 = phi { ptr, i32 } [ %660, %659 ], [ %658, %657 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #6
  br label %662

662:                                              ; preds = %661, %655
  %.pn103.pn = phi { ptr, i32 } [ %.pn103, %661 ], [ %656, %655 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #6
  br label %663

663:                                              ; preds = %662, %653
  %.pn103.pn.pn = phi { ptr, i32 } [ %.pn103.pn, %662 ], [ %654, %653 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %103) #6
  br label %664

664:                                              ; preds = %663, %651
  %.pn103.pn.pn.pn = phi { ptr, i32 } [ %.pn103.pn.pn, %663 ], [ %652, %651 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %104) #6
  br label %665

665:                                              ; preds = %664, %649
  %.pn103.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn103.pn.pn.pn, %664 ], [ %650, %649 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %104) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %103) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %102) #6
  br label %.loopexit.split-lp

666:                                              ; preds = %403, %400, %399
  %667 = landingpad { ptr, i32 }
          cleanup
  br label %682

668:                                              ; preds = %406, %404
  %669 = landingpad { ptr, i32 }
          cleanup
  br label %681

670:                                              ; preds = %407
  %671 = landingpad { ptr, i32 }
          cleanup
  br label %680

672:                                              ; preds = %408
  %673 = landingpad { ptr, i32 }
          cleanup
  br label %679

674:                                              ; preds = %410
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %678

676:                                              ; preds = %419, %417, %413
  %677 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %133) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %132) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %131) #6
  br label %678

678:                                              ; preds = %676, %674
  %.pn109 = phi { ptr, i32 } [ %677, %676 ], [ %675, %674 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  br label %679

679:                                              ; preds = %678, %672
  %.pn109.pn = phi { ptr, i32 } [ %.pn109, %678 ], [ %673, %672 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %128) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #6
  br label %680

680:                                              ; preds = %679, %670
  %.pn109.pn.pn = phi { ptr, i32 } [ %.pn109.pn, %679 ], [ %671, %670 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %120) #6
  br label %681

681:                                              ; preds = %680, %668
  %.pn109.pn.pn.pn = phi { ptr, i32 } [ %.pn109.pn.pn, %680 ], [ %669, %668 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %121) #6
  br label %682

682:                                              ; preds = %681, %666
  %.pn109.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn109.pn.pn.pn, %681 ], [ %667, %666 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %122) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %121) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %120) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %119) #6
  br label %.loopexit.split-lp

683:                                              ; preds = %429, %426, %425
  %684 = landingpad { ptr, i32 }
          cleanup
  br label %699

685:                                              ; preds = %432, %430
  %686 = landingpad { ptr, i32 }
          cleanup
  br label %698

687:                                              ; preds = %433
  %688 = landingpad { ptr, i32 }
          cleanup
  br label %697

689:                                              ; preds = %434
  %690 = landingpad { ptr, i32 }
          cleanup
  br label %696

691:                                              ; preds = %436
  %692 = landingpad { ptr, i32 }
          cleanup
  br label %695

693:                                              ; preds = %445, %443, %439
  %694 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %149) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #6
  br label %695

695:                                              ; preds = %693, %691
  %.pn115 = phi { ptr, i32 } [ %694, %693 ], [ %692, %691 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #6
  br label %696

696:                                              ; preds = %695, %689
  %.pn115.pn = phi { ptr, i32 } [ %.pn115, %695 ], [ %690, %689 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %145) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %136) #6
  br label %697

697:                                              ; preds = %696, %687
  %.pn115.pn.pn = phi { ptr, i32 } [ %.pn115.pn, %696 ], [ %688, %687 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %137) #6
  br label %698

698:                                              ; preds = %697, %685
  %.pn115.pn.pn.pn = phi { ptr, i32 } [ %.pn115.pn.pn, %697 ], [ %686, %685 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %138) #6
  br label %699

699:                                              ; preds = %698, %683
  %.pn115.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn115.pn.pn.pn, %698 ], [ %684, %683 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %139) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %138) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %137) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %136) #6
  br label %.loopexit.split-lp

700:                                              ; preds = %455, %452, %451
  %701 = landingpad { ptr, i32 }
          cleanup
  br label %716

702:                                              ; preds = %458, %456
  %703 = landingpad { ptr, i32 }
          cleanup
  br label %715

704:                                              ; preds = %459
  %705 = landingpad { ptr, i32 }
          cleanup
  br label %714

706:                                              ; preds = %460
  %707 = landingpad { ptr, i32 }
          cleanup
  br label %713

708:                                              ; preds = %462
  %709 = landingpad { ptr, i32 }
          cleanup
  br label %712

710:                                              ; preds = %471, %469, %465
  %711 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %167) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %166) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %165) #6
  br label %712

712:                                              ; preds = %710, %708
  %.pn121 = phi { ptr, i32 } [ %711, %710 ], [ %709, %708 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %163) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #6
  br label %713

713:                                              ; preds = %712, %706
  %.pn121.pn = phi { ptr, i32 } [ %.pn121, %712 ], [ %707, %706 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %162) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %153) #6
  br label %714

714:                                              ; preds = %713, %704
  %.pn121.pn.pn = phi { ptr, i32 } [ %.pn121.pn, %713 ], [ %705, %704 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %154) #6
  br label %715

715:                                              ; preds = %714, %702
  %.pn121.pn.pn.pn = phi { ptr, i32 } [ %.pn121.pn.pn, %714 ], [ %703, %702 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %155) #6
  br label %716

716:                                              ; preds = %715, %700
  %.pn121.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn121.pn.pn.pn, %715 ], [ %701, %700 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %158) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %156) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %155) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %154) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %153) #6
  br label %.loopexit.split-lp

717:                                              ; preds = %481, %478, %477
  %718 = landingpad { ptr, i32 }
          cleanup
  br label %733

719:                                              ; preds = %484, %482
  %720 = landingpad { ptr, i32 }
          cleanup
  br label %732

721:                                              ; preds = %485
  %722 = landingpad { ptr, i32 }
          cleanup
  br label %731

723:                                              ; preds = %486
  %724 = landingpad { ptr, i32 }
          cleanup
  br label %730

725:                                              ; preds = %488
  %726 = landingpad { ptr, i32 }
          cleanup
  br label %729

727:                                              ; preds = %497, %495, %491
  %728 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %184) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %183) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %182) #6
  br label %729

729:                                              ; preds = %727, %725
  %.pn127 = phi { ptr, i32 } [ %728, %727 ], [ %726, %725 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #6
  br label %730

730:                                              ; preds = %729, %723
  %.pn127.pn = phi { ptr, i32 } [ %.pn127, %729 ], [ %724, %723 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %179) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %170) #6
  br label %731

731:                                              ; preds = %730, %721
  %.pn127.pn.pn = phi { ptr, i32 } [ %.pn127.pn, %730 ], [ %722, %721 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %171) #6
  br label %732

732:                                              ; preds = %731, %719
  %.pn127.pn.pn.pn = phi { ptr, i32 } [ %.pn127.pn.pn, %731 ], [ %720, %719 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %172) #6
  br label %733

733:                                              ; preds = %732, %717
  %.pn127.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn127.pn.pn.pn, %732 ], [ %718, %717 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %176) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %174) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %173) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %172) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %171) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %170) #6
  br label %.loopexit.split-lp

734:                                              ; preds = %507, %504, %503
  %735 = landingpad { ptr, i32 }
          cleanup
  br label %750

736:                                              ; preds = %510, %508
  %737 = landingpad { ptr, i32 }
          cleanup
  br label %749

738:                                              ; preds = %511
  %739 = landingpad { ptr, i32 }
          cleanup
  br label %748

740:                                              ; preds = %512
  %741 = landingpad { ptr, i32 }
          cleanup
  br label %747

742:                                              ; preds = %514
  %743 = landingpad { ptr, i32 }
          cleanup
  br label %746

744:                                              ; preds = %523, %521, %517
  %745 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %200) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %199) #6
  br label %746

746:                                              ; preds = %744, %742
  %.pn133 = phi { ptr, i32 } [ %745, %744 ], [ %743, %742 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %197) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #6
  br label %747

747:                                              ; preds = %746, %740
  %.pn133.pn = phi { ptr, i32 } [ %.pn133, %746 ], [ %741, %740 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %196) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %187) #6
  br label %748

748:                                              ; preds = %747, %738
  %.pn133.pn.pn = phi { ptr, i32 } [ %.pn133.pn, %747 ], [ %739, %738 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %188) #6
  br label %749

749:                                              ; preds = %748, %736
  %.pn133.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn, %748 ], [ %737, %736 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %194) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %189) #6
  br label %750

750:                                              ; preds = %749, %734
  %.pn133.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn.pn, %749 ], [ %735, %734 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %193) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %192) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %191) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %190) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %189) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %188) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %187) #6
  br label %.loopexit.split-lp

751:                                              ; preds = %533, %530, %529
  %752 = landingpad { ptr, i32 }
          cleanup
  br label %767

753:                                              ; preds = %536, %534
  %754 = landingpad { ptr, i32 }
          cleanup
  br label %766

755:                                              ; preds = %537
  %756 = landingpad { ptr, i32 }
          cleanup
  br label %765

757:                                              ; preds = %538
  %758 = landingpad { ptr, i32 }
          cleanup
  br label %764

759:                                              ; preds = %540
  %760 = landingpad { ptr, i32 }
          cleanup
  br label %763

761:                                              ; preds = %549, %547, %543
  %762 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %218) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %217) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %216) #6
  br label %763

763:                                              ; preds = %761, %759
  %.pn139 = phi { ptr, i32 } [ %762, %761 ], [ %760, %759 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %214) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #6
  br label %764

764:                                              ; preds = %763, %757
  %.pn139.pn = phi { ptr, i32 } [ %.pn139, %763 ], [ %758, %757 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %213) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %204) #6
  br label %765

765:                                              ; preds = %764, %755
  %.pn139.pn.pn = phi { ptr, i32 } [ %.pn139.pn, %764 ], [ %756, %755 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %205) #6
  br label %766

766:                                              ; preds = %765, %753
  %.pn139.pn.pn.pn = phi { ptr, i32 } [ %.pn139.pn.pn, %765 ], [ %754, %753 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %211) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %206) #6
  br label %767

767:                                              ; preds = %766, %751
  %.pn139.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn139.pn.pn.pn, %766 ], [ %752, %751 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %210) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %208) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %207) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %206) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %205) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %204) #6
  br label %.loopexit.split-lp

768:                                              ; preds = %559, %556, %555
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %784

770:                                              ; preds = %562, %560
  %771 = landingpad { ptr, i32 }
          cleanup
  br label %783

772:                                              ; preds = %563
  %773 = landingpad { ptr, i32 }
          cleanup
  br label %782

774:                                              ; preds = %564
  %775 = landingpad { ptr, i32 }
          cleanup
  br label %781

776:                                              ; preds = %566
  %777 = landingpad { ptr, i32 }
          cleanup
  br label %780

778:                                              ; preds = %575, %573, %569
  %779 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %235) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %234) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %233) #6
  br label %780

780:                                              ; preds = %778, %776
  %.pn145 = phi { ptr, i32 } [ %779, %778 ], [ %777, %776 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %231) #6
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #6
  br label %781

781:                                              ; preds = %780, %774
  %.pn145.pn = phi { ptr, i32 } [ %.pn145, %780 ], [ %775, %774 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %230) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #6
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %221) #6
  br label %782

782:                                              ; preds = %781, %772
  %.pn145.pn.pn = phi { ptr, i32 } [ %.pn145.pn, %781 ], [ %773, %772 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %222) #6
  br label %783

783:                                              ; preds = %782, %770
  %.pn145.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn, %782 ], [ %771, %770 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #6
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %223) #6
  br label %784

784:                                              ; preds = %783, %768
  %.pn145.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn.pn, %783 ], [ %769, %768 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %227) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %226) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %224) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %223) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %222) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %221) #6
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit, %597, %614, %631, %648, %665, %682, %699, %716, %733, %750, %767, %784, %265
  %.pn152 = phi { ptr, i32 } [ %266, %265 ], [ %.pn145.pn.pn.pn.pn, %784 ], [ %.pn139.pn.pn.pn.pn, %767 ], [ %.pn133.pn.pn.pn.pn, %750 ], [ %.pn127.pn.pn.pn.pn, %733 ], [ %.pn121.pn.pn.pn.pn, %716 ], [ %.pn115.pn.pn.pn.pn, %699 ], [ %.pn109.pn.pn.pn.pn, %682 ], [ %.pn103.pn.pn.pn.pn, %665 ], [ %.pn97.pn.pn.pn.pn, %648 ], [ %.pn91.pn.pn.pn.pn, %631 ], [ %.pn85.pn.pn.pn.pn, %614 ], [ %.pn79.pn.pn.pn.pn, %597 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit158, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit162, %.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit165, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit169, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit172, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit176, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit179, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit183, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit186, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit190, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %18) #6
  br label %785

785:                                              ; preds = %.loopexit.split-lp, %249
  %.pn152.pn = phi { ptr, i32 } [ %.pn152, %.loopexit.split-lp ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %18) #6
  call void @_ZN7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %786

786:                                              ; preds = %785, %247
  %.pn152.pn.pn = phi { ptr, i32 } [ %.pn152.pn, %785 ], [ %248, %247 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  br label %787

787:                                              ; preds = %786, %246
  %.pn152.pn.pn.pn = phi { ptr, i32 } [ %.pn152.pn.pn, %786 ], [ %.pn, %246 ]
  resume { ptr, i32 } %.pn152.pn.pn.pn
}

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(352)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK7mjolnir23PullingForceInteractionINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE10calc_forceERNS_6SystemIS3_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(352)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind noalias writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8, ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind noalias writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost10test_tools9assertion4seedpmIdEENS1_10value_exprIT_EEOS5_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::value_expr") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIdEEdEeqIRdEENS1_11binary_exprIS4_T_NS1_2op2EQIdNS5_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIdEERdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion_result") align 8, ptr noundef nonnull align 8 dereferenceable(33)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost9unit_testlsINS0_13basic_cstringIKcEEEENS0_17lazy_ostream_implINS0_12lazy_ostreamET_RKS7_EERKS6_S9_(ptr dead_on_unwind noalias writable sret(%"class.boost::unit_test::lazy_ostream_impl.349") align 8, ptr noundef nonnull align 8 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv() local_unnamed_addr #4

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{i64 0, i64 24, !12}
!12 = !{!7, !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !16, i64 0}
!16 = !{!"any pointer", !7, i64 0}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass