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

; 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.25", %"class.std::__cxx11::basic_string" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = 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.30", %"class.std::set", %"class.std::map.39" }
%"class.boost::program_options::abstract_variables_map" = type { ptr, ptr }
%"class.std::map.30" = type { %"class.std::_Rb_tree.31" }
%"class.std::_Rb_tree.31" = 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.35" }
%"class.std::_Rb_tree.35" = 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.39" = type { %"class.std::_Rb_tree.40" }
%"class.std::_Rb_tree.40" = 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.44", ptr, i32, [4 x i8] }>
%"class.std::vector.44" = type { %"struct.std::_Vector_base.45" }
%"struct.std::_Vector_base.45" = 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.25", i32, i8, ptr, ptr, %"class.boost::function1.49", %"class.boost::function1.50" }
%"class.boost::function1.49" = 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.50" = 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.51" = type { %"struct.std::_Vector_base.52" }
%"struct.std::_Vector_base.52" = 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.56" = type { %"struct.std::_Vector_base.57" }
%"struct.std::_Vector_base.57" = 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 }
%"struct.amgcl::profiler<>::scoped_ticker" = type { ptr }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.61", %"struct.std::_Head_base.62" }
%"struct.std::_Tuple_impl.61" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { i64 }
%"struct.std::_Head_base.62" = 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.63 }
%union.anon.63 = type { i32 }
%"class.std::tuple.64" = type { %"struct.std::_Tuple_impl.65" }
%"struct.std::_Tuple_impl.65" = type { %"struct.std::_Tuple_impl.66", %"struct.std::_Head_base.68" }
%"struct.std::_Tuple_impl.66" = type { %"struct.std::_Head_base.67" }
%"struct.std::_Head_base.67" = type { ptr }
%"struct.std::_Head_base.68" = type { ptr }
%"class.boost::property_tree::string_path" = type { %"class.std::__cxx11::basic_string", i8, %"class.__gnu_cxx::__normal_iterator.69" }
%"class.__gnu_cxx::__normal_iterator.69" = type { ptr }
%"struct.boost::property_tree::id_translator" = type { i8 }
%"class.std::allocator.58" = type { i8 }
%"class.std::tuple.70" = type { %"struct.std::_Tuple_impl.71" }
%"struct.std::_Tuple_impl.71" = type { %"struct.std::_Tuple_impl.72", %"struct.std::_Head_base.68" }
%"struct.std::_Tuple_impl.72" = type { %"struct.std::_Tuple_impl.73", %"struct.std::_Head_base.77" }
%"struct.std::_Tuple_impl.73" = type { %"struct.std::_Tuple_impl.74", %"struct.std::_Head_base.76" }
%"struct.std::_Tuple_impl.74" = type { %"struct.std::_Head_base.75" }
%"struct.std::_Head_base.75" = type { ptr }
%"struct.std::_Head_base.76" = type { ptr }
%"struct.std::_Head_base.77" = type { ptr }
%"class.amgcl::deflated_solver" = type { %"struct.amgcl::deflated_solver<amgcl::runtime::preconditioner<amgcl::backend::builtin<double>>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", i64, %"class.amgcl::runtime::preconditioner", %"struct.amgcl::runtime::solver::wrapper", %"class.std::shared_ptr", %"class.std::vector.78", %"class.std::vector.56", %"class.std::vector.56" }
%"struct.amgcl::deflated_solver<amgcl::runtime::preconditioner<amgcl::backend::builtin<double>>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params" = type { i32, ptr, %"class.boost::property_tree::basic_ptree", %"class.boost::property_tree::basic_ptree" }
%"class.amgcl::runtime::preconditioner" = type { i32, ptr }
%"struct.amgcl::runtime::solver::wrapper" = type { i32, ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.78" = type { %"struct.std::_Vector_base.79" }
%"struct.std::_Vector_base.79" = type { %"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.amgcl::detail::empty_params" = type { i8 }
%"class.std::tuple.83" = type { %"struct.std::_Tuple_impl.84" }
%"struct.std::_Tuple_impl.84" = type { %"struct.std::_Tuple_impl.85", %"struct.std::_Head_base.62" }
%"struct.std::_Tuple_impl.85" = type { %"struct.std::_Head_base.86" }
%"struct.std::_Head_base.86" = type { double }
%"class.std::tuple.87" = type { %"struct.std::_Tuple_impl.88" }
%"struct.std::_Tuple_impl.88" = type { %"struct.std::_Tuple_impl.89", %"struct.std::_Head_base.91" }
%"struct.std::_Tuple_impl.89" = type { %"struct.std::_Head_base.90" }
%"struct.std::_Head_base.90" = type { ptr }
%"struct.std::_Head_base.91" = 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 [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [229 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [97 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 [7 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.31 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [13 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

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 i8, align 1
  %14 = alloca %"class.boost::program_options::positional_options_description", align 8
  %15 = alloca %"class.boost::program_options::variables_map", align 8
  %16 = alloca %"class.boost::program_options::basic_parsed_options", align 8
  %17 = alloca %"class.boost::program_options::basic_command_line_parser", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %"class.boost::property_tree::basic_ptree", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::locale", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca ptr, align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca %"class.std::vector.51", align 8
  %47 = alloca %"class.std::vector.51", align 8
  %48 = alloca %"class.std::vector.56", align 8
  %49 = alloca %"class.std::vector.56", align 8
  %50 = alloca %"class.std::vector.56", align 8
  %51 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca i8, align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca i64, align 8
  %61 = alloca %"class.std::tuple", align 8
  %62 = alloca %"class.amgcl::io::mm_reader", align 8
  %63 = alloca %"class.std::tuple.64", align 8
  %64 = alloca i8, align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca %"class.std::tuple", align 8
  %73 = alloca %"class.amgcl::io::mm_reader", align 8
  %74 = alloca %"class.std::tuple.64", align 8
  %75 = alloca i8, align 1
  %76 = alloca double, align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::allocator", align 1
  %82 = alloca %"class.std::vector.56", align 8
  %83 = alloca i64, align 8
  %84 = alloca %"class.std::tuple", align 8
  %85 = alloca %"class.amgcl::io::mm_reader", align 8
  %86 = alloca %"class.std::tuple.64", align 8
  %87 = alloca i8, align 1
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca %"class.std::vector.56", align 8
  %96 = alloca i64, align 8
  %97 = alloca i64, align 8
  %98 = alloca %"class.std::tuple", align 8
  %99 = alloca %"class.amgcl::io::mm_reader", align 8
  %100 = alloca %"class.std::tuple.64", align 8
  %101 = alloca i8, align 1
  %102 = alloca %"class.boost::property_tree::string_path", align 8
  %103 = alloca %"struct.boost::property_tree::id_translator", align 1
  %104 = alloca %"class.boost::property_tree::string_path", align 8
  %105 = alloca %"struct.boost::property_tree::id_translator", align 1
  %106 = alloca ptr, align 8
  %107 = alloca %"class.std::vector.56", align 8
  %108 = alloca double, align 8
  %109 = alloca %"class.std::allocator.58", align 1
  %110 = alloca i32, align 4
  %111 = alloca double, align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca %"class.boost::property_tree::string_path", align 8
  %115 = alloca %"struct.boost::property_tree::id_translator", align 1
  %116 = alloca %"class.std::tuple.70", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator", align 1
  %119 = alloca %"class.amgcl::deflated_solver", align 8
  %120 = alloca %"struct.amgcl::deflated_solver<amgcl::runtime::preconditioner<amgcl::backend::builtin<double>>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", align 8
  %121 = alloca %"struct.amgcl::detail::empty_params", align 1
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator", align 1
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::allocator", align 1
  %126 = alloca %"class.std::tuple.83", align 8
  %127 = alloca %"class.std::tuple.87", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator", 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 %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::allocator", align 1
  %137 = alloca %"class.std::vector.56", align 8
  %138 = alloca %"class.std::allocator.58", 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 %139 unwind label %217

139:                                              ; preds = %2
  %140 = load i32, ptr @_ZN5boost15program_options19options_description21m_default_line_lengthE, align 4, !tbaa !5
  %141 = load i32, ptr @_ZN5boost15program_options19options_description21m_default_line_lengthE, align 4, !tbaa !5
  %142 = udiv i32 %141, 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 %140, i32 noundef %142)
          to label %143 unwind label %221

143:                                              ; preds = %139
  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
  %144 = invoke ptr @_ZN5boost15program_options19options_description11add_optionsEv(ptr noundef nonnull align 8 dereferenceable(128) %6)
          to label %145 unwind label %226

145:                                              ; preds = %143
  %146 = getelementptr inbounds %"class.boost::program_options::options_description_easy_init", ptr %11, i32 0, i32 0
  store ptr %144, ptr %146, align 8
  %147 = 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 %148 unwind label %226

148:                                              ; preds = %145
  %149 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %150 unwind label %226

150:                                              ; preds = %148
  %151 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef @.str.7, ptr noundef %149, ptr noundef @.str.8)
          to label %152 unwind label %226

152:                                              ; preds = %150
  %153 = invoke noundef ptr @_ZN5boost15program_options5valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEEPNS0_11typed_valueIT_cEEv()
          to label %154 unwind label %226

154:                                              ; preds = %152
  %155 = invoke noundef ptr @_ZN5boost15program_options11typed_valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEcE10multitokenEv(ptr noundef nonnull align 8 dereferenceable(176) %153)
          to label %156 unwind label %226

156:                                              ; preds = %154
  %157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef @.str.9, ptr noundef %155, ptr noundef @.str.10)
          to label %158 unwind label %226

158:                                              ; preds = %156
  %159 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %160 unwind label %226

160:                                              ; preds = %158
  %161 = invoke noundef ptr @_ZN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE8requiredEv(ptr noundef nonnull align 8 dereferenceable(176) %159)
          to label %162 unwind label %226

162:                                              ; preds = %160
  %163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %157, ptr noundef @.str.11, ptr noundef %161, ptr noundef @.str.12)
          to label %164 unwind label %226

164:                                              ; preds = %162
  %165 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %166 unwind label %226

166:                                              ; preds = %164
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef @.str.13, ptr noundef %165, ptr noundef @.str.14)
          to label %168 unwind label %226

168:                                              ; preds = %166
  %169 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %170 unwind label %226

170:                                              ; preds = %168
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef @.str.15, ptr noundef %169, ptr noundef @.str.16)
          to label %172 unwind label %226

172:                                              ; preds = %170
  %173 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %174 unwind label %226

174:                                              ; preds = %172
  %175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef @.str.17, ptr noundef %173, ptr noundef @.str.18)
          to label %176 unwind label %226

176:                                              ; preds = %174
  %177 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %178 unwind label %226

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  store i8 0, ptr %12, align 1, !tbaa !11
  %179 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %177, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %180 unwind label %230

180:                                              ; preds = %178
  %181 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef @.str.19, ptr noundef %179, ptr noundef @.str.20)
          to label %182 unwind label %230

182:                                              ; preds = %180
  %183 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %184 unwind label %230

184:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #8
  store i8 0, ptr %13, align 1, !tbaa !11
  %185 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %183, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %186 unwind label %234

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) %181, ptr noundef @.str.21, ptr noundef %185, ptr noundef @.str.22)
          to label %188 unwind label %234

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

190:                                              ; preds = %188
  %191 = 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 @.str.23, ptr noundef %189, ptr noundef @.str.24)
          to label %192 unwind label %234

192:                                              ; preds = %190
  call void @llvm.lifetime.end.p0(i64 1, 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 %14) #8
  invoke void @_ZN5boost15program_options30positional_options_descriptionC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %14)
          to label %193 unwind label %240

193:                                              ; preds = %192
  %194 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN5boost15program_options30positional_options_description3addEPKci(ptr noundef nonnull align 8 dereferenceable(56) %14, ptr noundef @.str.25, i32 noundef -1)
          to label %195 unwind label %244

195:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 160, ptr %15) #8
  invoke void @_ZN5boost15program_options13variables_mapC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %15)
          to label %196 unwind label %248

196:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 40, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 120, ptr %17) #8
  %197 = load i32, ptr %4, align 4, !tbaa !5
  %198 = load ptr, ptr %5, align 8, !tbaa !9
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc(ptr noundef nonnull align 8 dereferenceable(120) %17, i32 noundef %197, ptr noundef %198)
          to label %199 unwind label %252

199:                                              ; preds = %196
  %200 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE7optionsERKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %17, ptr noundef nonnull align 8 dereferenceable(128) %6)
          to label %201 unwind label %256

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE10positionalERKNS0_30positional_options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %200, ptr noundef nonnull align 8 dereferenceable(56) %14)
          to label %203 unwind label %256

203:                                              ; preds = %201
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcE3runEv(ptr dead_on_unwind writable sret(%"class.boost::program_options::basic_parsed_options") align 8 %16, ptr noundef nonnull align 8 dereferenceable(120) %202)
          to label %204 unwind label %256

204:                                              ; preds = %203
  invoke void @_ZN5boost15program_options5storeERKNS0_20basic_parsed_optionsIcEERNS0_13variables_mapEb(ptr noundef nonnull align 8 dereferenceable(36) %16, ptr noundef nonnull align 8 dereferenceable(160) %15, i1 noundef zeroext false)
          to label %205 unwind label %260

205:                                              ; preds = %204
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %16) #8
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %17) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #8
  invoke void @_ZN5boost15program_options6notifyERNS0_13variables_mapE(ptr noundef nonnull align 8 dereferenceable(160) %15)
          to label %206 unwind label %266

206:                                              ; preds = %205
  %207 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %208 unwind label %270

208:                                              ; preds = %206
  %209 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %207, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %210 unwind label %274

210:                                              ; preds = %208
  %211 = icmp ne i64 %209, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br i1 %211, label %212, label %279

212:                                              ; preds = %210
  %213 = 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 %214 unwind label %266

214:                                              ; preds = %212
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %216 unwind label %266

216:                                              ; preds = %214
  store i32 0, ptr %3, align 4
  store i32 1, ptr %20, align 4
  br label %1006

217:                                              ; preds = %2
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %9, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %10, align 4
  br label %225

221:                                              ; preds = %139
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %9, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %225

225:                                              ; preds = %221, %217
  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 %1032

226:                                              ; preds = %176, %174, %172, %170, %168, %166, %164, %162, %160, %158, %156, %154, %152, %150, %148, %145, %143
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %9, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %10, align 4
  br label %239

230:                                              ; preds = %182, %180, %178
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %9, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %10, align 4
  br label %238

234:                                              ; preds = %190, %188, %186, %184
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %9, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  br label %238

238:                                              ; preds = %234, %230
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  br label %239

239:                                              ; preds = %238, %226
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  br label %1031

240:                                              ; preds = %192
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %9, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %10, align 4
  br label %1030

244:                                              ; preds = %193
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %9, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %10, align 4
  br label %1029

248:                                              ; preds = %195
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %9, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %10, align 4
  br label %1028

252:                                              ; preds = %196
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %9, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %10, align 4
  br label %265

256:                                              ; preds = %203, %201, %199
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %9, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %10, align 4
  br label %264

260:                                              ; preds = %204
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %9, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %10, align 4
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %16) #8
  br label %264

264:                                              ; preds = %260, %256
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %17) #8
  br label %265

265:                                              ; preds = %264, %252
  call void @llvm.lifetime.end.p0(i64 120, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #8
  br label %1027

266:                                              ; preds = %306, %214, %212, %205
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %9, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %10, align 4
  br label %1027

270:                                              ; preds = %206
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %9, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %10, align 4
  br label %278

274:                                              ; preds = %208
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %9, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %278

278:                                              ; preds = %274, %270
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br label %1027

279:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  store i32 0, ptr %21, align 4, !tbaa !5
  br label %280

280:                                              ; preds = %303, %279
  %281 = load i32, ptr %21, align 4, !tbaa !5
  %282 = load i32, ptr %4, align 4, !tbaa !5
  %283 = icmp slt i32 %281, %282
  br i1 %283, label %285, label %284

284:                                              ; preds = %280
  store i32 2, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %306

285:                                              ; preds = %280
  %286 = load i32, ptr %21, align 4, !tbaa !5
  %287 = icmp ne i32 %286, 0
  br i1 %287, label %288, label %295

288:                                              ; preds = %285
  %289 = 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 %290 unwind label %291

290:                                              ; preds = %288
  br label %295

291:                                              ; preds = %295, %288
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %9, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %1027

295:                                              ; preds = %290, %285
  %296 = load ptr, ptr %5, align 8, !tbaa !9
  %297 = load i32, ptr %21, align 4, !tbaa !5
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds ptr, ptr %296, i64 %298
  %300 = load ptr, ptr %299, align 8, !tbaa !9
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %300)
          to label %302 unwind label %291

302:                                              ; preds = %295
  br label %303

303:                                              ; preds = %302
  %304 = load i32, ptr %21, align 4, !tbaa !5
  %305 = add nsw i32 %304, 1
  store i32 %305, ptr %21, align 4, !tbaa !5
  br label %280, !llvm.loop !13

306:                                              ; preds = %284
  %307 = 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 %308 unwind label %266

308:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #8
  invoke void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %309 unwind label %322

309:                                              ; preds = %308
  %310 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %311 unwind label %326

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

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

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

316:                                              ; preds = %315
  %317 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %318 unwind label %339

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %317)
          to label %320 unwind label %339

320:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  call void @_ZNSt6localeC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  invoke void @_ZN5boost13property_tree11json_parser9read_jsonINS0_11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEEEEvRKS9_RT_RKSt6locale(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull align 8 dereferenceable(40) %22, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %321 unwind label %343

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

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

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

330:                                              ; preds = %311
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %9, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %334

334:                                              ; preds = %330, %326
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %1025

335:                                              ; preds = %315
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %9, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %10, align 4
  br label %348

339:                                              ; preds = %318, %316
  %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 %347

343:                                              ; preds = %320
  %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
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %347

347:                                              ; preds = %343, %339
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %348

348:                                              ; preds = %347, %335
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %1025

349:                                              ; preds = %321, %313
  %350 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %351 unwind label %370

351:                                              ; preds = %349
  %352 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %350, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %353 unwind label %374

353:                                              ; preds = %351
  %354 = icmp ne i64 %352, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br i1 %354, label %355, label %400

355:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %356 unwind label %379

356:                                              ; preds = %355
  %357 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %358 unwind label %383

358:                                              ; preds = %356
  %359 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5boost15program_options14variable_value2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %357)
          to label %360 unwind label %383

360:                                              ; preds = %358
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  store ptr %359, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %361 = load ptr, ptr %30, align 8, !tbaa !9
  %362 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %361) #8
  %363 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %362, ptr %363, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %364 = load ptr, ptr %30, align 8, !tbaa !9
  %365 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %364) #8
  %366 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %34, i32 0, i32 0
  store ptr %365, ptr %366, align 8
  br label %367

367:                                              ; preds = %392, %360
  %368 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br i1 %368, label %388, label %369

369:                                              ; preds = %367
  store i32 5, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %399

370:                                              ; preds = %349
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %9, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %10, align 4
  br label %378

374:                                              ; preds = %351
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %9, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %378

378:                                              ; preds = %374, %370
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %1025

379:                                              ; preds = %355
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %9, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %10, align 4
  br label %387

383:                                              ; preds = %358, %356
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %9, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %387

387:                                              ; preds = %383, %379
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %398

388:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %389 = 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) %33) #8
  store ptr %389, ptr %35, align 8, !tbaa !9
  %390 = load ptr, ptr %35, align 8, !tbaa !9
  invoke void @_ZN5amgcl3putERN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St4lessIS8_EEERKS8_(ptr noundef nonnull align 8 dereferenceable(40) %22, ptr noundef nonnull align 8 dereferenceable(32) %390)
          to label %391 unwind label %394

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

392:                                              ; preds = %391
  %393 = 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) %33) #8
  br label %367

394:                                              ; preds = %388
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %9, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %10, 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 %33) #8
  br label %398

398:                                              ; preds = %394, %387
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %1025

399:                                              ; preds = %369
  br label %400

400:                                              ; preds = %399, %353
  %401 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  store i1 false, ptr %39, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %402 unwind label %432

402:                                              ; preds = %400
  %403 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %401, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %404 unwind label %436

404:                                              ; preds = %402
  %405 = icmp ne i64 %403, 0
  br i1 %405, label %413, label %406

406:                                              ; preds = %404
  %407 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  store i1 true, ptr %39, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  store i1 true, ptr %41, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  store i1 true, ptr %42, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %408 unwind label %440

408:                                              ; preds = %406
  store i1 true, ptr %43, align 1
  %409 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %407, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %410 unwind label %444

410:                                              ; preds = %408
  %411 = icmp ne i64 %409, 0
  %412 = xor i1 %411, true
  br label %413

413:                                              ; preds = %410, %404
  %414 = phi i1 [ false, %404 ], [ %412, %410 ]
  %415 = load i1, ptr %43, align 1
  br i1 %415, label %416, label %417

416:                                              ; preds = %413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %417

417:                                              ; preds = %416, %413
  %418 = load i1, ptr %42, align 1
  br i1 %418, label %419, label %420

419:                                              ; preds = %417
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  br label %420

420:                                              ; preds = %419, %417
  %421 = load i1, ptr %41, align 1
  br i1 %421, label %422, label %423

422:                                              ; preds = %420
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %423

423:                                              ; preds = %422, %420
  %424 = load i1, ptr %39, align 1
  br i1 %424, label %425, label %426

425:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %426

426:                                              ; preds = %425, %423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br i1 %414, label %427, label %467

427:                                              ; preds = %426
  %428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.31)
          to label %429 unwind label %463

429:                                              ; preds = %427
  %430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %428, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %431 unwind label %463

431:                                              ; preds = %429
  store i32 1, ptr %3, align 4
  store i32 1, ptr %20, align 4
  br label %1005

432:                                              ; preds = %400
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %9, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %10, align 4
  br label %462

436:                                              ; preds = %402
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %9, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %10, align 4
  br label %461

440:                                              ; preds = %406
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %9, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %10, align 4
  br label %451

444:                                              ; preds = %408
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %9, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %10, align 4
  %448 = load i1, ptr %43, align 1
  br i1 %448, label %449, label %450

449:                                              ; preds = %444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %450

450:                                              ; preds = %449, %444
  br label %451

451:                                              ; preds = %450, %440
  %452 = load i1, ptr %42, align 1
  br i1 %452, label %453, label %454

453:                                              ; preds = %451
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  br label %454

454:                                              ; preds = %453, %451
  %455 = load i1, ptr %41, align 1
  br i1 %455, label %456, label %457

456:                                              ; preds = %454
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %457

457:                                              ; preds = %456, %454
  %458 = load i1, ptr %39, align 1
  br i1 %458, label %459, label %460

459:                                              ; preds = %457
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %460

460:                                              ; preds = %459, %457
  br label %461

461:                                              ; preds = %460, %436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %462

462:                                              ; preds = %461, %432
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %1025

463:                                              ; preds = %429, %427
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %9, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %10, align 4
  br label %1025

467:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #8
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #8
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %468 unwind label %488

468:                                              ; preds = %467
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %51, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %469 unwind label %492

469:                                              ; preds = %468
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %470 unwind label %497

470:                                              ; preds = %469
  %471 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %472 unwind label %501

472:                                              ; preds = %470
  %473 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %471)
          to label %474 unwind label %501

474:                                              ; preds = %472
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %473)
          to label %475 unwind label %501

475:                                              ; preds = %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %476 unwind label %506

476:                                              ; preds = %475
  %477 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %478 unwind label %510

478:                                              ; preds = %476
  %479 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %477)
          to label %480 unwind label %510

480:                                              ; preds = %478
  %481 = load i8, ptr %479, align 1, !tbaa !11, !range !15, !noundef !16
  %482 = trunc i8 %481 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  %483 = zext i1 %482 to i8
  store i8 %483, ptr %57, align 1, !tbaa !11
  %484 = load i8, ptr %57, align 1, !tbaa !11, !range !15, !noundef !16
  %485 = trunc i8 %484 to i1
  br i1 %485, label %486, label %519

486:                                              ; preds = %480
  invoke void @_ZN5amgcl2io8read_crsIllldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_RSt6vectorIT0_SaISD_EERSC_IT1_SaISH_EERSC_IT2_SaISL_EEll(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef -1, i64 noundef -1)
          to label %487 unwind label %515

487:                                              ; preds = %486
  br label %542

488:                                              ; preds = %467
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %9, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %10, align 4
  br label %496

492:                                              ; preds = %468
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %9, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %496

496:                                              ; preds = %492, %488
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %840

497:                                              ; preds = %469
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %9, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %10, align 4
  br label %505

501:                                              ; preds = %474, %472, %470
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %505

505:                                              ; preds = %501, %497
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  br label %839

506:                                              ; preds = %475
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %9, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %10, align 4
  br label %514

510:                                              ; preds = %478, %476
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %514

514:                                              ; preds = %510, %506
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  br label %838

515:                                              ; preds = %486
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %9, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %10, align 4
  br label %838

519:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 576, ptr %62) #8
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %62, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %520 unwind label %528

520:                                              ; preds = %519
  invoke void @_ZN5amgcl2io9mm_readerclIldEESt5tupleIJmmEERSt6vectorIT_SaIS6_EES9_RS5_IT0_SaISA_EEll(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %61, ptr noundef nonnull align 8 dereferenceable(576) %62, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef -1, i64 noundef -1)
          to label %521 unwind label %532

521:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #8
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.64") align 8 %63, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  %522 = 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) %63, ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #8
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %62) #8
  call void @llvm.lifetime.end.p0(i64 576, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #8
  %523 = load i64, ptr %44, align 8, !tbaa !17
  %524 = load i64, ptr %60, align 8, !tbaa !17
  %525 = icmp eq i64 %523, %524
  %526 = zext i1 %525 to i8
  store i8 %526, ptr %64, align 1, !tbaa !11
  invoke void @_ZN5amgcl12preconditionIbA25_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %64, ptr noundef nonnull align 1 dereferenceable(25) @.str.35)
          to label %527 unwind label %537

527:                                              ; preds = %521
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  br label %542

528:                                              ; preds = %519
  %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 = %520
  %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 @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %62) #8
  br label %536

536:                                              ; preds = %532, %528
  call void @llvm.lifetime.end.p0(i64 576, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #8
  br label %541

537:                                              ; preds = %521
  %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
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #8
  br label %541

541:                                              ; preds = %537, %536
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  br label %838

542:                                              ; preds = %527, %487
  %543 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %544 unwind label %559

544:                                              ; preds = %542
  %545 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %543, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %546 unwind label %563

546:                                              ; preds = %544
  %547 = icmp ne i64 %545, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  br i1 %547, label %548, label %611

548:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %549 unwind label %568

549:                                              ; preds = %548
  %550 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %551 unwind label %572

551:                                              ; preds = %549
  %552 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %550)
          to label %553 unwind label %572

553:                                              ; preds = %551
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %552)
          to label %554 unwind label %572

554:                                              ; preds = %553
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %555 = load i8, ptr %57, align 1, !tbaa !11, !range !15, !noundef !16
  %556 = trunc i8 %555 to i1
  br i1 %556, label %557, label %581

557:                                              ; preds = %554
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef -1, i64 noundef -1)
          to label %558 unwind label %577

558:                                              ; preds = %557
  br label %594

559:                                              ; preds = %542
  %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
  br label %567

563:                                              ; preds = %544
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %9, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %567

567:                                              ; preds = %563, %559
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  br label %838

568:                                              ; preds = %548
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %9, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %10, align 4
  br label %576

572:                                              ; preds = %553, %551, %549
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %9, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %576

576:                                              ; preds = %572, %568
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  br label %610

577:                                              ; preds = %557
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %9, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %10, align 4
  br label %609

581:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 16, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 576, ptr %73) #8
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %73, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %582 unwind label %585

582:                                              ; preds = %581
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %72, ptr noundef nonnull align 8 dereferenceable(576) %73, ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef -1, i64 noundef -1)
          to label %583 unwind label %589

583:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #8
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.64") align 8 %74, ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  %584 = 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) %74, ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #8
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %73) #8
  call void @llvm.lifetime.end.p0(i64 576, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #8
  br label %594

585:                                              ; preds = %581
  %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
  br label %593

589:                                              ; preds = %582
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %9, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %10, align 4
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %73) #8
  br label %593

593:                                              ; preds = %589, %585
  call void @llvm.lifetime.end.p0(i64 576, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #8
  br label %609

594:                                              ; preds = %583, %558
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #8
  %595 = load i64, ptr %70, align 8, !tbaa !17
  %596 = load i64, ptr %44, align 8, !tbaa !17
  %597 = icmp eq i64 %595, %596
  br i1 %597, label %598, label %601

598:                                              ; preds = %594
  %599 = load i64, ptr %71, align 8, !tbaa !17
  %600 = icmp eq i64 %599, 1
  br label %601

601:                                              ; preds = %598, %594
  %602 = phi i1 [ false, %594 ], [ %600, %598 ]
  %603 = zext i1 %602 to i8
  store i8 %603, ptr %75, align 1, !tbaa !11
  invoke void @_ZN5amgcl12preconditionIbA30_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %75, ptr noundef nonnull align 1 dereferenceable(30) @.str.37)
          to label %604 unwind label %605

604:                                              ; preds = %601
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  br label %618

605:                                              ; preds = %601
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %9, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #8
  br label %609

609:                                              ; preds = %605, %593, %577
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %610

610:                                              ; preds = %609, %576
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  br label %838

611:                                              ; preds = %546
  %612 = load i64, ptr %44, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #8
  store double 1.000000e+00, ptr %76, align 8, !tbaa !19
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %612, ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %613 unwind label %614

613:                                              ; preds = %611
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  br label %618

614:                                              ; preds = %611
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %9, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  br label %838

618:                                              ; preds = %613, %604
  %619 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %620 unwind label %635

620:                                              ; preds = %618
  %621 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %619, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %622 unwind label %639

622:                                              ; preds = %620
  %623 = icmp ne i64 %621, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  br i1 %623, label %624, label %717

624:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %625 unwind label %644

625:                                              ; preds = %624
  %626 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %627 unwind label %648

627:                                              ; preds = %625
  %628 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %626)
          to label %629 unwind label %648

629:                                              ; preds = %627
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %628)
          to label %630 unwind label %648

630:                                              ; preds = %629
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #8
  %631 = load i8, ptr %57, align 1, !tbaa !11, !range !15, !noundef !16
  %632 = trunc i8 %631 to i1
  br i1 %632, label %633, label %657

633:                                              ; preds = %630
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef -1, i64 noundef -1)
          to label %634 unwind label %653

634:                                              ; preds = %633
  br label %670

635:                                              ; preds = %618
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %9, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %10, align 4
  br label %643

639:                                              ; preds = %620
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %9, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %643

643:                                              ; preds = %639, %635
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  br label %838

644:                                              ; preds = %624
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %9, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %10, align 4
  br label %652

648:                                              ; preds = %629, %627, %625
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %9, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %652

652:                                              ; preds = %648, %644
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %716

653:                                              ; preds = %675, %633
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %9, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %10, align 4
  br label %715

657:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #8
  call void @llvm.lifetime.start.p0(i64 576, ptr %85) #8
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %85, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %658 unwind label %661

658:                                              ; preds = %657
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %84, ptr noundef nonnull align 8 dereferenceable(576) %85, ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef -1, i64 noundef -1)
          to label %659 unwind label %665

659:                                              ; preds = %658
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #8
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.64") align 8 %86, ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  %660 = 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) %86, ptr noundef nonnull align 8 dereferenceable(16) %84) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #8
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %85) #8
  call void @llvm.lifetime.end.p0(i64 576, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #8
  br label %670

661:                                              ; preds = %657
  %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
  br label %669

665:                                              ; preds = %658
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %9, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %10, align 4
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %85) #8
  br label %669

669:                                              ; preds = %665, %661
  call void @llvm.lifetime.end.p0(i64 576, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #8
  br label %715

670:                                              ; preds = %659, %634
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #8
  %671 = load i64, ptr %83, align 8, !tbaa !17
  %672 = load i64, ptr %44, align 8, !tbaa !17
  %673 = icmp eq i64 %671, %672
  %674 = zext i1 %673 to i8
  store i8 %674, ptr %87, align 1, !tbaa !11
  invoke void @_ZN5amgcl12preconditionIbA34_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %87, ptr noundef nonnull align 1 dereferenceable(34) @.str.38)
          to label %675 unwind label %683

675:                                              ; preds = %670
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #8
  %676 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %82) #8
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %676)
          to label %677 unwind label %653

677:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  store i64 0, ptr %88, align 8, !tbaa !17
  br label %678

678:                                              ; preds = %711, %677
  %679 = load i64, ptr %88, align 8, !tbaa !17
  %680 = load i64, ptr %44, align 8, !tbaa !17
  %681 = icmp slt i64 %679, %680
  br i1 %681, label %687, label %682

682:                                              ; preds = %678
  store i32 7, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  br label %714

683:                                              ; preds = %670
  %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
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #8
  br label %715

687:                                              ; preds = %678
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #8
  store i64 0, ptr %89, align 8, !tbaa !17
  br label %688

688:                                              ; preds = %707, %687
  %689 = load i64, ptr %89, align 8, !tbaa !17
  %690 = load i64, ptr %45, align 8, !tbaa !17
  %691 = icmp slt i64 %689, %690
  br i1 %691, label %693, label %692

692:                                              ; preds = %688
  store i32 10, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #8
  br label %710

693:                                              ; preds = %688
  %694 = load i64, ptr %88, align 8, !tbaa !17
  %695 = load i64, ptr %45, align 8, !tbaa !17
  %696 = mul nsw i64 %694, %695
  %697 = load i64, ptr %89, align 8, !tbaa !17
  %698 = add nsw i64 %696, %697
  %699 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef %698) #8
  %700 = load double, ptr %699, align 8, !tbaa !19
  %701 = load i64, ptr %88, align 8, !tbaa !17
  %702 = load i64, ptr %89, align 8, !tbaa !17
  %703 = load i64, ptr %44, align 8, !tbaa !17
  %704 = mul nsw i64 %702, %703
  %705 = add nsw i64 %701, %704
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %705) #8
  store double %700, ptr %706, align 8, !tbaa !19
  br label %707

707:                                              ; preds = %693
  %708 = load i64, ptr %89, align 8, !tbaa !17
  %709 = add nsw i64 %708, 1
  store i64 %709, ptr %89, align 8, !tbaa !17
  br label %688, !llvm.loop !21

710:                                              ; preds = %692
  br label %711

711:                                              ; preds = %710
  %712 = load i64, ptr %88, align 8, !tbaa !17
  %713 = add nsw i64 %712, 1
  store i64 %713, ptr %88, align 8, !tbaa !17
  br label %678, !llvm.loop !22

714:                                              ; preds = %682
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %799

715:                                              ; preds = %683, %669, %653
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %716

716:                                              ; preds = %715, %652
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %838

717:                                              ; preds = %622
  %718 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %719 unwind label %734

719:                                              ; preds = %717
  %720 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %718, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %721 unwind label %738

721:                                              ; preds = %719
  %722 = icmp ne i64 %720, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  br i1 %722, label %723, label %798

723:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %724 unwind label %743

724:                                              ; preds = %723
  %725 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %726 unwind label %747

726:                                              ; preds = %724
  %727 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %725)
          to label %728 unwind label %747

728:                                              ; preds = %726
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %727)
          to label %729 unwind label %747

729:                                              ; preds = %728
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %95) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #8
  %730 = load i8, ptr %57, align 1, !tbaa !11, !range !15, !noundef !16
  %731 = trunc i8 %730 to i1
  br i1 %731, label %732, label %756

732:                                              ; preds = %729
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef -1, i64 noundef -1)
          to label %733 unwind label %752

733:                                              ; preds = %732
  br label %769

734:                                              ; preds = %717
  %735 = landingpad { ptr, i32 }
          cleanup
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %9, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %10, align 4
  br label %742

738:                                              ; preds = %719
  %739 = landingpad { ptr, i32 }
          cleanup
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %9, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %742

742:                                              ; preds = %738, %734
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  br label %838

743:                                              ; preds = %723
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %9, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %10, align 4
  br label %751

747:                                              ; preds = %728, %726, %724
  %748 = landingpad { ptr, i32 }
          cleanup
  %749 = extractvalue { ptr, i32 } %748, 0
  store ptr %749, ptr %9, align 8
  %750 = extractvalue { ptr, i32 } %748, 1
  store i32 %750, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %751

751:                                              ; preds = %747, %743
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  br label %797

752:                                              ; preds = %786, %732
  %753 = landingpad { ptr, i32 }
          cleanup
  %754 = extractvalue { ptr, i32 } %753, 0
  store ptr %754, ptr %9, align 8
  %755 = extractvalue { ptr, i32 } %753, 1
  store i32 %755, ptr %10, align 4
  br label %796

756:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #8
  call void @llvm.lifetime.start.p0(i64 576, ptr %99) #8
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %99, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %757 unwind label %760

757:                                              ; preds = %756
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %98, ptr noundef nonnull align 8 dereferenceable(576) %99, ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef -1, i64 noundef -1)
          to label %758 unwind label %764

758:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #8
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.64") align 8 %100, ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  %759 = 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) %100, ptr noundef nonnull align 8 dereferenceable(16) %98) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #8
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %99) #8
  call void @llvm.lifetime.end.p0(i64 576, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #8
  br label %769

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

764:                                              ; preds = %757
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %9, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %10, align 4
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %99) #8
  br label %768

768:                                              ; preds = %764, %760
  call void @llvm.lifetime.end.p0(i64 576, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #8
  br label %796

769:                                              ; preds = %758, %733
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #8
  %770 = load i64, ptr %96, align 8, !tbaa !17
  %771 = load i64, ptr %97, align 8, !tbaa !17
  %772 = mul nsw i64 %770, %771
  %773 = load i64, ptr %44, align 8, !tbaa !17
  %774 = icmp eq i64 %772, %773
  br i1 %774, label %775, label %783

775:                                              ; preds = %769
  %776 = load i64, ptr %97, align 8, !tbaa !17
  %777 = icmp eq i64 %776, 2
  br i1 %777, label %781, label %778

778:                                              ; preds = %775
  %779 = load i64, ptr %97, align 8, !tbaa !17
  %780 = icmp eq i64 %779, 3
  br label %781

781:                                              ; preds = %778, %775
  %782 = phi i1 [ true, %775 ], [ %780, %778 ]
  br label %783

783:                                              ; preds = %781, %769
  %784 = phi i1 [ false, %769 ], [ %782, %781 ]
  %785 = zext i1 %784 to i8
  store i8 %785, ptr %101, align 1, !tbaa !11
  invoke void @_ZN5amgcl12preconditionIbA33_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %101, ptr noundef nonnull align 1 dereferenceable(33) @.str.39)
          to label %786 unwind label %792

786:                                              ; preds = %783
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #8
  %787 = load i64, ptr %97, align 8, !tbaa !17
  %788 = trunc i64 %787 to i32
  %789 = invoke noundef i32 @_ZN5amgcl10coarsening16rigid_body_modesISt6vectorIdSaIdEEEEiiRKT_RS4_b(i32 noundef %788, ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %50, i1 noundef zeroext true)
          to label %790 unwind label %752

790:                                              ; preds = %786
  %791 = sext i32 %789 to i64
  store i64 %791, ptr %45, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  br label %798

792:                                              ; preds = %783
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %9, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #8
  br label %796

796:                                              ; preds = %792, %768, %752
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %797

797:                                              ; preds = %796, %751
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  br label %838

798:                                              ; preds = %790, %721
  br label %799

799:                                              ; preds = %798, %714
  call void @llvm.lifetime.start.p0(i64 48, ptr %102) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %102, ptr noundef @.str.40, i8 noundef signext 46)
          to label %800 unwind label %820

800:                                              ; preds = %799
  %801 = 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) %22, ptr noundef nonnull align 8 dereferenceable(48) %102, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %802 unwind label %824

802:                                              ; preds = %800
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %102) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %102) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %104) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %104, ptr noundef @.str.41, i8 noundef signext 46)
          to label %803 unwind label %829

803:                                              ; preds = %802
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  %804 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  store ptr %804, ptr %106, align 8, !tbaa !9
  %805 = 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) %22, ptr noundef nonnull align 8 dereferenceable(48) %104, ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %806 unwind label %833

806:                                              ; preds = %803
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %104) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %107) #8
  %807 = load i64, ptr %44, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #8
  store double 0.000000e+00, ptr %108, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %807, ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %808 unwind label %841

808:                                              ; preds = %806
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #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.42, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %809 unwind label %845

809:                                              ; preds = %808
  %810 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %811 unwind label %849

811:                                              ; preds = %809
  %812 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %810)
          to label %813 unwind label %849

813:                                              ; preds = %811
  %814 = load i8, ptr %812, align 1, !tbaa !11, !range !15, !noundef !16
  %815 = trunc i8 %814 to i1
  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
  br i1 %815, label %816, label %863

816:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 48, ptr %114) #8
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %114, ptr noundef @.str.43, i8 noundef signext 46)
          to label %817 unwind label %854

817:                                              ; preds = %816
  %818 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIA11_cEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %22, ptr noundef nonnull align 8 dereferenceable(48) %114, ptr noundef nonnull align 1 dereferenceable(11) @.str.44)
          to label %819 unwind label %858

819:                                              ; preds = %817
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %114) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %114) #8
  br label %863

820:                                              ; preds = %799
  %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
  br label %828

824:                                              ; preds = %800
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %9, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %10, align 4
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %102) #8
  br label %828

828:                                              ; preds = %824, %820
  call void @llvm.lifetime.end.p0(i64 48, ptr %102) #8
  br label %838

829:                                              ; preds = %802
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %9, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %10, align 4
  br label %837

833:                                              ; preds = %803
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %9, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %104) #8
  br label %837

837:                                              ; preds = %833, %829
  call void @llvm.lifetime.end.p0(i64 48, ptr %104) #8
  br label %838

838:                                              ; preds = %837, %828, %797, %742, %716, %643, %614, %610, %567, %541, %515, %514
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %839

839:                                              ; preds = %838, %505
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  br label %840

840:                                              ; preds = %839, %496
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %1024

841:                                              ; preds = %806
  %842 = landingpad { ptr, i32 }
          cleanup
  %843 = extractvalue { ptr, i32 } %842, 0
  store ptr %843, ptr %9, align 8
  %844 = extractvalue { ptr, i32 } %842, 1
  store i32 %844, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  br label %1023

845:                                              ; preds = %808
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %9, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %10, align 4
  br label %853

849:                                              ; preds = %811, %809
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %9, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %853

853:                                              ; preds = %849, %845
  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 %1022

854:                                              ; preds = %816
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %9, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %10, align 4
  br label %862

858:                                              ; preds = %817
  %859 = landingpad { ptr, i32 }
          cleanup
  %860 = extractvalue { ptr, i32 } %859, 0
  store ptr %860, ptr %9, align 8
  %861 = extractvalue { ptr, i32 } %859, 1
  store i32 %861, ptr %10, align 4
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %114) #8
  br label %862

862:                                              ; preds = %858, %854
  call void @llvm.lifetime.end.p0(i64 48, ptr %114) #8
  br label %1022

863:                                              ; preds = %819, %813
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #8
  call void @_ZSt3tieIJlSt6vectorIlSaIlEES2_S0_IdSaIdEEEESt5tupleIJDpRT_EES8_(ptr dead_on_unwind writable sret(%"class.std::tuple.70") align 8 %116, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(24) %48) #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.45, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %864 unwind label %895

864:                                              ; preds = %863
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %865 unwind label %899

865:                                              ; preds = %864
  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.start.p0(i64 224, ptr %119) #8
  call void @llvm.lifetime.start.p0(i64 96, ptr %120) #8
  invoke void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESN_St4lessISN_EEE(ptr noundef nonnull align 8 dereferenceable(96) %120, ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %866 unwind label %904

866:                                              ; preds = %865
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #8
  invoke void @_ZN5amgcl6detail12empty_paramsC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %867 unwind label %908

867:                                              ; preds = %866
  invoke void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESK_RSH_IdSaIdEEEEEERKT_RKNSD_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(224) %119, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(96) %120, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %868 unwind label %908

868:                                              ; preds = %867
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #8
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %120) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr %120) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %869 unwind label %913

869:                                              ; preds = %868
  %870 = invoke noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %122)
          to label %871 unwind label %917

871:                                              ; preds = %869
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %872 unwind label %922

872:                                              ; preds = %871
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %873 unwind label %926

873:                                              ; preds = %872
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #8
  invoke void @_ZNK5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSH_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind writable sret(%"class.std::tuple.83") align 8 %126, ptr noundef nonnull align 8 dereferenceable(224) %119, ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(24) %107)
          to label %874 unwind label %931

874:                                              ; preds = %873
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #8
  call void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind writable sret(%"class.std::tuple.87") align 8 %127, ptr noundef nonnull align 4 dereferenceable(4) %110, ptr noundef nonnull align 8 dereferenceable(8) %111) #8
  %875 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRiRdEEaSImdEENSt9enable_ifIXcl12__assignableIT_T0_EEERS2_E4typeEOS_IJS5_S6_EE(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 8 dereferenceable(16) %126) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %876 unwind label %935

876:                                              ; preds = %874
  %877 = invoke noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %128)
          to label %878 unwind label %939

878:                                              ; preds = %876
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #8
  %879 = getelementptr inbounds i8, ptr %15, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %880 unwind label %944

880:                                              ; preds = %878
  %881 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %879, ptr noundef nonnull align 8 dereferenceable(32) %130)
          to label %882 unwind label %948

882:                                              ; preds = %880
  %883 = icmp ne i64 %881, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #8
  br i1 %883, label %884, label %972

884:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %134) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %885 unwind label %953

885:                                              ; preds = %884
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind 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 %886 unwind label %957

886:                                              ; preds = %885
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %136) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %887 unwind label %962

887:                                              ; preds = %886
  %888 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %15, ptr noundef nonnull align 8 dereferenceable(32) %135)
          to label %889 unwind label %966

889:                                              ; preds = %887
  %890 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %888)
          to label %891 unwind label %966

891:                                              ; preds = %889
  %892 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #8
  %893 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #8
  invoke void @_ZN5amgcl2io8mm_writeIdEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_mm(ptr noundef nonnull align 8 dereferenceable(32) %890, ptr noundef %892, i64 noundef %893, i64 noundef 1)
          to label %894 unwind label %966

894:                                              ; preds = %891
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  br label %972

895:                                              ; preds = %863
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %9, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %10, align 4
  br label %903

899:                                              ; preds = %864
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %9, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %903

903:                                              ; preds = %899, %895
  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
  br label %1021

904:                                              ; preds = %865
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %9, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %10, align 4
  br label %912

908:                                              ; preds = %867, %866
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %9, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #8
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %120) #8
  br label %912

912:                                              ; preds = %908, %904
  call void @llvm.lifetime.end.p0(i64 96, ptr %120) #8
  br label %1020

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

917:                                              ; preds = %869
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %9, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  br label %921

921:                                              ; preds = %917, %913
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #8
  br label %1019

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

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

930:                                              ; preds = %926, %922
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #8
  br label %1019

931:                                              ; preds = %873
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %9, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #8
  br label %1019

935:                                              ; preds = %874
  %936 = landingpad { ptr, i32 }
          cleanup
  %937 = extractvalue { ptr, i32 } %936, 0
  store ptr %937, ptr %9, align 8
  %938 = extractvalue { ptr, i32 } %936, 1
  store i32 %938, ptr %10, align 4
  br label %943

939:                                              ; preds = %876
  %940 = landingpad { ptr, i32 }
          cleanup
  %941 = extractvalue { ptr, i32 } %940, 0
  store ptr %941, ptr %9, align 8
  %942 = extractvalue { ptr, i32 } %940, 1
  store i32 %942, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  br label %943

943:                                              ; preds = %939, %935
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #8
  br label %1019

944:                                              ; preds = %878
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %9, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %10, align 4
  br label %952

948:                                              ; preds = %880
  %949 = landingpad { ptr, i32 }
          cleanup
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %9, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  br label %952

952:                                              ; preds = %948, %944
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #8
  br label %1019

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

957:                                              ; preds = %885
  %958 = landingpad { ptr, i32 }
          cleanup
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %9, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %961

961:                                              ; preds = %957, %953
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  br label %971

962:                                              ; preds = %886
  %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
  br label %970

966:                                              ; preds = %891, %889, %887
  %967 = landingpad { ptr, i32 }
          cleanup
  %968 = extractvalue { ptr, i32 } %967, 0
  store ptr %968, ptr %9, align 8
  %969 = extractvalue { ptr, i32 } %967, 1
  store i32 %969, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  br label %970

970:                                              ; preds = %966, %962
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #8
  br label %971

971:                                              ; preds = %970, %961
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  br label %1019

972:                                              ; preds = %894, %882
  call void @llvm.lifetime.start.p0(i64 24, ptr %137) #8
  %973 = load i64, ptr %44, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %138) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %137, i64 noundef %973, ptr noundef nonnull align 1 dereferenceable(1) %138)
          to label %974 unwind label %1010

974:                                              ; preds = %972
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  invoke void @_ZN5amgcl7backend8residualISt5tupleIJRlRSt6vectorIlSaIlEES7_RS4_IdSaIdEEEES9_S9_S9_EEvRKT0_RKT_RKT1_RT2_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 8 dereferenceable(24) %137)
          to label %975 unwind label %1014

975:                                              ; preds = %974
  %976 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.49)
          to label %977 unwind label %1014

977:                                              ; preds = %975
  %978 = load i32, ptr %110, align 4, !tbaa !5
  %979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %976, i32 noundef %978)
          to label %980 unwind label %1014

980:                                              ; preds = %977
  %981 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %979, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %982 unwind label %1014

982:                                              ; preds = %980
  %983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %981, ptr noundef @.str.50)
          to label %984 unwind label %1014

984:                                              ; preds = %982
  %985 = load double, ptr %111, align 8, !tbaa !19
  %986 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %983, double noundef %985)
          to label %987 unwind label %1014

987:                                              ; preds = %984
  %988 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %986, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %989 unwind label %1014

989:                                              ; preds = %987
  %990 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %988, ptr noundef @.str.51)
          to label %991 unwind label %1014

991:                                              ; preds = %989
  %992 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %137, ptr noundef nonnull align 8 dereferenceable(24) %137)
          to label %993 unwind label %1014

993:                                              ; preds = %991
  %994 = call double @sqrt(double noundef %992) #8
  %995 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %996 unwind label %1014

996:                                              ; preds = %993
  %997 = call double @sqrt(double noundef %995) #8
  %998 = fdiv double %994, %997
  %999 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %990, double noundef %998)
          to label %1000 unwind label %1014

1000:                                             ; preds = %996
  %1001 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRNS_8profilerINS_12perf_counter5clockELj2EEE(ptr noundef nonnull align 8 dereferenceable(8) %999, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE)
          to label %1002 unwind label %1014

1002:                                             ; preds = %1000
  %1003 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1001, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1004 unwind label %1014

1004:                                             ; preds = %1002
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %137) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %137) #8
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(224) %119) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  store i32 0, ptr %20, align 4
  br label %1005

1005:                                             ; preds = %1004, %431
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #8
  br label %1006

1006:                                             ; preds = %1005, %216
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %15) #8
  call void @llvm.lifetime.end.p0(i64 160, ptr %15) #8
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %14) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %14) #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
  %1007 = load i32, ptr %20, align 4
  switch i32 %1007, label %1038 [
    i32 0, label %1008
    i32 1, label %1008
  ]

1008:                                             ; preds = %1006, %1006
  %1009 = load i32, ptr %3, align 4
  ret i32 %1009

1010:                                             ; preds = %972
  %1011 = landingpad { ptr, i32 }
          cleanup
  %1012 = extractvalue { ptr, i32 } %1011, 0
  store ptr %1012, ptr %9, align 8
  %1013 = extractvalue { ptr, i32 } %1011, 1
  store i32 %1013, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  br label %1018

1014:                                             ; preds = %1002, %1000, %996, %993, %991, %989, %987, %984, %982, %980, %977, %975, %974
  %1015 = landingpad { ptr, i32 }
          cleanup
  %1016 = extractvalue { ptr, i32 } %1015, 0
  store ptr %1016, ptr %9, align 8
  %1017 = extractvalue { ptr, i32 } %1015, 1
  store i32 %1017, ptr %10, align 4
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %137) #8
  br label %1018

1018:                                             ; preds = %1014, %1010
  call void @llvm.lifetime.end.p0(i64 24, ptr %137) #8
  br label %1019

1019:                                             ; preds = %1018, %971, %952, %943, %931, %930, %921
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(224) %119) #8
  br label %1020

1020:                                             ; preds = %1019, %912
  call void @llvm.lifetime.end.p0(i64 224, ptr %119) #8
  br label %1021

1021:                                             ; preds = %1020, %903
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  br label %1022

1022:                                             ; preds = %1021, %862, %853
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #8
  br label %1023

1023:                                             ; preds = %1022, %841
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #8
  br label %1024

1024:                                             ; preds = %1023, %840
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #8
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %1025

1025:                                             ; preds = %1024, %463, %462, %398, %378, %348, %334
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #8
  br label %1026

1026:                                             ; preds = %1025, %322
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #8
  br label %1027

1027:                                             ; preds = %1026, %291, %278, %266, %265
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %15) #8
  br label %1028

1028:                                             ; preds = %1027, %248
  call void @llvm.lifetime.end.p0(i64 160, ptr %15) #8
  br label %1029

1029:                                             ; preds = %1028, %244
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %14) #8
  br label %1030

1030:                                             ; preds = %1029, %240
  call void @llvm.lifetime.end.p0(i64 56, ptr %14) #8
  br label %1031

1031:                                             ; preds = %1030, %239
  call void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %6) #8
  br label %1032

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

1033:                                             ; preds = %1032
  %1034 = load ptr, ptr %9, align 8
  %1035 = load i32, ptr %10, align 4
  %1036 = insertvalue { ptr, i32 } poison, ptr %1034, 0
  %1037 = insertvalue { ptr, i32 } %1036, i32 %1035, 1
  resume { ptr, i32 } %1037

1038:                                             ; preds = %1006
  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

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 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 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.64") 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 @_ZN5amgcl12preconditionIbA34_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(34)) #3

; 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 noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 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 void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5amgcl10coarsening16rigid_body_modesISt6vectorIdSaIdEEEEiiRKT_RS4_b(i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) #3

; 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 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: 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 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: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIA11_cEERSA_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(11)) #6 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.70") 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: 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: mustprogress uwtable
declare dso_local void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESN_St4lessISN_EEE(ptr noundef nonnull align 8 dereferenceable(96), 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 @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESK_RSH_IdSaIdEEEEEERKT_RKNSD_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) 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 void @_ZNK5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSH_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.83") align 8, ptr noundef nonnull align 8 dereferenceable(224), 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.87") 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 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 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 uwtable
declare dso_local void @_ZN5amgcl7backend8residualISt5tupleIJRlRSt6vectorIlSaIlEES7_RS4_IdSaIdEEEES9_S9_S9_EEvRKT0_RKT_RKT1_RT2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #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

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

; 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: nounwind
declare double @sqrt(double noundef) #7

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #5 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 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"double", !7, i64 0}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !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.25", %"class.std::__cxx11::basic_string" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = 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.30", %"class.std::set", %"class.std::map.39" }
%"class.boost::program_options::abstract_variables_map" = type { ptr, ptr }
%"class.std::map.30" = type { %"class.std::_Rb_tree.31" }
%"class.std::_Rb_tree.31" = 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.35" }
%"class.std::_Rb_tree.35" = 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.39" = type { %"class.std::_Rb_tree.40" }
%"class.std::_Rb_tree.40" = 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.44", ptr, i32, [4 x i8] }>
%"class.std::vector.44" = type { %"struct.std::_Vector_base.45" }
%"struct.std::_Vector_base.45" = 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.25", i32, i8, ptr, ptr, %"class.boost::function1.49", %"class.boost::function1.50" }
%"class.boost::function1.49" = 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.50" = 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.51" = type { %"struct.std::_Vector_base.52" }
%"struct.std::_Vector_base.52" = 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.56" = type { %"struct.std::_Vector_base.57" }
%"struct.std::_Vector_base.57" = 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 }
%"struct.amgcl::profiler<>::scoped_ticker" = type { ptr }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.61", %"struct.std::_Head_base.62" }
%"struct.std::_Tuple_impl.61" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { i64 }
%"struct.std::_Head_base.62" = 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.63 }
%union.anon.63 = type { i32 }
%"class.std::tuple.64" = type { %"struct.std::_Tuple_impl.65" }
%"struct.std::_Tuple_impl.65" = type { %"struct.std::_Tuple_impl.66", %"struct.std::_Head_base.68" }
%"struct.std::_Tuple_impl.66" = type { %"struct.std::_Head_base.67" }
%"struct.std::_Head_base.67" = type { ptr }
%"struct.std::_Head_base.68" = type { ptr }
%"class.boost::property_tree::string_path" = type { %"class.std::__cxx11::basic_string", i8, %"class.__gnu_cxx::__normal_iterator.69" }
%"class.__gnu_cxx::__normal_iterator.69" = type { ptr }
%"class.std::allocator.58" = type { i8 }
%"class.std::tuple.70" = type { %"struct.std::_Tuple_impl.71" }
%"struct.std::_Tuple_impl.71" = type { %"struct.std::_Tuple_impl.72", %"struct.std::_Head_base.68" }
%"struct.std::_Tuple_impl.72" = type { %"struct.std::_Tuple_impl.73", %"struct.std::_Head_base.77" }
%"struct.std::_Tuple_impl.73" = type { %"struct.std::_Tuple_impl.74", %"struct.std::_Head_base.76" }
%"struct.std::_Tuple_impl.74" = type { %"struct.std::_Head_base.75" }
%"struct.std::_Head_base.75" = type { ptr }
%"struct.std::_Head_base.76" = type { ptr }
%"struct.std::_Head_base.77" = type { ptr }
%"class.amgcl::deflated_solver" = type { %"struct.amgcl::deflated_solver<amgcl::runtime::preconditioner<amgcl::backend::builtin<double>>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", i64, %"class.amgcl::runtime::preconditioner", %"struct.amgcl::runtime::solver::wrapper", %"class.std::shared_ptr", %"class.std::vector.78", %"class.std::vector.56", %"class.std::vector.56" }
%"struct.amgcl::deflated_solver<amgcl::runtime::preconditioner<amgcl::backend::builtin<double>>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params" = type { i32, ptr, %"class.boost::property_tree::basic_ptree", %"class.boost::property_tree::basic_ptree" }
%"class.amgcl::runtime::preconditioner" = type { i32, ptr }
%"struct.amgcl::runtime::solver::wrapper" = type { i32, ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.78" = type { %"struct.std::_Vector_base.79" }
%"struct.std::_Vector_base.79" = type { %"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<amgcl::backend::numa_vector<double>>, std::allocator<std::shared_ptr<amgcl::backend::numa_vector<double>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.amgcl::detail::empty_params" = type { i8 }
%"class.std::tuple.83" = type { %"struct.std::_Tuple_impl.84" }
%"struct.std::_Tuple_impl.84" = type { %"struct.std::_Tuple_impl.85", %"struct.std::_Head_base.62" }
%"struct.std::_Tuple_impl.85" = type { %"struct.std::_Head_base.86" }
%"struct.std::_Head_base.86" = type { double }
%"class.std::tuple.87" = type { %"struct.std::_Tuple_impl.88" }
%"struct.std::_Tuple_impl.88" = type { %"struct.std::_Tuple_impl.89", %"struct.std::_Head_base.91" }
%"struct.std::_Tuple_impl.89" = type { %"struct.std::_Head_base.90" }
%"struct.std::_Head_base.90" = type { ptr }
%"struct.std::_Head_base.91" = 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 [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [229 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [97 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 [7 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.31 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [13 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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) 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 i8, align 1
  %9 = alloca %"class.boost::program_options::positional_options_description", align 8
  %10 = alloca %"class.boost::program_options::variables_map", align 8
  %11 = alloca %"class.boost::program_options::basic_parsed_options", align 8
  %12 = alloca %"class.boost::program_options::basic_command_line_parser", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.boost::property_tree::basic_ptree", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::locale", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca %"class.std::vector.51", align 8
  %34 = alloca %"class.std::vector.51", align 8
  %35 = alloca %"class.std::vector.56", align 8
  %36 = alloca %"class.std::vector.56", align 8
  %37 = alloca %"class.std::vector.56", 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.64", 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.64", 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.56", 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.64", 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 %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca %"class.std::vector.56", align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca %"class.std::tuple", align 8
  %83 = alloca %"class.amgcl::io::mm_reader", align 8
  %84 = alloca %"class.std::tuple.64", align 8
  %85 = alloca i8, align 1
  %86 = alloca %"class.boost::property_tree::string_path", align 8
  %87 = alloca %"class.boost::property_tree::string_path", align 8
  %88 = alloca ptr, align 8
  %89 = alloca %"class.std::vector.56", align 8
  %90 = alloca double, align 8
  %91 = alloca %"class.std::allocator.58", align 1
  %92 = alloca i32, align 4
  %93 = alloca double, align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca %"class.boost::property_tree::string_path", align 8
  %97 = alloca %"class.std::tuple.70", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca %"class.amgcl::deflated_solver", align 8
  %101 = alloca %"struct.amgcl::deflated_solver<amgcl::runtime::preconditioner<amgcl::backend::builtin<double>>, amgcl::runtime::solver::wrapper<amgcl::backend::builtin<double>>>::params", align 8
  %102 = alloca %"struct.amgcl::detail::empty_params", align 1
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::allocator", align 1
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator", align 1
  %107 = alloca %"class.std::tuple.83", align 8
  %108 = alloca %"class.std::tuple.87", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::allocator", align 1
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator", align 1
  %113 = alloca %"struct.amgcl::profiler<>::scoped_ticker", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator", align 1
  %118 = alloca %"class.std::vector.56", align 8
  %119 = alloca %"class.std::allocator.58", 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 %120 unwind label %194

120:                                              ; preds = %2
  %121 = load i32, ptr @_ZN5boost15program_options19options_description21m_default_line_lengthE, align 4, !tbaa !5
  %122 = lshr i32 %121, 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 %121, i32 noundef %122)
          to label %123 unwind label %196

123:                                              ; preds = %120
  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
  %124 = invoke ptr @_ZN5boost15program_options19options_description11add_optionsEv(ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %125 unwind label %199

125:                                              ; preds = %123
  store ptr %124, ptr %6, align 8
  %126 = 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 %127 unwind label %199

127:                                              ; preds = %125
  %128 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %129 unwind label %199

129:                                              ; preds = %127
  %130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull @.str.7, ptr noundef %128, ptr noundef nonnull @.str.8)
          to label %131 unwind label %199

131:                                              ; preds = %129
  %132 = invoke noundef ptr @_ZN5boost15program_options5valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEEPNS0_11typed_valueIT_cEEv()
          to label %133 unwind label %199

133:                                              ; preds = %131
  %134 = call noundef ptr @_ZN5boost15program_options11typed_valueISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEcE10multitokenEv(ptr noundef nonnull align 8 dereferenceable(176) %132)
  %135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef nonnull @.str.9, ptr noundef %134, ptr noundef nonnull @.str.10)
          to label %136 unwind label %199

136:                                              ; preds = %133
  %137 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %138 unwind label %199

138:                                              ; preds = %136
  %139 = call noundef ptr @_ZN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE8requiredEv(ptr noundef nonnull align 8 dereferenceable(176) %137)
  %140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull @.str.11, ptr noundef %139, ptr noundef nonnull @.str.12)
          to label %141 unwind label %199

141:                                              ; preds = %138
  %142 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %143 unwind label %199

143:                                              ; preds = %141
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull @.str.13, ptr noundef %142, ptr noundef nonnull @.str.14)
          to label %145 unwind label %199

145:                                              ; preds = %143
  %146 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %147 unwind label %199

147:                                              ; preds = %145
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull @.str.15, ptr noundef %146, ptr noundef nonnull @.str.16)
          to label %149 unwind label %199

149:                                              ; preds = %147
  %150 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %151 unwind label %199

151:                                              ; preds = %149
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull @.str.17, ptr noundef %150, ptr noundef nonnull @.str.18)
          to label %153 unwind label %199

153:                                              ; preds = %151
  %154 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %155 unwind label %199

155:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #9
  store i8 0, ptr %7, align 1, !tbaa !9
  %156 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %154, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %157 unwind label %201

157:                                              ; preds = %155
  %158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull @.str.19, ptr noundef %156, ptr noundef nonnull @.str.20)
          to label %159 unwind label %201

159:                                              ; preds = %157
  %160 = invoke noundef ptr @_ZN5boost15program_options11bool_switchEv()
          to label %161 unwind label %201

161:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #9
  store i8 0, ptr %8, align 1, !tbaa !9
  %162 = invoke noundef ptr @_ZN5boost15program_options11typed_valueIbcE13default_valueERKb(ptr noundef nonnull align 8 dereferenceable(176) %160, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %163 unwind label %203

163:                                              ; preds = %161
  %164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull @.str.21, ptr noundef %162, ptr noundef nonnull @.str.22)
          to label %165 unwind label %203

165:                                              ; preds = %163
  %166 = invoke noundef ptr @_ZN5boost15program_options5valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNS0_11typed_valueIT_cEEv()
          to label %167 unwind label %203

167:                                              ; preds = %165
  %168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull @.str.23, ptr noundef %166, ptr noundef nonnull @.str.24)
          to label %169 unwind label %203

169:                                              ; preds = %167
  call void @llvm.lifetime.end.p0(i64 1, 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 %9) #9
  invoke void @_ZN5boost15program_options30positional_options_descriptionC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %9)
          to label %170 unwind label %207

170:                                              ; preds = %169
  %171 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN5boost15program_options30positional_options_description3addEPKci(ptr noundef nonnull align 8 dereferenceable(56) %9, ptr noundef nonnull @.str.25, i32 noundef -1)
          to label %172 unwind label %209

172:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %10) #9
  invoke void @_ZN5boost15program_options13variables_mapC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %10)
          to label %173 unwind label %211

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %12) #9
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc(ptr noundef nonnull align 8 dereferenceable(120) %12, i32 noundef %0, ptr noundef %1)
          to label %174 unwind label %213

174:                                              ; preds = %173
  %175 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE7optionsERKNS0_19options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %12, ptr noundef nonnull align 8 dereferenceable(128) %3)
          to label %176 unwind label %215

176:                                              ; preds = %174
  %177 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5boost15program_options25basic_command_line_parserIcE10positionalERKNS0_30positional_options_descriptionE(ptr noundef nonnull align 8 dereferenceable(120) %175, ptr noundef nonnull align 8 dereferenceable(56) %9)
          to label %178 unwind label %215

178:                                              ; preds = %176
  invoke void @_ZN5boost15program_options25basic_command_line_parserIcE3runEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::program_options::basic_parsed_options") align 8 %11, ptr noundef nonnull align 8 dereferenceable(120) %177)
          to label %179 unwind label %215

179:                                              ; preds = %178
  invoke void @_ZN5boost15program_options5storeERKNS0_20basic_parsed_optionsIcEERNS0_13variables_mapEb(ptr noundef nonnull align 8 dereferenceable(36) %11, ptr noundef nonnull align 8 dereferenceable(160) %10, i1 noundef zeroext false)
          to label %180 unwind label %217

180:                                              ; preds = %179
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %11) #9
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %12) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #9
  invoke void @_ZN5boost15program_options6notifyERNS0_13variables_mapE(ptr noundef nonnull align 8 dereferenceable(160) %10)
          to label %181 unwind label %221

181:                                              ; preds = %180
  %182 = getelementptr inbounds i8, ptr %10, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %183 unwind label %223

183:                                              ; preds = %181
  %184 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %185 unwind label %225

185:                                              ; preds = %183
  %.not = icmp eq i64 %184, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  br i1 %.not, label %.preheader222, label %190

.preheader222:                                    ; preds = %185
  %186 = icmp sgt i32 %0, 0
  br i1 %186, label %187, label %._crit_edge

187:                                              ; preds = %.preheader222
  %wide.trip.count = zext nneg i32 %0 to i64
  %.pre = load ptr, ptr %1, align 8, !tbaa !11
  %188 = 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 %189 unwind label %.loopexit.split-lp

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

190:                                              ; preds = %185
  %191 = 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 %192 unwind label %221

192:                                              ; preds = %190
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %681 unwind label %221

194:                                              ; preds = %2
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %198

196:                                              ; preds = %120
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  br label %198

198:                                              ; preds = %196, %194
  %.pn = phi { ptr, i32 } [ %197, %196 ], [ %195, %194 ]
  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 %700

199:                                              ; preds = %153, %151, %149, %147, %145, %143, %141, %138, %136, %133, %131, %129, %127, %125, %123
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %206

201:                                              ; preds = %159, %157, %155
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %205

203:                                              ; preds = %167, %165, %163, %161
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #9
  br label %205

205:                                              ; preds = %203, %201
  %.pn108 = phi { ptr, i32 } [ %204, %203 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  br label %206

206:                                              ; preds = %205, %199
  %.pn108.pn = phi { ptr, i32 } [ %.pn108, %205 ], [ %200, %199 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br label %699

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

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

211:                                              ; preds = %172
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %696

213:                                              ; preds = %173
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %220

215:                                              ; preds = %178, %176, %174
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %219

217:                                              ; preds = %179
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost15program_options20basic_parsed_optionsIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %11) #9
  br label %219

219:                                              ; preds = %217, %215
  %.pn111 = phi { ptr, i32 } [ %218, %217 ], [ %216, %215 ]
  call void @_ZN5boost15program_options6detail7cmdlineD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %12) #9
  br label %220

220:                                              ; preds = %219, %213
  %.pn111.pn = phi { ptr, i32 } [ %.pn111, %219 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #9
  br label %695

221:                                              ; preds = %._crit_edge, %192, %190, %180
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %695

223:                                              ; preds = %181
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %227

225:                                              ; preds = %183
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %227

227:                                              ; preds = %225, %223
  %.pn114 = phi { ptr, i32 } [ %226, %225 ], [ %224, %223 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  br label %695

._crit_edge:                                      ; preds = %234, %189, %.preheader222
  %228 = 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 %235 unwind label %221

.lr.ph.peel.next:                                 ; preds = %189, %234
  %indvars.iv = phi i64 [ %indvars.iv.next, %234 ], [ 1, %189 ]
  %229 = 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 %230 unwind label %.loopexit

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

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

230:                                              ; preds = %.lr.ph.peel.next
  %231 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv
  %232 = load ptr, ptr %231, 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 %232)
          to label %234 unwind label %.loopexit

234:                                              ; preds = %230
  %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

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

236:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %237 unwind label %249

237:                                              ; preds = %236
  %238 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %239 unwind label %251

239:                                              ; preds = %237
  %.not118 = icmp eq i64 %238, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  br i1 %.not118, label %262, label %240

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %241 unwind label %254

241:                                              ; preds = %240
  %242 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %243 unwind label %256

243:                                              ; preds = %241
  %244 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %242)
          to label %245 unwind label %256

245:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  call void @_ZNSt6localeC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  invoke void @_ZN5boost13property_tree11json_parser9read_jsonINS0_11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEEEEvRKS9_RT_RKSt6locale(ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %246 unwind label %258

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

247:                                              ; preds = %235
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %694

249:                                              ; preds = %236
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %253

251:                                              ; preds = %237
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %253

253:                                              ; preds = %251, %249
  %.pn116 = phi { ptr, i32 } [ %252, %251 ], [ %250, %249 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  br label %693

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

256:                                              ; preds = %243, %241
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %260

258:                                              ; preds = %245
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6localeD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  br label %260

260:                                              ; preds = %258, %256
  %.pn119 = phi { ptr, i32 } [ %259, %258 ], [ %257, %256 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %261

261:                                              ; preds = %260, %254
  %.pn119.pn = phi { ptr, i32 } [ %.pn119, %260 ], [ %255, %254 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  br label %693

262:                                              ; preds = %246, %239
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %263 unwind label %275

263:                                              ; preds = %262
  %264 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %265 unwind label %277

265:                                              ; preds = %263
  %.not124 = icmp eq i64 %264, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  br i1 %.not124, label %291, label %266

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

267:                                              ; preds = %266
  %268 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %269 unwind label %282

269:                                              ; preds = %267
  %270 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5boost15program_options14variable_value2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %268)
          to label %271 unwind label %282

271:                                              ; preds = %269
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  %272 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %270) #9
  store ptr %272, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  %273 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %270) #9
  store ptr %273, ptr %26, align 8
  %274 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  br i1 %274, label %.lr.ph225, label %._crit_edge226

._crit_edge226:                                   ; preds = %286, %271
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  br label %291

275:                                              ; preds = %262
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %279

277:                                              ; preds = %263
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %279

279:                                              ; preds = %277, %275
  %.pn122 = phi { ptr, i32 } [ %278, %277 ], [ %276, %275 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  br label %693

280:                                              ; preds = %266
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %284

282:                                              ; preds = %269, %267
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %284

284:                                              ; preds = %282, %280
  %.pn125 = phi { ptr, i32 } [ %283, %282 ], [ %281, %280 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  br label %693

.lr.ph225:                                        ; preds = %271, %286
  %285 = 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) %25) #9
  invoke void @_ZN5amgcl3putERN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St4lessIS8_EEERKS8_(ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef nonnull align 8 dereferenceable(32) %285)
          to label %286 unwind label %289

286:                                              ; preds = %.lr.ph225
  %287 = 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) %25) #9
  %288 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  br i1 %288, label %.lr.ph225, label %._crit_edge226

289:                                              ; preds = %.lr.ph225
  %290 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  br label %693

291:                                              ; preds = %._crit_edge226, %265
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %292 unwind label %302

292:                                              ; preds = %291
  %293 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %294 unwind label %304

294:                                              ; preds = %292
  %.not127 = icmp eq i64 %293, 0
  br i1 %.not127, label %295, label %.critedge220

295:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %296 unwind label %306

296:                                              ; preds = %295
  %297 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %.critedge unwind label %308

.critedge:                                        ; preds = %296
  %.not132 = icmp eq i64 %297, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br i1 %.not132, label %298, label %315

298:                                              ; preds = %.critedge
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.31)
          to label %300 unwind label %313

300:                                              ; preds = %298
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %680 unwind label %313

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

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

306:                                              ; preds = %295
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %310

308:                                              ; preds = %296
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %310

310:                                              ; preds = %306, %308
  %.pn128 = phi { ptr, i32 } [ %309, %308 ], [ %307, %306 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  br label %311

311:                                              ; preds = %310, %304
  %.pn128.pn = phi { ptr, i32 } [ %.pn128, %310 ], [ %305, %304 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %312

312:                                              ; preds = %311, %302
  %.pn128.pn.pn = phi { ptr, i32 } [ %.pn128.pn, %311 ], [ %303, %302 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %693

313:                                              ; preds = %300, %298
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %693

.critedge220:                                     ; preds = %294
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %315

315:                                              ; preds = %.critedge220, %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  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 @_ZNSt6vectorIdSaIdEEC2Ev(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.32, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %316 unwind label %332

316:                                              ; preds = %315
  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 %317 unwind label %334

317:                                              ; preds = %316
  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.33, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %318 unwind label %337

318:                                              ; preds = %317
  %319 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %320 unwind label %339

320:                                              ; preds = %318
  %321 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %319)
          to label %322 unwind label %339

322:                                              ; preds = %320
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %321)
          to label %323 unwind label %339

323:                                              ; preds = %322
  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.34, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %324 unwind label %342

324:                                              ; preds = %323
  %325 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %326 unwind label %344

326:                                              ; preds = %324
  %327 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %325)
          to label %328 unwind label %344

328:                                              ; preds = %326
  %329 = load i8, ptr %327, align 1, !tbaa !9, !range !16, !noundef !17
  %330 = trunc nuw i8 %329 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 %330, label %331, label %349

331:                                              ; preds = %328
  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) %31, 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 %366 unwind label %347

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

334:                                              ; preds = %316
  %335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %336

336:                                              ; preds = %334, %332
  %.pn133 = phi { ptr, i32 } [ %335, %334 ], [ %333, %332 ]
  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 %570

337:                                              ; preds = %317
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %341

339:                                              ; preds = %322, %320, %318
  %340 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %341

341:                                              ; preds = %339, %337
  %.pn135 = phi { ptr, i32 } [ %340, %339 ], [ %338, %337 ]
  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 %569

342:                                              ; preds = %323
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %346

344:                                              ; preds = %326, %324
  %345 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %346

346:                                              ; preds = %344, %342
  %.pn137 = phi { ptr, i32 } [ %345, %344 ], [ %343, %342 ]
  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 %568

347:                                              ; preds = %331
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %568

349:                                              ; preds = %328
  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 %350 unwind label %358

350:                                              ; preds = %349
  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 %351 unwind label %360

351:                                              ; preds = %350
  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.64") align 8 %49, ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  %352 = 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
  %353 = load i64, ptr %31, align 8, !tbaa !18
  %354 = load i64, ptr %46, align 8, !tbaa !18
  %355 = icmp eq i64 %353, %354
  %356 = zext i1 %355 to i8
  store i8 %356, 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.35)
          to label %357 unwind label %363

357:                                              ; preds = %351
  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 %366

358:                                              ; preds = %349
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %362

360:                                              ; preds = %350
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %48) #9
  br label %362

362:                                              ; preds = %360, %358
  %.pn139 = phi { ptr, i32 } [ %361, %360 ], [ %359, %358 ]
  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 %365

363:                                              ; preds = %351
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #9
  br label %365

365:                                              ; preds = %363, %362
  %.pn141 = phi { ptr, i32 } [ %364, %363 ], [ %.pn139, %362 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  br label %568

366:                                              ; preds = %331, %357
  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.36, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %367 unwind label %378

367:                                              ; preds = %366
  %368 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %369 unwind label %380

369:                                              ; preds = %367
  %.not145 = icmp eq i64 %368, 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 %.not145, label %412, label %370

370:                                              ; preds = %369
  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.36, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %371 unwind label %383

371:                                              ; preds = %370
  %372 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %373 unwind label %385

373:                                              ; preds = %371
  %374 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %372)
          to label %375 unwind label %385

375:                                              ; preds = %373
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %374)
          to label %376 unwind label %385

376:                                              ; preds = %375
  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 %330, label %377, label %390

377:                                              ; preds = %376
  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 %399 unwind label %388

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

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

382:                                              ; preds = %380, %378
  %.pn143 = phi { ptr, i32 } [ %381, %380 ], [ %379, %378 ]
  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 %568

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

385:                                              ; preds = %375, %373, %371
  %386 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %387

387:                                              ; preds = %385, %383
  %.pn146 = phi { ptr, i32 } [ %386, %385 ], [ %384, %383 ]
  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 %411

388:                                              ; preds = %377
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %410

390:                                              ; preds = %376
  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 %391 unwind label %394

391:                                              ; preds = %390
  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 %392 unwind label %396

392:                                              ; preds = %391
  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.64") align 8 %60, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #9
  %393 = 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 %399

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

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

398:                                              ; preds = %396, %394
  %.pn148 = phi { ptr, i32 } [ %397, %396 ], [ %395, %394 ]
  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 %410

399:                                              ; preds = %377, %392
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #9
  %400 = load i64, ptr %56, align 8, !tbaa !18
  %401 = load i64, ptr %31, align 8, !tbaa !18
  %402 = icmp eq i64 %400, %401
  %403 = load i64, ptr %57, align 8
  %404 = icmp eq i64 %403, 1
  %405 = select i1 %402, i1 %404, i1 false
  %406 = zext i1 %405 to i8
  store i8 %406, 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.37)
          to label %407 unwind label %408

407:                                              ; preds = %399
  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 %417

408:                                              ; preds = %399
  %409 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  br label %410

410:                                              ; preds = %408, %398, %388
  %.pn150 = phi { ptr, i32 } [ %409, %408 ], [ %389, %388 ], [ %.pn148, %398 ]
  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 %411

411:                                              ; preds = %410, %387
  %.pn150.pn = phi { ptr, i32 } [ %.pn150, %410 ], [ %.pn146, %387 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  br label %568

412:                                              ; preds = %369
  %413 = load i64, ptr %31, align 8, !tbaa !18
  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 %413, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %414 unwind label %415

414:                                              ; preds = %412
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  br label %417

415:                                              ; preds = %412
  %416 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  br label %568

417:                                              ; preds = %414, %407
  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.29, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %418 unwind label %429

418:                                              ; preds = %417
  %419 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %420 unwind label %431

420:                                              ; preds = %418
  %.not155 = icmp eq i64 %419, 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 %.not155, label %484, label %421

421:                                              ; preds = %420
  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.29, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %422 unwind label %434

422:                                              ; preds = %421
  %423 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %424 unwind label %436

424:                                              ; preds = %422
  %425 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %423)
          to label %426 unwind label %436

426:                                              ; preds = %424
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %425)
          to label %427 unwind label %436

427:                                              ; preds = %426
  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 %330, label %428, label %441

428:                                              ; preds = %427
  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) %32, ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef -1, i64 noundef -1)
          to label %450 unwind label %439

429:                                              ; preds = %417
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %433

431:                                              ; preds = %418
  %432 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %433

433:                                              ; preds = %431, %429
  %.pn153 = phi { ptr, i32 } [ %432, %431 ], [ %430, %429 ]
  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 %568

434:                                              ; preds = %421
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %438

436:                                              ; preds = %426, %424, %422
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  br label %438

438:                                              ; preds = %436, %434
  %.pn166 = phi { ptr, i32 } [ %437, %436 ], [ %435, %434 ]
  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 %483

439:                                              ; preds = %455, %428
  %440 = landingpad { ptr, i32 }
          cleanup
  br label %482

441:                                              ; preds = %427
  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 %442 unwind label %445

442:                                              ; preds = %441
  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 %443 unwind label %447

443:                                              ; preds = %442
  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.64") align 8 %72, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  %444 = 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 %450

445:                                              ; preds = %441
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %449

447:                                              ; preds = %442
  %448 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %71) #9
  br label %449

449:                                              ; preds = %447, %445
  %.pn168 = phi { ptr, i32 } [ %448, %447 ], [ %446, %445 ]
  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 %482

450:                                              ; preds = %428, %443
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #9
  %451 = load i64, ptr %69, align 8, !tbaa !18
  %452 = load i64, ptr %31, align 8, !tbaa !18
  %453 = icmp eq i64 %451, %452
  %454 = zext i1 %453 to i8
  store i8 %454, ptr %73, align 1, !tbaa !9
  invoke void @_ZN5amgcl12preconditionIbA34_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %73, ptr noundef nonnull align 1 dereferenceable(34) @.str.38)
          to label %455 unwind label %464

455:                                              ; preds = %450
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #9
  %456 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #9
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %456)
          to label %.preheader221 unwind label %439

.preheader221:                                    ; preds = %455
  %457 = load i64, ptr %31, align 8, !tbaa !18
  %458 = icmp sgt i64 %457, 0
  %459 = load i64, ptr %32, align 8
  %460 = icmp sgt i64 %459, 0
  %or.cond = select i1 %458, i1 %460, i1 false
  br i1 %or.cond, label %.preheader, label %._crit_edge231

.preheader:                                       ; preds = %.preheader221, %._crit_edge229
  %461 = phi i64 [ %466, %._crit_edge229 ], [ %457, %.preheader221 ]
  %462 = phi i64 [ %467, %._crit_edge229 ], [ %459, %.preheader221 ]
  %.033230 = phi i64 [ %468, %._crit_edge229 ], [ 0, %.preheader221 ]
  %463 = icmp sgt i64 %462, 0
  br i1 %463, label %.lr.ph228, label %._crit_edge229

._crit_edge231:                                   ; preds = %._crit_edge229, %.preheader221
  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 %537

464:                                              ; preds = %450
  %465 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #9
  br label %482

._crit_edge229.loopexit:                          ; preds = %.lr.ph228
  %.pre236 = load i64, ptr %31, align 8, !tbaa !18
  br label %._crit_edge229

._crit_edge229:                                   ; preds = %._crit_edge229.loopexit, %.preheader
  %466 = phi i64 [ %.pre236, %._crit_edge229.loopexit ], [ %461, %.preheader ]
  %467 = phi i64 [ %480, %._crit_edge229.loopexit ], [ %462, %.preheader ]
  %468 = add nuw nsw i64 %.033230, 1
  %469 = icmp slt i64 %468, %466
  br i1 %469, label %.preheader, label %._crit_edge231, !llvm.loop !22

.lr.ph228:                                        ; preds = %.preheader, %.lr.ph228
  %470 = phi i64 [ %480, %.lr.ph228 ], [ %462, %.preheader ]
  %.0227 = phi i64 [ %479, %.lr.ph228 ], [ 0, %.preheader ]
  %471 = mul nsw i64 %470, %.033230
  %472 = add nsw i64 %471, %.0227
  %473 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %472) #9
  %474 = load double, ptr %473, align 8, !tbaa !20
  %475 = load i64, ptr %31, align 8, !tbaa !18
  %476 = mul nsw i64 %475, %.0227
  %477 = add nsw i64 %476, %.033230
  %478 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %477) #9
  store double %474, ptr %478, align 8, !tbaa !20
  %479 = add nuw nsw i64 %.0227, 1
  %480 = load i64, ptr %32, align 8, !tbaa !18
  %481 = icmp slt i64 %479, %480
  br i1 %481, label %.lr.ph228, label %._crit_edge229.loopexit, !llvm.loop !24

482:                                              ; preds = %464, %449, %439
  %.pn170 = phi { ptr, i32 } [ %440, %439 ], [ %465, %464 ], [ %.pn168, %449 ]
  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 %483

483:                                              ; preds = %482, %438
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %482 ], [ %.pn166, %438 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #9
  br label %568

484:                                              ; preds = %420
  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.30, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %485 unwind label %496

485:                                              ; preds = %484
  %486 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %487 unwind label %498

487:                                              ; preds = %485
  %.not158 = icmp eq i64 %486, 0
  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 %.not158, label %537, label %488

488:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 32, 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.30, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %489 unwind label %501

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) %10, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %491 unwind label %503

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

493:                                              ; preds = %491
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %492)
          to label %494 unwind label %503

494:                                              ; preds = %493
  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
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #9
  br i1 %330, label %495, label %508

495:                                              ; preds = %494
  invoke void @_ZN5amgcl2io10read_denseIldEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_SB_RSt6vectorIT0_SaISD_EEll(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef -1, i64 noundef -1)
          to label %517 unwind label %506

496:                                              ; preds = %484
  %497 = landingpad { ptr, i32 }
          cleanup
  br label %500

498:                                              ; preds = %485
  %499 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %500

500:                                              ; preds = %498, %496
  %.pn156 = phi { ptr, i32 } [ %499, %498 ], [ %497, %496 ]
  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 %568

501:                                              ; preds = %488
  %502 = landingpad { ptr, i32 }
          cleanup
  br label %505

503:                                              ; preds = %493, %491, %489
  %504 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %505

505:                                              ; preds = %503, %501
  %.pn159 = phi { ptr, i32 } [ %504, %503 ], [ %502, %501 ]
  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 %536

506:                                              ; preds = %527, %495
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %535

508:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %82) #9
  call void @llvm.lifetime.start.p0(i64 576, ptr nonnull %83) #9
  invoke void @_ZN5amgcl2io9mm_readerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(576) %83, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %509 unwind label %512

509:                                              ; preds = %508
  invoke void @_ZN5amgcl2io9mm_readerclIdEESt5tupleIJmmEERSt6vectorIT_SaIS6_EEll(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %82, ptr noundef nonnull align 8 dereferenceable(576) %83, ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef -1, i64 noundef -1)
          to label %510 unwind label %514

510:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %84) #9
  call void @_ZSt3tieIJllEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.64") align 8 %84, ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %81) #9
  %511 = 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) %84, ptr noundef nonnull align 8 dereferenceable(16) %82) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #9
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %83) #9
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %83) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #9
  br label %517

512:                                              ; preds = %508
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %516

514:                                              ; preds = %509
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5amgcl2io9mm_readerD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %83) #9
  br label %516

516:                                              ; preds = %514, %512
  %.pn161 = phi { ptr, i32 } [ %515, %514 ], [ %513, %512 ]
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %83) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #9
  br label %535

517:                                              ; preds = %495, %510
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %85) #9
  %518 = load i64, ptr %80, align 8, !tbaa !18
  %519 = load i64, ptr %81, align 8
  %520 = mul nsw i64 %519, %518
  %521 = load i64, ptr %31, align 8, !tbaa !18
  %522 = icmp eq i64 %520, %521
  %523 = and i64 %519, -2
  %524 = icmp eq i64 %523, 2
  %525 = and i1 %522, %524
  %526 = zext i1 %525 to i8
  store i8 %526, ptr %85, align 1, !tbaa !9
  invoke void @_ZN5amgcl12preconditionIbA33_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1) %85, ptr noundef nonnull align 1 dereferenceable(33) @.str.39)
          to label %527 unwind label %533

527:                                              ; preds = %517
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #9
  %528 = load i64, ptr %81, align 8, !tbaa !18
  %529 = trunc i64 %528 to i32
  %530 = invoke noundef i32 @_ZN5amgcl10coarsening16rigid_body_modesISt6vectorIdSaIdEEEEiiRKT_RS4_b(i32 noundef %529, ptr noundef nonnull align 8 dereferenceable(24) %79, ptr noundef nonnull align 8 dereferenceable(24) %37, i1 noundef zeroext true)
          to label %531 unwind label %506

531:                                              ; preds = %527
  %532 = sext i32 %530 to i64
  store i64 %532, ptr %32, align 8, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #9
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  br label %537

533:                                              ; preds = %517
  %534 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #9
  br label %535

535:                                              ; preds = %533, %516, %506
  %.pn163 = phi { ptr, i32 } [ %507, %506 ], [ %534, %533 ], [ %.pn161, %516 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #9
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %536

536:                                              ; preds = %535, %505
  %.pn163.pn = phi { ptr, i32 } [ %.pn163, %535 ], [ %.pn159, %505 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  br label %568

537:                                              ; preds = %487, %531, %._crit_edge231
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %86) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %86, ptr noundef nonnull @.str.40, i8 noundef signext 46)
          to label %538 unwind label %558

538:                                              ; preds = %537
  %539 = 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) %15, ptr noundef nonnull align 8 dereferenceable(48) %86, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %540 unwind label %560

540:                                              ; preds = %538
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %86) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %86) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %87) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %87, ptr noundef nonnull @.str.41, i8 noundef signext 46)
          to label %541 unwind label %563

541:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #9
  %542 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  store ptr %542, ptr %88, align 8, !tbaa !11
  %543 = 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) %15, ptr noundef nonnull align 8 dereferenceable(48) %87, ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %544 unwind label %565

544:                                              ; preds = %541
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %87) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %87) #9
  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 24, ptr nonnull %89) #9
  %545 = load i64, ptr %31, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #9
  store double 0.000000e+00, ptr %90, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %545, ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %546 unwind label %571

546:                                              ; preds = %544
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %92) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %95) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %547 unwind label %573

547:                                              ; preds = %546
  %548 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %549 unwind label %575

549:                                              ; preds = %547
  %550 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK5boost15program_options14variable_value2asIbEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %548)
          to label %551 unwind label %575

551:                                              ; preds = %549
  %552 = load i8, ptr %550, align 1, !tbaa !9, !range !16, !noundef !17
  %553 = trunc nuw i8 %552 to i1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #9
  br i1 %553, label %554, label %583

554:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %96) #9
  invoke void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEEC2EPKccS9_(ptr noundef nonnull align 8 dereferenceable(48) %96, ptr noundef nonnull @.str.43, i8 noundef signext 46)
          to label %555 unwind label %578

555:                                              ; preds = %554
  %556 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIA11_cEERSA_RKNS0_11string_pathIS7_NS0_13id_translatorIS7_EEEERKT_(ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef nonnull align 8 dereferenceable(48) %96, ptr noundef nonnull align 1 dereferenceable(11) @.str.44)
          to label %557 unwind label %580

557:                                              ; preds = %555
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %96) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %96) #9
  br label %583

558:                                              ; preds = %537
  %559 = landingpad { ptr, i32 }
          cleanup
  br label %562

560:                                              ; preds = %538
  %561 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %86) #9
  br label %562

562:                                              ; preds = %560, %558
  %.pn173 = phi { ptr, i32 } [ %561, %560 ], [ %559, %558 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %86) #9
  br label %568

563:                                              ; preds = %540
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %567

565:                                              ; preds = %541
  %566 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #9
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %87) #9
  br label %567

567:                                              ; preds = %565, %563
  %.pn175 = phi { ptr, i32 } [ %566, %565 ], [ %564, %563 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %87) #9
  br label %568

568:                                              ; preds = %567, %562, %536, %500, %483, %433, %415, %411, %382, %365, %347, %346
  %.pn175.pn = phi { ptr, i32 } [ %.pn175, %567 ], [ %.pn173, %562 ], [ %.pn170.pn, %483 ], [ %.pn163.pn, %536 ], [ %.pn156, %500 ], [ %.pn153, %433 ], [ %.pn150.pn, %411 ], [ %416, %415 ], [ %.pn143, %382 ], [ %348, %347 ], [ %.pn141, %365 ], [ %.pn137, %346 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %569

569:                                              ; preds = %568, %341
  %.pn175.pn.pn = phi { ptr, i32 } [ %.pn175.pn, %568 ], [ %.pn135, %341 ]
  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 %570

570:                                              ; preds = %569, %336
  %.pn175.pn.pn.pn = phi { ptr, i32 } [ %.pn175.pn.pn, %569 ], [ %.pn133, %336 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #9
  br label %692

571:                                              ; preds = %544
  %572 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #9
  br label %691

573:                                              ; preds = %546
  %574 = landingpad { ptr, i32 }
          cleanup
  br label %577

575:                                              ; preds = %549, %547
  %576 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  br label %577

577:                                              ; preds = %575, %573
  %.pn180 = phi { ptr, i32 } [ %576, %575 ], [ %574, %573 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #9
  br label %690

578:                                              ; preds = %554
  %579 = landingpad { ptr, i32 }
          cleanup
  br label %582

580:                                              ; preds = %555
  %581 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost13property_tree11string_pathINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13id_translatorIS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %96) #9
  br label %582

582:                                              ; preds = %580, %578
  %.pn182 = phi { ptr, i32 } [ %581, %580 ], [ %579, %578 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %96) #9
  br label %690

583:                                              ; preds = %557, %551
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #9
  call void @_ZSt3tieIJlSt6vectorIlSaIlEES2_S0_IdSaIdEEEESt5tupleIJDpRT_EES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.70") align 8 %97, ptr noundef nonnull align 8 dereferenceable(8) %31, 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 32, ptr nonnull %98) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %99) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %584 unwind label %610

584:                                              ; preds = %583
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %585 unwind label %612

585:                                              ; preds = %584
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #9
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %100) #9
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %101) #9
  invoke void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESN_St4lessISN_EEE(ptr noundef nonnull align 8 dereferenceable(96) %101, ptr noundef nonnull align 8 dereferenceable(40) %15)
          to label %586 unwind label %615

586:                                              ; preds = %585
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %102) #9
  call void @_ZN5amgcl6detail12empty_paramsC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102)
  invoke void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESK_RSH_IdSaIdEEEEEERKT_RKNSD_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(224) %100, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(96) %101, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %587 unwind label %617

587:                                              ; preds = %586
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %102) #9
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %101) #9
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %101) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %104) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %588 unwind label %620

588:                                              ; preds = %587
  %589 = call noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %103)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %106) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %590 unwind label %622

590:                                              ; preds = %588
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %591 unwind label %624

591:                                              ; preds = %590
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %107) #9
  invoke void @_ZNK5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSH_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.83") align 8 %107, ptr noundef nonnull align 8 dereferenceable(224) %100, ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %592 unwind label %627

592:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %108) #9
  call void @_ZSt3tieIJidEESt5tupleIJDpRT_EES3_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple.87") align 8 %108, ptr noundef nonnull align 4 dereferenceable(4) %92, ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  %593 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt5tupleIJRiRdEEaSImdEENSt9enable_ifIXcl12__assignableIT_T0_EEERS2_E4typeEOS_IJS5_S6_EE(ptr noundef nonnull align 8 dereferenceable(16) %108, ptr noundef nonnull align 8 dereferenceable(16) %107) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %108) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %110) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %594 unwind label %629

594:                                              ; preds = %592
  %595 = call noundef double @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE3tocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %109)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %112) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %596 unwind label %631

596:                                              ; preds = %594
  %597 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %182, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %598 unwind label %633

598:                                              ; preds = %596
  %.not192 = icmp eq i64 %597, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #9
  br i1 %.not192, label %647, label %599

599:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %115) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %600 unwind label %636

600:                                              ; preds = %599
  invoke void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE10scoped_ticERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.amgcl::profiler<>::scoped_ticker") align 8 %113, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %601 unwind label %638

601:                                              ; preds = %600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %117) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %602 unwind label %641

602:                                              ; preds = %601
  %603 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %10, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %604 unwind label %643

604:                                              ; preds = %602
  %605 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options14variable_value2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v(ptr noundef nonnull align 8 dereferenceable(32) %603)
          to label %606 unwind label %643

606:                                              ; preds = %604
  %607 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %89) #9
  %608 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %89) #9
  invoke void @_ZN5amgcl2io8mm_writeIdEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_mm(ptr noundef nonnull align 8 dereferenceable(32) %605, ptr noundef %607, i64 noundef %608, i64 noundef 1)
          to label %609 unwind label %643

609:                                              ; preds = %606
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #9
  br label %647

610:                                              ; preds = %583
  %611 = landingpad { ptr, i32 }
          cleanup
  br label %614

612:                                              ; preds = %584
  %613 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  br label %614

614:                                              ; preds = %612, %610
  %.pn184 = phi { ptr, i32 } [ %613, %612 ], [ %611, %610 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #9
  br label %689

615:                                              ; preds = %585
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %619

617:                                              ; preds = %586
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %102) #9
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %101) #9
  br label %619

619:                                              ; preds = %617, %615
  %.pn186 = phi { ptr, i32 } [ %618, %617 ], [ %616, %615 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %101) #9
  br label %688

620:                                              ; preds = %587
  %621 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #9
  br label %687

622:                                              ; preds = %588
  %623 = landingpad { ptr, i32 }
          cleanup
  br label %626

624:                                              ; preds = %590
  %625 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  br label %626

626:                                              ; preds = %624, %622
  %.pn188 = phi { ptr, i32 } [ %625, %624 ], [ %623, %622 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  br label %687

627:                                              ; preds = %591
  %628 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #9
  br label %687

629:                                              ; preds = %592
  %630 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  br label %687

631:                                              ; preds = %594
  %632 = landingpad { ptr, i32 }
          cleanup
  br label %635

633:                                              ; preds = %596
  %634 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #9
  br label %635

635:                                              ; preds = %633, %631
  %.pn190 = phi { ptr, i32 } [ %634, %633 ], [ %632, %631 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #9
  br label %687

636:                                              ; preds = %599
  %637 = landingpad { ptr, i32 }
          cleanup
  br label %640

638:                                              ; preds = %600
  %639 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  br label %640

640:                                              ; preds = %638, %636
  %.pn193 = phi { ptr, i32 } [ %639, %638 ], [ %637, %636 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #9
  br label %646

641:                                              ; preds = %601
  %642 = landingpad { ptr, i32 }
          cleanup
  br label %645

643:                                              ; preds = %606, %604, %602
  %644 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  br label %645

645:                                              ; preds = %643, %641
  %.pn195 = phi { ptr, i32 } [ %644, %643 ], [ %642, %641 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @_ZN5amgcl8profilerINS_12perf_counter5clockELj2EE13scoped_tickerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #9
  br label %646

646:                                              ; preds = %645, %640
  %.pn195.pn = phi { ptr, i32 } [ %.pn195, %645 ], [ %.pn193, %640 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #9
  br label %687

647:                                              ; preds = %609, %598
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %118) #9
  %648 = load i64, ptr %31, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %118, i64 noundef %648, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %649 unwind label %682

649:                                              ; preds = %647
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #9
  invoke void @_ZN5amgcl7backend8residualISt5tupleIJRlRSt6vectorIlSaIlEES7_RS4_IdSaIdEEEES9_S9_S9_EEvRKT0_RKT_RKT1_RT2_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(24) %118)
          to label %650 unwind label %684

650:                                              ; preds = %649
  %651 = 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.49)
          to label %652 unwind label %684

652:                                              ; preds = %650
  %653 = load i32, ptr %92, align 4, !tbaa !5
  %654 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %651, i32 noundef %653)
          to label %655 unwind label %684

655:                                              ; preds = %652
  %656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %654, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %657 unwind label %684

657:                                              ; preds = %655
  %658 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %656, ptr noundef nonnull @.str.50)
          to label %659 unwind label %684

659:                                              ; preds = %657
  %660 = load double, ptr %93, align 8, !tbaa !20
  %661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %658, double noundef %660)
          to label %662 unwind label %684

662:                                              ; preds = %659
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %661, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %664 unwind label %684

664:                                              ; preds = %662
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef nonnull @.str.51)
          to label %666 unwind label %684

666:                                              ; preds = %664
  %667 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %118, ptr noundef nonnull align 8 dereferenceable(24) %118)
          to label %668 unwind label %684

668:                                              ; preds = %666
  %669 = call double @sqrt(double noundef %667) #9
  %670 = invoke noundef double @_ZN5amgcl7backend13inner_productISt6vectorIdSaIdEES4_EENS_4math18inner_product_implINS0_10value_typeIT_vE4typeEvE11return_typeERKS8_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(24) %36)
          to label %671 unwind label %684

671:                                              ; preds = %668
  %672 = call double @sqrt(double noundef %670) #9
  %673 = fdiv double %669, %672
  %674 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %665, double noundef %673)
          to label %675 unwind label %684

675:                                              ; preds = %671
  %676 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5amgcllsERSoRNS_8profilerINS_12perf_counter5clockELj2EEE(ptr noundef nonnull align 8 dereferenceable(8) %674, ptr noundef nonnull align 8 dereferenceable(128) @_ZN5amgcl4profE)
          to label %677 unwind label %684

677:                                              ; preds = %675
  %678 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %676, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %679 unwind label %684

679:                                              ; preds = %677
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %118) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %118) #9
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(224) %100) #9
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(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 %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br label %680

680:                                              ; preds = %300, %679
  %.034 = phi i32 [ 0, %679 ], [ 1, %300 ]
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %15) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #9
  br label %681

681:                                              ; preds = %192, %680
  %.1 = phi i32 [ %.034, %680 ], [ 0, %192 ]
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %10) #9
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %10) #9
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %9) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %9) #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 %.1

682:                                              ; preds = %647
  %683 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #9
  br label %686

684:                                              ; preds = %677, %675, %671, %668, %666, %664, %662, %659, %657, %655, %652, %650, %649
  %685 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %118) #9
  br label %686

686:                                              ; preds = %684, %682
  %.pn198 = phi { ptr, i32 } [ %685, %684 ], [ %683, %682 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %118) #9
  br label %687

687:                                              ; preds = %686, %646, %635, %629, %627, %626, %620
  %.pn198.pn = phi { ptr, i32 } [ %.pn198, %686 ], [ %.pn195.pn, %646 ], [ %.pn190, %635 ], [ %630, %629 ], [ %628, %627 ], [ %.pn188, %626 ], [ %621, %620 ]
  call void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(224) %100) #9
  br label %688

688:                                              ; preds = %687, %619
  %.pn198.pn.pn = phi { ptr, i32 } [ %.pn198.pn, %687 ], [ %.pn186, %619 ]
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %100) #9
  br label %689

689:                                              ; preds = %688, %614
  %.pn198.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn, %688 ], [ %.pn184, %614 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  br label %690

690:                                              ; preds = %689, %582, %577
  %.pn198.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn, %689 ], [ %.pn182, %582 ], [ %.pn180, %577 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #9
  br label %691

691:                                              ; preds = %690, %571
  %.pn198.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn.pn, %690 ], [ %572, %571 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #9
  br label %692

692:                                              ; preds = %691, %570
  %.pn198.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn.pn.pn.pn, %691 ], [ %.pn175.pn.pn.pn, %570 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(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 %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br label %693

693:                                              ; preds = %284, %289, %692, %313, %312, %279, %261, %253
  %.pn206.pn = phi { ptr, i32 } [ %314, %313 ], [ %.pn198.pn.pn.pn.pn.pn.pn, %692 ], [ %.pn128.pn.pn, %312 ], [ %.pn122, %279 ], [ %.pn119.pn, %261 ], [ %.pn116, %253 ], [ %290, %289 ], [ %.pn125, %284 ]
  call void @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %15) #9
  br label %694

694:                                              ; preds = %693, %247
  %.pn206.pn.pn = phi { ptr, i32 } [ %.pn206.pn, %693 ], [ %248, %247 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #9
  br label %695

695:                                              ; preds = %.loopexit, %.loopexit.split-lp, %694, %227, %221, %220
  %.pn211 = phi { ptr, i32 } [ %222, %221 ], [ %.pn206.pn.pn, %694 ], [ %.pn114, %227 ], [ %.pn111.pn, %220 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN5boost15program_options13variables_mapD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %10) #9
  br label %696

696:                                              ; preds = %695, %211
  %.pn211.pn = phi { ptr, i32 } [ %.pn211, %695 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %10) #9
  br label %697

697:                                              ; preds = %696, %209
  %.pn211.pn.pn = phi { ptr, i32 } [ %.pn211.pn, %696 ], [ %210, %209 ]
  call void @_ZN5boost15program_options30positional_options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %9) #9
  br label %698

698:                                              ; preds = %697, %207
  %.pn211.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn, %697 ], [ %208, %207 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %9) #9
  br label %699

699:                                              ; preds = %698, %206
  %.pn211.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn.pn, %698 ], [ %.pn108.pn, %206 ]
  call void @_ZN5boost15program_options19options_descriptionD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %3) #9
  br label %700

700:                                              ; preds = %699, %198
  %.pn211.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn.pn.pn, %699 ], [ %.pn, %198 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %3) #9
  resume { ptr, i32 } %.pn211.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

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 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 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.64") 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 @_ZN5amgcl12preconditionIbA34_cEEvRKT_RKT0_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(34)) local_unnamed_addr #3

; 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 noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 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 void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5amgcl10coarsening16rigid_body_modesISt6vectorIdSaIdEEEEiiRKT_RS4_b(i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) local_unnamed_addr #3

; 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 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: 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 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: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_St4lessIS7_EE3putIA11_cEERSA_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(11)) local_unnamed_addr #6 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.70") 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: 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: mustprogress uwtable
declare dso_local void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsC2ERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESN_St4lessISN_EEE(ptr noundef nonnull align 8 dereferenceable(96), 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 @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEC2ISt5tupleIJRlRSt6vectorIlSaIlEESK_RSH_IdSaIdEEEEEERKT_RKNSD_6paramsERKNS_6detail12empty_paramsE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEE6paramsD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) 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 void @_ZNK5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEEclISt6vectorIdSaIdEERSH_EESt5tupleIJmdEERKT_OT0_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple.83") align 8, ptr noundef nonnull align 8 dereferenceable(224), 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.87") 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 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 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 uwtable
declare dso_local void @_ZN5amgcl7backend8residualISt5tupleIJRlRSt6vectorIlSaIlEES7_RS4_IdSaIdEEEES9_S9_S9_EEvRKT0_RKT_RKT1_RT2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), 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 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

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 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 nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #8

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5amgcl15deflated_solverINS_7runtime14preconditionerINS_7backend7builtinIdllEEEENS1_6solver7wrapperIS5_NS_6solver6detail21default_inner_productEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #5 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 = !{i8 0, i8 2}
!17 = !{}
!18 = !{!19, !19, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"double", !7, i64 0}
!22 = distinct !{!22, !14, !23}
!23 = !{!"llvm.loop.unswitch.partial.disable"}
!24 = distinct !{!24, !14}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass