; LLVM IR from ERGO-Code/HiGHS :: src/mip/HighsCutGeneration.ll (ZN18HighsCutGeneration14postprocessCutEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%class.HighsCDouble = type { double, double }
%class.HighsCutGeneration = type { ptr, ptr, %class.HighsRandom, %"class.std::vector", %class.HighsCDouble, %class.HighsCDouble, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", double, double, ptr, ptr, %class.HighsCDouble, i8, i8, i32, double, %"class.std::vector", %"class.std::vector.3" }
%class.HighsRandom = type { i64 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsMipSolver = type { ptr, ptr, ptr, ptr, i32, %"class.std::vector.3", double, double, double, double, double, double, double, i64, i64, double, ptr, %"class.std::vector.62", i8, i32, i32, ptr, ptr, ptr, ptr, %"class.std::unique_ptr.182", %class.HighsMipAnalysis, %class.HighsTimer }
%"class.std::vector.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = 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.182" = type { %"struct.std::__uniq_ptr_data.183" }
%"struct.std::__uniq_ptr_data.183" = type { %"class.std::__uniq_ptr_impl.184" }
%"class.std::__uniq_ptr_impl.184" = type { %"class.std::tuple.185" }
%"class.std::tuple.185" = type { %"struct.std::_Tuple_impl.186" }
%"struct.std::_Tuple_impl.186" = type { %"struct.std::_Head_base.189" }
%"struct.std::_Head_base.189" = type { ptr }
%class.HighsMipAnalysis = type { ptr, %"class.std::__cxx11::basic_string", %struct.HighsTimerClock, i8, %"class.std::vector.3", %"class.std::vector.3" }
%"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" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.23", i32, i32, i32, [4 x i8] }>
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %struct.HighsSymmetries, %"class.std::shared_ptr.318", double, double, double, i64, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", 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.3", %class.HighsNodeQueue, %struct.HighsPrimaDualIntegral, [8 x i8] }>
%class.HighsCutPool = type { %class.HighsDynamicRowMatrix, %"class.std::vector.3", %"class.std::vector.153", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::unordered_multimap", %"class.std::vector.177", %"class.std::set", double, double, double, i32, i32, i32, i32, i32, %"class.std::vector", %"class.std::vector.135" }
%class.HighsDynamicRowMatrix = type { %"class.std::vector.145", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::set", %"class.std::vector" }
%"class.std::vector.145" = type { %"struct.std::_Vector_base.146" }
%"struct.std::_Vector_base.146" = 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.153" = type { %"struct.std::_Vector_base.154" }
%"struct.std::_Vector_base.154" = 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.158" }
%"class.std::_Hashtable.158" = 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.177" = type { %"struct.std::_Vector_base.178" }
%"struct.std::_Vector_base.178" = 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" }
%"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.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = 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", %"class.std::vector.153", %"class.std::vector.190", %"class.std::vector.195", %"class.std::vector.145", %"class.std::set", %"class.std::vector", %"class.std::vector.200" }
%"class.std::vector.190" = type { %"struct.std::_Vector_base.191" }
%"struct.std::_Vector_base.191" = 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.195" = type { %"struct.std::_Vector_base.196" }
%"struct.std::_Vector_base.196" = 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.200" = type { %"struct.std::_Vector_base.201" }
%"struct.std::_Vector_base.201" = 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.HighsDomain = type { %"class.std::vector.8", %"class.std::vector", %"class.std::vector.145", %"class.std::vector.195", %"class.std::vector.205", %"class.std::vector.210", %"class.std::vector.140", %"class.std::vector.140", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector", %"struct.HighsDomain::ObjectivePropagation", ptr, %"class.std::deque", %"class.std::deque.228", i8, %"struct.HighsDomain::Reason", i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %class.HighsHashTable.234, i8, %"class.std::vector.3", %"class.std::vector.3" }
%"class.std::vector.205" = type { %"struct.std::_Vector_base.206" }
%"struct.std::_Vector_base.206" = 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.210" = type { %"struct.std::_Vector_base.211" }
%"struct.std::_Vector_base.211" = 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.140" = type { %"struct.std::_Vector_base.141" }
%"struct.std::_Vector_base.141" = 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 }
%"struct.HighsDomain::ObjectivePropagation" = type { ptr, ptr, ptr, %class.HighsCDouble, i32, double, i8, %"class.std::vector.215", %"class.std::vector.145", %"class.std::vector.3", %"class.std::vector.220" }
%"class.std::vector.215" = type { %"struct.std::_Vector_base.216" }
%"struct.std::_Vector_base.216" = 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.220" = type { %"struct.std::_Vector_base.221" }
%"struct.std::_Vector_base.221" = 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.228" = type { %"class.std::_Deque_base.229" }
%"class.std::_Deque_base.229" = 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.233", %"struct.std::_Deque_iterator.233" }
%"struct.std::_Deque_iterator.233" = type { ptr, ptr, ptr, ptr }
%"struct.HighsDomain::Reason" = type { i32, i32 }
%class.HighsHashTable.234 = type { %"class.std::unique_ptr.235", %"class.std::unique_ptr.92", i64, i64, i64 }
%"class.std::unique_ptr.235" = type { %"struct.std::__uniq_ptr_data.236" }
%"struct.std::__uniq_ptr_data.236" = type { %"class.std::__uniq_ptr_impl.237" }
%"class.std::__uniq_ptr_impl.237" = type { %"class.std::tuple.238" }
%"class.std::tuple.238" = type { %"struct.std::_Tuple_impl.239" }
%"struct.std::_Tuple_impl.239" = type { %"struct.std::_Head_base.242" }
%"struct.std::_Head_base.242" = type { ptr }
%"class.std::unique_ptr.92" = type { %"struct.std::__uniq_ptr_data.93" }
%"struct.std::__uniq_ptr_data.93" = type { %"class.std::__uniq_ptr_impl.94" }
%"class.std::__uniq_ptr_impl.94" = type { %"class.std::tuple.95" }
%"class.std::tuple.95" = type { %"struct.std::_Tuple_impl.96" }
%"struct.std::_Tuple_impl.96" = type { %"struct.std::_Head_base.99" }
%"struct.std::_Head_base.99" = type { ptr }
%class.HighsLpRelaxation = type <{ ptr, %class.Highs, %"class.std::vector.130", %"class.std::vector.135", %"class.std::vector.3", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %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.38", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.62", i32, i32, i8, double, %"class.std::vector.3", %"class.std::vector.3", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.HighsSolution = type { i8, i8, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3" }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.18", %"class.std::vector.3", double }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = 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", %"class.std::vector", %"class.std::vector.3" }
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.43", %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.43" = 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.47", 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.47" = type { %"struct.std::_Vector_base.48" }
%"struct.std::_Vector_base.48" = 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.52" }
%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.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = 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.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector" }
%class.HighsIis = type { i8, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.57" }
%"class.std::vector.57" = type { %"struct.std::_Vector_base.58" }
%"struct.std::_Vector_base.58" = 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", %"class.std::vector", %"class.std::vector", %"class.std::vector.3" }
%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, %class.HighsRandom, %"class.std::vector.3", %"class.std::vector.3", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector", %"class.std::vector.3", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"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::vector", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.110", %"class.std::vector.3", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.67", %"class.std::vector.67", 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.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.72", %"class.std::unique_ptr", 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.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.72" = type { %"struct.std::_Vector_base.73" }
%"struct.std::_Vector_base.73" = 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" = 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.78" }
%"struct.std::_Head_base.78" = 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.3", %"class.std::vector", 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.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.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", 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", %"class.std::vector.79", %"class.std::vector.79", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.79" = type { %"struct.std::_Vector_base.80" }
%"struct.std::_Vector_base.80" = 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 = type { %"class.std::unique_ptr.84", %"class.std::unique_ptr.92", i64, i64, i64 }
%"class.std::unique_ptr.84" = type { %"struct.std::__uniq_ptr_data.85" }
%"struct.std::__uniq_ptr_data.85" = type { %"class.std::__uniq_ptr_impl.86" }
%"class.std::__uniq_ptr_impl.86" = type { %"class.std::tuple.87" }
%"class.std::tuple.87" = type { %"struct.std::_Tuple_impl.88" }
%"struct.std::_Tuple_impl.88" = type { %"struct.std::_Head_base.91" }
%"struct.std::_Head_base.91" = type { ptr }
%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", %"class.std::vector", %"class.std::vector", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.100", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.108", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector", %"class.std::vector", %"class.std::vector.79", double }
%"class.std::unique_ptr.100" = type { %"struct.std::__uniq_ptr_data.101" }
%"struct.std::__uniq_ptr_data.101" = type { %"class.std::__uniq_ptr_impl.102" }
%"class.std::__uniq_ptr_impl.102" = type { %"class.std::tuple.103" }
%"class.std::tuple.103" = type { %"struct.std::_Tuple_impl.104" }
%"struct.std::_Tuple_impl.104" = type { %"struct.std::_Head_base.107" }
%"struct.std::_Head_base.107" = type { ptr }
%"class.std::vector.108" = type { %"struct.std::_Vector_base.109" }
%"struct.std::_Vector_base.109" = 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", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.3" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.3" }
%struct.InvertibleRepresentation = type { %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector.3" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.79" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.3" }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = 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.115" }
%"class.std::vector.115" = type { %"struct.std::_Vector_base.116" }
%"struct.std::_Vector_base.116" = 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.130" = type { %"struct.std::_Vector_base.131" }
%"struct.std::_Vector_base.131" = 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", %"class.std::vector.3", double, %"class.std::vector.108", %"class.std::vector", ptr, i8, i32, %"class.std::vector", %"class.std::vector.3" }
%class.HighsSparseVectorSum = type { %"class.std::vector.140", %"class.std::vector" }
%"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.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", double, double, double, double, i64, i64, i64, i32, double }
%class.HighsCliqueTable = type { %"class.std::vector.243", %"class.std::vector.248", %"class.std::vector.253", %class.HighsHashTable.258, %"class.std::set", %"class.std::vector", %"class.std::vector.267", %"class.std::vector", %"class.std::vector.243", %"class.std::vector", %"class.std::vector.272", %"class.std::vector", %"class.std::vector.277", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.190", %"class.std::vector", %class.HighsRandom, i32, i32, i32, i32, i8, i64 }
%"class.std::vector.248" = type { %"struct.std::_Vector_base.249" }
%"struct.std::_Vector_base.249" = 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.253" = type { %"struct.std::_Vector_base.254" }
%"struct.std::_Vector_base.254" = 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.258 = type { %"class.std::unique_ptr.259", %"class.std::unique_ptr.92", i64, i64, i64 }
%"class.std::unique_ptr.259" = type { %"struct.std::__uniq_ptr_data.260" }
%"struct.std::__uniq_ptr_data.260" = type { %"class.std::__uniq_ptr_impl.261" }
%"class.std::__uniq_ptr_impl.261" = type { %"class.std::tuple.262" }
%"class.std::tuple.262" = type { %"struct.std::_Tuple_impl.263" }
%"struct.std::_Tuple_impl.263" = type { %"struct.std::_Head_base.266" }
%"struct.std::_Head_base.266" = type { ptr }
%"class.std::vector.267" = type { %"struct.std::_Vector_base.268" }
%"struct.std::_Vector_base.268" = 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.243" = type { %"struct.std::_Vector_base.244" }
%"struct.std::_Vector_base.244" = 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.272" = type { %"struct.std::_Vector_base.273" }
%"struct.std::_Vector_base.273" = 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.277" = type { %"struct.std::_Vector_base.278" }
%"struct.std::_Vector_base.278" = 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.282", i64, %"class.std::vector.287", %"class.std::vector.287", ptr, %"class.std::vector.292", %"class.std::vector.8", %"class.std::function.297" }
%"class.std::vector.282" = type { %"struct.std::_Vector_base.283" }
%"struct.std::_Vector_base.283" = 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.287" = type { %"struct.std::_Vector_base.288" }
%"struct.std::_Vector_base.288" = 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.292" = type { %"struct.std::_Vector_base.293" }
%"struct.std::_Vector_base.293" = 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.297" = type { %"class.std::_Function_base", ptr }
%class.HighsPrimalHeuristics = type { ptr, i64, i64, i64, i64, double, i32, double, i32, %class.HighsRandom, %"class.std::vector" }
%class.HighsRedcostFixing = type { %"class.std::vector.299", %"class.std::vector.299" }
%"class.std::vector.299" = type { %"struct.std::_Vector_base.300" }
%"struct.std::_Vector_base.300" = 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", %"class.std::vector.3", %"class.std::vector", %"class.std::vector" }
%"class.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.120", %"class.std::vector", %"class.std::vector", %"class.std::vector.8", %"class.std::vector.125", %"class.std::vector.125", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector.108", i64 }
%"class.std::vector.120" = type { %"struct.std::_Vector_base.121" }
%"struct.std::_Vector_base.121" = 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.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = 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.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.23", %"class.std::vector.23", %"class.std::vector.28", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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.3", %"class.std::vector.3" }
%struct.HighsLpMods = type { %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.28", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3" }
%struct.HighsSymmetries = type { %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.304", %class.HighsHashTable.309, i32, i32 }
%"class.std::vector.304" = type { %"struct.std::_Vector_base.305" }
%"struct.std::_Vector_base.305" = 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.309 = type { %"class.std::unique_ptr.310", %"class.std::unique_ptr.92", i64, i64, i64 }
%"class.std::unique_ptr.310" = type { %"struct.std::__uniq_ptr_data.311" }
%"struct.std::__uniq_ptr_data.311" = type { %"class.std::__uniq_ptr_impl.312" }
%"class.std::__uniq_ptr_impl.312" = type { %"class.std::tuple.313" }
%"class.std::tuple.313" = type { %"struct.std::_Tuple_impl.314" }
%"struct.std::_Tuple_impl.314" = type { %"struct.std::_Head_base.317" }
%"struct.std::_Head_base.317" = type { ptr }
%"class.std::shared_ptr.318" = type { %"class.std::__shared_ptr.319" }
%"class.std::__shared_ptr.319" = type { ptr, %"class.std::__shared_count" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.13", %"class.std::vector.13" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.321", %"class.std::vector.329", %"class.std::priority_queue", %"class.std::unique_ptr.339", %"class.std::unique_ptr.339", i64, i64, i64, i64, i64, i64, i64, double, i32, [4 x i8] }>
%"class.std::unique_ptr.321" = type { %"struct.std::__uniq_ptr_data.322" }
%"struct.std::__uniq_ptr_data.322" = type { %"class.std::__uniq_ptr_impl.323" }
%"class.std::__uniq_ptr_impl.323" = type { %"class.std::tuple.324" }
%"class.std::tuple.324" = type { %"struct.std::_Tuple_impl.325" }
%"struct.std::_Tuple_impl.325" = type { %"struct.std::_Head_base.328" }
%"struct.std::_Head_base.328" = type { ptr }
%"class.std::vector.329" = type { %"struct.std::_Vector_base.330" }
%"struct.std::_Vector_base.330" = 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.334", [8 x i8] }>
%"class.std::vector.334" = type { %"struct.std::_Vector_base.335" }
%"struct.std::_Vector_base.335" = 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.339" = type { %"struct.std::__uniq_ptr_data.340" }
%"struct.std::__uniq_ptr_data.340" = type { %"class.std::__uniq_ptr_impl.341" }
%"class.std::__uniq_ptr_impl.341" = type { %"class.std::tuple.342" }
%"class.std::tuple.342" = type { %"struct.std::_Tuple_impl.343" }
%"struct.std::_Tuple_impl.343" = type { %"struct.std::_Head_base.346" }
%"struct.std::_Head_base.346" = type { ptr }
%struct.HighsPrimaDualIntegral = type { double, double, double, double, double }

; 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: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(496) ptr @_ZNK17HighsLpRelaxation12getMipSolverEv(ptr noundef nonnull align 8 dereferenceable(21425)) #1 align 2

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #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)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZmldRK12HighsCDouble(double noundef, ptr noundef nonnull align 8 dereferenceable(16)) #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { double, double } @_ZNK12HighsCDoubleplEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN18HighsCutGeneration14postprocessCutEv(ptr noundef nonnull align 8 dereferenceable(288) %0) #4 align 2 {
  %2 = alloca i1, align 1
  %3 = alloca ptr, align 8
  %4 = alloca %class.HighsCDouble, align 8
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca double, align 8
  %8 = alloca i32, align 4
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca i32, align 4
  %17 = alloca double, align 8
  %18 = alloca i8, align 1
  %19 = alloca double, align 8
  %20 = alloca i32, align 4
  %21 = alloca %class.HighsCDouble, align 8
  %22 = alloca %class.HighsCDouble, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca %class.HighsCDouble, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca %class.HighsCDouble, align 8
  %29 = alloca %class.HighsCDouble, align 8
  %30 = alloca double, align 8
  %31 = alloca i32, align 4
  %32 = alloca double, align 8
  %33 = alloca i32, align 4
  %34 = alloca %class.HighsCDouble, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %class.HighsCDouble, align 8
  %38 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  %39 = load ptr, ptr %3, align 8
  %40 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %41 = call noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %40, double noundef 0.000000e+00)
  br i1 %41, label %42, label %50

42:                                               ; preds = %1
  %43 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %44 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 11
  %45 = load double, ptr %44, align 8, !tbaa !9
  %46 = fneg double %45
  %47 = call noundef zeroext i1 @_ZNK12HighsCDoublegtEd(ptr noundef nonnull align 8 dereferenceable(16) %43, double noundef %46)
  br i1 %47, label %48, label %50

48:                                               ; preds = %42
  call void @llvm.lifetime.start.p0(i64 16, ptr %4) #6
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %4, double noundef 0.000000e+00)
  %49 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 %4, i64 16, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #6
  br label %50

50:                                               ; preds = %48, %42, %1
  %51 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 15
  %52 = load i8, ptr %51, align 8, !tbaa !31, !range !32, !noundef !33
  %53 = trunc i8 %52 to i1
  br i1 %53, label %54, label %107

54:                                               ; preds = %50
  %55 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 16
  %56 = load i8, ptr %55, align 1, !tbaa !34, !range !32, !noundef !33
  %57 = trunc i8 %56 to i1
  br i1 %57, label %58, label %107

58:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #6
  %59 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %60 = load i32, ptr %59, align 4, !tbaa !35
  %61 = sub nsw i32 %60, 1
  store i32 %61, ptr %5, align 4, !tbaa !36
  br label %62

62:                                               ; preds = %103, %58
  %63 = load i32, ptr %5, align 4, !tbaa !36
  %64 = icmp sge i32 %63, 0
  br i1 %64, label %66, label %65

65:                                               ; preds = %62
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #6
  br label %106

66:                                               ; preds = %62
  %67 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %68 = load ptr, ptr %67, align 8, !tbaa !37
  %69 = load i32, ptr %5, align 4, !tbaa !36
  %70 = sext i32 %69 to i64
  %71 = getelementptr inbounds double, ptr %68, i64 %70
  %72 = load double, ptr %71, align 8, !tbaa !30
  %73 = fcmp oeq double %72, 0.000000e+00
  br i1 %73, label %74, label %102

74:                                               ; preds = %66
  %75 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %76 = load i32, ptr %75, align 4, !tbaa !35
  %77 = add nsw i32 %76, -1
  store i32 %77, ptr %75, align 4, !tbaa !35
  %78 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %79 = load ptr, ptr %78, align 8, !tbaa !38
  %80 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %81 = load i32, ptr %80, align 4, !tbaa !35
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds i32, ptr %79, i64 %82
  %84 = load i32, ptr %83, align 4, !tbaa !36
  %85 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %86 = load ptr, ptr %85, align 8, !tbaa !38
  %87 = load i32, ptr %5, align 4, !tbaa !36
  %88 = sext i32 %87 to i64
  %89 = getelementptr inbounds i32, ptr %86, i64 %88
  store i32 %84, ptr %89, align 4, !tbaa !36
  %90 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %91 = load ptr, ptr %90, align 8, !tbaa !37
  %92 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %93 = load i32, ptr %92, align 4, !tbaa !35
  %94 = sext i32 %93 to i64
  %95 = getelementptr inbounds double, ptr %91, i64 %94
  %96 = load double, ptr %95, align 8, !tbaa !30
  %97 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %98 = load ptr, ptr %97, align 8, !tbaa !37
  %99 = load i32, ptr %5, align 4, !tbaa !36
  %100 = sext i32 %99 to i64
  %101 = getelementptr inbounds double, ptr %98, i64 %100
  store double %96, ptr %101, align 8, !tbaa !30
  br label %102

102:                                              ; preds = %74, %66
  br label %103

103:                                              ; preds = %102
  %104 = load i32, ptr %5, align 4, !tbaa !36
  %105 = add nsw i32 %104, -1
  store i32 %105, ptr %5, align 4, !tbaa !36
  br label %62, !llvm.loop !39

106:                                              ; preds = %65
  store i1 true, ptr %2, align 1
  br label %567

107:                                              ; preds = %54, %50
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %108 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 0
  %109 = load ptr, ptr %108, align 8, !tbaa !41
  %110 = call noundef nonnull align 8 dereferenceable(496) ptr @_ZNK17HighsLpRelaxation12getMipSolverEv(ptr noundef nonnull align 8 dereferenceable(21425) %109)
  %111 = getelementptr inbounds %class.HighsMipSolver, ptr %110, i32 0, i32 25
  %112 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %111) #6
  %113 = getelementptr inbounds %struct.HighsMipSolverData, ptr %112, i32 0, i32 3
  store ptr %113, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  store double 0.000000e+00, ptr %7, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #6
  store i32 0, ptr %8, align 4, !tbaa !36
  br label %114

114:                                              ; preds = %130, %107
  %115 = load i32, ptr %8, align 4, !tbaa !36
  %116 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %117 = load i32, ptr %116, align 4, !tbaa !35
  %118 = icmp ne i32 %115, %117
  br i1 %118, label %120, label %119

119:                                              ; preds = %114
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  br label %133

120:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %121 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %122 = load ptr, ptr %121, align 8, !tbaa !37
  %123 = load i32, ptr %8, align 4, !tbaa !36
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds double, ptr %122, i64 %124
  %126 = load double, ptr %125, align 8, !tbaa !30
  %127 = call noundef double @_ZSt3absd(double noundef %126)
  store double %127, ptr %9, align 8, !tbaa !30
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %7)
  %129 = load double, ptr %128, align 8, !tbaa !30
  store double %129, ptr %7, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  br label %130

130:                                              ; preds = %120
  %131 = load i32, ptr %8, align 4, !tbaa !36
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr %8, align 4, !tbaa !36
  br label %114, !llvm.loop !42

133:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  %134 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 10
  %135 = load double, ptr %134, align 8, !tbaa !43
  %136 = fmul double 1.000000e+02, %135
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  store double 1.000000e-03, ptr %11, align 8, !tbaa !30
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %11)
  %138 = load double, ptr %137, align 8, !tbaa !30
  %139 = fmul double %136, %138
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  store double %139, ptr %10, align 8, !tbaa !30
  %140 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 15
  store i8 1, ptr %140, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  %141 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %142 = load i32, ptr %141, align 4, !tbaa !35
  %143 = sub nsw i32 %142, 1
  store i32 %143, ptr %12, align 4, !tbaa !36
  br label %144

144:                                              ; preds = %258, %133
  %145 = load i32, ptr %12, align 4, !tbaa !36
  %146 = icmp sge i32 %145, 0
  br i1 %146, label %148, label %147

147:                                              ; preds = %144
  store i32 8, ptr %13, align 4
  br label %261

148:                                              ; preds = %144
  %149 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %150 = load ptr, ptr %149, align 8, !tbaa !37
  %151 = load i32, ptr %12, align 4, !tbaa !36
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds double, ptr %150, i64 %152
  %154 = load double, ptr %153, align 8, !tbaa !30
  %155 = fcmp oeq double %154, 0.000000e+00
  br i1 %155, label %156, label %157

156:                                              ; preds = %148
  br label %258

157:                                              ; preds = %148
  %158 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %159 = load ptr, ptr %158, align 8, !tbaa !37
  %160 = load i32, ptr %12, align 4, !tbaa !36
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds double, ptr %159, i64 %161
  %163 = load double, ptr %162, align 8, !tbaa !30
  %164 = call noundef double @_ZSt3absd(double noundef %163)
  %165 = load double, ptr %10, align 8, !tbaa !30
  %166 = fcmp ole double %164, %165
  br i1 %166, label %167, label %241

167:                                              ; preds = %157
  %168 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %169 = load ptr, ptr %168, align 8, !tbaa !37
  %170 = load i32, ptr %12, align 4, !tbaa !36
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds double, ptr %169, i64 %171
  %173 = load double, ptr %172, align 8, !tbaa !30
  %174 = fcmp olt double %173, 0.000000e+00
  br i1 %174, label %175, label %205

175:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  %176 = load ptr, ptr %6, align 8, !tbaa !5
  %177 = getelementptr inbounds %class.HighsDomain, ptr %176, i32 0, i32 26
  %178 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %179 = load ptr, ptr %178, align 8, !tbaa !38
  %180 = load i32, ptr %12, align 4, !tbaa !36
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds i32, ptr %179, i64 %181
  %183 = load i32, ptr %182, align 4, !tbaa !36
  %184 = sext i32 %183 to i64
  %185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %184) #6
  %186 = load double, ptr %185, align 8, !tbaa !30
  store double %186, ptr %14, align 8, !tbaa !30
  %187 = load double, ptr %14, align 8, !tbaa !30
  %188 = fcmp oeq double %187, 0x7FF0000000000000
  br i1 %188, label %189, label %190

189:                                              ; preds = %175
  store i1 false, ptr %2, align 1
  store i32 1, ptr %13, align 4
  br label %202

190:                                              ; preds = %175
  %191 = load double, ptr %14, align 8, !tbaa !30
  %192 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %193 = load ptr, ptr %192, align 8, !tbaa !37
  %194 = load i32, ptr %12, align 4, !tbaa !36
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds double, ptr %193, i64 %195
  %197 = load double, ptr %196, align 8, !tbaa !30
  %198 = fmul double %191, %197
  %199 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %200 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %199, double noundef %198)
  br label %201

201:                                              ; preds = %190
  store i32 0, ptr %13, align 4
  br label %202

202:                                              ; preds = %201, %189
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  %203 = load i32, ptr %13, align 4
  switch i32 %203, label %261 [
    i32 0, label %204
  ]

204:                                              ; preds = %202
  br label %235

205:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  %206 = load ptr, ptr %6, align 8, !tbaa !5
  %207 = getelementptr inbounds %class.HighsDomain, ptr %206, i32 0, i32 25
  %208 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %209 = load ptr, ptr %208, align 8, !tbaa !38
  %210 = load i32, ptr %12, align 4, !tbaa !36
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds i32, ptr %209, i64 %211
  %213 = load i32, ptr %212, align 4, !tbaa !36
  %214 = sext i32 %213 to i64
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %207, i64 noundef %214) #6
  %216 = load double, ptr %215, align 8, !tbaa !30
  store double %216, ptr %15, align 8, !tbaa !30
  %217 = load double, ptr %15, align 8, !tbaa !30
  %218 = fcmp oeq double %217, 0xFFF0000000000000
  br i1 %218, label %219, label %220

219:                                              ; preds = %205
  store i1 false, ptr %2, align 1
  store i32 1, ptr %13, align 4
  br label %232

220:                                              ; preds = %205
  %221 = load double, ptr %15, align 8, !tbaa !30
  %222 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %223 = load ptr, ptr %222, align 8, !tbaa !37
  %224 = load i32, ptr %12, align 4, !tbaa !36
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds double, ptr %223, i64 %225
  %227 = load double, ptr %226, align 8, !tbaa !30
  %228 = fmul double %221, %227
  %229 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %230 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %229, double noundef %228)
  br label %231

231:                                              ; preds = %220
  store i32 0, ptr %13, align 4
  br label %232

232:                                              ; preds = %231, %219
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  %233 = load i32, ptr %13, align 4
  switch i32 %233, label %261 [
    i32 0, label %234
  ]

234:                                              ; preds = %232
  br label %235

235:                                              ; preds = %234, %204
  %236 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %237 = load ptr, ptr %236, align 8, !tbaa !37
  %238 = load i32, ptr %12, align 4, !tbaa !36
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds double, ptr %237, i64 %239
  store double 0.000000e+00, ptr %240, align 8, !tbaa !30
  br label %258

241:                                              ; preds = %157
  %242 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 15
  %243 = load i8, ptr %242, align 8, !tbaa !31, !range !32, !noundef !33
  %244 = trunc i8 %243 to i1
  br i1 %244, label %245, label %257

245:                                              ; preds = %241
  %246 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 0
  %247 = load ptr, ptr %246, align 8, !tbaa !41
  %248 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %249 = load ptr, ptr %248, align 8, !tbaa !38
  %250 = load i32, ptr %12, align 4, !tbaa !36
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds i32, ptr %249, i64 %251
  %253 = load i32, ptr %252, align 4, !tbaa !36
  %254 = call noundef zeroext i1 @_ZNK17HighsLpRelaxation13isColIntegralEi(ptr noundef nonnull align 8 dereferenceable(21425) %247, i32 noundef %253)
  br i1 %254, label %257, label %255

255:                                              ; preds = %245
  %256 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 15
  store i8 0, ptr %256, align 8, !tbaa !31
  br label %257

257:                                              ; preds = %255, %245, %241
  br label %258

258:                                              ; preds = %257, %235, %156
  %259 = load i32, ptr %12, align 4, !tbaa !36
  %260 = add nsw i32 %259, -1
  store i32 %260, ptr %12, align 4, !tbaa !36
  br label %144, !llvm.loop !44

261:                                              ; preds = %232, %202, %147
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  %262 = load i32, ptr %13, align 4
  switch i32 %262, label %566 [
    i32 8, label %263
  ]

263:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  %264 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %265 = load i32, ptr %264, align 4, !tbaa !35
  %266 = sub nsw i32 %265, 1
  store i32 %266, ptr %16, align 4, !tbaa !36
  br label %267

267:                                              ; preds = %308, %263
  %268 = load i32, ptr %16, align 4, !tbaa !36
  %269 = icmp sge i32 %268, 0
  br i1 %269, label %271, label %270

270:                                              ; preds = %267
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %311

271:                                              ; preds = %267
  %272 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %273 = load ptr, ptr %272, align 8, !tbaa !37
  %274 = load i32, ptr %16, align 4, !tbaa !36
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds double, ptr %273, i64 %275
  %277 = load double, ptr %276, align 8, !tbaa !30
  %278 = fcmp oeq double %277, 0.000000e+00
  br i1 %278, label %279, label %307

279:                                              ; preds = %271
  %280 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %281 = load i32, ptr %280, align 4, !tbaa !35
  %282 = add nsw i32 %281, -1
  store i32 %282, ptr %280, align 4, !tbaa !35
  %283 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %284 = load ptr, ptr %283, align 8, !tbaa !38
  %285 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %286 = load i32, ptr %285, align 4, !tbaa !35
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds i32, ptr %284, i64 %287
  %289 = load i32, ptr %288, align 4, !tbaa !36
  %290 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %291 = load ptr, ptr %290, align 8, !tbaa !38
  %292 = load i32, ptr %16, align 4, !tbaa !36
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds i32, ptr %291, i64 %293
  store i32 %289, ptr %294, align 4, !tbaa !36
  %295 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %296 = load ptr, ptr %295, align 8, !tbaa !37
  %297 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %298 = load i32, ptr %297, align 4, !tbaa !35
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds double, ptr %296, i64 %299
  %301 = load double, ptr %300, align 8, !tbaa !30
  %302 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %303 = load ptr, ptr %302, align 8, !tbaa !37
  %304 = load i32, ptr %16, align 4, !tbaa !36
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds double, ptr %303, i64 %305
  store double %301, ptr %306, align 8, !tbaa !30
  br label %307

307:                                              ; preds = %279, %271
  br label %308

308:                                              ; preds = %307
  %309 = load i32, ptr %16, align 4, !tbaa !36
  %310 = add nsw i32 %309, -1
  store i32 %310, ptr %16, align 4, !tbaa !36
  br label %267, !llvm.loop !45

311:                                              ; preds = %270
  %312 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 15
  %313 = load i8, ptr %312, align 8, !tbaa !31, !range !32, !noundef !33
  %314 = trunc i8 %313 to i1
  br i1 %314, label %315, label %528

315:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %316 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %317 = load ptr, ptr %316, align 8, !tbaa !37
  %318 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %319 = load i32, ptr %318, align 4, !tbaa !35
  %320 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 10
  %321 = load double, ptr %320, align 8, !tbaa !43
  %322 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 11
  %323 = load double, ptr %322, align 8, !tbaa !9
  %324 = call noundef double @_ZN13HighsIntegers13integralScaleEPKdidd(ptr noundef %317, i32 noundef %319, double noundef %321, double noundef %323)
  store double %324, ptr %17, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #6
  store i8 1, ptr %18, align 1, !tbaa !46
  %325 = load double, ptr %17, align 8, !tbaa !30
  %326 = fcmp une double %325, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  br i1 %326, label %327, label %333

327:                                              ; preds = %315
  %328 = load double, ptr %17, align 8, !tbaa !30
  store double 1.000000e+00, ptr %19, align 8, !tbaa !30
  %329 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %7)
  %330 = load double, ptr %329, align 8, !tbaa !30
  %331 = fmul double %328, %330
  %332 = fcmp ole double %331, 0x4330000000000000
  br label %333

333:                                              ; preds = %327, %315
  %334 = phi i1 [ false, %315 ], [ %332, %327 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br i1 %334, label %335, label %464

335:                                              ; preds = %333
  %336 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  call void @_ZN12HighsCDouble11renormalizeEv(ptr noundef nonnull align 8 dereferenceable(16) %336)
  %337 = load double, ptr %17, align 8, !tbaa !30
  %338 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %339 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemLEd(ptr noundef nonnull align 8 dereferenceable(16) %338, double noundef %337)
  %340 = load double, ptr %7, align 8, !tbaa !30
  %341 = load double, ptr %17, align 8, !tbaa !30
  %342 = fmul double %340, %341
  %343 = call noundef i64 @_ZN13HighsIntegers14nearestIntegerEd(double noundef %342)
  %344 = sitofp i64 %343 to double
  store double %344, ptr %7, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  store i32 0, ptr %20, align 4, !tbaa !36
  br label %345

345:                                              ; preds = %434, %335
  %346 = load i32, ptr %20, align 4, !tbaa !36
  %347 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %348 = load i32, ptr %347, align 4, !tbaa !35
  %349 = icmp ne i32 %346, %348
  br i1 %349, label %351, label %350

350:                                              ; preds = %345
  store i32 14, ptr %13, align 4
  br label %437

351:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #6
  %352 = load double, ptr %17, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #6
  %353 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %354 = load ptr, ptr %353, align 8, !tbaa !37
  %355 = load i32, ptr %20, align 4, !tbaa !36
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds double, ptr %354, i64 %356
  %358 = load double, ptr %357, align 8, !tbaa !30
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %22, double noundef %358)
  %359 = call { double, double } @_ZmldRK12HighsCDouble(double noundef %352, ptr noundef nonnull align 8 dereferenceable(16) %22)
  %360 = getelementptr inbounds { double, double }, ptr %21, i32 0, i32 0
  %361 = extractvalue { double, double } %359, 0
  store double %361, ptr %360, align 8
  %362 = getelementptr inbounds { double, double }, ptr %21, i32 0, i32 1
  %363 = extractvalue { double, double } %359, 1
  store double %363, ptr %362, align 8
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %364 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
  %365 = call noundef i64 @_ZN13HighsIntegers14nearestIntegerEd(double noundef %364)
  %366 = sitofp i64 %365 to double
  store double %366, ptr %23, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #6
  %367 = load double, ptr %23, align 8, !tbaa !30
  %368 = call { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16) %21, double noundef %367)
  %369 = getelementptr inbounds { double, double }, ptr %25, i32 0, i32 0
  %370 = extractvalue { double, double } %368, 0
  store double %370, ptr %369, align 8
  %371 = getelementptr inbounds { double, double }, ptr %25, i32 0, i32 1
  %372 = extractvalue { double, double } %368, 1
  store double %372, ptr %371, align 8
  %373 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %25)
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #6
  store double %373, ptr %24, align 8, !tbaa !30
  %374 = load double, ptr %23, align 8, !tbaa !30
  %375 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %376 = load ptr, ptr %375, align 8, !tbaa !37
  %377 = load i32, ptr %20, align 4, !tbaa !36
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds double, ptr %376, i64 %378
  store double %374, ptr %379, align 8, !tbaa !30
  %380 = load double, ptr %24, align 8, !tbaa !30
  %381 = fcmp olt double %380, 0.000000e+00
  br i1 %381, label %382, label %406

382:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %383 = load ptr, ptr %6, align 8, !tbaa !5
  %384 = getelementptr inbounds %class.HighsDomain, ptr %383, i32 0, i32 26
  %385 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %386 = load ptr, ptr %385, align 8, !tbaa !38
  %387 = load i32, ptr %20, align 4, !tbaa !36
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds i32, ptr %386, i64 %388
  %390 = load i32, ptr %389, align 4, !tbaa !36
  %391 = sext i32 %390 to i64
  %392 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %384, i64 noundef %391) #6
  %393 = load double, ptr %392, align 8, !tbaa !30
  store double %393, ptr %26, align 8, !tbaa !30
  %394 = load double, ptr %26, align 8, !tbaa !30
  %395 = fcmp oeq double %394, 0x7FF0000000000000
  br i1 %395, label %396, label %397

396:                                              ; preds = %382
  store i1 false, ptr %2, align 1
  store i32 1, ptr %13, align 4
  br label %403

397:                                              ; preds = %382
  %398 = load double, ptr %24, align 8, !tbaa !30
  %399 = load double, ptr %26, align 8, !tbaa !30
  %400 = fmul double %398, %399
  %401 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %402 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %401, double noundef %400)
  store i32 0, ptr %13, align 4
  br label %403

403:                                              ; preds = %397, %396
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  %404 = load i32, ptr %13, align 4
  switch i32 %404, label %431 [
    i32 0, label %405
  ]

405:                                              ; preds = %403
  br label %430

406:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #6
  %407 = load ptr, ptr %6, align 8, !tbaa !5
  %408 = getelementptr inbounds %class.HighsDomain, ptr %407, i32 0, i32 25
  %409 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 13
  %410 = load ptr, ptr %409, align 8, !tbaa !38
  %411 = load i32, ptr %20, align 4, !tbaa !36
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds i32, ptr %410, i64 %412
  %414 = load i32, ptr %413, align 4, !tbaa !36
  %415 = sext i32 %414 to i64
  %416 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %408, i64 noundef %415) #6
  %417 = load double, ptr %416, align 8, !tbaa !30
  store double %417, ptr %27, align 8, !tbaa !30
  %418 = load double, ptr %27, align 8, !tbaa !30
  %419 = fcmp oeq double %418, 0xFFF0000000000000
  br i1 %419, label %420, label %421

420:                                              ; preds = %406
  store i1 false, ptr %2, align 1
  store i32 1, ptr %13, align 4
  br label %427

421:                                              ; preds = %406
  %422 = load double, ptr %24, align 8, !tbaa !30
  %423 = load double, ptr %27, align 8, !tbaa !30
  %424 = fmul double %422, %423
  %425 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %426 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %425, double noundef %424)
  store i32 0, ptr %13, align 4
  br label %427

427:                                              ; preds = %421, %420
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  %428 = load i32, ptr %13, align 4
  switch i32 %428, label %431 [
    i32 0, label %429
  ]

429:                                              ; preds = %427
  br label %430

430:                                              ; preds = %429, %405
  store i32 0, ptr %13, align 4
  br label %431

431:                                              ; preds = %430, %427, %403
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #6
  %432 = load i32, ptr %13, align 4
  switch i32 %432, label %437 [
    i32 0, label %433
  ]

433:                                              ; preds = %431
  br label %434

434:                                              ; preds = %433
  %435 = load i32, ptr %20, align 4, !tbaa !36
  %436 = add nsw i32 %435, 1
  store i32 %436, ptr %20, align 4, !tbaa !36
  br label %345, !llvm.loop !47

437:                                              ; preds = %431, %350
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  %438 = load i32, ptr %13, align 4
  switch i32 %438, label %525 [
    i32 14, label %439
  ]

439:                                              ; preds = %437
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #6
  %440 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %441 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 10
  %442 = load double, ptr %441, align 8, !tbaa !43
  %443 = call { double, double } @_ZNK12HighsCDoubleplEd(ptr noundef nonnull align 8 dereferenceable(16) %440, double noundef %442)
  %444 = getelementptr inbounds { double, double }, ptr %29, i32 0, i32 0
  %445 = extractvalue { double, double } %443, 0
  store double %445, ptr %444, align 8
  %446 = getelementptr inbounds { double, double }, ptr %29, i32 0, i32 1
  %447 = extractvalue { double, double } %443, 1
  store double %447, ptr %446, align 8
  %448 = call { double, double } @_Z5floorRK12HighsCDouble(ptr noundef nonnull align 8 dereferenceable(16) %29)
  %449 = getelementptr inbounds { double, double }, ptr %28, i32 0, i32 0
  %450 = extractvalue { double, double } %448, 0
  store double %450, ptr %449, align 8
  %451 = getelementptr inbounds { double, double }, ptr %28, i32 0, i32 1
  %452 = extractvalue { double, double } %448, 1
  store double %452, ptr %451, align 8
  %453 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %453, ptr align 8 %28, i64 16, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #6
  %454 = load double, ptr %17, align 8, !tbaa !30
  %455 = load double, ptr %7, align 8, !tbaa !30
  %456 = fmul double %454, %455
  %457 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 10
  %458 = load double, ptr %457, align 8, !tbaa !43
  %459 = fmul double %456, %458
  %460 = fcmp olt double %459, 5.000000e-01
  br i1 %460, label %461, label %463

461:                                              ; preds = %439
  store i8 0, ptr %18, align 1, !tbaa !46
  %462 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 16
  store i8 1, ptr %462, align 1, !tbaa !34
  br label %463

463:                                              ; preds = %461, %439
  br label %464

464:                                              ; preds = %463, %333
  %465 = load i8, ptr %18, align 1, !tbaa !46, !range !32, !noundef !33
  %466 = trunc i8 %465 to i1
  br i1 %466, label %467, label %524

467:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  store double 0x7FF0000000000000, ptr %30, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  store i32 0, ptr %31, align 4, !tbaa !36
  br label %468

468:                                              ; preds = %484, %467
  %469 = load i32, ptr %31, align 4, !tbaa !36
  %470 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %471 = load i32, ptr %470, align 4, !tbaa !35
  %472 = icmp ne i32 %469, %471
  br i1 %472, label %474, label %473

473:                                              ; preds = %468
  store i32 17, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  br label %487

474:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %475 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %476 = load ptr, ptr %475, align 8, !tbaa !37
  %477 = load i32, ptr %31, align 4, !tbaa !36
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds double, ptr %476, i64 %478
  %480 = load double, ptr %479, align 8, !tbaa !30
  %481 = call noundef double @_ZSt3absd(double noundef %480)
  store double %481, ptr %32, align 8, !tbaa !30
  %482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %483 = load double, ptr %482, align 8, !tbaa !30
  store double %483, ptr %30, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %484

484:                                              ; preds = %474
  %485 = load i32, ptr %31, align 4, !tbaa !36
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr %31, align 4, !tbaa !36
  br label %468, !llvm.loop !48

487:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  %488 = load double, ptr %30, align 8, !tbaa !30
  %489 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 11
  %490 = load double, ptr %489, align 8, !tbaa !9
  %491 = fsub double %488, %490
  %492 = call double @frexp(double noundef %491, ptr noundef %33) #6
  %493 = load i32, ptr %33, align 4, !tbaa !36
  %494 = sub nsw i32 0, %493
  store i32 %494, ptr %33, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #6
  %495 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %496 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %495)
  %497 = load i32, ptr %33, align 4, !tbaa !36
  %498 = call double @ldexp(double noundef %496, i32 noundef %497) #6
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %34, double noundef %498)
  %499 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %499, ptr align 8 %34, i64 16, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  store i32 0, ptr %35, align 4, !tbaa !36
  br label %500

500:                                              ; preds = %520, %487
  %501 = load i32, ptr %35, align 4, !tbaa !36
  %502 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %503 = load i32, ptr %502, align 4, !tbaa !35
  %504 = icmp ne i32 %501, %503
  br i1 %504, label %506, label %505

505:                                              ; preds = %500
  store i32 20, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %523

506:                                              ; preds = %500
  %507 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %508 = load ptr, ptr %507, align 8, !tbaa !37
  %509 = load i32, ptr %35, align 4, !tbaa !36
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds double, ptr %508, i64 %510
  %512 = load double, ptr %511, align 8, !tbaa !30
  %513 = load i32, ptr %33, align 4, !tbaa !36
  %514 = call double @ldexp(double noundef %512, i32 noundef %513) #6
  %515 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %516 = load ptr, ptr %515, align 8, !tbaa !37
  %517 = load i32, ptr %35, align 4, !tbaa !36
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds double, ptr %516, i64 %518
  store double %514, ptr %519, align 8, !tbaa !30
  br label %520

520:                                              ; preds = %506
  %521 = load i32, ptr %35, align 4, !tbaa !36
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr %35, align 4, !tbaa !36
  br label %500, !llvm.loop !49

523:                                              ; preds = %505
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  br label %524

524:                                              ; preds = %523, %464
  store i32 0, ptr %13, align 4
  br label %525

525:                                              ; preds = %524, %437
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  %526 = load i32, ptr %13, align 4
  switch i32 %526, label %566 [
    i32 0, label %527
  ]

527:                                              ; preds = %525
  br label %565

528:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  %529 = load double, ptr %7, align 8, !tbaa !30
  %530 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 11
  %531 = load double, ptr %530, align 8, !tbaa !9
  %532 = fsub double %529, %531
  %533 = call double @frexp(double noundef %532, ptr noundef %36) #6
  %534 = load i32, ptr %36, align 4, !tbaa !36
  %535 = sub nsw i32 0, %534
  store i32 %535, ptr %36, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #6
  %536 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  %537 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %536)
  %538 = load i32, ptr %36, align 4, !tbaa !36
  %539 = call double @ldexp(double noundef %537, i32 noundef %538) #6
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %37, double noundef %539)
  %540 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %540, ptr align 8 %37, i64 16, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  store i32 0, ptr %38, align 4, !tbaa !36
  br label %541

541:                                              ; preds = %561, %528
  %542 = load i32, ptr %38, align 4, !tbaa !36
  %543 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 17
  %544 = load i32, ptr %543, align 4, !tbaa !35
  %545 = icmp ne i32 %542, %544
  br i1 %545, label %547, label %546

546:                                              ; preds = %541
  store i32 23, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  br label %564

547:                                              ; preds = %541
  %548 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %549 = load ptr, ptr %548, align 8, !tbaa !37
  %550 = load i32, ptr %38, align 4, !tbaa !36
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds double, ptr %549, i64 %551
  %553 = load double, ptr %552, align 8, !tbaa !30
  %554 = load i32, ptr %36, align 4, !tbaa !36
  %555 = call double @ldexp(double noundef %553, i32 noundef %554) #6
  %556 = getelementptr inbounds %class.HighsCutGeneration, ptr %39, i32 0, i32 12
  %557 = load ptr, ptr %556, align 8, !tbaa !37
  %558 = load i32, ptr %38, align 4, !tbaa !36
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds double, ptr %557, i64 %559
  store double %555, ptr %560, align 8, !tbaa !30
  br label %561

561:                                              ; preds = %547
  %562 = load i32, ptr %38, align 4, !tbaa !36
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %38, align 4, !tbaa !36
  br label %541, !llvm.loop !50

564:                                              ; preds = %546
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br label %565

565:                                              ; preds = %564, %527
  store i1 true, ptr %2, align 1
  store i32 1, ptr %13, align 4
  br label %566

566:                                              ; preds = %565, %525, %261
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  br label %567

567:                                              ; preds = %566, %106
  %568 = load i1, ptr %2, align 1
  ret i1 %568
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK17HighsLpRelaxation13isColIntegralEi(ptr noundef nonnull align 8 dereferenceable(21425), i32 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13HighsIntegers13integralScaleEPKdidd(ptr noundef, i32 noundef, double noundef, double noundef) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers14nearestIntegerEd(double noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_Z5floorRK12HighsCDouble(ptr noundef nonnull align 8 dereferenceable(16)) #4

; Function Attrs: nounwind
declare double @frexp(double noundef, ptr noundef) #5

; Function Attrs: nounwind
declare double @ldexp(double noundef, i32 noundef) #5

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !18, i64 184}
!10 = !{!"_ZTS18HighsCutGeneration", !6, i64 0, !6, i64 8, !11, i64 16, !13, i64 24, !17, i64 48, !17, i64 64, !19, i64 80, !19, i64 104, !23, i64 128, !23, i64 152, !18, i64 176, !18, i64 184, !6, i64 192, !6, i64 200, !17, i64 208, !27, i64 224, !27, i64 225, !28, i64 228, !18, i64 232, !13, i64 240, !19, i64 264}
!11 = !{!"_ZTS11HighsRandom", !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!"_ZTSSt6vectorIiSaIiEE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!"_ZTS12HighsCDouble", !18, i64 0, !18, i64 8}
!18 = !{!"double", !7, i64 0}
!19 = !{!"_ZTSSt6vectorIdSaIdEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSSt6vectorIhSaIhEE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"bool", !7, i64 0}
!28 = !{!"int", !7, i64 0}
!29 = !{i64 0, i64 8, !30, i64 8, i64 8, !30}
!30 = !{!18, !18, i64 0}
!31 = !{!10, !27, i64 224}
!32 = !{i8 0, i8 2}
!33 = !{}
!34 = !{!10, !27, i64 225}
!35 = !{!10, !28, i64 228}
!36 = !{!28, !28, i64 0}
!37 = !{!10, !6, i64 192}
!38 = !{!10, !6, i64 200}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!10, !6, i64 0}
!42 = distinct !{!42, !40}
!43 = !{!10, !18, i64 176}
!44 = distinct !{!44, !40}
!45 = distinct !{!45, !40}
!46 = !{!27, !27, i64 0}
!47 = distinct !{!47, !40}
!48 = distinct !{!48, !40}
!49 = distinct !{!49, !40}
!50 = distinct !{!50, !40}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%class.HighsCDouble = type { double, double }

; 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: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(496) ptr @_ZNK17HighsLpRelaxation12getMipSolverEv(ptr noundef nonnull align 8 dereferenceable(21425)) local_unnamed_addr #1 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 #1 align 2

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK12HighsCDoublegtEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_ZmldRK12HighsCDouble(double noundef, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

; 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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemLEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { double, double } @_ZNK12HighsCDoubleplEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN18HighsCutGeneration14postprocessCutEv(ptr noundef nonnull align 8 dereferenceable(288) %0) local_unnamed_addr #4 align 2 {
  %2 = alloca %class.HighsCDouble, align 8
  %3 = alloca double, align 8
  %4 = alloca double, align 8
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca %class.HighsCDouble, align 8
  %8 = alloca %class.HighsCDouble, align 8
  %9 = alloca %class.HighsCDouble, align 8
  %10 = alloca %class.HighsCDouble, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca i32, align 4
  %14 = alloca %class.HighsCDouble, align 8
  %15 = alloca i32, align 4
  %16 = alloca %class.HighsCDouble, align 8
  %17 = getelementptr inbounds i8, ptr %0, i64 208
  %18 = tail call noundef zeroext i1 @_ZNK12HighsCDoubleltEd(ptr noundef nonnull align 8 dereferenceable(16) %17, double noundef 0.000000e+00)
  br i1 %18, label %19, label %25

19:                                               ; preds = %1
  %20 = getelementptr inbounds i8, ptr %0, i64 184
  %21 = load double, ptr %20, align 8, !tbaa !5
  %22 = fneg double %21
  %23 = tail call noundef zeroext i1 @_ZNK12HighsCDoublegtEd(ptr noundef nonnull align 8 dereferenceable(16) %17, double noundef %22)
  br i1 %23, label %24, label %25

24:                                               ; preds = %19
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #7
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %2, double noundef 0.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %2, i64 16, i1 false), !tbaa.struct !28
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #7
  br label %25

25:                                               ; preds = %24, %19, %1
  %26 = getelementptr inbounds i8, ptr %0, i64 224
  %27 = load i8, ptr %26, align 8, !tbaa !30, !range !31, !noundef !32
  %28 = trunc nuw i8 %27 to i1
  br i1 %28, label %29, label %60

29:                                               ; preds = %25
  %30 = getelementptr inbounds i8, ptr %0, i64 225
  %31 = load i8, ptr %30, align 1, !tbaa !33, !range !31, !noundef !32
  %32 = trunc nuw i8 %31 to i1
  br i1 %32, label %33, label %60

33:                                               ; preds = %29
  %34 = getelementptr inbounds i8, ptr %0, i64 228
  %35 = load i32, ptr %34, align 4, !tbaa !34
  %36 = icmp sgt i32 %35, 0
  br i1 %36, label %.lr.ph159, label %.loopexit

.lr.ph159:                                        ; preds = %33
  %37 = getelementptr inbounds i8, ptr %0, i64 192
  %38 = load ptr, ptr %37, align 8, !tbaa !35
  %39 = getelementptr inbounds i8, ptr %0, i64 200
  %40 = load ptr, ptr %39, align 8
  %41 = zext nneg i32 %35 to i64
  br label %42

42:                                               ; preds = %.lr.ph159, %57
  %43 = phi i32 [ %35, %.lr.ph159 ], [ %58, %57 ]
  %indvars.iv179 = phi i64 [ %41, %.lr.ph159 ], [ %indvars.iv.next180, %57 ]
  %indvars.iv.next180 = add nsw i64 %indvars.iv179, -1
  %44 = getelementptr inbounds double, ptr %38, i64 %indvars.iv.next180
  %45 = load double, ptr %44, align 8, !tbaa !29
  %46 = fcmp oeq double %45, 0.000000e+00
  br i1 %46, label %47, label %57

47:                                               ; preds = %42
  %48 = add nsw i32 %43, -1
  store i32 %48, ptr %34, align 4, !tbaa !34
  %49 = sext i32 %48 to i64
  %50 = getelementptr inbounds i32, ptr %40, i64 %49
  %51 = load i32, ptr %50, align 4, !tbaa !36
  %52 = getelementptr inbounds i32, ptr %40, i64 %indvars.iv.next180
  store i32 %51, ptr %52, align 4, !tbaa !36
  %53 = load i32, ptr %34, align 4, !tbaa !34
  %54 = sext i32 %53 to i64
  %55 = getelementptr inbounds double, ptr %38, i64 %54
  %56 = load double, ptr %55, align 8, !tbaa !29
  store double %56, ptr %44, align 8, !tbaa !29
  br label %57

57:                                               ; preds = %42, %47
  %58 = phi i32 [ %43, %42 ], [ %53, %47 ]
  %59 = icmp ugt i64 %indvars.iv179, 1
  br i1 %59, label %42, label %.loopexit, !llvm.loop !37

60:                                               ; preds = %29, %25
  %61 = load ptr, ptr %0, align 8, !tbaa !39
  %62 = call noundef nonnull align 8 dereferenceable(496) ptr @_ZNK17HighsLpRelaxation12getMipSolverEv(ptr noundef nonnull align 8 dereferenceable(21425) %61)
  %63 = getelementptr inbounds i8, ptr %62, i64 224
  %64 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #7
  store double 0.000000e+00, ptr %3, align 8, !tbaa !29
  %65 = getelementptr inbounds i8, ptr %0, i64 228
  %66 = load i32, ptr %65, align 4, !tbaa !34
  %.not127 = icmp eq i32 %66, 0
  br i1 %.not127, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %60
  %67 = getelementptr inbounds i8, ptr %0, i64 192
  br label %81

._crit_edge:                                      ; preds = %81, %60
  %68 = getelementptr inbounds i8, ptr %0, i64 176
  %69 = load double, ptr %68, align 8, !tbaa !40
  %70 = fmul double %69, 1.000000e+02
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  store double 1.000000e-03, ptr %5, align 8, !tbaa !29
  %71 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %5)
  %72 = load double, ptr %71, align 8, !tbaa !29
  %73 = fmul double %70, %72
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  store i8 1, ptr %26, align 8, !tbaa !30
  %74 = load i32, ptr %65, align 4, !tbaa !34
  %75 = icmp slt i32 %74, 1
  br i1 %75, label %._crit_edge136, label %.lr.ph132

.lr.ph132:                                        ; preds = %._crit_edge
  %76 = getelementptr inbounds i8, ptr %0, i64 192
  %77 = getelementptr inbounds i8, ptr %64, i64 1688
  %78 = getelementptr inbounds i8, ptr %0, i64 200
  %79 = getelementptr inbounds i8, ptr %64, i64 1712
  %80 = zext nneg i32 %74 to i64
  br label %90

81:                                               ; preds = %.lr.ph, %81
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %81 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #7
  %82 = load ptr, ptr %67, align 8, !tbaa !35
  %83 = getelementptr inbounds double, ptr %82, i64 %indvars.iv
  %84 = load double, ptr %83, align 8, !tbaa !29
  %85 = call noundef double @_ZSt3absd(double noundef %84)
  store double %85, ptr %4, align 8, !tbaa !29
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %3)
  %87 = load double, ptr %86, align 8, !tbaa !29
  store double %87, ptr %3, align 8, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %88 = load i32, ptr %65, align 4, !tbaa !34
  %89 = zext i32 %88 to i64
  %.not = icmp eq i64 %indvars.iv.next, %89
  br i1 %.not, label %._crit_edge, label %81, !llvm.loop !41

90:                                               ; preds = %.lr.ph132, %133
  %indvars.iv161 = phi i64 [ %80, %.lr.ph132 ], [ %indvars.iv.next162, %133 ]
  %indvars.iv.next162 = add nsw i64 %indvars.iv161, -1
  %91 = load ptr, ptr %76, align 8, !tbaa !35
  %92 = getelementptr inbounds double, ptr %91, i64 %indvars.iv.next162
  %93 = load double, ptr %92, align 8, !tbaa !29
  %94 = fcmp oeq double %93, 0.000000e+00
  br i1 %94, label %133, label %95

95:                                               ; preds = %90
  %96 = call noundef double @_ZSt3absd(double noundef %93)
  %97 = fcmp ugt double %96, %73
  br i1 %97, label %123, label %98

98:                                               ; preds = %95
  %99 = load ptr, ptr %76, align 8, !tbaa !35
  %100 = getelementptr inbounds double, ptr %99, i64 %indvars.iv.next162
  %101 = load double, ptr %100, align 8, !tbaa !29
  %102 = fcmp olt double %101, 0.000000e+00
  %103 = load ptr, ptr %78, align 8, !tbaa !42
  %104 = getelementptr inbounds i32, ptr %103, i64 %indvars.iv.next162
  %105 = load i32, ptr %104, align 4, !tbaa !36
  %106 = sext i32 %105 to i64
  br i1 %102, label %107, label %111

107:                                              ; preds = %98
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef %106) #7
  %109 = load double, ptr %108, align 8, !tbaa !29
  %110 = fcmp une double %109, 0x7FF0000000000000
  br i1 %110, label %115, label %.critedge126

111:                                              ; preds = %98
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %106) #7
  %113 = load double, ptr %112, align 8, !tbaa !29
  %114 = fcmp une double %113, 0xFFF0000000000000
  br i1 %114, label %115, label %.critedge126

115:                                              ; preds = %111, %107
  %.sink185 = phi double [ %109, %107 ], [ %113, %111 ]
  %116 = load ptr, ptr %76, align 8, !tbaa !35
  %117 = getelementptr inbounds double, ptr %116, i64 %indvars.iv.next162
  %118 = load double, ptr %117, align 8, !tbaa !29
  %119 = fmul double %.sink185, %118
  %120 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %17, double noundef %119)
  %121 = load ptr, ptr %76, align 8, !tbaa !35
  %122 = getelementptr inbounds double, ptr %121, i64 %indvars.iv.next162
  store double 0.000000e+00, ptr %122, align 8, !tbaa !29
  br label %133

123:                                              ; preds = %95
  %124 = load i8, ptr %26, align 8, !tbaa !30, !range !31, !noundef !32
  %125 = trunc nuw i8 %124 to i1
  br i1 %125, label %126, label %133

126:                                              ; preds = %123
  %127 = load ptr, ptr %0, align 8, !tbaa !39
  %128 = load ptr, ptr %78, align 8, !tbaa !42
  %129 = getelementptr inbounds i32, ptr %128, i64 %indvars.iv.next162
  %130 = load i32, ptr %129, align 4, !tbaa !36
  %131 = call noundef zeroext i1 @_ZNK17HighsLpRelaxation13isColIntegralEi(ptr noundef nonnull align 8 dereferenceable(21425) %127, i32 noundef %130)
  br i1 %131, label %133, label %132

132:                                              ; preds = %126
  store i8 0, ptr %26, align 8, !tbaa !30
  br label %133

133:                                              ; preds = %123, %126, %132, %90, %115
  %134 = icmp ult i64 %indvars.iv161, 2
  br i1 %134, label %.critedge115, label %90, !llvm.loop !43

.critedge115:                                     ; preds = %133
  %.pre = load i32, ptr %65, align 4, !tbaa !34
  %135 = icmp sgt i32 %.pre, 0
  br i1 %135, label %.lr.ph135, label %._crit_edge136

.lr.ph135:                                        ; preds = %.critedge115
  %136 = getelementptr inbounds i8, ptr %0, i64 192
  %137 = load ptr, ptr %136, align 8, !tbaa !35
  %138 = getelementptr inbounds i8, ptr %0, i64 200
  %139 = load ptr, ptr %138, align 8
  %140 = zext nneg i32 %.pre to i64
  br label %144

._crit_edge136:                                   ; preds = %159, %._crit_edge, %.critedge115
  %141 = phi i32 [ %.pre, %.critedge115 ], [ %74, %._crit_edge ], [ %160, %159 ]
  %142 = load i8, ptr %26, align 8, !tbaa !30, !range !31, !noundef !32
  %143 = trunc nuw i8 %142 to i1
  br i1 %143, label %162, label %261

144:                                              ; preds = %.lr.ph135, %159
  %145 = phi i32 [ %.pre, %.lr.ph135 ], [ %160, %159 ]
  %indvars.iv164 = phi i64 [ %140, %.lr.ph135 ], [ %indvars.iv.next165, %159 ]
  %indvars.iv.next165 = add nsw i64 %indvars.iv164, -1
  %146 = getelementptr inbounds double, ptr %137, i64 %indvars.iv.next165
  %147 = load double, ptr %146, align 8, !tbaa !29
  %148 = fcmp oeq double %147, 0.000000e+00
  br i1 %148, label %149, label %159

149:                                              ; preds = %144
  %150 = add nsw i32 %145, -1
  store i32 %150, ptr %65, align 4, !tbaa !34
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds i32, ptr %139, i64 %151
  %153 = load i32, ptr %152, align 4, !tbaa !36
  %154 = getelementptr inbounds i32, ptr %139, i64 %indvars.iv.next165
  store i32 %153, ptr %154, align 4, !tbaa !36
  %155 = load i32, ptr %65, align 4, !tbaa !34
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds double, ptr %137, i64 %156
  %158 = load double, ptr %157, align 8, !tbaa !29
  store double %158, ptr %146, align 8, !tbaa !29
  br label %159

159:                                              ; preds = %144, %149
  %160 = phi i32 [ %145, %144 ], [ %155, %149 ]
  %161 = icmp ugt i64 %indvars.iv164, 1
  br i1 %161, label %144, label %._crit_edge136, !llvm.loop !44

162:                                              ; preds = %._crit_edge136
  %163 = getelementptr inbounds i8, ptr %0, i64 192
  %164 = load ptr, ptr %163, align 8, !tbaa !35
  %165 = load double, ptr %68, align 8, !tbaa !40
  %166 = getelementptr inbounds i8, ptr %0, i64 184
  %167 = load double, ptr %166, align 8, !tbaa !5
  %168 = call noundef double @_ZN13HighsIntegers13integralScaleEPKdidd(ptr noundef %164, i32 noundef %141, double noundef %165, double noundef %167)
  %169 = fcmp une double %168, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  br i1 %169, label %170, label %.critedge

170:                                              ; preds = %162
  store double 1.000000e+00, ptr %6, align 8, !tbaa !29
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %3)
  %172 = load double, ptr %171, align 8, !tbaa !29
  %173 = fmul double %168, %172
  %174 = fcmp ugt double %173, 0x4330000000000000
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br i1 %174, label %234, label %175

175:                                              ; preds = %170
  call void @_ZN12HighsCDouble11renormalizeEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
  %176 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemLEd(ptr noundef nonnull align 8 dereferenceable(16) %17, double noundef %168)
  %177 = load double, ptr %3, align 8, !tbaa !29
  %178 = fmul double %168, %177
  %179 = call noundef i64 @_ZN13HighsIntegers14nearestIntegerEd(double noundef %178)
  %180 = sitofp i64 %179 to double
  store double %180, ptr %3, align 8, !tbaa !29
  %181 = load i32, ptr %65, align 4, !tbaa !34
  %.not108142 = icmp eq i32 %181, 0
  br i1 %.not108142, label %.critedge122, label %.lr.ph145

.lr.ph145:                                        ; preds = %175
  %182 = getelementptr inbounds i8, ptr %7, i64 8
  %183 = getelementptr inbounds i8, ptr %9, i64 8
  %184 = getelementptr inbounds i8, ptr %64, i64 1688
  %185 = getelementptr inbounds i8, ptr %0, i64 200
  %186 = getelementptr inbounds i8, ptr %64, i64 1712
  br label %187

187:                                              ; preds = %.lr.ph145, %.critedge120
  %indvars.iv170 = phi i64 [ 0, %.lr.ph145 ], [ %indvars.iv.next171, %.critedge120 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #7
  %188 = load ptr, ptr %163, align 8, !tbaa !35
  %189 = getelementptr inbounds double, ptr %188, i64 %indvars.iv170
  %190 = load double, ptr %189, align 8, !tbaa !29
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %8, double noundef %190)
  %191 = call { double, double } @_ZmldRK12HighsCDouble(double noundef %168, ptr noundef nonnull align 8 dereferenceable(16) %8)
  %192 = extractvalue { double, double } %191, 0
  store double %192, ptr %7, align 8
  %193 = extractvalue { double, double } %191, 1
  store double %193, ptr %182, align 8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  %194 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %195 = call noundef i64 @_ZN13HighsIntegers14nearestIntegerEd(double noundef %194)
  %196 = sitofp i64 %195 to double
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #7
  %197 = call { double, double } @_ZNK12HighsCDoublemiEd(ptr noundef nonnull align 8 dereferenceable(16) %7, double noundef %196)
  %198 = extractvalue { double, double } %197, 0
  store double %198, ptr %9, align 8
  %199 = extractvalue { double, double } %197, 1
  store double %199, ptr %183, align 8
  %200 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %9)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #7
  %201 = load ptr, ptr %163, align 8, !tbaa !35
  %202 = getelementptr inbounds double, ptr %201, i64 %indvars.iv170
  store double %196, ptr %202, align 8, !tbaa !29
  %203 = fcmp olt double %200, 0.000000e+00
  %204 = load ptr, ptr %185, align 8, !tbaa !42
  %205 = getelementptr inbounds i32, ptr %204, i64 %indvars.iv170
  %206 = load i32, ptr %205, align 4, !tbaa !36
  %207 = sext i32 %206 to i64
  br i1 %203, label %208, label %212

208:                                              ; preds = %187
  %209 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %186, i64 noundef %207) #7
  %210 = load double, ptr %209, align 8, !tbaa !29
  %211 = fcmp une double %210, 0x7FF0000000000000
  br i1 %211, label %.critedge120, label %.critedge117

212:                                              ; preds = %187
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef %207) #7
  %214 = load double, ptr %213, align 8, !tbaa !29
  %215 = fcmp une double %214, 0xFFF0000000000000
  br i1 %215, label %.critedge120, label %.critedge117

.critedge120:                                     ; preds = %212, %208
  %.sink188 = phi double [ %210, %208 ], [ %214, %212 ]
  %216 = fmul double %200, %.sink188
  %217 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %17, double noundef %216)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #7
  %indvars.iv.next171 = add nuw nsw i64 %indvars.iv170, 1
  %218 = load i32, ptr %65, align 4, !tbaa !34
  %219 = zext i32 %218 to i64
  %.not108 = icmp eq i64 %indvars.iv.next171, %219
  br i1 %.not108, label %.critedge122, label %187, !llvm.loop !45

.critedge117:                                     ; preds = %212, %208
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #7
  br label %.critedge126

.critedge122:                                     ; preds = %.critedge120, %175
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #7
  %220 = load double, ptr %68, align 8, !tbaa !40
  %221 = call { double, double } @_ZNK12HighsCDoubleplEd(ptr noundef nonnull align 8 dereferenceable(16) %17, double noundef %220)
  %222 = extractvalue { double, double } %221, 0
  store double %222, ptr %10, align 8
  %223 = getelementptr inbounds i8, ptr %10, i64 8
  %224 = extractvalue { double, double } %221, 1
  store double %224, ptr %223, align 8
  %225 = call { double, double } @_Z5floorRK12HighsCDouble(ptr noundef nonnull align 8 dereferenceable(16) %10)
  %226 = extractvalue { double, double } %225, 0
  %227 = extractvalue { double, double } %225, 1
  store double %226, ptr %17, align 8, !tbaa !29
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 216
  store double %227, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #7
  %228 = load double, ptr %3, align 8, !tbaa !29
  %229 = fmul double %168, %228
  %230 = load double, ptr %68, align 8, !tbaa !40
  %231 = fmul double %229, %230
  %232 = fcmp olt double %231, 5.000000e-01
  br i1 %232, label %.critedge124, label %234

.critedge124:                                     ; preds = %.critedge122
  %233 = getelementptr inbounds i8, ptr %0, i64 225
  store i8 1, ptr %233, align 1, !tbaa !33
  br label %.critedge126

.critedge:                                        ; preds = %162
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %234

234:                                              ; preds = %170, %.critedge, %.critedge122
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  store double 0x7FF0000000000000, ptr %11, align 8, !tbaa !29
  %235 = load i32, ptr %65, align 4, !tbaa !34
  %.not109146 = icmp eq i32 %235, 0
  br i1 %.not109146, label %._crit_edge150, label %.lr.ph149

._crit_edge150:                                   ; preds = %.lr.ph149, %234
  %236 = phi double [ 0x7FF0000000000000, %234 ], [ %250, %.lr.ph149 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  %237 = load double, ptr %166, align 8, !tbaa !5
  %238 = fsub double %236, %237
  %239 = call double @frexp(double noundef %238, ptr noundef nonnull %13) #7
  %240 = load i32, ptr %13, align 4, !tbaa !36
  %241 = sub nsw i32 0, %240
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  %242 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
  %243 = call double @ldexp(double noundef %242, i32 noundef %241) #7
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %14, double noundef %243)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %14, i64 16, i1 false), !tbaa.struct !28
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  %244 = load i32, ptr %65, align 4, !tbaa !34
  %.not110151 = icmp eq i32 %244, 0
  br i1 %.not110151, label %._crit_edge155, label %.lr.ph154.preheader

.lr.ph154.preheader:                              ; preds = %._crit_edge150
  %.pre183 = load ptr, ptr %163, align 8, !tbaa !35
  br label %.lr.ph154

.lr.ph149:                                        ; preds = %234, %.lr.ph149
  %indvars.iv173 = phi i64 [ %indvars.iv.next174, %.lr.ph149 ], [ 0, %234 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %245 = load ptr, ptr %163, align 8, !tbaa !35
  %246 = getelementptr inbounds double, ptr %245, i64 %indvars.iv173
  %247 = load double, ptr %246, align 8, !tbaa !29
  %248 = call noundef double @_ZSt3absd(double noundef %247)
  store double %248, ptr %12, align 8, !tbaa !29
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %11)
  %250 = load double, ptr %249, align 8, !tbaa !29
  store double %250, ptr %11, align 8, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  %indvars.iv.next174 = add nuw nsw i64 %indvars.iv173, 1
  %251 = load i32, ptr %65, align 4, !tbaa !34
  %252 = zext i32 %251 to i64
  %.not109 = icmp eq i64 %indvars.iv.next174, %252
  br i1 %.not109, label %._crit_edge150, label %.lr.ph149, !llvm.loop !46

._crit_edge155:                                   ; preds = %.lr.ph154, %._crit_edge150
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %.critedge126

.lr.ph154:                                        ; preds = %.lr.ph154.preheader, %.lr.ph154
  %253 = phi ptr [ %.pre183, %.lr.ph154.preheader ], [ %257, %.lr.ph154 ]
  %indvars.iv176 = phi i64 [ 0, %.lr.ph154.preheader ], [ %indvars.iv.next177, %.lr.ph154 ]
  %254 = getelementptr inbounds double, ptr %253, i64 %indvars.iv176
  %255 = load double, ptr %254, align 8, !tbaa !29
  %256 = call double @ldexp(double noundef %255, i32 noundef %241) #7
  %257 = load ptr, ptr %163, align 8, !tbaa !35
  %258 = getelementptr inbounds double, ptr %257, i64 %indvars.iv176
  store double %256, ptr %258, align 8, !tbaa !29
  %indvars.iv.next177 = add nuw nsw i64 %indvars.iv176, 1
  %259 = load i32, ptr %65, align 4, !tbaa !34
  %260 = zext i32 %259 to i64
  %.not110 = icmp eq i64 %indvars.iv.next177, %260
  br i1 %.not110, label %._crit_edge155, label %.lr.ph154, !llvm.loop !47

261:                                              ; preds = %._crit_edge136
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #7
  %262 = load double, ptr %3, align 8, !tbaa !29
  %263 = getelementptr inbounds i8, ptr %0, i64 184
  %264 = load double, ptr %263, align 8, !tbaa !5
  %265 = fsub double %262, %264
  %266 = call double @frexp(double noundef %265, ptr noundef nonnull %15) #7
  %267 = load i32, ptr %15, align 4, !tbaa !36
  %268 = sub nsw i32 0, %267
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #7
  %269 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
  %270 = call double @ldexp(double noundef %269, i32 noundef %268) #7
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %16, double noundef %270)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %16, i64 16, i1 false), !tbaa.struct !28
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #7
  %271 = load i32, ptr %65, align 4, !tbaa !34
  %.not107137 = icmp eq i32 %271, 0
  br i1 %.not107137, label %._crit_edge141, label %.lr.ph140

.lr.ph140:                                        ; preds = %261
  %272 = getelementptr inbounds i8, ptr %0, i64 192
  %.pre182 = load ptr, ptr %272, align 8, !tbaa !35
  br label %273

._crit_edge141:                                   ; preds = %273, %261
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %.critedge126

273:                                              ; preds = %.lr.ph140, %273
  %274 = phi ptr [ %.pre182, %.lr.ph140 ], [ %278, %273 ]
  %indvars.iv167 = phi i64 [ 0, %.lr.ph140 ], [ %indvars.iv.next168, %273 ]
  %275 = getelementptr inbounds double, ptr %274, i64 %indvars.iv167
  %276 = load double, ptr %275, align 8, !tbaa !29
  %277 = call double @ldexp(double noundef %276, i32 noundef %268) #7
  %278 = load ptr, ptr %272, align 8, !tbaa !35
  %279 = getelementptr inbounds double, ptr %278, i64 %indvars.iv167
  store double %277, ptr %279, align 8, !tbaa !29
  %indvars.iv.next168 = add nuw nsw i64 %indvars.iv167, 1
  %280 = load i32, ptr %65, align 4, !tbaa !34
  %281 = zext i32 %280 to i64
  %.not107 = icmp eq i64 %indvars.iv.next168, %281
  br i1 %.not107, label %._crit_edge141, label %273, !llvm.loop !48

.critedge126:                                     ; preds = %107, %111, %.critedge117, %._crit_edge141, %._crit_edge155, %.critedge124
  %.14 = phi i1 [ true, %.critedge124 ], [ true, %._crit_edge155 ], [ true, %._crit_edge141 ], [ false, %.critedge117 ], [ false, %111 ], [ false, %107 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  br label %.loopexit

.loopexit:                                        ; preds = %57, %33, %.critedge126
  %.15 = phi i1 [ %.14, %.critedge126 ], [ true, %33 ], [ true, %57 ]
  ret i1 %.15
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN13HighsIntegers13integralScaleEPKdidd(ptr noundef, i32 noundef, double noundef, double noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN13HighsIntegers14nearestIntegerEd(double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { double, double } @_Z5floorRK12HighsCDouble(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: write)
declare double @frexp(double noundef, ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nofree nounwind willreturn
declare double @ldexp(double noundef, i32 noundef) local_unnamed_addr #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !17, i64 184}
!6 = !{!"_ZTS18HighsCutGeneration", !7, i64 0, !7, i64 8, !10, i64 16, !12, i64 24, !16, i64 48, !16, i64 64, !18, i64 80, !18, i64 104, !22, i64 128, !22, i64 152, !17, i64 176, !17, i64 184, !7, i64 192, !7, i64 200, !16, i64 208, !26, i64 224, !26, i64 225, !27, i64 228, !17, i64 232, !12, i64 240, !18, i64 264}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS11HighsRandom", !11, i64 0}
!11 = !{!"long", !8, i64 0}
!12 = !{!"_ZTSSt6vectorIiSaIiEE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!16 = !{!"_ZTS12HighsCDouble", !17, i64 0, !17, i64 8}
!17 = !{!"double", !8, i64 0}
!18 = !{!"_ZTSSt6vectorIdSaIdEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!22 = !{!"_ZTSSt6vectorIhSaIhEE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!26 = !{!"bool", !8, i64 0}
!27 = !{!"int", !8, i64 0}
!28 = !{i64 0, i64 8, !29, i64 8, i64 8, !29}
!29 = !{!17, !17, i64 0}
!30 = !{!6, !26, i64 224}
!31 = !{i8 0, i8 2}
!32 = !{}
!33 = !{!6, !26, i64 225}
!34 = !{!6, !27, i64 228}
!35 = !{!6, !7, i64 192}
!36 = !{!27, !27, i64 0}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}
!39 = !{!6, !7, i64 0}
!40 = !{!6, !17, i64 176}
!41 = distinct !{!41, !38}
!42 = !{!6, !7, i64 200}
!43 = distinct !{!43, !38}
!44 = distinct !{!44, !38}
!45 = distinct !{!45, !38}
!46 = distinct !{!46, !38}
!47 = distinct !{!47, !38}
!48 = distinct !{!48, !38}


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