; LLVM IR from Mjolnir-MD/Mjolnir :: test/core/test_system_motion_remover.ll (ZN24SystemMotionRemover_both11test_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::System" = type { i8, i8, %"class.std::map.314", %"class.std::map.319", %"class.mjolnir::math::Matrix", i64, %"class.std::vector.324", %"class.std::vector.324", %"class.std::vector.329", %"class.std::vector.329", %"class.std::vector.329", %"class.std::vector", %"class.std::vector" }
%"class.std::map.314" = type { %"class.std::_Rb_tree.315" }
%"class.std::_Rb_tree.315" = 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.319" = type { %"class.std::_Rb_tree.320" }
%"class.std::_Rb_tree.320" = 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" = type { %"struct.std::array" }
%"struct.std::array" = type { [9 x double] }
%"class.std::vector.324" = type { %"struct.std::_Vector_base.325" }
%"struct.std::_Vector_base.325" = 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.329" = type { %"struct.std::_Vector_base.330" }
%"struct.std::_Vector_base.330" = 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.std::mersenne_twister_engine" = type { [624 x i64], i64 }
%"class.std::uniform_real_distribution" = type { %"struct.std::uniform_real_distribution<>::param_type" }
%"struct.std::uniform_real_distribution<>::param_type" = type { double, double }
%"class.mjolnir::math::Matrix.334" = type { %"struct.std::array.335" }
%"struct.std::array.335" = type { [3 x double] }
%"class.mjolnir::SystemMotionRemover" = type { i8, i8, 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 }
%"class.boost::test_tools::assertion::binary_expr" = type { %"class.boost::test_tools::assertion::value_expr", double }
%"class.boost::test_tools::assertion::value_expr" = type { ptr }
%"class.boost::test_tools::assertion::seed" = type { i8 }
%"class.boost::unit_test::lazy_ostream_impl.337" = 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_evaluate_t" = type <{ ptr, %"class.std::__cxx11::list.338", i8, [7 x i8] }>
%"class.std::__cxx11::list.338" = type { %"class.std::__cxx11::_List_base.339" }
%"class.std::__cxx11::_List_base.339" = 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 }
%"struct.boost::test_tools::tt_detail::tolerance_manip" = type { double }
%"struct.boost::test_tools::tt_detail::assertion_type" = type { i32 }
%"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343" = type <{ ptr, %"class.std::__cxx11::list.338", i8, [7 x i8] }>
%"class.boost::test_tools::assertion::binary_expr.345" = type { %"class.boost::test_tools::assertion::value_expr", ptr }
%"class.boost::test_tools::assertion::binary_expr.347" = type { %"class.boost::test_tools::assertion::value_expr", ptr }

@_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE = external hidden global ptr, align 8
@.str.401 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [32 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 @_ZN24SystemMotionRemover_both11test_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 double, align 8
  %8 = alloca i64, align 8
  %9 = alloca %"class.mjolnir::System", align 8
  %10 = alloca %"struct.mjolnir::UnlimitedBoundary", align 1
  %11 = alloca %"class.std::mersenne_twister_engine", align 8
  %12 = alloca %"class.std::uniform_real_distribution", align 8
  %13 = alloca i64, align 8
  %14 = alloca i32, align 4
  %15 = alloca double, align 8
  %16 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %17 = alloca i64, align 8
  %18 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %19 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %20 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %21 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %22 = alloca %"class.mjolnir::System", align 8
  %23 = alloca %"class.mjolnir::SystemMotionRemover", align 1
  %24 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %25 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %26 = alloca double, align 8
  %27 = alloca i64, align 8
  %28 = alloca double, align 8
  %29 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %32 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %33 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %34 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %35 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %36 = alloca %"class.boost::test_tools::assertion_result", 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 %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %42 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %43 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %44 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %45 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %46 = alloca %"class.boost::test_tools::assertion_result", align 8
  %47 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %48 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %49 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %50 = alloca double, align 8
  %51 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %52 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %53 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %54 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %55 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %56 = alloca %"class.boost::test_tools::assertion_result", align 8
  %57 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %58 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %59 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %60 = alloca double, align 8
  %61 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %62 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %63 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %64 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %65 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %66 = alloca %"class.boost::test_tools::assertion_result", align 8
  %67 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %68 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %69 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %70 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %71 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %72 = alloca double, align 8
  %73 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %74 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %75 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %76 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %77 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %78 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %79 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %80 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %81 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %82 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %83 = alloca %"class.boost::test_tools::assertion_result", align 8
  %84 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %85 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %86 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %87 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %88 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %89 = alloca double, align 8
  %90 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %91 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %92 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %93 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %94 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %95 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %96 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %97 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %98 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %99 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %100 = alloca %"class.boost::test_tools::assertion_result", align 8
  %101 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %102 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %103 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %104 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %105 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %106 = alloca double, align 8
  %107 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %108 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %109 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %110 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %111 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %112 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %113 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %114 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %115 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %116 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %117 = alloca %"class.boost::test_tools::assertion_result", align 8
  %118 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %119 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %120 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %121 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %122 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %123 = alloca double, align 8
  %124 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %125 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %126 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %127 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %128 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %129 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %130 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %131 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %132 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %133 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %134 = alloca %"class.boost::test_tools::assertion_result", align 8
  %135 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %136 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %137 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %138 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %139 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %140 = alloca double, align 8
  %141 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %142 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %143 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %144 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %145 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %146 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %147 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %148 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %149 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %150 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %151 = alloca %"class.boost::test_tools::assertion_result", align 8
  %152 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %153 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %154 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %155 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %156 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %157 = alloca double, align 8
  %158 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %159 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %160 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %161 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %162 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %163 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %164 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %165 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %166 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %167 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %168 = alloca %"class.boost::test_tools::assertion_result", align 8
  %169 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343", align 8
  %170 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343", align 8
  %171 = alloca %"class.boost::test_tools::assertion::binary_expr.345", align 8
  %172 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %173 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %174 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %175 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %176 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %177 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %178 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %179 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %180 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %181 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %182 = alloca i64, align 8
  %183 = alloca double, align 8
  %184 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %185 = alloca i64, align 8
  %186 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %187 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %188 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %189 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %190 = alloca %"class.mjolnir::System", align 8
  %191 = alloca %"class.mjolnir::SystemMotionRemover", align 1
  %192 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %193 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %194 = alloca double, align 8
  %195 = alloca i64, align 8
  %196 = alloca double, align 8
  %197 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %198 = alloca ptr, align 8
  %199 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %200 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %201 = alloca %"class.mjolnir::math::Matrix.334", 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 %"class.boost::test_tools::assertion::binary_expr", align 8
  %206 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %207 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %208 = alloca double, align 8
  %209 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %210 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %211 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %212 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %213 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %214 = alloca %"class.boost::test_tools::assertion_result", align 8
  %215 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %216 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %217 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %218 = alloca double, align 8
  %219 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %220 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %221 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %222 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %223 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %224 = alloca %"class.boost::test_tools::assertion_result", align 8
  %225 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %226 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %227 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %228 = alloca double, align 8
  %229 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %230 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %231 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %232 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %233 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %234 = alloca %"class.boost::test_tools::assertion_result", align 8
  %235 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %236 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %237 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %238 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %239 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %240 = alloca double, align 8
  %241 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %242 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %243 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %244 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %245 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %246 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %247 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %248 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %249 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %250 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %251 = alloca %"class.boost::test_tools::assertion_result", align 8
  %252 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %253 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %254 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %255 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %256 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %257 = alloca double, align 8
  %258 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %259 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %260 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %261 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %262 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %263 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %264 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %265 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %266 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %267 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %268 = alloca %"class.boost::test_tools::assertion_result", align 8
  %269 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %270 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %271 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %272 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %273 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %274 = alloca double, align 8
  %275 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %276 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %277 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %278 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %279 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %280 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %281 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %282 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %283 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %284 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %285 = alloca %"class.boost::test_tools::assertion_result", align 8
  %286 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %287 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %288 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %289 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %290 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %291 = alloca double, align 8
  %292 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %293 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %294 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %295 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %296 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %297 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %298 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %299 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %300 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %301 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %302 = alloca %"class.boost::test_tools::assertion_result", align 8
  %303 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %304 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %305 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %306 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %307 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %308 = alloca double, align 8
  %309 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %310 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %311 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %312 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %313 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %314 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %315 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %316 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %317 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %318 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %319 = alloca %"class.boost::test_tools::assertion_result", align 8
  %320 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %321 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %322 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %323 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %324 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %325 = alloca double, align 8
  %326 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %327 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %328 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %329 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %330 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %331 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %332 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %333 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %334 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %335 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %336 = alloca %"class.boost::test_tools::assertion_result", align 8
  %337 = alloca %"class.boost::test_tools::assertion::binary_expr.347", align 8
  %338 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %339 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %340 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %341 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %342 = alloca %"class.boost::unit_test::basic_cstring", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %343 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  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 %344 unwind label %352

344:                                              ; preds = %1
  invoke void @_ZN7mjolnir20basic_logger_managerIcSt11char_traitsIcEE18set_default_loggerERKNSt7__cxx1112basic_stringIcS2_SaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %345 unwind label %356

345:                                              ; preds = %344
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  store double 1.000000e-08, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  store i64 100, ptr %8, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 352, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2EmRKNS2_IdNS_4math6MatrixIdLm3ELm1EEEEE(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef 100, ptr noundef nonnull align 1 dereferenceable(1) %10)
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 5000, ptr %11) #7
  invoke void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Em(ptr noundef nonnull align 8 dereferenceable(5000) %11, i64 noundef 123456789)
          to label %346 unwind label %361

346:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #7
  invoke void @_ZNSt25uniform_real_distributionIdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef 0.000000e+00, double noundef 1.000000e+00)
          to label %347 unwind label %365

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %348

348:                                              ; preds = %935, %347
  %349 = load i64, ptr %13, align 8, !tbaa !11
  %350 = icmp ult i64 %349, 100
  br i1 %350, label %369, label %351

351:                                              ; preds = %348
  store i32 2, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  br label %1284

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

356:                                              ; preds = %344
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %5, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %360

360:                                              ; preds = %356, %352
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #7
  br label %2159

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

365:                                              ; preds = %346
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %5, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %6, align 4
  br label %2157

369:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  store double 0.000000e+00, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %16, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  store i64 0, ptr %17, align 8, !tbaa !11
  br label %370

370:                                              ; preds = %425, %369
  %371 = load i64, ptr %17, align 8, !tbaa !11
  %372 = icmp ult i64 %371, 100
  br i1 %372, label %374, label %373

373:                                              ; preds = %370
  store i32 5, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %441

374:                                              ; preds = %370
  %375 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %376 unwind label %428

376:                                              ; preds = %374
  %377 = fadd double 1.000000e+00, %375
  %378 = load i64, ptr %17, align 8, !tbaa !11
  %379 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %378) #7
  store double %377, ptr %379, align 8, !tbaa !9
  %380 = load i64, ptr %17, align 8, !tbaa !11
  %381 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %380) #7
  %382 = load double, ptr %381, align 8, !tbaa !9
  %383 = fdiv double 1.000000e+00, %382
  %384 = load i64, ptr %17, align 8, !tbaa !11
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %384) #7
  store double %383, ptr %385, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #7
  %386 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %387 unwind label %432

387:                                              ; preds = %376
  %388 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %389 unwind label %432

389:                                              ; preds = %387
  %390 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %391 unwind label %432

391:                                              ; preds = %389
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %18, double noundef %386, double noundef %388, double noundef %390) #7
  %392 = load i64, ptr %17, align 8, !tbaa !11
  %393 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %392) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %393, ptr align 8 %18, i64 24, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #7
  %394 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %395 unwind label %436

395:                                              ; preds = %391
  %396 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %397 unwind label %436

397:                                              ; preds = %395
  %398 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %399 unwind label %436

399:                                              ; preds = %397
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %19, double noundef %394, double noundef %396, double noundef %398) #7
  %400 = load i64, ptr %17, align 8, !tbaa !11
  %401 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %400) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %401, ptr align 8 %19, i64 24, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %20, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  %402 = load i64, ptr %17, align 8, !tbaa !11
  %403 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %402) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %403, ptr align 8 %20, i64 24, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #7
  %404 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef 0) #7
  %405 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef @.str.403)
          to label %406 unwind label %428

406:                                              ; preds = %399
  %407 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef 0) #7
  %408 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %407, ptr noundef @.str.403)
          to label %409 unwind label %428

409:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #7
  %410 = load i64, ptr %17, align 8, !tbaa !11
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %410) #7
  %412 = load double, ptr %411, align 8, !tbaa !9
  %413 = load i64, ptr %17, align 8, !tbaa !11
  %414 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %413) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %21, double noundef %412, ptr noundef nonnull align 8 dereferenceable(24) %414) #7
  %415 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  %416 = load i64, ptr %17, align 8, !tbaa !11
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %416) #7
  %418 = load double, ptr %417, align 8, !tbaa !9
  %419 = fmul double 5.000000e-01, %418
  %420 = load i64, ptr %17, align 8, !tbaa !11
  %421 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %420) #7
  %422 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %421) #7
  %423 = load double, ptr %15, align 8, !tbaa !9
  %424 = call double @llvm.fmuladd.f64(double %419, double %422, double %423)
  store double %424, ptr %15, align 8, !tbaa !9
  br label %425

425:                                              ; preds = %409
  %426 = load i64, ptr %17, align 8, !tbaa !11
  %427 = add i64 %426, 1
  store i64 %427, ptr %17, align 8, !tbaa !11
  br label %370, !llvm.loop !15

428:                                              ; preds = %406, %399, %374
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %5, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %6, align 4
  br label %440

432:                                              ; preds = %389, %387, %376
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %5, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  br label %440

436:                                              ; preds = %397, %395, %391
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %5, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #7
  br label %440

440:                                              ; preds = %436, %432, %428
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %1283

441:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 352, ptr %22) #7
  invoke void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(352) %22, ptr noundef nonnull align 8 dereferenceable(352) %9)
          to label %442 unwind label %448

442:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 3, ptr %23) #7
  invoke void @_ZN7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2Ebbb(ptr noundef nonnull align 1 dereferenceable(3) %23, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %443 unwind label %452

443:                                              ; preds = %442
  call void @_ZNK7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE6removeERNS_6SystemIS3_EE(ptr noundef nonnull align 1 dereferenceable(3) %23, ptr noundef nonnull align 8 dereferenceable(352) %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %24, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %25, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  store i64 0, ptr %27, align 8, !tbaa !11
  br label %444

444:                                              ; preds = %554, %443
  %445 = load i64, ptr %27, align 8, !tbaa !11
  %446 = icmp ult i64 %445, 100
  br i1 %446, label %456, label %447

447:                                              ; preds = %444
  store i32 8, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %634

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

452:                                              ; preds = %442
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %5, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %6, align 4
  br label %1281

456:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %457 = load i64, ptr %27, align 8, !tbaa !11
  %458 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %457) #7
  %459 = load double, ptr %458, align 8, !tbaa !9
  store double %459, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #7
  %460 = load i64, ptr %27, align 8, !tbaa !11
  %461 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %460) #7
  call void @_ZN7mjolnir4mathmiIdLm3ELm1EEENS0_6MatrixIT_XT0_EXT1_EEERKS4_S6_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %29, ptr noundef nonnull align 8 dereferenceable(24) %461, ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %462 = load i64, ptr %27, align 8, !tbaa !11
  %463 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %462) #7
  store ptr %463, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #7
  %464 = load double, ptr %28, align 8, !tbaa !9
  %465 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %31, double noundef %464, ptr noundef nonnull align 8 dereferenceable(24) %465) #7
  %466 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #7
  %467 = load double, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #7
  %468 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN7mjolnir4math13cross_productIdEENS0_6MatrixIT_Lm3ELm1EEERKS4_S6_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %33, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(24) %468) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %32, double noundef %467, ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  %469 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #7
  %470 = load i64, ptr %27, align 8, !tbaa !11
  %471 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %470) #7
  %472 = load double, ptr %471, align 8, !tbaa !9
  %473 = fmul double 5.000000e-01, %472
  %474 = load i64, ptr %27, align 8, !tbaa !11
  %475 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %474) #7
  %476 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %475) #7
  %477 = load double, ptr %26, align 8, !tbaa !9
  %478 = call double @llvm.fmuladd.f64(double %473, double %476, double %477)
  store double %478, ptr %26, align 8, !tbaa !9
  br label %479

479:                                              ; preds = %502, %456
  %480 = 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) %34, ptr noundef @.str.401, i64 noundef 92)
          to label %481 unwind label %557

481:                                              ; preds = %479
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %482 unwind label %557

482:                                              ; preds = %481
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %480, ptr noundef %34, i64 noundef 69, ptr noundef %35)
          to label %483 unwind label %557

483:                                              ; preds = %482
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  %484 = load i64, ptr %27, align 8, !tbaa !11
  %485 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %484) #7
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %485) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind 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) %486)
          to label %487 unwind label %561

487:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %488 = load i64, ptr %27, align 8, !tbaa !11
  %489 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %488) #7
  %490 = call noundef double @_ZN7mjolnir4math1XIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %489) #7
  store double %490, ptr %40, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind 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) %40)
          to label %491 unwind label %565

491:                                              ; preds = %487
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %36, ptr noundef nonnull align 8 dereferenceable(16) %37, i1 noundef zeroext false)
          to label %492 unwind label %565

492:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  %493 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %494 unwind label %569

494:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef @.str.404, i64 noundef 74)
          to label %495 unwind label %573

495:                                              ; preds = %494
  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.337") align 8 %41, ptr noundef nonnull align 8 dereferenceable(9) %493, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %496 unwind label %573

496:                                              ; preds = %495
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef @.str.401, i64 noundef 92)
          to label %497 unwind label %577

497:                                              ; preds = %496
  %498 = 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) %36, ptr noundef nonnull align 8 dereferenceable(9) %41, ptr noundef %43, i64 noundef 69, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %499 unwind label %577

499:                                              ; preds = %497
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #7
  br label %500

500:                                              ; preds = %499
  %501 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %502 unwind label %557

502:                                              ; preds = %500
  br i1 %501, label %479, label %503, !llvm.loop !17

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %527, %503
  %505 = 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) %44, ptr noundef @.str.401, i64 noundef 92)
          to label %506 unwind label %557

506:                                              ; preds = %504
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %507 unwind label %557

507:                                              ; preds = %506
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef %44, i64 noundef 70, ptr noundef %45)
          to label %508 unwind label %557

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #7
  %509 = load i64, ptr %27, align 8, !tbaa !11
  %510 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %509) #7
  %511 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %510) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %48, ptr noundef nonnull align 1 dereferenceable(1) %49, ptr noundef nonnull align 8 dereferenceable(8) %511)
          to label %512 unwind label %585

512:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %513 = load i64, ptr %27, align 8, !tbaa !11
  %514 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %513) #7
  %515 = call noundef double @_ZN7mjolnir4math1YIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %514) #7
  store double %515, ptr %50, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %47, ptr noundef nonnull align 1 dereferenceable(1) %48, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %516 unwind label %589

516:                                              ; preds = %512
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %46, ptr noundef nonnull align 8 dereferenceable(16) %47, i1 noundef zeroext false)
          to label %517 unwind label %589

517:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #7
  %518 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %519 unwind label %593

519:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef @.str.405, i64 noundef 74)
          to label %520 unwind label %597

520:                                              ; preds = %519
  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.337") align 8 %51, ptr noundef nonnull align 8 dereferenceable(9) %518, ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %521 unwind label %597

521:                                              ; preds = %520
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef @.str.401, i64 noundef 92)
          to label %522 unwind label %601

522:                                              ; preds = %521
  %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) %46, ptr noundef nonnull align 8 dereferenceable(9) %51, ptr noundef %53, i64 noundef 70, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %524 unwind label %601

524:                                              ; preds = %522
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  br label %525

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

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

528:                                              ; preds = %527
  br label %529

529:                                              ; preds = %552, %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) %54, ptr noundef @.str.401, i64 noundef 92)
          to label %531 unwind label %557

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

532:                                              ; preds = %531
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %530, ptr noundef %54, i64 noundef 71, ptr noundef %55)
          to label %533 unwind label %557

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 24, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  %534 = load i64, ptr %27, align 8, !tbaa !11
  %535 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %534) #7
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %535) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %58, ptr noundef nonnull align 1 dereferenceable(1) %59, ptr noundef nonnull align 8 dereferenceable(8) %536)
          to label %537 unwind label %609

537:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  %538 = load i64, ptr %27, align 8, !tbaa !11
  %539 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %22, i64 noundef %538) #7
  %540 = call noundef double @_ZN7mjolnir4math1ZIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %539) #7
  store double %540, ptr %60, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %57, ptr noundef nonnull align 1 dereferenceable(1) %58, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %541 unwind label %613

541:                                              ; preds = %537
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %56, ptr noundef nonnull align 8 dereferenceable(16) %57, i1 noundef zeroext false)
          to label %542 unwind label %613

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

544:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef @.str.406, i64 noundef 74)
          to label %545 unwind label %621

545:                                              ; preds = %544
  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.337") align 8 %61, ptr noundef nonnull align 8 dereferenceable(9) %543, ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %546 unwind label %621

546:                                              ; preds = %545
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef @.str.401, i64 noundef 92)
          to label %547 unwind label %625

547:                                              ; preds = %546
  %548 = 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) %56, ptr noundef nonnull align 8 dereferenceable(9) %61, ptr noundef %63, i64 noundef 71, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %549 unwind label %625

549:                                              ; preds = %547
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #7
  br label %550

550:                                              ; preds = %549
  %551 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %552 unwind label %557

552:                                              ; preds = %550
  br i1 %551, label %529, label %553, !llvm.loop !19

553:                                              ; preds = %552
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %554

554:                                              ; preds = %553
  %555 = load i64, ptr %27, align 8, !tbaa !11
  %556 = add i64 %555, 1
  store i64 %556, ptr %27, align 8, !tbaa !11
  br label %444, !llvm.loop !20

557:                                              ; preds = %550, %532, %531, %529, %525, %507, %506, %504, %500, %482, %481, %479
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %5, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %6, align 4
  br label %633

561:                                              ; preds = %483
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %5, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %6, align 4
  br label %584

565:                                              ; preds = %491, %487
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %5, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %6, align 4
  br label %583

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

573:                                              ; preds = %495, %494
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %5, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %6, align 4
  br label %581

577:                                              ; preds = %497, %496
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %5, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %6, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %581

581:                                              ; preds = %577, %573
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #7
  br label %582

582:                                              ; preds = %581, %569
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #7
  br label %583

583:                                              ; preds = %582, %565
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %584

584:                                              ; preds = %583, %561
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #7
  br label %633

585:                                              ; preds = %508
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %5, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %6, align 4
  br label %608

589:                                              ; preds = %516, %512
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %5, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %6, align 4
  br label %607

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

597:                                              ; preds = %520, %519
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %5, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %6, align 4
  br label %605

601:                                              ; preds = %522, %521
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %5, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %6, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %605

605:                                              ; preds = %601, %597
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  br label %606

606:                                              ; preds = %605, %593
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #7
  br label %607

607:                                              ; preds = %606, %589
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  br label %608

608:                                              ; preds = %607, %585
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  br label %633

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

613:                                              ; preds = %541, %537
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %5, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %6, align 4
  br label %631

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

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

625:                                              ; preds = %547, %546
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %5, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %6, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %629

629:                                              ; preds = %625, %621
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  br label %630

630:                                              ; preds = %629, %617
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #7
  br label %631

631:                                              ; preds = %630, %613
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %632

632:                                              ; preds = %631, %609
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #7
  br label %633

633:                                              ; preds = %632, %608, %584, %557
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %1280

634:                                              ; preds = %447
  br label %635

635:                                              ; preds = %676, %634
  %636 = 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) %64, ptr noundef @.str.401, i64 noundef 92)
          to label %637 unwind label %938

637:                                              ; preds = %635
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %638 unwind label %938

638:                                              ; preds = %637
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %636, ptr noundef %64, i64 noundef 74, ptr noundef %65)
          to label %639 unwind label %938

639:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 24, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #7
  %640 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %70, ptr noundef nonnull align 1 dereferenceable(1) %71, ptr noundef nonnull align 8 dereferenceable(8) %640)
          to label %641 unwind label %942

641:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  store double 0.000000e+00, ptr %72, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %69, ptr noundef nonnull align 1 dereferenceable(1) %70, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %642 unwind label %946

642:                                              ; preds = %641
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %68, ptr noundef nonnull align 8 dereferenceable(16) %69)
          to label %643 unwind label %946

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %644 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %645 unwind label %950

645:                                              ; preds = %643
  %646 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %73, i32 0, i32 0
  store double %644, ptr %646, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %67, ptr noundef nonnull align 8 dereferenceable(33) %68, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %647 unwind label %950

647:                                              ; preds = %645
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %66, ptr noundef nonnull align 8 dereferenceable(33) %67)
          to label %648 unwind label %954

648:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #7
  %649 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %650 unwind label %958

650:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 16, ptr %75) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef @.str.407, i64 noundef 36)
          to label %651 unwind label %962

651:                                              ; preds = %650
  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.337") align 8 %74, ptr noundef nonnull align 8 dereferenceable(9) %649, ptr noundef nonnull align 8 dereferenceable(16) %75)
          to label %652 unwind label %962

652:                                              ; preds = %651
  %653 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %654 unwind label %966

654:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #7
  %655 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %656 unwind label %970

656:                                              ; preds = %654
  %657 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %76, i32 0, i32 0
  store double %655, ptr %657, align 8
  %658 = 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) %653, ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %659 unwind label %970

659:                                              ; preds = %656
  %660 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %74, ptr noundef nonnull align 8 dereferenceable(9) %658)
          to label %661 unwind label %970

661:                                              ; preds = %659
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef @.str.401, i64 noundef 92)
          to label %662 unwind label %970

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %79, i32 noundef 1)
          to label %663 unwind label %974

663:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #7
  %664 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %665 unwind label %978

665:                                              ; preds = %663
  %666 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %80, i32 0, i32 0
  store double %664, ptr %666, align 8
  %667 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %79, ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %668 unwind label %978

668:                                              ; preds = %665
  %669 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %78, i32 0, i32 0
  store i32 %667, ptr %669, align 4
  %670 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %78)
          to label %671 unwind label %978

671:                                              ; preds = %668
  %672 = 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) %66, ptr noundef nonnull align 8 dereferenceable(9) %660, ptr noundef %77, i64 noundef 74, i32 noundef 1, i32 noundef %670, i64 noundef 0)
          to label %673 unwind label %978

673:                                              ; preds = %671
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #7
  br label %674

674:                                              ; preds = %673
  %675 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %676 unwind label %938

676:                                              ; preds = %674
  br i1 %675, label %635, label %677, !llvm.loop !21

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %719, %677
  %679 = 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) %81, ptr noundef @.str.401, i64 noundef 92)
          to label %680 unwind label %938

680:                                              ; preds = %678
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82)
          to label %681 unwind label %938

681:                                              ; preds = %680
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %679, ptr noundef %81, i64 noundef 75, ptr noundef %82)
          to label %682 unwind label %938

682:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 24, ptr %83) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %85) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #7
  %683 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %87, ptr noundef nonnull align 1 dereferenceable(1) %88, ptr noundef nonnull align 8 dereferenceable(8) %683)
          to label %684 unwind label %991

684:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  store double 0.000000e+00, ptr %89, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %86, ptr noundef nonnull align 1 dereferenceable(1) %87, ptr noundef nonnull align 8 dereferenceable(8) %89)
          to label %685 unwind label %995

685:                                              ; preds = %684
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %85, ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %686 unwind label %995

686:                                              ; preds = %685
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %687 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %688 unwind label %999

688:                                              ; preds = %686
  %689 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %90, i32 0, i32 0
  store double %687, ptr %689, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %84, ptr noundef nonnull align 8 dereferenceable(33) %85, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %690 unwind label %999

690:                                              ; preds = %688
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %83, ptr noundef nonnull align 8 dereferenceable(33) %84)
          to label %691 unwind label %1003

691:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #7
  %692 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %693 unwind label %1007

693:                                              ; preds = %691
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef @.str.408, i64 noundef 36)
          to label %694 unwind label %1011

694:                                              ; preds = %693
  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.337") align 8 %91, ptr noundef nonnull align 8 dereferenceable(9) %692, ptr noundef nonnull align 8 dereferenceable(16) %92)
          to label %695 unwind label %1011

695:                                              ; preds = %694
  %696 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %697 unwind label %1015

697:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  %698 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %699 unwind label %1019

699:                                              ; preds = %697
  %700 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %93, i32 0, i32 0
  store double %698, ptr %700, align 8
  %701 = 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) %696, ptr noundef nonnull align 8 dereferenceable(8) %93)
          to label %702 unwind label %1019

702:                                              ; preds = %699
  %703 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %91, ptr noundef nonnull align 8 dereferenceable(9) %701)
          to label %704 unwind label %1019

704:                                              ; preds = %702
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef @.str.401, i64 noundef 92)
          to label %705 unwind label %1019

705:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %96, i32 noundef 1)
          to label %706 unwind label %1023

706:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #7
  %707 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %708 unwind label %1027

708:                                              ; preds = %706
  %709 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %97, i32 0, i32 0
  store double %707, ptr %709, align 8
  %710 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %96, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %711 unwind label %1027

711:                                              ; preds = %708
  %712 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %95, i32 0, i32 0
  store i32 %710, ptr %712, align 4
  %713 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %714 unwind label %1027

714:                                              ; preds = %711
  %715 = 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) %83, ptr noundef nonnull align 8 dereferenceable(9) %703, ptr noundef %94, i64 noundef 75, i32 noundef 1, i32 noundef %713, i64 noundef 0)
          to label %716 unwind label %1027

716:                                              ; preds = %714
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %84) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #7
  br label %717

717:                                              ; preds = %716
  %718 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %719 unwind label %938

719:                                              ; preds = %717
  br i1 %718, label %678, label %720, !llvm.loop !22

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %762, %720
  %722 = 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) %98, ptr noundef @.str.401, i64 noundef 92)
          to label %723 unwind label %938

723:                                              ; preds = %721
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99)
          to label %724 unwind label %938

724:                                              ; preds = %723
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %722, ptr noundef %98, i64 noundef 76, ptr noundef %99)
          to label %725 unwind label %938

725:                                              ; preds = %724
  call void @llvm.lifetime.start.p0(i64 24, ptr %100) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %101) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #7
  %726 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %104, ptr noundef nonnull align 1 dereferenceable(1) %105, ptr noundef nonnull align 8 dereferenceable(8) %726)
          to label %727 unwind label %1040

727:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #7
  store double 0.000000e+00, ptr %106, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %103, ptr noundef nonnull align 1 dereferenceable(1) %104, ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %728 unwind label %1044

728:                                              ; preds = %727
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %102, ptr noundef nonnull align 8 dereferenceable(16) %103)
          to label %729 unwind label %1044

729:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #7
  %730 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %731 unwind label %1048

731:                                              ; preds = %729
  %732 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %107, i32 0, i32 0
  store double %730, ptr %732, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %101, ptr noundef nonnull align 8 dereferenceable(33) %102, ptr noundef nonnull align 8 dereferenceable(8) %107)
          to label %733 unwind label %1048

733:                                              ; preds = %731
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %100, ptr noundef nonnull align 8 dereferenceable(33) %101)
          to label %734 unwind label %1052

734:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #7
  %735 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %736 unwind label %1056

736:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 16, ptr %109) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %109, ptr noundef @.str.409, i64 noundef 36)
          to label %737 unwind label %1060

737:                                              ; preds = %736
  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.337") align 8 %108, ptr noundef nonnull align 8 dereferenceable(9) %735, ptr noundef nonnull align 8 dereferenceable(16) %109)
          to label %738 unwind label %1060

738:                                              ; preds = %737
  %739 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %740 unwind label %1064

740:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #7
  %741 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %742 unwind label %1068

742:                                              ; preds = %740
  %743 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %110, i32 0, i32 0
  store double %741, ptr %743, align 8
  %744 = 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) %739, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %745 unwind label %1068

745:                                              ; preds = %742
  %746 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %108, ptr noundef nonnull align 8 dereferenceable(9) %744)
          to label %747 unwind label %1068

747:                                              ; preds = %745
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef @.str.401, i64 noundef 92)
          to label %748 unwind label %1068

748:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %113, i32 noundef 1)
          to label %749 unwind label %1072

749:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #7
  %750 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %751 unwind label %1076

751:                                              ; preds = %749
  %752 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %114, i32 0, i32 0
  store double %750, ptr %752, align 8
  %753 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %113, ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %754 unwind label %1076

754:                                              ; preds = %751
  %755 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %112, i32 0, i32 0
  store i32 %753, ptr %755, align 4
  %756 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %112)
          to label %757 unwind label %1076

757:                                              ; preds = %754
  %758 = 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) %100, ptr noundef nonnull align 8 dereferenceable(9) %746, ptr noundef %111, i64 noundef 76, i32 noundef 1, i32 noundef %756, i64 noundef 0)
          to label %759 unwind label %1076

759:                                              ; preds = %757
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %101) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %102) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  br label %760

760:                                              ; preds = %759
  %761 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %762 unwind label %938

762:                                              ; preds = %760
  br i1 %761, label %721, label %763, !llvm.loop !23

763:                                              ; preds = %762
  br label %764

764:                                              ; preds = %805, %763
  %765 = 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) %115, ptr noundef @.str.401, i64 noundef 92)
          to label %766 unwind label %938

766:                                              ; preds = %764
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116)
          to label %767 unwind label %938

767:                                              ; preds = %766
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %765, ptr noundef %115, i64 noundef 78, ptr noundef %116)
          to label %768 unwind label %938

768:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 24, ptr %117) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %118) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %119) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %122) #7
  %769 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %121, ptr noundef nonnull align 1 dereferenceable(1) %122, ptr noundef nonnull align 8 dereferenceable(8) %769)
          to label %770 unwind label %1089

770:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #7
  store double 0.000000e+00, ptr %123, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %120, ptr noundef nonnull align 1 dereferenceable(1) %121, ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %771 unwind label %1093

771:                                              ; preds = %770
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %119, ptr noundef nonnull align 8 dereferenceable(16) %120)
          to label %772 unwind label %1093

772:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #7
  %773 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %774 unwind label %1097

774:                                              ; preds = %772
  %775 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %124, i32 0, i32 0
  store double %773, ptr %775, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %118, ptr noundef nonnull align 8 dereferenceable(33) %119, ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %776 unwind label %1097

776:                                              ; preds = %774
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %117, ptr noundef nonnull align 8 dereferenceable(33) %118)
          to label %777 unwind label %1101

777:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #7
  %778 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %779 unwind label %1105

779:                                              ; preds = %777
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef @.str.410, i64 noundef 33)
          to label %780 unwind label %1109

780:                                              ; preds = %779
  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.337") align 8 %125, ptr noundef nonnull align 8 dereferenceable(9) %778, ptr noundef nonnull align 8 dereferenceable(16) %126)
          to label %781 unwind label %1109

781:                                              ; preds = %780
  %782 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %783 unwind label %1113

783:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #7
  %784 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %785 unwind label %1117

785:                                              ; preds = %783
  %786 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %127, i32 0, i32 0
  store double %784, ptr %786, align 8
  %787 = 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) %782, ptr noundef nonnull align 8 dereferenceable(8) %127)
          to label %788 unwind label %1117

788:                                              ; preds = %785
  %789 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %125, ptr noundef nonnull align 8 dereferenceable(9) %787)
          to label %790 unwind label %1117

790:                                              ; preds = %788
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef @.str.401, i64 noundef 92)
          to label %791 unwind label %1117

791:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %130, i32 noundef 1)
          to label %792 unwind label %1121

792:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #7
  %793 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %794 unwind label %1125

794:                                              ; preds = %792
  %795 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %131, i32 0, i32 0
  store double %793, ptr %795, align 8
  %796 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %130, ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %797 unwind label %1125

797:                                              ; preds = %794
  %798 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %129, i32 0, i32 0
  store i32 %796, ptr %798, align 4
  %799 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %129)
          to label %800 unwind label %1125

800:                                              ; preds = %797
  %801 = 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) %117, ptr noundef nonnull align 8 dereferenceable(9) %789, ptr noundef %128, i64 noundef 78, i32 noundef 1, i32 noundef %799, i64 noundef 0)
          to label %802 unwind label %1125

802:                                              ; preds = %800
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %117) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %118) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %119) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %122) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %119) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %117) #7
  br label %803

803:                                              ; preds = %802
  %804 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %805 unwind label %938

805:                                              ; preds = %803
  br i1 %804, label %764, label %806, !llvm.loop !24

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %848, %806
  %808 = 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) %132, ptr noundef @.str.401, i64 noundef 92)
          to label %809 unwind label %938

809:                                              ; preds = %807
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133)
          to label %810 unwind label %938

810:                                              ; preds = %809
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %808, ptr noundef %132, i64 noundef 79, ptr noundef %133)
          to label %811 unwind label %938

811:                                              ; preds = %810
  call void @llvm.lifetime.start.p0(i64 24, ptr %134) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %135) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %136) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %137) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #7
  %812 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %138, ptr noundef nonnull align 1 dereferenceable(1) %139, ptr noundef nonnull align 8 dereferenceable(8) %812)
          to label %813 unwind label %1138

813:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #7
  store double 0.000000e+00, ptr %140, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %137, ptr noundef nonnull align 1 dereferenceable(1) %138, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %814 unwind label %1142

814:                                              ; preds = %813
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %136, ptr noundef nonnull align 8 dereferenceable(16) %137)
          to label %815 unwind label %1142

815:                                              ; preds = %814
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #7
  %816 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %817 unwind label %1146

817:                                              ; preds = %815
  %818 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %141, i32 0, i32 0
  store double %816, ptr %818, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %135, ptr noundef nonnull align 8 dereferenceable(33) %136, ptr noundef nonnull align 8 dereferenceable(8) %141)
          to label %819 unwind label %1146

819:                                              ; preds = %817
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %134, ptr noundef nonnull align 8 dereferenceable(33) %135)
          to label %820 unwind label %1150

820:                                              ; preds = %819
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #7
  %821 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %822 unwind label %1154

822:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 16, ptr %143) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef @.str.411, i64 noundef 33)
          to label %823 unwind label %1158

823:                                              ; preds = %822
  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.337") align 8 %142, ptr noundef nonnull align 8 dereferenceable(9) %821, ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %824 unwind label %1158

824:                                              ; preds = %823
  %825 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %826 unwind label %1162

826:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #7
  %827 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %828 unwind label %1166

828:                                              ; preds = %826
  %829 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %144, i32 0, i32 0
  store double %827, ptr %829, align 8
  %830 = 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) %825, ptr noundef nonnull align 8 dereferenceable(8) %144)
          to label %831 unwind label %1166

831:                                              ; preds = %828
  %832 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %142, ptr noundef nonnull align 8 dereferenceable(9) %830)
          to label %833 unwind label %1166

833:                                              ; preds = %831
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %145, ptr noundef @.str.401, i64 noundef 92)
          to label %834 unwind label %1166

834:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %147, i32 noundef 1)
          to label %835 unwind label %1170

835:                                              ; preds = %834
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #7
  %836 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %837 unwind label %1174

837:                                              ; preds = %835
  %838 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %148, i32 0, i32 0
  store double %836, ptr %838, align 8
  %839 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %147, ptr noundef nonnull align 8 dereferenceable(8) %148)
          to label %840 unwind label %1174

840:                                              ; preds = %837
  %841 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %146, i32 0, i32 0
  store i32 %839, ptr %841, align 4
  %842 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %146)
          to label %843 unwind label %1174

843:                                              ; preds = %840
  %844 = 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) %134, ptr noundef nonnull align 8 dereferenceable(9) %832, ptr noundef %145, i64 noundef 79, i32 noundef 1, i32 noundef %842, i64 noundef 0)
          to label %845 unwind label %1174

845:                                              ; preds = %843
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %134) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %135) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %136) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %134) #7
  br label %846

846:                                              ; preds = %845
  %847 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %848 unwind label %938

848:                                              ; preds = %846
  br i1 %847, label %807, label %849, !llvm.loop !25

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %891, %849
  %851 = 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) %149, ptr noundef @.str.401, i64 noundef 92)
          to label %852 unwind label %938

852:                                              ; preds = %850
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %150)
          to label %853 unwind label %938

853:                                              ; preds = %852
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %851, ptr noundef %149, i64 noundef 80, ptr noundef %150)
          to label %854 unwind label %938

854:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 24, ptr %151) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %152) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %153) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %154) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #7
  %855 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %155, ptr noundef nonnull align 1 dereferenceable(1) %156, ptr noundef nonnull align 8 dereferenceable(8) %855)
          to label %856 unwind label %1187

856:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #7
  store double 0.000000e+00, ptr %157, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %154, ptr noundef nonnull align 1 dereferenceable(1) %155, ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %857 unwind label %1191

857:                                              ; preds = %856
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %153, ptr noundef nonnull align 8 dereferenceable(16) %154)
          to label %858 unwind label %1191

858:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #7
  %859 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %860 unwind label %1195

860:                                              ; preds = %858
  %861 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %158, i32 0, i32 0
  store double %859, ptr %861, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %152, ptr noundef nonnull align 8 dereferenceable(33) %153, ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %862 unwind label %1195

862:                                              ; preds = %860
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %151, ptr noundef nonnull align 8 dereferenceable(33) %152)
          to label %863 unwind label %1199

863:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 32, ptr %159) #7
  %864 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %865 unwind label %1203

865:                                              ; preds = %863
  call void @llvm.lifetime.start.p0(i64 16, ptr %160) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef @.str.412, i64 noundef 33)
          to label %866 unwind label %1207

866:                                              ; preds = %865
  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.337") align 8 %159, ptr noundef nonnull align 8 dereferenceable(9) %864, ptr noundef nonnull align 8 dereferenceable(16) %160)
          to label %867 unwind label %1207

867:                                              ; preds = %866
  %868 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %869 unwind label %1211

869:                                              ; preds = %867
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #7
  %870 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %871 unwind label %1215

871:                                              ; preds = %869
  %872 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %161, i32 0, i32 0
  store double %870, ptr %872, align 8
  %873 = 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) %868, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %874 unwind label %1215

874:                                              ; preds = %871
  %875 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %159, ptr noundef nonnull align 8 dereferenceable(9) %873)
          to label %876 unwind label %1215

876:                                              ; preds = %874
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %162, ptr noundef @.str.401, i64 noundef 92)
          to label %877 unwind label %1215

877:                                              ; preds = %876
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %164, i32 noundef 1)
          to label %878 unwind label %1219

878:                                              ; preds = %877
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #7
  %879 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %880 unwind label %1223

880:                                              ; preds = %878
  %881 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %165, i32 0, i32 0
  store double %879, ptr %881, align 8
  %882 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %164, ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %883 unwind label %1223

883:                                              ; preds = %880
  %884 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %163, i32 0, i32 0
  store i32 %882, ptr %884, align 4
  %885 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %163)
          to label %886 unwind label %1223

886:                                              ; preds = %883
  %887 = 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) %151, ptr noundef nonnull align 8 dereferenceable(9) %875, ptr noundef %162, i64 noundef 80, i32 noundef 1, i32 noundef %885, i64 noundef 0)
          to label %888 unwind label %1223

888:                                              ; preds = %886
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %151) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %152) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %153) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %152) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %151) #7
  br label %889

889:                                              ; preds = %888
  %890 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %891 unwind label %938

891:                                              ; preds = %889
  br i1 %890, label %850, label %892, !llvm.loop !26

892:                                              ; preds = %891
  br label %893

893:                                              ; preds = %933, %892
  %894 = 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) %166, ptr noundef @.str.401, i64 noundef 92)
          to label %895 unwind label %938

895:                                              ; preds = %893
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %167)
          to label %896 unwind label %938

896:                                              ; preds = %895
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %894, ptr noundef %166, i64 noundef 83, ptr noundef %167)
          to label %897 unwind label %938

897:                                              ; preds = %896
  call void @llvm.lifetime.start.p0(i64 24, ptr %168) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %169) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %170) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %171) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %172, ptr noundef nonnull align 1 dereferenceable(1) %173, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %898 unwind label %1236

898:                                              ; preds = %897
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIS4_EENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr.345") align 8 %171, ptr noundef nonnull align 1 dereferenceable(1) %172, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %899 unwind label %1236

899:                                              ; preds = %898
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343") align 8 %170, ptr noundef nonnull align 8 dereferenceable(16) %171)
          to label %900 unwind label %1236

900:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #7
  %901 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %902 unwind label %1240

902:                                              ; preds = %900
  %903 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %174, i32 0, i32 0
  store double %901, ptr %903, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEdEENS1_20assertion_evaluate_tIT_EERKSE_RKNS1_15tolerance_manipIT0_EE(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343") align 8 %169, ptr noundef nonnull align 8 dereferenceable(33) %170, ptr noundef nonnull align 8 dereferenceable(8) %174)
          to label %904 unwind label %1240

904:                                              ; preds = %902
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %168, ptr noundef nonnull align 8 dereferenceable(33) %169)
          to label %905 unwind label %1244

905:                                              ; preds = %904
  call void @llvm.lifetime.start.p0(i64 32, ptr %175) #7
  %906 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %907 unwind label %1248

907:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 16, ptr %176) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %176, ptr noundef @.str.413, i64 noundef 31)
          to label %908 unwind label %1252

908:                                              ; preds = %907
  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.337") align 8 %175, ptr noundef nonnull align 8 dereferenceable(9) %906, ptr noundef nonnull align 8 dereferenceable(16) %176)
          to label %909 unwind label %1252

909:                                              ; preds = %908
  %910 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %911 unwind label %1256

911:                                              ; preds = %909
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #7
  %912 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %913 unwind label %1260

913:                                              ; preds = %911
  %914 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %177, i32 0, i32 0
  store double %912, ptr %914, align 8
  %915 = 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) %910, ptr noundef nonnull align 8 dereferenceable(8) %177)
          to label %916 unwind label %1260

916:                                              ; preds = %913
  %917 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %175, ptr noundef nonnull align 8 dereferenceable(9) %915)
          to label %918 unwind label %1260

918:                                              ; preds = %916
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %178, ptr noundef @.str.401, i64 noundef 92)
          to label %919 unwind label %1260

919:                                              ; preds = %918
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %180, i32 noundef 1)
          to label %920 unwind label %1264

920:                                              ; preds = %919
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #7
  %921 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %922 unwind label %1268

922:                                              ; preds = %920
  %923 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %181, i32 0, i32 0
  store double %921, ptr %923, align 8
  %924 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %180, ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %925 unwind label %1268

925:                                              ; preds = %922
  %926 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %179, i32 0, i32 0
  store i32 %924, ptr %926, align 4
  %927 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %179)
          to label %928 unwind label %1268

928:                                              ; preds = %925
  %929 = 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) %168, ptr noundef nonnull align 8 dereferenceable(9) %917, ptr noundef %178, i64 noundef 83, i32 noundef 1, i32 noundef %927, i64 noundef 0)
          to label %930 unwind label %1268

930:                                              ; preds = %928
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %176) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %168) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %169) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %170) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %171) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %170) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %168) #7
  br label %931

931:                                              ; preds = %930
  %932 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %933 unwind label %938

933:                                              ; preds = %931
  br i1 %932, label %893, label %934, !llvm.loop !27

934:                                              ; preds = %933
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr %23) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %22) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %935

935:                                              ; preds = %934
  %936 = load i64, ptr %13, align 8, !tbaa !11
  %937 = add i64 %936, 1
  store i64 %937, ptr %13, align 8, !tbaa !11
  br label %348, !llvm.loop !28

938:                                              ; preds = %931, %896, %895, %893, %889, %853, %852, %850, %846, %810, %809, %807, %803, %767, %766, %764, %760, %724, %723, %721, %717, %681, %680, %678, %674, %638, %637, %635
  %939 = landingpad { ptr, i32 }
          cleanup
  %940 = extractvalue { ptr, i32 } %939, 0
  store ptr %940, ptr %5, align 8
  %941 = extractvalue { ptr, i32 } %939, 1
  store i32 %941, ptr %6, align 4
  br label %1280

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

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

950:                                              ; preds = %645, %643
  %951 = landingpad { ptr, i32 }
          cleanup
  %952 = extractvalue { ptr, i32 } %951, 0
  store ptr %952, ptr %5, align 8
  %953 = extractvalue { ptr, i32 } %951, 1
  store i32 %953, ptr %6, align 4
  br label %988

954:                                              ; preds = %647
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %5, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %6, align 4
  br label %987

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

962:                                              ; preds = %651, %650
  %963 = landingpad { ptr, i32 }
          cleanup
  %964 = extractvalue { ptr, i32 } %963, 0
  store ptr %964, ptr %5, align 8
  %965 = extractvalue { ptr, i32 } %963, 1
  store i32 %965, ptr %6, align 4
  br label %985

966:                                              ; preds = %652
  %967 = landingpad { ptr, i32 }
          cleanup
  %968 = extractvalue { ptr, i32 } %967, 0
  store ptr %968, ptr %5, align 8
  %969 = extractvalue { ptr, i32 } %967, 1
  store i32 %969, ptr %6, align 4
  br label %984

970:                                              ; preds = %661, %659, %656, %654
  %971 = landingpad { ptr, i32 }
          cleanup
  %972 = extractvalue { ptr, i32 } %971, 0
  store ptr %972, ptr %5, align 8
  %973 = extractvalue { ptr, i32 } %971, 1
  store i32 %973, ptr %6, align 4
  br label %983

974:                                              ; preds = %662
  %975 = landingpad { ptr, i32 }
          cleanup
  %976 = extractvalue { ptr, i32 } %975, 0
  store ptr %976, ptr %5, align 8
  %977 = extractvalue { ptr, i32 } %975, 1
  store i32 %977, ptr %6, align 4
  br label %982

978:                                              ; preds = %671, %668, %665, %663
  %979 = landingpad { ptr, i32 }
          cleanup
  %980 = extractvalue { ptr, i32 } %979, 0
  store ptr %980, ptr %5, align 8
  %981 = extractvalue { ptr, i32 } %979, 1
  store i32 %981, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  br label %982

982:                                              ; preds = %978, %974
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  br label %983

983:                                              ; preds = %982, %970
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #7
  br label %984

984:                                              ; preds = %983, %966
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %985

985:                                              ; preds = %984, %962
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #7
  br label %986

986:                                              ; preds = %985, %958
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #7
  br label %987

987:                                              ; preds = %986, %954
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %67) #7
  br label %988

988:                                              ; preds = %987, %950
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %68) #7
  br label %989

989:                                              ; preds = %988, %946
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  br label %990

990:                                              ; preds = %989, %942
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #7
  br label %1280

991:                                              ; preds = %682
  %992 = landingpad { ptr, i32 }
          cleanup
  %993 = extractvalue { ptr, i32 } %992, 0
  store ptr %993, ptr %5, align 8
  %994 = extractvalue { ptr, i32 } %992, 1
  store i32 %994, ptr %6, align 4
  br label %1039

995:                                              ; preds = %685, %684
  %996 = landingpad { ptr, i32 }
          cleanup
  %997 = extractvalue { ptr, i32 } %996, 0
  store ptr %997, ptr %5, align 8
  %998 = extractvalue { ptr, i32 } %996, 1
  store i32 %998, ptr %6, align 4
  br label %1038

999:                                              ; preds = %688, %686
  %1000 = landingpad { ptr, i32 }
          cleanup
  %1001 = extractvalue { ptr, i32 } %1000, 0
  store ptr %1001, ptr %5, align 8
  %1002 = extractvalue { ptr, i32 } %1000, 1
  store i32 %1002, ptr %6, align 4
  br label %1037

1003:                                             ; preds = %690
  %1004 = landingpad { ptr, i32 }
          cleanup
  %1005 = extractvalue { ptr, i32 } %1004, 0
  store ptr %1005, ptr %5, align 8
  %1006 = extractvalue { ptr, i32 } %1004, 1
  store i32 %1006, ptr %6, align 4
  br label %1036

1007:                                             ; preds = %691
  %1008 = landingpad { ptr, i32 }
          cleanup
  %1009 = extractvalue { ptr, i32 } %1008, 0
  store ptr %1009, ptr %5, align 8
  %1010 = extractvalue { ptr, i32 } %1008, 1
  store i32 %1010, ptr %6, align 4
  br label %1035

1011:                                             ; preds = %694, %693
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %5, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %6, align 4
  br label %1034

1015:                                             ; preds = %695
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %5, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %6, align 4
  br label %1033

1019:                                             ; preds = %704, %702, %699, %697
  %1020 = landingpad { ptr, i32 }
          cleanup
  %1021 = extractvalue { ptr, i32 } %1020, 0
  store ptr %1021, ptr %5, align 8
  %1022 = extractvalue { ptr, i32 } %1020, 1
  store i32 %1022, ptr %6, align 4
  br label %1032

1023:                                             ; preds = %705
  %1024 = landingpad { ptr, i32 }
          cleanup
  %1025 = extractvalue { ptr, i32 } %1024, 0
  store ptr %1025, ptr %5, align 8
  %1026 = extractvalue { ptr, i32 } %1024, 1
  store i32 %1026, ptr %6, align 4
  br label %1031

1027:                                             ; preds = %714, %711, %708, %706
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %5, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  br label %1031

1031:                                             ; preds = %1027, %1023
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  br label %1032

1032:                                             ; preds = %1031, %1019
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  br label %1033

1033:                                             ; preds = %1032, %1015
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %1034

1034:                                             ; preds = %1033, %1011
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #7
  br label %1035

1035:                                             ; preds = %1034, %1007
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #7
  br label %1036

1036:                                             ; preds = %1035, %1003
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %84) #7
  br label %1037

1037:                                             ; preds = %1036, %999
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %85) #7
  br label %1038

1038:                                             ; preds = %1037, %995
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  br label %1039

1039:                                             ; preds = %1038, %991
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #7
  br label %1280

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

1044:                                             ; preds = %728, %727
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %5, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %6, align 4
  br label %1087

1048:                                             ; preds = %731, %729
  %1049 = landingpad { ptr, i32 }
          cleanup
  %1050 = extractvalue { ptr, i32 } %1049, 0
  store ptr %1050, ptr %5, align 8
  %1051 = extractvalue { ptr, i32 } %1049, 1
  store i32 %1051, ptr %6, align 4
  br label %1086

1052:                                             ; preds = %733
  %1053 = landingpad { ptr, i32 }
          cleanup
  %1054 = extractvalue { ptr, i32 } %1053, 0
  store ptr %1054, ptr %5, align 8
  %1055 = extractvalue { ptr, i32 } %1053, 1
  store i32 %1055, ptr %6, align 4
  br label %1085

1056:                                             ; preds = %734
  %1057 = landingpad { ptr, i32 }
          cleanup
  %1058 = extractvalue { ptr, i32 } %1057, 0
  store ptr %1058, ptr %5, align 8
  %1059 = extractvalue { ptr, i32 } %1057, 1
  store i32 %1059, ptr %6, align 4
  br label %1084

1060:                                             ; preds = %737, %736
  %1061 = landingpad { ptr, i32 }
          cleanup
  %1062 = extractvalue { ptr, i32 } %1061, 0
  store ptr %1062, ptr %5, align 8
  %1063 = extractvalue { ptr, i32 } %1061, 1
  store i32 %1063, ptr %6, align 4
  br label %1083

1064:                                             ; preds = %738
  %1065 = landingpad { ptr, i32 }
          cleanup
  %1066 = extractvalue { ptr, i32 } %1065, 0
  store ptr %1066, ptr %5, align 8
  %1067 = extractvalue { ptr, i32 } %1065, 1
  store i32 %1067, ptr %6, align 4
  br label %1082

1068:                                             ; preds = %747, %745, %742, %740
  %1069 = landingpad { ptr, i32 }
          cleanup
  %1070 = extractvalue { ptr, i32 } %1069, 0
  store ptr %1070, ptr %5, align 8
  %1071 = extractvalue { ptr, i32 } %1069, 1
  store i32 %1071, ptr %6, align 4
  br label %1081

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

1076:                                             ; preds = %757, %754, %751, %749
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %5, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #7
  br label %1080

1080:                                             ; preds = %1076, %1072
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #7
  br label %1081

1081:                                             ; preds = %1080, %1068
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #7
  br label %1082

1082:                                             ; preds = %1081, %1064
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1083

1083:                                             ; preds = %1082, %1060
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #7
  br label %1084

1084:                                             ; preds = %1083, %1056
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #7
  br label %1085

1085:                                             ; preds = %1084, %1052
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %101) #7
  br label %1086

1086:                                             ; preds = %1085, %1048
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %102) #7
  br label %1087

1087:                                             ; preds = %1086, %1044
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #7
  br label %1088

1088:                                             ; preds = %1087, %1040
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  br label %1280

1089:                                             ; preds = %768
  %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 %1137

1093:                                             ; preds = %771, %770
  %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
  br label %1136

1097:                                             ; preds = %774, %772
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %5, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %6, align 4
  br label %1135

1101:                                             ; preds = %776
  %1102 = landingpad { ptr, i32 }
          cleanup
  %1103 = extractvalue { ptr, i32 } %1102, 0
  store ptr %1103, ptr %5, align 8
  %1104 = extractvalue { ptr, i32 } %1102, 1
  store i32 %1104, ptr %6, align 4
  br label %1134

1105:                                             ; preds = %777
  %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 %1133

1109:                                             ; preds = %780, %779
  %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 %1132

1113:                                             ; preds = %781
  %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 %1131

1117:                                             ; preds = %790, %788, %785, %783
  %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 %1130

1121:                                             ; preds = %791
  %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 %1129

1125:                                             ; preds = %800, %797, %794, %792
  %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
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #7
  br label %1129

1129:                                             ; preds = %1125, %1121
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #7
  br label %1130

1130:                                             ; preds = %1129, %1117
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #7
  br label %1131

1131:                                             ; preds = %1130, %1113
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1132

1132:                                             ; preds = %1131, %1109
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #7
  br label %1133

1133:                                             ; preds = %1132, %1105
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %117) #7
  br label %1134

1134:                                             ; preds = %1133, %1101
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %118) #7
  br label %1135

1135:                                             ; preds = %1134, %1097
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %119) #7
  br label %1136

1136:                                             ; preds = %1135, %1093
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #7
  br label %1137

1137:                                             ; preds = %1136, %1089
  call void @llvm.lifetime.end.p0(i64 1, ptr %122) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %119) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %117) #7
  br label %1280

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

1142:                                             ; preds = %814, %813
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %5, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %6, align 4
  br label %1185

1146:                                             ; preds = %817, %815
  %1147 = landingpad { ptr, i32 }
          cleanup
  %1148 = extractvalue { ptr, i32 } %1147, 0
  store ptr %1148, ptr %5, align 8
  %1149 = extractvalue { ptr, i32 } %1147, 1
  store i32 %1149, ptr %6, align 4
  br label %1184

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

1154:                                             ; preds = %820
  %1155 = landingpad { ptr, i32 }
          cleanup
  %1156 = extractvalue { ptr, i32 } %1155, 0
  store ptr %1156, ptr %5, align 8
  %1157 = extractvalue { ptr, i32 } %1155, 1
  store i32 %1157, ptr %6, align 4
  br label %1182

1158:                                             ; preds = %823, %822
  %1159 = landingpad { ptr, i32 }
          cleanup
  %1160 = extractvalue { ptr, i32 } %1159, 0
  store ptr %1160, ptr %5, align 8
  %1161 = extractvalue { ptr, i32 } %1159, 1
  store i32 %1161, ptr %6, align 4
  br label %1181

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

1166:                                             ; preds = %833, %831, %828, %826
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %5, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %6, align 4
  br label %1179

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

1174:                                             ; preds = %843, %840, %837, %835
  %1175 = landingpad { ptr, i32 }
          cleanup
  %1176 = extractvalue { ptr, i32 } %1175, 0
  store ptr %1176, ptr %5, align 8
  %1177 = extractvalue { ptr, i32 } %1175, 1
  store i32 %1177, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #7
  br label %1178

1178:                                             ; preds = %1174, %1170
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #7
  br label %1179

1179:                                             ; preds = %1178, %1166
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #7
  br label %1180

1180:                                             ; preds = %1179, %1162
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %1181

1181:                                             ; preds = %1180, %1158
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #7
  br label %1182

1182:                                             ; preds = %1181, %1154
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %134) #7
  br label %1183

1183:                                             ; preds = %1182, %1150
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %135) #7
  br label %1184

1184:                                             ; preds = %1183, %1146
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %136) #7
  br label %1185

1185:                                             ; preds = %1184, %1142
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #7
  br label %1186

1186:                                             ; preds = %1185, %1138
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %134) #7
  br label %1280

1187:                                             ; preds = %854
  %1188 = landingpad { ptr, i32 }
          cleanup
  %1189 = extractvalue { ptr, i32 } %1188, 0
  store ptr %1189, ptr %5, align 8
  %1190 = extractvalue { ptr, i32 } %1188, 1
  store i32 %1190, ptr %6, align 4
  br label %1235

1191:                                             ; preds = %857, %856
  %1192 = landingpad { ptr, i32 }
          cleanup
  %1193 = extractvalue { ptr, i32 } %1192, 0
  store ptr %1193, ptr %5, align 8
  %1194 = extractvalue { ptr, i32 } %1192, 1
  store i32 %1194, ptr %6, align 4
  br label %1234

1195:                                             ; preds = %860, %858
  %1196 = landingpad { ptr, i32 }
          cleanup
  %1197 = extractvalue { ptr, i32 } %1196, 0
  store ptr %1197, ptr %5, align 8
  %1198 = extractvalue { ptr, i32 } %1196, 1
  store i32 %1198, ptr %6, align 4
  br label %1233

1199:                                             ; preds = %862
  %1200 = landingpad { ptr, i32 }
          cleanup
  %1201 = extractvalue { ptr, i32 } %1200, 0
  store ptr %1201, ptr %5, align 8
  %1202 = extractvalue { ptr, i32 } %1200, 1
  store i32 %1202, ptr %6, align 4
  br label %1232

1203:                                             ; preds = %863
  %1204 = landingpad { ptr, i32 }
          cleanup
  %1205 = extractvalue { ptr, i32 } %1204, 0
  store ptr %1205, ptr %5, align 8
  %1206 = extractvalue { ptr, i32 } %1204, 1
  store i32 %1206, ptr %6, align 4
  br label %1231

1207:                                             ; preds = %866, %865
  %1208 = landingpad { ptr, i32 }
          cleanup
  %1209 = extractvalue { ptr, i32 } %1208, 0
  store ptr %1209, ptr %5, align 8
  %1210 = extractvalue { ptr, i32 } %1208, 1
  store i32 %1210, ptr %6, align 4
  br label %1230

1211:                                             ; preds = %867
  %1212 = landingpad { ptr, i32 }
          cleanup
  %1213 = extractvalue { ptr, i32 } %1212, 0
  store ptr %1213, ptr %5, align 8
  %1214 = extractvalue { ptr, i32 } %1212, 1
  store i32 %1214, ptr %6, align 4
  br label %1229

1215:                                             ; preds = %876, %874, %871, %869
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %5, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %6, align 4
  br label %1228

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

1223:                                             ; preds = %886, %883, %880, %878
  %1224 = landingpad { ptr, i32 }
          cleanup
  %1225 = extractvalue { ptr, i32 } %1224, 0
  store ptr %1225, ptr %5, align 8
  %1226 = extractvalue { ptr, i32 } %1224, 1
  store i32 %1226, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #7
  br label %1227

1227:                                             ; preds = %1223, %1219
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #7
  br label %1228

1228:                                             ; preds = %1227, %1215
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #7
  br label %1229

1229:                                             ; preds = %1228, %1211
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #7
  br label %1230

1230:                                             ; preds = %1229, %1207
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #7
  br label %1231

1231:                                             ; preds = %1230, %1203
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %151) #7
  br label %1232

1232:                                             ; preds = %1231, %1199
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %152) #7
  br label %1233

1233:                                             ; preds = %1232, %1195
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %153) #7
  br label %1234

1234:                                             ; preds = %1233, %1191
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #7
  br label %1235

1235:                                             ; preds = %1234, %1187
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %152) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %151) #7
  br label %1280

1236:                                             ; preds = %899, %898, %897
  %1237 = landingpad { ptr, i32 }
          cleanup
  %1238 = extractvalue { ptr, i32 } %1237, 0
  store ptr %1238, ptr %5, align 8
  %1239 = extractvalue { ptr, i32 } %1237, 1
  store i32 %1239, ptr %6, align 4
  br label %1279

1240:                                             ; preds = %902, %900
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %5, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %6, align 4
  br label %1278

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

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

1252:                                             ; preds = %908, %907
  %1253 = landingpad { ptr, i32 }
          cleanup
  %1254 = extractvalue { ptr, i32 } %1253, 0
  store ptr %1254, ptr %5, align 8
  %1255 = extractvalue { ptr, i32 } %1253, 1
  store i32 %1255, ptr %6, align 4
  br label %1275

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

1260:                                             ; preds = %918, %916, %913, %911
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %5, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %6, align 4
  br label %1273

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

1268:                                             ; preds = %928, %925, %922, %920
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %5, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #7
  br label %1272

1272:                                             ; preds = %1268, %1264
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #7
  br label %1273

1273:                                             ; preds = %1272, %1260
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #7
  br label %1274

1274:                                             ; preds = %1273, %1256
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #7
  br label %1275

1275:                                             ; preds = %1274, %1252
  call void @llvm.lifetime.end.p0(i64 16, ptr %176) #7
  br label %1276

1276:                                             ; preds = %1275, %1248
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %168) #7
  br label %1277

1277:                                             ; preds = %1276, %1244
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %169) #7
  br label %1278

1278:                                             ; preds = %1277, %1240
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %170) #7
  br label %1279

1279:                                             ; preds = %1278, %1236
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %171) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %170) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %168) #7
  br label %1280

1280:                                             ; preds = %1279, %1235, %1186, %1137, %1088, %1039, %990, %938, %633
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #7
  br label %1281

1281:                                             ; preds = %1280, %452
  call void @llvm.lifetime.end.p0(i64 3, ptr %23) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %22) #7
  br label %1282

1282:                                             ; preds = %1281, %448
  call void @llvm.lifetime.end.p0(i64 352, ptr %22) #7
  br label %1283

1283:                                             ; preds = %1282, %440
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  br label %2157

1284:                                             ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #7
  store i64 0, ptr %182, align 8, !tbaa !11
  br label %1285

1285:                                             ; preds = %1832, %1284
  %1286 = load i64, ptr %182, align 8, !tbaa !11
  %1287 = icmp ult i64 %1286, 100
  br i1 %1287, label %1289, label %1288

1288:                                             ; preds = %1285
  store i32 31, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #7
  br label %2156

1289:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #7
  store double 0.000000e+00, ptr %183, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %184) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %184, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #7
  store i64 0, ptr %185, align 8, !tbaa !11
  br label %1290

1290:                                             ; preds = %1345, %1289
  %1291 = load i64, ptr %185, align 8, !tbaa !11
  %1292 = icmp ult i64 %1291, 100
  br i1 %1292, label %1294, label %1293

1293:                                             ; preds = %1290
  store i32 34, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #7
  br label %1361

1294:                                             ; preds = %1290
  %1295 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %1296 unwind label %1348

1296:                                             ; preds = %1294
  %1297 = fadd double 1.000000e+00, %1295
  %1298 = load i64, ptr %185, align 8, !tbaa !11
  %1299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1298) #7
  store double %1297, ptr %1299, align 8, !tbaa !9
  %1300 = load i64, ptr %185, align 8, !tbaa !11
  %1301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1300) #7
  %1302 = load double, ptr %1301, align 8, !tbaa !9
  %1303 = fdiv double 1.000000e+00, %1302
  %1304 = load i64, ptr %185, align 8, !tbaa !11
  %1305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1304) #7
  store double %1303, ptr %1305, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %186) #7
  %1306 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %1307 unwind label %1352

1307:                                             ; preds = %1296
  %1308 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %1309 unwind label %1352

1309:                                             ; preds = %1307
  %1310 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %1311 unwind label %1352

1311:                                             ; preds = %1309
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %186, double noundef %1306, double noundef %1308, double noundef %1310) #7
  %1312 = load i64, ptr %185, align 8, !tbaa !11
  %1313 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1312) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1313, ptr align 8 %186, i64 24, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 24, ptr %186) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %187) #7
  %1314 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %1315 unwind label %1356

1315:                                             ; preds = %1311
  %1316 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %1317 unwind label %1356

1317:                                             ; preds = %1315
  %1318 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(5000) %11)
          to label %1319 unwind label %1356

1319:                                             ; preds = %1317
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %187, double noundef %1314, double noundef %1316, double noundef %1318) #7
  %1320 = load i64, ptr %185, align 8, !tbaa !11
  %1321 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1320) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1321, ptr align 8 %187, i64 24, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 24, ptr %187) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %188) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %188, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  %1322 = load i64, ptr %185, align 8, !tbaa !11
  %1323 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1322) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1323, ptr align 8 %188, i64 24, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 24, ptr %188) #7
  %1324 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef 0) #7
  %1325 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1324, ptr noundef @.str.403)
          to label %1326 unwind label %1348

1326:                                             ; preds = %1319
  %1327 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef 0) #7
  %1328 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1327, ptr noundef @.str.403)
          to label %1329 unwind label %1348

1329:                                             ; preds = %1326
  call void @llvm.lifetime.start.p0(i64 24, ptr %189) #7
  %1330 = load i64, ptr %185, align 8, !tbaa !11
  %1331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1330) #7
  %1332 = load double, ptr %1331, align 8, !tbaa !9
  %1333 = load i64, ptr %185, align 8, !tbaa !11
  %1334 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1333) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %189, double noundef %1332, ptr noundef nonnull align 8 dereferenceable(24) %1334) #7
  %1335 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %184, ptr noundef nonnull align 8 dereferenceable(24) %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %189) #7
  %1336 = load i64, ptr %185, align 8, !tbaa !11
  %1337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1336) #7
  %1338 = load double, ptr %1337, align 8, !tbaa !9
  %1339 = fmul double 5.000000e-01, %1338
  %1340 = load i64, ptr %185, align 8, !tbaa !11
  %1341 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1340) #7
  %1342 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1341) #7
  %1343 = load double, ptr %183, align 8, !tbaa !9
  %1344 = call double @llvm.fmuladd.f64(double %1339, double %1342, double %1343)
  store double %1344, ptr %183, align 8, !tbaa !9
  br label %1345

1345:                                             ; preds = %1329
  %1346 = load i64, ptr %185, align 8, !tbaa !11
  %1347 = add i64 %1346, 1
  store i64 %1347, ptr %185, align 8, !tbaa !11
  br label %1290, !llvm.loop !29

1348:                                             ; preds = %1326, %1319, %1294
  %1349 = landingpad { ptr, i32 }
          cleanup
  %1350 = extractvalue { ptr, i32 } %1349, 0
  store ptr %1350, ptr %5, align 8
  %1351 = extractvalue { ptr, i32 } %1349, 1
  store i32 %1351, ptr %6, align 4
  br label %1360

1352:                                             ; preds = %1309, %1307, %1296
  %1353 = landingpad { ptr, i32 }
          cleanup
  %1354 = extractvalue { ptr, i32 } %1353, 0
  store ptr %1354, ptr %5, align 8
  %1355 = extractvalue { ptr, i32 } %1353, 1
  store i32 %1355, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %186) #7
  br label %1360

1356:                                             ; preds = %1317, %1315, %1311
  %1357 = landingpad { ptr, i32 }
          cleanup
  %1358 = extractvalue { ptr, i32 } %1357, 0
  store ptr %1358, ptr %5, align 8
  %1359 = extractvalue { ptr, i32 } %1357, 1
  store i32 %1359, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %187) #7
  br label %1360

1360:                                             ; preds = %1356, %1352, %1348
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #7
  br label %2155

1361:                                             ; preds = %1293
  call void @llvm.lifetime.start.p0(i64 352, ptr %190) #7
  invoke void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(352) %190, ptr noundef nonnull align 8 dereferenceable(352) %9)
          to label %1362 unwind label %1368

1362:                                             ; preds = %1361
  call void @llvm.lifetime.start.p0(i64 3, ptr %191) #7
  invoke void @_ZN7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2Ebbb(ptr noundef nonnull align 1 dereferenceable(3) %191, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1363 unwind label %1372

1363:                                             ; preds = %1362
  call void @_ZNK7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE6removeERNS_6SystemIS3_EE(ptr noundef nonnull align 1 dereferenceable(3) %191, ptr noundef nonnull align 8 dereferenceable(352) %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %192) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %192, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %193) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %193, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #7
  store double 0.000000e+00, ptr %194, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #7
  store i64 0, ptr %195, align 8, !tbaa !11
  br label %1364

1364:                                             ; preds = %1474, %1363
  %1365 = load i64, ptr %195, align 8, !tbaa !11
  %1366 = icmp ult i64 %1365, 100
  br i1 %1366, label %1376, label %1367

1367:                                             ; preds = %1364
  store i32 37, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #7
  br label %1554

1368:                                             ; preds = %1361
  %1369 = landingpad { ptr, i32 }
          cleanup
  %1370 = extractvalue { ptr, i32 } %1369, 0
  store ptr %1370, ptr %5, align 8
  %1371 = extractvalue { ptr, i32 } %1369, 1
  store i32 %1371, ptr %6, align 4
  br label %2154

1372:                                             ; preds = %1362
  %1373 = landingpad { ptr, i32 }
          cleanup
  %1374 = extractvalue { ptr, i32 } %1373, 0
  store ptr %1374, ptr %5, align 8
  %1375 = extractvalue { ptr, i32 } %1373, 1
  store i32 %1375, ptr %6, align 4
  br label %2153

1376:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #7
  %1377 = load i64, ptr %195, align 8, !tbaa !11
  %1378 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1377) #7
  %1379 = load double, ptr %1378, align 8, !tbaa !9
  store double %1379, ptr %196, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %197) #7
  %1380 = load i64, ptr %195, align 8, !tbaa !11
  %1381 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1380) #7
  call void @_ZN7mjolnir4mathmiIdLm3ELm1EEENS0_6MatrixIT_XT0_EXT1_EEERKS4_S6_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %197, ptr noundef nonnull align 8 dereferenceable(24) %1381, ptr noundef nonnull align 8 dereferenceable(24) %184) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #7
  %1382 = load i64, ptr %195, align 8, !tbaa !11
  %1383 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1382) #7
  store ptr %1383, ptr %198, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %199) #7
  %1384 = load double, ptr %196, align 8, !tbaa !9
  %1385 = load ptr, ptr %198, align 8, !tbaa !5
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %199, double noundef %1384, ptr noundef nonnull align 8 dereferenceable(24) %1385) #7
  %1386 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %192, ptr noundef nonnull align 8 dereferenceable(24) %199) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %199) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %200) #7
  %1387 = load double, ptr %196, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %201) #7
  %1388 = load ptr, ptr %198, align 8, !tbaa !5
  call void @_ZN7mjolnir4math13cross_productIdEENS0_6MatrixIT_Lm3ELm1EEERKS4_S6_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %201, ptr noundef nonnull align 8 dereferenceable(24) %197, ptr noundef nonnull align 8 dereferenceable(24) %1388) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind writable sret(%"class.mjolnir::math::Matrix.334") align 8 %200, double noundef %1387, ptr noundef nonnull align 8 dereferenceable(24) %201) #7
  %1389 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %193, ptr noundef nonnull align 8 dereferenceable(24) %200) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %201) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %200) #7
  %1390 = load i64, ptr %195, align 8, !tbaa !11
  %1391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1390) #7
  %1392 = load double, ptr %1391, align 8, !tbaa !9
  %1393 = fmul double 5.000000e-01, %1392
  %1394 = load i64, ptr %195, align 8, !tbaa !11
  %1395 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1394) #7
  %1396 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1395) #7
  %1397 = load double, ptr %194, align 8, !tbaa !9
  %1398 = call double @llvm.fmuladd.f64(double %1393, double %1396, double %1397)
  store double %1398, ptr %194, align 8, !tbaa !9
  br label %1399

1399:                                             ; preds = %1422, %1376
  %1400 = 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) %202, ptr noundef @.str.401, i64 noundef 92)
          to label %1401 unwind label %1477

1401:                                             ; preds = %1399
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203)
          to label %1402 unwind label %1477

1402:                                             ; preds = %1401
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1400, ptr noundef %202, i64 noundef 126, ptr noundef %203)
          to label %1403 unwind label %1477

1403:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 24, ptr %204) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %205) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %207) #7
  %1404 = load i64, ptr %195, align 8, !tbaa !11
  %1405 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1404) #7
  %1406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1405) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %206, ptr noundef nonnull align 1 dereferenceable(1) %207, ptr noundef nonnull align 8 dereferenceable(8) %1406)
          to label %1407 unwind label %1481

1407:                                             ; preds = %1403
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #7
  %1408 = load i64, ptr %195, align 8, !tbaa !11
  %1409 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %190, i64 noundef %1408) #7
  %1410 = call noundef double @_ZN7mjolnir4math1XIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1409) #7
  store double %1410, ptr %208, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %205, ptr noundef nonnull align 1 dereferenceable(1) %206, ptr noundef nonnull align 8 dereferenceable(8) %208)
          to label %1411 unwind label %1485

1411:                                             ; preds = %1407
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %204, ptr noundef nonnull align 8 dereferenceable(16) %205, i1 noundef zeroext false)
          to label %1412 unwind label %1485

1412:                                             ; preds = %1411
  call void @llvm.lifetime.start.p0(i64 32, ptr %209) #7
  %1413 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1414 unwind label %1489

1414:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 16, ptr %210) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %210, ptr noundef @.str.404, i64 noundef 74)
          to label %1415 unwind label %1493

1415:                                             ; preds = %1414
  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.337") align 8 %209, ptr noundef nonnull align 8 dereferenceable(9) %1413, ptr noundef nonnull align 8 dereferenceable(16) %210)
          to label %1416 unwind label %1493

1416:                                             ; preds = %1415
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef @.str.401, i64 noundef 92)
          to label %1417 unwind label %1497

1417:                                             ; preds = %1416
  %1418 = 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) %209, ptr noundef %211, i64 noundef 126, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %1419 unwind label %1497

1419:                                             ; preds = %1417
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %210) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %204) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %205) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %204) #7
  br label %1420

1420:                                             ; preds = %1419
  %1421 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1422 unwind label %1477

1422:                                             ; preds = %1420
  br i1 %1421, label %1399, label %1423, !llvm.loop !30

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1447, %1423
  %1425 = 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) %212, ptr noundef @.str.401, i64 noundef 92)
          to label %1426 unwind label %1477

1426:                                             ; preds = %1424
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %213)
          to label %1427 unwind label %1477

1427:                                             ; preds = %1426
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1425, ptr noundef %212, i64 noundef 127, ptr noundef %213)
          to label %1428 unwind label %1477

1428:                                             ; preds = %1427
  call void @llvm.lifetime.start.p0(i64 24, ptr %214) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %215) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %216) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %217) #7
  %1429 = load i64, ptr %195, align 8, !tbaa !11
  %1430 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1429) #7
  %1431 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1430) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %216, ptr noundef nonnull align 1 dereferenceable(1) %217, ptr noundef nonnull align 8 dereferenceable(8) %1431)
          to label %1432 unwind label %1505

1432:                                             ; preds = %1428
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #7
  %1433 = load i64, ptr %195, align 8, !tbaa !11
  %1434 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %190, i64 noundef %1433) #7
  %1435 = call noundef double @_ZN7mjolnir4math1YIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1434) #7
  store double %1435, ptr %218, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %215, ptr noundef nonnull align 1 dereferenceable(1) %216, ptr noundef nonnull align 8 dereferenceable(8) %218)
          to label %1436 unwind label %1509

1436:                                             ; preds = %1432
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %214, ptr noundef nonnull align 8 dereferenceable(16) %215, i1 noundef zeroext false)
          to label %1437 unwind label %1509

1437:                                             ; preds = %1436
  call void @llvm.lifetime.start.p0(i64 32, ptr %219) #7
  %1438 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1439 unwind label %1513

1439:                                             ; preds = %1437
  call void @llvm.lifetime.start.p0(i64 16, ptr %220) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %220, ptr noundef @.str.405, i64 noundef 74)
          to label %1440 unwind label %1517

1440:                                             ; preds = %1439
  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.337") align 8 %219, ptr noundef nonnull align 8 dereferenceable(9) %1438, ptr noundef nonnull align 8 dereferenceable(16) %220)
          to label %1441 unwind label %1517

1441:                                             ; preds = %1440
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr noundef @.str.401, i64 noundef 92)
          to label %1442 unwind label %1521

1442:                                             ; preds = %1441
  %1443 = 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) %214, ptr noundef nonnull align 8 dereferenceable(9) %219, ptr noundef %221, i64 noundef 127, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %1444 unwind label %1521

1444:                                             ; preds = %1442
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %214) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %215) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %214) #7
  br label %1445

1445:                                             ; preds = %1444
  %1446 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1447 unwind label %1477

1447:                                             ; preds = %1445
  br i1 %1446, label %1424, label %1448, !llvm.loop !31

1448:                                             ; preds = %1447
  br label %1449

1449:                                             ; preds = %1472, %1448
  %1450 = 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) %222, ptr noundef @.str.401, i64 noundef 92)
          to label %1451 unwind label %1477

1451:                                             ; preds = %1449
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %223)
          to label %1452 unwind label %1477

1452:                                             ; preds = %1451
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1450, ptr noundef %222, i64 noundef 128, ptr noundef %223)
          to label %1453 unwind label %1477

1453:                                             ; preds = %1452
  call void @llvm.lifetime.start.p0(i64 24, ptr %224) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %225) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %227) #7
  %1454 = load i64, ptr %195, align 8, !tbaa !11
  %1455 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %9, i64 noundef %1454) #7
  %1456 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1455) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %226, ptr noundef nonnull align 1 dereferenceable(1) %227, ptr noundef nonnull align 8 dereferenceable(8) %1456)
          to label %1457 unwind label %1529

1457:                                             ; preds = %1453
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #7
  %1458 = load i64, ptr %195, align 8, !tbaa !11
  %1459 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %190, i64 noundef %1458) #7
  %1460 = call noundef double @_ZN7mjolnir4math1ZIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %1459) #7
  store double %1460, ptr %228, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %225, ptr noundef nonnull align 1 dereferenceable(1) %226, ptr noundef nonnull align 8 dereferenceable(8) %228)
          to label %1461 unwind label %1533

1461:                                             ; preds = %1457
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %224, ptr noundef nonnull align 8 dereferenceable(16) %225, i1 noundef zeroext false)
          to label %1462 unwind label %1533

1462:                                             ; preds = %1461
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #7
  %1463 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1464 unwind label %1537

1464:                                             ; preds = %1462
  call void @llvm.lifetime.start.p0(i64 16, ptr %230) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %230, ptr noundef @.str.406, i64 noundef 74)
          to label %1465 unwind label %1541

1465:                                             ; preds = %1464
  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.337") align 8 %229, ptr noundef nonnull align 8 dereferenceable(9) %1463, ptr noundef nonnull align 8 dereferenceable(16) %230)
          to label %1466 unwind label %1541

1466:                                             ; preds = %1465
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %231, ptr noundef @.str.401, i64 noundef 92)
          to label %1467 unwind label %1545

1467:                                             ; preds = %1466
  %1468 = 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) %224, ptr noundef nonnull align 8 dereferenceable(9) %229, ptr noundef %231, i64 noundef 128, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %1469 unwind label %1545

1469:                                             ; preds = %1467
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %224) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %224) #7
  br label %1470

1470:                                             ; preds = %1469
  %1471 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1472 unwind label %1477

1472:                                             ; preds = %1470
  br i1 %1471, label %1449, label %1473, !llvm.loop !32

1473:                                             ; preds = %1472
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %197) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #7
  br label %1474

1474:                                             ; preds = %1473
  %1475 = load i64, ptr %195, align 8, !tbaa !11
  %1476 = add i64 %1475, 1
  store i64 %1476, ptr %195, align 8, !tbaa !11
  br label %1364, !llvm.loop !33

1477:                                             ; preds = %1470, %1452, %1451, %1449, %1445, %1427, %1426, %1424, %1420, %1402, %1401, %1399
  %1478 = landingpad { ptr, i32 }
          cleanup
  %1479 = extractvalue { ptr, i32 } %1478, 0
  store ptr %1479, ptr %5, align 8
  %1480 = extractvalue { ptr, i32 } %1478, 1
  store i32 %1480, ptr %6, align 4
  br label %1553

1481:                                             ; preds = %1403
  %1482 = landingpad { ptr, i32 }
          cleanup
  %1483 = extractvalue { ptr, i32 } %1482, 0
  store ptr %1483, ptr %5, align 8
  %1484 = extractvalue { ptr, i32 } %1482, 1
  store i32 %1484, ptr %6, align 4
  br label %1504

1485:                                             ; preds = %1411, %1407
  %1486 = landingpad { ptr, i32 }
          cleanup
  %1487 = extractvalue { ptr, i32 } %1486, 0
  store ptr %1487, ptr %5, align 8
  %1488 = extractvalue { ptr, i32 } %1486, 1
  store i32 %1488, ptr %6, align 4
  br label %1503

1489:                                             ; preds = %1412
  %1490 = landingpad { ptr, i32 }
          cleanup
  %1491 = extractvalue { ptr, i32 } %1490, 0
  store ptr %1491, ptr %5, align 8
  %1492 = extractvalue { ptr, i32 } %1490, 1
  store i32 %1492, ptr %6, align 4
  br label %1502

1493:                                             ; preds = %1415, %1414
  %1494 = landingpad { ptr, i32 }
          cleanup
  %1495 = extractvalue { ptr, i32 } %1494, 0
  store ptr %1495, ptr %5, align 8
  %1496 = extractvalue { ptr, i32 } %1494, 1
  store i32 %1496, ptr %6, align 4
  br label %1501

1497:                                             ; preds = %1417, %1416
  %1498 = landingpad { ptr, i32 }
          cleanup
  %1499 = extractvalue { ptr, i32 } %1498, 0
  store ptr %1499, ptr %5, align 8
  %1500 = extractvalue { ptr, i32 } %1498, 1
  store i32 %1500, ptr %6, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #7
  br label %1501

1501:                                             ; preds = %1497, %1493
  call void @llvm.lifetime.end.p0(i64 16, ptr %210) #7
  br label %1502

1502:                                             ; preds = %1501, %1489
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %204) #7
  br label %1503

1503:                                             ; preds = %1502, %1485
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #7
  br label %1504

1504:                                             ; preds = %1503, %1481
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %205) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %204) #7
  br label %1553

1505:                                             ; preds = %1428
  %1506 = landingpad { ptr, i32 }
          cleanup
  %1507 = extractvalue { ptr, i32 } %1506, 0
  store ptr %1507, ptr %5, align 8
  %1508 = extractvalue { ptr, i32 } %1506, 1
  store i32 %1508, ptr %6, align 4
  br label %1528

1509:                                             ; preds = %1436, %1432
  %1510 = landingpad { ptr, i32 }
          cleanup
  %1511 = extractvalue { ptr, i32 } %1510, 0
  store ptr %1511, ptr %5, align 8
  %1512 = extractvalue { ptr, i32 } %1510, 1
  store i32 %1512, ptr %6, align 4
  br label %1527

1513:                                             ; preds = %1437
  %1514 = landingpad { ptr, i32 }
          cleanup
  %1515 = extractvalue { ptr, i32 } %1514, 0
  store ptr %1515, ptr %5, align 8
  %1516 = extractvalue { ptr, i32 } %1514, 1
  store i32 %1516, ptr %6, align 4
  br label %1526

1517:                                             ; preds = %1440, %1439
  %1518 = landingpad { ptr, i32 }
          cleanup
  %1519 = extractvalue { ptr, i32 } %1518, 0
  store ptr %1519, ptr %5, align 8
  %1520 = extractvalue { ptr, i32 } %1518, 1
  store i32 %1520, ptr %6, align 4
  br label %1525

1521:                                             ; preds = %1442, %1441
  %1522 = landingpad { ptr, i32 }
          cleanup
  %1523 = extractvalue { ptr, i32 } %1522, 0
  store ptr %1523, ptr %5, align 8
  %1524 = extractvalue { ptr, i32 } %1522, 1
  store i32 %1524, ptr %6, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  br label %1525

1525:                                             ; preds = %1521, %1517
  call void @llvm.lifetime.end.p0(i64 16, ptr %220) #7
  br label %1526

1526:                                             ; preds = %1525, %1513
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %214) #7
  br label %1527

1527:                                             ; preds = %1526, %1509
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #7
  br label %1528

1528:                                             ; preds = %1527, %1505
  call void @llvm.lifetime.end.p0(i64 1, ptr %217) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %215) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %214) #7
  br label %1553

1529:                                             ; preds = %1453
  %1530 = landingpad { ptr, i32 }
          cleanup
  %1531 = extractvalue { ptr, i32 } %1530, 0
  store ptr %1531, ptr %5, align 8
  %1532 = extractvalue { ptr, i32 } %1530, 1
  store i32 %1532, ptr %6, align 4
  br label %1552

1533:                                             ; preds = %1461, %1457
  %1534 = landingpad { ptr, i32 }
          cleanup
  %1535 = extractvalue { ptr, i32 } %1534, 0
  store ptr %1535, ptr %5, align 8
  %1536 = extractvalue { ptr, i32 } %1534, 1
  store i32 %1536, ptr %6, align 4
  br label %1551

1537:                                             ; preds = %1462
  %1538 = landingpad { ptr, i32 }
          cleanup
  %1539 = extractvalue { ptr, i32 } %1538, 0
  store ptr %1539, ptr %5, align 8
  %1540 = extractvalue { ptr, i32 } %1538, 1
  store i32 %1540, ptr %6, align 4
  br label %1550

1541:                                             ; preds = %1465, %1464
  %1542 = landingpad { ptr, i32 }
          cleanup
  %1543 = extractvalue { ptr, i32 } %1542, 0
  store ptr %1543, ptr %5, align 8
  %1544 = extractvalue { ptr, i32 } %1542, 1
  store i32 %1544, ptr %6, align 4
  br label %1549

1545:                                             ; preds = %1467, %1466
  %1546 = landingpad { ptr, i32 }
          cleanup
  %1547 = extractvalue { ptr, i32 } %1546, 0
  store ptr %1547, ptr %5, align 8
  %1548 = extractvalue { ptr, i32 } %1546, 1
  store i32 %1548, ptr %6, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %1549

1549:                                             ; preds = %1545, %1541
  call void @llvm.lifetime.end.p0(i64 16, ptr %230) #7
  br label %1550

1550:                                             ; preds = %1549, %1537
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %224) #7
  br label %1551

1551:                                             ; preds = %1550, %1533
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #7
  br label %1552

1552:                                             ; preds = %1551, %1529
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %224) #7
  br label %1553

1553:                                             ; preds = %1552, %1528, %1504, %1477
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %197) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #7
  br label %2152

1554:                                             ; preds = %1367
  br label %1555

1555:                                             ; preds = %1596, %1554
  %1556 = 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) %232, ptr noundef @.str.401, i64 noundef 92)
          to label %1557 unwind label %1835

1557:                                             ; preds = %1555
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %1558 unwind label %1835

1558:                                             ; preds = %1557
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1556, ptr noundef %232, i64 noundef 131, ptr noundef %233)
          to label %1559 unwind label %1835

1559:                                             ; preds = %1558
  call void @llvm.lifetime.start.p0(i64 24, ptr %234) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %235) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %236) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %237) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %239) #7
  %1560 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %192) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %238, ptr noundef nonnull align 1 dereferenceable(1) %239, ptr noundef nonnull align 8 dereferenceable(8) %1560)
          to label %1561 unwind label %1839

1561:                                             ; preds = %1559
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #7
  store double 0.000000e+00, ptr %240, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %237, ptr noundef nonnull align 1 dereferenceable(1) %238, ptr noundef nonnull align 8 dereferenceable(8) %240)
          to label %1562 unwind label %1843

1562:                                             ; preds = %1561
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %236, ptr noundef nonnull align 8 dereferenceable(16) %237)
          to label %1563 unwind label %1843

1563:                                             ; preds = %1562
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #7
  %1564 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1565 unwind label %1847

1565:                                             ; preds = %1563
  %1566 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %241, i32 0, i32 0
  store double %1564, ptr %1566, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %235, ptr noundef nonnull align 8 dereferenceable(33) %236, ptr noundef nonnull align 8 dereferenceable(8) %241)
          to label %1567 unwind label %1847

1567:                                             ; preds = %1565
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %234, ptr noundef nonnull align 8 dereferenceable(33) %235)
          to label %1568 unwind label %1851

1568:                                             ; preds = %1567
  call void @llvm.lifetime.start.p0(i64 32, ptr %242) #7
  %1569 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1570 unwind label %1855

1570:                                             ; preds = %1568
  call void @llvm.lifetime.start.p0(i64 16, ptr %243) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %243, ptr noundef @.str.407, i64 noundef 36)
          to label %1571 unwind label %1859

1571:                                             ; preds = %1570
  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.337") align 8 %242, ptr noundef nonnull align 8 dereferenceable(9) %1569, ptr noundef nonnull align 8 dereferenceable(16) %243)
          to label %1572 unwind label %1859

1572:                                             ; preds = %1571
  %1573 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1574 unwind label %1863

1574:                                             ; preds = %1572
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #7
  %1575 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1576 unwind label %1867

1576:                                             ; preds = %1574
  %1577 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %244, i32 0, i32 0
  store double %1575, ptr %1577, align 8
  %1578 = 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) %1573, ptr noundef nonnull align 8 dereferenceable(8) %244)
          to label %1579 unwind label %1867

1579:                                             ; preds = %1576
  %1580 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %242, ptr noundef nonnull align 8 dereferenceable(9) %1578)
          to label %1581 unwind label %1867

1581:                                             ; preds = %1579
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %245, ptr noundef @.str.401, i64 noundef 92)
          to label %1582 unwind label %1867

1582:                                             ; preds = %1581
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %247, i32 noundef 1)
          to label %1583 unwind label %1871

1583:                                             ; preds = %1582
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #7
  %1584 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1585 unwind label %1875

1585:                                             ; preds = %1583
  %1586 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %248, i32 0, i32 0
  store double %1584, ptr %1586, align 8
  %1587 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %247, ptr noundef nonnull align 8 dereferenceable(8) %248)
          to label %1588 unwind label %1875

1588:                                             ; preds = %1585
  %1589 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %246, i32 0, i32 0
  store i32 %1587, ptr %1589, align 4
  %1590 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %246)
          to label %1591 unwind label %1875

1591:                                             ; preds = %1588
  %1592 = 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) %234, ptr noundef nonnull align 8 dereferenceable(9) %1580, ptr noundef %245, i64 noundef 131, i32 noundef 1, i32 noundef %1590, i64 noundef 0)
          to label %1593 unwind label %1875

1593:                                             ; preds = %1591
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %234) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %235) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %236) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %237) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %236) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %234) #7
  br label %1594

1594:                                             ; preds = %1593
  %1595 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1596 unwind label %1835

1596:                                             ; preds = %1594
  br i1 %1595, label %1555, label %1597, !llvm.loop !34

1597:                                             ; preds = %1596
  br label %1598

1598:                                             ; preds = %1639, %1597
  %1599 = 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) %249, ptr noundef @.str.401, i64 noundef 92)
          to label %1600 unwind label %1835

1600:                                             ; preds = %1598
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %250)
          to label %1601 unwind label %1835

1601:                                             ; preds = %1600
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1599, ptr noundef %249, i64 noundef 132, ptr noundef %250)
          to label %1602 unwind label %1835

1602:                                             ; preds = %1601
  call void @llvm.lifetime.start.p0(i64 24, ptr %251) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %252) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %253) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %254) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %255) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %256) #7
  %1603 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %192) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %255, ptr noundef nonnull align 1 dereferenceable(1) %256, ptr noundef nonnull align 8 dereferenceable(8) %1603)
          to label %1604 unwind label %1888

1604:                                             ; preds = %1602
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #7
  store double 0.000000e+00, ptr %257, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %254, ptr noundef nonnull align 1 dereferenceable(1) %255, ptr noundef nonnull align 8 dereferenceable(8) %257)
          to label %1605 unwind label %1892

1605:                                             ; preds = %1604
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %253, ptr noundef nonnull align 8 dereferenceable(16) %254)
          to label %1606 unwind label %1892

1606:                                             ; preds = %1605
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #7
  %1607 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1608 unwind label %1896

1608:                                             ; preds = %1606
  %1609 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %258, i32 0, i32 0
  store double %1607, ptr %1609, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %252, ptr noundef nonnull align 8 dereferenceable(33) %253, ptr noundef nonnull align 8 dereferenceable(8) %258)
          to label %1610 unwind label %1896

1610:                                             ; preds = %1608
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %251, ptr noundef nonnull align 8 dereferenceable(33) %252)
          to label %1611 unwind label %1900

1611:                                             ; preds = %1610
  call void @llvm.lifetime.start.p0(i64 32, ptr %259) #7
  %1612 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1613 unwind label %1904

1613:                                             ; preds = %1611
  call void @llvm.lifetime.start.p0(i64 16, ptr %260) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef @.str.408, i64 noundef 36)
          to label %1614 unwind label %1908

1614:                                             ; preds = %1613
  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.337") align 8 %259, ptr noundef nonnull align 8 dereferenceable(9) %1612, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %1615 unwind label %1908

1615:                                             ; preds = %1614
  %1616 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1617 unwind label %1912

1617:                                             ; preds = %1615
  call void @llvm.lifetime.start.p0(i64 8, ptr %261) #7
  %1618 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1619 unwind label %1916

1619:                                             ; preds = %1617
  %1620 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %261, i32 0, i32 0
  store double %1618, ptr %1620, align 8
  %1621 = 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) %1616, ptr noundef nonnull align 8 dereferenceable(8) %261)
          to label %1622 unwind label %1916

1622:                                             ; preds = %1619
  %1623 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %259, ptr noundef nonnull align 8 dereferenceable(9) %1621)
          to label %1624 unwind label %1916

1624:                                             ; preds = %1622
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %262, ptr noundef @.str.401, i64 noundef 92)
          to label %1625 unwind label %1916

1625:                                             ; preds = %1624
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %264, i32 noundef 1)
          to label %1626 unwind label %1920

1626:                                             ; preds = %1625
  call void @llvm.lifetime.start.p0(i64 8, ptr %265) #7
  %1627 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1628 unwind label %1924

1628:                                             ; preds = %1626
  %1629 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %265, i32 0, i32 0
  store double %1627, ptr %1629, align 8
  %1630 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %264, ptr noundef nonnull align 8 dereferenceable(8) %265)
          to label %1631 unwind label %1924

1631:                                             ; preds = %1628
  %1632 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %263, i32 0, i32 0
  store i32 %1630, ptr %1632, align 4
  %1633 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %263)
          to label %1634 unwind label %1924

1634:                                             ; preds = %1631
  %1635 = 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) %251, ptr noundef nonnull align 8 dereferenceable(9) %1623, ptr noundef %262, i64 noundef 132, i32 noundef 1, i32 noundef %1633, i64 noundef 0)
          to label %1636 unwind label %1924

1636:                                             ; preds = %1634
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %251) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %252) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %253) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %255) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %254) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %253) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %252) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %251) #7
  br label %1637

1637:                                             ; preds = %1636
  %1638 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1639 unwind label %1835

1639:                                             ; preds = %1637
  br i1 %1638, label %1598, label %1640, !llvm.loop !35

1640:                                             ; preds = %1639
  br label %1641

1641:                                             ; preds = %1682, %1640
  %1642 = 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) %266, ptr noundef @.str.401, i64 noundef 92)
          to label %1643 unwind label %1835

1643:                                             ; preds = %1641
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %267)
          to label %1644 unwind label %1835

1644:                                             ; preds = %1643
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1642, ptr noundef %266, i64 noundef 133, ptr noundef %267)
          to label %1645 unwind label %1835

1645:                                             ; preds = %1644
  call void @llvm.lifetime.start.p0(i64 24, ptr %268) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %269) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %270) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %271) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %273) #7
  %1646 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %192) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %272, ptr noundef nonnull align 1 dereferenceable(1) %273, ptr noundef nonnull align 8 dereferenceable(8) %1646)
          to label %1647 unwind label %1937

1647:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 8, ptr %274) #7
  store double 0.000000e+00, ptr %274, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %271, ptr noundef nonnull align 1 dereferenceable(1) %272, ptr noundef nonnull align 8 dereferenceable(8) %274)
          to label %1648 unwind label %1941

1648:                                             ; preds = %1647
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %270, ptr noundef nonnull align 8 dereferenceable(16) %271)
          to label %1649 unwind label %1941

1649:                                             ; preds = %1648
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #7
  %1650 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1651 unwind label %1945

1651:                                             ; preds = %1649
  %1652 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %275, i32 0, i32 0
  store double %1650, ptr %1652, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %269, ptr noundef nonnull align 8 dereferenceable(33) %270, ptr noundef nonnull align 8 dereferenceable(8) %275)
          to label %1653 unwind label %1945

1653:                                             ; preds = %1651
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %268, ptr noundef nonnull align 8 dereferenceable(33) %269)
          to label %1654 unwind label %1949

1654:                                             ; preds = %1653
  call void @llvm.lifetime.start.p0(i64 32, ptr %276) #7
  %1655 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1656 unwind label %1953

1656:                                             ; preds = %1654
  call void @llvm.lifetime.start.p0(i64 16, ptr %277) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %277, ptr noundef @.str.409, i64 noundef 36)
          to label %1657 unwind label %1957

1657:                                             ; preds = %1656
  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.337") align 8 %276, ptr noundef nonnull align 8 dereferenceable(9) %1655, ptr noundef nonnull align 8 dereferenceable(16) %277)
          to label %1658 unwind label %1957

1658:                                             ; preds = %1657
  %1659 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1660 unwind label %1961

1660:                                             ; preds = %1658
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #7
  %1661 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1662 unwind label %1965

1662:                                             ; preds = %1660
  %1663 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %278, i32 0, i32 0
  store double %1661, ptr %1663, align 8
  %1664 = 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) %1659, ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %1665 unwind label %1965

1665:                                             ; preds = %1662
  %1666 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %276, ptr noundef nonnull align 8 dereferenceable(9) %1664)
          to label %1667 unwind label %1965

1667:                                             ; preds = %1665
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %279, ptr noundef @.str.401, i64 noundef 92)
          to label %1668 unwind label %1965

1668:                                             ; preds = %1667
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %281, i32 noundef 1)
          to label %1669 unwind label %1969

1669:                                             ; preds = %1668
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #7
  %1670 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1671 unwind label %1973

1671:                                             ; preds = %1669
  %1672 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %282, i32 0, i32 0
  store double %1670, ptr %1672, align 8
  %1673 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %281, ptr noundef nonnull align 8 dereferenceable(8) %282)
          to label %1674 unwind label %1973

1674:                                             ; preds = %1671
  %1675 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %280, i32 0, i32 0
  store i32 %1673, ptr %1675, align 4
  %1676 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %280)
          to label %1677 unwind label %1973

1677:                                             ; preds = %1674
  %1678 = 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) %268, ptr noundef nonnull align 8 dereferenceable(9) %1666, ptr noundef %279, i64 noundef 133, i32 noundef 1, i32 noundef %1676, i64 noundef 0)
          to label %1679 unwind label %1973

1679:                                             ; preds = %1677
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %277) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %268) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %269) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %270) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %271) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %270) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %269) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %268) #7
  br label %1680

1680:                                             ; preds = %1679
  %1681 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1682 unwind label %1835

1682:                                             ; preds = %1680
  br i1 %1681, label %1641, label %1683, !llvm.loop !36

1683:                                             ; preds = %1682
  br label %1684

1684:                                             ; preds = %1725, %1683
  %1685 = 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) %283, ptr noundef @.str.401, i64 noundef 92)
          to label %1686 unwind label %1835

1686:                                             ; preds = %1684
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %284)
          to label %1687 unwind label %1835

1687:                                             ; preds = %1686
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1685, ptr noundef %283, i64 noundef 135, ptr noundef %284)
          to label %1688 unwind label %1835

1688:                                             ; preds = %1687
  call void @llvm.lifetime.start.p0(i64 24, ptr %285) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %286) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %287) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %288) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %290) #7
  %1689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %193) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %289, ptr noundef nonnull align 1 dereferenceable(1) %290, ptr noundef nonnull align 8 dereferenceable(8) %1689)
          to label %1690 unwind label %1986

1690:                                             ; preds = %1688
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #7
  store double 0.000000e+00, ptr %291, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %288, ptr noundef nonnull align 1 dereferenceable(1) %289, ptr noundef nonnull align 8 dereferenceable(8) %291)
          to label %1691 unwind label %1990

1691:                                             ; preds = %1690
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %287, ptr noundef nonnull align 8 dereferenceable(16) %288)
          to label %1692 unwind label %1990

1692:                                             ; preds = %1691
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #7
  %1693 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1694 unwind label %1994

1694:                                             ; preds = %1692
  %1695 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %292, i32 0, i32 0
  store double %1693, ptr %1695, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %286, ptr noundef nonnull align 8 dereferenceable(33) %287, ptr noundef nonnull align 8 dereferenceable(8) %292)
          to label %1696 unwind label %1994

1696:                                             ; preds = %1694
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %285, ptr noundef nonnull align 8 dereferenceable(33) %286)
          to label %1697 unwind label %1998

1697:                                             ; preds = %1696
  call void @llvm.lifetime.start.p0(i64 32, ptr %293) #7
  %1698 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1699 unwind label %2002

1699:                                             ; preds = %1697
  call void @llvm.lifetime.start.p0(i64 16, ptr %294) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %294, ptr noundef @.str.410, i64 noundef 33)
          to label %1700 unwind label %2006

1700:                                             ; preds = %1699
  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.337") align 8 %293, ptr noundef nonnull align 8 dereferenceable(9) %1698, ptr noundef nonnull align 8 dereferenceable(16) %294)
          to label %1701 unwind label %2006

1701:                                             ; preds = %1700
  %1702 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1703 unwind label %2010

1703:                                             ; preds = %1701
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #7
  %1704 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1705 unwind label %2014

1705:                                             ; preds = %1703
  %1706 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %295, i32 0, i32 0
  store double %1704, ptr %1706, align 8
  %1707 = 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) %1702, ptr noundef nonnull align 8 dereferenceable(8) %295)
          to label %1708 unwind label %2014

1708:                                             ; preds = %1705
  %1709 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %293, ptr noundef nonnull align 8 dereferenceable(9) %1707)
          to label %1710 unwind label %2014

1710:                                             ; preds = %1708
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %296, ptr noundef @.str.401, i64 noundef 92)
          to label %1711 unwind label %2014

1711:                                             ; preds = %1710
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %298, i32 noundef 1)
          to label %1712 unwind label %2018

1712:                                             ; preds = %1711
  call void @llvm.lifetime.start.p0(i64 8, ptr %299) #7
  %1713 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1714 unwind label %2022

1714:                                             ; preds = %1712
  %1715 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %299, i32 0, i32 0
  store double %1713, ptr %1715, align 8
  %1716 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %298, ptr noundef nonnull align 8 dereferenceable(8) %299)
          to label %1717 unwind label %2022

1717:                                             ; preds = %1714
  %1718 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %297, i32 0, i32 0
  store i32 %1716, ptr %1718, align 4
  %1719 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %297)
          to label %1720 unwind label %2022

1720:                                             ; preds = %1717
  %1721 = 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) %285, ptr noundef nonnull align 8 dereferenceable(9) %1709, ptr noundef %296, i64 noundef 135, i32 noundef 1, i32 noundef %1719, i64 noundef 0)
          to label %1722 unwind label %2022

1722:                                             ; preds = %1720
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %294) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %285) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %286) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %287) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %290) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %288) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %287) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %286) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %285) #7
  br label %1723

1723:                                             ; preds = %1722
  %1724 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1725 unwind label %1835

1725:                                             ; preds = %1723
  br i1 %1724, label %1684, label %1726, !llvm.loop !37

1726:                                             ; preds = %1725
  br label %1727

1727:                                             ; preds = %1768, %1726
  %1728 = 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) %300, ptr noundef @.str.401, i64 noundef 92)
          to label %1729 unwind label %1835

1729:                                             ; preds = %1727
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %301)
          to label %1730 unwind label %1835

1730:                                             ; preds = %1729
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1728, ptr noundef %300, i64 noundef 136, ptr noundef %301)
          to label %1731 unwind label %1835

1731:                                             ; preds = %1730
  call void @llvm.lifetime.start.p0(i64 24, ptr %302) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %303) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %304) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %305) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %307) #7
  %1732 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %193) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %306, ptr noundef nonnull align 1 dereferenceable(1) %307, ptr noundef nonnull align 8 dereferenceable(8) %1732)
          to label %1733 unwind label %2035

1733:                                             ; preds = %1731
  call void @llvm.lifetime.start.p0(i64 8, ptr %308) #7
  store double 0.000000e+00, ptr %308, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %305, ptr noundef nonnull align 1 dereferenceable(1) %306, ptr noundef nonnull align 8 dereferenceable(8) %308)
          to label %1734 unwind label %2039

1734:                                             ; preds = %1733
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %304, ptr noundef nonnull align 8 dereferenceable(16) %305)
          to label %1735 unwind label %2039

1735:                                             ; preds = %1734
  call void @llvm.lifetime.start.p0(i64 8, ptr %309) #7
  %1736 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1737 unwind label %2043

1737:                                             ; preds = %1735
  %1738 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %309, i32 0, i32 0
  store double %1736, ptr %1738, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %303, ptr noundef nonnull align 8 dereferenceable(33) %304, ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %1739 unwind label %2043

1739:                                             ; preds = %1737
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %302, ptr noundef nonnull align 8 dereferenceable(33) %303)
          to label %1740 unwind label %2047

1740:                                             ; preds = %1739
  call void @llvm.lifetime.start.p0(i64 32, ptr %310) #7
  %1741 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1742 unwind label %2051

1742:                                             ; preds = %1740
  call void @llvm.lifetime.start.p0(i64 16, ptr %311) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %311, ptr noundef @.str.411, i64 noundef 33)
          to label %1743 unwind label %2055

1743:                                             ; preds = %1742
  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.337") align 8 %310, ptr noundef nonnull align 8 dereferenceable(9) %1741, ptr noundef nonnull align 8 dereferenceable(16) %311)
          to label %1744 unwind label %2055

1744:                                             ; preds = %1743
  %1745 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1746 unwind label %2059

1746:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 8, ptr %312) #7
  %1747 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1748 unwind label %2063

1748:                                             ; preds = %1746
  %1749 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %312, i32 0, i32 0
  store double %1747, ptr %1749, align 8
  %1750 = 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) %1745, ptr noundef nonnull align 8 dereferenceable(8) %312)
          to label %1751 unwind label %2063

1751:                                             ; preds = %1748
  %1752 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %310, ptr noundef nonnull align 8 dereferenceable(9) %1750)
          to label %1753 unwind label %2063

1753:                                             ; preds = %1751
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %313, ptr noundef @.str.401, i64 noundef 92)
          to label %1754 unwind label %2063

1754:                                             ; preds = %1753
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %315, i32 noundef 1)
          to label %1755 unwind label %2067

1755:                                             ; preds = %1754
  call void @llvm.lifetime.start.p0(i64 8, ptr %316) #7
  %1756 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1757 unwind label %2071

1757:                                             ; preds = %1755
  %1758 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %316, i32 0, i32 0
  store double %1756, ptr %1758, align 8
  %1759 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %315, ptr noundef nonnull align 8 dereferenceable(8) %316)
          to label %1760 unwind label %2071

1760:                                             ; preds = %1757
  %1761 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %314, i32 0, i32 0
  store i32 %1759, ptr %1761, align 4
  %1762 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %314)
          to label %1763 unwind label %2071

1763:                                             ; preds = %1760
  %1764 = 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) %302, ptr noundef nonnull align 8 dereferenceable(9) %1752, ptr noundef %313, i64 noundef 136, i32 noundef 1, i32 noundef %1762, i64 noundef 0)
          to label %1765 unwind label %2071

1765:                                             ; preds = %1763
  call void @llvm.lifetime.end.p0(i64 8, ptr %316) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %311) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %302) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %303) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %304) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %305) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %304) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %303) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %302) #7
  br label %1766

1766:                                             ; preds = %1765
  %1767 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1768 unwind label %1835

1768:                                             ; preds = %1766
  br i1 %1767, label %1727, label %1769, !llvm.loop !38

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1811, %1769
  %1771 = 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) %317, ptr noundef @.str.401, i64 noundef 92)
          to label %1772 unwind label %1835

1772:                                             ; preds = %1770
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %318)
          to label %1773 unwind label %1835

1773:                                             ; preds = %1772
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1771, ptr noundef %317, i64 noundef 137, ptr noundef %318)
          to label %1774 unwind label %1835

1774:                                             ; preds = %1773
  call void @llvm.lifetime.start.p0(i64 24, ptr %319) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %320) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %321) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %322) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %323) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %324) #7
  %1775 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %193) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %323, ptr noundef nonnull align 1 dereferenceable(1) %324, ptr noundef nonnull align 8 dereferenceable(8) %1775)
          to label %1776 unwind label %2084

1776:                                             ; preds = %1774
  call void @llvm.lifetime.start.p0(i64 8, ptr %325) #7
  store double 0.000000e+00, ptr %325, align 8, !tbaa !9
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %322, ptr noundef nonnull align 1 dereferenceable(1) %323, ptr noundef nonnull align 8 dereferenceable(8) %325)
          to label %1777 unwind label %2088

1777:                                             ; preds = %1776
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %321, ptr noundef nonnull align 8 dereferenceable(16) %322)
          to label %1778 unwind label %2088

1778:                                             ; preds = %1777
  call void @llvm.lifetime.start.p0(i64 8, ptr %326) #7
  %1779 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1780 unwind label %2092

1780:                                             ; preds = %1778
  %1781 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %326, i32 0, i32 0
  store double %1779, ptr %1781, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %320, ptr noundef nonnull align 8 dereferenceable(33) %321, ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %1782 unwind label %2092

1782:                                             ; preds = %1780
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %319, ptr noundef nonnull align 8 dereferenceable(33) %320)
          to label %1783 unwind label %2096

1783:                                             ; preds = %1782
  call void @llvm.lifetime.start.p0(i64 32, ptr %327) #7
  %1784 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1785 unwind label %2100

1785:                                             ; preds = %1783
  call void @llvm.lifetime.start.p0(i64 16, ptr %328) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %328, ptr noundef @.str.412, i64 noundef 33)
          to label %1786 unwind label %2104

1786:                                             ; preds = %1785
  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.337") align 8 %327, ptr noundef nonnull align 8 dereferenceable(9) %1784, ptr noundef nonnull align 8 dereferenceable(16) %328)
          to label %1787 unwind label %2104

1787:                                             ; preds = %1786
  %1788 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1789 unwind label %2108

1789:                                             ; preds = %1787
  call void @llvm.lifetime.start.p0(i64 8, ptr %329) #7
  %1790 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1791 unwind label %2112

1791:                                             ; preds = %1789
  %1792 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %329, i32 0, i32 0
  store double %1790, ptr %1792, align 8
  %1793 = 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) %1788, ptr noundef nonnull align 8 dereferenceable(8) %329)
          to label %1794 unwind label %2112

1794:                                             ; preds = %1791
  %1795 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %327, ptr noundef nonnull align 8 dereferenceable(9) %1793)
          to label %1796 unwind label %2112

1796:                                             ; preds = %1794
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %330, ptr noundef @.str.401, i64 noundef 92)
          to label %1797 unwind label %2112

1797:                                             ; preds = %1796
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #7
  invoke void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %332, i32 noundef 1)
          to label %1798 unwind label %2116

1798:                                             ; preds = %1797
  call void @llvm.lifetime.start.p0(i64 8, ptr %333) #7
  %1799 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1800 unwind label %2120

1800:                                             ; preds = %1798
  %1801 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::tolerance_manip", ptr %333, i32 0, i32 0
  store double %1799, ptr %1801, align 8
  %1802 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %332, ptr noundef nonnull align 8 dereferenceable(8) %333)
          to label %1803 unwind label %2120

1803:                                             ; preds = %1800
  %1804 = getelementptr inbounds %"struct.boost::test_tools::tt_detail::assertion_type", ptr %331, i32 0, i32 0
  store i32 %1802, ptr %1804, align 4
  %1805 = invoke noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %331)
          to label %1806 unwind label %2120

1806:                                             ; preds = %1803
  %1807 = 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) %319, ptr noundef nonnull align 8 dereferenceable(9) %1795, ptr noundef %330, i64 noundef 137, i32 noundef 1, i32 noundef %1805, i64 noundef 0)
          to label %1808 unwind label %2120

1808:                                             ; preds = %1806
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %329) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %328) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %327) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %319) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %320) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %321) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %324) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %323) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %322) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %321) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %320) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %319) #7
  br label %1809

1809:                                             ; preds = %1808
  %1810 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1811 unwind label %1835

1811:                                             ; preds = %1809
  br i1 %1810, label %1770, label %1812, !llvm.loop !39

1812:                                             ; preds = %1811
  br label %1813

1813:                                             ; preds = %1830, %1812
  %1814 = 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) %334, ptr noundef @.str.401, i64 noundef 92)
          to label %1815 unwind label %1835

1815:                                             ; preds = %1813
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %335)
          to label %1816 unwind label %1835

1816:                                             ; preds = %1815
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1814, ptr noundef %334, i64 noundef 140, ptr noundef %335)
          to label %1817 unwind label %1835

1817:                                             ; preds = %1816
  call void @llvm.lifetime.start.p0(i64 24, ptr %336) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %337) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %338) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %339) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %338, ptr noundef nonnull align 1 dereferenceable(1) %339, ptr noundef nonnull align 8 dereferenceable(8) %183)
          to label %1818 unwind label %2133

1818:                                             ; preds = %1817
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEgeIS4_EENS1_11binary_exprIS5_T_NS1_2op2GEIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion::binary_expr.347") align 8 %337, ptr noundef nonnull align 1 dereferenceable(1) %338, ptr noundef nonnull align 8 dereferenceable(8) %194)
          to label %1819 unwind label %2133

1819:                                             ; preds = %1818
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEES4_NS1_2op2GEIddvEEE8evaluateEb(ptr dead_on_unwind writable sret(%"class.boost::test_tools::assertion_result") align 8 %336, ptr noundef nonnull align 8 dereferenceable(16) %337, i1 noundef zeroext false)
          to label %1820 unwind label %2133

1820:                                             ; preds = %1819
  call void @llvm.lifetime.start.p0(i64 32, ptr %340) #7
  %1821 = invoke noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
          to label %1822 unwind label %2137

1822:                                             ; preds = %1820
  call void @llvm.lifetime.start.p0(i64 16, ptr %341) #7
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %341, ptr noundef @.str.414, i64 noundef 31)
          to label %1823 unwind label %2141

1823:                                             ; preds = %1822
  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.337") align 8 %340, ptr noundef nonnull align 8 dereferenceable(9) %1821, ptr noundef nonnull align 8 dereferenceable(16) %341)
          to label %1824 unwind label %2141

1824:                                             ; preds = %1823
  invoke void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %342, ptr noundef @.str.401, i64 noundef 92)
          to label %1825 unwind label %2145

1825:                                             ; preds = %1824
  %1826 = 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) %336, ptr noundef nonnull align 8 dereferenceable(9) %340, ptr noundef %342, i64 noundef 140, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %1827 unwind label %2145

1827:                                             ; preds = %1825
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %340) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %336) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %339) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %338) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %337) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %336) #7
  br label %1828

1828:                                             ; preds = %1827
  %1829 = invoke noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
          to label %1830 unwind label %1835

1830:                                             ; preds = %1828
  br i1 %1829, label %1813, label %1831, !llvm.loop !40

1831:                                             ; preds = %1830
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %192) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr %191) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %190) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr %190) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %184) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #7
  br label %1832

1832:                                             ; preds = %1831
  %1833 = load i64, ptr %182, align 8, !tbaa !11
  %1834 = add i64 %1833, 1
  store i64 %1834, ptr %182, align 8, !tbaa !11
  br label %1285, !llvm.loop !41

1835:                                             ; preds = %1828, %1816, %1815, %1813, %1809, %1773, %1772, %1770, %1766, %1730, %1729, %1727, %1723, %1687, %1686, %1684, %1680, %1644, %1643, %1641, %1637, %1601, %1600, %1598, %1594, %1558, %1557, %1555
  %1836 = landingpad { ptr, i32 }
          cleanup
  %1837 = extractvalue { ptr, i32 } %1836, 0
  store ptr %1837, ptr %5, align 8
  %1838 = extractvalue { ptr, i32 } %1836, 1
  store i32 %1838, ptr %6, align 4
  br label %2152

1839:                                             ; preds = %1559
  %1840 = landingpad { ptr, i32 }
          cleanup
  %1841 = extractvalue { ptr, i32 } %1840, 0
  store ptr %1841, ptr %5, align 8
  %1842 = extractvalue { ptr, i32 } %1840, 1
  store i32 %1842, ptr %6, align 4
  br label %1887

1843:                                             ; preds = %1562, %1561
  %1844 = landingpad { ptr, i32 }
          cleanup
  %1845 = extractvalue { ptr, i32 } %1844, 0
  store ptr %1845, ptr %5, align 8
  %1846 = extractvalue { ptr, i32 } %1844, 1
  store i32 %1846, ptr %6, align 4
  br label %1886

1847:                                             ; preds = %1565, %1563
  %1848 = landingpad { ptr, i32 }
          cleanup
  %1849 = extractvalue { ptr, i32 } %1848, 0
  store ptr %1849, ptr %5, align 8
  %1850 = extractvalue { ptr, i32 } %1848, 1
  store i32 %1850, ptr %6, align 4
  br label %1885

1851:                                             ; preds = %1567
  %1852 = landingpad { ptr, i32 }
          cleanup
  %1853 = extractvalue { ptr, i32 } %1852, 0
  store ptr %1853, ptr %5, align 8
  %1854 = extractvalue { ptr, i32 } %1852, 1
  store i32 %1854, ptr %6, align 4
  br label %1884

1855:                                             ; preds = %1568
  %1856 = landingpad { ptr, i32 }
          cleanup
  %1857 = extractvalue { ptr, i32 } %1856, 0
  store ptr %1857, ptr %5, align 8
  %1858 = extractvalue { ptr, i32 } %1856, 1
  store i32 %1858, ptr %6, align 4
  br label %1883

1859:                                             ; preds = %1571, %1570
  %1860 = landingpad { ptr, i32 }
          cleanup
  %1861 = extractvalue { ptr, i32 } %1860, 0
  store ptr %1861, ptr %5, align 8
  %1862 = extractvalue { ptr, i32 } %1860, 1
  store i32 %1862, ptr %6, align 4
  br label %1882

1863:                                             ; preds = %1572
  %1864 = landingpad { ptr, i32 }
          cleanup
  %1865 = extractvalue { ptr, i32 } %1864, 0
  store ptr %1865, ptr %5, align 8
  %1866 = extractvalue { ptr, i32 } %1864, 1
  store i32 %1866, ptr %6, align 4
  br label %1881

1867:                                             ; preds = %1581, %1579, %1576, %1574
  %1868 = landingpad { ptr, i32 }
          cleanup
  %1869 = extractvalue { ptr, i32 } %1868, 0
  store ptr %1869, ptr %5, align 8
  %1870 = extractvalue { ptr, i32 } %1868, 1
  store i32 %1870, ptr %6, align 4
  br label %1880

1871:                                             ; preds = %1582
  %1872 = landingpad { ptr, i32 }
          cleanup
  %1873 = extractvalue { ptr, i32 } %1872, 0
  store ptr %1873, ptr %5, align 8
  %1874 = extractvalue { ptr, i32 } %1872, 1
  store i32 %1874, ptr %6, align 4
  br label %1879

1875:                                             ; preds = %1591, %1588, %1585, %1583
  %1876 = landingpad { ptr, i32 }
          cleanup
  %1877 = extractvalue { ptr, i32 } %1876, 0
  store ptr %1877, ptr %5, align 8
  %1878 = extractvalue { ptr, i32 } %1876, 1
  store i32 %1878, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #7
  br label %1879

1879:                                             ; preds = %1875, %1871
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #7
  br label %1880

1880:                                             ; preds = %1879, %1867
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #7
  br label %1881

1881:                                             ; preds = %1880, %1863
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  br label %1882

1882:                                             ; preds = %1881, %1859
  call void @llvm.lifetime.end.p0(i64 16, ptr %243) #7
  br label %1883

1883:                                             ; preds = %1882, %1855
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %234) #7
  br label %1884

1884:                                             ; preds = %1883, %1851
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %235) #7
  br label %1885

1885:                                             ; preds = %1884, %1847
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %236) #7
  br label %1886

1886:                                             ; preds = %1885, %1843
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #7
  br label %1887

1887:                                             ; preds = %1886, %1839
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %237) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %236) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %234) #7
  br label %2152

1888:                                             ; preds = %1602
  %1889 = landingpad { ptr, i32 }
          cleanup
  %1890 = extractvalue { ptr, i32 } %1889, 0
  store ptr %1890, ptr %5, align 8
  %1891 = extractvalue { ptr, i32 } %1889, 1
  store i32 %1891, ptr %6, align 4
  br label %1936

1892:                                             ; preds = %1605, %1604
  %1893 = landingpad { ptr, i32 }
          cleanup
  %1894 = extractvalue { ptr, i32 } %1893, 0
  store ptr %1894, ptr %5, align 8
  %1895 = extractvalue { ptr, i32 } %1893, 1
  store i32 %1895, ptr %6, align 4
  br label %1935

1896:                                             ; preds = %1608, %1606
  %1897 = landingpad { ptr, i32 }
          cleanup
  %1898 = extractvalue { ptr, i32 } %1897, 0
  store ptr %1898, ptr %5, align 8
  %1899 = extractvalue { ptr, i32 } %1897, 1
  store i32 %1899, ptr %6, align 4
  br label %1934

1900:                                             ; preds = %1610
  %1901 = landingpad { ptr, i32 }
          cleanup
  %1902 = extractvalue { ptr, i32 } %1901, 0
  store ptr %1902, ptr %5, align 8
  %1903 = extractvalue { ptr, i32 } %1901, 1
  store i32 %1903, ptr %6, align 4
  br label %1933

1904:                                             ; preds = %1611
  %1905 = landingpad { ptr, i32 }
          cleanup
  %1906 = extractvalue { ptr, i32 } %1905, 0
  store ptr %1906, ptr %5, align 8
  %1907 = extractvalue { ptr, i32 } %1905, 1
  store i32 %1907, ptr %6, align 4
  br label %1932

1908:                                             ; preds = %1614, %1613
  %1909 = landingpad { ptr, i32 }
          cleanup
  %1910 = extractvalue { ptr, i32 } %1909, 0
  store ptr %1910, ptr %5, align 8
  %1911 = extractvalue { ptr, i32 } %1909, 1
  store i32 %1911, ptr %6, align 4
  br label %1931

1912:                                             ; preds = %1615
  %1913 = landingpad { ptr, i32 }
          cleanup
  %1914 = extractvalue { ptr, i32 } %1913, 0
  store ptr %1914, ptr %5, align 8
  %1915 = extractvalue { ptr, i32 } %1913, 1
  store i32 %1915, ptr %6, align 4
  br label %1930

1916:                                             ; preds = %1624, %1622, %1619, %1617
  %1917 = landingpad { ptr, i32 }
          cleanup
  %1918 = extractvalue { ptr, i32 } %1917, 0
  store ptr %1918, ptr %5, align 8
  %1919 = extractvalue { ptr, i32 } %1917, 1
  store i32 %1919, ptr %6, align 4
  br label %1929

1920:                                             ; preds = %1625
  %1921 = landingpad { ptr, i32 }
          cleanup
  %1922 = extractvalue { ptr, i32 } %1921, 0
  store ptr %1922, ptr %5, align 8
  %1923 = extractvalue { ptr, i32 } %1921, 1
  store i32 %1923, ptr %6, align 4
  br label %1928

1924:                                             ; preds = %1634, %1631, %1628, %1626
  %1925 = landingpad { ptr, i32 }
          cleanup
  %1926 = extractvalue { ptr, i32 } %1925, 0
  store ptr %1926, ptr %5, align 8
  %1927 = extractvalue { ptr, i32 } %1925, 1
  store i32 %1927, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #7
  br label %1928

1928:                                             ; preds = %1924, %1920
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #7
  br label %1929

1929:                                             ; preds = %1928, %1916
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #7
  br label %1930

1930:                                             ; preds = %1929, %1912
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  br label %1931

1931:                                             ; preds = %1930, %1908
  call void @llvm.lifetime.end.p0(i64 16, ptr %260) #7
  br label %1932

1932:                                             ; preds = %1931, %1904
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %251) #7
  br label %1933

1933:                                             ; preds = %1932, %1900
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %252) #7
  br label %1934

1934:                                             ; preds = %1933, %1896
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %253) #7
  br label %1935

1935:                                             ; preds = %1934, %1892
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #7
  br label %1936

1936:                                             ; preds = %1935, %1888
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %255) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %254) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %253) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %252) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %251) #7
  br label %2152

1937:                                             ; preds = %1645
  %1938 = landingpad { ptr, i32 }
          cleanup
  %1939 = extractvalue { ptr, i32 } %1938, 0
  store ptr %1939, ptr %5, align 8
  %1940 = extractvalue { ptr, i32 } %1938, 1
  store i32 %1940, ptr %6, align 4
  br label %1985

1941:                                             ; preds = %1648, %1647
  %1942 = landingpad { ptr, i32 }
          cleanup
  %1943 = extractvalue { ptr, i32 } %1942, 0
  store ptr %1943, ptr %5, align 8
  %1944 = extractvalue { ptr, i32 } %1942, 1
  store i32 %1944, ptr %6, align 4
  br label %1984

1945:                                             ; preds = %1651, %1649
  %1946 = landingpad { ptr, i32 }
          cleanup
  %1947 = extractvalue { ptr, i32 } %1946, 0
  store ptr %1947, ptr %5, align 8
  %1948 = extractvalue { ptr, i32 } %1946, 1
  store i32 %1948, ptr %6, align 4
  br label %1983

1949:                                             ; preds = %1653
  %1950 = landingpad { ptr, i32 }
          cleanup
  %1951 = extractvalue { ptr, i32 } %1950, 0
  store ptr %1951, ptr %5, align 8
  %1952 = extractvalue { ptr, i32 } %1950, 1
  store i32 %1952, ptr %6, align 4
  br label %1982

1953:                                             ; preds = %1654
  %1954 = landingpad { ptr, i32 }
          cleanup
  %1955 = extractvalue { ptr, i32 } %1954, 0
  store ptr %1955, ptr %5, align 8
  %1956 = extractvalue { ptr, i32 } %1954, 1
  store i32 %1956, ptr %6, align 4
  br label %1981

1957:                                             ; preds = %1657, %1656
  %1958 = landingpad { ptr, i32 }
          cleanup
  %1959 = extractvalue { ptr, i32 } %1958, 0
  store ptr %1959, ptr %5, align 8
  %1960 = extractvalue { ptr, i32 } %1958, 1
  store i32 %1960, ptr %6, align 4
  br label %1980

1961:                                             ; preds = %1658
  %1962 = landingpad { ptr, i32 }
          cleanup
  %1963 = extractvalue { ptr, i32 } %1962, 0
  store ptr %1963, ptr %5, align 8
  %1964 = extractvalue { ptr, i32 } %1962, 1
  store i32 %1964, ptr %6, align 4
  br label %1979

1965:                                             ; preds = %1667, %1665, %1662, %1660
  %1966 = landingpad { ptr, i32 }
          cleanup
  %1967 = extractvalue { ptr, i32 } %1966, 0
  store ptr %1967, ptr %5, align 8
  %1968 = extractvalue { ptr, i32 } %1966, 1
  store i32 %1968, ptr %6, align 4
  br label %1978

1969:                                             ; preds = %1668
  %1970 = landingpad { ptr, i32 }
          cleanup
  %1971 = extractvalue { ptr, i32 } %1970, 0
  store ptr %1971, ptr %5, align 8
  %1972 = extractvalue { ptr, i32 } %1970, 1
  store i32 %1972, ptr %6, align 4
  br label %1977

1973:                                             ; preds = %1677, %1674, %1671, %1669
  %1974 = landingpad { ptr, i32 }
          cleanup
  %1975 = extractvalue { ptr, i32 } %1974, 0
  store ptr %1975, ptr %5, align 8
  %1976 = extractvalue { ptr, i32 } %1974, 1
  store i32 %1976, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #7
  br label %1977

1977:                                             ; preds = %1973, %1969
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #7
  br label %1978

1978:                                             ; preds = %1977, %1965
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #7
  br label %1979

1979:                                             ; preds = %1978, %1961
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #7
  br label %1980

1980:                                             ; preds = %1979, %1957
  call void @llvm.lifetime.end.p0(i64 16, ptr %277) #7
  br label %1981

1981:                                             ; preds = %1980, %1953
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %268) #7
  br label %1982

1982:                                             ; preds = %1981, %1949
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %269) #7
  br label %1983

1983:                                             ; preds = %1982, %1945
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %270) #7
  br label %1984

1984:                                             ; preds = %1983, %1941
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #7
  br label %1985

1985:                                             ; preds = %1984, %1937
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %271) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %270) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %269) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %268) #7
  br label %2152

1986:                                             ; preds = %1688
  %1987 = landingpad { ptr, i32 }
          cleanup
  %1988 = extractvalue { ptr, i32 } %1987, 0
  store ptr %1988, ptr %5, align 8
  %1989 = extractvalue { ptr, i32 } %1987, 1
  store i32 %1989, ptr %6, align 4
  br label %2034

1990:                                             ; preds = %1691, %1690
  %1991 = landingpad { ptr, i32 }
          cleanup
  %1992 = extractvalue { ptr, i32 } %1991, 0
  store ptr %1992, ptr %5, align 8
  %1993 = extractvalue { ptr, i32 } %1991, 1
  store i32 %1993, ptr %6, align 4
  br label %2033

1994:                                             ; preds = %1694, %1692
  %1995 = landingpad { ptr, i32 }
          cleanup
  %1996 = extractvalue { ptr, i32 } %1995, 0
  store ptr %1996, ptr %5, align 8
  %1997 = extractvalue { ptr, i32 } %1995, 1
  store i32 %1997, ptr %6, align 4
  br label %2032

1998:                                             ; preds = %1696
  %1999 = landingpad { ptr, i32 }
          cleanup
  %2000 = extractvalue { ptr, i32 } %1999, 0
  store ptr %2000, ptr %5, align 8
  %2001 = extractvalue { ptr, i32 } %1999, 1
  store i32 %2001, ptr %6, align 4
  br label %2031

2002:                                             ; preds = %1697
  %2003 = landingpad { ptr, i32 }
          cleanup
  %2004 = extractvalue { ptr, i32 } %2003, 0
  store ptr %2004, ptr %5, align 8
  %2005 = extractvalue { ptr, i32 } %2003, 1
  store i32 %2005, ptr %6, align 4
  br label %2030

2006:                                             ; preds = %1700, %1699
  %2007 = landingpad { ptr, i32 }
          cleanup
  %2008 = extractvalue { ptr, i32 } %2007, 0
  store ptr %2008, ptr %5, align 8
  %2009 = extractvalue { ptr, i32 } %2007, 1
  store i32 %2009, ptr %6, align 4
  br label %2029

2010:                                             ; preds = %1701
  %2011 = landingpad { ptr, i32 }
          cleanup
  %2012 = extractvalue { ptr, i32 } %2011, 0
  store ptr %2012, ptr %5, align 8
  %2013 = extractvalue { ptr, i32 } %2011, 1
  store i32 %2013, ptr %6, align 4
  br label %2028

2014:                                             ; preds = %1710, %1708, %1705, %1703
  %2015 = landingpad { ptr, i32 }
          cleanup
  %2016 = extractvalue { ptr, i32 } %2015, 0
  store ptr %2016, ptr %5, align 8
  %2017 = extractvalue { ptr, i32 } %2015, 1
  store i32 %2017, ptr %6, align 4
  br label %2027

2018:                                             ; preds = %1711
  %2019 = landingpad { ptr, i32 }
          cleanup
  %2020 = extractvalue { ptr, i32 } %2019, 0
  store ptr %2020, ptr %5, align 8
  %2021 = extractvalue { ptr, i32 } %2019, 1
  store i32 %2021, ptr %6, align 4
  br label %2026

2022:                                             ; preds = %1720, %1717, %1714, %1712
  %2023 = landingpad { ptr, i32 }
          cleanup
  %2024 = extractvalue { ptr, i32 } %2023, 0
  store ptr %2024, ptr %5, align 8
  %2025 = extractvalue { ptr, i32 } %2023, 1
  store i32 %2025, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #7
  br label %2026

2026:                                             ; preds = %2022, %2018
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #7
  br label %2027

2027:                                             ; preds = %2026, %2014
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #7
  br label %2028

2028:                                             ; preds = %2027, %2010
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  br label %2029

2029:                                             ; preds = %2028, %2006
  call void @llvm.lifetime.end.p0(i64 16, ptr %294) #7
  br label %2030

2030:                                             ; preds = %2029, %2002
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %285) #7
  br label %2031

2031:                                             ; preds = %2030, %1998
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %286) #7
  br label %2032

2032:                                             ; preds = %2031, %1994
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %287) #7
  br label %2033

2033:                                             ; preds = %2032, %1990
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #7
  br label %2034

2034:                                             ; preds = %2033, %1986
  call void @llvm.lifetime.end.p0(i64 1, ptr %290) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %288) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %287) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %286) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %285) #7
  br label %2152

2035:                                             ; preds = %1731
  %2036 = landingpad { ptr, i32 }
          cleanup
  %2037 = extractvalue { ptr, i32 } %2036, 0
  store ptr %2037, ptr %5, align 8
  %2038 = extractvalue { ptr, i32 } %2036, 1
  store i32 %2038, ptr %6, align 4
  br label %2083

2039:                                             ; preds = %1734, %1733
  %2040 = landingpad { ptr, i32 }
          cleanup
  %2041 = extractvalue { ptr, i32 } %2040, 0
  store ptr %2041, ptr %5, align 8
  %2042 = extractvalue { ptr, i32 } %2040, 1
  store i32 %2042, ptr %6, align 4
  br label %2082

2043:                                             ; preds = %1737, %1735
  %2044 = landingpad { ptr, i32 }
          cleanup
  %2045 = extractvalue { ptr, i32 } %2044, 0
  store ptr %2045, ptr %5, align 8
  %2046 = extractvalue { ptr, i32 } %2044, 1
  store i32 %2046, ptr %6, align 4
  br label %2081

2047:                                             ; preds = %1739
  %2048 = landingpad { ptr, i32 }
          cleanup
  %2049 = extractvalue { ptr, i32 } %2048, 0
  store ptr %2049, ptr %5, align 8
  %2050 = extractvalue { ptr, i32 } %2048, 1
  store i32 %2050, ptr %6, align 4
  br label %2080

2051:                                             ; preds = %1740
  %2052 = landingpad { ptr, i32 }
          cleanup
  %2053 = extractvalue { ptr, i32 } %2052, 0
  store ptr %2053, ptr %5, align 8
  %2054 = extractvalue { ptr, i32 } %2052, 1
  store i32 %2054, ptr %6, align 4
  br label %2079

2055:                                             ; preds = %1743, %1742
  %2056 = landingpad { ptr, i32 }
          cleanup
  %2057 = extractvalue { ptr, i32 } %2056, 0
  store ptr %2057, ptr %5, align 8
  %2058 = extractvalue { ptr, i32 } %2056, 1
  store i32 %2058, ptr %6, align 4
  br label %2078

2059:                                             ; preds = %1744
  %2060 = landingpad { ptr, i32 }
          cleanup
  %2061 = extractvalue { ptr, i32 } %2060, 0
  store ptr %2061, ptr %5, align 8
  %2062 = extractvalue { ptr, i32 } %2060, 1
  store i32 %2062, ptr %6, align 4
  br label %2077

2063:                                             ; preds = %1753, %1751, %1748, %1746
  %2064 = landingpad { ptr, i32 }
          cleanup
  %2065 = extractvalue { ptr, i32 } %2064, 0
  store ptr %2065, ptr %5, align 8
  %2066 = extractvalue { ptr, i32 } %2064, 1
  store i32 %2066, ptr %6, align 4
  br label %2076

2067:                                             ; preds = %1754
  %2068 = landingpad { ptr, i32 }
          cleanup
  %2069 = extractvalue { ptr, i32 } %2068, 0
  store ptr %2069, ptr %5, align 8
  %2070 = extractvalue { ptr, i32 } %2068, 1
  store i32 %2070, ptr %6, align 4
  br label %2075

2071:                                             ; preds = %1763, %1760, %1757, %1755
  %2072 = landingpad { ptr, i32 }
          cleanup
  %2073 = extractvalue { ptr, i32 } %2072, 0
  store ptr %2073, ptr %5, align 8
  %2074 = extractvalue { ptr, i32 } %2072, 1
  store i32 %2074, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %316) #7
  br label %2075

2075:                                             ; preds = %2071, %2067
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #7
  br label %2076

2076:                                             ; preds = %2075, %2063
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #7
  br label %2077

2077:                                             ; preds = %2076, %2059
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  br label %2078

2078:                                             ; preds = %2077, %2055
  call void @llvm.lifetime.end.p0(i64 16, ptr %311) #7
  br label %2079

2079:                                             ; preds = %2078, %2051
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %302) #7
  br label %2080

2080:                                             ; preds = %2079, %2047
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %303) #7
  br label %2081

2081:                                             ; preds = %2080, %2043
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %304) #7
  br label %2082

2082:                                             ; preds = %2081, %2039
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #7
  br label %2083

2083:                                             ; preds = %2082, %2035
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %305) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %304) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %303) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %302) #7
  br label %2152

2084:                                             ; preds = %1774
  %2085 = landingpad { ptr, i32 }
          cleanup
  %2086 = extractvalue { ptr, i32 } %2085, 0
  store ptr %2086, ptr %5, align 8
  %2087 = extractvalue { ptr, i32 } %2085, 1
  store i32 %2087, ptr %6, align 4
  br label %2132

2088:                                             ; preds = %1777, %1776
  %2089 = landingpad { ptr, i32 }
          cleanup
  %2090 = extractvalue { ptr, i32 } %2089, 0
  store ptr %2090, ptr %5, align 8
  %2091 = extractvalue { ptr, i32 } %2089, 1
  store i32 %2091, ptr %6, align 4
  br label %2131

2092:                                             ; preds = %1780, %1778
  %2093 = landingpad { ptr, i32 }
          cleanup
  %2094 = extractvalue { ptr, i32 } %2093, 0
  store ptr %2094, ptr %5, align 8
  %2095 = extractvalue { ptr, i32 } %2093, 1
  store i32 %2095, ptr %6, align 4
  br label %2130

2096:                                             ; preds = %1782
  %2097 = landingpad { ptr, i32 }
          cleanup
  %2098 = extractvalue { ptr, i32 } %2097, 0
  store ptr %2098, ptr %5, align 8
  %2099 = extractvalue { ptr, i32 } %2097, 1
  store i32 %2099, ptr %6, align 4
  br label %2129

2100:                                             ; preds = %1783
  %2101 = landingpad { ptr, i32 }
          cleanup
  %2102 = extractvalue { ptr, i32 } %2101, 0
  store ptr %2102, ptr %5, align 8
  %2103 = extractvalue { ptr, i32 } %2101, 1
  store i32 %2103, ptr %6, align 4
  br label %2128

2104:                                             ; preds = %1786, %1785
  %2105 = landingpad { ptr, i32 }
          cleanup
  %2106 = extractvalue { ptr, i32 } %2105, 0
  store ptr %2106, ptr %5, align 8
  %2107 = extractvalue { ptr, i32 } %2105, 1
  store i32 %2107, ptr %6, align 4
  br label %2127

2108:                                             ; preds = %1787
  %2109 = landingpad { ptr, i32 }
          cleanup
  %2110 = extractvalue { ptr, i32 } %2109, 0
  store ptr %2110, ptr %5, align 8
  %2111 = extractvalue { ptr, i32 } %2109, 1
  store i32 %2111, ptr %6, align 4
  br label %2126

2112:                                             ; preds = %1796, %1794, %1791, %1789
  %2113 = landingpad { ptr, i32 }
          cleanup
  %2114 = extractvalue { ptr, i32 } %2113, 0
  store ptr %2114, ptr %5, align 8
  %2115 = extractvalue { ptr, i32 } %2113, 1
  store i32 %2115, ptr %6, align 4
  br label %2125

2116:                                             ; preds = %1797
  %2117 = landingpad { ptr, i32 }
          cleanup
  %2118 = extractvalue { ptr, i32 } %2117, 0
  store ptr %2118, ptr %5, align 8
  %2119 = extractvalue { ptr, i32 } %2117, 1
  store i32 %2119, ptr %6, align 4
  br label %2124

2120:                                             ; preds = %1806, %1803, %1800, %1798
  %2121 = landingpad { ptr, i32 }
          cleanup
  %2122 = extractvalue { ptr, i32 } %2121, 0
  store ptr %2122, ptr %5, align 8
  %2123 = extractvalue { ptr, i32 } %2121, 1
  store i32 %2123, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #7
  br label %2124

2124:                                             ; preds = %2120, %2116
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #7
  br label %2125

2125:                                             ; preds = %2124, %2112
  call void @llvm.lifetime.end.p0(i64 8, ptr %329) #7
  br label %2126

2126:                                             ; preds = %2125, %2108
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #7
  br label %2127

2127:                                             ; preds = %2126, %2104
  call void @llvm.lifetime.end.p0(i64 16, ptr %328) #7
  br label %2128

2128:                                             ; preds = %2127, %2100
  call void @llvm.lifetime.end.p0(i64 32, ptr %327) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %319) #7
  br label %2129

2129:                                             ; preds = %2128, %2096
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %320) #7
  br label %2130

2130:                                             ; preds = %2129, %2092
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %321) #7
  br label %2131

2131:                                             ; preds = %2130, %2088
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #7
  br label %2132

2132:                                             ; preds = %2131, %2084
  call void @llvm.lifetime.end.p0(i64 1, ptr %324) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %323) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %322) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %321) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %320) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %319) #7
  br label %2152

2133:                                             ; preds = %1819, %1818, %1817
  %2134 = landingpad { ptr, i32 }
          cleanup
  %2135 = extractvalue { ptr, i32 } %2134, 0
  store ptr %2135, ptr %5, align 8
  %2136 = extractvalue { ptr, i32 } %2134, 1
  store i32 %2136, ptr %6, align 4
  br label %2151

2137:                                             ; preds = %1820
  %2138 = landingpad { ptr, i32 }
          cleanup
  %2139 = extractvalue { ptr, i32 } %2138, 0
  store ptr %2139, ptr %5, align 8
  %2140 = extractvalue { ptr, i32 } %2138, 1
  store i32 %2140, ptr %6, align 4
  br label %2150

2141:                                             ; preds = %1823, %1822
  %2142 = landingpad { ptr, i32 }
          cleanup
  %2143 = extractvalue { ptr, i32 } %2142, 0
  store ptr %2143, ptr %5, align 8
  %2144 = extractvalue { ptr, i32 } %2142, 1
  store i32 %2144, ptr %6, align 4
  br label %2149

2145:                                             ; preds = %1825, %1824
  %2146 = landingpad { ptr, i32 }
          cleanup
  %2147 = extractvalue { ptr, i32 } %2146, 0
  store ptr %2147, ptr %5, align 8
  %2148 = extractvalue { ptr, i32 } %2146, 1
  store i32 %2148, ptr %6, align 4
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  br label %2149

2149:                                             ; preds = %2145, %2141
  call void @llvm.lifetime.end.p0(i64 16, ptr %341) #7
  br label %2150

2150:                                             ; preds = %2149, %2137
  call void @llvm.lifetime.end.p0(i64 32, ptr %340) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %336) #7
  br label %2151

2151:                                             ; preds = %2150, %2133
  call void @llvm.lifetime.end.p0(i64 1, ptr %339) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %338) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %337) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %336) #7
  br label %2152

2152:                                             ; preds = %2151, %2132, %2083, %2034, %1985, %1936, %1887, %1835, %1553
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %192) #7
  br label %2153

2153:                                             ; preds = %2152, %1372
  call void @llvm.lifetime.end.p0(i64 3, ptr %191) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %190) #7
  br label %2154

2154:                                             ; preds = %2153, %1368
  call void @llvm.lifetime.end.p0(i64 352, ptr %190) #7
  br label %2155

2155:                                             ; preds = %2154, %1360
  call void @llvm.lifetime.end.p0(i64 24, ptr %184) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #7
  br label %2157

2156:                                             ; preds = %1288
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 5000, ptr %11) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %9) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  ret void

2157:                                             ; preds = %2155, %1283, %365
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #7
  br label %2158

2158:                                             ; preds = %2157, %361
  call void @llvm.lifetime.end.p0(i64 5000, ptr %11) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %9) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  br label %2159

2159:                                             ; preds = %2158, %360
  %2160 = load ptr, ptr %5, align 8
  %2161 = load i32, ptr %6, align 4
  %2162 = insertvalue { ptr, i32 } poison, ptr %2160, 0
  %2163 = insertvalue { ptr, i32 } %2162, i32 %2161, 1
  resume { ptr, i32 } %2163
}

; 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 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 uwtable
declare dso_local void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Em(ptr noundef nonnull align 8 dereferenceable(5000), i64 noundef) unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, double noundef, double noundef, double noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(5000)) #2 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, double noundef, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2Ebbb(ptr noundef nonnull align 1 dereferenceable(3), i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNK7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE6removeERNS_6SystemIS3_EE(ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(352)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4mathmiIdLm3ELm1EEENS0_6MatrixIT_XT0_EXT1_EEERKS4_S6_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4math13cross_productIdEENS0_6MatrixIT_Lm3ELm1EEERKS4_S6_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(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: 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: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_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 double @_ZN7mjolnir4math1XIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

; 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.337") align 8, ptr noundef nonnull align 8 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16)) #6

; 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 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 double @_ZN7mjolnir4math1YIdEET_RKNS0_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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN7mjolnir4math1ZIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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)) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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: 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)) #6

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_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.343") align 8, ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(8)) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIS4_EENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::binary_expr.345") 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_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_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 void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #4 align 2

; 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 uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEgeIS4_EENS1_11binary_exprIS5_T_NS1_2op2GEIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::binary_expr.347") 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 @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEES4_NS1_2op2GEIddvEEE8evaluateEb(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion_result") align 8, ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) #2 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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { 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 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{i64 0, i64 24, !14}
!14 = !{!7, !7, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = distinct !{!34, !16}
!35 = distinct !{!35, !16}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}
!40 = distinct !{!40, !16}
!41 = distinct !{!41, !16}


; 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::System" = type { i8, i8, %"class.std::map.314", %"class.std::map.319", %"class.mjolnir::math::Matrix", i64, %"class.std::vector.324", %"class.std::vector.324", %"class.std::vector.329", %"class.std::vector.329", %"class.std::vector.329", %"class.std::vector", %"class.std::vector" }
%"class.std::map.314" = type { %"class.std::_Rb_tree.315" }
%"class.std::_Rb_tree.315" = 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.319" = type { %"class.std::_Rb_tree.320" }
%"class.std::_Rb_tree.320" = 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" = type { %"struct.std::array" }
%"struct.std::array" = type { [9 x double] }
%"class.std::vector.324" = type { %"struct.std::_Vector_base.325" }
%"struct.std::_Vector_base.325" = 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.329" = type { %"struct.std::_Vector_base.330" }
%"struct.std::_Vector_base.330" = 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.std::mersenne_twister_engine" = type { [624 x i64], i64 }
%"class.std::uniform_real_distribution" = type { %"struct.std::uniform_real_distribution<>::param_type" }
%"struct.std::uniform_real_distribution<>::param_type" = type { double, double }
%"class.mjolnir::math::Matrix.334" = type { %"struct.std::array.335" }
%"struct.std::array.335" = type { [3 x double] }
%"class.mjolnir::SystemMotionRemover" = type { i8, i8, 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 }
%"class.boost::test_tools::assertion::binary_expr" = type { %"class.boost::test_tools::assertion::value_expr", double }
%"class.boost::test_tools::assertion::value_expr" = type { ptr }
%"class.boost::test_tools::assertion::seed" = type { i8 }
%"class.boost::unit_test::lazy_ostream_impl.337" = 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_evaluate_t" = type <{ ptr, %"class.std::__cxx11::list.338", i8, [7 x i8] }>
%"class.std::__cxx11::list.338" = type { %"class.std::__cxx11::_List_base.339" }
%"class.std::__cxx11::_List_base.339" = 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 }
%"struct.boost::test_tools::tt_detail::tolerance_manip" = type { double }
%"struct.boost::test_tools::tt_detail::assertion_type" = type { i32 }
%"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343" = type <{ ptr, %"class.std::__cxx11::list.338", i8, [7 x i8] }>
%"class.boost::test_tools::assertion::binary_expr.345" = type { %"class.boost::test_tools::assertion::value_expr", ptr }
%"class.boost::test_tools::assertion::binary_expr.347" = type { %"class.boost::test_tools::assertion::value_expr", ptr }

@_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE = external hidden local_unnamed_addr global ptr, align 8
@.str.401 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [32 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 @_ZN24SystemMotionRemover_both11test_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::System", align 8
  %5 = alloca %"struct.mjolnir::UnlimitedBoundary", align 1
  %6 = alloca %"class.std::mersenne_twister_engine", align 8
  %7 = alloca %"class.std::uniform_real_distribution", align 8
  %8 = alloca double, align 8
  %9 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %10 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %11 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %12 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %13 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %14 = alloca %"class.mjolnir::System", align 8
  %15 = alloca %"class.mjolnir::SystemMotionRemover", align 1
  %16 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %17 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %18 = alloca double, align 8
  %19 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %20 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %21 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %22 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %23 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %24 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %25 = alloca %"class.boost::test_tools::assertion_result", align 8
  %26 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %27 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %28 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %29 = alloca double, align 8
  %30 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %31 = alloca %"class.boost::unit_test::basic_cstring", 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::unit_test::basic_cstring", align 8
  %35 = alloca %"class.boost::test_tools::assertion_result", align 8
  %36 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %37 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %38 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %39 = alloca double, align 8
  %40 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %41 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %42 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %43 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %44 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %45 = alloca %"class.boost::test_tools::assertion_result", align 8
  %46 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %47 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %48 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %49 = alloca double, align 8
  %50 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %51 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %52 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %53 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %54 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %55 = alloca %"class.boost::test_tools::assertion_result", align 8
  %56 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %57 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %58 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %59 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %60 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %61 = alloca double, align 8
  %62 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %63 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %64 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %65 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %66 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %67 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %68 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %69 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %70 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %71 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %72 = alloca %"class.boost::test_tools::assertion_result", align 8
  %73 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %74 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %75 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %76 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %77 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %78 = alloca double, align 8
  %79 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %80 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %81 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %82 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %83 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %84 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %85 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %86 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %87 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %88 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %89 = alloca %"class.boost::test_tools::assertion_result", align 8
  %90 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %91 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %92 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %93 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %94 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %95 = alloca double, align 8
  %96 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %97 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %98 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %99 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %100 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %101 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %102 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %103 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %104 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %105 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %106 = alloca %"class.boost::test_tools::assertion_result", align 8
  %107 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %108 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %109 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %110 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %111 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %112 = alloca double, align 8
  %113 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %114 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %115 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %116 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %117 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %118 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %119 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %120 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %121 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %122 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %123 = alloca %"class.boost::test_tools::assertion_result", align 8
  %124 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %125 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %126 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %127 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %128 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %129 = alloca double, align 8
  %130 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %131 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %132 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %133 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %134 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %135 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %136 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %137 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %138 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %139 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %140 = alloca %"class.boost::test_tools::assertion_result", align 8
  %141 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %142 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %143 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %144 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %145 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %146 = alloca double, align 8
  %147 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %148 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %149 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %150 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %151 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %152 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %153 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %154 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %155 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %156 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %157 = alloca %"class.boost::test_tools::assertion_result", align 8
  %158 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343", align 8
  %159 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343", align 8
  %160 = alloca %"class.boost::test_tools::assertion::binary_expr.345", align 8
  %161 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %162 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %163 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %164 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %165 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %166 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %167 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %168 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %169 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %170 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %171 = alloca double, align 8
  %172 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %173 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %174 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %175 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %176 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %177 = alloca %"class.mjolnir::System", align 8
  %178 = alloca %"class.mjolnir::SystemMotionRemover", align 1
  %179 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %180 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %181 = alloca double, align 8
  %182 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %183 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %184 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %185 = alloca %"class.mjolnir::math::Matrix.334", align 8
  %186 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %187 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %188 = alloca %"class.boost::test_tools::assertion_result", align 8
  %189 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %190 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %191 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %192 = alloca double, align 8
  %193 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %194 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %195 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %196 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %197 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %198 = alloca %"class.boost::test_tools::assertion_result", align 8
  %199 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %200 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %201 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %202 = alloca double, align 8
  %203 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %204 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %205 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %206 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %207 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %208 = alloca %"class.boost::test_tools::assertion_result", align 8
  %209 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %210 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %211 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %212 = alloca double, align 8
  %213 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %214 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %215 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %216 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %217 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %218 = alloca %"class.boost::test_tools::assertion_result", align 8
  %219 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %220 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %221 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %222 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %223 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %224 = alloca double, align 8
  %225 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %226 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %227 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %228 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %229 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %230 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %231 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %232 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %233 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %234 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %235 = alloca %"class.boost::test_tools::assertion_result", align 8
  %236 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %237 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %238 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %239 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %240 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %241 = alloca double, align 8
  %242 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %243 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %244 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %245 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %246 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %247 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %248 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %249 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %250 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %251 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %252 = alloca %"class.boost::test_tools::assertion_result", align 8
  %253 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %254 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %255 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %256 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %257 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %258 = alloca double, align 8
  %259 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %260 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %261 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %262 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %263 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %264 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %265 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %266 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %267 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %268 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %269 = alloca %"class.boost::test_tools::assertion_result", align 8
  %270 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %271 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %272 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %273 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %274 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %275 = alloca double, align 8
  %276 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %277 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %278 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %279 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %280 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %281 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %282 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %283 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %284 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %285 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %286 = alloca %"class.boost::test_tools::assertion_result", align 8
  %287 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %288 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %289 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %290 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %291 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %292 = alloca double, align 8
  %293 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %294 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %295 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %296 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %297 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %298 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %299 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %300 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %301 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %302 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %303 = alloca %"class.boost::test_tools::assertion_result", align 8
  %304 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %305 = alloca %"struct.boost::test_tools::tt_detail::assertion_evaluate_t", align 8
  %306 = alloca %"class.boost::test_tools::assertion::binary_expr", align 8
  %307 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %308 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %309 = alloca double, align 8
  %310 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %311 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %312 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %313 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %314 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %315 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %316 = alloca %"struct.boost::test_tools::tt_detail::assertion_type", align 4
  %317 = alloca %"struct.boost::test_tools::tt_detail::tolerance_manip", align 8
  %318 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %319 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %320 = alloca %"class.boost::test_tools::assertion_result", align 8
  %321 = alloca %"class.boost::test_tools::assertion::binary_expr.347", align 8
  %322 = alloca %"class.boost::test_tools::assertion::value_expr", align 8
  %323 = alloca %"class.boost::test_tools::assertion::seed", align 1
  %324 = alloca %"class.boost::unit_test::lazy_ostream_impl.337", align 8
  %325 = alloca %"class.boost::unit_test::basic_cstring", align 8
  %326 = alloca %"class.boost::unit_test::basic_cstring", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  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 %327 unwind label %330

327:                                              ; preds = %1
  invoke void @_ZN7mjolnir20basic_logger_managerIcSt11char_traitsIcEE18set_default_loggerERKNSt7__cxx1112basic_stringIcS2_SaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %328 unwind label %332

328:                                              ; preds = %327
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 352, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2EmRKNS2_IdNS_4math6MatrixIdLm3ELm1EEEEE(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef 100, ptr noundef nonnull align 1 dereferenceable(1) %5)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 5000, ptr nonnull %6) #7
  invoke void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Em(ptr noundef nonnull align 8 dereferenceable(5000) %6, i64 noundef 123456789)
          to label %329 unwind label %335

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #7
  invoke void @_ZNSt25uniform_real_distributionIdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %7, double noundef 0.000000e+00, double noundef 1.000000e+00)
          to label %.preheader380 unwind label %337

330:                                              ; preds = %1
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %334

332:                                              ; preds = %327
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  br label %334

334:                                              ; preds = %332, %330
  %.pn = phi { ptr, i32 } [ %333, %332 ], [ %331, %330 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #7
  br label %1245

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

337:                                              ; preds = %329
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %1243

.preheader380:                                    ; preds = %329, %660
  %.0180383 = phi i64 [ %661, %660 ], [ 0, %329 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  store double 0.000000e+00, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %9, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  br label %340

339:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 352, ptr nonnull %14) #7
  invoke void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(352) %14, ptr noundef nonnull align 8 dereferenceable(352) %4)
          to label %388 unwind label %390

340:                                              ; preds = %.preheader380, %369
  %.0182381 = phi i64 [ 0, %.preheader380 ], [ %381, %369 ]
  %341 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %342 unwind label %382

342:                                              ; preds = %340
  %343 = fadd double %341, 1.000000e+00
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  store double %343, ptr %344, align 8, !tbaa !5
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  %346 = load double, ptr %345, align 8, !tbaa !5
  %347 = fdiv double 1.000000e+00, %346
  %348 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  store double %347, ptr %348, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  %349 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %350 unwind label %384

350:                                              ; preds = %342
  %351 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %352 unwind label %384

352:                                              ; preds = %350
  %353 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %354 unwind label %384

354:                                              ; preds = %352
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %10, double noundef %349, double noundef %351, double noundef %353) #7
  %355 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %355, ptr noundef nonnull align 8 dereferenceable(24) %10, i64 24, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #7
  %356 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %357 unwind label %386

357:                                              ; preds = %354
  %358 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %359 unwind label %386

359:                                              ; preds = %357
  %360 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %361 unwind label %386

361:                                              ; preds = %359
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %11, double noundef %356, double noundef %358, double noundef %360) #7
  %362 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %362, ptr noundef nonnull align 8 dereferenceable(24) %11, i64 24, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %12, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  %363 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %363, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  %364 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef 0) #7
  %365 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull @.str.403)
          to label %366 unwind label %382

366:                                              ; preds = %361
  %367 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef 0) #7
  %368 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull @.str.403)
          to label %369 unwind label %382

369:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #7
  %370 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  %371 = load double, ptr %370, align 8, !tbaa !5
  %372 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %13, double noundef %371, ptr noundef nonnull align 8 dereferenceable(24) %372) #7
  %373 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  %374 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  %375 = load double, ptr %374, align 8, !tbaa !5
  %376 = fmul double %375, 5.000000e-01
  %377 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0182381) #7
  %378 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %377) #7
  %379 = load double, ptr %8, align 8, !tbaa !5
  %380 = call double @llvm.fmuladd.f64(double %376, double %378, double %379)
  store double %380, ptr %8, align 8, !tbaa !5
  %381 = add nuw nsw i64 %.0182381, 1
  %exitcond.not = icmp eq i64 %381, 100
  br i1 %exitcond.not, label %339, label %340, !llvm.loop !11

382:                                              ; preds = %366, %361, %340
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %801

384:                                              ; preds = %352, %350, %342
  %385 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  br label %801

386:                                              ; preds = %359, %357, %354
  %387 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  br label %801

388:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %15) #7
  invoke void @_ZN7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2Ebbb(ptr noundef nonnull align 1 dereferenceable(3) %15, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %389 unwind label %392

389:                                              ; preds = %388
  call void @_ZNK7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE6removeERNS_6SystemIS3_EE(ptr noundef nonnull align 1 dereferenceable(3) %15, ptr noundef nonnull align 8 dereferenceable(352) %4) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %16, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %17, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  store double 0.000000e+00, ptr %18, align 8, !tbaa !5
  br label %394

390:                                              ; preds = %339
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %800

392:                                              ; preds = %388
  %393 = landingpad { ptr, i32 }
          cleanup
  br label %799

394:                                              ; preds = %389, %451
  %.0181382 = phi i64 [ 0, %389 ], [ %452, %451 ]
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  %396 = load double, ptr %395, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #7
  %397 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  call void @_ZN7mjolnir4mathmiIdLm3ELm1EEENS0_6MatrixIT_XT0_EXT1_EEERKS4_S6_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %19, ptr noundef nonnull align 8 dereferenceable(24) %397, ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %398 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %20, double noundef %396, ptr noundef nonnull align 8 dereferenceable(24) %398) #7
  %399 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #7
  call void @_ZN7mjolnir4math13cross_productIdEENS0_6MatrixIT_Lm3ELm1EEERKS4_S6_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %22, ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(24) %398) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %21, double noundef %396, ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  %400 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #7
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  %402 = load double, ptr %401, align 8, !tbaa !5
  %403 = fmul double %402, 5.000000e-01
  %404 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  %405 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %404) #7
  %406 = load double, ptr %18, align 8, !tbaa !5
  %407 = call double @llvm.fmuladd.f64(double %403, double %405, double %406)
  store double %407, ptr %18, align 8, !tbaa !5
  br label %408

408:                                              ; preds = %421, %394
  %409 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %409, ptr noundef nonnull %23, i64 noundef 69, ptr noundef nonnull %24)
          to label %410 unwind label %.loopexit.split-lp349.loopexit.split-lp

410:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  %411 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  %412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %411) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %27, ptr noundef nonnull align 1 dereferenceable(1) %28, ptr noundef nonnull align 8 dereferenceable(8) %412)
          to label %413 unwind label %453

413:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  %414 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %14, i64 noundef %.0181382) #7
  %415 = call noundef double @_ZN7mjolnir4math1XIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %414) #7
  store double %415, ptr %29, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %26, ptr noundef nonnull align 1 dereferenceable(1) %27, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %416 unwind label %455

416:                                              ; preds = %413
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %25, ptr noundef nonnull align 8 dereferenceable(16) %26, i1 noundef zeroext false)
          to label %417 unwind label %455

417:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  %418 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull @.str.404, i64 noundef 74)
  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.337") align 8 %30, ptr noundef nonnull align 8 dereferenceable(9) %418, ptr noundef nonnull align 8 dereferenceable(16) %31)
          to label %419 unwind label %457

419:                                              ; preds = %417
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull @.str.401, i64 noundef 92)
  %420 = 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) %25, ptr noundef nonnull align 8 dereferenceable(9) %30, ptr noundef nonnull %32, i64 noundef 69, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %421 unwind label %459

421:                                              ; preds = %419
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #7
  %422 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %422, label %408, label %.preheader352, !llvm.loop !15

.preheader352:                                    ; preds = %421, %435
  %423 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %423, ptr noundef nonnull %33, i64 noundef 70, ptr noundef nonnull %34)
          to label %424 unwind label %.loopexit.split-lp349.loopexit

424:                                              ; preds = %.preheader352
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #7
  %425 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  %426 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %425) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %37, ptr noundef nonnull align 1 dereferenceable(1) %38, ptr noundef nonnull align 8 dereferenceable(8) %426)
          to label %427 unwind label %464

427:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  %428 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %14, i64 noundef %.0181382) #7
  %429 = call noundef double @_ZN7mjolnir4math1YIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %428) #7
  store double %429, ptr %39, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %36, ptr noundef nonnull align 1 dereferenceable(1) %37, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %430 unwind label %466

430:                                              ; preds = %427
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %35, ptr noundef nonnull align 8 dereferenceable(16) %36, i1 noundef zeroext false)
          to label %431 unwind label %466

431:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  %432 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull @.str.405, i64 noundef 74)
  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.337") align 8 %40, ptr noundef nonnull align 8 dereferenceable(9) %432, ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %433 unwind label %468

433:                                              ; preds = %431
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull @.str.401, i64 noundef 92)
  %434 = 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) %35, ptr noundef nonnull align 8 dereferenceable(9) %40, ptr noundef nonnull %42, i64 noundef 70, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %435 unwind label %470

435:                                              ; preds = %433
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #7
  %436 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %436, label %.preheader352, label %.preheader347, !llvm.loop !16

.preheader347:                                    ; preds = %435, %449
  %437 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %437, ptr noundef nonnull %43, i64 noundef 71, ptr noundef nonnull %44)
          to label %438 unwind label %.loopexit348

438:                                              ; preds = %.preheader347
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #7
  %439 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0181382) #7
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %439) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %47, ptr noundef nonnull align 1 dereferenceable(1) %48, ptr noundef nonnull align 8 dereferenceable(8) %440)
          to label %441 unwind label %475

441:                                              ; preds = %438
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #7
  %442 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %14, i64 noundef %.0181382) #7
  %443 = call noundef double @_ZN7mjolnir4math1ZIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %442) #7
  store double %443, ptr %49, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %46, ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %444 unwind label %477

444:                                              ; preds = %441
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %45, ptr noundef nonnull align 8 dereferenceable(16) %46, i1 noundef zeroext false)
          to label %445 unwind label %477

445:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #7
  %446 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef nonnull @.str.406, i64 noundef 74)
  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.337") align 8 %50, ptr noundef nonnull align 8 dereferenceable(9) %446, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %447 unwind label %479

447:                                              ; preds = %445
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull @.str.401, i64 noundef 92)
  %448 = 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) %45, ptr noundef nonnull align 8 dereferenceable(9) %50, ptr noundef nonnull %52, i64 noundef 71, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %449 unwind label %481

449:                                              ; preds = %447
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  %450 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %450, label %.preheader347, label %451, !llvm.loop !17

451:                                              ; preds = %449
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #7
  %452 = add nuw nsw i64 %.0181382, 1
  %exitcond387.not = icmp eq i64 %452, 100
  br i1 %exitcond387.not, label %.preheader379, label %394, !llvm.loop !18

.loopexit348:                                     ; preds = %.preheader347
  %lpad.loopexit350 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp349

.loopexit.split-lp349.loopexit:                   ; preds = %.preheader352
  %lpad.loopexit353 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp349

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

453:                                              ; preds = %410
  %454 = landingpad { ptr, i32 }
          cleanup
  br label %463

455:                                              ; preds = %416, %413
  %456 = landingpad { ptr, i32 }
          cleanup
  br label %462

457:                                              ; preds = %417
  %458 = landingpad { ptr, i32 }
          cleanup
  br label %461

459:                                              ; preds = %419
  %460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %461

461:                                              ; preds = %459, %457
  %.pn296 = phi { ptr, i32 } [ %460, %459 ], [ %458, %457 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  br label %462

462:                                              ; preds = %461, %455
  %.pn296.pn = phi { ptr, i32 } [ %.pn296, %461 ], [ %456, %455 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %463

463:                                              ; preds = %462, %453
  %.pn296.pn.pn = phi { ptr, i32 } [ %.pn296.pn, %462 ], [ %454, %453 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #7
  br label %.loopexit.split-lp349

464:                                              ; preds = %424
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %474

466:                                              ; preds = %430, %427
  %467 = landingpad { ptr, i32 }
          cleanup
  br label %473

468:                                              ; preds = %431
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %472

470:                                              ; preds = %433
  %471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %472

472:                                              ; preds = %470, %468
  %.pn300 = phi { ptr, i32 } [ %471, %470 ], [ %469, %468 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  br label %473

473:                                              ; preds = %472, %466
  %.pn300.pn = phi { ptr, i32 } [ %.pn300, %472 ], [ %467, %466 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  br label %474

474:                                              ; preds = %473, %464
  %.pn300.pn.pn = phi { ptr, i32 } [ %.pn300.pn, %473 ], [ %465, %464 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #7
  br label %.loopexit.split-lp349

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

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

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

481:                                              ; preds = %447
  %482 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %483

483:                                              ; preds = %481, %479
  %.pn304 = phi { ptr, i32 } [ %482, %481 ], [ %480, %479 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  br label %484

484:                                              ; preds = %483, %477
  %.pn304.pn = phi { ptr, i32 } [ %.pn304, %483 ], [ %478, %477 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  br label %485

485:                                              ; preds = %484, %475
  %.pn304.pn.pn = phi { ptr, i32 } [ %.pn304.pn, %484 ], [ %476, %475 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  br label %.loopexit.split-lp349

.loopexit.split-lp349:                            ; preds = %.loopexit348, %.loopexit.split-lp349.loopexit.split-lp, %.loopexit.split-lp349.loopexit, %485, %474, %463
  %.pn304.pn.pn.pn = phi { ptr, i32 } [ %.pn304.pn.pn, %485 ], [ %.pn300.pn.pn, %474 ], [ %.pn296.pn.pn, %463 ], [ %lpad.loopexit350, %.loopexit348 ], [ %lpad.loopexit353, %.loopexit.split-lp349.loopexit ], [ %lpad.loopexit.split-lp354, %.loopexit.split-lp349.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #7
  br label %.loopexit.split-lp358

.preheader379:                                    ; preds = %451, %509
  %486 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull %53, i64 noundef 74, ptr noundef nonnull %54)
          to label %487 unwind label %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

487:                                              ; preds = %.preheader379
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %57) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #7
  %488 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %59, ptr noundef nonnull align 1 dereferenceable(1) %60, ptr noundef nonnull align 8 dereferenceable(8) %488)
          to label %489 unwind label %662

489:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #7
  store double 0.000000e+00, ptr %61, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %58, ptr noundef nonnull align 1 dereferenceable(1) %59, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %490 unwind label %664

490:                                              ; preds = %489
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %57, ptr noundef nonnull align 8 dereferenceable(16) %58)
          to label %491 unwind label %664

491:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #7
  %492 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %493 unwind label %666

493:                                              ; preds = %491
  store double %492, ptr %62, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %56, ptr noundef nonnull align 8 dereferenceable(33) %57, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %494 unwind label %666

494:                                              ; preds = %493
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %55, ptr noundef nonnull align 8 dereferenceable(33) %56)
          to label %495 unwind label %668

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #7
  %496 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %64) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef nonnull @.str.407, i64 noundef 36)
  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.337") align 8 %63, ptr noundef nonnull align 8 dereferenceable(9) %496, ptr noundef nonnull align 8 dereferenceable(16) %64)
          to label %497 unwind label %670

497:                                              ; preds = %495
  %498 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #7
  %499 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %500 unwind label %672

500:                                              ; preds = %497
  store double %499, ptr %65, align 8
  %501 = 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) %498, ptr noundef nonnull align 8 dereferenceable(8) %65)
  %502 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %63, ptr noundef nonnull align 8 dereferenceable(9) %501)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %68, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #7
  %503 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %504 unwind label %674

504:                                              ; preds = %500
  store double %503, ptr %69, align 8
  %505 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %68, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %506 unwind label %674

506:                                              ; preds = %504
  store i32 %505, ptr %67, align 4
  %507 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %67)
  %508 = 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) %55, ptr noundef nonnull align 8 dereferenceable(9) %502, ptr noundef nonnull %66, i64 noundef 74, i32 noundef 1, i32 noundef %507, i64 noundef 0)
          to label %509 unwind label %674

509:                                              ; preds = %506
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #7
  %510 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %510, label %.preheader379, label %.preheader375, !llvm.loop !19

.preheader375:                                    ; preds = %509, %534
  %511 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef nonnull %70, i64 noundef 75, ptr noundef nonnull %71)
          to label %512 unwind label %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

512:                                              ; preds = %.preheader375
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %72) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %73) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %74) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %77) #7
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %76, ptr noundef nonnull align 1 dereferenceable(1) %77, ptr noundef nonnull align 8 dereferenceable(8) %513)
          to label %514 unwind label %682

514:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #7
  store double 0.000000e+00, ptr %78, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %75, ptr noundef nonnull align 1 dereferenceable(1) %76, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %515 unwind label %684

515:                                              ; preds = %514
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %74, ptr noundef nonnull align 8 dereferenceable(16) %75)
          to label %516 unwind label %684

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #7
  %517 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %518 unwind label %686

518:                                              ; preds = %516
  store double %517, ptr %79, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %73, ptr noundef nonnull align 8 dereferenceable(33) %74, ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %519 unwind label %686

519:                                              ; preds = %518
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %72, ptr noundef nonnull align 8 dereferenceable(33) %73)
          to label %520 unwind label %688

520:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #7
  %521 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %81) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull @.str.408, i64 noundef 36)
  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.337") align 8 %80, ptr noundef nonnull align 8 dereferenceable(9) %521, ptr noundef nonnull align 8 dereferenceable(16) %81)
          to label %522 unwind label %690

522:                                              ; preds = %520
  %523 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #7
  %524 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %525 unwind label %692

525:                                              ; preds = %522
  store double %524, ptr %82, align 8
  %526 = 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) %523, ptr noundef nonnull align 8 dereferenceable(8) %82)
  %527 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %80, ptr noundef nonnull align 8 dereferenceable(9) %526)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %84) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %85) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %85, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #7
  %528 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %529 unwind label %694

529:                                              ; preds = %525
  store double %528, ptr %86, align 8
  %530 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %85, ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %531 unwind label %694

531:                                              ; preds = %529
  store i32 %530, ptr %84, align 4
  %532 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %84)
  %533 = 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) %72, ptr noundef nonnull align 8 dereferenceable(9) %527, ptr noundef nonnull %83, i64 noundef 75, i32 noundef 1, i32 noundef %532, i64 noundef 0)
          to label %534 unwind label %694

534:                                              ; preds = %531
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %84) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %73) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #7
  %535 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %535, label %.preheader375, label %.preheader372, !llvm.loop !20

.preheader372:                                    ; preds = %534, %559
  %536 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %87, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %536, ptr noundef nonnull %87, i64 noundef 76, ptr noundef nonnull %88)
          to label %537 unwind label %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

537:                                              ; preds = %.preheader372
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %89) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %90) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %91) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %92) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %94) #7
  %538 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %93, ptr noundef nonnull align 1 dereferenceable(1) %94, ptr noundef nonnull align 8 dereferenceable(8) %538)
          to label %539 unwind label %702

539:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #7
  store double 0.000000e+00, ptr %95, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %92, ptr noundef nonnull align 1 dereferenceable(1) %93, ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %540 unwind label %704

540:                                              ; preds = %539
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %91, ptr noundef nonnull align 8 dereferenceable(16) %92)
          to label %541 unwind label %704

541:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #7
  %542 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %543 unwind label %706

543:                                              ; preds = %541
  store double %542, ptr %96, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %90, ptr noundef nonnull align 8 dereferenceable(33) %91, ptr noundef nonnull align 8 dereferenceable(8) %96)
          to label %544 unwind label %706

544:                                              ; preds = %543
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %89, ptr noundef nonnull align 8 dereferenceable(33) %90)
          to label %545 unwind label %708

545:                                              ; preds = %544
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #7
  %546 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %98) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef nonnull @.str.409, i64 noundef 36)
  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.337") align 8 %97, ptr noundef nonnull align 8 dereferenceable(9) %546, ptr noundef nonnull align 8 dereferenceable(16) %98)
          to label %547 unwind label %710

547:                                              ; preds = %545
  %548 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #7
  %549 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %550 unwind label %712

550:                                              ; preds = %547
  store double %549, ptr %99, align 8
  %551 = 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) %548, ptr noundef nonnull align 8 dereferenceable(8) %99)
  %552 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %97, ptr noundef nonnull align 8 dereferenceable(9) %551)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %101) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %102) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %102, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #7
  %553 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %554 unwind label %714

554:                                              ; preds = %550
  store double %553, ptr %103, align 8
  %555 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %102, ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %556 unwind label %714

556:                                              ; preds = %554
  store i32 %555, ptr %101, align 4
  %557 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %101)
  %558 = 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) %89, ptr noundef nonnull align 8 dereferenceable(9) %552, ptr noundef nonnull %100, i64 noundef 76, i32 noundef 1, i32 noundef %557, i64 noundef 0)
          to label %559 unwind label %714

559:                                              ; preds = %556
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %102) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #7
  %560 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %560, label %.preheader372, label %.preheader368, !llvm.loop !21

.preheader368:                                    ; preds = %559, %584
  %561 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %104, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %561, ptr noundef nonnull %104, i64 noundef 78, ptr noundef nonnull %105)
          to label %562 unwind label %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit

562:                                              ; preds = %.preheader368
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %106) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %107) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %108) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %109) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %110) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %111) #7
  %563 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %110, ptr noundef nonnull align 1 dereferenceable(1) %111, ptr noundef nonnull align 8 dereferenceable(8) %563)
          to label %564 unwind label %722

564:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #7
  store double 0.000000e+00, ptr %112, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %109, ptr noundef nonnull align 1 dereferenceable(1) %110, ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %565 unwind label %724

565:                                              ; preds = %564
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %108, ptr noundef nonnull align 8 dereferenceable(16) %109)
          to label %566 unwind label %724

566:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #7
  %567 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %568 unwind label %726

568:                                              ; preds = %566
  store double %567, ptr %113, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %107, ptr noundef nonnull align 8 dereferenceable(33) %108, ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %569 unwind label %726

569:                                              ; preds = %568
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %106, ptr noundef nonnull align 8 dereferenceable(33) %107)
          to label %570 unwind label %728

570:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #7
  %571 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %115) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %115, ptr noundef nonnull @.str.410, i64 noundef 33)
  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.337") align 8 %114, ptr noundef nonnull align 8 dereferenceable(9) %571, ptr noundef nonnull align 8 dereferenceable(16) %115)
          to label %572 unwind label %730

572:                                              ; preds = %570
  %573 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %116) #7
  %574 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %575 unwind label %732

575:                                              ; preds = %572
  store double %574, ptr %116, align 8
  %576 = 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) %573, ptr noundef nonnull align 8 dereferenceable(8) %116)
  %577 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %114, ptr noundef nonnull align 8 dereferenceable(9) %576)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %118) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %119) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %119, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %120) #7
  %578 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %579 unwind label %734

579:                                              ; preds = %575
  store double %578, ptr %120, align 8
  %580 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %119, ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %581 unwind label %734

581:                                              ; preds = %579
  store i32 %580, ptr %118, align 4
  %582 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %118)
  %583 = 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) %106, ptr noundef nonnull align 8 dereferenceable(9) %577, ptr noundef nonnull %117, i64 noundef 78, i32 noundef 1, i32 noundef %582, i64 noundef 0)
          to label %584 unwind label %734

584:                                              ; preds = %581
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %119) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %118) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %106) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %107) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %108) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %108) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %106) #7
  %585 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %585, label %.preheader368, label %.preheader365, !llvm.loop !22

.preheader365:                                    ; preds = %584, %609
  %586 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %121, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %122)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %586, ptr noundef nonnull %121, i64 noundef 79, ptr noundef nonnull %122)
          to label %587 unwind label %.loopexit.split-lp358.loopexit.split-lp.loopexit

587:                                              ; preds = %.preheader365
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %123) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %124) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %125) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %126) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %127) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %128) #7
  %588 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %127, ptr noundef nonnull align 1 dereferenceable(1) %128, ptr noundef nonnull align 8 dereferenceable(8) %588)
          to label %589 unwind label %742

589:                                              ; preds = %587
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %129) #7
  store double 0.000000e+00, ptr %129, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %126, ptr noundef nonnull align 1 dereferenceable(1) %127, ptr noundef nonnull align 8 dereferenceable(8) %129)
          to label %590 unwind label %744

590:                                              ; preds = %589
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %125, ptr noundef nonnull align 8 dereferenceable(16) %126)
          to label %591 unwind label %744

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %130) #7
  %592 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %593 unwind label %746

593:                                              ; preds = %591
  store double %592, ptr %130, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %124, ptr noundef nonnull align 8 dereferenceable(33) %125, ptr noundef nonnull align 8 dereferenceable(8) %130)
          to label %594 unwind label %746

594:                                              ; preds = %593
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %123, ptr noundef nonnull align 8 dereferenceable(33) %124)
          to label %595 unwind label %748

595:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %131) #7
  %596 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %132) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef nonnull @.str.411, i64 noundef 33)
  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.337") align 8 %131, ptr noundef nonnull align 8 dereferenceable(9) %596, ptr noundef nonnull align 8 dereferenceable(16) %132)
          to label %597 unwind label %750

597:                                              ; preds = %595
  %598 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %133) #7
  %599 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %600 unwind label %752

600:                                              ; preds = %597
  store double %599, ptr %133, align 8
  %601 = 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) %598, ptr noundef nonnull align 8 dereferenceable(8) %133)
  %602 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %131, ptr noundef nonnull align 8 dereferenceable(9) %601)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %135) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %136) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %136, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #7
  %603 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %604 unwind label %754

604:                                              ; preds = %600
  store double %603, ptr %137, align 8
  %605 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %136, ptr noundef nonnull align 8 dereferenceable(8) %137)
          to label %606 unwind label %754

606:                                              ; preds = %604
  store i32 %605, ptr %135, align 4
  %607 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %135)
  %608 = 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) %123, ptr noundef nonnull align 8 dereferenceable(9) %602, ptr noundef nonnull %134, i64 noundef 79, i32 noundef 1, i32 noundef %607, i64 noundef 0)
          to label %609 unwind label %754

609:                                              ; preds = %606
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %136) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %135) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %133) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %123) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %124) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %130) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %125) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %124) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %123) #7
  %610 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %610, label %.preheader365, label %.preheader361, !llvm.loop !23

.preheader361:                                    ; preds = %609, %634
  %611 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %139)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %611, ptr noundef nonnull %138, i64 noundef 80, ptr noundef nonnull %139)
          to label %612 unwind label %.loopexit.split-lp358.loopexit

612:                                              ; preds = %.preheader361
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %140) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %141) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %142) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %143) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %144) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %145) #7
  %613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %144, ptr noundef nonnull align 1 dereferenceable(1) %145, ptr noundef nonnull align 8 dereferenceable(8) %613)
          to label %614 unwind label %762

614:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %146) #7
  store double 0.000000e+00, ptr %146, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %143, ptr noundef nonnull align 1 dereferenceable(1) %144, ptr noundef nonnull align 8 dereferenceable(8) %146)
          to label %615 unwind label %764

615:                                              ; preds = %614
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %142, ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %616 unwind label %764

616:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %147) #7
  %617 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %618 unwind label %766

618:                                              ; preds = %616
  store double %617, ptr %147, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %141, ptr noundef nonnull align 8 dereferenceable(33) %142, ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %619 unwind label %766

619:                                              ; preds = %618
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %140, ptr noundef nonnull align 8 dereferenceable(33) %141)
          to label %620 unwind label %768

620:                                              ; preds = %619
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #7
  %621 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %149) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef nonnull @.str.412, i64 noundef 33)
  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.337") align 8 %148, ptr noundef nonnull align 8 dereferenceable(9) %621, ptr noundef nonnull align 8 dereferenceable(16) %149)
          to label %622 unwind label %770

622:                                              ; preds = %620
  %623 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %150) #7
  %624 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %625 unwind label %772

625:                                              ; preds = %622
  store double %624, ptr %150, align 8
  %626 = 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) %623, ptr noundef nonnull align 8 dereferenceable(8) %150)
  %627 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %148, ptr noundef nonnull align 8 dereferenceable(9) %626)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %151, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %152) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %153) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %153, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %154) #7
  %628 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %629 unwind label %774

629:                                              ; preds = %625
  store double %628, ptr %154, align 8
  %630 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %153, ptr noundef nonnull align 8 dereferenceable(8) %154)
          to label %631 unwind label %774

631:                                              ; preds = %629
  store i32 %630, ptr %152, align 4
  %632 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %152)
  %633 = 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) %140, ptr noundef nonnull align 8 dereferenceable(9) %627, ptr noundef nonnull %151, i64 noundef 80, i32 noundef 1, i32 noundef %632, i64 noundef 0)
          to label %634 unwind label %774

634:                                              ; preds = %631
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %154) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %153) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %152) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %140) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %141) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %142) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %142) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %141) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %140) #7
  %635 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %635, label %.preheader361, label %.preheader356, !llvm.loop !24

.preheader356:                                    ; preds = %634, %658
  %636 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %155, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %156)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %636, ptr noundef nonnull %155, i64 noundef 83, ptr noundef nonnull %156)
          to label %637 unwind label %.loopexit357

637:                                              ; preds = %.preheader356
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %157) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %158) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %159) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %160) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %161) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %162) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %161, ptr noundef nonnull align 1 dereferenceable(1) %162, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %638 unwind label %782

638:                                              ; preds = %637
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIS4_EENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr.345") align 8 %160, ptr noundef nonnull align 1 dereferenceable(1) %161, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %639 unwind label %782

639:                                              ; preds = %638
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t.343") align 8 %159, ptr noundef nonnull align 8 dereferenceable(16) %160)
          to label %640 unwind label %782

640:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %163) #7
  %641 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %642 unwind label %784

642:                                              ; preds = %640
  store double %641, ptr %163, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_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.343") align 8 %158, ptr noundef nonnull align 8 dereferenceable(33) %159, ptr noundef nonnull align 8 dereferenceable(8) %163)
          to label %643 unwind label %784

643:                                              ; preds = %642
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %157, ptr noundef nonnull align 8 dereferenceable(33) %158)
          to label %644 unwind label %786

644:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %164) #7
  %645 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %165) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %165, ptr noundef nonnull @.str.413, i64 noundef 31)
  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.337") align 8 %164, ptr noundef nonnull align 8 dereferenceable(9) %645, ptr noundef nonnull align 8 dereferenceable(16) %165)
          to label %646 unwind label %788

646:                                              ; preds = %644
  %647 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %166) #7
  %648 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %649 unwind label %790

649:                                              ; preds = %646
  store double %648, ptr %166, align 8
  %650 = 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) %647, ptr noundef nonnull align 8 dereferenceable(8) %166)
  %651 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %164, ptr noundef nonnull align 8 dereferenceable(9) %650)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %167, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %168) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %169) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %169, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %170) #7
  %652 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %653 unwind label %792

653:                                              ; preds = %649
  store double %652, ptr %170, align 8
  %654 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %169, ptr noundef nonnull align 8 dereferenceable(8) %170)
          to label %655 unwind label %792

655:                                              ; preds = %653
  store i32 %654, ptr %168, align 4
  %656 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %168)
  %657 = 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) %157, ptr noundef nonnull align 8 dereferenceable(9) %651, ptr noundef nonnull %167, i64 noundef 83, i32 noundef 1, i32 noundef %656, i64 noundef 0)
          to label %658 unwind label %792

658:                                              ; preds = %655
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %168) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %157) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %158) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %163) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %159) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %158) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %157) #7
  %659 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %659, label %.preheader356, label %660, !llvm.loop !25

660:                                              ; preds = %658
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %15) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %14) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  %661 = add nuw nsw i64 %.0180383, 1
  %exitcond388.not = icmp eq i64 %661, 100
  br i1 %exitcond388.not, label %.preheader346, label %.preheader380, !llvm.loop !26

.loopexit357:                                     ; preds = %.preheader356
  %lpad.loopexit359 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp358

.loopexit.split-lp358.loopexit:                   ; preds = %.preheader361
  %lpad.loopexit362 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp358

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

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

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

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

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

662:                                              ; preds = %487
  %663 = landingpad { ptr, i32 }
          cleanup
  br label %681

664:                                              ; preds = %490, %489
  %665 = landingpad { ptr, i32 }
          cleanup
  br label %680

666:                                              ; preds = %493, %491
  %667 = landingpad { ptr, i32 }
          cleanup
  br label %679

668:                                              ; preds = %494
  %669 = landingpad { ptr, i32 }
          cleanup
  br label %678

670:                                              ; preds = %495
  %671 = landingpad { ptr, i32 }
          cleanup
  br label %677

672:                                              ; preds = %497
  %673 = landingpad { ptr, i32 }
          cleanup
  br label %676

674:                                              ; preds = %506, %504, %500
  %675 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #7
  br label %676

676:                                              ; preds = %674, %672
  %.pn248 = phi { ptr, i32 } [ %675, %674 ], [ %673, %672 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %677

677:                                              ; preds = %676, %670
  %.pn248.pn = phi { ptr, i32 } [ %.pn248, %676 ], [ %671, %670 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  br label %678

678:                                              ; preds = %677, %668
  %.pn248.pn.pn = phi { ptr, i32 } [ %.pn248.pn, %677 ], [ %669, %668 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %56) #7
  br label %679

679:                                              ; preds = %678, %666
  %.pn248.pn.pn.pn = phi { ptr, i32 } [ %.pn248.pn.pn, %678 ], [ %667, %666 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %57) #7
  br label %680

680:                                              ; preds = %679, %664
  %.pn248.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn248.pn.pn.pn, %679 ], [ %665, %664 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  br label %681

681:                                              ; preds = %680, %662
  %.pn248.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn248.pn.pn.pn.pn, %680 ], [ %663, %662 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #7
  br label %.loopexit.split-lp358

682:                                              ; preds = %512
  %683 = landingpad { ptr, i32 }
          cleanup
  br label %701

684:                                              ; preds = %515, %514
  %685 = landingpad { ptr, i32 }
          cleanup
  br label %700

686:                                              ; preds = %518, %516
  %687 = landingpad { ptr, i32 }
          cleanup
  br label %699

688:                                              ; preds = %519
  %689 = landingpad { ptr, i32 }
          cleanup
  br label %698

690:                                              ; preds = %520
  %691 = landingpad { ptr, i32 }
          cleanup
  br label %697

692:                                              ; preds = %522
  %693 = landingpad { ptr, i32 }
          cleanup
  br label %696

694:                                              ; preds = %531, %529, %525
  %695 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %84) #7
  br label %696

696:                                              ; preds = %694, %692
  %.pn255 = phi { ptr, i32 } [ %695, %694 ], [ %693, %692 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  br label %697

697:                                              ; preds = %696, %690
  %.pn255.pn = phi { ptr, i32 } [ %.pn255, %696 ], [ %691, %690 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  br label %698

698:                                              ; preds = %697, %688
  %.pn255.pn.pn = phi { ptr, i32 } [ %.pn255.pn, %697 ], [ %689, %688 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %73) #7
  br label %699

699:                                              ; preds = %698, %686
  %.pn255.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn, %698 ], [ %687, %686 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %74) #7
  br label %700

700:                                              ; preds = %699, %684
  %.pn255.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn, %699 ], [ %685, %684 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #7
  br label %701

701:                                              ; preds = %700, %682
  %.pn255.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn.pn, %700 ], [ %683, %682 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %73) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #7
  br label %.loopexit.split-lp358

702:                                              ; preds = %537
  %703 = landingpad { ptr, i32 }
          cleanup
  br label %721

704:                                              ; preds = %540, %539
  %705 = landingpad { ptr, i32 }
          cleanup
  br label %720

706:                                              ; preds = %543, %541
  %707 = landingpad { ptr, i32 }
          cleanup
  br label %719

708:                                              ; preds = %544
  %709 = landingpad { ptr, i32 }
          cleanup
  br label %718

710:                                              ; preds = %545
  %711 = landingpad { ptr, i32 }
          cleanup
  br label %717

712:                                              ; preds = %547
  %713 = landingpad { ptr, i32 }
          cleanup
  br label %716

714:                                              ; preds = %556, %554, %550
  %715 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %102) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %101) #7
  br label %716

716:                                              ; preds = %714, %712
  %.pn262 = phi { ptr, i32 } [ %715, %714 ], [ %713, %712 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %717

717:                                              ; preds = %716, %710
  %.pn262.pn = phi { ptr, i32 } [ %.pn262, %716 ], [ %711, %710 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  br label %718

718:                                              ; preds = %717, %708
  %.pn262.pn.pn = phi { ptr, i32 } [ %.pn262.pn, %717 ], [ %709, %708 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %90) #7
  br label %719

719:                                              ; preds = %718, %706
  %.pn262.pn.pn.pn = phi { ptr, i32 } [ %.pn262.pn.pn, %718 ], [ %707, %706 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %91) #7
  br label %720

720:                                              ; preds = %719, %704
  %.pn262.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn262.pn.pn.pn, %719 ], [ %705, %704 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #7
  br label %721

721:                                              ; preds = %720, %702
  %.pn262.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn262.pn.pn.pn.pn, %720 ], [ %703, %702 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #7
  br label %.loopexit.split-lp358

722:                                              ; preds = %562
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %741

724:                                              ; preds = %565, %564
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %740

726:                                              ; preds = %568, %566
  %727 = landingpad { ptr, i32 }
          cleanup
  br label %739

728:                                              ; preds = %569
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %738

730:                                              ; preds = %570
  %731 = landingpad { ptr, i32 }
          cleanup
  br label %737

732:                                              ; preds = %572
  %733 = landingpad { ptr, i32 }
          cleanup
  br label %736

734:                                              ; preds = %581, %579, %575
  %735 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %119) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %118) #7
  br label %736

736:                                              ; preds = %734, %732
  %.pn269 = phi { ptr, i32 } [ %735, %734 ], [ %733, %732 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  br label %737

737:                                              ; preds = %736, %730
  %.pn269.pn = phi { ptr, i32 } [ %.pn269, %736 ], [ %731, %730 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %106) #7
  br label %738

738:                                              ; preds = %737, %728
  %.pn269.pn.pn = phi { ptr, i32 } [ %.pn269.pn, %737 ], [ %729, %728 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %107) #7
  br label %739

739:                                              ; preds = %738, %726
  %.pn269.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn, %738 ], [ %727, %726 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %108) #7
  br label %740

740:                                              ; preds = %739, %724
  %.pn269.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn.pn, %739 ], [ %725, %724 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #7
  br label %741

741:                                              ; preds = %740, %722
  %.pn269.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn.pn.pn, %740 ], [ %723, %722 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %108) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %106) #7
  br label %.loopexit.split-lp358

742:                                              ; preds = %587
  %743 = landingpad { ptr, i32 }
          cleanup
  br label %761

744:                                              ; preds = %590, %589
  %745 = landingpad { ptr, i32 }
          cleanup
  br label %760

746:                                              ; preds = %593, %591
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %759

748:                                              ; preds = %594
  %749 = landingpad { ptr, i32 }
          cleanup
  br label %758

750:                                              ; preds = %595
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %757

752:                                              ; preds = %597
  %753 = landingpad { ptr, i32 }
          cleanup
  br label %756

754:                                              ; preds = %606, %604, %600
  %755 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %136) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %135) #7
  br label %756

756:                                              ; preds = %754, %752
  %.pn276 = phi { ptr, i32 } [ %755, %754 ], [ %753, %752 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %133) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  br label %757

757:                                              ; preds = %756, %750
  %.pn276.pn = phi { ptr, i32 } [ %.pn276, %756 ], [ %751, %750 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %123) #7
  br label %758

758:                                              ; preds = %757, %748
  %.pn276.pn.pn = phi { ptr, i32 } [ %.pn276.pn, %757 ], [ %749, %748 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %124) #7
  br label %759

759:                                              ; preds = %758, %746
  %.pn276.pn.pn.pn = phi { ptr, i32 } [ %.pn276.pn.pn, %758 ], [ %747, %746 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %130) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %125) #7
  br label %760

760:                                              ; preds = %759, %744
  %.pn276.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn276.pn.pn.pn, %759 ], [ %745, %744 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #7
  br label %761

761:                                              ; preds = %760, %742
  %.pn276.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn276.pn.pn.pn.pn, %760 ], [ %743, %742 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %124) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %123) #7
  br label %.loopexit.split-lp358

762:                                              ; preds = %612
  %763 = landingpad { ptr, i32 }
          cleanup
  br label %781

764:                                              ; preds = %615, %614
  %765 = landingpad { ptr, i32 }
          cleanup
  br label %780

766:                                              ; preds = %618, %616
  %767 = landingpad { ptr, i32 }
          cleanup
  br label %779

768:                                              ; preds = %619
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %778

770:                                              ; preds = %620
  %771 = landingpad { ptr, i32 }
          cleanup
  br label %777

772:                                              ; preds = %622
  %773 = landingpad { ptr, i32 }
          cleanup
  br label %776

774:                                              ; preds = %631, %629, %625
  %775 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %154) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %153) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %152) #7
  br label %776

776:                                              ; preds = %774, %772
  %.pn283 = phi { ptr, i32 } [ %775, %774 ], [ %773, %772 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %777

777:                                              ; preds = %776, %770
  %.pn283.pn = phi { ptr, i32 } [ %.pn283, %776 ], [ %771, %770 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %140) #7
  br label %778

778:                                              ; preds = %777, %768
  %.pn283.pn.pn = phi { ptr, i32 } [ %.pn283.pn, %777 ], [ %769, %768 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %141) #7
  br label %779

779:                                              ; preds = %778, %766
  %.pn283.pn.pn.pn = phi { ptr, i32 } [ %.pn283.pn.pn, %778 ], [ %767, %766 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %142) #7
  br label %780

780:                                              ; preds = %779, %764
  %.pn283.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn283.pn.pn.pn, %779 ], [ %765, %764 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #7
  br label %781

781:                                              ; preds = %780, %762
  %.pn283.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn283.pn.pn.pn.pn, %780 ], [ %763, %762 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %142) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %141) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %140) #7
  br label %.loopexit.split-lp358

782:                                              ; preds = %639, %638, %637
  %783 = landingpad { ptr, i32 }
          cleanup
  br label %798

784:                                              ; preds = %642, %640
  %785 = landingpad { ptr, i32 }
          cleanup
  br label %797

786:                                              ; preds = %643
  %787 = landingpad { ptr, i32 }
          cleanup
  br label %796

788:                                              ; preds = %644
  %789 = landingpad { ptr, i32 }
          cleanup
  br label %795

790:                                              ; preds = %646
  %791 = landingpad { ptr, i32 }
          cleanup
  br label %794

792:                                              ; preds = %655, %653, %649
  %793 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %168) #7
  br label %794

794:                                              ; preds = %792, %790
  %.pn290 = phi { ptr, i32 } [ %793, %792 ], [ %791, %790 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %795

795:                                              ; preds = %794, %788
  %.pn290.pn = phi { ptr, i32 } [ %.pn290, %794 ], [ %789, %788 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %157) #7
  br label %796

796:                                              ; preds = %795, %786
  %.pn290.pn.pn = phi { ptr, i32 } [ %.pn290.pn, %795 ], [ %787, %786 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %158) #7
  br label %797

797:                                              ; preds = %796, %784
  %.pn290.pn.pn.pn = phi { ptr, i32 } [ %.pn290.pn.pn, %796 ], [ %785, %784 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %163) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %159) #7
  br label %798

798:                                              ; preds = %797, %782
  %.pn290.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn290.pn.pn.pn, %797 ], [ %783, %782 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %158) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %157) #7
  br label %.loopexit.split-lp358

.loopexit.split-lp358:                            ; preds = %.loopexit357, %.loopexit.split-lp358.loopexit.split-lp.loopexit, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp358.loopexit, %798, %781, %761, %741, %721, %701, %681, %.loopexit.split-lp349
  %.pn304.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn304.pn.pn.pn, %.loopexit.split-lp349 ], [ %.pn290.pn.pn.pn.pn, %798 ], [ %.pn283.pn.pn.pn.pn.pn, %781 ], [ %.pn276.pn.pn.pn.pn.pn, %761 ], [ %.pn269.pn.pn.pn.pn.pn, %741 ], [ %.pn262.pn.pn.pn.pn.pn, %721 ], [ %.pn255.pn.pn.pn.pn.pn, %701 ], [ %.pn248.pn.pn.pn.pn.pn, %681 ], [ %lpad.loopexit359, %.loopexit357 ], [ %lpad.loopexit362, %.loopexit.split-lp358.loopexit ], [ %lpad.loopexit366, %.loopexit.split-lp358.loopexit.split-lp.loopexit ], [ %lpad.loopexit369, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit373, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit376, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp377, %.loopexit.split-lp358.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  br label %799

799:                                              ; preds = %.loopexit.split-lp358, %392
  %.pn304.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn304.pn.pn.pn.pn, %.loopexit.split-lp358 ], [ %393, %392 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %15) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %14) #7
  br label %800

800:                                              ; preds = %799, %390
  %.pn304.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn304.pn.pn.pn.pn.pn, %799 ], [ %391, %390 ]
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %14) #7
  br label %801

801:                                              ; preds = %382, %384, %386, %800
  %.pn312.pn = phi { ptr, i32 } [ %.pn304.pn.pn.pn.pn.pn.pn, %800 ], [ %383, %382 ], [ %387, %386 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  br label %1243

802:                                              ; preds = %1110
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %6) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %4) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %4) #7
  ret void

.preheader346:                                    ; preds = %660, %1110
  %.0179386 = phi i64 [ %1111, %1110 ], [ 0, %660 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %171) #7
  store double 0.000000e+00, ptr %171, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %172) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %172, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  br label %804

803:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 352, ptr nonnull %177) #7
  invoke void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(352) %177, ptr noundef nonnull align 8 dereferenceable(352) %4)
          to label %852 unwind label %854

804:                                              ; preds = %.preheader346, %833
  %.0178384 = phi i64 [ 0, %.preheader346 ], [ %845, %833 ]
  %805 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %806 unwind label %846

806:                                              ; preds = %804
  %807 = fadd double %805, 1.000000e+00
  %808 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  store double %807, ptr %808, align 8, !tbaa !5
  %809 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  %810 = load double, ptr %809, align 8, !tbaa !5
  %811 = fdiv double 1.000000e+00, %810
  %812 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5rmassEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  store double %811, ptr %812, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %173) #7
  %813 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %814 unwind label %848

814:                                              ; preds = %806
  %815 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %816 unwind label %848

816:                                              ; preds = %814
  %817 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %818 unwind label %848

818:                                              ; preds = %816
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %173, double noundef %813, double noundef %815, double noundef %817) #7
  %819 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %819, ptr noundef nonnull align 8 dereferenceable(24) %173, i64 24, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %173) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %174) #7
  %820 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %821 unwind label %850

821:                                              ; preds = %818
  %822 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %823 unwind label %850

823:                                              ; preds = %821
  %824 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(5000) %6)
          to label %825 unwind label %850

825:                                              ; preds = %823
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %174, double noundef %820, double noundef %822, double noundef %824) #7
  %826 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %826, ptr noundef nonnull align 8 dereferenceable(24) %174, i64 24, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %174) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %175) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %175, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  %827 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5forceEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %827, ptr noundef nonnull align 8 dereferenceable(24) %175, i64 24, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %175) #7
  %828 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4nameB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef 0) #7
  %829 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %828, ptr noundef nonnull @.str.403)
          to label %830 unwind label %846

830:                                              ; preds = %825
  %831 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE5groupB5cxx11Em(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef 0) #7
  %832 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %831, ptr noundef nonnull @.str.403)
          to label %833 unwind label %846

833:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %176) #7
  %834 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  %835 = load double, ptr %834, align 8, !tbaa !5
  %836 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %176, double noundef %835, ptr noundef nonnull align 8 dereferenceable(24) %836) #7
  %837 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %172, ptr noundef nonnull align 8 dereferenceable(24) %176) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %176) #7
  %838 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  %839 = load double, ptr %838, align 8, !tbaa !5
  %840 = fmul double %839, 5.000000e-01
  %841 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0178384) #7
  %842 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %841) #7
  %843 = load double, ptr %171, align 8, !tbaa !5
  %844 = call double @llvm.fmuladd.f64(double %840, double %842, double %843)
  store double %844, ptr %171, align 8, !tbaa !5
  %845 = add nuw nsw i64 %.0178384, 1
  %exitcond389.not = icmp eq i64 %845, 100
  br i1 %exitcond389.not, label %803, label %804, !llvm.loop !27

846:                                              ; preds = %830, %825, %804
  %847 = landingpad { ptr, i32 }
          cleanup
  br label %1242

848:                                              ; preds = %816, %814, %806
  %849 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %173) #7
  br label %1242

850:                                              ; preds = %823, %821, %818
  %851 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %174) #7
  br label %1242

852:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %178) #7
  invoke void @_ZN7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2Ebbb(ptr noundef nonnull align 1 dereferenceable(3) %178, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %853 unwind label %856

853:                                              ; preds = %852
  call void @_ZNK7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE6removeERNS_6SystemIS3_EE(ptr noundef nonnull align 1 dereferenceable(3) %178, ptr noundef nonnull align 8 dereferenceable(352) %4) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %179) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %179, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %180) #7
  call void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %180, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %181) #7
  store double 0.000000e+00, ptr %181, align 8, !tbaa !5
  br label %858

854:                                              ; preds = %803
  %855 = landingpad { ptr, i32 }
          cleanup
  br label %1241

856:                                              ; preds = %852
  %857 = landingpad { ptr, i32 }
          cleanup
  br label %1240

858:                                              ; preds = %853, %915
  %.0177385 = phi i64 [ 0, %853 ], [ %916, %915 ]
  %859 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  %860 = load double, ptr %859, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %182) #7
  %861 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  call void @_ZN7mjolnir4mathmiIdLm3ELm1EEENS0_6MatrixIT_XT0_EXT1_EEERKS4_S6_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %182, ptr noundef nonnull align 8 dereferenceable(24) %861, ptr noundef nonnull align 8 dereferenceable(24) %172) #7
  %862 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %183) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %183, double noundef %860, ptr noundef nonnull align 8 dereferenceable(24) %862) #7
  %863 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %179, ptr noundef nonnull align 8 dereferenceable(24) %183) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %183) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %184) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %185) #7
  call void @_ZN7mjolnir4math13cross_productIdEENS0_6MatrixIT_Lm3ELm1EEERKS4_S6_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %185, ptr noundef nonnull align 8 dereferenceable(24) %182, ptr noundef nonnull align 8 dereferenceable(24) %862) #7
  call void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind nonnull writable sret(%"class.mjolnir::math::Matrix.334") align 8 %184, double noundef %860, ptr noundef nonnull align 8 dereferenceable(24) %185) #7
  %864 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir4math6MatrixIdLm3ELm1EEpLIdEERS2_RKNS1_IT_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %180, ptr noundef nonnull align 8 dereferenceable(24) %184) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %185) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %184) #7
  %865 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE4massEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  %866 = load double, ptr %865, align 8, !tbaa !5
  %867 = fmul double %866, 5.000000e-01
  %868 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8velocityEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  %869 = call noundef double @_ZN7mjolnir4math9length_sqIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %868) #7
  %870 = load double, ptr %181, align 8, !tbaa !5
  %871 = call double @llvm.fmuladd.f64(double %867, double %869, double %870)
  store double %871, ptr %181, align 8, !tbaa !5
  br label %872

872:                                              ; preds = %885, %858
  %873 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %186, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %187)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %873, ptr noundef nonnull %186, i64 noundef 126, ptr noundef nonnull %187)
          to label %874 unwind label %.loopexit.split-lp.loopexit.split-lp

874:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %188) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %189) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %190) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %191) #7
  %875 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  %876 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %875) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %190, ptr noundef nonnull align 1 dereferenceable(1) %191, ptr noundef nonnull align 8 dereferenceable(8) %876)
          to label %877 unwind label %917

877:                                              ; preds = %874
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %192) #7
  %878 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %177, i64 noundef %.0177385) #7
  %879 = call noundef double @_ZN7mjolnir4math1XIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %878) #7
  store double %879, ptr %192, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %189, ptr noundef nonnull align 1 dereferenceable(1) %190, ptr noundef nonnull align 8 dereferenceable(8) %192)
          to label %880 unwind label %919

880:                                              ; preds = %877
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %188, ptr noundef nonnull align 8 dereferenceable(16) %189, i1 noundef zeroext false)
          to label %881 unwind label %919

881:                                              ; preds = %880
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %193) #7
  %882 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %194) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %194, ptr noundef nonnull @.str.404, i64 noundef 74)
  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.337") align 8 %193, ptr noundef nonnull align 8 dereferenceable(9) %882, ptr noundef nonnull align 8 dereferenceable(16) %194)
          to label %883 unwind label %921

883:                                              ; preds = %881
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull @.str.401, i64 noundef 92)
  %884 = 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) %188, ptr noundef nonnull align 8 dereferenceable(9) %193, ptr noundef nonnull %195, i64 noundef 126, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %885 unwind label %923

885:                                              ; preds = %883
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %194) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %188) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %192) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %191) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %190) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %188) #7
  %886 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %886, label %872, label %.preheader318, !llvm.loop !28

.preheader318:                                    ; preds = %885, %899
  %887 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %196, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %197)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %887, ptr noundef nonnull %196, i64 noundef 127, ptr noundef nonnull %197)
          to label %888 unwind label %.loopexit.split-lp.loopexit

888:                                              ; preds = %.preheader318
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %198) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %199) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %200) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %201) #7
  %889 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  %890 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %889) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %200, ptr noundef nonnull align 1 dereferenceable(1) %201, ptr noundef nonnull align 8 dereferenceable(8) %890)
          to label %891 unwind label %928

891:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %202) #7
  %892 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %177, i64 noundef %.0177385) #7
  %893 = call noundef double @_ZN7mjolnir4math1YIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %892) #7
  store double %893, ptr %202, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %199, ptr noundef nonnull align 1 dereferenceable(1) %200, ptr noundef nonnull align 8 dereferenceable(8) %202)
          to label %894 unwind label %930

894:                                              ; preds = %891
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %198, ptr noundef nonnull align 8 dereferenceable(16) %199, i1 noundef zeroext false)
          to label %895 unwind label %930

895:                                              ; preds = %894
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #7
  %896 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %204) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef nonnull @.str.405, i64 noundef 74)
  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.337") align 8 %203, ptr noundef nonnull align 8 dereferenceable(9) %896, ptr noundef nonnull align 8 dereferenceable(16) %204)
          to label %897 unwind label %932

897:                                              ; preds = %895
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %205, ptr noundef nonnull @.str.401, i64 noundef 92)
  %898 = 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) %198, ptr noundef nonnull align 8 dereferenceable(9) %203, ptr noundef nonnull %205, i64 noundef 127, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %899 unwind label %934

899:                                              ; preds = %897
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %204) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %198) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %202) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %199) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %198) #7
  %900 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %900, label %.preheader318, label %.preheader, !llvm.loop !29

.preheader:                                       ; preds = %899, %913
  %901 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %206, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %207)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %901, ptr noundef nonnull %206, i64 noundef 128, ptr noundef nonnull %207)
          to label %902 unwind label %.loopexit

902:                                              ; preds = %.preheader
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %208) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %209) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %210) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %211) #7
  %903 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %4, i64 noundef %.0177385) #7
  %904 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %903) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %210, ptr noundef nonnull align 1 dereferenceable(1) %211, ptr noundef nonnull align 8 dereferenceable(8) %904)
          to label %905 unwind label %939

905:                                              ; preds = %902
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %212) #7
  %906 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE8positionEm(ptr noundef nonnull align 8 dereferenceable(352) %177, i64 noundef %.0177385) #7
  %907 = call noundef double @_ZN7mjolnir4math1ZIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %906) #7
  store double %907, ptr %212, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %209, ptr noundef nonnull align 1 dereferenceable(1) %210, ptr noundef nonnull align 8 dereferenceable(8) %212)
          to label %908 unwind label %941

908:                                              ; preds = %905
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEEdNS1_2op2EQIddvEEE8evaluateEb(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %208, ptr noundef nonnull align 8 dereferenceable(16) %209, i1 noundef zeroext false)
          to label %909 unwind label %941

909:                                              ; preds = %908
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %213) #7
  %910 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %214) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %214, ptr noundef nonnull @.str.406, i64 noundef 74)
  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.337") align 8 %213, ptr noundef nonnull align 8 dereferenceable(9) %910, ptr noundef nonnull align 8 dereferenceable(16) %214)
          to label %911 unwind label %943

911:                                              ; preds = %909
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull @.str.401, i64 noundef 92)
  %912 = 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) %208, ptr noundef nonnull align 8 dereferenceable(9) %213, ptr noundef nonnull %215, i64 noundef 128, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %913 unwind label %945

913:                                              ; preds = %911
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %208) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %212) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %211) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %210) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %209) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %208) #7
  %914 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %914, label %.preheader, label %915, !llvm.loop !30

915:                                              ; preds = %913
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %182) #7
  %916 = add nuw nsw i64 %.0177385, 1
  %exitcond390.not = icmp eq i64 %916, 100
  br i1 %exitcond390.not, label %.preheader345, label %858, !llvm.loop !31

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

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

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

917:                                              ; preds = %874
  %918 = landingpad { ptr, i32 }
          cleanup
  br label %927

919:                                              ; preds = %880, %877
  %920 = landingpad { ptr, i32 }
          cleanup
  br label %926

921:                                              ; preds = %881
  %922 = landingpad { ptr, i32 }
          cleanup
  br label %925

923:                                              ; preds = %883
  %924 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #7
  br label %925

925:                                              ; preds = %923, %921
  %.pn229 = phi { ptr, i32 } [ %924, %923 ], [ %922, %921 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %194) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %188) #7
  br label %926

926:                                              ; preds = %925, %919
  %.pn229.pn = phi { ptr, i32 } [ %.pn229, %925 ], [ %920, %919 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %192) #7
  br label %927

927:                                              ; preds = %926, %917
  %.pn229.pn.pn = phi { ptr, i32 } [ %.pn229.pn, %926 ], [ %918, %917 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %191) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %190) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %189) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %188) #7
  br label %.loopexit.split-lp

928:                                              ; preds = %888
  %929 = landingpad { ptr, i32 }
          cleanup
  br label %938

930:                                              ; preds = %894, %891
  %931 = landingpad { ptr, i32 }
          cleanup
  br label %937

932:                                              ; preds = %895
  %933 = landingpad { ptr, i32 }
          cleanup
  br label %936

934:                                              ; preds = %897
  %935 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #7
  br label %936

936:                                              ; preds = %934, %932
  %.pn233 = phi { ptr, i32 } [ %935, %934 ], [ %933, %932 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %204) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %198) #7
  br label %937

937:                                              ; preds = %936, %930
  %.pn233.pn = phi { ptr, i32 } [ %.pn233, %936 ], [ %931, %930 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %202) #7
  br label %938

938:                                              ; preds = %937, %928
  %.pn233.pn.pn = phi { ptr, i32 } [ %.pn233.pn, %937 ], [ %929, %928 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %199) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %198) #7
  br label %.loopexit.split-lp

939:                                              ; preds = %902
  %940 = landingpad { ptr, i32 }
          cleanup
  br label %949

941:                                              ; preds = %908, %905
  %942 = landingpad { ptr, i32 }
          cleanup
  br label %948

943:                                              ; preds = %909
  %944 = landingpad { ptr, i32 }
          cleanup
  br label %947

945:                                              ; preds = %911
  %946 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %947

947:                                              ; preds = %945, %943
  %.pn237 = phi { ptr, i32 } [ %946, %945 ], [ %944, %943 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %208) #7
  br label %948

948:                                              ; preds = %947, %941
  %.pn237.pn = phi { ptr, i32 } [ %.pn237, %947 ], [ %942, %941 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %212) #7
  br label %949

949:                                              ; preds = %948, %939
  %.pn237.pn.pn = phi { ptr, i32 } [ %.pn237.pn, %948 ], [ %940, %939 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %211) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %210) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %209) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %208) #7
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %949, %938, %927
  %.pn237.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn, %949 ], [ %.pn233.pn.pn, %938 ], [ %.pn229.pn.pn, %927 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit319, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp320, %.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %182) #7
  br label %.loopexit.split-lp324

.preheader345:                                    ; preds = %915, %973
  %950 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %950, ptr noundef nonnull %216, i64 noundef 131, ptr noundef nonnull %217)
          to label %951 unwind label %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

951:                                              ; preds = %.preheader345
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %218) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %219) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %220) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %221) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %222) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %223) #7
  %952 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %179) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %222, ptr noundef nonnull align 1 dereferenceable(1) %223, ptr noundef nonnull align 8 dereferenceable(8) %952)
          to label %953 unwind label %1112

953:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %224) #7
  store double 0.000000e+00, ptr %224, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %221, ptr noundef nonnull align 1 dereferenceable(1) %222, ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %954 unwind label %1114

954:                                              ; preds = %953
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %220, ptr noundef nonnull align 8 dereferenceable(16) %221)
          to label %955 unwind label %1114

955:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %225) #7
  %956 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %957 unwind label %1116

957:                                              ; preds = %955
  store double %956, ptr %225, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %219, ptr noundef nonnull align 8 dereferenceable(33) %220, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %958 unwind label %1116

958:                                              ; preds = %957
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %218, ptr noundef nonnull align 8 dereferenceable(33) %219)
          to label %959 unwind label %1118

959:                                              ; preds = %958
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %226) #7
  %960 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %227) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %227, ptr noundef nonnull @.str.407, i64 noundef 36)
  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.337") align 8 %226, ptr noundef nonnull align 8 dereferenceable(9) %960, ptr noundef nonnull align 8 dereferenceable(16) %227)
          to label %961 unwind label %1120

961:                                              ; preds = %959
  %962 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %228) #7
  %963 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %964 unwind label %1122

964:                                              ; preds = %961
  store double %963, ptr %228, align 8
  %965 = 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) %962, ptr noundef nonnull align 8 dereferenceable(8) %228)
  %966 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %226, ptr noundef nonnull align 8 dereferenceable(9) %965)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %229, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %230) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %231) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %231, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %232) #7
  %967 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %968 unwind label %1124

968:                                              ; preds = %964
  store double %967, ptr %232, align 8
  %969 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %231, ptr noundef nonnull align 8 dereferenceable(8) %232)
          to label %970 unwind label %1124

970:                                              ; preds = %968
  store i32 %969, ptr %230, align 4
  %971 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %230)
  %972 = 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) %218, ptr noundef nonnull align 8 dereferenceable(9) %966, ptr noundef nonnull %229, i64 noundef 131, i32 noundef 1, i32 noundef %971, i64 noundef 0)
          to label %973 unwind label %1124

973:                                              ; preds = %970
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %231) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %218) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %219) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %220) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %224) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %223) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %222) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %221) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %220) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %219) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %218) #7
  %974 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %974, label %.preheader345, label %.preheader341, !llvm.loop !32

.preheader341:                                    ; preds = %973, %998
  %975 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %233, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %234)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %975, ptr noundef nonnull %233, i64 noundef 132, ptr noundef nonnull %234)
          to label %976 unwind label %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

976:                                              ; preds = %.preheader341
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %235) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %236) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %237) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %238) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %239) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %240) #7
  %977 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %179) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %239, ptr noundef nonnull align 1 dereferenceable(1) %240, ptr noundef nonnull align 8 dereferenceable(8) %977)
          to label %978 unwind label %1132

978:                                              ; preds = %976
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %241) #7
  store double 0.000000e+00, ptr %241, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %238, ptr noundef nonnull align 1 dereferenceable(1) %239, ptr noundef nonnull align 8 dereferenceable(8) %241)
          to label %979 unwind label %1134

979:                                              ; preds = %978
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %237, ptr noundef nonnull align 8 dereferenceable(16) %238)
          to label %980 unwind label %1134

980:                                              ; preds = %979
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %242) #7
  %981 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %982 unwind label %1136

982:                                              ; preds = %980
  store double %981, ptr %242, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %236, ptr noundef nonnull align 8 dereferenceable(33) %237, ptr noundef nonnull align 8 dereferenceable(8) %242)
          to label %983 unwind label %1136

983:                                              ; preds = %982
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %235, ptr noundef nonnull align 8 dereferenceable(33) %236)
          to label %984 unwind label %1138

984:                                              ; preds = %983
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %243) #7
  %985 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %244) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %244, ptr noundef nonnull @.str.408, i64 noundef 36)
  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.337") align 8 %243, ptr noundef nonnull align 8 dereferenceable(9) %985, ptr noundef nonnull align 8 dereferenceable(16) %244)
          to label %986 unwind label %1140

986:                                              ; preds = %984
  %987 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %245) #7
  %988 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %989 unwind label %1142

989:                                              ; preds = %986
  store double %988, ptr %245, align 8
  %990 = 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) %987, ptr noundef nonnull align 8 dereferenceable(8) %245)
  %991 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %243, ptr noundef nonnull align 8 dereferenceable(9) %990)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %246, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %247) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %248) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %248, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %249) #7
  %992 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %993 unwind label %1144

993:                                              ; preds = %989
  store double %992, ptr %249, align 8
  %994 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %248, ptr noundef nonnull align 8 dereferenceable(8) %249)
          to label %995 unwind label %1144

995:                                              ; preds = %993
  store i32 %994, ptr %247, align 4
  %996 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %247)
  %997 = 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) %235, ptr noundef nonnull align 8 dereferenceable(9) %991, ptr noundef nonnull %246, i64 noundef 132, i32 noundef 1, i32 noundef %996, i64 noundef 0)
          to label %998 unwind label %1144

998:                                              ; preds = %995
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %249) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %248) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %247) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %245) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %244) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %235) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %236) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %242) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %237) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %241) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %240) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %239) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %238) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %237) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %236) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %235) #7
  %999 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %999, label %.preheader341, label %.preheader338, !llvm.loop !33

.preheader338:                                    ; preds = %998, %1023
  %1000 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %250, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %251)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1000, ptr noundef nonnull %250, i64 noundef 133, ptr noundef nonnull %251)
          to label %1001 unwind label %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

1001:                                             ; preds = %.preheader338
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %252) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %253) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %254) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %255) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %256) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %257) #7
  %1002 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %179) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %256, ptr noundef nonnull align 1 dereferenceable(1) %257, ptr noundef nonnull align 8 dereferenceable(8) %1002)
          to label %1003 unwind label %1152

1003:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %258) #7
  store double 0.000000e+00, ptr %258, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %255, ptr noundef nonnull align 1 dereferenceable(1) %256, ptr noundef nonnull align 8 dereferenceable(8) %258)
          to label %1004 unwind label %1154

1004:                                             ; preds = %1003
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %254, ptr noundef nonnull align 8 dereferenceable(16) %255)
          to label %1005 unwind label %1154

1005:                                             ; preds = %1004
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %259) #7
  %1006 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1007 unwind label %1156

1007:                                             ; preds = %1005
  store double %1006, ptr %259, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %253, ptr noundef nonnull align 8 dereferenceable(33) %254, ptr noundef nonnull align 8 dereferenceable(8) %259)
          to label %1008 unwind label %1156

1008:                                             ; preds = %1007
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %252, ptr noundef nonnull align 8 dereferenceable(33) %253)
          to label %1009 unwind label %1158

1009:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %260) #7
  %1010 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %261) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %261, ptr noundef nonnull @.str.409, i64 noundef 36)
  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.337") align 8 %260, ptr noundef nonnull align 8 dereferenceable(9) %1010, ptr noundef nonnull align 8 dereferenceable(16) %261)
          to label %1011 unwind label %1160

1011:                                             ; preds = %1009
  %1012 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %262) #7
  %1013 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1014 unwind label %1162

1014:                                             ; preds = %1011
  store double %1013, ptr %262, align 8
  %1015 = 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) %1012, ptr noundef nonnull align 8 dereferenceable(8) %262)
  %1016 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %260, ptr noundef nonnull align 8 dereferenceable(9) %1015)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %263, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %264) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %265) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %265, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %266) #7
  %1017 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1018 unwind label %1164

1018:                                             ; preds = %1014
  store double %1017, ptr %266, align 8
  %1019 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %265, ptr noundef nonnull align 8 dereferenceable(8) %266)
          to label %1020 unwind label %1164

1020:                                             ; preds = %1018
  store i32 %1019, ptr %264, align 4
  %1021 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %264)
  %1022 = 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) %252, ptr noundef nonnull align 8 dereferenceable(9) %1016, ptr noundef nonnull %263, i64 noundef 133, i32 noundef 1, i32 noundef %1021, i64 noundef 0)
          to label %1023 unwind label %1164

1023:                                             ; preds = %1020
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %266) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %265) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %264) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %262) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %261) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %252) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %253) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %259) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %254) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %258) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %257) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %256) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %255) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %254) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %253) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %252) #7
  %1024 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %1024, label %.preheader338, label %.preheader334, !llvm.loop !34

.preheader334:                                    ; preds = %1023, %1048
  %1025 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %267, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1025, ptr noundef nonnull %267, i64 noundef 135, ptr noundef nonnull %268)
          to label %1026 unwind label %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit

1026:                                             ; preds = %.preheader334
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %269) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %270) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %271) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %272) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %273) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %274) #7
  %1027 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1XIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %180) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %273, ptr noundef nonnull align 1 dereferenceable(1) %274, ptr noundef nonnull align 8 dereferenceable(8) %1027)
          to label %1028 unwind label %1172

1028:                                             ; preds = %1026
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %275) #7
  store double 0.000000e+00, ptr %275, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %272, ptr noundef nonnull align 1 dereferenceable(1) %273, ptr noundef nonnull align 8 dereferenceable(8) %275)
          to label %1029 unwind label %1174

1029:                                             ; preds = %1028
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %271, ptr noundef nonnull align 8 dereferenceable(16) %272)
          to label %1030 unwind label %1174

1030:                                             ; preds = %1029
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %276) #7
  %1031 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1032 unwind label %1176

1032:                                             ; preds = %1030
  store double %1031, ptr %276, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %270, ptr noundef nonnull align 8 dereferenceable(33) %271, ptr noundef nonnull align 8 dereferenceable(8) %276)
          to label %1033 unwind label %1176

1033:                                             ; preds = %1032
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %269, ptr noundef nonnull align 8 dereferenceable(33) %270)
          to label %1034 unwind label %1178

1034:                                             ; preds = %1033
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %277) #7
  %1035 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %278) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %278, ptr noundef nonnull @.str.410, i64 noundef 33)
  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.337") align 8 %277, ptr noundef nonnull align 8 dereferenceable(9) %1035, ptr noundef nonnull align 8 dereferenceable(16) %278)
          to label %1036 unwind label %1180

1036:                                             ; preds = %1034
  %1037 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %279) #7
  %1038 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1039 unwind label %1182

1039:                                             ; preds = %1036
  store double %1038, ptr %279, align 8
  %1040 = 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) %1037, ptr noundef nonnull align 8 dereferenceable(8) %279)
  %1041 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %277, ptr noundef nonnull align 8 dereferenceable(9) %1040)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %280, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %281) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %282) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %282, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %283) #7
  %1042 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1043 unwind label %1184

1043:                                             ; preds = %1039
  store double %1042, ptr %283, align 8
  %1044 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %282, ptr noundef nonnull align 8 dereferenceable(8) %283)
          to label %1045 unwind label %1184

1045:                                             ; preds = %1043
  store i32 %1044, ptr %281, align 4
  %1046 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %281)
  %1047 = 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) %269, ptr noundef nonnull align 8 dereferenceable(9) %1041, ptr noundef nonnull %280, i64 noundef 135, i32 noundef 1, i32 noundef %1046, i64 noundef 0)
          to label %1048 unwind label %1184

1048:                                             ; preds = %1045
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %283) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %282) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %281) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %278) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %277) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %269) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %270) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %276) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %271) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %275) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %274) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %273) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %272) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %271) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %270) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %269) #7
  %1049 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %1049, label %.preheader334, label %.preheader331, !llvm.loop !35

.preheader331:                                    ; preds = %1048, %1073
  %1050 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %284, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %285)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1050, ptr noundef nonnull %284, i64 noundef 136, ptr noundef nonnull %285)
          to label %1051 unwind label %.loopexit.split-lp324.loopexit.split-lp.loopexit

1051:                                             ; preds = %.preheader331
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %286) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %287) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %288) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %289) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %290) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %291) #7
  %1052 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1YIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %180) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %290, ptr noundef nonnull align 1 dereferenceable(1) %291, ptr noundef nonnull align 8 dereferenceable(8) %1052)
          to label %1053 unwind label %1192

1053:                                             ; preds = %1051
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %292) #7
  store double 0.000000e+00, ptr %292, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %289, ptr noundef nonnull align 1 dereferenceable(1) %290, ptr noundef nonnull align 8 dereferenceable(8) %292)
          to label %1054 unwind label %1194

1054:                                             ; preds = %1053
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %288, ptr noundef nonnull align 8 dereferenceable(16) %289)
          to label %1055 unwind label %1194

1055:                                             ; preds = %1054
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %293) #7
  %1056 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1057 unwind label %1196

1057:                                             ; preds = %1055
  store double %1056, ptr %293, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %287, ptr noundef nonnull align 8 dereferenceable(33) %288, ptr noundef nonnull align 8 dereferenceable(8) %293)
          to label %1058 unwind label %1196

1058:                                             ; preds = %1057
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %286, ptr noundef nonnull align 8 dereferenceable(33) %287)
          to label %1059 unwind label %1198

1059:                                             ; preds = %1058
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %294) #7
  %1060 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %295) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %295, ptr noundef nonnull @.str.411, i64 noundef 33)
  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.337") align 8 %294, ptr noundef nonnull align 8 dereferenceable(9) %1060, ptr noundef nonnull align 8 dereferenceable(16) %295)
          to label %1061 unwind label %1200

1061:                                             ; preds = %1059
  %1062 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %296) #7
  %1063 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1064 unwind label %1202

1064:                                             ; preds = %1061
  store double %1063, ptr %296, align 8
  %1065 = 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) %1062, ptr noundef nonnull align 8 dereferenceable(8) %296)
  %1066 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %294, ptr noundef nonnull align 8 dereferenceable(9) %1065)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %297, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %298) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %299) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %299, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %300) #7
  %1067 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1068 unwind label %1204

1068:                                             ; preds = %1064
  store double %1067, ptr %300, align 8
  %1069 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %299, ptr noundef nonnull align 8 dereferenceable(8) %300)
          to label %1070 unwind label %1204

1070:                                             ; preds = %1068
  store i32 %1069, ptr %298, align 4
  %1071 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %298)
  %1072 = 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) %286, ptr noundef nonnull align 8 dereferenceable(9) %1066, ptr noundef nonnull %297, i64 noundef 136, i32 noundef 1, i32 noundef %1071, i64 noundef 0)
          to label %1073 unwind label %1204

1073:                                             ; preds = %1070
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %299) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %298) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %296) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %295) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %286) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %287) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %293) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %288) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %292) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %290) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %289) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %288) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %287) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %286) #7
  %1074 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %1074, label %.preheader331, label %.preheader327, !llvm.loop !36

.preheader327:                                    ; preds = %1073, %1098
  %1075 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %301, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %302)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1075, ptr noundef nonnull %301, i64 noundef 137, ptr noundef nonnull %302)
          to label %1076 unwind label %.loopexit.split-lp324.loopexit

1076:                                             ; preds = %.preheader327
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %303) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %304) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %305) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %306) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %307) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %308) #7
  %1077 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7mjolnir4math1ZIdEERT_RNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24) %180) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %307, ptr noundef nonnull align 1 dereferenceable(1) %308, ptr noundef nonnull align 8 dereferenceable(8) %1077)
          to label %1078 unwind label %1212

1078:                                             ; preds = %1076
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %309) #7
  store double 0.000000e+00, ptr %309, align 8, !tbaa !5
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr") align 8 %306, ptr noundef nonnull align 1 dereferenceable(1) %307, ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %1079 unwind label %1214

1079:                                             ; preds = %1078
  invoke void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEENS1_20assertion_evaluate_tIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.boost::test_tools::tt_detail::assertion_evaluate_t") align 8 %305, ptr noundef nonnull align 8 dereferenceable(16) %306)
          to label %1080 unwind label %1214

1080:                                             ; preds = %1079
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %310) #7
  %1081 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1082 unwind label %1216

1082:                                             ; preds = %1080
  store double %1081, ptr %310, align 8
  invoke void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 %304, ptr noundef nonnull align 8 dereferenceable(33) %305, ptr noundef nonnull align 8 dereferenceable(8) %310)
          to label %1083 unwind label %1216

1083:                                             ; preds = %1082
  invoke void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEEcvNS0_16assertion_resultEEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %303, ptr noundef nonnull align 8 dereferenceable(33) %304)
          to label %1084 unwind label %1218

1084:                                             ; preds = %1083
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %311) #7
  %1085 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %312) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %312, ptr noundef nonnull @.str.412, i64 noundef 33)
  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.337") align 8 %311, ptr noundef nonnull align 8 dereferenceable(9) %1085, ptr noundef nonnull align 8 dereferenceable(16) %312)
          to label %1086 unwind label %1220

1086:                                             ; preds = %1084
  %1087 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %313) #7
  %1088 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1089 unwind label %1222

1089:                                             ; preds = %1086
  store double %1088, ptr %313, align 8
  %1090 = 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) %1087, ptr noundef nonnull align 8 dereferenceable(8) %313)
  %1091 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost10test_tools9tt_detail14assertion_textERKNS_9unit_test12lazy_ostreamES5_(ptr noundef nonnull align 8 dereferenceable(9) %311, ptr noundef nonnull align 8 dereferenceable(9) %1090)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %314, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %315) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %316) #7
  call void @_ZN5boost10test_tools9tt_detail14assertion_typeC2ENS1_10check_typeE(ptr noundef nonnull align 4 dereferenceable(4) %316, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %317) #7
  %1092 = invoke double @_ZN5boost10test_tools9toleranceIdEENS0_9tt_detail15tolerance_manipIT_EES4_(double noundef 1.000000e-08)
          to label %1093 unwind label %1224

1093:                                             ; preds = %1089
  store double %1092, ptr %317, align 8
  %1094 = invoke i32 @_ZN5boost10test_tools9tt_detaillsIdEENS1_14assertion_typeERKS3_RKNS1_15tolerance_manipIT_EE(ptr noundef nonnull align 4 dereferenceable(4) %316, ptr noundef nonnull align 8 dereferenceable(8) %317)
          to label %1095 unwind label %1224

1095:                                             ; preds = %1093
  store i32 %1094, ptr %315, align 4
  %1096 = call noundef i32 @_ZN5boost10test_tools9tt_detail14assertion_typecvNS1_10check_typeEEv(ptr noundef nonnull align 4 dereferenceable(4) %315)
  %1097 = 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) %303, ptr noundef nonnull align 8 dereferenceable(9) %1091, ptr noundef nonnull %314, i64 noundef 137, i32 noundef 1, i32 noundef %1096, i64 noundef 0)
          to label %1098 unwind label %1224

1098:                                             ; preds = %1095
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %317) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %316) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %315) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %313) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %312) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %303) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %304) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %310) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %305) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %309) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %308) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %306) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %305) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %304) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %303) #7
  %1099 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %1099, label %.preheader327, label %.preheader322, !llvm.loop !37

.preheader322:                                    ; preds = %1098, %1108
  %1100 = load ptr, ptr @_ZN5boost9unit_test12_GLOBAL__N_113unit_test_logE, align 8, !tbaa !13
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %318, ptr noundef nonnull @.str.401, i64 noundef 92)
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %319)
  invoke void @_ZN5boost9unit_test15unit_test_log_t14set_checkpointENS0_13basic_cstringIKcEEmS4_(ptr noundef nonnull align 8 dereferenceable(8) %1100, ptr noundef nonnull %318, i64 noundef 140, ptr noundef nonnull %319)
          to label %1101 unwind label %.loopexit323

1101:                                             ; preds = %.preheader322
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %320) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %321) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %322) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %323) #7
  invoke void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::value_expr") align 8 %322, ptr noundef nonnull align 1 dereferenceable(1) %323, ptr noundef nonnull align 8 dereferenceable(8) %171)
          to label %1102 unwind label %1232

1102:                                             ; preds = %1101
  invoke void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEgeIS4_EENS1_11binary_exprIS5_T_NS1_2op2GEIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion::binary_expr.347") align 8 %321, ptr noundef nonnull align 1 dereferenceable(1) %322, ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %1103 unwind label %1232

1103:                                             ; preds = %1102
  invoke void @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEES4_NS1_2op2GEIddvEEE8evaluateEb(ptr dead_on_unwind nonnull writable sret(%"class.boost::test_tools::assertion_result") align 8 %320, ptr noundef nonnull align 8 dereferenceable(16) %321, i1 noundef zeroext false)
          to label %1104 unwind label %1232

1104:                                             ; preds = %1103
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %324) #7
  %1105 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5boost9unit_test12lazy_ostream8instanceEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %325) #7
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %325, ptr noundef nonnull @.str.414, i64 noundef 31)
  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.337") align 8 %324, ptr noundef nonnull align 8 dereferenceable(9) %1105, ptr noundef nonnull align 8 dereferenceable(16) %325)
          to label %1106 unwind label %1234

1106:                                             ; preds = %1104
  call void @_ZN5boost9unit_test13basic_cstringIKcEC2ImEEPS2_T_(ptr noundef nonnull align 8 dereferenceable(16) %326, ptr noundef nonnull @.str.401, i64 noundef 92)
  %1107 = 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) %320, ptr noundef nonnull align 8 dereferenceable(9) %324, ptr noundef nonnull %326, i64 noundef 140, i32 noundef 1, i32 noundef 14, i64 noundef 0)
          to label %1108 unwind label %1236

1108:                                             ; preds = %1106
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %325) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %324) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %320) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %323) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %322) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %321) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %320) #7
  %1109 = call noundef zeroext i1 @_ZN5boost10test_tools9tt_detail10dummy_condEv()
  br i1 %1109, label %.preheader322, label %1110, !llvm.loop !38

1110:                                             ; preds = %1108
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %180) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %179) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %178) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %177) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %177) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %172) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #7
  %1111 = add nuw nsw i64 %.0179386, 1
  %exitcond391.not = icmp eq i64 %1111, 100
  br i1 %exitcond391.not, label %802, label %.preheader346, !llvm.loop !39

.loopexit323:                                     ; preds = %.preheader322
  %lpad.loopexit325 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp324

.loopexit.split-lp324.loopexit:                   ; preds = %.preheader327
  %lpad.loopexit328 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp324

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

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

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

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

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

1112:                                             ; preds = %951
  %1113 = landingpad { ptr, i32 }
          cleanup
  br label %1131

1114:                                             ; preds = %954, %953
  %1115 = landingpad { ptr, i32 }
          cleanup
  br label %1130

1116:                                             ; preds = %957, %955
  %1117 = landingpad { ptr, i32 }
          cleanup
  br label %1129

1118:                                             ; preds = %958
  %1119 = landingpad { ptr, i32 }
          cleanup
  br label %1128

1120:                                             ; preds = %959
  %1121 = landingpad { ptr, i32 }
          cleanup
  br label %1127

1122:                                             ; preds = %961
  %1123 = landingpad { ptr, i32 }
          cleanup
  br label %1126

1124:                                             ; preds = %970, %968, %964
  %1125 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %231) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %230) #7
  br label %1126

1126:                                             ; preds = %1124, %1122
  %.pn184 = phi { ptr, i32 } [ %1125, %1124 ], [ %1123, %1122 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %228) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  br label %1127

1127:                                             ; preds = %1126, %1120
  %.pn184.pn = phi { ptr, i32 } [ %.pn184, %1126 ], [ %1121, %1120 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %218) #7
  br label %1128

1128:                                             ; preds = %1127, %1118
  %.pn184.pn.pn = phi { ptr, i32 } [ %.pn184.pn, %1127 ], [ %1119, %1118 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %219) #7
  br label %1129

1129:                                             ; preds = %1128, %1116
  %.pn184.pn.pn.pn = phi { ptr, i32 } [ %.pn184.pn.pn, %1128 ], [ %1117, %1116 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %225) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %220) #7
  br label %1130

1130:                                             ; preds = %1129, %1114
  %.pn184.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn184.pn.pn.pn, %1129 ], [ %1115, %1114 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %224) #7
  br label %1131

1131:                                             ; preds = %1130, %1112
  %.pn184.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn184.pn.pn.pn.pn, %1130 ], [ %1113, %1112 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %223) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %222) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %221) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %220) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %219) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %218) #7
  br label %.loopexit.split-lp324

1132:                                             ; preds = %976
  %1133 = landingpad { ptr, i32 }
          cleanup
  br label %1151

1134:                                             ; preds = %979, %978
  %1135 = landingpad { ptr, i32 }
          cleanup
  br label %1150

1136:                                             ; preds = %982, %980
  %1137 = landingpad { ptr, i32 }
          cleanup
  br label %1149

1138:                                             ; preds = %983
  %1139 = landingpad { ptr, i32 }
          cleanup
  br label %1148

1140:                                             ; preds = %984
  %1141 = landingpad { ptr, i32 }
          cleanup
  br label %1147

1142:                                             ; preds = %986
  %1143 = landingpad { ptr, i32 }
          cleanup
  br label %1146

1144:                                             ; preds = %995, %993, %989
  %1145 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %249) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %248) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %247) #7
  br label %1146

1146:                                             ; preds = %1144, %1142
  %.pn191 = phi { ptr, i32 } [ %1145, %1144 ], [ %1143, %1142 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %245) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  br label %1147

1147:                                             ; preds = %1146, %1140
  %.pn191.pn = phi { ptr, i32 } [ %.pn191, %1146 ], [ %1141, %1140 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %244) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %235) #7
  br label %1148

1148:                                             ; preds = %1147, %1138
  %.pn191.pn.pn = phi { ptr, i32 } [ %.pn191.pn, %1147 ], [ %1139, %1138 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %236) #7
  br label %1149

1149:                                             ; preds = %1148, %1136
  %.pn191.pn.pn.pn = phi { ptr, i32 } [ %.pn191.pn.pn, %1148 ], [ %1137, %1136 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %242) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %237) #7
  br label %1150

1150:                                             ; preds = %1149, %1134
  %.pn191.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn191.pn.pn.pn, %1149 ], [ %1135, %1134 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %241) #7
  br label %1151

1151:                                             ; preds = %1150, %1132
  %.pn191.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn191.pn.pn.pn.pn, %1150 ], [ %1133, %1132 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %240) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %239) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %238) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %237) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %236) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %235) #7
  br label %.loopexit.split-lp324

1152:                                             ; preds = %1001
  %1153 = landingpad { ptr, i32 }
          cleanup
  br label %1171

1154:                                             ; preds = %1004, %1003
  %1155 = landingpad { ptr, i32 }
          cleanup
  br label %1170

1156:                                             ; preds = %1007, %1005
  %1157 = landingpad { ptr, i32 }
          cleanup
  br label %1169

1158:                                             ; preds = %1008
  %1159 = landingpad { ptr, i32 }
          cleanup
  br label %1168

1160:                                             ; preds = %1009
  %1161 = landingpad { ptr, i32 }
          cleanup
  br label %1167

1162:                                             ; preds = %1011
  %1163 = landingpad { ptr, i32 }
          cleanup
  br label %1166

1164:                                             ; preds = %1020, %1018, %1014
  %1165 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %266) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %265) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %264) #7
  br label %1166

1166:                                             ; preds = %1164, %1162
  %.pn198 = phi { ptr, i32 } [ %1165, %1164 ], [ %1163, %1162 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %262) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #7
  br label %1167

1167:                                             ; preds = %1166, %1160
  %.pn198.pn = phi { ptr, i32 } [ %.pn198, %1166 ], [ %1161, %1160 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %261) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %252) #7
  br label %1168

1168:                                             ; preds = %1167, %1158
  %.pn198.pn.pn = phi { ptr, i32 } [ %.pn198.pn, %1167 ], [ %1159, %1158 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %253) #7
  br label %1169

1169:                                             ; preds = %1168, %1156
  %.pn198.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn, %1168 ], [ %1157, %1156 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %259) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %254) #7
  br label %1170

1170:                                             ; preds = %1169, %1154
  %.pn198.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn, %1169 ], [ %1155, %1154 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %258) #7
  br label %1171

1171:                                             ; preds = %1170, %1152
  %.pn198.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn.pn, %1170 ], [ %1153, %1152 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %257) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %256) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %255) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %254) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %253) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %252) #7
  br label %.loopexit.split-lp324

1172:                                             ; preds = %1026
  %1173 = landingpad { ptr, i32 }
          cleanup
  br label %1191

1174:                                             ; preds = %1029, %1028
  %1175 = landingpad { ptr, i32 }
          cleanup
  br label %1190

1176:                                             ; preds = %1032, %1030
  %1177 = landingpad { ptr, i32 }
          cleanup
  br label %1189

1178:                                             ; preds = %1033
  %1179 = landingpad { ptr, i32 }
          cleanup
  br label %1188

1180:                                             ; preds = %1034
  %1181 = landingpad { ptr, i32 }
          cleanup
  br label %1187

1182:                                             ; preds = %1036
  %1183 = landingpad { ptr, i32 }
          cleanup
  br label %1186

1184:                                             ; preds = %1045, %1043, %1039
  %1185 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %283) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %282) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %281) #7
  br label %1186

1186:                                             ; preds = %1184, %1182
  %.pn205 = phi { ptr, i32 } [ %1185, %1184 ], [ %1183, %1182 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #7
  br label %1187

1187:                                             ; preds = %1186, %1180
  %.pn205.pn = phi { ptr, i32 } [ %.pn205, %1186 ], [ %1181, %1180 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %278) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %277) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %269) #7
  br label %1188

1188:                                             ; preds = %1187, %1178
  %.pn205.pn.pn = phi { ptr, i32 } [ %.pn205.pn, %1187 ], [ %1179, %1178 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %270) #7
  br label %1189

1189:                                             ; preds = %1188, %1176
  %.pn205.pn.pn.pn = phi { ptr, i32 } [ %.pn205.pn.pn, %1188 ], [ %1177, %1176 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %276) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %271) #7
  br label %1190

1190:                                             ; preds = %1189, %1174
  %.pn205.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn205.pn.pn.pn, %1189 ], [ %1175, %1174 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %275) #7
  br label %1191

1191:                                             ; preds = %1190, %1172
  %.pn205.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn205.pn.pn.pn.pn, %1190 ], [ %1173, %1172 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %274) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %273) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %272) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %271) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %270) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %269) #7
  br label %.loopexit.split-lp324

1192:                                             ; preds = %1051
  %1193 = landingpad { ptr, i32 }
          cleanup
  br label %1211

1194:                                             ; preds = %1054, %1053
  %1195 = landingpad { ptr, i32 }
          cleanup
  br label %1210

1196:                                             ; preds = %1057, %1055
  %1197 = landingpad { ptr, i32 }
          cleanup
  br label %1209

1198:                                             ; preds = %1058
  %1199 = landingpad { ptr, i32 }
          cleanup
  br label %1208

1200:                                             ; preds = %1059
  %1201 = landingpad { ptr, i32 }
          cleanup
  br label %1207

1202:                                             ; preds = %1061
  %1203 = landingpad { ptr, i32 }
          cleanup
  br label %1206

1204:                                             ; preds = %1070, %1068, %1064
  %1205 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %299) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %298) #7
  br label %1206

1206:                                             ; preds = %1204, %1202
  %.pn212 = phi { ptr, i32 } [ %1205, %1204 ], [ %1203, %1202 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %296) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  br label %1207

1207:                                             ; preds = %1206, %1200
  %.pn212.pn = phi { ptr, i32 } [ %.pn212, %1206 ], [ %1201, %1200 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %295) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %286) #7
  br label %1208

1208:                                             ; preds = %1207, %1198
  %.pn212.pn.pn = phi { ptr, i32 } [ %.pn212.pn, %1207 ], [ %1199, %1198 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %287) #7
  br label %1209

1209:                                             ; preds = %1208, %1196
  %.pn212.pn.pn.pn = phi { ptr, i32 } [ %.pn212.pn.pn, %1208 ], [ %1197, %1196 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %293) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %288) #7
  br label %1210

1210:                                             ; preds = %1209, %1194
  %.pn212.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn212.pn.pn.pn, %1209 ], [ %1195, %1194 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %292) #7
  br label %1211

1211:                                             ; preds = %1210, %1192
  %.pn212.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn212.pn.pn.pn.pn, %1210 ], [ %1193, %1192 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %290) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %289) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %288) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %287) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %286) #7
  br label %.loopexit.split-lp324

1212:                                             ; preds = %1076
  %1213 = landingpad { ptr, i32 }
          cleanup
  br label %1231

1214:                                             ; preds = %1079, %1078
  %1215 = landingpad { ptr, i32 }
          cleanup
  br label %1230

1216:                                             ; preds = %1082, %1080
  %1217 = landingpad { ptr, i32 }
          cleanup
  br label %1229

1218:                                             ; preds = %1083
  %1219 = landingpad { ptr, i32 }
          cleanup
  br label %1228

1220:                                             ; preds = %1084
  %1221 = landingpad { ptr, i32 }
          cleanup
  br label %1227

1222:                                             ; preds = %1086
  %1223 = landingpad { ptr, i32 }
          cleanup
  br label %1226

1224:                                             ; preds = %1095, %1093, %1089
  %1225 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %317) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %316) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %315) #7
  br label %1226

1226:                                             ; preds = %1224, %1222
  %.pn219 = phi { ptr, i32 } [ %1225, %1224 ], [ %1223, %1222 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %313) #7
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #7
  br label %1227

1227:                                             ; preds = %1226, %1220
  %.pn219.pn = phi { ptr, i32 } [ %.pn219, %1226 ], [ %1221, %1220 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %312) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %303) #7
  br label %1228

1228:                                             ; preds = %1227, %1218
  %.pn219.pn.pn = phi { ptr, i32 } [ %.pn219.pn, %1227 ], [ %1219, %1218 ]
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %304) #7
  br label %1229

1229:                                             ; preds = %1228, %1216
  %.pn219.pn.pn.pn = phi { ptr, i32 } [ %.pn219.pn.pn, %1228 ], [ %1217, %1216 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %310) #7
  call void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %305) #7
  br label %1230

1230:                                             ; preds = %1229, %1214
  %.pn219.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn219.pn.pn.pn, %1229 ], [ %1215, %1214 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %309) #7
  br label %1231

1231:                                             ; preds = %1230, %1212
  %.pn219.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn219.pn.pn.pn.pn, %1230 ], [ %1213, %1212 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %308) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %306) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %305) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %304) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %303) #7
  br label %.loopexit.split-lp324

1232:                                             ; preds = %1103, %1102, %1101
  %1233 = landingpad { ptr, i32 }
          cleanup
  br label %1239

1234:                                             ; preds = %1104
  %1235 = landingpad { ptr, i32 }
          cleanup
  br label %1238

1236:                                             ; preds = %1106
  %1237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost9unit_test12lazy_ostreamD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  br label %1238

1238:                                             ; preds = %1236, %1234
  %.pn226 = phi { ptr, i32 } [ %1237, %1236 ], [ %1235, %1234 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %325) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %324) #7
  call void @_ZN5boost10test_tools16assertion_resultD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %320) #7
  br label %1239

1239:                                             ; preds = %1238, %1232
  %.pn226.pn = phi { ptr, i32 } [ %.pn226, %1238 ], [ %1233, %1232 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %323) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %322) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %321) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %320) #7
  br label %.loopexit.split-lp324

.loopexit.split-lp324:                            ; preds = %.loopexit323, %.loopexit.split-lp324.loopexit.split-lp.loopexit, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp324.loopexit, %1239, %1231, %1211, %1191, %1171, %1151, %1131, %.loopexit.split-lp
  %.pn237.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn, %.loopexit.split-lp ], [ %.pn226.pn, %1239 ], [ %.pn219.pn.pn.pn.pn.pn, %1231 ], [ %.pn212.pn.pn.pn.pn.pn, %1211 ], [ %.pn205.pn.pn.pn.pn.pn, %1191 ], [ %.pn198.pn.pn.pn.pn.pn, %1171 ], [ %.pn191.pn.pn.pn.pn.pn, %1151 ], [ %.pn184.pn.pn.pn.pn.pn, %1131 ], [ %lpad.loopexit325, %.loopexit323 ], [ %lpad.loopexit328, %.loopexit.split-lp324.loopexit ], [ %lpad.loopexit332, %.loopexit.split-lp324.loopexit.split-lp.loopexit ], [ %lpad.loopexit335, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit339, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit342, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp343, %.loopexit.split-lp324.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %180) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %179) #7
  br label %1240

1240:                                             ; preds = %.loopexit.split-lp324, %856
  %.pn237.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn, %.loopexit.split-lp324 ], [ %857, %856 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %178) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %177) #7
  br label %1241

1241:                                             ; preds = %1240, %854
  %.pn237.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn, %1240 ], [ %855, %854 ]
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %177) #7
  br label %1242

1242:                                             ; preds = %846, %848, %850, %1241
  %.pn245.pn = phi { ptr, i32 } [ %.pn237.pn.pn.pn.pn.pn.pn, %1241 ], [ %847, %846 ], [ %851, %850 ], [ %849, %848 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %172) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #7
  br label %1243

1243:                                             ; preds = %1242, %801, %337
  %.pn312.pn.pn = phi { ptr, i32 } [ %.pn312.pn, %801 ], [ %.pn245.pn, %1242 ], [ %338, %337 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #7
  br label %1244

1244:                                             ; preds = %1243, %335
  %.pn312.pn.pn.pn = phi { ptr, i32 } [ %.pn312.pn.pn, %1243 ], [ %336, %335 ]
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %6) #7
  call void @_ZN7mjolnir6SystemINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(352) %4) #7
  call void @llvm.lifetime.end.p0(i64 352, ptr nonnull %4) #7
  br label %1245

1245:                                             ; preds = %1244, %334
  %.pn312.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn312.pn.pn.pn, %1244 ], [ %.pn, %334 ]
  resume { ptr, i32 } %.pn312.pn.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 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 uwtable
declare dso_local void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Em(ptr noundef nonnull align 8 dereferenceable(5000), i64 noundef) unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4math15make_coordinateINS0_6MatrixIdLm3ELm1EEEEET_NS0_12real_type_ofIS4_E4typeES7_S7_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, double noundef, double noundef, double noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(5000)) local_unnamed_addr #2 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4mathmlIddLm3ELm1EEENS0_6MatrixIT_XT1_EXT2_EEET0_RKS4_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, double noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEEC2Ebbb(ptr noundef nonnull align 1 dereferenceable(3), i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNK7mjolnir19SystemMotionRemoverINS_15SimulatorTraitsIdNS_17UnlimitedBoundaryEEEE6removeERNS_6SystemIS3_EE(ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(352)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4mathmiIdLm3ELm1EEENS0_6MatrixIT_XT0_EXT1_EEERKS4_S6_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7mjolnir4math13cross_productIdEENS0_6MatrixIT_Lm3ELm1EEERKS4_S6_(ptr dead_on_unwind noalias writable sret(%"class.mjolnir::math::Matrix.334") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost10test_tools9assertion4seedpmIRdEENS1_10value_exprIT_EEOS6_(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: 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: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIdEENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_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 double @_ZN7mjolnir4math1XIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

; 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.337") align 8, ptr noundef nonnull align 8 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6

; 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 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 double @_ZN7mjolnir4math1YIdEET_RKNS0_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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN7mjolnir4math1ZIdEET_RKNS0_6MatrixIS2_Lm3ELm1EEE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail18assertion_evaluateINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_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 #6

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

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

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEEdNS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9tt_detaillsINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_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.343") align 8, ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEeqIS4_EENS1_11binary_exprIS5_T_NS1_2op2EQIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::binary_expr.345") 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_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_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 void @_ZN5boost10test_tools9tt_detail20assertion_evaluate_tINS0_9assertion11binary_exprINS3_10value_exprIRdEES6_NS3_2op2EQIddvEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #4 align 2

; 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 uwtable
declare dso_local void @_ZN5boost10test_tools9assertion15expression_baseINS1_10value_exprIRdEEdEgeIS4_EENS1_11binary_exprIS5_T_NS1_2op2GEIdNS6_4RhsTIS9_E4typeEvEEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion::binary_expr.347") 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 @_ZNK5boost10test_tools9assertion11binary_exprINS1_10value_exprIRdEES4_NS1_2op2GEIddvEEE8evaluateEb(ptr dead_on_unwind noalias writable sret(%"class.boost::test_tools::assertion_result") align 8, ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) local_unnamed_addr #2 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

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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { 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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{i64 0, i64 24, !10}
!10 = !{!7, !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"any pointer", !7, i64 0}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass