; LLVM IR from ERGO-Code/HiGHS :: src/mip (HighsDomain)

; 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"

%"struct.HighsDomain::ConflictSet::LocalDomChg" = type { i32, %struct.HighsDomainChange }
%struct.HighsDomainChange = type { double, i32, i32 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.395" = type { ptr }
%"struct.std::pair.402" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"class.HighsDomain::ConflictSet" = type { ptr, ptr, %"class.std::set.374", %"class.std::set.374", %"class.std::vector.380", %"class.std::vector.385", %"class.std::vector.390" }
%"class.std::set.374" = type { %"class.std::_Rb_tree.375" }
%"class.std::_Rb_tree.375" = type { %"struct.std::_Rb_tree<HighsDomain::ConflictSet::LocalDomChg, HighsDomain::ConflictSet::LocalDomChg, std::_Identity<HighsDomain::ConflictSet::LocalDomChg>, std::less<HighsDomain::ConflictSet::LocalDomChg>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HighsDomain::ConflictSet::LocalDomChg, HighsDomain::ConflictSet::LocalDomChg, std::_Identity<HighsDomain::ConflictSet::LocalDomChg>, std::less<HighsDomain::ConflictSet::LocalDomChg>>::_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.380" = type { %"struct.std::_Vector_base.381" }
%"struct.std::_Vector_base.381" = type { %"struct.std::_Vector_base<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>, std::allocator<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>, std::allocator<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>, std::allocator<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>, std::allocator<std::_Rb_tree_const_iterator<HighsDomain::ConflictSet::LocalDomChg>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.385" = type { %"struct.std::_Vector_base.386" }
%"struct.std::_Vector_base.386" = type { %"struct.std::_Vector_base<HighsDomain::ConflictSet::LocalDomChg, std::allocator<HighsDomain::ConflictSet::LocalDomChg>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ConflictSet::LocalDomChg, std::allocator<HighsDomain::ConflictSet::LocalDomChg>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ConflictSet::LocalDomChg, std::allocator<HighsDomain::ConflictSet::LocalDomChg>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ConflictSet::LocalDomChg, std::allocator<HighsDomain::ConflictSet::LocalDomChg>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.390" = type { %"struct.std::_Vector_base.391" }
%"struct.std::_Vector_base.391" = type { %"struct.std::_Vector_base<HighsDomain::ConflictSet::ResolveCandidate, std::allocator<HighsDomain::ConflictSet::ResolveCandidate>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ConflictSet::ResolveCandidate, std::allocator<HighsDomain::ConflictSet::ResolveCandidate>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ConflictSet::ResolveCandidate, std::allocator<HighsDomain::ConflictSet::ResolveCandidate>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ConflictSet::ResolveCandidate, std::allocator<HighsDomain::ConflictSet::ResolveCandidate>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsDomain = type { %"class.std::vector", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector.18", %"class.std::vector.23", %"class.std::vector.28", %"class.std::vector.28", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector", %"class.std::vector.3", %"struct.HighsDomain::ObjectivePropagation", ptr, %"class.std::deque", %"class.std::deque.51", i8, %"struct.HighsDomain::Reason", i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %class.HighsHashTable, i8, %"class.std::vector.33", %"class.std::vector.33" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomainChange, std::allocator<HighsDomainChange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::Reason, std::allocator<HighsDomain::Reason>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<double, int>, std::allocator<std::pair<double, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HighsDomain::ObjectivePropagation" = type { ptr, ptr, ptr, %class.HighsCDouble, i32, double, i8, %"class.std::vector.38", %"class.std::vector.8", %"class.std::vector.33", %"class.std::vector.43" }
%class.HighsCDouble = type { double, double }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::ObjectiveContribution, std::allocator<HighsDomain::ObjectivePropagation::ObjectiveContribution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ObjectivePropagation::PartitionCliqueData, std::allocator<HighsDomain::ObjectivePropagation::PartitionCliqueData>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl" }
%"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl" = type { %"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl_data" }
%"struct.std::_Deque_base<HighsDomain::CutpoolPropagation, std::allocator<HighsDomain::CutpoolPropagation>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.std::deque.51" = type { %"class.std::_Deque_base.52" }
%"class.std::_Deque_base.52" = type { %"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl" }
%"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl" = type { %"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl_data" }
%"struct.std::_Deque_base<HighsDomain::ConflictPoolPropagation, std::allocator<HighsDomain::ConflictPoolPropagation>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator.56", %"struct.std::_Deque_iterator.56" }
%"struct.std::_Deque_iterator.56" = type { ptr, ptr, ptr, ptr }
%"struct.HighsDomain::Reason" = type { i32, i32 }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable = type { %"class.std::unique_ptr", %"class.std::unique_ptr.59", i64, i64, i64 }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.58" }
%"struct.std::_Head_base.58" = type { ptr }
%"class.std::unique_ptr.59" = type { %"struct.std::__uniq_ptr_data.60" }
%"struct.std::__uniq_ptr_data.60" = type { %"class.std::__uniq_ptr_impl.61" }
%"class.std::__uniq_ptr_impl.61" = type { %"class.std::tuple.62" }
%"class.std::tuple.62" = type { %"struct.std::_Tuple_impl.63" }
%"struct.std::_Tuple_impl.63" = type { %"struct.std::_Head_base.66" }
%"struct.std::_Head_base.66" = type { ptr }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.std::pair.358" = type <{ double, i32, [4 x i8] }>
%class.HighsMipSolver = type { ptr, ptr, ptr, ptr, i32, %"class.std::vector.33", double, double, double, double, double, double, double, i64, i64, double, ptr, %"class.std::vector.67", i8, i32, i32, ptr, ptr, ptr, ptr, %"class.std::unique_ptr.72", %class.HighsMipAnalysis, %class.HighsTimer }
%"class.std::vector.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsObjectiveSolution, std::allocator<HighsObjectiveSolution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr.72" = type { %"struct.std::__uniq_ptr_data.73" }
%"struct.std::__uniq_ptr_data.73" = type { %"class.std::__uniq_ptr_impl.74" }
%"class.std::__uniq_ptr_impl.74" = type { %"class.std::tuple.75" }
%"class.std::tuple.75" = type { %"struct.std::_Tuple_impl.76" }
%"struct.std::_Tuple_impl.76" = type { %"struct.std::_Head_base.79" }
%"struct.std::_Head_base.79" = type { ptr }
%class.HighsMipAnalysis = type { ptr, %"class.std::__cxx11::basic_string", %struct.HighsTimerClock, i8, %"class.std::vector.33", %"class.std::vector.33" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.HighsTimerClock = type { ptr, %"class.std::vector.3" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.80", i32, i32, i32, [4 x i8] }>
%"class.std::vector.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsMipSolverData = type <{ ptr, %class.HighsCutPool, %class.HighsConflictPool, %class.HighsDomain, %class.HighsLpRelaxation, %class.HighsPseudocost, %class.HighsCliqueTable, %class.HighsImplications, %class.HighsPrimalHeuristics, %class.HighsRedcostFixing, %class.HighsObjectiveFunction, %"class.presolve::HighsPostsolveStack", i32, [4 x i8], %class.HighsLp, i8, i8, i8, i8, i32, i8, [3 x i8], i32, i32, i32, i32, [4 x i8], %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %struct.HighsSymmetries, %"class.std::shared_ptr.324", double, double, double, i64, %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", double, %struct.HighsBasis, double, i32, i32, %class.HighsCDouble, double, double, double, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, [4 x i8], double, double, double, double, %"class.std::vector.33", %class.HighsNodeQueue, %struct.HighsPrimaDualIntegral, [8 x i8] }>
%class.HighsCutPool = type { %class.HighsDynamicRowMatrix, %"class.std::vector.33", %"class.std::vector.98", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector", %"class.std::unordered_multimap", %"class.std::vector.122", %"class.std::set", double, double, double, i32, i32, i32, i32, i32, %"class.std::vector.3", %"class.std::vector.127" }
%class.HighsDynamicRowMatrix = type { %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector", %"class.std::set", %"class.std::vector.3" }
%"class.std::vector.98" = type { %"struct.std::_Vector_base.99" }
%"struct.std::_Vector_base.99" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.103" }
%"class.std::_Hashtable.103" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector.122" = type { %"struct.std::_Vector_base.123" }
%"struct.std::_Vector_base.123" = type { %"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::CutpoolPropagation *, std::allocator<HighsDomain::CutpoolPropagation *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.127" = type { %"struct.std::_Vector_base.128" }
%"struct.std::_Vector_base.128" = type { %"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsConflictPool = type { i32, i32, %"class.std::vector.3", %"class.std::vector.98", %"class.std::vector.132", %"class.std::vector.13", %"class.std::vector.8", %"class.std::set", %"class.std::vector.3", %"class.std::vector.137" }
%"class.std::vector.132" = type { %"struct.std::_Vector_base.133" }
%"struct.std::_Vector_base.133" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.137" = type { %"struct.std::_Vector_base.138" }
%"struct.std::_Vector_base.138" = type { %"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsDomain::ConflictPoolPropagation *, std::allocator<HighsDomain::ConflictPoolPropagation *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsLpRelaxation = type <{ ptr, %class.Highs, %"class.std::vector.244", %"class.std::vector.127", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %class.HVectorBase, %class.HighsSparseVectorSum, double, i8, [7 x i8], double, %"class.std::shared_ptr", i8, [7 x i8], i64, i64, double, i64, i64, i32, i32, i8, [7 x i8] }>
%class.Highs = type { ptr, %struct.HighsSolution, %struct.HighsBasis, %struct.ICrashInfo, %class.HighsModel, %"class.std::vector.158", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.67", i32, i32, i8, double, %"class.std::vector.33", %"class.std::vector.33", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.HighsSolution = type { i8, i8, %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33" }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.153", %"class.std::vector.33", double }
%"class.std::vector.153" = type { %"struct.std::_Vector_base.154" }
%"struct.std::_Vector_base.154" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl" = type { %"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ICrashIterationDetails, std::allocator<ICrashIterationDetails>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.158" = type { %"struct.std::_Vector_base.159" }
%"struct.std::_Vector_base.159" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsLinearObjective, std::allocator<HighsLinearObjective>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsModel = type { %class.HighsLp, %class.HighsHessian }
%class.HighsHessian = type { i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33" }
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.163", %struct.HighsCallbackDataOut, %struct.HighsCallbackDataIn }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::vector.163" = 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 }>
%struct.HighsCallbackDataOut = type { i32, double, i32, i32, i32, double, i64, i64, double, double, double, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32 }
%struct.HighsCallbackDataIn = type { i32, ptr }
%class.HighsOptions = type <{ %struct.HighsOptionsStruct, %"class.std::vector.167", i32, [4 x i8] }>
%struct.HighsOptionsStruct = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i8, i8, i32, i32, double, i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, double, double, double, double, double, double, double, double, double, double, double, i8, i8, i8, i8, i32, double, i8, i8, %"class.std::__cxx11::basic_string", double, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i8, i8, %"class.std::__cxx11::basic_string", i8, i32, %struct.HighsLogOptions }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::vector.167" = type { %"struct.std::_Vector_base.168" }
%"struct.std::_Vector_base.168" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<OptionRecord *, std::allocator<OptionRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsInfo = type { ptr, %struct.HighsInfoStruct, %"class.std::vector.172" }
%struct.HighsInfoStruct = type { i8, i64, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, i32, double, double, i32, double, double, double, double, double }
%"class.std::vector.172" = type { %"struct.std::_Vector_base.173" }
%"struct.std::_Vector_base.173" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl" = type { %"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<InfoRecord *, std::allocator<InfoRecord *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsRanging = type { i8, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord }
%struct.HighsRangingRecord = type { %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3" }
%class.HighsIis = type { i8, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.177" }
%"class.std::vector.177" = type { %"struct.std::_Vector_base.178" }
%"struct.std::_Vector_base.178" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsIisInfo, std::allocator<HighsIisInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33" }
%class.HEkk = type { ptr, ptr, ptr, %class.HighsSimplexAnalysis, %class.HighsLp, %"class.std::__cxx11::basic_string", %struct.HighsSimplexStatus, [3 x i8], %struct.HighsSimplexInfo, i32, %struct.SimplexBasis, %class.HighsHashTable.205, %class.HighsRandom, %"class.std::vector.33", %"class.std::vector.33", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector.3", %"class.std::vector.33", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.224", %"class.std::vector.33", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.182", %"class.std::vector.182", ptr, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %struct.HighsLogOptions, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, double, i32, i32, double, double, i32, double, double, i32, double, double, double, double, double, double, double, double, double, double, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8], %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, double, double, i32, double, double, i32, i32, double, double, %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.187", %"class.std::unique_ptr.192", i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, i32, i32, double, double, double, i8, double, double, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, i32, i32, [10 x %"struct.HighsSimplexAnalysis::AnIterOpRec"], i32, i32, [22 x %"struct.HighsSimplexAnalysis::AnIterTraceRec"], [12 x i32], [3 x i32], [4 x i8], %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution, %struct.HighsValueDistribution }
%"class.std::vector.182" = type { %"struct.std::_Vector_base.183" }
%"struct.std::_Vector_base.183" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsTimerClock, std::allocator<HighsTimerClock>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.187" = type { %"struct.std::_Vector_base.188" }
%"struct.std::_Vector_base.188" = type { %"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_Vector_impl" }
%"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_Vector_impl" = type { %"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TranStageAnalysis, std::allocator<TranStageAnalysis>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr.192" = type { %"struct.std::__uniq_ptr_data.193" }
%"struct.std::__uniq_ptr_data.193" = type { %"class.std::__uniq_ptr_impl.194" }
%"class.std::__uniq_ptr_impl.194" = type { %"class.std::tuple.195" }
%"class.std::tuple.195" = type { %"struct.std::_Tuple_impl.196" }
%"struct.std::_Tuple_impl.196" = type { %"struct.std::_Head_base.199" }
%"struct.std::_Head_base.199" = type { ptr }
%"struct.HighsSimplexAnalysis::AnIterOpRec" = type { double, double, i32, i32, i32, i32, double, i32, %"class.std::__cxx11::basic_string", %struct.HighsValueDistribution }
%"struct.HighsSimplexAnalysis::AnIterTraceRec" = type { double, double, [10 x double], double, i32, i32, i32 }
%struct.HighsValueDistribution = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i32, [4 x i8], double, double, %"class.std::vector.33", %"class.std::vector.3", i32, [4 x i8] }>
%struct.HighsSimplexStatus = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.HighsSimplexInfo = type <{ %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", i32, i32, i32, i32, double, double, double, double, i32, i32, double, double, double, double, double, double, double, double, double, double, i8, [7 x i8], double, double, i32, [4 x i8], double, double, double, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, [4 x i8], double, double, i32, [4 x i8], double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, i32, [4 x i8] }>
%struct.SimplexBasis = type { %"class.std::vector.3", %"class.std::vector.200", %"class.std::vector.200", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.200" = type { %"struct.std::_Vector_base.201" }
%"struct.std::_Vector_base.201" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable.205 = type { %"class.std::unique_ptr.206", %"class.std::unique_ptr.59", i64, i64, i64 }
%"class.std::unique_ptr.206" = type { %"struct.std::__uniq_ptr_data.207" }
%"struct.std::__uniq_ptr_data.207" = type { %"class.std::__uniq_ptr_impl.208" }
%"class.std::__uniq_ptr_impl.208" = type { %"class.std::tuple.209" }
%"class.std::tuple.209" = type { %"struct.std::_Tuple_impl.210" }
%"struct.std::_Tuple_impl.210" = type { %"struct.std::_Head_base.213" }
%"struct.std::_Head_base.213" = type { ptr }
%class.HighsRandom = type { i64 }
%class.HSimplexNla = type { ptr, ptr, ptr, ptr, ptr, ptr, %class.HFactor, i8, double, %struct.ProductFormUpdate, %struct.SimplexIterate }
%class.HFactor = type { double, double, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.214", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.222", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.200", double }
%"class.std::unique_ptr.214" = type { %"struct.std::__uniq_ptr_data.215" }
%"struct.std::__uniq_ptr_data.215" = type { %"class.std::__uniq_ptr_impl.216" }
%"class.std::__uniq_ptr_impl.216" = type { %"class.std::tuple.217" }
%"class.std::tuple.217" = type { %"struct.std::_Tuple_impl.218" }
%"struct.std::_Tuple_impl.218" = type { %"struct.std::_Head_base.221" }
%"struct.std::_Head_base.221" = type { ptr }
%"class.std::vector.222" = type { %"struct.std::_Vector_base.223" }
%"struct.std::_Vector_base.223" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.33" }
%struct.InvertibleRepresentation = type { %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.33" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.200" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.33" }
%"class.std::vector.224" = type { %"struct.std::_Vector_base.225" }
%"struct.std::_Vector_base.225" = type { %"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsSimplexBadBasisChangeRecord, std::allocator<HighsSimplexBadBasisChangeRecord>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsSimplexStats = type { i8, i32, i32, i32, i32, double, double, double, double }
%struct.HighsPresolveLog = type { %"class.std::vector.229" }
%"class.std::vector.229" = type { %"struct.std::_Vector_base.230" }
%"struct.std::_Vector_base.230" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsPresolveRuleLog, std::allocator<HighsPresolveRuleLog>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.PresolveComponent = type { %class.HighsComponent.base, %struct.PresolveComponentInfo, %struct.PresolveComponentData, ptr, ptr, i32, i32 }
%class.HighsComponent.base = type <{ ptr, %struct.HighsComponentInfo, %struct.HighsComponentData, %struct.HighsComponentOptions }>
%struct.HighsComponentInfo = type { i8 }
%struct.HighsComponentData = type { i8 }
%struct.HighsComponentOptions = type { i8 }
%struct.PresolveComponentInfo = type { ptr, %struct.HighsComponentInfo, i32, i32, i32, double, double }
%struct.PresolveComponentData = type { ptr, %struct.HighsComponentData, %class.HighsLp, %"class.presolve::HighsPostsolveStack", %struct.HighsSolution, %struct.HighsBasis, %struct.HighsPresolveLog }
%"class.std::vector.244" = type { %"struct.std::_Vector_base.245" }
%"struct.std::_Vector_base.245" = type { %"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsLpRelaxation::LpRow, std::allocator<HighsLpRelaxation::LpRow>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HVectorBase = type { i32, i32, %"class.std::vector.3", %"class.std::vector.33", double, %"class.std::vector.222", %"class.std::vector.3", ptr, i8, i32, %"class.std::vector.3", %"class.std::vector.33" }
%class.HighsSparseVectorSum = type { %"class.std::vector.28", %"class.std::vector.3" }
%"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.HighsPseudocost = type { %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", double, double, double, double, i64, i64, i64, i32, double }
%class.HighsCliqueTable = type { %"class.std::vector.249", %"class.std::vector.254", %"class.std::vector.259", %class.HighsHashTable.264, %"class.std::set", %"class.std::vector.3", %"class.std::vector.273", %"class.std::vector.3", %"class.std::vector.249", %"class.std::vector.3", %"class.std::vector.278", %"class.std::vector.3", %"class.std::vector.283", %"class.std::vector", %"class.std::vector", %"class.std::vector.132", %"class.std::vector.3", %class.HighsRandom, i32, i32, i32, i32, i8, i64 }
%"class.std::vector.254" = type { %"struct.std::_Vector_base.255" }
%"struct.std::_Vector_base.255" = type { %"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsHashTree<int, int>, std::allocator<HighsHashTree<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.259" = type { %"struct.std::_Vector_base.260" }
%"struct.std::_Vector_base.260" = type { %"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsHashTree<int>, std::allocator<HighsHashTree<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable.264 = type { %"class.std::unique_ptr.265", %"class.std::unique_ptr.59", i64, i64, i64 }
%"class.std::unique_ptr.265" = type { %"struct.std::__uniq_ptr_data.266" }
%"struct.std::__uniq_ptr_data.266" = type { %"class.std::__uniq_ptr_impl.267" }
%"class.std::__uniq_ptr_impl.267" = type { %"class.std::tuple.268" }
%"class.std::tuple.268" = type { %"struct.std::_Tuple_impl.269" }
%"struct.std::_Tuple_impl.269" = type { %"struct.std::_Head_base.272" }
%"struct.std::_Head_base.272" = type { ptr }
%"class.std::vector.273" = type { %"struct.std::_Vector_base.274" }
%"struct.std::_Vector_base.274" = type { %"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::Clique, std::allocator<HighsCliqueTable::Clique>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.249" = type { %"struct.std::_Vector_base.250" }
%"struct.std::_Vector_base.250" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::CliqueVar, std::allocator<HighsCliqueTable::CliqueVar>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.278" = type { %"struct.std::_Vector_base.279" }
%"struct.std::_Vector_base.279" = type { %"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCliqueTable::Substitution, std::allocator<HighsCliqueTable::Substitution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.283" = type { %"struct.std::_Vector_base.284" }
%"struct.std::_Vector_base.284" = type { %"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, HighsCliqueTable::CliqueVar>, std::allocator<std::pair<int, HighsCliqueTable::CliqueVar>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsImplications = type { i32, %"class.std::vector.288", i64, %"class.std::vector.293", %"class.std::vector.293", ptr, %"class.std::vector.298", %"class.std::vector", %"class.std::function.303" }
%"class.std::vector.288" = type { %"struct.std::_Vector_base.289" }
%"struct.std::_Vector_base.289" = type { %"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsImplications::Implics, std::allocator<HighsImplications::Implics>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.293" = type { %"struct.std::_Vector_base.294" }
%"struct.std::_Vector_base.294" = type { %"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsHashTree<int, HighsImplications::VarBound>, std::allocator<HighsHashTree<int, HighsImplications::VarBound>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.298" = type { %"struct.std::_Vector_base.299" }
%"struct.std::_Vector_base.299" = type { %"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsSubstitution, std::allocator<HighsSubstitution>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.303" = type { %"class.std::_Function_base", ptr }
%class.HighsPrimalHeuristics = type { ptr, i64, i64, i64, i64, double, i32, double, i32, %class.HighsRandom, %"class.std::vector.3" }
%class.HighsRedcostFixing = type { %"class.std::vector.305", %"class.std::vector.305" }
%"class.std::vector.305" = type { %"struct.std::_Vector_base.306" }
%"struct.std::_Vector_base.306" = type { %"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::multimap<double, int>, std::allocator<std::multimap<double, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsObjectiveFunction = type { ptr, double, i32, i32, %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.3" }
%"class.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.234", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector.239", %"class.std::vector.239", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector.222", i64 }
%"class.std::vector.234" = type { %"struct.std::_Vector_base.235" }
%"struct.std::_Vector_base.235" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>, std::allocator<std::pair<presolve::HighsPostsolveStack::ReductionType, unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.239" = type { %"struct.std::_Vector_base.240" }
%"struct.std::_Vector_base.240" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsLp = type { i32, i32, %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.80", %"class.std::vector.80", %"class.std::vector.85", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.85" = type { %"struct.std::_Vector_base.86" }
%"struct.std::_Vector_base.86" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsNameHash = type { %"class.std::unordered_map" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%struct.HighsScale = type { i32, i8, i32, i32, double, %"class.std::vector.33", %"class.std::vector.33" }
%struct.HighsLpMods = type { %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.85", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.3", %"class.std::vector.33", %"class.std::vector.33", %"class.std::vector.33" }
%struct.HighsSymmetries = type { %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.310", %class.HighsHashTable.315, i32, i32 }
%"class.std::vector.310" = type { %"struct.std::_Vector_base.311" }
%"struct.std::_Vector_base.311" = type { %"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsOrbitopeMatrix, std::allocator<HighsOrbitopeMatrix>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHashTable.315 = type { %"class.std::unique_ptr.316", %"class.std::unique_ptr.59", i64, i64, i64 }
%"class.std::unique_ptr.316" = type { %"struct.std::__uniq_ptr_data.317" }
%"struct.std::__uniq_ptr_data.317" = type { %"class.std::__uniq_ptr_impl.318" }
%"class.std::__uniq_ptr_impl.318" = type { %"class.std::tuple.319" }
%"class.std::tuple.319" = type { %"struct.std::_Tuple_impl.320" }
%"struct.std::_Tuple_impl.320" = type { %"struct.std::_Head_base.323" }
%"struct.std::_Head_base.323" = type { ptr }
%"class.std::shared_ptr.324" = type { %"class.std::__shared_ptr.325" }
%"class.std::__shared_ptr.325" = type { ptr, %"class.std::__shared_count" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.148", %"class.std::vector.148" }
%"class.std::vector.148" = type { %"struct.std::_Vector_base.149" }
%"struct.std::_Vector_base.149" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsNodeQueue = type <{ %"class.std::unique_ptr.327", %"class.std::vector.335", %"class.std::priority_queue", %"class.std::unique_ptr.345", %"class.std::unique_ptr.345", i64, i64, i64, i64, i64, i64, i64, double, i32, [4 x i8] }>
%"class.std::unique_ptr.327" = type { %"struct.std::__uniq_ptr_data.328" }
%"struct.std::__uniq_ptr_data.328" = type { %"class.std::__uniq_ptr_impl.329" }
%"class.std::__uniq_ptr_impl.329" = type { %"class.std::tuple.330" }
%"class.std::tuple.330" = type { %"struct.std::_Tuple_impl.331" }
%"struct.std::_Tuple_impl.331" = type { %"struct.std::_Head_base.334" }
%"struct.std::_Head_base.334" = type { ptr }
%"class.std::vector.335" = type { %"struct.std::_Vector_base.336" }
%"struct.std::_Vector_base.336" = type { %"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsNodeQueue::OpenNode, std::allocator<HighsNodeQueue::OpenNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::priority_queue" = type <{ %"class.std::vector.340", [8 x i8] }>
%"class.std::vector.340" = type { %"struct.std::_Vector_base.341" }
%"struct.std::_Vector_base.341" = 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::unique_ptr.345" = type { %"struct.std::__uniq_ptr_data.346" }
%"struct.std::__uniq_ptr_data.346" = type { %"class.std::__uniq_ptr_impl.347" }
%"class.std::__uniq_ptr_impl.347" = type { %"class.std::tuple.348" }
%"class.std::tuple.348" = type { %"struct.std::_Tuple_impl.349" }
%"struct.std::_Tuple_impl.349" = type { %"struct.std::_Head_base.352" }
%"struct.std::_Head_base.352" = type { ptr }
%struct.HighsPrimaDualIntegral = type { double, double, double, double, double }

@.str.52 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [21 x i8], align 1
@__PRETTY_FUNCTION__._ZN11HighsDomain11ConflictSet12resolveDepthERSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EEiiib = external hidden unnamed_addr constant [109 x i8], align 1

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

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN11HighsDomain11ConflictSet12resolveDepthERSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EEiiib(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(48) %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i1 noundef zeroext %5) #5 align 2 {
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca %"struct.HighsDomain::ConflictSet::LocalDomChg", align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %18 = alloca %"struct.HighsDomain::ConflictSet::LocalDomChg", align 8
  %19 = alloca i8, align 1
  %20 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %21 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %22 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %25 = alloca %"struct.HighsDomain::ConflictSet::LocalDomChg", align 8
  %26 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %27 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.395", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.395", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"struct.std::pair.402", align 8
  %33 = alloca { ptr, i8 }, align 8
  %34 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store i32 %2, ptr %10, align 4, !tbaa !9
  store i32 %3, ptr %11, align 4, !tbaa !9
  store i32 %4, ptr %12, align 4, !tbaa !9
  %35 = zext i1 %5 to i8
  store i8 %35, ptr %13, align 1, !tbaa !11
  %36 = load ptr, ptr %8, align 8
  call void @_ZN11HighsDomain11ConflictSet10clearQueueEv(ptr noundef nonnull align 8 dereferenceable(184) %36)
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #7
  %37 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %14, i32 0, i32 0
  %38 = load i32, ptr %10, align 4, !tbaa !9
  %39 = icmp eq i32 %38, 0
  br i1 %39, label %40, label %41

40:                                               ; preds = %6
  br label %51

41:                                               ; preds = %6
  %42 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %43 = load ptr, ptr %42, align 8, !tbaa !13
  %44 = getelementptr inbounds %class.HighsDomain, ptr %43, i32 0, i32 22
  %45 = load i32, ptr %10, align 4, !tbaa !9
  %46 = sub nsw i32 %45, 1
  %47 = sext i32 %46 to i64
  %48 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %47) #7
  %49 = load i32, ptr %48, align 4, !tbaa !9
  %50 = add nsw i32 %49, 1
  br label %51

51:                                               ; preds = %41, %40
  %52 = phi i32 [ 0, %40 ], [ %50, %41 ]
  store i32 %52, ptr %37, align 8, !tbaa !36
  %53 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %14, i32 0, i32 1
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 16, i1 false)
  br label %54

54:                                               ; preds = %93, %51
  %55 = load i32, ptr %10, align 4, !tbaa !9
  %56 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %57 = load ptr, ptr %56, align 8, !tbaa !13
  %58 = getelementptr inbounds %class.HighsDomain, ptr %57, i32 0, i32 22
  %59 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %58) #7
  %60 = trunc i64 %59 to i32
  %61 = icmp slt i32 %55, %60
  br i1 %61, label %62, label %94

62:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %63 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %64 = load ptr, ptr %63, align 8, !tbaa !13
  %65 = getelementptr inbounds %class.HighsDomain, ptr %64, i32 0, i32 22
  %66 = load i32, ptr %10, align 4, !tbaa !9
  %67 = sext i32 %66 to i64
  %68 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %65, i64 noundef %67) #7
  %69 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %69, ptr %15, align 4, !tbaa !9
  %70 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %71 = load ptr, ptr %70, align 8, !tbaa !13
  %72 = getelementptr inbounds %class.HighsDomain, ptr %71, i32 0, i32 3
  %73 = load i32, ptr %15, align 4, !tbaa !9
  %74 = sext i32 %73 to i64
  %75 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI17HighsDomainChangeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef %74) #7
  %76 = getelementptr inbounds %struct.HighsDomainChange, ptr %75, i32 0, i32 0
  %77 = load double, ptr %76, align 8, !tbaa !41
  %78 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %79 = load ptr, ptr %78, align 8, !tbaa !13
  %80 = getelementptr inbounds %class.HighsDomain, ptr %79, i32 0, i32 5
  %81 = load i32, ptr %15, align 4, !tbaa !9
  %82 = sext i32 %81 to i64
  %83 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNSt6vectorISt4pairIdiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %80, i64 noundef %82) #7
  %84 = getelementptr inbounds %"struct.std::pair.358", ptr %83, i32 0, i32 0
  %85 = load double, ptr %84, align 8, !tbaa !42
  %86 = fcmp une double %77, %85
  br i1 %86, label %87, label %88

87:                                               ; preds = %62
  store i32 3, ptr %16, align 4
  br label %91

88:                                               ; preds = %62
  %89 = load i32, ptr %10, align 4, !tbaa !9
  %90 = add nsw i32 %89, 1
  store i32 %90, ptr %10, align 4, !tbaa !9
  store i32 0, ptr %16, align 4
  br label %91

91:                                               ; preds = %88, %87
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  %92 = load i32, ptr %16, align 4
  switch i32 %92, label %313 [
    i32 0, label %93
    i32 3, label %94
  ]

93:                                               ; preds = %91
  br label %54, !llvm.loop !44

94:                                               ; preds = %91, %54
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %95 = load i32, ptr %10, align 4, !tbaa !9
  %96 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %97 = load ptr, ptr %96, align 8, !tbaa !13
  %98 = getelementptr inbounds %class.HighsDomain, ptr %97, i32 0, i32 22
  %99 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #7
  %100 = trunc i64 %99 to i32
  %101 = icmp eq i32 %95, %100
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #7
  br i1 %101, label %102, label %106

102:                                              ; preds = %94
  %103 = load ptr, ptr %9, align 8, !tbaa !5
  %104 = call ptr @_ZNKSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %103) #7
  %105 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %17, i32 0, i32 0
  store ptr %104, ptr %105, align 8
  br label %119

106:                                              ; preds = %94
  %107 = load ptr, ptr %9, align 8, !tbaa !5
  %108 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %18, i32 0, i32 0
  %109 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %110 = load ptr, ptr %109, align 8, !tbaa !13
  %111 = getelementptr inbounds %class.HighsDomain, ptr %110, i32 0, i32 22
  %112 = load i32, ptr %10, align 4, !tbaa !9
  %113 = sext i32 %112 to i64
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %113) #7
  %115 = load i32, ptr %114, align 4, !tbaa !9
  store i32 %115, ptr %108, align 8, !tbaa !36
  %116 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %18, i32 0, i32 1
  call void @llvm.memset.p0.i64(ptr align 8 %116, i8 0, i64 16, i1 false)
  %117 = call ptr @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE11upper_boundERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %107, ptr noundef nonnull align 8 dereferenceable(24) %18)
  %118 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %17, i32 0, i32 0
  store ptr %117, ptr %118, align 8
  br label %119

119:                                              ; preds = %106, %102
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  store i8 1, ptr %19, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %120 = load ptr, ptr %9, align 8, !tbaa !5
  %121 = call ptr @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE11lower_boundERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %120, ptr noundef nonnull align 8 dereferenceable(24) %14)
  %122 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %20, i32 0, i32 0
  store ptr %121, ptr %122, align 8
  br label %123

123:                                              ; preds = %143, %119
  %124 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEES5_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br i1 %124, label %126, label %125

125:                                              ; preds = %123
  store i32 4, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %145

126:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %127 = load ptr, ptr %9, align 8, !tbaa !5
  %128 = call ptr @_ZNKSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %127) #7
  %129 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %21, i32 0, i32 0
  store ptr %128, ptr %129, align 8
  %130 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEES5_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br i1 %130, label %131, label %132

131:                                              ; preds = %126
  br label %134

132:                                              ; preds = %126
  call void @__assert_fail(ptr noundef @.str.110, ptr noundef @.str.52, i32 noundef 3663, ptr noundef @__PRETTY_FUNCTION__._ZN11HighsDomain11ConflictSet12resolveDepthERSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EEiiib) #8
  unreachable

133:                                              ; No predecessors!
  br label %134

134:                                              ; preds = %133, %131
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  store i8 0, ptr %19, align 1, !tbaa !11
  %135 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  %136 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %135, i32 0, i32 0
  %137 = load i32, ptr %136, align 8, !tbaa !36
  %138 = call noundef zeroext i1 @_ZN11HighsDomain11ConflictSet10resolvableEi(ptr noundef nonnull align 8 dereferenceable(184) %36, i32 noundef %137)
  br i1 %138, label %139, label %142

139:                                              ; preds = %134
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %22, ptr align 8 %20, i64 8, i1 false), !tbaa.struct !46
  %140 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %22, i32 0, i32 0
  %141 = load ptr, ptr %140, align 8
  call void @_ZN11HighsDomain11ConflictSet9pushQueueESt23_Rb_tree_const_iteratorINS0_11LocalDomChgEE(ptr noundef nonnull align 8 dereferenceable(184) %36, ptr %141)
  br label %142

142:                                              ; preds = %139, %134
  br label %143

143:                                              ; preds = %142
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br label %123, !llvm.loop !47

145:                                              ; preds = %125
  %146 = load i8, ptr %19, align 1, !tbaa !11, !range !48, !noundef !49
  %147 = trunc i8 %146 to i1
  br i1 %147, label %148, label %149

148:                                              ; preds = %145
  store i32 -1, ptr %7, align 4
  store i32 1, ptr %16, align 4
  br label %311

149:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 0, ptr %23, align 4, !tbaa !9
  br label %150

150:                                              ; preds = %308, %306, %149
  %151 = call noundef i32 @_ZN11HighsDomain11ConflictSet9queueSizeEv(ptr noundef nonnull align 8 dereferenceable(184) %36)
  %152 = load i32, ptr %11, align 4, !tbaa !9
  %153 = icmp sgt i32 %151, %152
  br i1 %153, label %163, label %154

154:                                              ; preds = %150
  %155 = call noundef i32 @_ZN11HighsDomain11ConflictSet9queueSizeEv(ptr noundef nonnull align 8 dereferenceable(184) %36)
  %156 = icmp sgt i32 %155, 0
  br i1 %156, label %157, label %161

157:                                              ; preds = %154
  %158 = load i32, ptr %23, align 4, !tbaa !9
  %159 = load i32, ptr %12, align 4, !tbaa !9
  %160 = icmp slt i32 %158, %159
  br label %161

161:                                              ; preds = %157, %154
  %162 = phi i1 [ false, %154 ], [ %160, %157 ]
  br label %163

163:                                              ; preds = %161, %150
  %164 = phi i1 [ true, %150 ], [ %162, %161 ]
  br i1 %164, label %165, label %309

165:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %166 = call ptr @_ZN11HighsDomain11ConflictSet8popQueueEv(ptr noundef nonnull align 8 dereferenceable(184) %36)
  %167 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %24, i32 0, i32 0
  store ptr %166, ptr %167, align 8
  %168 = load ptr, ptr %9, align 8, !tbaa !5
  %169 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %169, i64 24, i1 false), !tbaa.struct !50
  %170 = call noundef zeroext i1 @_ZN11HighsDomain11ConflictSet18explainBoundChangeERKSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EES2_(ptr noundef nonnull align 8 dereferenceable(184) %36, ptr noundef nonnull align 8 dereferenceable(48) %168, ptr noundef byval(%"struct.HighsDomain::ConflictSet::LocalDomChg") align 8 %25)
  br i1 %170, label %172, label %171

171:                                              ; preds = %165
  store i32 7, ptr %16, align 4
  br label %306, !llvm.loop !53

172:                                              ; preds = %165
  %173 = load i32, ptr %23, align 4, !tbaa !9
  %174 = add nsw i32 %173, 1
  store i32 %174, ptr %23, align 4, !tbaa !9
  %175 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %26, ptr align 8 %24, i64 8, i1 false), !tbaa.struct !46
  %176 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %26, i32 0, i32 0
  %177 = load ptr, ptr %176, align 8
  %178 = call ptr @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %175, ptr %177)
  %179 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %27, i32 0, i32 0
  store ptr %178, ptr %179, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %180 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 5
  store ptr %180, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %181 = load ptr, ptr %28, align 8, !tbaa !5
  %182 = call ptr @_ZNSt6vectorIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #7
  %183 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.395", ptr %29, i32 0, i32 0
  store ptr %182, ptr %183, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %184 = load ptr, ptr %28, align 8, !tbaa !5
  %185 = call ptr @_ZNSt6vectorIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %184) #7
  %186 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.395", ptr %30, i32 0, i32 0
  store ptr %185, ptr %186, align 8
  br label %187

187:                                              ; preds = %303, %172
  %188 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN11HighsDomain11ConflictSet11LocalDomChgESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br i1 %188, label %190, label %189

189:                                              ; preds = %187
  store i32 9, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %305

190:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %191 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN11HighsDomain11ConflictSet11LocalDomChgESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  store ptr %191, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #7
  %192 = load ptr, ptr %9, align 8, !tbaa !5
  %193 = load ptr, ptr %31, align 8, !tbaa !5
  %194 = call { ptr, i8 } @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %192, ptr noundef nonnull align 8 dereferenceable(24) %193)
  store { ptr, i8 } %194, ptr %33, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %32, ptr align 8 %33, i64 9, i1 false)
  %195 = getelementptr inbounds %"struct.std::pair.402", ptr %32, i32 0, i32 1
  %196 = load i8, ptr %195, align 8, !tbaa !54, !range !48, !noundef !49
  %197 = trunc i8 %196 to i1
  br i1 %197, label %198, label %267

198:                                              ; preds = %190
  %199 = load i8, ptr %13, align 1, !tbaa !11, !range !48, !noundef !49
  %200 = trunc i8 %199 to i1
  br i1 %200, label %201, label %250

201:                                              ; preds = %198
  %202 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %203 = load ptr, ptr %202, align 8, !tbaa !13
  %204 = getelementptr inbounds %class.HighsDomain, ptr %203, i32 0, i32 3
  %205 = load ptr, ptr %31, align 8, !tbaa !5
  %206 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %205, i32 0, i32 0
  %207 = load i32, ptr %206, align 8, !tbaa !36
  %208 = sext i32 %207 to i64
  %209 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI17HighsDomainChangeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %208) #7
  %210 = getelementptr inbounds %struct.HighsDomainChange, ptr %209, i32 0, i32 2
  %211 = load i32, ptr %210, align 4, !tbaa !57
  %212 = icmp eq i32 %211, 0
  br i1 %212, label %213, label %231

213:                                              ; preds = %201
  %214 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %215 = load ptr, ptr %214, align 8, !tbaa !13
  %216 = getelementptr inbounds %class.HighsDomain, ptr %215, i32 0, i32 14
  %217 = load ptr, ptr %216, align 8, !tbaa !58
  %218 = getelementptr inbounds %class.HighsMipSolver, ptr %217, i32 0, i32 25
  %219 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %218) #7
  %220 = getelementptr inbounds %struct.HighsMipSolverData, ptr %219, i32 0, i32 5
  %221 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %222 = load ptr, ptr %221, align 8, !tbaa !13
  %223 = getelementptr inbounds %class.HighsDomain, ptr %222, i32 0, i32 3
  %224 = load ptr, ptr %31, align 8, !tbaa !5
  %225 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %224, i32 0, i32 0
  %226 = load i32, ptr %225, align 8, !tbaa !36
  %227 = sext i32 %226 to i64
  %228 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI17HighsDomainChangeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %223, i64 noundef %227) #7
  %229 = getelementptr inbounds %struct.HighsDomainChange, ptr %228, i32 0, i32 1
  %230 = load i32, ptr %229, align 8, !tbaa !126
  call void @_ZN15HighsPseudocost23increaseConflictScoreUpEi(ptr noundef nonnull align 8 dereferenceable(360) %220, i32 noundef %230)
  br label %249

231:                                              ; preds = %201
  %232 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %233 = load ptr, ptr %232, align 8, !tbaa !13
  %234 = getelementptr inbounds %class.HighsDomain, ptr %233, i32 0, i32 14
  %235 = load ptr, ptr %234, align 8, !tbaa !58
  %236 = getelementptr inbounds %class.HighsMipSolver, ptr %235, i32 0, i32 25
  %237 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %236) #7
  %238 = getelementptr inbounds %struct.HighsMipSolverData, ptr %237, i32 0, i32 5
  %239 = getelementptr inbounds %"class.HighsDomain::ConflictSet", ptr %36, i32 0, i32 0
  %240 = load ptr, ptr %239, align 8, !tbaa !13
  %241 = getelementptr inbounds %class.HighsDomain, ptr %240, i32 0, i32 3
  %242 = load ptr, ptr %31, align 8, !tbaa !5
  %243 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %242, i32 0, i32 0
  %244 = load i32, ptr %243, align 8, !tbaa !36
  %245 = sext i32 %244 to i64
  %246 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI17HighsDomainChangeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %241, i64 noundef %245) #7
  %247 = getelementptr inbounds %struct.HighsDomainChange, ptr %246, i32 0, i32 1
  %248 = load i32, ptr %247, align 8, !tbaa !126
  call void @_ZN15HighsPseudocost25increaseConflictScoreDownEi(ptr noundef nonnull align 8 dereferenceable(360) %238, i32 noundef %248)
  br label %249

249:                                              ; preds = %231, %213
  br label %250

250:                                              ; preds = %249, %198
  %251 = load ptr, ptr %31, align 8, !tbaa !5
  %252 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %251, i32 0, i32 0
  %253 = load i32, ptr %252, align 8, !tbaa !36
  %254 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %14, i32 0, i32 0
  %255 = load i32, ptr %254, align 8, !tbaa !36
  %256 = icmp sge i32 %253, %255
  br i1 %256, label %257, label %266

257:                                              ; preds = %250
  %258 = load ptr, ptr %31, align 8, !tbaa !5
  %259 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %258, i32 0, i32 0
  %260 = load i32, ptr %259, align 8, !tbaa !36
  %261 = call noundef zeroext i1 @_ZN11HighsDomain11ConflictSet10resolvableEi(ptr noundef nonnull align 8 dereferenceable(184) %36, i32 noundef %260)
  br i1 %261, label %262, label %266

262:                                              ; preds = %257
  %263 = getelementptr inbounds %"struct.std::pair.402", ptr %32, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %34, ptr align 8 %263, i64 8, i1 false), !tbaa.struct !46
  %264 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %34, i32 0, i32 0
  %265 = load ptr, ptr %264, align 8
  call void @_ZN11HighsDomain11ConflictSet9pushQueueESt23_Rb_tree_const_iteratorINS0_11LocalDomChgEE(ptr noundef nonnull align 8 dereferenceable(184) %36, ptr %265)
  br label %266

266:                                              ; preds = %262, %257, %250
  br label %302

267:                                              ; preds = %190
  %268 = load ptr, ptr %31, align 8, !tbaa !5
  %269 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %268, i32 0, i32 1
  %270 = getelementptr inbounds %struct.HighsDomainChange, ptr %269, i32 0, i32 2
  %271 = load i32, ptr %270, align 4, !tbaa !127
  %272 = icmp eq i32 %271, 0
  br i1 %272, label %273, label %287

273:                                              ; preds = %267
  %274 = getelementptr inbounds %"struct.std::pair.402", ptr %32, i32 0, i32 0
  %275 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %274) #7
  %276 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %275, i32 0, i32 1
  %277 = getelementptr inbounds %struct.HighsDomainChange, ptr %276, i32 0, i32 0
  %278 = load ptr, ptr %31, align 8, !tbaa !5
  %279 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %278, i32 0, i32 1
  %280 = getelementptr inbounds %struct.HighsDomainChange, ptr %279, i32 0, i32 0
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef nonnull align 8 dereferenceable(8) %280)
  %282 = load double, ptr %281, align 8, !tbaa !51
  %283 = getelementptr inbounds %"struct.std::pair.402", ptr %32, i32 0, i32 0
  %284 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %283) #7
  %285 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %284, i32 0, i32 1
  %286 = getelementptr inbounds %struct.HighsDomainChange, ptr %285, i32 0, i32 0
  store double %282, ptr %286, align 8, !tbaa !128
  br label %301

287:                                              ; preds = %267
  %288 = getelementptr inbounds %"struct.std::pair.402", ptr %32, i32 0, i32 0
  %289 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %288) #7
  %290 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %289, i32 0, i32 1
  %291 = getelementptr inbounds %struct.HighsDomainChange, ptr %290, i32 0, i32 0
  %292 = load ptr, ptr %31, align 8, !tbaa !5
  %293 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %292, i32 0, i32 1
  %294 = getelementptr inbounds %struct.HighsDomainChange, ptr %293, i32 0, i32 0
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(8) %294)
  %296 = load double, ptr %295, align 8, !tbaa !51
  %297 = getelementptr inbounds %"struct.std::pair.402", ptr %32, i32 0, i32 0
  %298 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %297) #7
  %299 = getelementptr inbounds %"struct.HighsDomain::ConflictSet::LocalDomChg", ptr %298, i32 0, i32 1
  %300 = getelementptr inbounds %struct.HighsDomainChange, ptr %299, i32 0, i32 0
  store double %296, ptr %300, align 8, !tbaa !128
  br label %301

301:                                              ; preds = %287, %273
  br label %302

302:                                              ; preds = %301, %266
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %303

303:                                              ; preds = %302
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN11HighsDomain11ConflictSet11LocalDomChgESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br label %187

305:                                              ; preds = %189
  store i32 0, ptr %16, align 4
  br label %306

306:                                              ; preds = %305, %171
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  %307 = load i32, ptr %16, align 4
  switch i32 %307, label %313 [
    i32 0, label %308
    i32 7, label %150
  ]

308:                                              ; preds = %306
  br label %150, !llvm.loop !53

309:                                              ; preds = %163
  %310 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %310, ptr %7, align 4
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %311

311:                                              ; preds = %309, %148
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  %312 = load i32, ptr %7, align 4
  ret i32 %312

313:                                              ; preds = %306, %91
  unreachable
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11HighsDomain11ConflictSet18explainBoundChangeERKSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EES2_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef byval(%"struct.HighsDomain::ConflictSet::LocalDomChg") align 8) #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZN11HighsDomain11ConflictSet8popQueueEv(ptr noundef nonnull align 8 dereferenceable(184)) #5 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(24)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN15HighsPseudocost23increaseConflictScoreUpEi(ptr noundef nonnull align 8 dereferenceable(360), i32 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN15HighsPseudocost25increaseConflictScoreDownEi(ptr noundef nonnull align 8 dereferenceable(360), i32 noundef) #3 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !6, i64 0}
!14 = !{!"_ZTSN11HighsDomain11ConflictSetE", !6, i64 0, !6, i64 8, !15, i64 16, !15, i64 64, !24, i64 112, !28, i64 136, !32, i64 160}
!15 = !{!"_ZTSSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSSt8_Rb_treeIN11HighsDomain11ConflictSet11LocalDomChgES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSNSt8_Rb_treeIN11HighsDomain11ConflictSet11LocalDomChgES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !18, i64 0, !20, i64 8}
!18 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN11HighsDomain11ConflictSet11LocalDomChgEEE", !19, i64 0}
!19 = !{!"_ZTSSt4lessIN11HighsDomain11ConflictSet11LocalDomChgEE"}
!20 = !{!"_ZTSSt15_Rb_tree_header", !21, i64 0, !23, i64 32}
!21 = !{!"_ZTSSt18_Rb_tree_node_base", !22, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!22 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"_ZTSSt6vectorISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTSSt6vectorIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!37, !10, i64 0}
!37 = !{!"_ZTSN11HighsDomain11ConflictSet11LocalDomChgE", !10, i64 0, !38, i64 8}
!38 = !{!"_ZTS17HighsDomainChange", !39, i64 0, !10, i64 8, !40, i64 12}
!39 = !{!"double", !7, i64 0}
!40 = !{!"_ZTS14HighsBoundType", !7, i64 0}
!41 = !{!38, !39, i64 0}
!42 = !{!43, !39, i64 0}
!43 = !{!"_ZTSSt4pairIdiE", !39, i64 0, !10, i64 8}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{i64 0, i64 8, !5}
!47 = distinct !{!47, !45}
!48 = !{i8 0, i8 2}
!49 = !{}
!50 = !{i64 0, i64 4, !9, i64 8, i64 8, !51, i64 16, i64 4, !9, i64 20, i64 4, !52}
!51 = !{!39, !39, i64 0}
!52 = !{!40, !40, i64 0}
!53 = distinct !{!53, !45}
!54 = !{!55, !12, i64 8}
!55 = !{!"_ZTSSt4pairISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEbE", !56, i64 0, !12, i64 8}
!56 = !{!"_ZTSSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEE", !6, i64 0}
!57 = !{!38, !40, i64 12}
!58 = !{!59, !6, i64 472}
!59 = !{!"_ZTS11HighsDomain", !60, i64 0, !64, i64 24, !68, i64 48, !72, i64 72, !76, i64 96, !80, i64 120, !84, i64 144, !84, i64 168, !64, i64 192, !64, i64 216, !88, i64 240, !60, i64 264, !64, i64 288, !92, i64 312, !6, i64 472, !102, i64 480, !107, i64 560, !12, i64 640, !112, i64 644, !10, i64 652, !64, i64 656, !64, i64 680, !64, i64 704, !113, i64 728, !12, i64 768, !88, i64 776, !88, i64 800}
!60 = !{!"_ZTSSt6vectorIhSaIhEE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!64 = !{!"_ZTSSt6vectorIiSaIiEE", !65, i64 0}
!65 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!68 = !{!"_ZTSSt6vectorISt4pairIiiESaIS1_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseISt4pairIiiESaIS1_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!72 = !{!"_ZTSSt6vectorI17HighsDomainChangeSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseI17HighsDomainChangeSaIS0_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!76 = !{!"_ZTSSt6vectorIN11HighsDomain6ReasonESaIS1_EE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!80 = !{!"_ZTSSt6vectorISt4pairIdiESaIS1_EE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseISt4pairIdiESaIS1_EE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!84 = !{!"_ZTSSt6vectorI12HighsCDoubleSaIS0_EE", !85, i64 0}
!85 = !{!"_ZTSSt12_Vector_baseI12HighsCDoubleSaIS0_EE", !86, i64 0}
!86 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE12_Vector_implE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!88 = !{!"_ZTSSt6vectorIdSaIdEE", !89, i64 0}
!89 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !90, i64 0}
!90 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !91, i64 0}
!91 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!92 = !{!"_ZTSN11HighsDomain20ObjectivePropagationE", !6, i64 0, !6, i64 8, !6, i64 16, !93, i64 24, !10, i64 40, !39, i64 48, !12, i64 56, !94, i64 64, !68, i64 88, !88, i64 112, !98, i64 136}
!93 = !{!"_ZTS12HighsCDouble", !39, i64 0, !39, i64 8}
!94 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !95, i64 0}
!95 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE12_Vector_implE", !97, i64 0}
!97 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!98 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !99, i64 0}
!99 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !100, i64 0}
!100 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE12_Vector_implE", !101, i64 0}
!101 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!102 = !{!"_ZTSSt5dequeIN11HighsDomain18CutpoolPropagationESaIS1_EE", !103, i64 0}
!103 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE", !104, i64 0}
!104 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE11_Deque_implE", !105, i64 0}
!105 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE16_Deque_impl_dataE", !6, i64 0, !23, i64 8, !106, i64 16, !106, i64 48}
!106 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain18CutpoolPropagationERS1_PS1_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!107 = !{!"_ZTSSt5dequeIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !108, i64 0}
!108 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !109, i64 0}
!109 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE11_Deque_implE", !110, i64 0}
!110 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE16_Deque_impl_dataE", !6, i64 0, !23, i64 8, !111, i64 16, !111, i64 48}
!111 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain23ConflictPoolPropagationERS1_PS1_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!112 = !{!"_ZTSN11HighsDomain6ReasonE", !10, i64 0, !10, i64 4}
!113 = !{!"_ZTS14HighsHashTableIivE", !114, i64 0, !120, i64 8, !23, i64 16, !23, i64 24, !23, i64 32}
!114 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !115, i64 0}
!115 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterELb1ELb1EE", !116, i64 0}
!116 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !117, i64 0}
!117 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !118, i64 0}
!118 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !119, i64 0}
!119 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIivELb0EE", !6, i64 0}
!120 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !121, i64 0}
!121 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !122, i64 0}
!122 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !123, i64 0}
!123 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !124, i64 0}
!124 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !125, i64 0}
!125 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !6, i64 0}
!126 = !{!38, !10, i64 8}
!127 = !{!37, !40, i64 20}
!128 = !{!37, !39, i64 8}


; 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"

%"struct.HighsDomain::ConflictSet::LocalDomChg" = type { i32, %struct.HighsDomainChange }
%struct.HighsDomainChange = type { double, i32, i32 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.395" = type { ptr }
%"struct.std::pair.402" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>

@.str.52 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [21 x i8], align 1
@__PRETTY_FUNCTION__._ZN11HighsDomain11ConflictSet12resolveDepthERSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EEiiib = external hidden unnamed_addr constant [109 x i8], align 1

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN11HighsDomain11ConflictSet12resolveDepthERSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EEiiib(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(48) %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i1 noundef zeroext %5) local_unnamed_addr #4 align 2 {
  %7 = alloca %"struct.HighsDomain::ConflictSet::LocalDomChg", align 8
  %8 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %9 = alloca %"struct.HighsDomain::ConflictSet::LocalDomChg", align 8
  %10 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %11 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %12 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.395", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.395", align 8
  %15 = alloca %"struct.std::pair.402", align 8
  tail call void @_ZN11HighsDomain11ConflictSet10clearQueueEv(ptr noundef nonnull align 8 dereferenceable(184) %0)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #6
  %16 = icmp eq i32 %2, 0
  br i1 %16, label %25, label %17

17:                                               ; preds = %6
  %18 = load ptr, ptr %0, align 8, !tbaa !5
  %19 = getelementptr inbounds i8, ptr %18, i64 704
  %20 = add nsw i32 %2, -1
  %21 = sext i32 %20 to i64
  %22 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %21) #6
  %23 = load i32, ptr %22, align 4, !tbaa !31
  %24 = add nsw i32 %23, 1
  br label %25

25:                                               ; preds = %6, %17
  %26 = phi i32 [ %24, %17 ], [ 0, %6 ]
  store i32 %26, ptr %7, align 8, !tbaa !33
  %27 = getelementptr inbounds i8, ptr %7, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, i8 0, i64 16, i1 false)
  %28 = sext i32 %2 to i64
  br label %29

29:                                               ; preds = %35, %25
  %indvars.iv = phi i64 [ %indvars.iv.next, %35 ], [ %28, %25 ]
  %30 = load ptr, ptr %0, align 8, !tbaa !5
  %31 = getelementptr inbounds i8, ptr %30, i64 704
  %32 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #6
  %sext = shl i64 %32, 32
  %33 = ashr exact i64 %sext, 32
  %34 = icmp slt i64 %indvars.iv, %33
  br i1 %34, label %35, label %50

35:                                               ; preds = %29
  %36 = load ptr, ptr %0, align 8, !tbaa !5
  %37 = getelementptr inbounds i8, ptr %36, i64 704
  %38 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %indvars.iv) #6
  %39 = load i32, ptr %38, align 4, !tbaa !31
  %40 = load ptr, ptr %0, align 8, !tbaa !5
  %41 = getelementptr inbounds i8, ptr %40, i64 72
  %42 = sext i32 %39 to i64
  %43 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI17HighsDomainChangeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %42) #6
  %44 = load double, ptr %43, align 8, !tbaa !38
  %45 = load ptr, ptr %0, align 8, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %45, i64 120
  %47 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZNSt6vectorISt4pairIdiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %42) #6
  %48 = load double, ptr %47, align 8, !tbaa !39
  %49 = fcmp une double %44, %48
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  br i1 %49, label %50, label %29

50:                                               ; preds = %35, %29
  %51 = trunc nsw i64 %indvars.iv to i32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  %52 = load ptr, ptr %0, align 8, !tbaa !5
  %53 = getelementptr inbounds i8, ptr %52, i64 704
  %54 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #6
  %55 = trunc i64 %54 to i32
  %56 = icmp eq i32 %51, %55
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #6
  br i1 %56, label %57, label %59

57:                                               ; preds = %50
  %58 = tail call ptr @_ZNKSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1) #6
  br label %67

59:                                               ; preds = %50
  %60 = load ptr, ptr %0, align 8, !tbaa !5
  %61 = getelementptr inbounds i8, ptr %60, i64 704
  %sext53 = shl i64 %indvars.iv, 32
  %62 = ashr exact i64 %sext53, 32
  %63 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %62) #6
  %64 = load i32, ptr %63, align 4, !tbaa !31
  store i32 %64, ptr %9, align 8, !tbaa !33
  %65 = getelementptr inbounds i8, ptr %9, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %65, i8 0, i64 16, i1 false)
  %66 = call ptr @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE11upper_boundERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(24) %9)
  br label %67

67:                                               ; preds = %59, %57
  %storemerge = phi ptr [ %66, %59 ], [ %58, %57 ]
  store ptr %storemerge, ptr %8, align 8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %68 = call ptr @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE11lower_boundERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(24) %7)
  store ptr %68, ptr %10, align 8
  %69 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEES5_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %8) #6
  br i1 %69, label %.lr.ph, label %.critedge51

._crit_edge:                                      ; preds = %79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  %70 = getelementptr inbounds i8, ptr %0, i64 136
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 8
  br label %82

.lr.ph:                                           ; preds = %67, %79
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  %71 = call ptr @_ZNKSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1) #6
  store ptr %71, ptr %11, align 8
  %72 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEES5_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #6
  br i1 %72, label %74, label %73

73:                                               ; preds = %.lr.ph
  call void @__assert_fail(ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.52, i32 noundef 3663, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN11HighsDomain11ConflictSet12resolveDepthERSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EEiiib) #7
  unreachable

74:                                               ; preds = %.lr.ph
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  %75 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  %76 = load i32, ptr %75, align 8, !tbaa !33
  %77 = call noundef zeroext i1 @_ZN11HighsDomain11ConflictSet10resolvableEi(ptr noundef nonnull align 8 dereferenceable(184) %0, i32 noundef %76)
  br i1 %77, label %78, label %79

78:                                               ; preds = %74
  %.sroa.016.0.copyload = load ptr, ptr %10, align 8, !tbaa !41
  call void @_ZN11HighsDomain11ConflictSet9pushQueueESt23_Rb_tree_const_iteratorINS0_11LocalDomChgEE(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr %.sroa.016.0.copyload)
  br label %79

79:                                               ; preds = %74, %78
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  %81 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEES5_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %8) #6
  br i1 %81, label %.lr.ph, label %._crit_edge, !llvm.loop !42

82:                                               ; preds = %._crit_edge, %153
  %.043 = phi i32 [ %.144, %153 ], [ 0, %._crit_edge ]
  %83 = call noundef i32 @_ZN11HighsDomain11ConflictSet9queueSizeEv(ptr noundef nonnull align 8 dereferenceable(184) %0)
  %84 = icmp sgt i32 %83, %3
  br i1 %84, label %.critedge, label %85

85:                                               ; preds = %82
  %86 = call noundef i32 @_ZN11HighsDomain11ConflictSet9queueSizeEv(ptr noundef nonnull align 8 dereferenceable(184) %0)
  %87 = icmp sgt i32 %86, 0
  %88 = icmp slt i32 %.043, %4
  %89 = select i1 %87, i1 %88, i1 false
  br i1 %89, label %.critedge, label %.loopexit

.critedge:                                        ; preds = %82, %85
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %90 = call ptr @_ZN11HighsDomain11ConflictSet8popQueueEv(ptr noundef nonnull align 8 dereferenceable(184) %0)
  store ptr %90, ptr %12, align 8
  %91 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  %92 = call noundef zeroext i1 @_ZN11HighsDomain11ConflictSet18explainBoundChangeERKSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EES2_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull byval(%"struct.HighsDomain::ConflictSet::LocalDomChg") align 8 %91)
  br i1 %92, label %93, label %153, !llvm.loop !44

93:                                               ; preds = %.critedge
  %94 = add nsw i32 %.043, 1
  %.sroa.013.0.copyload = load ptr, ptr %12, align 8, !tbaa !41
  %95 = call ptr @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr %.sroa.013.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  %96 = call ptr @_ZNSt6vectorIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %70) #6
  store ptr %96, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  %97 = call ptr @_ZNSt6vectorIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %70) #6
  store ptr %97, ptr %14, align 8
  %98 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN11HighsDomain11ConflictSet11LocalDomChgESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  br i1 %98, label %.lr.ph49, label %._crit_edge50

._crit_edge50:                                    ; preds = %150, %93
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %153

.lr.ph49:                                         ; preds = %93, %150
  %99 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN11HighsDomain11ConflictSet11LocalDomChgESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #6
  %100 = call { ptr, i8 } @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(24) %99)
  %.fca.0.extract = extractvalue { ptr, i8 } %100, 0
  %.fca.1.extract = extractvalue { ptr, i8 } %100, 1
  store ptr %.fca.0.extract, ptr %15, align 8
  store i8 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  %101 = trunc i8 %.fca.1.extract to i1
  br i1 %101, label %102, label %133

102:                                              ; preds = %.lr.ph49
  br i1 %5, label %103, label %127

103:                                              ; preds = %102
  %104 = load ptr, ptr %0, align 8, !tbaa !5
  %105 = getelementptr inbounds i8, ptr %104, i64 72
  %106 = load i32, ptr %99, align 8, !tbaa !33
  %107 = sext i32 %106 to i64
  %108 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI17HighsDomainChangeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %105, i64 noundef %107) #6
  %109 = getelementptr inbounds i8, ptr %108, i64 12
  %110 = load i32, ptr %109, align 4, !tbaa !45
  %111 = icmp eq i32 %110, 0
  %112 = load ptr, ptr %0, align 8, !tbaa !5
  %113 = getelementptr inbounds i8, ptr %112, i64 472
  %114 = load ptr, ptr %113, align 8, !tbaa !46
  %115 = getelementptr inbounds i8, ptr %114, i64 224
  %116 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #6
  %117 = getelementptr inbounds i8, ptr %116, i64 23168
  %118 = load ptr, ptr %0, align 8, !tbaa !5
  %119 = getelementptr inbounds i8, ptr %118, i64 72
  %120 = load i32, ptr %99, align 8, !tbaa !33
  %121 = sext i32 %120 to i64
  %122 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI17HighsDomainChangeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef %121) #6
  %123 = getelementptr inbounds i8, ptr %122, i64 8
  %124 = load i32, ptr %123, align 8, !tbaa !115
  br i1 %111, label %125, label %126

125:                                              ; preds = %103
  call void @_ZN15HighsPseudocost23increaseConflictScoreUpEi(ptr noundef nonnull align 8 dereferenceable(360) %117, i32 noundef %124)
  br label %127

126:                                              ; preds = %103
  call void @_ZN15HighsPseudocost25increaseConflictScoreDownEi(ptr noundef nonnull align 8 dereferenceable(360) %117, i32 noundef %124)
  br label %127

127:                                              ; preds = %125, %126, %102
  %128 = load i32, ptr %99, align 8, !tbaa !33
  %129 = load i32, ptr %7, align 8, !tbaa !33
  %.not = icmp slt i32 %128, %129
  br i1 %.not, label %150, label %130

130:                                              ; preds = %127
  %131 = call noundef zeroext i1 @_ZN11HighsDomain11ConflictSet10resolvableEi(ptr noundef nonnull align 8 dereferenceable(184) %0, i32 noundef %128)
  br i1 %131, label %132, label %150

132:                                              ; preds = %130
  %.sroa.0.0.copyload = load ptr, ptr %15, align 8, !tbaa !41
  call void @_ZN11HighsDomain11ConflictSet9pushQueueESt23_Rb_tree_const_iteratorINS0_11LocalDomChgEE(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr %.sroa.0.0.copyload)
  br label %150

133:                                              ; preds = %.lr.ph49
  %134 = getelementptr inbounds i8, ptr %99, i64 8
  %135 = getelementptr inbounds i8, ptr %99, i64 20
  %136 = load i32, ptr %135, align 4, !tbaa !116
  %137 = icmp eq i32 %136, 0
  %138 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  %139 = getelementptr inbounds i8, ptr %138, i64 8
  br i1 %137, label %140, label %145

140:                                              ; preds = %133
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull align 8 dereferenceable(8) %134)
  %142 = load double, ptr %141, align 8, !tbaa !117
  %143 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  %144 = getelementptr inbounds i8, ptr %143, i64 8
  store double %142, ptr %144, align 8, !tbaa !118
  br label %150

145:                                              ; preds = %133
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull align 8 dereferenceable(8) %134)
  %147 = load double, ptr %146, align 8, !tbaa !117
  %148 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  %149 = getelementptr inbounds i8, ptr %148, i64 8
  store double %147, ptr %149, align 8, !tbaa !118
  br label %150

150:                                              ; preds = %140, %145, %127, %130, %132
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN11HighsDomain11ConflictSet11LocalDomChgESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  %152 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN11HighsDomain11ConflictSet11LocalDomChgESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  br i1 %152, label %.lr.ph49, label %._crit_edge50

153:                                              ; preds = %.critedge, %._crit_edge50
  %.144 = phi i32 [ %94, %._crit_edge50 ], [ %.043, %.critedge ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %82

.critedge51:                                      ; preds = %67
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %.loopexit

.loopexit:                                        ; preds = %85, %.critedge51
  %.0 = phi i32 [ -1, %.critedge51 ], [ %.043, %85 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #6
  ret i32 %.0
}

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEES5_(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 ptr @_ZNKSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11HighsDomain11ConflictSet18explainBoundChangeERKSt3setINS0_11LocalDomChgESt4lessIS2_ESaIS2_EES2_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef byval(%"struct.HighsDomain::ConflictSet::LocalDomChg") align 8) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn 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 #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 = { 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 #4 = { 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 #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nounwind }
attributes #7 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN11HighsDomain11ConflictSetE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 64, !19, i64 112, !23, i64 136, !27, i64 160}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSSt3setIN11HighsDomain11ConflictSet11LocalDomChgESt4lessIS2_ESaIS2_EE", !11, i64 0}
!11 = !{!"_ZTSSt8_Rb_treeIN11HighsDomain11ConflictSet11LocalDomChgES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE", !12, i64 0}
!12 = !{!"_ZTSNSt8_Rb_treeIN11HighsDomain11ConflictSet11LocalDomChgES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !13, i64 0, !15, i64 8}
!13 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN11HighsDomain11ConflictSet11LocalDomChgEEE", !14, i64 0}
!14 = !{!"_ZTSSt4lessIN11HighsDomain11ConflictSet11LocalDomChgEE"}
!15 = !{!"_ZTSSt15_Rb_tree_header", !16, i64 0, !18, i64 32}
!16 = !{!"_ZTSSt18_Rb_tree_node_base", !17, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!17 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!18 = !{!"long", !8, i64 0}
!19 = !{!"_ZTSSt6vectorISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseISt23_Rb_tree_const_iteratorIN11HighsDomain11ConflictSet11LocalDomChgEESaIS4_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!23 = !{!"_ZTSSt6vectorIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet11LocalDomChgESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!27 = !{!"_ZTSSt6vectorIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain11ConflictSet16ResolveCandidateESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!31 = !{!32, !32, i64 0}
!32 = !{!"int", !8, i64 0}
!33 = !{!34, !32, i64 0}
!34 = !{!"_ZTSN11HighsDomain11ConflictSet11LocalDomChgE", !32, i64 0, !35, i64 8}
!35 = !{!"_ZTS17HighsDomainChange", !36, i64 0, !32, i64 8, !37, i64 12}
!36 = !{!"double", !8, i64 0}
!37 = !{!"_ZTS14HighsBoundType", !8, i64 0}
!38 = !{!35, !36, i64 0}
!39 = !{!40, !36, i64 0}
!40 = !{!"_ZTSSt4pairIdiE", !36, i64 0, !32, i64 8}
!41 = !{!7, !7, i64 0}
!42 = distinct !{!42, !43}
!43 = !{!"llvm.loop.mustprogress"}
!44 = distinct !{!44, !43}
!45 = !{!35, !37, i64 12}
!46 = !{!47, !7, i64 472}
!47 = !{!"_ZTS11HighsDomain", !48, i64 0, !52, i64 24, !56, i64 48, !60, i64 72, !64, i64 96, !68, i64 120, !72, i64 144, !72, i64 168, !52, i64 192, !52, i64 216, !76, i64 240, !48, i64 264, !52, i64 288, !80, i64 312, !7, i64 472, !91, i64 480, !96, i64 560, !82, i64 640, !101, i64 644, !32, i64 652, !52, i64 656, !52, i64 680, !52, i64 704, !102, i64 728, !82, i64 768, !76, i64 776, !76, i64 800}
!48 = !{!"_ZTSSt6vectorIhSaIhEE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!52 = !{!"_ZTSSt6vectorIiSaIiEE", !53, i64 0}
!53 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!56 = !{!"_ZTSSt6vectorISt4pairIiiESaIS1_EE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseISt4pairIiiESaIS1_EE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseISt4pairIiiESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!60 = !{!"_ZTSSt6vectorI17HighsDomainChangeSaIS0_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseI17HighsDomainChangeSaIS0_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI17HighsDomainChangeSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!64 = !{!"_ZTSSt6vectorIN11HighsDomain6ReasonESaIS1_EE", !65, i64 0}
!65 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE12_Vector_implE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain6ReasonESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!68 = !{!"_ZTSSt6vectorISt4pairIdiESaIS1_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseISt4pairIdiESaIS1_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseISt4pairIdiESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!72 = !{!"_ZTSSt6vectorI12HighsCDoubleSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseI12HighsCDoubleSaIS0_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!76 = !{!"_ZTSSt6vectorIdSaIdEE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!80 = !{!"_ZTSN11HighsDomain20ObjectivePropagationE", !7, i64 0, !7, i64 8, !7, i64 16, !81, i64 24, !32, i64 40, !36, i64 48, !82, i64 56, !83, i64 64, !56, i64 88, !76, i64 112, !87, i64 136}
!81 = !{!"_ZTS12HighsCDouble", !36, i64 0, !36, i64 8}
!82 = !{!"bool", !8, i64 0}
!83 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !84, i64 0}
!84 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE", !85, i64 0}
!85 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE12_Vector_implE", !86, i64 0}
!86 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation21ObjectiveContributionESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!87 = !{!"_ZTSSt6vectorIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !88, i64 0}
!88 = !{!"_ZTSSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE", !89, i64 0}
!89 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE12_Vector_implE", !90, i64 0}
!90 = !{!"_ZTSNSt12_Vector_baseIN11HighsDomain20ObjectivePropagation19PartitionCliqueDataESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!91 = !{!"_ZTSSt5dequeIN11HighsDomain18CutpoolPropagationESaIS1_EE", !92, i64 0}
!92 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE", !93, i64 0}
!93 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE11_Deque_implE", !94, i64 0}
!94 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain18CutpoolPropagationESaIS1_EE16_Deque_impl_dataE", !7, i64 0, !18, i64 8, !95, i64 16, !95, i64 48}
!95 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain18CutpoolPropagationERS1_PS1_E", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!96 = !{!"_ZTSSt5dequeIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !97, i64 0}
!97 = !{!"_ZTSSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE", !98, i64 0}
!98 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE11_Deque_implE", !99, i64 0}
!99 = !{!"_ZTSNSt11_Deque_baseIN11HighsDomain23ConflictPoolPropagationESaIS1_EE16_Deque_impl_dataE", !7, i64 0, !18, i64 8, !100, i64 16, !100, i64 48}
!100 = !{!"_ZTSSt15_Deque_iteratorIN11HighsDomain23ConflictPoolPropagationERS1_PS1_E", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!101 = !{!"_ZTSN11HighsDomain6ReasonE", !32, i64 0, !32, i64 4}
!102 = !{!"_ZTS14HighsHashTableIivE", !103, i64 0, !109, i64 8, !18, i64 16, !18, i64 24, !18, i64 32}
!103 = !{!"_ZTSSt10unique_ptrI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !104, i64 0}
!104 = !{!"_ZTSSt15__uniq_ptr_dataI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterELb1ELb1EE", !105, i64 0}
!105 = !{!"_ZTSSt15__uniq_ptr_implI19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEE", !106, i64 0}
!106 = !{!"_ZTSSt5tupleIJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !107, i64 0}
!107 = !{!"_ZTSSt11_Tuple_implILm0EJP19HighsHashTableEntryIivEN14HighsHashTableIivE12OpNewDeleterEEE", !108, i64 0}
!108 = !{!"_ZTSSt10_Head_baseILm0EP19HighsHashTableEntryIivELb0EE", !7, i64 0}
!109 = !{!"_ZTSSt10unique_ptrIA_hSt14default_deleteIS0_EE", !110, i64 0}
!110 = !{!"_ZTSSt15__uniq_ptr_dataIhSt14default_deleteIA_hELb1ELb1EE", !111, i64 0}
!111 = !{!"_ZTSSt15__uniq_ptr_implIhSt14default_deleteIA_hEE", !112, i64 0}
!112 = !{!"_ZTSSt5tupleIJPhSt14default_deleteIA_hEEE", !113, i64 0}
!113 = !{!"_ZTSSt11_Tuple_implILm0EJPhSt14default_deleteIA_hEEE", !114, i64 0}
!114 = !{!"_ZTSSt10_Head_baseILm0EPhLb0EE", !7, i64 0}
!115 = !{!35, !32, i64 8}
!116 = !{!34, !37, i64 20}
!117 = !{!36, !36, i64 0}
!118 = !{!34, !36, i64 8}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SROAPass,SimplifyCFGPass,TailCallElimPass