; LLVM IR from ddemidov/amgcl :: examples (ns_search)

; 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.amgcl::profiler" = type { %"class.std::__cxx11::basic_string", [8 x i8], %"struct.amgcl::profiler<>::profile_unit", %"class.std::vector" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"struct.amgcl::profiler<>::profile_unit" = type { double, double, %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, amgcl::profiler<>::profile_unit>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, amgcl::profiler<>::profile_unit>>, 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>, amgcl::profiler<>::profile_unit>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, amgcl::profiler<>::profile_unit>>, 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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl" }
%"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl" = type { %"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.boost::program_options::options_description" = type { %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.7", %"class.std::vector.12", %"class.std::vector.16" }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.12" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.boost::program_options::options_description_easy_init" = type { ptr }
%"class.boost::program_options::positional_options_description" = type { %"class.std::vector.27", %"class.std::__cxx11::basic_string" }
%"class.std::vector.27" = type { %"struct.std::_Vector_base.28" }
%"struct.std::_Vector_base.28" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::program_options::variables_map" = type { %"class.boost::program_options::abstract_variables_map", %"class.std::map.32", %"class.std::set", %"class.std::map.41" }
%"class.boost::program_options::abstract_variables_map" = type { ptr, ptr }
%"class.std::map.32" = type { %"class.std::_Rb_tree.33" }
%"class.std::_Rb_tree.33" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, boost::program_options::variable_value>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, boost::program_options::variable_value>>, 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>, boost::program_options::variable_value>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, boost::program_options::variable_value>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set" = type { %"class.std::_Rb_tree.37" }
%"class.std::_Rb_tree.37" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.41" = type { %"class.std::_Rb_tree.42" }
%"class.std::_Rb_tree.42" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, 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>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.boost::program_options::basic_parsed_options" = type <{ %"class.std::vector.46", ptr, i32, [4 x i8] }>
%"class.std::vector.46" = type { %"struct.std::_Vector_base.47" }
%"struct.std::_Vector_base.47" = type { %"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::program_options::basic_command_line_parser" = type { %"class.boost::program_options::detail::cmdline", ptr }
%"class.boost::program_options::detail::cmdline" = type { %"class.std::vector.27", i32, i8, ptr, ptr, %"class.boost::function1.51", %"class.boost::function1.52" }
%"class.boost::function1.51" = type { %"class.boost::function_base" }
%"class.boost::function_base" = type { ptr, %"union.boost::detail::function::function_buffer" }
%"union.boost::detail::function::function_buffer" = type { %"union.boost::detail::function::function_buffer_members" }
%"union.boost::detail::function::function_buffer_members" = type { %"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" }
%"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" = type { { i64, i64 }, ptr }
%"class.boost::function1.52" = type { %"class.boost::function_base" }
%"class.boost::property_tree::basic_ptree" = type { %"class.std::__cxx11::basic_string", ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.58" = type { %"struct.std::_Vector_base.59" }
%"struct.std::_Vector_base.59" = 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::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<std::vector<double>, std::allocator<std::vector<double>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<std::vector<double>, std::allocator<std::vector<double>>>::_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.amgcl::profiler<>::scoped_ticker" = type { ptr }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.66", %"struct.std::_Head_base.67" }
%"struct.std::_Tuple_impl.66" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { i64 }
%"struct.std::_Head_base.67" = type { i64 }
%"class.amgcl::io::mm_reader" = type { %"class.std::basic_ifstream", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i64, i64 }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.68 }
%union.anon.68 = type { i32 }
%"class.std::tuple.69" = type { %"struct.std::_Tuple_impl.70" }
%"struct.std::_Tuple_impl.70" = type { %"struct.std::_Tuple_impl.71", %"struct.std::_Head_base.73" }
%"struct.std::_Tuple_impl.71" = type { %"struct.std::_Head_base.72" }
%"struct.std::_Head_base.72" = type { ptr }
%"struct.std::_Head_base.73" = type { ptr }
%"class.std::allocator.60" = 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.std::tuple.74" = type { %"struct.std::_Tuple_impl.75" }
%"struct.std::_Tuple_impl.75" = type { %"struct.std::_Tuple_impl.76", %"struct.std::_Head_base.73" }
%"struct.std::_Tuple_impl.76" = type { %"struct.std::_Tuple_impl.77", %"struct.std::_Head_base.81" }
%"struct.std::_Tuple_impl.77" = type { %"struct.std::_Tuple_impl.78", %"struct.std::_Head_base.80" }
%"struct.std::_Tuple_impl.78" = type { %"struct.std::_Head_base.79" }
%"struct.std::_Head_base.79" = type { ptr }
%"struct.std::_Head_base.80" = type { ptr }
%"struct.std::_Head_base.81" = type { ptr }
%"class.boost::property_tree::string_path" = type { %"class.std::__cxx11::basic_string", i8, %"class.__gnu_cxx::__normal_iterator.82" }
%"class.__gnu_cxx::__normal_iterator.82" = type { ptr }
%"struct.boost::property_tree::id_translator" = type { i8 }
%"struct.std::_List_iterator" = type { ptr }
%"class.amgcl::make_solver" = type { %"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", i64, %"class.amgcl::amg", %"struct.amgcl::runtime::solver::wrapper" }
%"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params" = type { %"struct.amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::params", %"class.boost::property_tree::basic_ptree" }
%"struct.amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::params" = type <{ %"class.boost::property_tree::basic_ptree", %"class.boost::property_tree::basic_ptree", i32, i8, [3 x i8], i32, i32, i32, i32, i32, i8, [3 x i8] }>
%"class.amgcl::amg" = type { %"struct.amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::params", %"class.std::__cxx11::list.83" }
%"class.std::__cxx11::list.83" = type { %"class.std::__cxx11::_List_base.84" }
%"class.std::__cxx11::_List_base.84" = type { %"struct.std::__cxx11::_List_base<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level, std::allocator<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level>>::_List_impl" }
%"struct.std::__cxx11::_List_base<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level, std::allocator<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.amgcl::runtime::solver::wrapper" = type { i32, ptr }
%"struct.amgcl::detail::empty_params" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.88" = type { ptr }
%"class.std::tuple.89" = type { %"struct.std::_Tuple_impl.90" }
%"struct.std::_Tuple_impl.90" = type { %"struct.std::_Tuple_impl.91", %"struct.std::_Head_base.67" }
%"struct.std::_Tuple_impl.91" = type { %"struct.std::_Head_base.92" }
%"struct.std::_Head_base.92" = type { double }
%"class.std::tuple.93" = type { %"struct.std::_Tuple_impl.94" }
%"struct.std::_Tuple_impl.94" = type { %"struct.std::_Tuple_impl.95", %"struct.std::_Head_base.97" }
%"struct.std::_Tuple_impl.95" = type { %"struct.std::_Head_base.96" }
%"struct.std::_Head_base.96" = type { ptr }
%"struct.std::_Head_base.97" = type { ptr }

@_ZN5amgcl4profE = external dso_local global %"class.amgcl::profiler", align 8
@.str = external hidden unnamed_addr constant [8 x i8], align 1
@_ZN5boost15program_options19options_description21m_default_line_lengthE = external constant i32, align 4
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [6 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %"class.boost::program_options::options_description", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.boost::program_options::options_description_easy_init", align 8
  %12 = alloca i8, align 1
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca %"class.boost::program_options::positional_options_description", align 8
  %16 = alloca %"class.boost::program_options::variables_map", align 8
  %17 = alloca %"class.boost::program_options::basic_parsed_options", align 8
  %18 = alloca %"class.boost::program_options::basic_command_line_parser", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %"class.boost::property_tree::basic_ptree", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"class.std::locale", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca ptr, align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %36 = alloca ptr, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::vector.53", align 8
  %43 = alloca %"class.std::vector.53", align 8
  %44 = alloca %"class.std::vector.58", align 8
  %45 = alloca %"class.std::vector.58", align 8
  %46 = alloca %"class.std::__cxx11::list", align 8
  %47 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca i8, align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca i64, align 8
  %57 = alloca %"class.std::tuple", align 8
  %58 = alloca %"class.amgcl::io::mm_reader", align 8
  %59 = alloca %"class.std::tuple.69", align 8
  %60 = alloca i8, align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca %"class.std::tuple", align 8
  %69 = alloca %"class.amgcl::io::mm_reader", align 8
  %70 = alloca %"class.std::tuple.69", align 8
  %71 = alloca i8, align 1
  %72 = alloca double, align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %"class.std::vector.58", align 8
  %79 = alloca i64, align 8
  %80 = alloca %"class.std::tuple", align 8
  %81 = alloca %"class.amgcl::io::mm_reader", align 8
  %82 = alloca %"class.std::tuple.69", align 8
  %83 = alloca i8, align 1
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator", align 1
  %91 = alloca %"class.std::vector.58", align 8
  %92 = alloca double, align 8
  %93 = alloca %"class.std::allocator.60", align 1
  %94 = alloca i64, align 8
  %95 = alloca double, align 8
  %96 = alloca i64, align 8
  %97 = alloca i64, align 8
  %98 = alloca i64, align 8
  %99 = alloca i64, align 8
  %100 = alloca i64, align 8
  %101 = alloca %"class.std::mersenne_twister_engine", align 8
  %102 = alloca %"class.std::uniform_real_distribution", align 8
  %103 = alloca %"class.std::vector.58", align 8
  %104 = alloca %"class.std::allocator.60", align 1
  %105 = alloca %"class.std::vector.58", align 8
  %106 = alloca double, align 8
  %107 = alloca %"class.std::allocator.60", align 1
  %108 = alloca %"class.std::tuple.74", align 8
  %109 = alloca %"class.boost::property_tree::string_path", align 8
  %110 = alloca %"struct.boost::property_tree::id_translator", align 1
  %111 = alloca i8, align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca i32, align 4
  %115 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator", align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::vector.58", align 8
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca %"struct.std::_List_iterator", align 8
  %124 = alloca %"struct.std::_List_iterator", align 8
  %125 = alloca ptr, align 8
  %126 = alloca i64, align 8
  %127 = alloca %"class.boost::property_tree::string_path", align 8
  %128 = alloca %"struct.boost::property_tree::id_translator", align 1
  %129 = alloca %"class.boost::property_tree::string_path", align 8
  %130 = alloca %"struct.boost::property_tree::id_translator", align 1
  %131 = alloca %"class.boost::property_tree::string_path", align 8
  %132 = alloca %"struct.boost::property_tree::id_translator", align 1
  %133 = alloca ptr, align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator", align 1
  %136 = alloca %"class.amgcl::make_solver", align 8
  %137 = alloca %"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", align 8
  %138 = alloca %"struct.amgcl::detail::empty_params", align 1
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::allocator", align 1
  %141 = alloca ptr, align 8
  %142 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %143 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %144 = alloca ptr, align 8
  %145 = alloca i32, align 4
  %146 = alloca double, align 8
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::allocator", align 1
  %149 = alloca %"class.std::tuple.89", align 8
  %150 = alloca %"class.std::tuple.93", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::allocator", align 1
  %153 = alloca ptr, align 8
  %154 = alloca %"struct.std::_List_iterator", align 8
  %155 = alloca %"struct.std::_List_iterator", align 8
  %156 = alloca ptr, align 8
  %157 = alloca double, align 8
  %158 = alloca double, align 8
  %159 = alloca ptr, align 8
  %160 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %161 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %162 = alloca ptr, align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::allocator", align 1
  %165 = alloca %"class.std::vector.58", align 8
  %166 = alloca %"class.std::allocator.60", align 1
  %167 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::allocator", align 1
  %170 = alloca i32, align 4
  %171 = alloca ptr, align 8
  %172 = alloca %"struct.std::_List_iterator", align 8
  %173 = alloca %"struct.std::_List_iterator", align 8
  %174 = alloca ptr, align 8
  %175 = alloca i64, align 8
  %176 = alloca %"class.boost::property_tree::string_path", align 8
  %177 = alloca %"struct.boost::property_tree::id_translator", align 1
  %178 = alloca %"class.boost::property_tree::string_path", align 8
  %179 = alloca %"struct.boost::property_tree::id_translator", align 1
  %180 = alloca %"class.boost::property_tree::string_path", align 8
  %181 = alloca %"struct.boost::property_tree::id_translator", align 1
  %182 = alloca ptr, align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator", align 1
  %185 = alloca %"class.amgcl::make_solver", align 8
  %186 = alloca %"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", align 8
  %187 = alloca %"struct.amgcl::detail::empty_params", align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::allocator", align 1
  %190 = alloca i32, align 4
  %191 = alloca double, align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator", align 1
  %194 = alloca %"class.std::tuple.89", align 8
  %195 = alloca %"class.std::tuple.93", align 8
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::allocator", align 1
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator", align 1
  %200 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::allocator", align 1
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::allocator", align 1
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 128, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %205 unwind label %285

205:                                              ; preds = %2
  %206 = load i32, ptr @_ZN5boost15program_options19options_description21m_default_line_lengthE, align 4, !tbaa !5
  %207 = load i32, ptr @_ZN5boost15program_options19options_description21m_default_line_lengthE, align 4, !tbaa !5
  %208 = udiv i32 %207, 2
  invoke void @_ZN5boost15program_options19options_descriptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj(ptr noundef nonnull align 8 dereferenceable(128) %6, ptr noundef nonnull align 8 dereferenceable(32) %7, i32 noundef %206, i32 noundef %208)
          to label %209 unwind label %289

209:                                              ; preds = %205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %210 = invoke ptr @_ZN5boost15program_options19options_description11add_optionsEv(ptr noundef nonnull align 8 dereferenceable(128) %6)
          to label %211 unwind label %294

211:                                              ; preds = %209
  %212 = getelementptr inbounds %"class.boost::program_options::options_description_easy_init", ptr %11, i32 0, i32 0
  store ptr %210, ptr %212, align 8
  %213 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcS3_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef @.str.5, ptr noundef @.str.6)
          to label %214 unwind label %294

214:                                              ; preds = %211
  %215 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %216 unwind label %294

216:                                              ; preds = %214
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef @.str.7, ptr noundef %215, ptr noundef @.str.8)
          to label %218 unwind label %294

218:                                              ; preds = %216
  %219 = invoke noundef ptr @_ZN5boost15program_options5valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEEPNS0_11typed_valueIT_cEEv()
          to label %220 unwind label %294

220:                                              ; preds = %218
  %221 = invoke noundef ptr @_ZN5boost15program_options11typed_valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEcE10multitokenEv(ptr noundef nonnull align 8 dereferenceable(176) %219)
          to label %222 unwind label %294

222:                                              ; preds = %220
  %223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %217, ptr noundef @.str.9, ptr noundef %221, ptr noundef @.str.10)
          to label %224 unwind label %294

224:                                              ; preds = %222
  %225 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %226 unwind label %294

226:                                              ; preds = %224
  %227 = invoke noundef ptr @_ZN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE8requiredEv(ptr noundef nonnull align 8 dereferenceable(176) %225)
          to label %228 unwind label %294

228:                                              ; preds = %226
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef @.str.11, ptr noundef %227, ptr noundef @.str.12)
          to label %230 unwind label %294

230:                                              ; preds = %228
  %231 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %232 unwind label %294

232:                                              ; preds = %230
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef @.str.13, ptr noundef %231, ptr noundef @.str.14)
          to label %234 unwind label %294

234:                                              ; preds = %232
  %235 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %236 unwind label %294

236:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  store i8 0, ptr %12, align 1, !tbaa !11
  %237 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %235, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %238 unwind label %298

238:                                              ; preds = %236
  %239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef @.str.15, ptr noundef %237, ptr noundef @.str.16)
          to label %240 unwind label %298

240:                                              ; preds = %238
  %241 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %242 unwind label %298

242:                                              ; preds = %240
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef @.str.17, ptr noundef %241, ptr noundef @.str.18)
          to label %244 unwind label %298

244:                                              ; preds = %242
  %245 = invoke noundef ptr @_ZN5boost15program_options5valueIiEEPNS0_11typed_valueIT_cEEv()
          to label %246 unwind label %298

246:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  store i32 3, ptr %13, align 4, !tbaa !5
  %247 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIicE13default_valueERKi(ptr noundef nonnull align 8 dereferenceable(176) %245, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %248 unwind label %302

248:                                              ; preds = %246
  %249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef @.str.19, ptr noundef %247, ptr noundef @.str.20)
          to label %250 unwind label %302

250:                                              ; preds = %248
  %251 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %252 unwind label %302

252:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #8
  store i8 0, ptr %14, align 1, !tbaa !11
  %253 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %251, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %254 unwind label %306

254:                                              ; preds = %252
  %255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %249, ptr noundef @.str.21, ptr noundef %253, ptr noundef @.str.22)
          to label %256 unwind label %306

256:                                              ; preds = %254
  %257 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %258 unwind label %306

258:                                              ; preds = %256
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef @.str.23, ptr noundef %257, ptr noundef @.str.24)
          to label %260 unwind label %306

260:                                              ; preds = %258
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr %15) #8
  invoke void @_ZN5boost15program_options30positional_options_descriptionC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %15)
          to label %261 unwind label %313

261:                                              ; preds = %260
  %262 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN5boost15program_options30positional_options_description3addEPKci(ptr noundef nonnull align 8 dereferenceable(56) %15, ptr noundef @.str.25, i32 noundef -1)
          to label %263 unwind label %317

263:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 160, ptr %16) #8
  invoke void @_ZN5boost15program_options13variables_mapC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %16)
          to label %264 unwind label %321

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 40, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 120, ptr %18) #8
  %265 = load i32, ptr %4, align 4, !tbaa !5
  %266 = load ptr, ptr %5, align 8, !tbaa !9
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc(ptr noundef nonnull align 8 dereferenceable(120) %18, i32 noundef %265, ptr noundef %266)
          to label %267 unwind label %325

267:                                              ; preds = %264
  %268 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE7optionsERKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %18, ptr noundef nonnull align 8 dereferenceable(128) %6)
          to label %269 unwind label %329

269:                                              ; preds = %267
  %270 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE10positionalERKNS0_30positional_options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %268, ptr noundef nonnull align 8 dereferenceable(56) %15)
          to label %271 unwind label %329

271:                                              ; preds = %269
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcE3runEv(ptr dead_on_unwind writable sret(%"class.boost::program_options::basic_parsed_options") align 8 %17, ptr noundef nonnull align 8 dereferenceable(120) %270)
          to label %272 unwind label %329

272:                                              ; preds = %271
  invoke void @_ZN5boost15program_options5storeERKNS0_20basic_parsed_optionsIcEERNS0_13variables_mapEb(ptr noundef nonnull align 8 dereferenceable(36) %17, ptr noundef nonnull align 8 dereferenceable(160) %16, i1 noundef zeroext false)
          to label %273 unwind label %333

273:                                              ; preds = %272
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %17) #8
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %18) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #8
  invoke void @_ZN5boost15program_options6notifyERNS0_13variables_mapE(ptr noundef nonnull align 8 dereferenceable(160) %16)
          to label %274 unwind label %339

274:                                              ; preds = %273
  %275 = getelementptr inbounds i8, ptr %16, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %276 unwind label %343

276:                                              ; preds = %274
  %277 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %275, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %278 unwind label %347

278:                                              ; preds = %276
  %279 = icmp ne i64 %277, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br i1 %279, label %280, label %352

280:                                              ; preds = %278
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_optionslsERSoRKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(128) %6)
          to label %282 unwind label %339

282:                                              ; preds = %280
  %283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %284 unwind label %339

284:                                              ; preds = %282
  store i32 0, ptr %3, align 4
  store i32 1, ptr %21, align 4
  br label %1498

285:                                              ; preds = %2
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %9, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %10, align 4
  br label %293

289:                                              ; preds = %205
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %9, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %293

293:                                              ; preds = %289, %285
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  br label %1522

294:                                              ; preds = %234, %232, %230, %228, %226, %224, %222, %220, %218, %216, %214, %211, %209
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %9, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %10, align 4
  br label %312

298:                                              ; preds = %244, %242, %240, %238, %236
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %9, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %10, align 4
  br label %311

302:                                              ; preds = %250, %248, %246
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %9, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %10, align 4
  br label %310

306:                                              ; preds = %258, %256, %254, %252
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %9, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  br label %310

310:                                              ; preds = %306, %302
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %311

311:                                              ; preds = %310, %298
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  br label %312

312:                                              ; preds = %311, %294
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  br label %1521

313:                                              ; preds = %260
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %9, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %10, align 4
  br label %1520

317:                                              ; preds = %261
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %9, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %10, align 4
  br label %1519

321:                                              ; preds = %263
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %9, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %10, align 4
  br label %1518

325:                                              ; preds = %264
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %9, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %10, align 4
  br label %338

329:                                              ; preds = %271, %269, %267
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %9, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %10, align 4
  br label %337

333:                                              ; preds = %272
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %9, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %10, align 4
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %17) #8
  br label %337

337:                                              ; preds = %333, %329
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %18) #8
  br label %338

338:                                              ; preds = %337, %325
  call void @llvm.lifetime.end.p0(i64 120, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #8
  br label %1517

339:                                              ; preds = %379, %282, %280, %273
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %9, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %10, align 4
  br label %1517

343:                                              ; preds = %274
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %9, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %10, align 4
  br label %351

347:                                              ; preds = %276
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %9, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %351

351:                                              ; preds = %347, %343
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %1517

352:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  store i32 0, ptr %22, align 4, !tbaa !5
  br label %353

353:                                              ; preds = %376, %352
  %354 = load i32, ptr %22, align 4, !tbaa !5
  %355 = load i32, ptr %4, align 4, !tbaa !5
  %356 = icmp slt i32 %354, %355
  br i1 %356, label %358, label %357

357:                                              ; preds = %353
  store i32 2, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %379

358:                                              ; preds = %353
  %359 = load i32, ptr %22, align 4, !tbaa !5
  %360 = icmp ne i32 %359, 0
  br i1 %360, label %361, label %368

361:                                              ; preds = %358
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
          to label %363 unwind label %364

363:                                              ; preds = %361
  br label %368

364:                                              ; preds = %368, %361
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %9, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %1517

368:                                              ; preds = %363, %358
  %369 = load ptr, ptr %5, align 8, !tbaa !9
  %370 = load i32, ptr %22, align 4, !tbaa !5
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds ptr, ptr %369, i64 %371
  %373 = load ptr, ptr %372, align 8, !tbaa !9
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %373)
          to label %375 unwind label %364

375:                                              ; preds = %368
  br label %376

376:                                              ; preds = %375
  %377 = load i32, ptr %22, align 4, !tbaa !5
  %378 = add nsw i32 %377, 1
  store i32 %378, ptr %22, align 4, !tbaa !5
  br label %353, !llvm.loop !13

379:                                              ; preds = %357
  %380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %381 unwind label %339

381:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 40, ptr %23) #8
  invoke void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23)
          to label %382 unwind label %395

382:                                              ; preds = %381
  %383 = getelementptr inbounds i8, ptr %16, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %384 unwind label %399

384:                                              ; preds = %382
  %385 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %383, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %386 unwind label %403

386:                                              ; preds = %384
  %387 = icmp ne i64 %385, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  br i1 %387, label %388, label %422

388:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %389 unwind label %408

389:                                              ; preds = %388
  %390 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %391 unwind label %412

391:                                              ; preds = %389
  %392 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %390)
          to label %393 unwind label %412

393:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  call void @_ZNSt6localeC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  invoke void @_ZN5boost13property_tree11json_parser9read_jsonINS0_11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEEEEvRKS9_RT_RKSt6locale(ptr noundef nonnull align 8 dereferenceable(32) %392, ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %394 unwind label %416

394:                                              ; preds = %393
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  br label %422

395:                                              ; preds = %381
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %9, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %10, align 4
  br label %1516

399:                                              ; preds = %382
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %9, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %10, align 4
  br label %407

403:                                              ; preds = %384
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %9, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %407

407:                                              ; preds = %403, %399
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  br label %1515

408:                                              ; preds = %388
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %9, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %10, align 4
  br label %421

412:                                              ; preds = %391, %389
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %9, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %10, align 4
  br label %420

416:                                              ; preds = %393
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %9, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %10, align 4
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %420

420:                                              ; preds = %416, %412
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %421

421:                                              ; preds = %420, %408
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  br label %1515

422:                                              ; preds = %394, %386
  %423 = getelementptr inbounds i8, ptr %16, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %424 unwind label %443

424:                                              ; preds = %422
  %425 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %423, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %426 unwind label %447

426:                                              ; preds = %424
  %427 = icmp ne i64 %425, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br i1 %427, label %428, label %473

428:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %429 unwind label %452

429:                                              ; preds = %428
  %430 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %431 unwind label %456

431:                                              ; preds = %429
  %432 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5boost15program_options14variable_value2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %430)
          to label %433 unwind label %456

433:                                              ; preds = %431
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  store ptr %432, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %434 = load ptr, ptr %31, align 8, !tbaa !9
  %435 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %434) #8
  %436 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %34, i32 0, i32 0
  store ptr %435, ptr %436, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %437 = load ptr, ptr %31, align 8, !tbaa !9
  %438 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %437) #8
  %439 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %35, i32 0, i32 0
  store ptr %438, ptr %439, align 8
  br label %440

440:                                              ; preds = %465, %433
  %441 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br i1 %441, label %461, label %442

442:                                              ; preds = %440
  store i32 5, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %472

443:                                              ; preds = %422
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %9, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %10, align 4
  br label %451

447:                                              ; preds = %424
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %9, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %451

451:                                              ; preds = %447, %443
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br label %1515

452:                                              ; preds = %428
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %9, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %10, align 4
  br label %460

456:                                              ; preds = %431, %429
  %457 = landingpad { ptr, i32 }
          cleanup
  %458 = extractvalue { ptr, i32 } %457, 0
  store ptr %458, ptr %9, align 8
  %459 = extractvalue { ptr, i32 } %457, 1
  store i32 %459, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %460

460:                                              ; preds = %456, %452
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  br label %471

461:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %462 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  store ptr %462, ptr %36, align 8, !tbaa !9
  %463 = load ptr, ptr %36, align 8, !tbaa !9
  invoke void @_ZN5amgcl3putERN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St4lessIS8_EEERKS8_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(32) %463)
          to label %464 unwind label %467

464:                                              ; preds = %461
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  br label %465

465:                                              ; preds = %464
  %466 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br label %440

467:                                              ; preds = %461
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %9, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %471

471:                                              ; preds = %467, %460
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %1515

472:                                              ; preds = %442
  br label %473

473:                                              ; preds = %472, %426
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  store i64 0, ptr %38, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %474 unwind label %501

474:                                              ; preds = %473
  %475 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %476 unwind label %505

476:                                              ; preds = %474
  %477 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5boost15program_options14variable_value2asIiEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %475)
          to label %478 unwind label %505

478:                                              ; preds = %476
  %479 = load i32, ptr %477, align 4, !tbaa !5
  %480 = sext i32 %479 to i64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  store i64 %480, ptr %39, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #8
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #8
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #8
  call void @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %481 unwind label %510

481:                                              ; preds = %478
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %47, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %482 unwind label %514

482:                                              ; preds = %481
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %483 unwind label %519

483:                                              ; preds = %482
  %484 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %485 unwind label %523

485:                                              ; preds = %483
  %486 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %484)
          to label %487 unwind label %523

487:                                              ; preds = %485
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %486)
          to label %488 unwind label %523

488:                                              ; preds = %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %489 unwind label %528

489:                                              ; preds = %488
  %490 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %491 unwind label %532

491:                                              ; preds = %489
  %492 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %490)
          to label %493 unwind label %532

493:                                              ; preds = %491
  %494 = load i8, ptr %492, align 1, !tbaa !11, !range !17, !noundef !18
  %495 = trunc i8 %494 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  %496 = zext i1 %495 to i8
  store i8 %496, ptr %53, align 1, !tbaa !11
  %497 = load i8, ptr %53, align 1, !tbaa !11, !range !17, !noundef !18
  %498 = trunc i8 %497 to i1
  br i1 %498, label %499, label %541

499:                                              ; preds = %493
  invoke void @_ZN5amgcl2io8read_crsIllldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_RSt6vectorIT0_SaISD_EERSC_IT1_SaISH_EERSC_IT2_SaISL_EEll(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef -1, i64 noundef -1)
          to label %500 unwind label %537

500:                                              ; preds = %499
  br label %564

501:                                              ; preds = %473
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %9, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %10, align 4
  br label %509

505:                                              ; preds = %476, %474
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %9, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %509

509:                                              ; preds = %505, %501
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %1514

510:                                              ; preds = %478
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %9, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %10, align 4
  br label %518

514:                                              ; preds = %481
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %9, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %518

518:                                              ; preds = %514, %510
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  br label %760

519:                                              ; preds = %482
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %9, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %10, align 4
  br label %527

523:                                              ; preds = %487, %485, %483
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %9, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %527

527:                                              ; preds = %523, %519
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %759

528:                                              ; preds = %488
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %9, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %10, align 4
  br label %536

532:                                              ; preds = %491, %489
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %9, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %536

536:                                              ; preds = %532, %528
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  br label %758

537:                                              ; preds = %499
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %9, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %10, align 4
  br label %758

541:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 576, ptr %58) #8
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %58, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %542 unwind label %550

542:                                              ; preds = %541
  invoke void @_ZN5amgcl2io9mm_readerclIldEESt5tupleIJmmEERSt6vectorIT_SaIS6_EES9_RS5_IT0_SaISA_EEll(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %57, ptr noundef nonnull align 8 dereferenceable(576) %58, ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef -1, i64 noundef -1)
          to label %543 unwind label %554

543:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #8
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.69") align 8 %59, ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  %544 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRlS0_EEaSImmEENSt9enable_ifIXcl12__assignableIT_T0_EEERS1_E4typeEOS_IJS4_S5_EE(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 8 dereferenceable(16) %57) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #8
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %58) #8
  call void @llvm.lifetime.end.p0(i64 576, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #8
  %545 = load i64, ptr %37, align 8, !tbaa !15
  %546 = load i64, ptr %56, align 8, !tbaa !15
  %547 = icmp eq i64 %545, %546
  %548 = zext i1 %547 to i8
  store i8 %548, ptr %60, align 1, !tbaa !11
  invoke void @_ZN5amgcl12preconditionIbA25_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %60, ptr noundef nonnull align 1 dereferenceable(25) @.str.33)
          to label %549 unwind label %559

549:                                              ; preds = %543
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  br label %564

550:                                              ; preds = %541
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %9, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %10, align 4
  br label %558

554:                                              ; preds = %542
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %9, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %10, align 4
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %58) #8
  br label %558

558:                                              ; preds = %554, %550
  call void @llvm.lifetime.end.p0(i64 576, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #8
  br label %563

559:                                              ; preds = %543
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %9, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  br label %563

563:                                              ; preds = %559, %558
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  br label %758

564:                                              ; preds = %549, %500
  %565 = getelementptr inbounds i8, ptr %16, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %566 unwind label %581

566:                                              ; preds = %564
  %567 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %565, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %568 unwind label %585

568:                                              ; preds = %566
  %569 = icmp ne i64 %567, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br i1 %569, label %570, label %633

570:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %571 unwind label %590

571:                                              ; preds = %570
  %572 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %573 unwind label %594

573:                                              ; preds = %571
  %574 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %572)
          to label %575 unwind label %594

575:                                              ; preds = %573
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %574)
          to label %576 unwind label %594

576:                                              ; preds = %575
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  %577 = load i8, ptr %53, align 1, !tbaa !11, !range !17, !noundef !18
  %578 = trunc i8 %577 to i1
  br i1 %578, label %579, label %603

579:                                              ; preds = %576
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef -1, i64 noundef -1)
          to label %580 unwind label %599

580:                                              ; preds = %579
  br label %616

581:                                              ; preds = %564
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %9, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %10, align 4
  br label %589

585:                                              ; preds = %566
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %9, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %589

589:                                              ; preds = %585, %581
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %758

590:                                              ; preds = %570
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %9, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %10, align 4
  br label %598

594:                                              ; preds = %575, %573, %571
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %9, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %598

598:                                              ; preds = %594, %590
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  br label %632

599:                                              ; preds = %579
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %9, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %10, align 4
  br label %631

603:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #8
  call void @llvm.lifetime.start.p0(i64 576, ptr %69) #8
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %69, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %604 unwind label %607

604:                                              ; preds = %603
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %68, ptr noundef nonnull align 8 dereferenceable(576) %69, ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef -1, i64 noundef -1)
          to label %605 unwind label %611

605:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #8
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.69") align 8 %70, ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %67) #8
  %606 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRlS0_EEaSImmEENSt9enable_ifIXcl12__assignableIT_T0_EEERS1_E4typeEOS_IJS4_S5_EE(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #8
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %69) #8
  call void @llvm.lifetime.end.p0(i64 576, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #8
  br label %616

607:                                              ; preds = %603
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %9, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %10, align 4
  br label %615

611:                                              ; preds = %604
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %9, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %10, align 4
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %69) #8
  br label %615

615:                                              ; preds = %611, %607
  call void @llvm.lifetime.end.p0(i64 576, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #8
  br label %631

616:                                              ; preds = %605, %580
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #8
  %617 = load i64, ptr %66, align 8, !tbaa !15
  %618 = load i64, ptr %37, align 8, !tbaa !15
  %619 = icmp eq i64 %617, %618
  br i1 %619, label %620, label %623

620:                                              ; preds = %616
  %621 = load i64, ptr %67, align 8, !tbaa !15
  %622 = icmp eq i64 %621, 1
  br label %623

623:                                              ; preds = %620, %616
  %624 = phi i1 [ false, %616 ], [ %622, %620 ]
  %625 = zext i1 %624 to i8
  store i8 %625, ptr %71, align 1, !tbaa !11
  invoke void @_ZN5amgcl12preconditionIbA30_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %71, ptr noundef nonnull align 1 dereferenceable(30) @.str.35)
          to label %626 unwind label %627

626:                                              ; preds = %623
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  br label %640

627:                                              ; preds = %623
  %628 = landingpad { ptr, i32 }
          cleanup
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %9, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  br label %631

631:                                              ; preds = %627, %615, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %632

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

633:                                              ; preds = %568
  %634 = load i64, ptr %37, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  store double 1.000000e+00, ptr %72, align 8, !tbaa !19
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %634, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %635 unwind label %636

635:                                              ; preds = %633
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  br label %640

636:                                              ; preds = %633
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %9, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  br label %758

640:                                              ; preds = %635, %626
  %641 = getelementptr inbounds i8, ptr %16, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %642 unwind label %657

642:                                              ; preds = %640
  %643 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %641, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %644 unwind label %661

644:                                              ; preds = %642
  %645 = icmp ne i64 %643, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  br i1 %645, label %646, label %740

646:                                              ; preds = %644
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %647 unwind label %666

647:                                              ; preds = %646
  %648 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %649 unwind label %670

649:                                              ; preds = %647
  %650 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %648)
          to label %651 unwind label %670

651:                                              ; preds = %649
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %652 unwind label %670

652:                                              ; preds = %651
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  %653 = load i8, ptr %53, align 1, !tbaa !11, !range !17, !noundef !18
  %654 = trunc i8 %653 to i1
  br i1 %654, label %655, label %679

655:                                              ; preds = %652
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef -1, i64 noundef -1)
          to label %656 unwind label %675

656:                                              ; preds = %655
  br label %692

657:                                              ; preds = %640
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %9, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %10, align 4
  br label %665

661:                                              ; preds = %642
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %9, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %665

665:                                              ; preds = %661, %657
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  br label %758

666:                                              ; preds = %646
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %9, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %10, align 4
  br label %674

670:                                              ; preds = %651, %649, %647
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %9, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %674

674:                                              ; preds = %670, %666
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  br label %739

675:                                              ; preds = %655
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %9, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %10, align 4
  br label %738

679:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 16, ptr %80) #8
  call void @llvm.lifetime.start.p0(i64 576, ptr %81) #8
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %81, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %680 unwind label %683

680:                                              ; preds = %679
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %80, ptr noundef nonnull align 8 dereferenceable(576) %81, ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef -1, i64 noundef -1)
          to label %681 unwind label %687

681:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 16, ptr %82) #8
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.69") align 8 %82, ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  %682 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRlS0_EEaSImmEENSt9enable_ifIXcl12__assignableIT_T0_EEERS1_E4typeEOS_IJS4_S5_EE(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr noundef nonnull align 8 dereferenceable(16) %80) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #8
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %81) #8
  call void @llvm.lifetime.end.p0(i64 576, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #8
  br label %692

683:                                              ; preds = %679
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %9, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %10, align 4
  br label %691

687:                                              ; preds = %680
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %9, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %10, align 4
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %81) #8
  br label %691

691:                                              ; preds = %687, %683
  call void @llvm.lifetime.end.p0(i64 576, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #8
  br label %738

692:                                              ; preds = %681, %656
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #8
  %693 = load i64, ptr %79, align 8, !tbaa !15
  %694 = load i64, ptr %37, align 8, !tbaa !15
  %695 = icmp eq i64 %693, %694
  %696 = zext i1 %695 to i8
  store i8 %696, ptr %83, align 1, !tbaa !11
  invoke void @_ZN5amgcl12preconditionIbA40_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %83, ptr noundef nonnull align 1 dereferenceable(40) @.str.37)
          to label %697 unwind label %703

697:                                              ; preds = %692
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #8
  store i64 0, ptr %84, align 8, !tbaa !15
  br label %698

698:                                              ; preds = %734, %697
  %699 = load i64, ptr %84, align 8, !tbaa !15
  %700 = load i64, ptr %38, align 8, !tbaa !15
  %701 = icmp slt i64 %699, %700
  br i1 %701, label %707, label %702

702:                                              ; preds = %698
  store i32 7, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  br label %737

703:                                              ; preds = %692
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %9, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #8
  br label %738

707:                                              ; preds = %698
  %708 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE12emplace_backIJRlEEERS3_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %709 unwind label %715

709:                                              ; preds = %707
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #8
  store i64 0, ptr %85, align 8, !tbaa !15
  br label %710

710:                                              ; preds = %730, %709
  %711 = load i64, ptr %85, align 8, !tbaa !15
  %712 = load i64, ptr %37, align 8, !tbaa !15
  %713 = icmp slt i64 %711, %712
  br i1 %713, label %719, label %714

714:                                              ; preds = %710
  store i32 10, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  br label %733

715:                                              ; preds = %707
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %9, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  br label %738

719:                                              ; preds = %710
  %720 = load i64, ptr %85, align 8, !tbaa !15
  %721 = load i64, ptr %38, align 8, !tbaa !15
  %722 = mul nsw i64 %720, %721
  %723 = load i64, ptr %84, align 8, !tbaa !15
  %724 = add nsw i64 %722, %723
  %725 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %724) #8
  %726 = load double, ptr %725, align 8, !tbaa !19
  %727 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  %728 = load i64, ptr %85, align 8, !tbaa !15
  %729 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %727, i64 noundef %728) #8
  store double %726, ptr %729, align 8, !tbaa !19
  br label %730

730:                                              ; preds = %719
  %731 = load i64, ptr %85, align 8, !tbaa !15
  %732 = add nsw i64 %731, 1
  store i64 %732, ptr %85, align 8, !tbaa !15
  br label %710, !llvm.loop !21

733:                                              ; preds = %714
  br label %734

734:                                              ; preds = %733
  %735 = load i64, ptr %84, align 8, !tbaa !15
  %736 = add nsw i64 %735, 1
  store i64 %736, ptr %84, align 8, !tbaa !15
  br label %698, !llvm.loop !22

737:                                              ; preds = %702
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %740

738:                                              ; preds = %715, %703, %691, %675
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %739

739:                                              ; preds = %738, %674
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %758

740:                                              ; preds = %737, %644
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %741 unwind label %761

741:                                              ; preds = %740
  %742 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %743 unwind label %765

743:                                              ; preds = %741
  %744 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %745 unwind label %765

745:                                              ; preds = %743
  %746 = load i8, ptr %744, align 1, !tbaa !11, !range !17, !noundef !18
  %747 = trunc i8 %746 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  br i1 %747, label %748, label %878

748:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %749 unwind label %770

749:                                              ; preds = %748
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %88, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %750 unwind label %774

750:                                              ; preds = %749
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %91) #8
  %751 = load i64, ptr %37, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #8
  store double 1.000000e+00, ptr %92, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %751, ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %752 unwind label %779

752:                                              ; preds = %750
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  store i64 0, ptr %94, align 8, !tbaa !15
  br label %753

753:                                              ; preds = %825, %752
  %754 = load i64, ptr %94, align 8, !tbaa !15
  %755 = load i64, ptr %37, align 8, !tbaa !15
  %756 = icmp slt i64 %754, %755
  br i1 %756, label %783, label %757

757:                                              ; preds = %753
  store i32 13, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %828

758:                                              ; preds = %739, %665, %636, %632, %589, %563, %537, %536
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %759

759:                                              ; preds = %758, %527
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  br label %760

760:                                              ; preds = %759, %518
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %1513

761:                                              ; preds = %740
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %9, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %10, align 4
  br label %769

765:                                              ; preds = %743, %741
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %9, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %769

769:                                              ; preds = %765, %761
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  br label %1513

770:                                              ; preds = %748
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %9, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %10, align 4
  br label %778

774:                                              ; preds = %749
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %9, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %778

778:                                              ; preds = %774, %770
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  br label %877

779:                                              ; preds = %750
  %780 = landingpad { ptr, i32 }
          cleanup
  %781 = extractvalue { ptr, i32 } %780, 0
  store ptr %781, ptr %9, align 8
  %782 = extractvalue { ptr, i32 } %780, 1
  store i32 %782, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #8
  br label %876

783:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  store double 1.000000e+00, ptr %95, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  %784 = load i64, ptr %94, align 8, !tbaa !15
  %785 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %784) #8
  %786 = load i64, ptr %785, align 8, !tbaa !15
  store i64 %786, ptr %96, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #8
  %787 = load i64, ptr %94, align 8, !tbaa !15
  %788 = add nsw i64 %787, 1
  %789 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %788) #8
  %790 = load i64, ptr %789, align 8, !tbaa !15
  store i64 %790, ptr %97, align 8, !tbaa !15
  br label %791

791:                                              ; preds = %809, %783
  %792 = load i64, ptr %96, align 8, !tbaa !15
  %793 = load i64, ptr %97, align 8, !tbaa !15
  %794 = icmp slt i64 %792, %793
  br i1 %794, label %796, label %795

795:                                              ; preds = %791
  store i32 16, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  br label %812

796:                                              ; preds = %791
  %797 = load i64, ptr %96, align 8, !tbaa !15
  %798 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %797) #8
  %799 = load i64, ptr %798, align 8, !tbaa !15
  %800 = load i64, ptr %94, align 8, !tbaa !15
  %801 = icmp eq i64 %799, %800
  br i1 %801, label %802, label %808

802:                                              ; preds = %796
  %803 = load i64, ptr %96, align 8, !tbaa !15
  %804 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %803) #8
  %805 = load double, ptr %804, align 8, !tbaa !19
  %806 = call double @sqrt(double noundef %805) #8
  %807 = fdiv double 1.000000e+00, %806
  store double %807, ptr %95, align 8, !tbaa !19
  br label %808

808:                                              ; preds = %802, %796
  br label %809

809:                                              ; preds = %808
  %810 = load i64, ptr %96, align 8, !tbaa !15
  %811 = add nsw i64 %810, 1
  store i64 %811, ptr %96, align 8, !tbaa !15
  br label %791, !llvm.loop !23

812:                                              ; preds = %795
  %813 = load double, ptr %95, align 8, !tbaa !19
  %814 = invoke noundef zeroext i1 @_ZSt5isnand(double noundef %813)
          to label %815 unwind label %820

815:                                              ; preds = %812
  br i1 %814, label %824, label %816

816:                                              ; preds = %815
  %817 = load double, ptr %95, align 8, !tbaa !19
  %818 = load i64, ptr %94, align 8, !tbaa !15
  %819 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %818) #8
  store double %817, ptr %819, align 8, !tbaa !19
  br label %824

820:                                              ; preds = %812
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %9, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #8
  br label %876

824:                                              ; preds = %816, %815
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  br label %825

825:                                              ; preds = %824
  %826 = load i64, ptr %94, align 8, !tbaa !15
  %827 = add nsw i64 %826, 1
  store i64 %827, ptr %94, align 8, !tbaa !15
  br label %753, !llvm.loop !24

828:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #8
  store i64 0, ptr %98, align 8, !tbaa !15
  br label %829

829:                                              ; preds = %872, %828
  %830 = load i64, ptr %98, align 8, !tbaa !15
  %831 = load i64, ptr %37, align 8, !tbaa !15
  %832 = icmp slt i64 %830, %831
  br i1 %832, label %834, label %833

833:                                              ; preds = %829
  store i32 19, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #8
  br label %875

834:                                              ; preds = %829
  %835 = load i64, ptr %98, align 8, !tbaa !15
  %836 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %835) #8
  %837 = load double, ptr %836, align 8, !tbaa !19
  %838 = load i64, ptr %98, align 8, !tbaa !15
  %839 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %838) #8
  %840 = load double, ptr %839, align 8, !tbaa !19
  %841 = fmul double %840, %837
  store double %841, ptr %839, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #8
  %842 = load i64, ptr %98, align 8, !tbaa !15
  %843 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %842) #8
  %844 = load i64, ptr %843, align 8, !tbaa !15
  store i64 %844, ptr %99, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #8
  %845 = load i64, ptr %98, align 8, !tbaa !15
  %846 = add nsw i64 %845, 1
  %847 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %846) #8
  %848 = load i64, ptr %847, align 8, !tbaa !15
  store i64 %848, ptr %100, align 8, !tbaa !15
  br label %849

849:                                              ; preds = %868, %834
  %850 = load i64, ptr %99, align 8, !tbaa !15
  %851 = load i64, ptr %100, align 8, !tbaa !15
  %852 = icmp slt i64 %850, %851
  br i1 %852, label %854, label %853

853:                                              ; preds = %849
  store i32 22, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  br label %871

854:                                              ; preds = %849
  %855 = load i64, ptr %98, align 8, !tbaa !15
  %856 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %855) #8
  %857 = load double, ptr %856, align 8, !tbaa !19
  %858 = load i64, ptr %99, align 8, !tbaa !15
  %859 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %858) #8
  %860 = load i64, ptr %859, align 8, !tbaa !15
  %861 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %860) #8
  %862 = load double, ptr %861, align 8, !tbaa !19
  %863 = fmul double %857, %862
  %864 = load i64, ptr %99, align 8, !tbaa !15
  %865 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %864) #8
  %866 = load double, ptr %865, align 8, !tbaa !19
  %867 = fmul double %866, %863
  store double %867, ptr %865, align 8, !tbaa !19
  br label %868

868:                                              ; preds = %854
  %869 = load i64, ptr %99, align 8, !tbaa !15
  %870 = add nsw i64 %869, 1
  store i64 %870, ptr %99, align 8, !tbaa !15
  br label %849, !llvm.loop !25

871:                                              ; preds = %853
  br label %872

872:                                              ; preds = %871
  %873 = load i64, ptr %98, align 8, !tbaa !15
  %874 = add nsw i64 %873, 1
  store i64 %874, ptr %98, align 8, !tbaa !15
  br label %829, !llvm.loop !26

875:                                              ; preds = %833
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  br label %878

876:                                              ; preds = %820, %779
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  br label %877

877:                                              ; preds = %876, %778
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  br label %1513

878:                                              ; preds = %875, %745
  call void @llvm.lifetime.start.p0(i64 5000, ptr %101) #8
  invoke void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %101)
          to label %879 unwind label %898

879:                                              ; preds = %878
  call void @llvm.lifetime.start.p0(i64 16, ptr %102) #8
  invoke void @_ZNSt25uniform_real_distributionIdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %102, double noundef -1.000000e+00, double noundef 1.000000e+00)
          to label %880 unwind label %902

880:                                              ; preds = %879
  call void @llvm.lifetime.start.p0(i64 24, ptr %103) #8
  %881 = load i64, ptr %37, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %104) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %103, i64 noundef %881, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %882 unwind label %906

882:                                              ; preds = %880
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %105) #8
  %883 = load i64, ptr %37, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  store double 0.000000e+00, ptr %106, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %105, i64 noundef %883, ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %884 unwind label %910

884:                                              ; preds = %882
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #8
  call void @_ZSt3tieIJlSt6vectorIlSaIlEES2_S0_IdSaIdEEEESt5tupleIJDpRT_EES8_(ptr dead_on_unwind writable sret(%"class.std::tuple.74") align 8 %108, ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %109) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %109, ptr noundef @.str.40, i8 noundef signext 46)
          to label %885 unwind label %914

885:                                              ; preds = %884
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #8
  store i8 1, ptr %111, align 1, !tbaa !11
  %886 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIbEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(48) %109, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %887 unwind label %918

887:                                              ; preds = %885
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %109) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %109) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %888 unwind label %923

888:                                              ; preds = %887
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %889 unwind label %927

889:                                              ; preds = %888
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #8
  %890 = load i64, ptr %38, align 8, !tbaa !15
  %891 = trunc i64 %890 to i32
  store i32 %891, ptr %114, align 4, !tbaa !5
  br label %892

892:                                              ; preds = %1224, %889
  %893 = load i32, ptr %114, align 4, !tbaa !5
  %894 = sext i32 %893 to i64
  %895 = load i64, ptr %39, align 8, !tbaa !15
  %896 = icmp slt i64 %894, %895
  br i1 %896, label %932, label %897

897:                                              ; preds = %892
  store i32 25, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  br label %1232

898:                                              ; preds = %878
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %9, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %10, align 4
  br label %1512

902:                                              ; preds = %879
  %903 = landingpad { ptr, i32 }
          cleanup
  %904 = extractvalue { ptr, i32 } %903, 0
  store ptr %904, ptr %9, align 8
  %905 = extractvalue { ptr, i32 } %903, 1
  store i32 %905, ptr %10, align 4
  br label %1511

906:                                              ; preds = %880
  %907 = landingpad { ptr, i32 }
          cleanup
  %908 = extractvalue { ptr, i32 } %907, 0
  store ptr %908, ptr %9, align 8
  %909 = extractvalue { ptr, i32 } %907, 1
  store i32 %909, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #8
  br label %1510

910:                                              ; preds = %882
  %911 = landingpad { ptr, i32 }
          cleanup
  %912 = extractvalue { ptr, i32 } %911, 0
  store ptr %912, ptr %9, align 8
  %913 = extractvalue { ptr, i32 } %911, 1
  store i32 %913, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  br label %1509

914:                                              ; preds = %884
  %915 = landingpad { ptr, i32 }
          cleanup
  %916 = extractvalue { ptr, i32 } %915, 0
  store ptr %916, ptr %9, align 8
  %917 = extractvalue { ptr, i32 } %915, 1
  store i32 %917, ptr %10, align 4
  br label %922

918:                                              ; preds = %885
  %919 = landingpad { ptr, i32 }
          cleanup
  %920 = extractvalue { ptr, i32 } %919, 0
  store ptr %920, ptr %9, align 8
  %921 = extractvalue { ptr, i32 } %919, 1
  store i32 %921, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %109) #8
  br label %922

922:                                              ; preds = %918, %914
  call void @llvm.lifetime.end.p0(i64 48, ptr %109) #8
  br label %1508

923:                                              ; preds = %887
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %9, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %10, align 4
  br label %931

927:                                              ; preds = %888
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %9, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %931

931:                                              ; preds = %927, %923
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #8
  br label %1508

932:                                              ; preds = %892
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %933 unwind label %954

933:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #8
  %934 = load i32, ptr %114, align 4, !tbaa !5
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %119, i32 noundef %934) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %935 unwind label %958

935:                                              ; preds = %933
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %115, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %936 unwind label %962

936:                                              ; preds = %935
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %120) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  %937 = load i32, ptr %114, align 4, !tbaa !5
  %938 = icmp ne i32 %937, 0
  br i1 %938, label %939, label %1039

939:                                              ; preds = %936
  %940 = load i32, ptr %114, align 4, !tbaa !5
  %941 = sext i32 %940 to i64
  %942 = load i64, ptr %37, align 8, !tbaa !15
  %943 = mul nsw i64 %941, %942
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef %943)
          to label %944 unwind label %968

944:                                              ; preds = %939
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #8
  store i32 0, ptr %121, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #8
  store ptr %46, ptr %122, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #8
  %945 = load ptr, ptr %122, align 8, !tbaa !9
  %946 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %945) #8
  %947 = getelementptr inbounds %"struct.std::_List_iterator", ptr %123, i32 0, i32 0
  store ptr %946, ptr %947, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #8
  %948 = load ptr, ptr %122, align 8, !tbaa !9
  %949 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %948) #8
  %950 = getelementptr inbounds %"struct.std::_List_iterator", ptr %124, i32 0, i32 0
  store ptr %949, ptr %950, align 8
  br label %951

951:                                              ; preds = %998, %944
  %952 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124) #8
  br i1 %952, label %972, label %953

953:                                              ; preds = %951
  store i32 28, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #8
  br label %1000

954:                                              ; preds = %932
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %9, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %10, align 4
  br label %967

958:                                              ; preds = %933
  %959 = landingpad { ptr, i32 }
          cleanup
  %960 = extractvalue { ptr, i32 } %959, 0
  store ptr %960, ptr %9, align 8
  %961 = extractvalue { ptr, i32 } %959, 1
  store i32 %961, ptr %10, align 4
  br label %966

962:                                              ; preds = %935
  %963 = landingpad { ptr, i32 }
          cleanup
  %964 = extractvalue { ptr, i32 } %963, 0
  store ptr %964, ptr %9, align 8
  %965 = extractvalue { ptr, i32 } %963, 1
  store i32 %965, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  br label %966

966:                                              ; preds = %962, %958
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %967

967:                                              ; preds = %966, %954
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  br label %1231

968:                                              ; preds = %939
  %969 = landingpad { ptr, i32 }
          cleanup
  %970 = extractvalue { ptr, i32 } %969, 0
  store ptr %970, ptr %9, align 8
  %971 = extractvalue { ptr, i32 } %969, 1
  store i32 %971, ptr %10, align 4
  br label %1230

972:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #8
  %973 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt14_List_iteratorISt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #8
  store ptr %973, ptr %125, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #8
  store i64 0, ptr %126, align 8, !tbaa !15
  br label %974

974:                                              ; preds = %992, %972
  %975 = load i64, ptr %126, align 8, !tbaa !15
  %976 = load i64, ptr %37, align 8, !tbaa !15
  %977 = icmp slt i64 %975, %976
  br i1 %977, label %979, label %978

978:                                              ; preds = %974
  store i32 30, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #8
  br label %995

979:                                              ; preds = %974
  %980 = load ptr, ptr %125, align 8, !tbaa !9
  %981 = load i64, ptr %126, align 8, !tbaa !15
  %982 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %980, i64 noundef %981) #8
  %983 = load double, ptr %982, align 8, !tbaa !19
  %984 = load i64, ptr %126, align 8, !tbaa !15
  %985 = load i32, ptr %114, align 4, !tbaa !5
  %986 = sext i32 %985 to i64
  %987 = mul nsw i64 %984, %986
  %988 = load i32, ptr %121, align 4, !tbaa !5
  %989 = sext i32 %988 to i64
  %990 = add nsw i64 %987, %989
  %991 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef %990) #8
  store double %983, ptr %991, align 8, !tbaa !19
  br label %992

992:                                              ; preds = %979
  %993 = load i64, ptr %126, align 8, !tbaa !15
  %994 = add nsw i64 %993, 1
  store i64 %994, ptr %126, align 8, !tbaa !15
  br label %974, !llvm.loop !27

995:                                              ; preds = %978
  %996 = load i32, ptr %121, align 4, !tbaa !5
  %997 = add nsw i32 %996, 1
  store i32 %997, ptr %121, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  br label %998

998:                                              ; preds = %995
  %999 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #8
  br label %951

1000:                                             ; preds = %953
  call void @llvm.lifetime.start.p0(i64 48, ptr %127) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %127, ptr noundef @.str.43, i8 noundef signext 46)
          to label %1001 unwind label %1011

1001:                                             ; preds = %1000
  %1002 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(48) %127, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %1003 unwind label %1015

1003:                                             ; preds = %1001
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %127) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %127) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %129) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %129, ptr noundef @.str.44, i8 noundef signext 46)
          to label %1004 unwind label %1020

1004:                                             ; preds = %1003
  %1005 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIiEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(48) %129, ptr noundef nonnull align 4 dereferenceable(4) %114)
          to label %1006 unwind label %1024

1006:                                             ; preds = %1004
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %129) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %129) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %131) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %131, ptr noundef @.str.45, i8 noundef signext 46)
          to label %1007 unwind label %1029

1007:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #8
  %1008 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  store ptr %1008, ptr %133, align 8, !tbaa !9
  %1009 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIPdEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(48) %131, ptr noundef nonnull align 8 dereferenceable(8) %133)
          to label %1010 unwind label %1033

1010:                                             ; preds = %1007
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %131) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #8
  br label %1039

1011:                                             ; preds = %1000
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %9, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %10, align 4
  br label %1019

1015:                                             ; preds = %1001
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %9, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %10, align 4
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %127) #8
  br label %1019

1019:                                             ; preds = %1015, %1011
  call void @llvm.lifetime.end.p0(i64 48, ptr %127) #8
  br label %1038

1020:                                             ; preds = %1003
  %1021 = landingpad { ptr, i32 }
          cleanup
  %1022 = extractvalue { ptr, i32 } %1021, 0
  store ptr %1022, ptr %9, align 8
  %1023 = extractvalue { ptr, i32 } %1021, 1
  store i32 %1023, ptr %10, align 4
  br label %1028

1024:                                             ; preds = %1004
  %1025 = landingpad { ptr, i32 }
          cleanup
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %9, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %10, align 4
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %129) #8
  br label %1028

1028:                                             ; preds = %1024, %1020
  call void @llvm.lifetime.end.p0(i64 48, ptr %129) #8
  br label %1038

1029:                                             ; preds = %1006
  %1030 = landingpad { ptr, i32 }
          cleanup
  %1031 = extractvalue { ptr, i32 } %1030, 0
  store ptr %1031, ptr %9, align 8
  %1032 = extractvalue { ptr, i32 } %1030, 1
  store i32 %1032, ptr %10, align 4
  br label %1037

1033:                                             ; preds = %1007
  %1034 = landingpad { ptr, i32 }
          cleanup
  %1035 = extractvalue { ptr, i32 } %1034, 0
  store ptr %1035, ptr %9, align 8
  %1036 = extractvalue { ptr, i32 } %1034, 1
  store i32 %1036, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %131) #8
  br label %1037

1037:                                             ; preds = %1033, %1029
  call void @llvm.lifetime.end.p0(i64 48, ptr %131) #8
  br label %1038

1038:                                             ; preds = %1037, %1028, %1019
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #8
  br label %1230

1039:                                             ; preds = %1010, %936
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %135) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %1040 unwind label %1078

1040:                                             ; preds = %1039
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1041 unwind label %1082

1041:                                             ; preds = %1040
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  call void @llvm.lifetime.start.p0(i64 312, ptr %136) #8
  call void @llvm.lifetime.start.p0(i64 152, ptr %137) #8
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESR_St4lessISR_EEE(ptr noundef nonnull align 8 dereferenceable(152) %137, ptr noundef nonnull align 8 dereferenceable(40) %23)
          to label %1042 unwind label %1087

1042:                                             ; preds = %1041
  call void @llvm.lifetime.start.p0(i64 1, ptr %138) #8
  invoke void @_ZN5amgcl6detail12empty_paramsC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138)
          to label %1043 unwind label %1091

1043:                                             ; preds = %1042
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESO_RSL_IdSaIdEEEEEERKT_RKNSH_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(312) %136, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(152) %137, ptr noundef nonnull align 1 dereferenceable(1) %138)
          to label %1044 unwind label %1091

1044:                                             ; preds = %1043
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %137) #8
  call void @llvm.lifetime.end.p0(i64 152, ptr %137) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %140) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %1045 unwind label %1096

1045:                                             ; preds = %1044
  %1046 = invoke noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1047 unwind label %1100

1047:                                             ; preds = %1045
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #8
  %1048 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1049 unwind label %1105

1049:                                             ; preds = %1047
  %1050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1048, ptr noundef @.str.47)
          to label %1051 unwind label %1105

1051:                                             ; preds = %1049
  %1052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1050, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1053 unwind label %1105

1053:                                             ; preds = %1051
  %1054 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1052, ptr noundef @.str.48)
          to label %1055 unwind label %1105

1055:                                             ; preds = %1053
  %1056 = load i32, ptr %114, align 4, !tbaa !5
  %1057 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1054, i32 noundef %1056)
          to label %1058 unwind label %1105

1058:                                             ; preds = %1055
  %1059 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1057, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1060 unwind label %1105

1060:                                             ; preds = %1058
  %1061 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1059, ptr noundef @.str.47)
          to label %1062 unwind label %1105

1062:                                             ; preds = %1060
  %1063 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1061, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1064 unwind label %1105

1064:                                             ; preds = %1062
  %1065 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRKNS_11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS6_10relaxation7wrapperEEENS6_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEE(ptr noundef nonnull align 8 dereferenceable(8) %1063, ptr noundef nonnull align 8 dereferenceable(312) %136)
          to label %1066 unwind label %1105

1066:                                             ; preds = %1064
  %1067 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1065, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1068 unwind label %1105

1068:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #8
  store ptr %103, ptr %141, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #8
  %1069 = load ptr, ptr %141, align 8, !tbaa !9
  %1070 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1069) #8
  %1071 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.88", ptr %142, i32 0, i32 0
  store ptr %1070, ptr %1071, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #8
  %1072 = load ptr, ptr %141, align 8, !tbaa !9
  %1073 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1072) #8
  %1074 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.88", ptr %143, i32 0, i32 0
  store ptr %1073, ptr %1074, align 8
  br label %1075

1075:                                             ; preds = %1114, %1068
  %1076 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull align 8 dereferenceable(8) %143) #8
  br i1 %1076, label %1109, label %1077

1077:                                             ; preds = %1075
  store i32 33, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #8
  br label %1120

1078:                                             ; preds = %1039
  %1079 = landingpad { ptr, i32 }
          cleanup
  %1080 = extractvalue { ptr, i32 } %1079, 0
  store ptr %1080, ptr %9, align 8
  %1081 = extractvalue { ptr, i32 } %1079, 1
  store i32 %1081, ptr %10, align 4
  br label %1086

1082:                                             ; preds = %1040
  %1083 = landingpad { ptr, i32 }
          cleanup
  %1084 = extractvalue { ptr, i32 } %1083, 0
  store ptr %1084, ptr %9, align 8
  %1085 = extractvalue { ptr, i32 } %1083, 1
  store i32 %1085, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  br label %1086

1086:                                             ; preds = %1082, %1078
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  br label %1230

1087:                                             ; preds = %1041
  %1088 = landingpad { ptr, i32 }
          cleanup
  %1089 = extractvalue { ptr, i32 } %1088, 0
  store ptr %1089, ptr %9, align 8
  %1090 = extractvalue { ptr, i32 } %1088, 1
  store i32 %1090, ptr %10, align 4
  br label %1095

1091:                                             ; preds = %1043, %1042
  %1092 = landingpad { ptr, i32 }
          cleanup
  %1093 = extractvalue { ptr, i32 } %1092, 0
  store ptr %1093, ptr %9, align 8
  %1094 = extractvalue { ptr, i32 } %1092, 1
  store i32 %1094, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %137) #8
  br label %1095

1095:                                             ; preds = %1091, %1087
  call void @llvm.lifetime.end.p0(i64 152, ptr %137) #8
  br label %1229

1096:                                             ; preds = %1044
  %1097 = landingpad { ptr, i32 }
          cleanup
  %1098 = extractvalue { ptr, i32 } %1097, 0
  store ptr %1098, ptr %9, align 8
  %1099 = extractvalue { ptr, i32 } %1097, 1
  store i32 %1099, ptr %10, align 4
  br label %1104

1100:                                             ; preds = %1045
  %1101 = landingpad { ptr, i32 }
          cleanup
  %1102 = extractvalue { ptr, i32 } %1101, 0
  store ptr %1102, ptr %9, align 8
  %1103 = extractvalue { ptr, i32 } %1101, 1
  store i32 %1103, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  br label %1104

1104:                                             ; preds = %1100, %1096
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #8
  br label %1228

1105:                                             ; preds = %1066, %1064, %1062, %1060, %1058, %1055, %1053, %1051, %1049, %1047
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %9, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %10, align 4
  br label %1228

1109:                                             ; preds = %1075
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #8
  %1110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %142) #8
  store ptr %1110, ptr %144, align 8, !tbaa !9
  %1111 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %102, ptr noundef nonnull align 8 dereferenceable(5000) %101)
          to label %1112 unwind label %1116

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr %144, align 8, !tbaa !9
  store double %1111, ptr %1113, align 8, !tbaa !19
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #8
  br label %1114

1114:                                             ; preds = %1112
  %1115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %142) #8
  br label %1075

1116:                                             ; preds = %1109
  %1117 = landingpad { ptr, i32 }
          cleanup
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %9, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #8
  br label %1228

1120:                                             ; preds = %1077
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %147) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %148) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %1121 unwind label %1151

1121:                                             ; preds = %1120
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %147)
          to label %1122 unwind label %1155

1122:                                             ; preds = %1121
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %149) #8
  invoke void @_ZNK5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSL_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind writable sret(%"class.std::tuple.89") align 8 %149, ptr noundef nonnull align 8 dereferenceable(312) %136, ptr noundef nonnull align 8 dereferenceable(24) %105, ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %1123 unwind label %1160

1123:                                             ; preds = %1122
  call void @llvm.lifetime.start.p0(i64 16, ptr %150) #8
  call void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.93") align 8 %150, ptr noundef nonnull align 4 dereferenceable(4) %145, ptr noundef nonnull align 8 dereferenceable(8) %146) #8
  %1124 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRiRdEEaSImdEENSt9enable_ifIXcl12__assignableIT_T0_EEERS2_E4typeEOS_IJS5_S6_EE(ptr noundef nonnull align 8 dereferenceable(16) %150, ptr noundef nonnull align 8 dereferenceable(16) %149) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %149) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %152) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %1125 unwind label %1164

1125:                                             ; preds = %1123
  %1126 = invoke noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1127 unwind label %1168

1127:                                             ; preds = %1125
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #8
  %1128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.50)
          to label %1129 unwind label %1173

1129:                                             ; preds = %1127
  %1130 = load i32, ptr %145, align 4, !tbaa !5
  %1131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1128, i32 noundef %1130)
          to label %1132 unwind label %1173

1132:                                             ; preds = %1129
  %1133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1131, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1134 unwind label %1173

1134:                                             ; preds = %1132
  %1135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1133, ptr noundef @.str.51)
          to label %1136 unwind label %1173

1136:                                             ; preds = %1134
  %1137 = load double, ptr %146, align 8, !tbaa !19
  %1138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1135, double noundef %1137)
          to label %1139 unwind label %1173

1139:                                             ; preds = %1136
  %1140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1138, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1141 unwind label %1173

1141:                                             ; preds = %1139
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #8
  store ptr %46, ptr %153, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #8
  %1142 = load ptr, ptr %153, align 8, !tbaa !9
  %1143 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1142) #8
  %1144 = getelementptr inbounds %"struct.std::_List_iterator", ptr %154, i32 0, i32 0
  store ptr %1143, ptr %1144, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #8
  %1145 = load ptr, ptr %153, align 8, !tbaa !9
  %1146 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1145) #8
  %1147 = getelementptr inbounds %"struct.std::_List_iterator", ptr %155, i32 0, i32 0
  store ptr %1146, ptr %1147, align 8
  br label %1148

1148:                                             ; preds = %1191, %1141
  %1149 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %154, ptr noundef nonnull align 8 dereferenceable(8) %155) #8
  br i1 %1149, label %1177, label %1150

1150:                                             ; preds = %1148
  store i32 35, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #8
  br label %1197

1151:                                             ; preds = %1120
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %9, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %10, align 4
  br label %1159

1155:                                             ; preds = %1121
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %9, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #8
  br label %1159

1159:                                             ; preds = %1155, %1151
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #8
  br label %1227

1160:                                             ; preds = %1122
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %9, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %149) #8
  br label %1227

1164:                                             ; preds = %1123
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %9, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %10, align 4
  br label %1172

1168:                                             ; preds = %1125
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %9, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #8
  br label %1172

1172:                                             ; preds = %1168, %1164
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #8
  br label %1227

1173:                                             ; preds = %1139, %1136, %1134, %1132, %1129, %1127
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %9, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %10, align 4
  br label %1227

1177:                                             ; preds = %1148
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #8
  %1178 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt14_List_iteratorISt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %154) #8
  store ptr %1178, ptr %156, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #8
  %1179 = load ptr, ptr %156, align 8, !tbaa !9
  %1180 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %103, ptr noundef nonnull align 8 dereferenceable(24) %1179)
          to label %1181 unwind label %1193

1181:                                             ; preds = %1177
  %1182 = load ptr, ptr %156, align 8, !tbaa !9
  %1183 = load ptr, ptr %156, align 8, !tbaa !9
  %1184 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %1182, ptr noundef nonnull align 8 dereferenceable(24) %1183)
          to label %1185 unwind label %1193

1185:                                             ; preds = %1181
  %1186 = fdiv double %1180, %1184
  store double %1186, ptr %157, align 8, !tbaa !19
  %1187 = load double, ptr %157, align 8, !tbaa !19
  %1188 = fneg double %1187
  %1189 = load ptr, ptr %156, align 8, !tbaa !9
  invoke void @_ZN5amgcl7backend5axpbyIdSt6vectorIdSaIdEEiS4_EEvT_RKT0_T1_RT2_(double noundef %1188, ptr noundef nonnull align 8 dereferenceable(24) %1189, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %1190 unwind label %1193

1190:                                             ; preds = %1185
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #8
  br label %1191

1191:                                             ; preds = %1190
  %1192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %154) #8
  br label %1148

1193:                                             ; preds = %1185, %1181, %1177
  %1194 = landingpad { ptr, i32 }
          cleanup
  %1195 = extractvalue { ptr, i32 } %1194, 0
  store ptr %1195, ptr %9, align 8
  %1196 = extractvalue { ptr, i32 } %1194, 1
  store i32 %1196, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #8
  br label %1227

1197:                                             ; preds = %1150
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #8
  %1198 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %103, ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %1199 unwind label %1210

1199:                                             ; preds = %1197
  %1200 = call double @sqrt(double noundef %1198) #8
  store double %1200, ptr %158, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #8
  store ptr %103, ptr %159, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #8
  %1201 = load ptr, ptr %159, align 8, !tbaa !9
  %1202 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1201) #8
  %1203 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.88", ptr %160, i32 0, i32 0
  store ptr %1202, ptr %1203, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #8
  %1204 = load ptr, ptr %159, align 8, !tbaa !9
  %1205 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1204) #8
  %1206 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.88", ptr %161, i32 0, i32 0
  store ptr %1205, ptr %1206, align 8
  br label %1207

1207:                                             ; preds = %1220, %1199
  %1208 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %160, ptr noundef nonnull align 8 dereferenceable(8) %161) #8
  br i1 %1208, label %1214, label %1209

1209:                                             ; preds = %1207
  store i32 37, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #8
  br label %1222

1210:                                             ; preds = %1222, %1197
  %1211 = landingpad { ptr, i32 }
          cleanup
  %1212 = extractvalue { ptr, i32 } %1211, 0
  store ptr %1212, ptr %9, align 8
  %1213 = extractvalue { ptr, i32 } %1211, 1
  store i32 %1213, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #8
  br label %1227

1214:                                             ; preds = %1207
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #8
  %1215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %160) #8
  store ptr %1215, ptr %162, align 8, !tbaa !9
  %1216 = load double, ptr %158, align 8, !tbaa !19
  %1217 = load ptr, ptr %162, align 8, !tbaa !9
  %1218 = load double, ptr %1217, align 8, !tbaa !19
  %1219 = fdiv double %1218, %1216
  store double %1219, ptr %1217, align 8, !tbaa !19
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #8
  br label %1220

1220:                                             ; preds = %1214
  %1221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %160) #8
  br label %1207

1222:                                             ; preds = %1209
  invoke void @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %1223 unwind label %1210

1223:                                             ; preds = %1222
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #8
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %136) #8
  call void @llvm.lifetime.end.p0(i64 312, ptr %136) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  br label %1224

1224:                                             ; preds = %1223
  %1225 = load i32, ptr %114, align 4, !tbaa !5
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr %114, align 4, !tbaa !5
  br label %892, !llvm.loop !28

1227:                                             ; preds = %1210, %1193, %1173, %1172, %1160, %1159
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #8
  br label %1228

1228:                                             ; preds = %1227, %1116, %1105, %1104
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %136) #8
  br label %1229

1229:                                             ; preds = %1228, %1095
  call void @llvm.lifetime.end.p0(i64 312, ptr %136) #8
  br label %1230

1230:                                             ; preds = %1229, %1086, %1038, %968
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  br label %1231

1231:                                             ; preds = %1230, %967
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  br label %1508

1232:                                             ; preds = %897
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %1233 unwind label %1251

1233:                                             ; preds = %1232
  %1234 = invoke noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %163)
          to label %1235 unwind label %1255

1235:                                             ; preds = %1233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %165) #8
  %1236 = load i64, ptr %39, align 8, !tbaa !15
  %1237 = load i64, ptr %37, align 8, !tbaa !15
  %1238 = mul nsw i64 %1236, %1237
  call void @llvm.lifetime.start.p0(i64 1, ptr %166) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %1238, ptr noundef nonnull align 1 dereferenceable(1) %166)
          to label %1239 unwind label %1260

1239:                                             ; preds = %1235
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %169)
          to label %1240 unwind label %1264

1240:                                             ; preds = %1239
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %167, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %168)
          to label %1241 unwind label %1268

1241:                                             ; preds = %1240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #8
  store i32 0, ptr %170, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #8
  store ptr %46, ptr %171, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #8
  %1242 = load ptr, ptr %171, align 8, !tbaa !9
  %1243 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1242) #8
  %1244 = getelementptr inbounds %"struct.std::_List_iterator", ptr %172, i32 0, i32 0
  store ptr %1243, ptr %1244, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #8
  %1245 = load ptr, ptr %171, align 8, !tbaa !9
  %1246 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1245) #8
  %1247 = getelementptr inbounds %"struct.std::_List_iterator", ptr %173, i32 0, i32 0
  store ptr %1246, ptr %1247, align 8
  br label %1248

1248:                                             ; preds = %1298, %1241
  %1249 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %173) #8
  br i1 %1249, label %1273, label %1250

1250:                                             ; preds = %1248
  store i32 39, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #8
  br label %1300

1251:                                             ; preds = %1232
  %1252 = landingpad { ptr, i32 }
          cleanup
  %1253 = extractvalue { ptr, i32 } %1252, 0
  store ptr %1253, ptr %9, align 8
  %1254 = extractvalue { ptr, i32 } %1252, 1
  store i32 %1254, ptr %10, align 4
  br label %1259

1255:                                             ; preds = %1233
  %1256 = landingpad { ptr, i32 }
          cleanup
  %1257 = extractvalue { ptr, i32 } %1256, 0
  store ptr %1257, ptr %9, align 8
  %1258 = extractvalue { ptr, i32 } %1256, 1
  store i32 %1258, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %1259

1259:                                             ; preds = %1255, %1251
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #8
  br label %1508

1260:                                             ; preds = %1235
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %9, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #8
  br label %1507

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

1268:                                             ; preds = %1240
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %9, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  br label %1272

1272:                                             ; preds = %1268, %1264
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #8
  br label %1464

1273:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #8
  %1274 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt14_List_iteratorISt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %172) #8
  store ptr %1274, ptr %174, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #8
  store i64 0, ptr %175, align 8, !tbaa !15
  br label %1275

1275:                                             ; preds = %1292, %1273
  %1276 = load i64, ptr %175, align 8, !tbaa !15
  %1277 = load i64, ptr %37, align 8, !tbaa !15
  %1278 = icmp slt i64 %1276, %1277
  br i1 %1278, label %1280, label %1279

1279:                                             ; preds = %1275
  store i32 41, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #8
  br label %1295

1280:                                             ; preds = %1275
  %1281 = load ptr, ptr %174, align 8, !tbaa !9
  %1282 = load i64, ptr %175, align 8, !tbaa !15
  %1283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1281, i64 noundef %1282) #8
  %1284 = load double, ptr %1283, align 8, !tbaa !19
  %1285 = load i64, ptr %175, align 8, !tbaa !15
  %1286 = load i64, ptr %39, align 8, !tbaa !15
  %1287 = mul nsw i64 %1285, %1286
  %1288 = load i32, ptr %170, align 4, !tbaa !5
  %1289 = sext i32 %1288 to i64
  %1290 = add nsw i64 %1287, %1289
  %1291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %1290) #8
  store double %1284, ptr %1291, align 8, !tbaa !19
  br label %1292

1292:                                             ; preds = %1280
  %1293 = load i64, ptr %175, align 8, !tbaa !15
  %1294 = add nsw i64 %1293, 1
  store i64 %1294, ptr %175, align 8, !tbaa !15
  br label %1275, !llvm.loop !29

1295:                                             ; preds = %1279
  %1296 = load i32, ptr %170, align 4, !tbaa !5
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr %170, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #8
  br label %1298

1298:                                             ; preds = %1295
  %1299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %172) #8
  br label %1248

1300:                                             ; preds = %1250
  call void @llvm.lifetime.start.p0(i64 48, ptr %176) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %176, ptr noundef @.str.43, i8 noundef signext 46)
          to label %1301 unwind label %1376

1301:                                             ; preds = %1300
  %1302 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(48) %176, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %1303 unwind label %1380

1303:                                             ; preds = %1301
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %176) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %176) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %178) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %178, ptr noundef @.str.44, i8 noundef signext 46)
          to label %1304 unwind label %1385

1304:                                             ; preds = %1303
  %1305 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(48) %178, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %1306 unwind label %1389

1306:                                             ; preds = %1304
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %178) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %178) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %180) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %180, ptr noundef @.str.45, i8 noundef signext 46)
          to label %1307 unwind label %1394

1307:                                             ; preds = %1306
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #8
  %1308 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #8
  store ptr %1308, ptr %182, align 8, !tbaa !9
  %1309 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIPdEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(48) %180, ptr noundef nonnull align 8 dereferenceable(8) %182)
          to label %1310 unwind label %1398

1310:                                             ; preds = %1307
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %180) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %180) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %1311 unwind label %1403

1311:                                             ; preds = %1310
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %183)
          to label %1312 unwind label %1407

1312:                                             ; preds = %1311
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #8
  call void @llvm.lifetime.start.p0(i64 312, ptr %185) #8
  call void @llvm.lifetime.start.p0(i64 152, ptr %186) #8
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESR_St4lessISR_EEE(ptr noundef nonnull align 8 dereferenceable(152) %186, ptr noundef nonnull align 8 dereferenceable(40) %23)
          to label %1313 unwind label %1412

1313:                                             ; preds = %1312
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #8
  invoke void @_ZN5amgcl6detail12empty_paramsC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %1314 unwind label %1416

1314:                                             ; preds = %1313
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESO_RSL_IdSaIdEEEEEERKT_RKNSH_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(312) %185, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(152) %186, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %1315 unwind label %1416

1315:                                             ; preds = %1314
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #8
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %186) #8
  call void @llvm.lifetime.end.p0(i64 152, ptr %186) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %189) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %189)
          to label %1316 unwind label %1421

1316:                                             ; preds = %1315
  %1317 = invoke noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %188)
          to label %1318 unwind label %1425

1318:                                             ; preds = %1316
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #8
  %1319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1320 unwind label %1430

1320:                                             ; preds = %1318
  %1321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1319, ptr noundef @.str.47)
          to label %1322 unwind label %1430

1322:                                             ; preds = %1320
  %1323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1321, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1324 unwind label %1430

1324:                                             ; preds = %1322
  %1325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1323, ptr noundef @.str.53)
          to label %1326 unwind label %1430

1326:                                             ; preds = %1324
  %1327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1325, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1328 unwind label %1430

1328:                                             ; preds = %1326
  %1329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1327, ptr noundef @.str.47)
          to label %1330 unwind label %1430

1330:                                             ; preds = %1328
  %1331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1329, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1332 unwind label %1430

1332:                                             ; preds = %1330
  %1333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRKNS_11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS6_10relaxation7wrapperEEENS6_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEE(ptr noundef nonnull align 8 dereferenceable(8) %1331, ptr noundef nonnull align 8 dereferenceable(312) %185)
          to label %1334 unwind label %1430

1334:                                             ; preds = %1332
  %1335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1333, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1336 unwind label %1430

1336:                                             ; preds = %1334
  invoke void @_ZN5amgcl7backend5clearISt6vectorIdSaIdEEEEvRT_(ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %1337 unwind label %1430

1337:                                             ; preds = %1336
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %193) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1338 unwind label %1434

1338:                                             ; preds = %1337
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %192)
          to label %1339 unwind label %1438

1339:                                             ; preds = %1338
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %194) #8
  invoke void @_ZNK5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSL_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind writable sret(%"class.std::tuple.89") align 8 %194, ptr noundef nonnull align 8 dereferenceable(312) %185, ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %1340 unwind label %1443

1340:                                             ; preds = %1339
  call void @llvm.lifetime.start.p0(i64 16, ptr %195) #8
  call void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.93") align 8 %195, ptr noundef nonnull align 4 dereferenceable(4) %190, ptr noundef nonnull align 8 dereferenceable(8) %191) #8
  %1341 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRiRdEEaSImdEENSt9enable_ifIXcl12__assignableIT_T0_EEERS2_E4typeEOS_IJS5_S6_EE(ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull align 8 dereferenceable(16) %194) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %195) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %197) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %1342 unwind label %1447

1342:                                             ; preds = %1340
  %1343 = invoke noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %196)
          to label %1344 unwind label %1451

1344:                                             ; preds = %1342
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #8
  %1345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.50)
          to label %1346 unwind label %1456

1346:                                             ; preds = %1344
  %1347 = load i32, ptr %190, align 4, !tbaa !5
  %1348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1345, i32 noundef %1347)
          to label %1349 unwind label %1456

1349:                                             ; preds = %1346
  %1350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1348, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1351 unwind label %1456

1351:                                             ; preds = %1349
  %1352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1350, ptr noundef @.str.51)
          to label %1353 unwind label %1456

1353:                                             ; preds = %1351
  %1354 = load double, ptr %191, align 8, !tbaa !19
  %1355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1352, double noundef %1354)
          to label %1356 unwind label %1456

1356:                                             ; preds = %1353
  %1357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1355, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1358 unwind label %1456

1358:                                             ; preds = %1356
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #8
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %185) #8
  call void @llvm.lifetime.end.p0(i64 312, ptr %185) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #8
  %1359 = getelementptr inbounds i8, ptr %16, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %199) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %1360 unwind label %1465

1360:                                             ; preds = %1358
  %1361 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %1359, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %1362 unwind label %1469

1362:                                             ; preds = %1360
  %1363 = icmp ne i64 %1361, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #8
  br i1 %1363, label %1364, label %1493

1364:                                             ; preds = %1362
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %202) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %202)
          to label %1365 unwind label %1474

1365:                                             ; preds = %1364
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %200, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %201)
          to label %1366 unwind label %1478

1366:                                             ; preds = %1365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %203) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %204) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %1367 unwind label %1483

1367:                                             ; preds = %1366
  %1368 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %16, ptr noundef nonnull align 8 dereferenceable(32) %203)
          to label %1369 unwind label %1487

1369:                                             ; preds = %1367
  %1370 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %1368)
          to label %1371 unwind label %1487

1371:                                             ; preds = %1369
  %1372 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #8
  %1373 = load i64, ptr %37, align 8, !tbaa !15
  %1374 = load i64, ptr %39, align 8, !tbaa !15
  invoke void @_ZN5amgcl2io8mm_writeIdEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_mm(ptr noundef nonnull align 8 dereferenceable(32) %1370, ptr noundef %1372, i64 noundef %1373, i64 noundef %1374)
          to label %1375 unwind label %1487

1375:                                             ; preds = %1371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %204) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %200) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #8
  br label %1493

1376:                                             ; preds = %1300
  %1377 = landingpad { ptr, i32 }
          cleanup
  %1378 = extractvalue { ptr, i32 } %1377, 0
  store ptr %1378, ptr %9, align 8
  %1379 = extractvalue { ptr, i32 } %1377, 1
  store i32 %1379, ptr %10, align 4
  br label %1384

1380:                                             ; preds = %1301
  %1381 = landingpad { ptr, i32 }
          cleanup
  %1382 = extractvalue { ptr, i32 } %1381, 0
  store ptr %1382, ptr %9, align 8
  %1383 = extractvalue { ptr, i32 } %1381, 1
  store i32 %1383, ptr %10, align 4
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %176) #8
  br label %1384

1384:                                             ; preds = %1380, %1376
  call void @llvm.lifetime.end.p0(i64 48, ptr %176) #8
  br label %1463

1385:                                             ; preds = %1303
  %1386 = landingpad { ptr, i32 }
          cleanup
  %1387 = extractvalue { ptr, i32 } %1386, 0
  store ptr %1387, ptr %9, align 8
  %1388 = extractvalue { ptr, i32 } %1386, 1
  store i32 %1388, ptr %10, align 4
  br label %1393

1389:                                             ; preds = %1304
  %1390 = landingpad { ptr, i32 }
          cleanup
  %1391 = extractvalue { ptr, i32 } %1390, 0
  store ptr %1391, ptr %9, align 8
  %1392 = extractvalue { ptr, i32 } %1390, 1
  store i32 %1392, ptr %10, align 4
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %178) #8
  br label %1393

1393:                                             ; preds = %1389, %1385
  call void @llvm.lifetime.end.p0(i64 48, ptr %178) #8
  br label %1463

1394:                                             ; preds = %1306
  %1395 = landingpad { ptr, i32 }
          cleanup
  %1396 = extractvalue { ptr, i32 } %1395, 0
  store ptr %1396, ptr %9, align 8
  %1397 = extractvalue { ptr, i32 } %1395, 1
  store i32 %1397, ptr %10, align 4
  br label %1402

1398:                                             ; preds = %1307
  %1399 = landingpad { ptr, i32 }
          cleanup
  %1400 = extractvalue { ptr, i32 } %1399, 0
  store ptr %1400, ptr %9, align 8
  %1401 = extractvalue { ptr, i32 } %1399, 1
  store i32 %1401, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %180) #8
  br label %1402

1402:                                             ; preds = %1398, %1394
  call void @llvm.lifetime.end.p0(i64 48, ptr %180) #8
  br label %1463

1403:                                             ; preds = %1310
  %1404 = landingpad { ptr, i32 }
          cleanup
  %1405 = extractvalue { ptr, i32 } %1404, 0
  store ptr %1405, ptr %9, align 8
  %1406 = extractvalue { ptr, i32 } %1404, 1
  store i32 %1406, ptr %10, align 4
  br label %1411

1407:                                             ; preds = %1311
  %1408 = landingpad { ptr, i32 }
          cleanup
  %1409 = extractvalue { ptr, i32 } %1408, 0
  store ptr %1409, ptr %9, align 8
  %1410 = extractvalue { ptr, i32 } %1408, 1
  store i32 %1410, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  br label %1411

1411:                                             ; preds = %1407, %1403
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #8
  br label %1463

1412:                                             ; preds = %1312
  %1413 = landingpad { ptr, i32 }
          cleanup
  %1414 = extractvalue { ptr, i32 } %1413, 0
  store ptr %1414, ptr %9, align 8
  %1415 = extractvalue { ptr, i32 } %1413, 1
  store i32 %1415, ptr %10, align 4
  br label %1420

1416:                                             ; preds = %1314, %1313
  %1417 = landingpad { ptr, i32 }
          cleanup
  %1418 = extractvalue { ptr, i32 } %1417, 0
  store ptr %1418, ptr %9, align 8
  %1419 = extractvalue { ptr, i32 } %1417, 1
  store i32 %1419, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #8
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %186) #8
  br label %1420

1420:                                             ; preds = %1416, %1412
  call void @llvm.lifetime.end.p0(i64 152, ptr %186) #8
  br label %1462

1421:                                             ; preds = %1315
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %9, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %10, align 4
  br label %1429

1425:                                             ; preds = %1316
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %9, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #8
  br label %1429

1429:                                             ; preds = %1425, %1421
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #8
  br label %1461

1430:                                             ; preds = %1336, %1334, %1332, %1330, %1328, %1326, %1324, %1322, %1320, %1318
  %1431 = landingpad { ptr, i32 }
          cleanup
  %1432 = extractvalue { ptr, i32 } %1431, 0
  store ptr %1432, ptr %9, align 8
  %1433 = extractvalue { ptr, i32 } %1431, 1
  store i32 %1433, ptr %10, align 4
  br label %1461

1434:                                             ; preds = %1337
  %1435 = landingpad { ptr, i32 }
          cleanup
  %1436 = extractvalue { ptr, i32 } %1435, 0
  store ptr %1436, ptr %9, align 8
  %1437 = extractvalue { ptr, i32 } %1435, 1
  store i32 %1437, ptr %10, align 4
  br label %1442

1438:                                             ; preds = %1338
  %1439 = landingpad { ptr, i32 }
          cleanup
  %1440 = extractvalue { ptr, i32 } %1439, 0
  store ptr %1440, ptr %9, align 8
  %1441 = extractvalue { ptr, i32 } %1439, 1
  store i32 %1441, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #8
  br label %1442

1442:                                             ; preds = %1438, %1434
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #8
  br label %1460

1443:                                             ; preds = %1339
  %1444 = landingpad { ptr, i32 }
          cleanup
  %1445 = extractvalue { ptr, i32 } %1444, 0
  store ptr %1445, ptr %9, align 8
  %1446 = extractvalue { ptr, i32 } %1444, 1
  store i32 %1446, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #8
  br label %1460

1447:                                             ; preds = %1340
  %1448 = landingpad { ptr, i32 }
          cleanup
  %1449 = extractvalue { ptr, i32 } %1448, 0
  store ptr %1449, ptr %9, align 8
  %1450 = extractvalue { ptr, i32 } %1448, 1
  store i32 %1450, ptr %10, align 4
  br label %1455

1451:                                             ; preds = %1342
  %1452 = landingpad { ptr, i32 }
          cleanup
  %1453 = extractvalue { ptr, i32 } %1452, 0
  store ptr %1453, ptr %9, align 8
  %1454 = extractvalue { ptr, i32 } %1452, 1
  store i32 %1454, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #8
  br label %1455

1455:                                             ; preds = %1451, %1447
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #8
  br label %1460

1456:                                             ; preds = %1356, %1353, %1351, %1349, %1346, %1344
  %1457 = landingpad { ptr, i32 }
          cleanup
  %1458 = extractvalue { ptr, i32 } %1457, 0
  store ptr %1458, ptr %9, align 8
  %1459 = extractvalue { ptr, i32 } %1457, 1
  store i32 %1459, ptr %10, align 4
  br label %1460

1460:                                             ; preds = %1456, %1455, %1443, %1442
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #8
  br label %1461

1461:                                             ; preds = %1460, %1430, %1429
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %185) #8
  br label %1462

1462:                                             ; preds = %1461, %1420
  call void @llvm.lifetime.end.p0(i64 312, ptr %185) #8
  br label %1463

1463:                                             ; preds = %1462, %1411, %1402, %1393, %1384
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #8
  br label %1464

1464:                                             ; preds = %1463, %1272
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #8
  br label %1506

1465:                                             ; preds = %1358
  %1466 = landingpad { ptr, i32 }
          cleanup
  %1467 = extractvalue { ptr, i32 } %1466, 0
  store ptr %1467, ptr %9, align 8
  %1468 = extractvalue { ptr, i32 } %1466, 1
  store i32 %1468, ptr %10, align 4
  br label %1473

1469:                                             ; preds = %1360
  %1470 = landingpad { ptr, i32 }
          cleanup
  %1471 = extractvalue { ptr, i32 } %1470, 0
  store ptr %1471, ptr %9, align 8
  %1472 = extractvalue { ptr, i32 } %1470, 1
  store i32 %1472, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #8
  br label %1473

1473:                                             ; preds = %1469, %1465
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #8
  br label %1506

1474:                                             ; preds = %1364
  %1475 = landingpad { ptr, i32 }
          cleanup
  %1476 = extractvalue { ptr, i32 } %1475, 0
  store ptr %1476, ptr %9, align 8
  %1477 = extractvalue { ptr, i32 } %1475, 1
  store i32 %1477, ptr %10, align 4
  br label %1482

1478:                                             ; preds = %1365
  %1479 = landingpad { ptr, i32 }
          cleanup
  %1480 = extractvalue { ptr, i32 } %1479, 0
  store ptr %1480, ptr %9, align 8
  %1481 = extractvalue { ptr, i32 } %1479, 1
  store i32 %1481, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #8
  br label %1482

1482:                                             ; preds = %1478, %1474
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #8
  br label %1492

1483:                                             ; preds = %1366
  %1484 = landingpad { ptr, i32 }
          cleanup
  %1485 = extractvalue { ptr, i32 } %1484, 0
  store ptr %1485, ptr %9, align 8
  %1486 = extractvalue { ptr, i32 } %1484, 1
  store i32 %1486, ptr %10, align 4
  br label %1491

1487:                                             ; preds = %1371, %1369, %1367
  %1488 = landingpad { ptr, i32 }
          cleanup
  %1489 = extractvalue { ptr, i32 } %1488, 0
  store ptr %1489, ptr %9, align 8
  %1490 = extractvalue { ptr, i32 } %1488, 1
  store i32 %1490, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  br label %1491

1491:                                             ; preds = %1487, %1483
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %204) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %200) #8
  br label %1492

1492:                                             ; preds = %1491, %1482
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #8
  br label %1506

1493:                                             ; preds = %1375, %1362
  %1494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRNS_8profilerINS_12perf_counter5clockELj2EEE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE)
          to label %1495 unwind label %1502

1495:                                             ; preds = %1493
  %1496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1494, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1497 unwind label %1502

1497:                                             ; preds = %1495
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %165) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %165) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %105) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %103) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 5000, ptr %101) #8
  call void @_ZNSt7__cxx1110_List_baseISt6vectorIdSaIdEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %23) #8
  store i32 0, ptr %21, align 4
  br label %1498

1498:                                             ; preds = %1497, %284
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %16) #8
  call void @llvm.lifetime.end.p0(i64 160, ptr %16) #8
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %15) #8
  call void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %6) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %6) #8
  %1499 = load i32, ptr %21, align 4
  switch i32 %1499, label %1528 [
    i32 0, label %1500
    i32 1, label %1500
  ]

1500:                                             ; preds = %1498, %1498
  %1501 = load i32, ptr %3, align 4
  ret i32 %1501

1502:                                             ; preds = %1495, %1493
  %1503 = landingpad { ptr, i32 }
          cleanup
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %9, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %10, align 4
  br label %1506

1506:                                             ; preds = %1502, %1492, %1473, %1464
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %165) #8
  br label %1507

1507:                                             ; preds = %1506, %1260
  call void @llvm.lifetime.end.p0(i64 24, ptr %165) #8
  br label %1508

1508:                                             ; preds = %1507, %1259, %1231, %931, %922
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %105) #8
  br label %1509

1509:                                             ; preds = %1508, %910
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %103) #8
  br label %1510

1510:                                             ; preds = %1509, %906
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #8
  br label %1511

1511:                                             ; preds = %1510, %902
  call void @llvm.lifetime.end.p0(i64 16, ptr %102) #8
  br label %1512

1512:                                             ; preds = %1511, %898
  call void @llvm.lifetime.end.p0(i64 5000, ptr %101) #8
  br label %1513

1513:                                             ; preds = %1512, %877, %769, %760
  call void @_ZNSt7__cxx1110_List_baseISt6vectorIdSaIdEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #8
  br label %1514

1514:                                             ; preds = %1513, %509
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %1515

1515:                                             ; preds = %1514, %471, %451, %421, %407
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #8
  br label %1516

1516:                                             ; preds = %1515, %395
  call void @llvm.lifetime.end.p0(i64 40, ptr %23) #8
  br label %1517

1517:                                             ; preds = %1516, %364, %351, %339, %338
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %16) #8
  br label %1518

1518:                                             ; preds = %1517, %321
  call void @llvm.lifetime.end.p0(i64 160, ptr %16) #8
  br label %1519

1519:                                             ; preds = %1518, %317
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #8
  br label %1520

1520:                                             ; preds = %1519, %313
  call void @llvm.lifetime.end.p0(i64 56, ptr %15) #8
  br label %1521

1521:                                             ; preds = %1520, %312
  call void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %6) #8
  br label %1522

1522:                                             ; preds = %1521, %293
  call void @llvm.lifetime.end.p0(i64 128, ptr %6) #8
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load ptr, ptr %9, align 8
  %1525 = load i32, ptr %10, align 4
  %1526 = insertvalue { ptr, i32 } poison, ptr %1524, 0
  %1527 = insertvalue { ptr, i32 } %1526, i32 %1525, 1
  resume { ptr, i32 } %1527

1528:                                             ; preds = %1498
  unreachable
}

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 align 2

declare void @_ZN5boost15program_options19options_descriptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) unnamed_addr #4

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

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

declare ptr @_ZN5boost15program_options19options_description11add_optionsEv(ptr noundef nonnull align 8 dereferenceable(128)) #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcS3_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv() #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options5valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEEPNS0_11typed_valueIT_cEEv() #3

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

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

declare noundef ptr @_ZN5boost15program_options11bool_switchEv() #4

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options5valueIiEEPNS0_11typed_valueIT_cEEv() #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options11typed_valueIicE13default_valueERKi(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

declare void @_ZN5boost15program_options30positional_options_descriptionC1Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(56) ptr @_ZN5boost15program_options30positional_options_description3addEPKci(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, i32 noundef) #4

declare void @_ZN5boost15program_options13variables_mapC1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #4

declare void @_ZN5boost15program_options5storeERKNS0_20basic_parsed_optionsIcEERNS0_13variables_mapEb(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(160), i1 noundef zeroext) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef, ptr noundef) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE7optionsERKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(128)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE10positionalERKNS0_30positional_options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(56)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost15program_options25basic_command_line_parserIcE3runEv(ptr dead_on_unwind noalias writable sret(%"class.boost::program_options::basic_parsed_options") align 8, ptr noundef nonnull align 8 dereferenceable(120)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #5 align 2

declare void @_ZN5boost15program_options6notifyERNS0_13variables_mapE(ptr noundef nonnull align 8 dereferenceable(160)) #4

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_optionslsERSoRKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost13property_tree11json_parser9read_jsonINS0_11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEEEEvRKS9_RT_RKSt6locale(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

; Function Attrs: nounwind
declare void @_ZNSt6localeC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

; Function Attrs: nounwind
declare void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5amgcl3putERN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St4lessIS8_EEERKS8_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32)) #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io8read_crsIllldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_RSt6vectorIT0_SaISD_EERSC_IT1_SaISH_EERSC_IT2_SaISL_EEll(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io9mm_readerclIldEESt5tupleIJmmEERSt6vectorIT_SaIS6_EES9_RS5_IT0_SaISA_EEll(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 8 dereferenceable(576), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.69") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl12preconditionIbA25_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(25)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 8 dereferenceable(576), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl12preconditionIbA30_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(30)) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl12preconditionIbA40_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(40)) #3

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare double @sqrt(double noundef) #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Ev(ptr noundef nonnull align 8 dereferenceable(5000)) unnamed_addr #3 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 #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt3tieIJlSt6vectorIlSaIlEES2_S0_IdSaIdEEEESt5tupleIJDpRT_EES8_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.74") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIbEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 1 dereferenceable(1)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i8 noundef signext) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #5

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIiEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIPdEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESR_St4lessISR_EEE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #3 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRKNS_11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS6_10relaxation7wrapperEEENS6_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(312)) #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSL_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.89") align 8, ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.93") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #2

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl7backend5axpbyIdSt6vectorIdSaIdEEiS4_EEvT_RKT0_T1_RT2_(double noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24)) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRNS_8profilerINS_12perf_counter5clockELj2EEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) #3

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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 #2 align 2

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

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

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


; 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.amgcl::profiler" = type { %"class.std::__cxx11::basic_string", [8 x i8], %"struct.amgcl::profiler<>::profile_unit", %"class.std::vector" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"struct.amgcl::profiler<>::profile_unit" = type { double, double, %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, amgcl::profiler<>::profile_unit>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, amgcl::profiler<>::profile_unit>>, 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>, amgcl::profiler<>::profile_unit>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, amgcl::profiler<>::profile_unit>>, 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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl" }
%"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl" = type { %"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<amgcl::profiler<>::profile_unit *, std::allocator<amgcl::profiler<>::profile_unit *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.boost::program_options::options_description" = type { %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.7", %"class.std::vector.12", %"class.std::vector.16" }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.12" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.boost::program_options::options_description_easy_init" = type { ptr }
%"class.boost::program_options::positional_options_description" = type { %"class.std::vector.27", %"class.std::__cxx11::basic_string" }
%"class.std::vector.27" = type { %"struct.std::_Vector_base.28" }
%"struct.std::_Vector_base.28" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::program_options::variables_map" = type { %"class.boost::program_options::abstract_variables_map", %"class.std::map.32", %"class.std::set", %"class.std::map.41" }
%"class.boost::program_options::abstract_variables_map" = type { ptr, ptr }
%"class.std::map.32" = type { %"class.std::_Rb_tree.33" }
%"class.std::_Rb_tree.33" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, boost::program_options::variable_value>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, boost::program_options::variable_value>>, 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>, boost::program_options::variable_value>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, boost::program_options::variable_value>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set" = type { %"class.std::_Rb_tree.37" }
%"class.std::_Rb_tree.37" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.41" = type { %"class.std::_Rb_tree.42" }
%"class.std::_Rb_tree.42" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, 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>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.boost::program_options::basic_parsed_options" = type <{ %"class.std::vector.46", ptr, i32, [4 x i8] }>
%"class.std::vector.46" = type { %"struct.std::_Vector_base.47" }
%"struct.std::_Vector_base.47" = type { %"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::program_options::basic_command_line_parser" = type { %"class.boost::program_options::detail::cmdline", ptr }
%"class.boost::program_options::detail::cmdline" = type { %"class.std::vector.27", i32, i8, ptr, ptr, %"class.boost::function1.51", %"class.boost::function1.52" }
%"class.boost::function1.51" = type { %"class.boost::function_base" }
%"class.boost::function_base" = type { ptr, %"union.boost::detail::function::function_buffer" }
%"union.boost::detail::function::function_buffer" = type { %"union.boost::detail::function::function_buffer_members" }
%"union.boost::detail::function::function_buffer_members" = type { %"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" }
%"struct.boost::detail::function::function_buffer_members::bound_memfunc_ptr_t" = type { { i64, i64 }, ptr }
%"class.boost::function1.52" = type { %"class.boost::function_base" }
%"class.boost::property_tree::basic_ptree" = type { %"class.std::__cxx11::basic_string", ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.58" = type { %"struct.std::_Vector_base.59" }
%"struct.std::_Vector_base.59" = 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::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<std::vector<double>, std::allocator<std::vector<double>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<std::vector<double>, std::allocator<std::vector<double>>>::_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.amgcl::profiler<>::scoped_ticker" = type { ptr }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.66", %"struct.std::_Head_base.67" }
%"struct.std::_Tuple_impl.66" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { i64 }
%"struct.std::_Head_base.67" = type { i64 }
%"class.amgcl::io::mm_reader" = type { %"class.std::basic_ifstream", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i64, i64 }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.68 }
%union.anon.68 = type { i32 }
%"class.std::tuple.69" = type { %"struct.std::_Tuple_impl.70" }
%"struct.std::_Tuple_impl.70" = type { %"struct.std::_Tuple_impl.71", %"struct.std::_Head_base.73" }
%"struct.std::_Tuple_impl.71" = type { %"struct.std::_Head_base.72" }
%"struct.std::_Head_base.72" = type { ptr }
%"struct.std::_Head_base.73" = type { ptr }
%"class.std::allocator.60" = 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.std::tuple.74" = type { %"struct.std::_Tuple_impl.75" }
%"struct.std::_Tuple_impl.75" = type { %"struct.std::_Tuple_impl.76", %"struct.std::_Head_base.73" }
%"struct.std::_Tuple_impl.76" = type { %"struct.std::_Tuple_impl.77", %"struct.std::_Head_base.81" }
%"struct.std::_Tuple_impl.77" = type { %"struct.std::_Tuple_impl.78", %"struct.std::_Head_base.80" }
%"struct.std::_Tuple_impl.78" = type { %"struct.std::_Head_base.79" }
%"struct.std::_Head_base.79" = type { ptr }
%"struct.std::_Head_base.80" = type { ptr }
%"struct.std::_Head_base.81" = type { ptr }
%"class.boost::property_tree::string_path" = type { %"class.std::__cxx11::basic_string", i8, %"class.__gnu_cxx::__normal_iterator.82" }
%"class.__gnu_cxx::__normal_iterator.82" = type { ptr }
%"struct.std::_List_iterator" = type { ptr }
%"class.amgcl::make_solver" = type { %"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", i64, %"class.amgcl::amg", %"struct.amgcl::runtime::solver::wrapper" }
%"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params" = type { %"struct.amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::params", %"class.boost::property_tree::basic_ptree" }
%"struct.amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::params" = type <{ %"class.boost::property_tree::basic_ptree", %"class.boost::property_tree::basic_ptree", i32, i8, [3 x i8], i32, i32, i32, i32, i32, i8, [3 x i8] }>
%"class.amgcl::amg" = type { %"struct.amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::params", %"class.std::__cxx11::list.83" }
%"class.std::__cxx11::list.83" = type { %"class.std::__cxx11::_List_base.84" }
%"class.std::__cxx11::_List_base.84" = type { %"struct.std::__cxx11::_List_base<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level, std::allocator<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level>>::_List_impl" }
%"struct.std::__cxx11::_List_base<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level, std::allocator<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>::level>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.amgcl::runtime::solver::wrapper" = type { i32, ptr }
%"struct.amgcl::detail::empty_params" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.88" = type { ptr }
%"class.std::tuple.89" = type { %"struct.std::_Tuple_impl.90" }
%"struct.std::_Tuple_impl.90" = type { %"struct.std::_Tuple_impl.91", %"struct.std::_Head_base.67" }
%"struct.std::_Tuple_impl.91" = type { %"struct.std::_Head_base.92" }
%"struct.std::_Head_base.92" = type { double }
%"class.std::tuple.93" = type { %"struct.std::_Tuple_impl.94" }
%"struct.std::_Tuple_impl.94" = type { %"struct.std::_Tuple_impl.95", %"struct.std::_Head_base.97" }
%"struct.std::_Tuple_impl.95" = type { %"struct.std::_Head_base.96" }
%"struct.std::_Head_base.96" = type { ptr }
%"struct.std::_Head_base.97" = type { ptr }

@_ZN5amgcl4profE = external dso_local global %"class.amgcl::profiler", align 8
@.str = external hidden unnamed_addr constant [8 x i8], align 1
@_ZN5boost15program_options19options_description21m_default_line_lengthE = external local_unnamed_addr constant i32, align 4
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [6 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.boost::program_options::options_description", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.boost::program_options::options_description_easy_init", align 8
  %7 = alloca i8, align 1
  %8 = alloca i32, align 4
  %9 = alloca i8, align 1
  %10 = alloca %"class.boost::program_options::positional_options_description", align 8
  %11 = alloca %"class.boost::program_options::variables_map", align 8
  %12 = alloca %"class.boost::program_options::basic_parsed_options", align 8
  %13 = alloca %"class.boost::program_options::basic_command_line_parser", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.boost::property_tree::basic_ptree", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::locale", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::vector.53", align 8
  %34 = alloca %"class.std::vector.53", align 8
  %35 = alloca %"class.std::vector.58", align 8
  %36 = alloca %"class.std::vector.58", align 8
  %37 = alloca %"class.std::__cxx11::list", align 8
  %38 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca i64, align 8
  %47 = alloca %"class.std::tuple", align 8
  %48 = alloca %"class.amgcl::io::mm_reader", align 8
  %49 = alloca %"class.std::tuple.69", align 8
  %50 = alloca i8, align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca %"class.std::tuple", align 8
  %59 = alloca %"class.amgcl::io::mm_reader", align 8
  %60 = alloca %"class.std::tuple.69", align 8
  %61 = alloca i8, align 1
  %62 = alloca double, align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %"class.std::vector.58", align 8
  %69 = alloca i64, align 8
  %70 = alloca %"class.std::tuple", align 8
  %71 = alloca %"class.amgcl::io::mm_reader", align 8
  %72 = alloca %"class.std::tuple.69", align 8
  %73 = alloca i8, align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca %"class.std::vector.58", align 8
  %80 = alloca double, align 8
  %81 = alloca %"class.std::allocator.60", align 1
  %82 = alloca %"class.std::mersenne_twister_engine", align 8
  %83 = alloca %"class.std::uniform_real_distribution", align 8
  %84 = alloca %"class.std::vector.58", align 8
  %85 = alloca %"class.std::allocator.60", align 1
  %86 = alloca %"class.std::vector.58", align 8
  %87 = alloca double, align 8
  %88 = alloca %"class.std::allocator.60", align 1
  %89 = alloca %"class.std::tuple.74", align 8
  %90 = alloca %"class.boost::property_tree::string_path", align 8
  %91 = alloca i8, align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca i32, align 4
  %95 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::vector.58", align 8
  %101 = alloca %"struct.std::_List_iterator", align 8
  %102 = alloca %"struct.std::_List_iterator", align 8
  %103 = alloca %"class.boost::property_tree::string_path", align 8
  %104 = alloca %"class.boost::property_tree::string_path", align 8
  %105 = alloca %"class.boost::property_tree::string_path", align 8
  %106 = alloca ptr, align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::allocator", align 1
  %109 = alloca %"class.amgcl::make_solver", align 8
  %110 = alloca %"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", align 8
  %111 = alloca %"struct.amgcl::detail::empty_params", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %115 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %116 = alloca i32, align 4
  %117 = alloca double, align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator", align 1
  %120 = alloca %"class.std::tuple.89", align 8
  %121 = alloca %"class.std::tuple.93", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator", align 1
  %124 = alloca %"struct.std::_List_iterator", align 8
  %125 = alloca %"struct.std::_List_iterator", align 8
  %126 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %127 = alloca %"class.__gnu_cxx::__normal_iterator.88", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::vector.58", align 8
  %131 = alloca %"class.std::allocator.60", align 1
  %132 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::allocator", align 1
  %135 = alloca %"struct.std::_List_iterator", align 8
  %136 = alloca %"struct.std::_List_iterator", align 8
  %137 = alloca %"class.boost::property_tree::string_path", align 8
  %138 = alloca %"class.boost::property_tree::string_path", align 8
  %139 = alloca %"class.boost::property_tree::string_path", align 8
  %140 = alloca ptr, align 8
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::allocator", align 1
  %143 = alloca %"class.amgcl::make_solver", align 8
  %144 = alloca %"struct.amgcl::make_solver<amgcl::amg<amgcl::backend::builtin<double>, amgcl::runtime::coarsening::wrapper, amgcl::runtime::relaxation::wrapper>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", align 8
  %145 = alloca %"struct.amgcl::detail::empty_params", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator", align 1
  %148 = alloca i32, align 4
  %149 = alloca double, align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator", align 1
  %152 = alloca %"class.std::tuple.89", align 8
  %153 = alloca %"class.std::tuple.93", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator", align 1
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::allocator", align 1
  %158 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::allocator", align 1
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %163 unwind label %239

163:                                              ; preds = %2
  %164 = load i32, ptr @_ZN5boost15program_options19options_description21m_default_line_lengthE, align 4, !tbaa !5
  %165 = lshr i32 %164, 1
  invoke void @_ZN5boost15program_options19options_descriptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj(ptr noundef nonnull align 8 dereferenceable(128) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef %164, i32 noundef %165)
          to label %166 unwind label %241

166:                                              ; preds = %163
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %167 = invoke ptr @_ZN5boost15program_options19options_description11add_optionsEv(ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %168 unwind label %244

168:                                              ; preds = %166
  store ptr %167, ptr %6, align 8
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcS3_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6)
          to label %170 unwind label %244

170:                                              ; preds = %168
  %171 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %172 unwind label %244

172:                                              ; preds = %170
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %169, ptr noundef nonnull @.str.7, ptr noundef %171, ptr noundef nonnull @.str.8)
          to label %174 unwind label %244

174:                                              ; preds = %172
  %175 = invoke noundef ptr @_ZN5boost15program_options5valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEEPNS0_11typed_valueIT_cEEv()
          to label %176 unwind label %244

176:                                              ; preds = %174
  %177 = call noundef ptr @_ZN5boost15program_options11typed_valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEcE10multitokenEv(ptr noundef nonnull align 8 dereferenceable(176) %175)
  %178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull @.str.9, ptr noundef %177, ptr noundef nonnull @.str.10)
          to label %179 unwind label %244

179:                                              ; preds = %176
  %180 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %181 unwind label %244

181:                                              ; preds = %179
  %182 = call noundef ptr @_ZN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE8requiredEv(ptr noundef nonnull align 8 dereferenceable(176) %180)
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %178, ptr noundef nonnull @.str.11, ptr noundef %182, ptr noundef nonnull @.str.12)
          to label %184 unwind label %244

184:                                              ; preds = %181
  %185 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %186 unwind label %244

186:                                              ; preds = %184
  %187 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef nonnull @.str.13, ptr noundef %185, ptr noundef nonnull @.str.14)
          to label %188 unwind label %244

188:                                              ; preds = %186
  %189 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %190 unwind label %244

190:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #9
  store i8 0, ptr %7, align 1, !tbaa !9
  %191 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %189, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %192 unwind label %246

192:                                              ; preds = %190
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef nonnull @.str.15, ptr noundef %191, ptr noundef nonnull @.str.16)
          to label %194 unwind label %246

194:                                              ; preds = %192
  %195 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %196 unwind label %246

196:                                              ; preds = %194
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull @.str.17, ptr noundef %195, ptr noundef nonnull @.str.18)
          to label %198 unwind label %246

198:                                              ; preds = %196
  %199 = invoke noundef ptr @_ZN5boost15program_options5valueIiEEPNS0_11typed_valueIT_cEEv()
          to label %200 unwind label %246

200:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #9
  store i32 3, ptr %8, align 4, !tbaa !5
  %201 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIicE13default_valueERKi(ptr noundef nonnull align 8 dereferenceable(176) %199, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %202 unwind label %248

202:                                              ; preds = %200
  %203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull @.str.19, ptr noundef %201, ptr noundef nonnull @.str.20)
          to label %204 unwind label %248

204:                                              ; preds = %202
  %205 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %206 unwind label %248

206:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #9
  store i8 0, ptr %9, align 1, !tbaa !9
  %207 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %205, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %208 unwind label %250

208:                                              ; preds = %206
  %209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull @.str.21, ptr noundef %207, ptr noundef nonnull @.str.22)
          to label %210 unwind label %250

210:                                              ; preds = %208
  %211 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %212 unwind label %250

212:                                              ; preds = %210
  %213 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %209, ptr noundef nonnull @.str.23, ptr noundef %211, ptr noundef nonnull @.str.24)
          to label %214 unwind label %250

214:                                              ; preds = %212
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %10) #9
  invoke void @_ZN5boost15program_options30positional_options_descriptionC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %10)
          to label %215 unwind label %255

215:                                              ; preds = %214
  %216 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN5boost15program_options30positional_options_description3addEPKci(ptr noundef nonnull align 8 dereferenceable(56) %10, ptr noundef nonnull @.str.25, i32 noundef -1)
          to label %217 unwind label %257

217:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %11) #9
  invoke void @_ZN5boost15program_options13variables_mapC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %11)
          to label %218 unwind label %259

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %13) #9
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc(ptr noundef nonnull align 8 dereferenceable(120) %13, i32 noundef %0, ptr noundef %1)
          to label %219 unwind label %261

219:                                              ; preds = %218
  %220 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE7optionsERKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %13, ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %221 unwind label %263

221:                                              ; preds = %219
  %222 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE10positionalERKNS0_30positional_options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %220, ptr noundef nonnull align 8 dereferenceable(56) %10)
          to label %223 unwind label %263

223:                                              ; preds = %221
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcE3runEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::program_options::basic_parsed_options") align 8 %12, ptr noundef nonnull align 8 dereferenceable(120) %222)
          to label %224 unwind label %263

224:                                              ; preds = %223
  invoke void @_ZN5boost15program_options5storeERKNS0_20basic_parsed_optionsIcEERNS0_13variables_mapEb(ptr noundef nonnull align 8 dereferenceable(36) %12, ptr noundef nonnull align 8 dereferenceable(160) %11, i1 noundef zeroext false)
          to label %225 unwind label %265

225:                                              ; preds = %224
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %12) #9
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %13) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #9
  invoke void @_ZN5boost15program_options6notifyERNS0_13variables_mapE(ptr noundef nonnull align 8 dereferenceable(160) %11)
          to label %226 unwind label %269

226:                                              ; preds = %225
  %227 = getelementptr inbounds i8, ptr %11, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %228 unwind label %271

228:                                              ; preds = %226
  %229 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %227, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %230 unwind label %273

230:                                              ; preds = %228
  %.not = icmp eq i64 %229, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  br i1 %.not, label %.preheader320, label %235

.preheader320:                                    ; preds = %230
  %231 = icmp sgt i32 %0, 0
  br i1 %231, label %232, label %._crit_edge

232:                                              ; preds = %.preheader320
  %wide.trip.count = zext nneg i32 %0 to i64
  %.pre = load ptr, ptr %1, align 8, !tbaa !11
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %.pre)
          to label %234 unwind label %.loopexit.split-lp

234:                                              ; preds = %232
  %exitcond.peel.not = icmp eq i32 %0, 1
  br i1 %exitcond.peel.not, label %._crit_edge, label %.lr.ph.peel.next

235:                                              ; preds = %230
  %236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_optionslsERSoRKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %237 unwind label %269

237:                                              ; preds = %235
  %238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %984 unwind label %269

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

241:                                              ; preds = %163
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  br label %243

243:                                              ; preds = %241, %239
  %.pn = phi { ptr, i32 } [ %242, %241 ], [ %240, %239 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %1003

244:                                              ; preds = %188, %186, %184, %181, %179, %176, %174, %172, %170, %168, %166
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %254

246:                                              ; preds = %198, %196, %194, %192, %190
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %253

248:                                              ; preds = %204, %202, %200
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %252

250:                                              ; preds = %212, %210, %208, %206
  %251 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9
  br label %252

252:                                              ; preds = %250, %248
  %.pn180 = phi { ptr, i32 } [ %251, %250 ], [ %249, %248 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #9
  br label %253

253:                                              ; preds = %252, %246
  %.pn180.pn = phi { ptr, i32 } [ %.pn180, %252 ], [ %247, %246 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  br label %254

254:                                              ; preds = %253, %244
  %.pn180.pn.pn = phi { ptr, i32 } [ %.pn180.pn, %253 ], [ %245, %244 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br label %1002

255:                                              ; preds = %214
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %1001

257:                                              ; preds = %215
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %1000

259:                                              ; preds = %217
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %999

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

263:                                              ; preds = %223, %221, %219
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %267

265:                                              ; preds = %224
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %12) #9
  br label %267

267:                                              ; preds = %265, %263
  %.pn184 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %13) #9
  br label %268

268:                                              ; preds = %267, %261
  %.pn184.pn = phi { ptr, i32 } [ %.pn184, %267 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #9
  br label %998

269:                                              ; preds = %._crit_edge, %237, %235, %225
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %998

271:                                              ; preds = %226
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %275

273:                                              ; preds = %228
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %275

275:                                              ; preds = %273, %271
  %.pn187 = phi { ptr, i32 } [ %274, %273 ], [ %272, %271 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  br label %998

._crit_edge:                                      ; preds = %282, %234, %.preheader320
  %276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %283 unwind label %269

.lr.ph.peel.next:                                 ; preds = %234, %282
  %indvars.iv = phi i64 [ %indvars.iv.next, %282 ], [ 1, %234 ]
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.27)
          to label %278 unwind label %.loopexit376

.loopexit376:                                     ; preds = %.lr.ph.peel.next, %278
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %998

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

278:                                              ; preds = %.lr.ph.peel.next
  %279 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv
  %280 = load ptr, ptr %279, align 8, !tbaa !11
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %280)
          to label %282 unwind label %.loopexit376

282:                                              ; preds = %278
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.peel.next, !llvm.loop !13

283:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #9
  invoke void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16)
          to label %284 unwind label %295

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %285 unwind label %297

285:                                              ; preds = %284
  %286 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %227, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %287 unwind label %299

287:                                              ; preds = %285
  %.not191 = icmp eq i64 %286, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  br i1 %.not191, label %310, label %288

288:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %289 unwind label %302

289:                                              ; preds = %288
  %290 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %291 unwind label %304

291:                                              ; preds = %289
  %292 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %290)
          to label %293 unwind label %304

293:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  call void @_ZNSt6localeC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  invoke void @_ZN5boost13property_tree11json_parser9read_jsonINS0_11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEEEEvRKS9_RT_RKSt6locale(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %294 unwind label %306

294:                                              ; preds = %293
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %310

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

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

299:                                              ; preds = %285
  %300 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %301

301:                                              ; preds = %299, %297
  %.pn189 = phi { ptr, i32 } [ %300, %299 ], [ %298, %297 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  br label %996

302:                                              ; preds = %288
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %309

304:                                              ; preds = %291, %289
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %308

306:                                              ; preds = %293
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  br label %308

308:                                              ; preds = %306, %304
  %.pn192 = phi { ptr, i32 } [ %307, %306 ], [ %305, %304 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %309

309:                                              ; preds = %308, %302
  %.pn192.pn = phi { ptr, i32 } [ %.pn192, %308 ], [ %303, %302 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %996

310:                                              ; preds = %294, %287
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %311 unwind label %323

311:                                              ; preds = %310
  %312 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %227, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %313 unwind label %325

313:                                              ; preds = %311
  %.not197 = icmp eq i64 %312, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br i1 %.not197, label %339, label %314

314:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %315 unwind label %328

315:                                              ; preds = %314
  %316 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %317 unwind label %330

317:                                              ; preds = %315
  %318 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5boost15program_options14variable_value2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %316)
          to label %319 unwind label %330

319:                                              ; preds = %317
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  %320 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %318) #9
  store ptr %320, ptr %26, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  %321 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %318) #9
  store ptr %321, ptr %27, align 8
  %322 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  br i1 %322, label %.lr.ph323, label %._crit_edge324

._crit_edge324:                                   ; preds = %334, %319
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %339

323:                                              ; preds = %310
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %327

325:                                              ; preds = %311
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %327

327:                                              ; preds = %325, %323
  %.pn195 = phi { ptr, i32 } [ %326, %325 ], [ %324, %323 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %996

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

330:                                              ; preds = %317, %315
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %332

332:                                              ; preds = %330, %328
  %.pn198 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  br label %996

.lr.ph323:                                        ; preds = %319, %334
  %333 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  invoke void @_ZN5amgcl3putERN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St4lessIS8_EEERKS8_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(32) %333)
          to label %334 unwind label %337

334:                                              ; preds = %.lr.ph323
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  %336 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  br i1 %336, label %.lr.ph323, label %._crit_edge324

337:                                              ; preds = %.lr.ph323
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %996

339:                                              ; preds = %._crit_edge324, %313
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  store i64 0, ptr %29, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %340 unwind label %363

340:                                              ; preds = %339
  %341 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %342 unwind label %365

342:                                              ; preds = %340
  %343 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5boost15program_options14variable_value2asIiEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %344 unwind label %365

344:                                              ; preds = %342
  %345 = load i32, ptr %343, align 4, !tbaa !5
  %346 = sext i32 %345 to i64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  store i64 %346, ptr %30, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #9
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #9
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #9
  call void @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %347 unwind label %368

347:                                              ; preds = %344
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %38, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %348 unwind label %370

348:                                              ; preds = %347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %349 unwind label %373

349:                                              ; preds = %348
  %350 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %351 unwind label %375

351:                                              ; preds = %349
  %352 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %350)
          to label %353 unwind label %375

353:                                              ; preds = %351
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %352)
          to label %354 unwind label %375

354:                                              ; preds = %353
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %355 unwind label %378

355:                                              ; preds = %354
  %356 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %357 unwind label %380

357:                                              ; preds = %355
  %358 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %356)
          to label %359 unwind label %380

359:                                              ; preds = %357
  %360 = load i8, ptr %358, align 1, !tbaa !9, !range !18, !noundef !19
  %361 = trunc nuw i8 %360 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  br i1 %361, label %362, label %385

362:                                              ; preds = %359
  invoke void @_ZN5amgcl2io8read_crsIllldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_RSt6vectorIT0_SaISD_EERSC_IT1_SaISH_EERSC_IT2_SaISL_EEll(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef -1, i64 noundef -1)
          to label %402 unwind label %383

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

365:                                              ; preds = %342, %340
  %366 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %367

367:                                              ; preds = %365, %363
  %.pn200 = phi { ptr, i32 } [ %366, %365 ], [ %364, %363 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  br label %995

368:                                              ; preds = %344
  %369 = landingpad { ptr, i32 }
          cleanup
  br label %372

370:                                              ; preds = %347
  %371 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %372

372:                                              ; preds = %370, %368
  %.pn202 = phi { ptr, i32 } [ %371, %370 ], [ %369, %368 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  br label %534

373:                                              ; preds = %348
  %374 = landingpad { ptr, i32 }
          cleanup
  br label %377

375:                                              ; preds = %353, %351, %349
  %376 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %377

377:                                              ; preds = %375, %373
  %.pn204 = phi { ptr, i32 } [ %376, %375 ], [ %374, %373 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  br label %533

378:                                              ; preds = %354
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %382

380:                                              ; preds = %357, %355
  %381 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %382

382:                                              ; preds = %380, %378
  %.pn206 = phi { ptr, i32 } [ %381, %380 ], [ %379, %378 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  br label %532

383:                                              ; preds = %362
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %532

385:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #9
  call void @llvm.lifetime.start.p0(i64 576, ptr nonnull %48) #9
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %48, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %386 unwind label %394

386:                                              ; preds = %385
  invoke void @_ZN5amgcl2io9mm_readerclIldEESt5tupleIJmmEERSt6vectorIT_SaIS6_EES9_RS5_IT0_SaISA_EEll(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %47, ptr noundef nonnull align 8 dereferenceable(576) %48, ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef -1, i64 noundef -1)
          to label %387 unwind label %396

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #9
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.69") align 8 %49, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  %388 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRlS0_EEaSImmEENSt9enable_ifIXcl12__assignableIT_T0_EEERS1_E4typeEOS_IJS4_S5_EE(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(16) %47) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #9
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %48) #9
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #9
  %389 = load i64, ptr %28, align 8, !tbaa !16
  %390 = load i64, ptr %46, align 8, !tbaa !16
  %391 = icmp eq i64 %389, %390
  %392 = zext i1 %391 to i8
  store i8 %392, ptr %50, align 1, !tbaa !9
  invoke void @_ZN5amgcl12preconditionIbA25_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %50, ptr noundef nonnull align 1 dereferenceable(25) @.str.33)
          to label %393 unwind label %399

393:                                              ; preds = %387
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  br label %402

394:                                              ; preds = %385
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %398

396:                                              ; preds = %386
  %397 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %48) #9
  br label %398

398:                                              ; preds = %396, %394
  %.pn208 = phi { ptr, i32 } [ %397, %396 ], [ %395, %394 ]
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #9
  br label %401

399:                                              ; preds = %387
  %400 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #9
  br label %401

401:                                              ; preds = %399, %398
  %.pn210 = phi { ptr, i32 } [ %400, %399 ], [ %.pn208, %398 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  br label %532

402:                                              ; preds = %362, %393
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %403 unwind label %414

403:                                              ; preds = %402
  %404 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %227, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %405 unwind label %416

405:                                              ; preds = %403
  %.not214 = icmp eq i64 %404, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  br i1 %.not214, label %448, label %406

406:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %55) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %407 unwind label %419

407:                                              ; preds = %406
  %408 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %409 unwind label %421

409:                                              ; preds = %407
  %410 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %408)
          to label %411 unwind label %421

411:                                              ; preds = %409
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %410)
          to label %412 unwind label %421

412:                                              ; preds = %411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #9
  br i1 %361, label %413, label %426

413:                                              ; preds = %412
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef -1, i64 noundef -1)
          to label %435 unwind label %424

414:                                              ; preds = %402
  %415 = landingpad { ptr, i32 }
          cleanup
  br label %418

416:                                              ; preds = %403
  %417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %418

418:                                              ; preds = %416, %414
  %.pn212 = phi { ptr, i32 } [ %417, %416 ], [ %415, %414 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  br label %532

419:                                              ; preds = %406
  %420 = landingpad { ptr, i32 }
          cleanup
  br label %423

421:                                              ; preds = %411, %409, %407
  %422 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %423

423:                                              ; preds = %421, %419
  %.pn215 = phi { ptr, i32 } [ %422, %421 ], [ %420, %419 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  br label %447

424:                                              ; preds = %413
  %425 = landingpad { ptr, i32 }
          cleanup
  br label %446

426:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 576, ptr nonnull %59) #9
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %59, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %427 unwind label %430

427:                                              ; preds = %426
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %58, ptr noundef nonnull align 8 dereferenceable(576) %59, ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef -1, i64 noundef -1)
          to label %428 unwind label %432

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %60) #9
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.69") align 8 %60, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #9
  %429 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRlS0_EEaSImmEENSt9enable_ifIXcl12__assignableIT_T0_EEERS1_E4typeEOS_IJS4_S5_EE(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 8 dereferenceable(16) %58) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #9
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %59) #9
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #9
  br label %435

430:                                              ; preds = %426
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %434

432:                                              ; preds = %427
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %59) #9
  br label %434

434:                                              ; preds = %432, %430
  %.pn217 = phi { ptr, i32 } [ %433, %432 ], [ %431, %430 ]
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #9
  br label %446

435:                                              ; preds = %413, %428
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #9
  %436 = load i64, ptr %56, align 8, !tbaa !16
  %437 = load i64, ptr %28, align 8, !tbaa !16
  %438 = icmp eq i64 %436, %437
  %439 = load i64, ptr %57, align 8
  %440 = icmp eq i64 %439, 1
  %441 = select i1 %438, i1 %440, i1 false
  %442 = zext i1 %441 to i8
  store i8 %442, ptr %61, align 1, !tbaa !9
  invoke void @_ZN5amgcl12preconditionIbA30_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %61, ptr noundef nonnull align 1 dereferenceable(30) @.str.35)
          to label %443 unwind label %444

443:                                              ; preds = %435
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  br label %453

444:                                              ; preds = %435
  %445 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  br label %446

446:                                              ; preds = %444, %434, %424
  %.pn219 = phi { ptr, i32 } [ %445, %444 ], [ %425, %424 ], [ %.pn217, %434 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %447

447:                                              ; preds = %446, %423
  %.pn219.pn = phi { ptr, i32 } [ %.pn219, %446 ], [ %.pn215, %423 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  br label %532

448:                                              ; preds = %405
  %449 = load i64, ptr %28, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #9
  store double 1.000000e+00, ptr %62, align 8, !tbaa !20
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %449, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %450 unwind label %451

450:                                              ; preds = %448
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  br label %453

451:                                              ; preds = %448
  %452 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  br label %532

453:                                              ; preds = %450, %443
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %454 unwind label %465

454:                                              ; preds = %453
  %455 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %227, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %456 unwind label %467

456:                                              ; preds = %454
  %.not224 = icmp eq i64 %455, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #9
  br i1 %.not224, label %516, label %457

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %67) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %458 unwind label %470

458:                                              ; preds = %457
  %459 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %460 unwind label %472

460:                                              ; preds = %458
  %461 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %459)
          to label %462 unwind label %472

462:                                              ; preds = %460
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %461)
          to label %463 unwind label %472

463:                                              ; preds = %462
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %68) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #9
  br i1 %361, label %464, label %477

464:                                              ; preds = %463
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef -1, i64 noundef -1)
          to label %486 unwind label %475

465:                                              ; preds = %453
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %469

467:                                              ; preds = %454
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %469

469:                                              ; preds = %467, %465
  %.pn222 = phi { ptr, i32 } [ %468, %467 ], [ %466, %465 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #9
  br label %532

470:                                              ; preds = %457
  %471 = landingpad { ptr, i32 }
          cleanup
  br label %474

472:                                              ; preds = %462, %460, %458
  %473 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  br label %474

474:                                              ; preds = %472, %470
  %.pn225 = phi { ptr, i32 } [ %473, %472 ], [ %471, %470 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  br label %515

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

477:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %70) #9
  call void @llvm.lifetime.start.p0(i64 576, ptr nonnull %71) #9
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %71, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %478 unwind label %481

478:                                              ; preds = %477
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %70, ptr noundef nonnull align 8 dereferenceable(576) %71, ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef -1, i64 noundef -1)
          to label %479 unwind label %483

479:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #9
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.69") align 8 %72, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  %480 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRlS0_EEaSImmEENSt9enable_ifIXcl12__assignableIT_T0_EEERS1_E4typeEOS_IJS4_S5_EE(ptr noundef nonnull align 8 dereferenceable(16) %72, ptr noundef nonnull align 8 dereferenceable(16) %70) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #9
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %71) #9
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #9
  br label %486

481:                                              ; preds = %477
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %485

483:                                              ; preds = %478
  %484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %71) #9
  br label %485

485:                                              ; preds = %483, %481
  %.pn227 = phi { ptr, i32 } [ %484, %483 ], [ %482, %481 ]
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #9
  br label %514

486:                                              ; preds = %464, %479
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #9
  %487 = load i64, ptr %69, align 8, !tbaa !16
  %488 = load i64, ptr %28, align 8, !tbaa !16
  %489 = icmp eq i64 %487, %488
  %490 = zext i1 %489 to i8
  store i8 %490, ptr %73, align 1, !tbaa !9
  invoke void @_ZN5amgcl12preconditionIbA40_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %73, ptr noundef nonnull align 1 dereferenceable(40) @.str.37)
          to label %491 unwind label %494

491:                                              ; preds = %486
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #9
  %492 = load i64, ptr %29, align 8, !tbaa !16
  %493 = icmp sgt i64 %492, 0
  br i1 %493, label %.lr.ph330, label %._crit_edge331

._crit_edge331:                                   ; preds = %._crit_edge327, %491
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #9
  br label %516

494:                                              ; preds = %486
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #9
  br label %514

.lr.ph330:                                        ; preds = %491, %._crit_edge327
  %.0168328 = phi i64 [ %499, %._crit_edge327 ], [ 0, %491 ]
  %496 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE12emplace_backIJRlEEERS3_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %.preheader319 unwind label %502

.preheader319:                                    ; preds = %.lr.ph330
  %497 = load i64, ptr %28, align 8, !tbaa !16
  %498 = icmp sgt i64 %497, 0
  br i1 %498, label %.lr.ph326, label %._crit_edge327

._crit_edge327:                                   ; preds = %.lr.ph326, %.preheader319
  %499 = add nuw nsw i64 %.0168328, 1
  %500 = load i64, ptr %29, align 8, !tbaa !16
  %501 = icmp slt i64 %499, %500
  br i1 %501, label %.lr.ph330, label %._crit_edge331, !llvm.loop !22

502:                                              ; preds = %.lr.ph330
  %503 = landingpad { ptr, i32 }
          cleanup
  br label %514

.lr.ph326:                                        ; preds = %.preheader319, %.lr.ph326
  %.0169325 = phi i64 [ %511, %.lr.ph326 ], [ 0, %.preheader319 ]
  %504 = load i64, ptr %29, align 8, !tbaa !16
  %505 = mul nsw i64 %504, %.0169325
  %506 = add nsw i64 %505, %.0168328
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %506) #9
  %508 = load double, ptr %507, align 8, !tbaa !20
  %509 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  %510 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %509, i64 noundef %.0169325) #9
  store double %508, ptr %510, align 8, !tbaa !20
  %511 = add nuw nsw i64 %.0169325, 1
  %512 = load i64, ptr %28, align 8, !tbaa !16
  %513 = icmp slt i64 %511, %512
  br i1 %513, label %.lr.ph326, label %._crit_edge327, !llvm.loop !23

514:                                              ; preds = %502, %494, %485, %475
  %.pn299 = phi { ptr, i32 } [ %503, %502 ], [ %495, %494 ], [ %476, %475 ], [ %.pn227, %485 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  br label %515

515:                                              ; preds = %514, %474
  %.pn299.pn = phi { ptr, i32 } [ %.pn299, %514 ], [ %.pn225, %474 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #9
  br label %532

516:                                              ; preds = %._crit_edge331, %456
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %75) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %517 unwind label %535

517:                                              ; preds = %516
  %518 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %519 unwind label %537

519:                                              ; preds = %517
  %520 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %518)
          to label %521 unwind label %537

521:                                              ; preds = %519
  %522 = load i8, ptr %520, align 1, !tbaa !9, !range !18, !noundef !19
  %523 = trunc nuw i8 %522 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #9
  br i1 %523, label %524, label %594

524:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %78) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %525 unwind label %540

525:                                              ; preds = %524
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %76, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %526 unwind label %542

526:                                              ; preds = %525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %79) #9
  %527 = load i64, ptr %28, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #9
  store double 1.000000e+00, ptr %80, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef %527, ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %528 unwind label %545

528:                                              ; preds = %526
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #9
  %529 = load i64, ptr %28, align 8, !tbaa !16
  %530 = icmp sgt i64 %529, 0
  br i1 %530, label %.lr.ph339, label %._crit_edge345

.preheader:                                       ; preds = %566
  %531 = icmp sgt i64 %567, 0
  br i1 %531, label %.lr.ph344, label %._crit_edge345

532:                                              ; preds = %515, %469, %451, %447, %418, %401, %383, %382
  %.pn299.pn.pn = phi { ptr, i32 } [ %.pn299.pn, %515 ], [ %.pn222, %469 ], [ %.pn219.pn, %447 ], [ %452, %451 ], [ %.pn212, %418 ], [ %384, %383 ], [ %.pn210, %401 ], [ %.pn206, %382 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %533

533:                                              ; preds = %532, %377
  %.pn299.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn, %532 ], [ %.pn204, %377 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  br label %534

534:                                              ; preds = %533, %372
  %.pn299.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn.pn, %533 ], [ %.pn202, %372 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #9
  br label %994

535:                                              ; preds = %516
  %536 = landingpad { ptr, i32 }
          cleanup
  br label %539

537:                                              ; preds = %519, %517
  %538 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %539

539:                                              ; preds = %537, %535
  %.pn229 = phi { ptr, i32 } [ %538, %537 ], [ %536, %535 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #9
  br label %994

540:                                              ; preds = %524
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %544

542:                                              ; preds = %525
  %543 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %544

544:                                              ; preds = %542, %540
  %.pn231 = phi { ptr, i32 } [ %543, %542 ], [ %541, %540 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #9
  br label %593

545:                                              ; preds = %526
  %546 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %79) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #9
  br label %593

.lr.ph339:                                        ; preds = %528, %566
  %.0170337 = phi i64 [ %549, %566 ], [ 0, %528 ]
  %547 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %.0170337) #9
  %548 = load i64, ptr %547, align 8, !tbaa !16
  %549 = add nuw nsw i64 %.0170337, 1
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %549) #9
  %551 = load i64, ptr %550, align 8, !tbaa !16
  %552 = icmp slt i64 %548, %551
  br i1 %552, label %.lr.ph335, label %._crit_edge336

._crit_edge336:                                   ; preds = %562, %.lr.ph339
  %.0171.lcssa = phi double [ 1.000000e+00, %.lr.ph339 ], [ %.1172, %562 ]
  %553 = call noundef zeroext i1 @_ZSt5isnand(double noundef %.0171.lcssa)
  br i1 %553, label %566, label %564

.lr.ph335:                                        ; preds = %.lr.ph339, %562
  %.0171333 = phi double [ %.1172, %562 ], [ 1.000000e+00, %.lr.ph339 ]
  %.0173332 = phi i64 [ %563, %562 ], [ %548, %.lr.ph339 ]
  %554 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %.0173332) #9
  %555 = load i64, ptr %554, align 8, !tbaa !16
  %556 = icmp eq i64 %555, %.0170337
  br i1 %556, label %557, label %562

557:                                              ; preds = %.lr.ph335
  %558 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %.0173332) #9
  %559 = load double, ptr %558, align 8, !tbaa !20
  %560 = call double @sqrt(double noundef %559) #9
  %561 = fdiv double 1.000000e+00, %560
  br label %562

562:                                              ; preds = %.lr.ph335, %557
  %.1172 = phi double [ %561, %557 ], [ %.0171333, %.lr.ph335 ]
  %563 = add i64 %.0173332, 1
  %exitcond377.not = icmp eq i64 %563, %551
  br i1 %exitcond377.not, label %._crit_edge336, label %.lr.ph335, !llvm.loop !24

564:                                              ; preds = %._crit_edge336
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef %.0170337) #9
  store double %.0171.lcssa, ptr %565, align 8, !tbaa !20
  br label %566

566:                                              ; preds = %564, %._crit_edge336
  %567 = load i64, ptr %28, align 8, !tbaa !16
  %568 = icmp slt i64 %549, %567
  br i1 %568, label %.lr.ph339, label %.preheader, !llvm.loop !25

.loopexit:                                        ; preds = %.lr.ph342, %.lr.ph344
  %569 = load i64, ptr %28, align 8, !tbaa !16
  %570 = icmp slt i64 %578, %569
  br i1 %570, label %.lr.ph344, label %._crit_edge345, !llvm.loop !26

._crit_edge345:                                   ; preds = %.loopexit, %528, %.preheader
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %79) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #9
  br label %594

.lr.ph344:                                        ; preds = %.preheader, %.loopexit
  %.0175343 = phi i64 [ %578, %.loopexit ], [ 0, %.preheader ]
  %571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef %.0175343) #9
  %572 = load double, ptr %571, align 8, !tbaa !20
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %.0175343) #9
  %574 = load double, ptr %573, align 8, !tbaa !20
  %575 = fmul double %572, %574
  store double %575, ptr %573, align 8, !tbaa !20
  %576 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %.0175343) #9
  %577 = load i64, ptr %576, align 8, !tbaa !16
  %578 = add nuw nsw i64 %.0175343, 1
  %579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %578) #9
  %580 = load i64, ptr %579, align 8, !tbaa !16
  %581 = icmp slt i64 %577, %580
  br i1 %581, label %.lr.ph342, label %.loopexit

.lr.ph342:                                        ; preds = %.lr.ph344, %.lr.ph342
  %.0176340 = phi i64 [ %592, %.lr.ph342 ], [ %577, %.lr.ph344 ]
  %582 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef %.0175343) #9
  %583 = load double, ptr %582, align 8, !tbaa !20
  %584 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %.0176340) #9
  %585 = load i64, ptr %584, align 8, !tbaa !16
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef %585) #9
  %587 = load double, ptr %586, align 8, !tbaa !20
  %588 = fmul double %583, %587
  %589 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %.0176340) #9
  %590 = load double, ptr %589, align 8, !tbaa !20
  %591 = fmul double %588, %590
  store double %591, ptr %589, align 8, !tbaa !20
  %592 = add i64 %.0176340, 1
  %exitcond378.not = icmp eq i64 %592, %580
  br i1 %exitcond378.not, label %.loopexit, label %.lr.ph342, !llvm.loop !27

593:                                              ; preds = %545, %544
  %.pn233 = phi { ptr, i32 } [ %546, %545 ], [ %.pn231, %544 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #9
  br label %994

594:                                              ; preds = %._crit_edge345, %521
  call void @llvm.lifetime.start.p0(i64 5000, ptr nonnull %82) #9
  invoke void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %82)
          to label %595 unwind label %611

595:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #9
  invoke void @_ZNSt25uniform_real_distributionIdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %83, double noundef -1.000000e+00, double noundef 1.000000e+00)
          to label %596 unwind label %613

596:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %84) #9
  %597 = load i64, ptr %28, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %85) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %597, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %598 unwind label %615

598:                                              ; preds = %596
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %86) #9
  %599 = load i64, ptr %28, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #9
  store double 0.000000e+00, ptr %87, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %88) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %599, ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %600 unwind label %617

600:                                              ; preds = %598
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #9
  call void @_ZSt3tieIJlSt6vectorIlSaIlEES2_S0_IdSaIdEEEESt5tupleIJDpRT_EES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.74") align 8 %89, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %90) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %90, ptr noundef nonnull @.str.40, i8 noundef signext 46)
          to label %601 unwind label %619

601:                                              ; preds = %600
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #9
  store i8 1, ptr %91, align 1, !tbaa !9
  %602 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIbEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(48) %90, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %603 unwind label %621

603:                                              ; preds = %601
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %90) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %90) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %93) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %604 unwind label %624

604:                                              ; preds = %603
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %605 unwind label %626

605:                                              ; preds = %604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %94) #9
  %606 = load i64, ptr %29, align 8, !tbaa !16
  %607 = trunc i64 %606 to i32
  store i32 %607, ptr %94, align 4, !tbaa !5
  %sext = shl i64 %606, 32
  %608 = ashr exact i64 %sext, 32
  %609 = load i64, ptr %30, align 8, !tbaa !16
  %610 = icmp sgt i64 %609, %608
  br i1 %610, label %.lr.ph364, label %._crit_edge365

._crit_edge365:                                   ; preds = %803, %605
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %94) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %814 unwind label %825

611:                                              ; preds = %594
  %612 = landingpad { ptr, i32 }
          cleanup
  br label %993

613:                                              ; preds = %595
  %614 = landingpad { ptr, i32 }
          cleanup
  br label %992

615:                                              ; preds = %596
  %616 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #9
  br label %991

617:                                              ; preds = %598
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #9
  br label %990

619:                                              ; preds = %600
  %620 = landingpad { ptr, i32 }
          cleanup
  br label %623

621:                                              ; preds = %601
  %622 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %90) #9
  br label %623

623:                                              ; preds = %621, %619
  %.pn235 = phi { ptr, i32 } [ %622, %621 ], [ %620, %619 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %90) #9
  br label %989

624:                                              ; preds = %603
  %625 = landingpad { ptr, i32 }
          cleanup
  br label %628

626:                                              ; preds = %604
  %627 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  br label %628

628:                                              ; preds = %626, %624
  %.pn237 = phi { ptr, i32 } [ %627, %626 ], [ %625, %624 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #9
  br label %989

.lr.ph364:                                        ; preds = %605, %803
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %98) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %629 unwind label %642

629:                                              ; preds = %.lr.ph364
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #9
  %630 = load i32, ptr %94, align 4, !tbaa !5
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %99, i32 noundef %630) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %631 unwind label %644

631:                                              ; preds = %629
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %95, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %632 unwind label %646

632:                                              ; preds = %631
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %100) #9
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #9
  %633 = load i32, ptr %94, align 4, !tbaa !5
  %.not273 = icmp eq i32 %633, 0
  br i1 %.not273, label %692, label %634

634:                                              ; preds = %632
  %635 = sext i32 %633 to i64
  %636 = load i64, ptr %28, align 8, !tbaa !16
  %637 = mul nsw i64 %636, %635
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %637)
          to label %638 unwind label %650

638:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #9
  %639 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  store ptr %639, ptr %101, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #9
  %640 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  store ptr %640, ptr %102, align 8
  %641 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  br i1 %641, label %.lr.ph352, label %._crit_edge353

._crit_edge353:                                   ; preds = %._crit_edge349, %638
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %103) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %103, ptr noundef nonnull @.str.43, i8 noundef signext 46)
          to label %667 unwind label %677

642:                                              ; preds = %.lr.ph364
  %643 = landingpad { ptr, i32 }
          cleanup
  br label %649

644:                                              ; preds = %629
  %645 = landingpad { ptr, i32 }
          cleanup
  br label %648

646:                                              ; preds = %631
  %647 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  br label %648

648:                                              ; preds = %646, %644
  %.pn270 = phi { ptr, i32 } [ %647, %646 ], [ %645, %644 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  br label %649

649:                                              ; preds = %648, %642
  %.pn270.pn = phi { ptr, i32 } [ %.pn270, %648 ], [ %643, %642 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #9
  br label %813

650:                                              ; preds = %634
  %651 = landingpad { ptr, i32 }
          cleanup
  br label %812

.lr.ph352:                                        ; preds = %638, %._crit_edge349
  %indvars.iv379 = phi i64 [ %indvars.iv.next380, %._crit_edge349 ], [ 0, %638 ]
  %652 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt14_List_iteratorISt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  %653 = load i64, ptr %28, align 8, !tbaa !16
  %654 = icmp sgt i64 %653, 0
  br i1 %654, label %.lr.ph348, label %._crit_edge349

._crit_edge349:                                   ; preds = %.lr.ph348, %.lr.ph352
  %indvars.iv.next380 = add nuw nsw i64 %indvars.iv379, 1
  %655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  %656 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  br i1 %656, label %.lr.ph352, label %._crit_edge353

.lr.ph348:                                        ; preds = %.lr.ph352, %.lr.ph348
  %.0174346 = phi i64 [ %664, %.lr.ph348 ], [ 0, %.lr.ph352 ]
  %657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %652, i64 noundef %.0174346) #9
  %658 = load double, ptr %657, align 8, !tbaa !20
  %659 = load i32, ptr %94, align 4, !tbaa !5
  %660 = sext i32 %659 to i64
  %661 = mul nsw i64 %.0174346, %660
  %662 = add nsw i64 %661, %indvars.iv379
  %663 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %662) #9
  store double %658, ptr %663, align 8, !tbaa !20
  %664 = add nuw nsw i64 %.0174346, 1
  %665 = load i64, ptr %28, align 8, !tbaa !16
  %666 = icmp slt i64 %664, %665
  br i1 %666, label %.lr.ph348, label %._crit_edge349, !llvm.loop !28

667:                                              ; preds = %._crit_edge353
  %668 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(48) %103, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %669 unwind label %679

669:                                              ; preds = %667
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %103) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %103) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %104) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %104, ptr noundef nonnull @.str.44, i8 noundef signext 46)
          to label %670 unwind label %682

670:                                              ; preds = %669
  %671 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIiEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(48) %104, ptr noundef nonnull align 4 dereferenceable(4) %94)
          to label %672 unwind label %684

672:                                              ; preds = %670
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %104) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %104) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %105) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %105, ptr noundef nonnull @.str.45, i8 noundef signext 46)
          to label %673 unwind label %687

673:                                              ; preds = %672
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #9
  %674 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %100) #9
  store ptr %674, ptr %106, align 8, !tbaa !11
  %675 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIPdEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(48) %105, ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %676 unwind label %689

676:                                              ; preds = %673
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %105) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %105) #9
  br label %692

677:                                              ; preds = %._crit_edge353
  %678 = landingpad { ptr, i32 }
          cleanup
  br label %681

679:                                              ; preds = %667
  %680 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %103) #9
  br label %681

681:                                              ; preds = %679, %677
  %.pn274 = phi { ptr, i32 } [ %680, %679 ], [ %678, %677 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %103) #9
  br label %812

682:                                              ; preds = %669
  %683 = landingpad { ptr, i32 }
          cleanup
  br label %686

684:                                              ; preds = %670
  %685 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %104) #9
  br label %686

686:                                              ; preds = %684, %682
  %.pn276 = phi { ptr, i32 } [ %685, %684 ], [ %683, %682 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %104) #9
  br label %812

687:                                              ; preds = %672
  %688 = landingpad { ptr, i32 }
          cleanup
  br label %691

689:                                              ; preds = %673
  %690 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %105) #9
  br label %691

691:                                              ; preds = %689, %687
  %.pn278 = phi { ptr, i32 } [ %690, %689 ], [ %688, %687 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %105) #9
  br label %812

692:                                              ; preds = %676, %632
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %693 unwind label %723

693:                                              ; preds = %692
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %694 unwind label %725

694:                                              ; preds = %693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #9
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %110) #9
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESR_St4lessISR_EEE(ptr noundef nonnull align 8 dereferenceable(152) %110, ptr noundef nonnull align 8 dereferenceable(40) %16)
          to label %695 unwind label %728

695:                                              ; preds = %694
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %111) #9
  call void @_ZN5amgcl6detail12empty_paramsC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111)
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESO_RSL_IdSaIdEEEEEERKT_RKNSH_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(312) %109, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(152) %110, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %696 unwind label %730

696:                                              ; preds = %695
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #9
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %110) #9
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %110) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %113) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %697 unwind label %733

697:                                              ; preds = %696
  %698 = call noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %112)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #9
  %699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %700 unwind label %735

700:                                              ; preds = %697
  %701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %699, ptr noundef nonnull @.str.47)
          to label %702 unwind label %735

702:                                              ; preds = %700
  %703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %701, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %704 unwind label %735

704:                                              ; preds = %702
  %705 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %703, ptr noundef nonnull @.str.48)
          to label %706 unwind label %735

706:                                              ; preds = %704
  %707 = load i32, ptr %94, align 4, !tbaa !5
  %708 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %705, i32 noundef %707)
          to label %709 unwind label %735

709:                                              ; preds = %706
  %710 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %708, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %711 unwind label %735

711:                                              ; preds = %709
  %712 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %710, ptr noundef nonnull @.str.47)
          to label %713 unwind label %735

713:                                              ; preds = %711
  %714 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %712, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %715 unwind label %735

715:                                              ; preds = %713
  %716 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRKNS_11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS6_10relaxation7wrapperEEENS6_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEE(ptr noundef nonnull align 8 dereferenceable(8) %714, ptr noundef nonnull align 8 dereferenceable(312) %109)
          to label %717 unwind label %735

717:                                              ; preds = %715
  %718 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %716, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %719 unwind label %735

719:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #9
  %720 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #9
  store ptr %720, ptr %114, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #9
  %721 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #9
  store ptr %721, ptr %115, align 8
  %722 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(8) %115) #9
  br i1 %722, label %.lr.ph355, label %._crit_edge356

._crit_edge356:                                   ; preds = %739, %719
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %116) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %744 unwind label %768

723:                                              ; preds = %692
  %724 = landingpad { ptr, i32 }
          cleanup
  br label %727

725:                                              ; preds = %693
  %726 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #9
  br label %727

727:                                              ; preds = %725, %723
  %.pn281 = phi { ptr, i32 } [ %726, %725 ], [ %724, %723 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #9
  br label %812

728:                                              ; preds = %694
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %732

730:                                              ; preds = %695
  %731 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #9
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %110) #9
  br label %732

732:                                              ; preds = %730, %728
  %.pn283 = phi { ptr, i32 } [ %731, %730 ], [ %729, %728 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %110) #9
  br label %811

733:                                              ; preds = %696
  %734 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #9
  br label %810

735:                                              ; preds = %717, %715, %713, %711, %709, %706, %704, %702, %700, %697
  %736 = landingpad { ptr, i32 }
          cleanup
  br label %810

.lr.ph355:                                        ; preds = %719, %739
  %737 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %114) #9
  %738 = invoke noundef double @_ZNSt25uniform_real_distributionIdEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEdRT_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 8 dereferenceable(5000) %82)
          to label %739 unwind label %742

739:                                              ; preds = %.lr.ph355
  store double %738, ptr %737, align 8, !tbaa !20
  %740 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %114) #9
  %741 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(8) %115) #9
  br i1 %741, label %.lr.ph355, label %._crit_edge356

742:                                              ; preds = %.lr.ph355
  %743 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #9
  br label %810

744:                                              ; preds = %._crit_edge356
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %745 unwind label %770

745:                                              ; preds = %744
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %120) #9
  invoke void @_ZNK5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSL_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.89") align 8 %120, ptr noundef nonnull align 8 dereferenceable(312) %109, ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %746 unwind label %773

746:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %121) #9
  call void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.93") align 8 %121, ptr noundef nonnull align 4 dereferenceable(4) %116, ptr noundef nonnull align 8 dereferenceable(8) %117) #9
  %747 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRiRdEEaSImdEENSt9enable_ifIXcl12__assignableIT_T0_EEERS2_E4typeEOS_IJS5_S6_EE(ptr noundef nonnull align 8 dereferenceable(16) %121, ptr noundef nonnull align 8 dereferenceable(16) %120) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %121) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %120) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %123) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %748 unwind label %775

748:                                              ; preds = %746
  %749 = call noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %122)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #9
  %750 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.50)
          to label %751 unwind label %777

751:                                              ; preds = %748
  %752 = load i32, ptr %116, align 4, !tbaa !5
  %753 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %750, i32 noundef %752)
          to label %754 unwind label %777

754:                                              ; preds = %751
  %755 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %753, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %756 unwind label %777

756:                                              ; preds = %754
  %757 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %755, ptr noundef nonnull @.str.51)
          to label %758 unwind label %777

758:                                              ; preds = %756
  %759 = load double, ptr %117, align 8, !tbaa !20
  %760 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %757, double noundef %759)
          to label %761 unwind label %777

761:                                              ; preds = %758
  %762 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %760, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %763 unwind label %777

763:                                              ; preds = %761
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %124) #9
  %764 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  store ptr %764, ptr %124, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %125) #9
  %765 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  store ptr %765, ptr %125, align 8
  %766 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %125) #9
  br i1 %766, label %.lr.ph358, label %._crit_edge359

._crit_edge359:                                   ; preds = %786, %763
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #9
  %767 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %791 unwind label %796

768:                                              ; preds = %._crit_edge356
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %772

770:                                              ; preds = %744
  %771 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  br label %772

772:                                              ; preds = %770, %768
  %.pn285 = phi { ptr, i32 } [ %771, %770 ], [ %769, %768 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #9
  br label %809

773:                                              ; preds = %745
  %774 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %120) #9
  br label %809

775:                                              ; preds = %746
  %776 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #9
  br label %809

777:                                              ; preds = %761, %758, %756, %754, %751, %748
  %778 = landingpad { ptr, i32 }
          cleanup
  br label %809

.lr.ph358:                                        ; preds = %763, %786
  %779 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt14_List_iteratorISt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %124) #9
  %780 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(24) %779)
          to label %781 unwind label %789

781:                                              ; preds = %.lr.ph358
  %782 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %779, ptr noundef nonnull align 8 dereferenceable(24) %779)
          to label %783 unwind label %789

783:                                              ; preds = %781
  %784 = fneg double %780
  %785 = fdiv double %784, %782
  invoke void @_ZN5amgcl7backend5axpbyIdSt6vectorIdSaIdEEiS4_EEvT_RKT0_T1_RT2_(double noundef %785, ptr noundef nonnull align 8 dereferenceable(24) %779, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %786 unwind label %789

786:                                              ; preds = %783
  %787 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %124) #9
  %788 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %125) #9
  br i1 %788, label %.lr.ph358, label %._crit_edge359

789:                                              ; preds = %783, %781, %.lr.ph358
  %790 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #9
  br label %809

791:                                              ; preds = %._crit_edge359
  %792 = call double @sqrt(double noundef %767) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %126) #9
  %793 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #9
  store ptr %793, ptr %126, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %127) #9
  %794 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #9
  store ptr %794, ptr %127, align 8
  %795 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %127) #9
  br i1 %795, label %.lr.ph361, label %._crit_edge362

._crit_edge362:                                   ; preds = %.lr.ph361, %791
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #9
  invoke void @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %803 unwind label %796

796:                                              ; preds = %._crit_edge362, %._crit_edge359
  %797 = landingpad { ptr, i32 }
          cleanup
  br label %809

.lr.ph361:                                        ; preds = %791, %.lr.ph361
  %798 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %126) #9
  %799 = load double, ptr %798, align 8, !tbaa !20
  %800 = fdiv double %799, %792
  store double %800, ptr %798, align 8, !tbaa !20
  %801 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %126) #9
  %802 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %127) #9
  br i1 %802, label %.lr.ph361, label %._crit_edge362

803:                                              ; preds = %._crit_edge362
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %116) #9
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %109) #9
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %109) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %100) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #9
  %804 = load i32, ptr %94, align 4, !tbaa !5
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr %94, align 4, !tbaa !5
  %806 = sext i32 %805 to i64
  %807 = load i64, ptr %30, align 8, !tbaa !16
  %808 = icmp sgt i64 %807, %806
  br i1 %808, label %.lr.ph364, label %._crit_edge365, !llvm.loop !29

809:                                              ; preds = %796, %789, %777, %775, %773, %772
  %.pn287 = phi { ptr, i32 } [ %790, %789 ], [ %797, %796 ], [ %778, %777 ], [ %776, %775 ], [ %774, %773 ], [ %.pn285, %772 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %116) #9
  br label %810

810:                                              ; preds = %809, %742, %735, %733
  %.pn289 = phi { ptr, i32 } [ %743, %742 ], [ %.pn287, %809 ], [ %736, %735 ], [ %734, %733 ]
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %109) #9
  br label %811

811:                                              ; preds = %810, %732
  %.pn289.pn = phi { ptr, i32 } [ %.pn289, %810 ], [ %.pn283, %732 ]
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %109) #9
  br label %812

812:                                              ; preds = %681, %686, %691, %811, %727, %650
  %.pn289.pn.pn = phi { ptr, i32 } [ %.pn289.pn, %811 ], [ %.pn281, %727 ], [ %651, %650 ], [ %.pn278, %691 ], [ %.pn276, %686 ], [ %.pn274, %681 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %100) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %100) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #9
  br label %813

813:                                              ; preds = %812, %649
  %.pn289.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn, %812 ], [ %.pn270.pn, %649 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %94) #9
  br label %989

814:                                              ; preds = %._crit_edge365
  %815 = call noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %128)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %130) #9
  %816 = load i64, ptr %30, align 8, !tbaa !16
  %817 = load i64, ptr %28, align 8, !tbaa !16
  %818 = mul nsw i64 %817, %816
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %131) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %818, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %819 unwind label %827

819:                                              ; preds = %814
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %132) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %133) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %134) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %820 unwind label %829

820:                                              ; preds = %819
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %132, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %821 unwind label %831

821:                                              ; preds = %820
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %135) #9
  %822 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  store ptr %822, ptr %135, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %136) #9
  %823 = call ptr @_ZNSt7__cxx114listISt6vectorIdSaIdEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  store ptr %823, ptr %136, align 8
  %824 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 8 dereferenceable(8) %136) #9
  br i1 %824, label %.lr.ph372, label %._crit_edge373

._crit_edge373:                                   ; preds = %._crit_edge369, %821
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %137) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %137, ptr noundef nonnull @.str.43, i8 noundef signext 46)
          to label %848 unwind label %918

825:                                              ; preds = %._crit_edge365
  %826 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #9
  br label %989

827:                                              ; preds = %814
  %828 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #9
  br label %988

829:                                              ; preds = %819
  %830 = landingpad { ptr, i32 }
          cleanup
  br label %833

831:                                              ; preds = %820
  %832 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #9
  br label %833

833:                                              ; preds = %831, %829
  %.pn239 = phi { ptr, i32 } [ %832, %831 ], [ %830, %829 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #9
  br label %962

.lr.ph372:                                        ; preds = %821, %._crit_edge369
  %indvars.iv382 = phi i64 [ %indvars.iv.next383, %._crit_edge369 ], [ 0, %821 ]
  %834 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt14_List_iteratorISt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %135) #9
  %835 = load i64, ptr %28, align 8, !tbaa !16
  %836 = icmp sgt i64 %835, 0
  br i1 %836, label %.lr.ph368, label %._crit_edge369

._crit_edge369:                                   ; preds = %.lr.ph368, %.lr.ph372
  %indvars.iv.next383 = add nuw nsw i64 %indvars.iv382, 1
  %837 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt6vectorIdSaIdEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %135) #9
  %838 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt6vectorIdSaIdEEES5_(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 8 dereferenceable(8) %136) #9
  br i1 %838, label %.lr.ph372, label %._crit_edge373

.lr.ph368:                                        ; preds = %.lr.ph372, %.lr.ph368
  %.0366 = phi i64 [ %845, %.lr.ph368 ], [ 0, %.lr.ph372 ]
  %839 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %834, i64 noundef %.0366) #9
  %840 = load double, ptr %839, align 8, !tbaa !20
  %841 = load i64, ptr %30, align 8, !tbaa !16
  %842 = mul nsw i64 %841, %.0366
  %843 = add nsw i64 %842, %indvars.iv382
  %844 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %843) #9
  store double %840, ptr %844, align 8, !tbaa !20
  %845 = add nuw nsw i64 %.0366, 1
  %846 = load i64, ptr %28, align 8, !tbaa !16
  %847 = icmp slt i64 %845, %846
  br i1 %847, label %.lr.ph368, label %._crit_edge369, !llvm.loop !30

848:                                              ; preds = %._crit_edge373
  %849 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(48) %137, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %850 unwind label %920

850:                                              ; preds = %848
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %137) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %137) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %138) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %138, ptr noundef nonnull @.str.44, i8 noundef signext 46)
          to label %851 unwind label %923

851:                                              ; preds = %850
  %852 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(48) %138, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %853 unwind label %925

853:                                              ; preds = %851
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %138) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %138) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %139) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %139, ptr noundef nonnull @.str.45, i8 noundef signext 46)
          to label %854 unwind label %928

854:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #9
  %855 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %130) #9
  store ptr %855, ptr %140, align 8, !tbaa !11
  %856 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIPdEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(48) %139, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %857 unwind label %930

857:                                              ; preds = %854
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %139) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %139) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %141) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %142) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %142)
          to label %858 unwind label %933

858:                                              ; preds = %857
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %859 unwind label %935

859:                                              ; preds = %858
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %142) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %143) #9
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %144) #9
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESR_St4lessISR_EEE(ptr noundef nonnull align 8 dereferenceable(152) %144, ptr noundef nonnull align 8 dereferenceable(40) %16)
          to label %860 unwind label %938

860:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %145) #9
  call void @_ZN5amgcl6detail12empty_paramsC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145)
  invoke void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESO_RSL_IdSaIdEEEEEERKT_RKNSH_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(312) %143, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(152) %144, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %861 unwind label %940

861:                                              ; preds = %860
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #9
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %144) #9
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %144) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %147) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %862 unwind label %943

862:                                              ; preds = %861
  %863 = call noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %146)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  %864 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %865 unwind label %945

865:                                              ; preds = %862
  %866 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %864, ptr noundef nonnull @.str.47)
          to label %867 unwind label %945

867:                                              ; preds = %865
  %868 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %866, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %869 unwind label %945

869:                                              ; preds = %867
  %870 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %868, ptr noundef nonnull @.str.53)
          to label %871 unwind label %945

871:                                              ; preds = %869
  %872 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %870, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %873 unwind label %945

873:                                              ; preds = %871
  %874 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %872, ptr noundef nonnull @.str.47)
          to label %875 unwind label %945

875:                                              ; preds = %873
  %876 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %874, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %877 unwind label %945

877:                                              ; preds = %875
  %878 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRKNS_11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS6_10relaxation7wrapperEEENS6_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEE(ptr noundef nonnull align 8 dereferenceable(8) %876, ptr noundef nonnull align 8 dereferenceable(312) %143)
          to label %879 unwind label %945

879:                                              ; preds = %877
  %880 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %878, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %881 unwind label %945

881:                                              ; preds = %879
  invoke void @_ZN5amgcl7backend5clearISt6vectorIdSaIdEEEEvRT_(ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %882 unwind label %945

882:                                              ; preds = %881
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %148) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %149) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %151) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %883 unwind label %947

883:                                              ; preds = %882
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %884 unwind label %949

884:                                              ; preds = %883
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %152) #9
  invoke void @_ZNK5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSL_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.89") align 8 %152, ptr noundef nonnull align 8 dereferenceable(312) %143, ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %885 unwind label %952

885:                                              ; preds = %884
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %153) #9
  call void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.93") align 8 %153, ptr noundef nonnull align 4 dereferenceable(4) %148, ptr noundef nonnull align 8 dereferenceable(8) %149) #9
  %886 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRiRdEEaSImdEENSt9enable_ifIXcl12__assignableIT_T0_EEERS2_E4typeEOS_IJS5_S6_EE(ptr noundef nonnull align 8 dereferenceable(16) %153, ptr noundef nonnull align 8 dereferenceable(16) %152) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %155) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %887 unwind label %954

887:                                              ; preds = %885
  %888 = call noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %154)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #9
  %889 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.50)
          to label %890 unwind label %956

890:                                              ; preds = %887
  %891 = load i32, ptr %148, align 4, !tbaa !5
  %892 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %889, i32 noundef %891)
          to label %893 unwind label %956

893:                                              ; preds = %890
  %894 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %892, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %895 unwind label %956

895:                                              ; preds = %893
  %896 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %894, ptr noundef nonnull @.str.51)
          to label %897 unwind label %956

897:                                              ; preds = %895
  %898 = load double, ptr %149, align 8, !tbaa !20
  %899 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %896, double noundef %898)
          to label %900 unwind label %956

900:                                              ; preds = %897
  %901 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %899, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %902 unwind label %956

902:                                              ; preds = %900
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #9
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %143) #9
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %143) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %132) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %157) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %903 unwind label %963

903:                                              ; preds = %902
  %904 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %227, ptr noundef nonnull align 8 dereferenceable(32) %156)
          to label %905 unwind label %965

905:                                              ; preds = %903
  %.not261 = icmp eq i64 %904, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %157) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #9
  br i1 %.not261, label %979, label %906

906:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %158) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %159) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %160) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %160)
          to label %907 unwind label %968

907:                                              ; preds = %906
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %158, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %159)
          to label %908 unwind label %970

908:                                              ; preds = %907
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %162) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %909 unwind label %973

909:                                              ; preds = %908
  %910 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %11, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %911 unwind label %975

911:                                              ; preds = %909
  %912 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %910)
          to label %913 unwind label %975

913:                                              ; preds = %911
  %914 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %130) #9
  %915 = load i64, ptr %28, align 8, !tbaa !16
  %916 = load i64, ptr %30, align 8, !tbaa !16
  invoke void @_ZN5amgcl2io8mm_writeIdEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_mm(ptr noundef nonnull align 8 dereferenceable(32) %912, ptr noundef %914, i64 noundef %915, i64 noundef %916)
          to label %917 unwind label %975

917:                                              ; preds = %913
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #9
  br label %979

918:                                              ; preds = %._crit_edge373
  %919 = landingpad { ptr, i32 }
          cleanup
  br label %922

920:                                              ; preds = %848
  %921 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %137) #9
  br label %922

922:                                              ; preds = %920, %918
  %.pn241 = phi { ptr, i32 } [ %921, %920 ], [ %919, %918 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %137) #9
  br label %961

923:                                              ; preds = %850
  %924 = landingpad { ptr, i32 }
          cleanup
  br label %927

925:                                              ; preds = %851
  %926 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %138) #9
  br label %927

927:                                              ; preds = %925, %923
  %.pn243 = phi { ptr, i32 } [ %926, %925 ], [ %924, %923 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %138) #9
  br label %961

928:                                              ; preds = %853
  %929 = landingpad { ptr, i32 }
          cleanup
  br label %932

930:                                              ; preds = %854
  %931 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %139) #9
  br label %932

932:                                              ; preds = %930, %928
  %.pn245 = phi { ptr, i32 } [ %931, %930 ], [ %929, %928 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %139) #9
  br label %961

933:                                              ; preds = %857
  %934 = landingpad { ptr, i32 }
          cleanup
  br label %937

935:                                              ; preds = %858
  %936 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  br label %937

937:                                              ; preds = %935, %933
  %.pn247 = phi { ptr, i32 } [ %936, %935 ], [ %934, %933 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %142) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  br label %961

938:                                              ; preds = %859
  %939 = landingpad { ptr, i32 }
          cleanup
  br label %942

940:                                              ; preds = %860
  %941 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #9
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %144) #9
  br label %942

942:                                              ; preds = %940, %938
  %.pn249 = phi { ptr, i32 } [ %941, %940 ], [ %939, %938 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %144) #9
  br label %960

943:                                              ; preds = %861
  %944 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  br label %959

945:                                              ; preds = %881, %879, %877, %875, %873, %871, %869, %867, %865, %862
  %946 = landingpad { ptr, i32 }
          cleanup
  br label %959

947:                                              ; preds = %882
  %948 = landingpad { ptr, i32 }
          cleanup
  br label %951

949:                                              ; preds = %883
  %950 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  br label %951

951:                                              ; preds = %949, %947
  %.pn251 = phi { ptr, i32 } [ %950, %949 ], [ %948, %947 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  br label %958

952:                                              ; preds = %884
  %953 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #9
  br label %958

954:                                              ; preds = %885
  %955 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #9
  br label %958

956:                                              ; preds = %900, %897, %895, %893, %890, %887
  %957 = landingpad { ptr, i32 }
          cleanup
  br label %958

958:                                              ; preds = %956, %954, %952, %951
  %.pn253 = phi { ptr, i32 } [ %957, %956 ], [ %955, %954 ], [ %953, %952 ], [ %.pn251, %951 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #9
  br label %959

959:                                              ; preds = %958, %945, %943
  %.pn253.pn = phi { ptr, i32 } [ %.pn253, %958 ], [ %946, %945 ], [ %944, %943 ]
  call void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312) %143) #9
  br label %960

960:                                              ; preds = %959, %942
  %.pn253.pn.pn = phi { ptr, i32 } [ %.pn253.pn, %959 ], [ %.pn249, %942 ]
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %143) #9
  br label %961

961:                                              ; preds = %960, %937, %932, %927, %922
  %.pn253.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn, %960 ], [ %.pn247, %937 ], [ %.pn245, %932 ], [ %.pn243, %927 ], [ %.pn241, %922 ]
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  br label %962

962:                                              ; preds = %961, %833
  %.pn253.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn, %961 ], [ %.pn239, %833 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %132) #9
  br label %987

963:                                              ; preds = %902
  %964 = landingpad { ptr, i32 }
          cleanup
  br label %967

965:                                              ; preds = %903
  %966 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  br label %967

967:                                              ; preds = %965, %963
  %.pn259 = phi { ptr, i32 } [ %966, %965 ], [ %964, %963 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %157) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #9
  br label %987

968:                                              ; preds = %906
  %969 = landingpad { ptr, i32 }
          cleanup
  br label %972

970:                                              ; preds = %907
  %971 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #9
  br label %972

972:                                              ; preds = %970, %968
  %.pn262 = phi { ptr, i32 } [ %971, %970 ], [ %969, %968 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #9
  br label %978

973:                                              ; preds = %908
  %974 = landingpad { ptr, i32 }
          cleanup
  br label %977

975:                                              ; preds = %913, %911, %909
  %976 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #9
  br label %977

977:                                              ; preds = %975, %973
  %.pn264 = phi { ptr, i32 } [ %976, %975 ], [ %974, %973 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #9
  br label %978

978:                                              ; preds = %977, %972
  %.pn264.pn = phi { ptr, i32 } [ %.pn264, %977 ], [ %.pn262, %972 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #9
  br label %987

979:                                              ; preds = %917, %905
  %980 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRNS_8profilerINS_12perf_counter5clockELj2EEE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE)
          to label %981 unwind label %985

981:                                              ; preds = %979
  %982 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %980, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %983 unwind label %985

983:                                              ; preds = %981
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %130) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %86) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #9
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %82) #9
  call void @_ZNSt7__cxx1110_List_baseISt6vectorIdSaIdEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #9
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #9
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #9
  br label %984

984:                                              ; preds = %237, %983
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %11) #9
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %11) #9
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %10) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %10) #9
  call void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) #9
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %3) #9
  ret i32 0

985:                                              ; preds = %981, %979
  %986 = landingpad { ptr, i32 }
          cleanup
  br label %987

987:                                              ; preds = %985, %978, %967, %962
  %.pn267 = phi { ptr, i32 } [ %986, %985 ], [ %.pn264.pn, %978 ], [ %.pn259, %967 ], [ %.pn253.pn.pn.pn.pn, %962 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %130) #9
  br label %988

988:                                              ; preds = %987, %827
  %.pn267.pn = phi { ptr, i32 } [ %.pn267, %987 ], [ %828, %827 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %130) #9
  br label %989

989:                                              ; preds = %988, %825, %813, %628, %623
  %.pn289.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn, %813 ], [ %.pn267.pn, %988 ], [ %826, %825 ], [ %.pn237, %628 ], [ %.pn235, %623 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #9
  br label %990

990:                                              ; preds = %989, %617
  %.pn289.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn, %989 ], [ %618, %617 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %86) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #9
  br label %991

991:                                              ; preds = %990, %615
  %.pn289.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn, %990 ], [ %616, %615 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #9
  br label %992

992:                                              ; preds = %991, %613
  %.pn289.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn, %991 ], [ %614, %613 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #9
  br label %993

993:                                              ; preds = %992, %611
  %.pn289.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn.pn, %992 ], [ %612, %611 ]
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %82) #9
  br label %994

994:                                              ; preds = %993, %593, %539, %534
  %.pn299.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn.pn.pn, %534 ], [ %.pn289.pn.pn.pn.pn.pn.pn.pn.pn, %993 ], [ %.pn233, %593 ], [ %.pn229, %539 ]
  call void @_ZNSt7__cxx1110_List_baseISt6vectorIdSaIdEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %36) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #9
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #9
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #9
  br label %995

995:                                              ; preds = %994, %367
  %.pn299.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn.pn.pn.pn, %994 ], [ %.pn200, %367 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  br label %996

996:                                              ; preds = %332, %337, %995, %327, %309, %301
  %.pn307.pn = phi { ptr, i32 } [ %.pn299.pn.pn.pn.pn.pn.pn, %995 ], [ %.pn195, %327 ], [ %.pn192.pn, %309 ], [ %.pn189, %301 ], [ %338, %337 ], [ %.pn198, %332 ]
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #9
  br label %997

997:                                              ; preds = %996, %295
  %.pn307.pn.pn = phi { ptr, i32 } [ %.pn307.pn, %996 ], [ %296, %295 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #9
  br label %998

998:                                              ; preds = %.loopexit376, %.loopexit.split-lp, %997, %275, %269, %268
  %.pn312 = phi { ptr, i32 } [ %270, %269 ], [ %.pn307.pn.pn, %997 ], [ %.pn187, %275 ], [ %.pn184.pn, %268 ], [ %lpad.loopexit, %.loopexit376 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %11) #9
  br label %999

999:                                              ; preds = %998, %259
  %.pn312.pn = phi { ptr, i32 } [ %.pn312, %998 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %11) #9
  br label %1000

1000:                                             ; preds = %999, %257
  %.pn312.pn.pn = phi { ptr, i32 } [ %.pn312.pn, %999 ], [ %258, %257 ]
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %10) #9
  br label %1001

1001:                                             ; preds = %1000, %255
  %.pn312.pn.pn.pn = phi { ptr, i32 } [ %.pn312.pn.pn, %1000 ], [ %256, %255 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %10) #9
  br label %1002

1002:                                             ; preds = %1001, %254
  %.pn312.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn312.pn.pn.pn, %1001 ], [ %.pn180.pn.pn, %254 ]
  call void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) #9
  br label %1003

1003:                                             ; preds = %1002, %243
  %.pn312.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn312.pn.pn.pn.pn, %1002 ], [ %.pn, %243 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %3) #9
  resume { ptr, i32 } %.pn312.pn.pn.pn.pn.pn
}

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 align 2

declare void @_ZN5boost15program_options19options_descriptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) unnamed_addr #4

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

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

declare ptr @_ZN5boost15program_options19options_description11add_optionsEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcS3_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options5valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEEPNS0_11typed_valueIT_cEEv() local_unnamed_addr #3

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

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

declare noundef ptr @_ZN5boost15program_options11bool_switchEv() local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options5valueIiEEPNS0_11typed_valueIT_cEEv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5boost15program_options11typed_valueIicE13default_valueERKi(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

declare void @_ZN5boost15program_options30positional_options_descriptionC1Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(56) ptr @_ZN5boost15program_options30positional_options_description3addEPKci(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN5boost15program_options13variables_mapC1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #4

declare void @_ZN5boost15program_options5storeERKNS0_20basic_parsed_optionsIcEERNS0_13variables_mapEb(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(160), i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef, ptr noundef) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE7optionsERKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE10positionalERKNS0_30positional_options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost15program_options25basic_command_line_parserIcE3runEv(ptr dead_on_unwind noalias writable sret(%"class.boost::program_options::basic_parsed_options") align 8, ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #5 align 2

declare void @_ZN5boost15program_options6notifyERNS0_13variables_mapE(ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #4

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_optionslsERSoRKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost13property_tree11json_parser9read_jsonINS0_11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEEEEvRKS9_RT_RKSt6locale(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

; Function Attrs: nounwind
declare void @_ZNSt6localeC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

; Function Attrs: nounwind
declare void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5amgcl3putERN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St4lessIS8_EEERKS8_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io8read_crsIllldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_RSt6vectorIT0_SaISD_EERSC_IT1_SaISH_EERSC_IT2_SaISL_EEll(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io9mm_readerclIldEESt5tupleIJmmEERSt6vectorIT_SaIS6_EES9_RS5_IT0_SaISA_EEll(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 8 dereferenceable(576), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.69") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl12preconditionIbA25_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(25)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 8 dereferenceable(576), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl12preconditionIbA30_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(30)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl12preconditionIbA40_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(40)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Ev(ptr noundef nonnull align 8 dereferenceable(5000)) unnamed_addr #3 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 #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt3tieIJlSt6vectorIlSaIlEES2_S0_IdSaIdEEEESt5tupleIJDpRT_EES8_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.74") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIbEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i8 noundef signext) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #5

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIlEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIiEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIPdEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESR_St4lessISR_EEE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #3 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRKNS_11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS6_10relaxation7wrapperEEENS6_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(312)) local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPdSt6vectorIdSaIdEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSL_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.89") align 8, ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.93") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5amgcl7backend5axpbyIdSt6vectorIdSaIdEEiS4_EEvT_RKT0_T1_RT2_(double noundef, ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl11make_solverINS_3amgINS_7backend7builtinIdllEENS_7runtime10coarsening7wrapperENS5_10relaxation7wrapperEEENS5_6solver7wrapperIS4_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(312)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRNS_8profilerINS_12perf_counter5clockELj2EEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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 #2 align 2

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

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass