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

; 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.anon.360 = type { ptr }
%class.anon.361 = type { ptr, ptr, ptr }
%class.HighsTransformedLp = type { ptr, %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %class.HighsSparseVectorSum }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<int, HighsImplications::VarBound>, std::allocator<std::pair<int, HighsImplications::VarBound>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, HighsImplications::VarBound>, std::allocator<std::pair<int, HighsImplications::VarBound>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, HighsImplications::VarBound>, std::allocator<std::pair<int, HighsImplications::VarBound>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, HighsImplications::VarBound>, std::allocator<std::pair<int, HighsImplications::VarBound>>>::_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.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<HighsTransformedLp::BoundType, std::allocator<HighsTransformedLp::BoundType>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsTransformedLp::BoundType, std::allocator<HighsTransformedLp::BoundType>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsTransformedLp::BoundType, std::allocator<HighsTransformedLp::BoundType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsTransformedLp::BoundType, std::allocator<HighsTransformedLp::BoundType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsSparseVectorSum = type { %"class.std::vector.13", %"class.std::vector.18" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsCDouble, std::allocator<HighsCDouble>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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 }
%"struct.std::pair" = type { i32, %"struct.HighsImplications::VarBound" }
%"struct.HighsImplications::VarBound" = type { double, double }
%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.72", i8, i32, i32, ptr, ptr, ptr, ptr, %"class.std::unique_ptr.172", %class.HighsMipAnalysis, %class.HighsTimer }
%"class.std::vector.72" = type { %"struct.std::_Vector_base.73" }
%"struct.std::_Vector_base.73" = 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.172" = type { %"struct.std::__uniq_ptr_data.173" }
%"struct.std::__uniq_ptr_data.173" = type { %"class.std::__uniq_ptr_impl.174" }
%"class.std::__uniq_ptr_impl.174" = type { %"class.std::tuple.175" }
%"class.std::tuple.175" = type { %"struct.std::_Tuple_impl.176" }
%"struct.std::_Tuple_impl.176" = type { %"struct.std::_Head_base.179" }
%"struct.std::_Head_base.179" = 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.18" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.33", i32, i32, i32, [4 x i8] }>
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.135", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %struct.HighsSymmetries, %"class.std::shared_ptr.328", 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.188", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.135", %"class.std::unordered_multimap", %"class.std::vector.212", %"class.std::set", double, double, double, i32, i32, i32, i32, i32, %"class.std::vector.18", %"class.std::vector.150" }
%class.HighsDynamicRowMatrix = type { %"class.std::vector.180", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.135", %"class.std::set", %"class.std::vector.18" }
%"class.std::vector.180" = type { %"struct.std::_Vector_base.181" }
%"struct.std::_Vector_base.181" = 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.188" = type { %"struct.std::_Vector_base.189" }
%"struct.std::_Vector_base.189" = 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.193" }
%"class.std::_Hashtable.193" = 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.212" = type { %"struct.std::_Vector_base.213" }
%"struct.std::_Vector_base.213" = 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.150" = type { %"struct.std::_Vector_base.151" }
%"struct.std::_Vector_base.151" = 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.18", %"class.std::vector.188", %"class.std::vector.217", %"class.std::vector.222", %"class.std::vector.180", %"class.std::set", %"class.std::vector.18", %"class.std::vector.227" }
%"class.std::vector.217" = type { %"struct.std::_Vector_base.218" }
%"struct.std::_Vector_base.218" = 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.222" = type { %"struct.std::_Vector_base.223" }
%"struct.std::_Vector_base.223" = 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.227" = type { %"struct.std::_Vector_base.228" }
%"struct.std::_Vector_base.228" = 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.135", %"class.std::vector.18", %"class.std::vector.180", %"class.std::vector.222", %"class.std::vector.232", %"class.std::vector.237", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.135", %"class.std::vector.18", %"struct.HighsDomain::ObjectivePropagation", ptr, %"class.std::deque", %"class.std::deque.255", i8, %"struct.HighsDomain::Reason", i32, %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %class.HighsHashTable.261, i8, %"class.std::vector.3", %"class.std::vector.3" }
%"class.std::vector.232" = type { %"struct.std::_Vector_base.233" }
%"struct.std::_Vector_base.233" = 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.237" = type { %"struct.std::_Vector_base.238" }
%"struct.std::_Vector_base.238" = 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 }
%"struct.HighsDomain::ObjectivePropagation" = type { ptr, ptr, ptr, %class.HighsCDouble, i32, double, i8, %"class.std::vector.242", %"class.std::vector.180", %"class.std::vector.3", %"class.std::vector.247" }
%"class.std::vector.242" = type { %"struct.std::_Vector_base.243" }
%"struct.std::_Vector_base.243" = 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.247" = type { %"struct.std::_Vector_base.248" }
%"struct.std::_Vector_base.248" = 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.255" = type { %"class.std::_Deque_base.256" }
%"class.std::_Deque_base.256" = 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.260", %"struct.std::_Deque_iterator.260" }
%"struct.std::_Deque_iterator.260" = type { ptr, ptr, ptr, ptr }
%"struct.HighsDomain::Reason" = type { i32, i32 }
%class.HighsHashTable.261 = type { %"class.std::unique_ptr.262", %"class.std::unique_ptr.102", i64, i64, i64 }
%"class.std::unique_ptr.262" = type { %"struct.std::__uniq_ptr_data.263" }
%"struct.std::__uniq_ptr_data.263" = type { %"class.std::__uniq_ptr_impl.264" }
%"class.std::__uniq_ptr_impl.264" = type { %"class.std::tuple.265" }
%"class.std::tuple.265" = type { %"struct.std::_Tuple_impl.266" }
%"struct.std::_Tuple_impl.266" = type { %"struct.std::_Head_base.269" }
%"struct.std::_Head_base.269" = type { ptr }
%"class.std::unique_ptr.102" = type { %"struct.std::__uniq_ptr_data.103" }
%"struct.std::__uniq_ptr_data.103" = type { %"class.std::__uniq_ptr_impl.104" }
%"class.std::__uniq_ptr_impl.104" = type { %"class.std::tuple.105" }
%"class.std::tuple.105" = type { %"struct.std::_Tuple_impl.106" }
%"struct.std::_Tuple_impl.106" = type { %"struct.std::_Head_base.109" }
%"struct.std::_Head_base.109" = type { ptr }
%class.HighsLpRelaxation = type <{ ptr, %class.Highs, %"class.std::vector.145", %"class.std::vector.150", %"class.std::vector.3", %"class.std::vector.18", %"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.48", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.72", 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.28", %"class.std::vector.3", double }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = 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.18", %"class.std::vector.18", %"class.std::vector.3" }
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.53", %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.53" = 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.57", 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.57" = type { %"struct.std::_Vector_base.58" }
%"struct.std::_Vector_base.58" = 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.62" }
%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.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = 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.18", %"class.std::vector.18" }
%class.HighsIis = type { i8, i32, %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.67" }
%"class.std::vector.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.18", %"class.std::vector.18", %"class.std::vector.18", %"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.18", %"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.18", %"class.std::vector.18", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.120", %"class.std::vector.3", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.77", %"class.std::vector.77", 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.82", %"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.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = 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.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = 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.88" }
%"struct.std::_Head_base.88" = 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.18", 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.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"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.18", %"class.std::vector.89", %"class.std::vector.89", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.89" = type { %"struct.std::_Vector_base.90" }
%"struct.std::_Vector_base.90" = 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.94", %"class.std::unique_ptr.102", i64, i64, i64 }
%"class.std::unique_ptr.94" = type { %"struct.std::__uniq_ptr_data.95" }
%"struct.std::__uniq_ptr_data.95" = type { %"class.std::__uniq_ptr_impl.96" }
%"class.std::__uniq_ptr_impl.96" = type { %"class.std::tuple.97" }
%"class.std::tuple.97" = type { %"struct.std::_Tuple_impl.98" }
%"struct.std::_Tuple_impl.98" = type { %"struct.std::_Head_base.101" }
%"struct.std::_Head_base.101" = type { ptr }
%class.HighsRandom = type { i64 }
%class.HSimplexNla = type { ptr, ptr, ptr, ptr, ptr, ptr, %class.HFactor, i8, double, %struct.ProductFormUpdate, %struct.SimplexIterate }
%class.HFactor = type { double, double, i32, %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.110", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.118", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", i32, i32, %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.89", double }
%"class.std::unique_ptr.110" = type { %"struct.std::__uniq_ptr_data.111" }
%"struct.std::__uniq_ptr_data.111" = type { %"class.std::__uniq_ptr_impl.112" }
%"class.std::__uniq_ptr_impl.112" = type { %"class.std::tuple.113" }
%"class.std::tuple.113" = type { %"struct.std::_Tuple_impl.114" }
%"struct.std::_Tuple_impl.114" = type { %"struct.std::_Head_base.117" }
%"struct.std::_Head_base.117" = type { ptr }
%"class.std::vector.118" = type { %"struct.std::_Vector_base.119" }
%"struct.std::_Vector_base.119" = 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.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.3" }
%struct.InvertibleRepresentation = type { %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.3" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.89" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector.3" }
%"class.std::vector.120" = type { %"struct.std::_Vector_base.121" }
%"struct.std::_Vector_base.121" = 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.125" }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = 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.145" = type { %"struct.std::_Vector_base.146" }
%"struct.std::_Vector_base.146" = 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.18", %"class.std::vector.3", double, %"class.std::vector.118", %"class.std::vector.18", ptr, i8, i32, %"class.std::vector.18", %"class.std::vector.3" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%class.HighsPseudocost = type { %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", double, double, double, double, i64, i64, i64, i32, double }
%class.HighsCliqueTable = type { %"class.std::vector.270", %"class.std::vector.275", %"class.std::vector.280", %class.HighsHashTable.285, %"class.std::set", %"class.std::vector.18", %"class.std::vector.294", %"class.std::vector.18", %"class.std::vector.270", %"class.std::vector.18", %"class.std::vector.299", %"class.std::vector.18", %"class.std::vector.304", %"class.std::vector.135", %"class.std::vector.135", %"class.std::vector.217", %"class.std::vector.18", %class.HighsRandom, i32, i32, i32, i32, i8, i64 }
%"class.std::vector.275" = type { %"struct.std::_Vector_base.276" }
%"struct.std::_Vector_base.276" = 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.280" = type { %"struct.std::_Vector_base.281" }
%"struct.std::_Vector_base.281" = 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.285 = type { %"class.std::unique_ptr.286", %"class.std::unique_ptr.102", i64, i64, i64 }
%"class.std::unique_ptr.286" = type { %"struct.std::__uniq_ptr_data.287" }
%"struct.std::__uniq_ptr_data.287" = type { %"class.std::__uniq_ptr_impl.288" }
%"class.std::__uniq_ptr_impl.288" = type { %"class.std::tuple.289" }
%"class.std::tuple.289" = type { %"struct.std::_Tuple_impl.290" }
%"struct.std::_Tuple_impl.290" = type { %"struct.std::_Head_base.293" }
%"struct.std::_Head_base.293" = type { ptr }
%"class.std::vector.294" = type { %"struct.std::_Vector_base.295" }
%"struct.std::_Vector_base.295" = 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.270" = type { %"struct.std::_Vector_base.271" }
%"struct.std::_Vector_base.271" = 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.299" = type { %"struct.std::_Vector_base.300" }
%"struct.std::_Vector_base.300" = 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.304" = type { %"struct.std::_Vector_base.305" }
%"struct.std::_Vector_base.305" = 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.155", i64, %"class.std::vector.160", %"class.std::vector.160", ptr, %"class.std::vector.165", %"class.std::vector.135", %"class.std::function.170" }
%"class.std::vector.155" = type { %"struct.std::_Vector_base.156" }
%"struct.std::_Vector_base.156" = 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.160" = type { %"struct.std::_Vector_base.161" }
%"struct.std::_Vector_base.161" = 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.165" = type { %"struct.std::_Vector_base.166" }
%"struct.std::_Vector_base.166" = 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.170" = type { %"class.std::_Function_base", ptr }
%class.HighsPrimalHeuristics = type { ptr, i64, i64, i64, i64, double, i32, double, i32, %class.HighsRandom, %"class.std::vector.18" }
%class.HighsRedcostFixing = type { %"class.std::vector.309", %"class.std::vector.309" }
%"class.std::vector.309" = type { %"struct.std::_Vector_base.310" }
%"struct.std::_Vector_base.310" = 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.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18" }
%"class.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.130", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.135", %"class.std::vector.140", %"class.std::vector.140", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector.118", i64 }
%"class.std::vector.130" = type { %"struct.std::_Vector_base.131" }
%"struct.std::_Vector_base.131" = 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.140" = type { %"struct.std::_Vector_base.141" }
%"struct.std::_Vector_base.141" = 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.33", %"class.std::vector.33", %"class.std::vector.38", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = 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.18", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.38", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3" }
%"class.std::vector.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsSymmetries = type { %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.314", %class.HighsHashTable.319, i32, i32 }
%"class.std::vector.314" = type { %"struct.std::_Vector_base.315" }
%"struct.std::_Vector_base.315" = 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.319 = type { %"class.std::unique_ptr.320", %"class.std::unique_ptr.102", i64, i64, i64 }
%"class.std::unique_ptr.320" = type { %"struct.std::__uniq_ptr_data.321" }
%"struct.std::__uniq_ptr_data.321" = type { %"class.std::__uniq_ptr_impl.322" }
%"class.std::__uniq_ptr_impl.322" = type { %"class.std::tuple.323" }
%"class.std::tuple.323" = type { %"struct.std::_Tuple_impl.324" }
%"struct.std::_Tuple_impl.324" = type { %"struct.std::_Head_base.327" }
%"struct.std::_Head_base.327" = type { ptr }
%"class.std::shared_ptr.328" = type { %"class.std::__shared_ptr.329" }
%"class.std::__shared_ptr.329" = type { ptr, %"class.std::__shared_count" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.23", %"class.std::vector.23" }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.331", %"class.std::vector.339", %"class.std::priority_queue", %"class.std::unique_ptr.349", %"class.std::unique_ptr.349", i64, i64, i64, i64, i64, i64, i64, double, i32, [4 x i8] }>
%"class.std::unique_ptr.331" = type { %"struct.std::__uniq_ptr_data.332" }
%"struct.std::__uniq_ptr_data.332" = type { %"class.std::__uniq_ptr_impl.333" }
%"class.std::__uniq_ptr_impl.333" = type { %"class.std::tuple.334" }
%"class.std::tuple.334" = type { %"struct.std::_Tuple_impl.335" }
%"struct.std::_Tuple_impl.335" = type { %"struct.std::_Head_base.338" }
%"struct.std::_Head_base.338" = type { ptr }
%"class.std::vector.339" = type { %"struct.std::_Vector_base.340" }
%"struct.std::_Vector_base.340" = 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.344", [8 x i8] }>
%"class.std::vector.344" = type { %"struct.std::_Vector_base.345" }
%"struct.std::_Vector_base.345" = 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.349" = type { %"struct.std::__uniq_ptr_data.350" }
%"struct.std::__uniq_ptr_data.350" = type { %"class.std::__uniq_ptr_impl.351" }
%"class.std::__uniq_ptr_impl.351" = type { %"class.std::tuple.352" }
%"class.std::tuple.352" = type { %"struct.std::_Tuple_impl.353" }
%"struct.std::_Tuple_impl.353" = type { %"struct.std::_Head_base.356" }
%"struct.std::_Head_base.356" = 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 uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

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

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

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

declare noundef double @_ZNK17HighsLpRelaxation10slackUpperEi(ptr noundef nonnull align 8 dereferenceable(21425), i32 noundef) #3

declare noundef double @_ZNK17HighsLpRelaxation10slackLowerEi(ptr noundef nonnull align 8 dereferenceable(21425), i32 noundef) #3

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 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) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef, double noundef) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK20HighsSparseVectorSum8getValueEi(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef) #1 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS0_IiSaIiEERdb(ptr noundef nonnull align 8 dereferenceable(248) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(8) %3, i1 noundef zeroext %4) #1 align 2 {
  %6 = alloca i1, align 1
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i8, align 1
  %12 = alloca %class.HighsCDouble, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca %class.anon.360, align 8
  %30 = alloca i8, align 1
  %31 = alloca %class.anon.361, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %3, ptr %10, align 8, !tbaa !5
  %34 = zext i1 %4 to i8
  store i8 %34, ptr %11, align 1, !tbaa !9
  %35 = load ptr, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #5
  %36 = load ptr, ptr %10, align 8, !tbaa !5
  %37 = load double, ptr %36, align 8, !tbaa !11
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef %37)
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %38 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 0
  %39 = load ptr, ptr %38, align 8, !tbaa !13
  %40 = call noundef nonnull align 8 dereferenceable(496) ptr @_ZNK17HighsLpRelaxation12getMipSolverEv(ptr noundef nonnull align 8 dereferenceable(21425) %39)
  store ptr %40, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  %41 = load ptr, ptr %13, align 8, !tbaa !5
  %42 = call noundef i32 @_ZNK14HighsMipSolver6numColEv(ptr noundef nonnull align 8 dereferenceable(496) %41)
  store i32 %42, ptr %14, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %43 = load ptr, ptr %9, align 8, !tbaa !5
  %44 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #5
  %45 = trunc i64 %44 to i32
  store i32 %45, ptr %15, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  store i32 0, ptr %16, align 4, !tbaa !36
  br label %46

46:                                               ; preds = %316, %5
  %47 = load i32, ptr %16, align 4, !tbaa !36
  %48 = load i32, ptr %15, align 4, !tbaa !36
  %49 = icmp ne i32 %47, %48
  br i1 %49, label %51, label %50

50:                                               ; preds = %46
  store i32 2, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %319

51:                                               ; preds = %46
  %52 = load ptr, ptr %8, align 8, !tbaa !5
  %53 = load i32, ptr %16, align 4, !tbaa !36
  %54 = sext i32 %53 to i64
  %55 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %54) #5
  %56 = load double, ptr %55, align 8, !tbaa !11
  %57 = fcmp oeq double %56, 0.000000e+00
  br i1 %57, label %58, label %59

58:                                               ; preds = %51
  br label %316

59:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  %60 = load ptr, ptr %9, align 8, !tbaa !5
  %61 = load i32, ptr %16, align 4, !tbaa !36
  %62 = sext i32 %61 to i64
  %63 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %62) #5
  %64 = load i32, ptr %63, align 4, !tbaa !36
  store i32 %64, ptr %18, align 4, !tbaa !36
  %65 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 8
  %66 = load i32, ptr %18, align 4, !tbaa !36
  %67 = sext i32 %66 to i64
  %68 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIN18HighsTransformedLp9BoundTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %65, i64 noundef %67) #5
  %69 = load i8, ptr %68, align 1, !tbaa !38
  switch i8 %69, label %315 [
    i8 3, label %70
    i8 2, label %113
    i8 1, label %156
    i8 0, label %230
  ]

70:                                               ; preds = %59
  %71 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 2
  %72 = load i32, ptr %18, align 4, !tbaa !36
  %73 = sext i32 %72 to i64
  %74 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %73) #5
  %75 = getelementptr inbounds %"struct.std::pair", ptr %74, i32 0, i32 1
  %76 = getelementptr inbounds %"struct.HighsImplications::VarBound", ptr %75, i32 0, i32 1
  %77 = load double, ptr %76, align 8, !tbaa !40
  %78 = load ptr, ptr %8, align 8, !tbaa !5
  %79 = load i32, ptr %16, align 4, !tbaa !36
  %80 = sext i32 %79 to i64
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %80) #5
  %82 = load double, ptr %81, align 8, !tbaa !11
  %83 = fmul double %77, %82
  %84 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef %83)
  %85 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %86 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 2
  %87 = load i32, ptr %18, align 4, !tbaa !36
  %88 = sext i32 %87 to i64
  %89 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %88) #5
  %90 = getelementptr inbounds %"struct.std::pair", ptr %89, i32 0, i32 0
  %91 = load i32, ptr %90, align 8, !tbaa !43
  %92 = load ptr, ptr %8, align 8, !tbaa !5
  %93 = load i32, ptr %16, align 4, !tbaa !36
  %94 = sext i32 %93 to i64
  %95 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef %94) #5
  %96 = load double, ptr %95, align 8, !tbaa !11
  %97 = fneg double %96
  %98 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 2
  %99 = load i32, ptr %18, align 4, !tbaa !36
  %100 = sext i32 %99 to i64
  %101 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %100) #5
  %102 = getelementptr inbounds %"struct.std::pair", ptr %101, i32 0, i32 1
  %103 = getelementptr inbounds %"struct.HighsImplications::VarBound", ptr %102, i32 0, i32 0
  %104 = load double, ptr %103, align 8, !tbaa !44
  %105 = fmul double %97, %104
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %85, i32 noundef %91, double noundef %105)
  %106 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %107 = load i32, ptr %18, align 4, !tbaa !36
  %108 = load ptr, ptr %8, align 8, !tbaa !5
  %109 = load i32, ptr %16, align 4, !tbaa !36
  %110 = sext i32 %109 to i64
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %108, i64 noundef %110) #5
  %112 = load double, ptr %111, align 8, !tbaa !11
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %106, i32 noundef %107, double noundef %112)
  br label %315

113:                                              ; preds = %59
  %114 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 1
  %115 = load i32, ptr %18, align 4, !tbaa !36
  %116 = sext i32 %115 to i64
  %117 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %114, i64 noundef %116) #5
  %118 = getelementptr inbounds %"struct.std::pair", ptr %117, i32 0, i32 1
  %119 = getelementptr inbounds %"struct.HighsImplications::VarBound", ptr %118, i32 0, i32 1
  %120 = load double, ptr %119, align 8, !tbaa !40
  %121 = load ptr, ptr %8, align 8, !tbaa !5
  %122 = load i32, ptr %16, align 4, !tbaa !36
  %123 = sext i32 %122 to i64
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %121, i64 noundef %123) #5
  %125 = load double, ptr %124, align 8, !tbaa !11
  %126 = fmul double %120, %125
  %127 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef %126)
  %128 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %129 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 1
  %130 = load i32, ptr %18, align 4, !tbaa !36
  %131 = sext i32 %130 to i64
  %132 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %131) #5
  %133 = getelementptr inbounds %"struct.std::pair", ptr %132, i32 0, i32 0
  %134 = load i32, ptr %133, align 8, !tbaa !43
  %135 = load ptr, ptr %8, align 8, !tbaa !5
  %136 = load i32, ptr %16, align 4, !tbaa !36
  %137 = sext i32 %136 to i64
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %135, i64 noundef %137) #5
  %139 = load double, ptr %138, align 8, !tbaa !11
  %140 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 1
  %141 = load i32, ptr %18, align 4, !tbaa !36
  %142 = sext i32 %141 to i64
  %143 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %140, i64 noundef %142) #5
  %144 = getelementptr inbounds %"struct.std::pair", ptr %143, i32 0, i32 1
  %145 = getelementptr inbounds %"struct.HighsImplications::VarBound", ptr %144, i32 0, i32 0
  %146 = load double, ptr %145, align 8, !tbaa !44
  %147 = fmul double %139, %146
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %128, i32 noundef %134, double noundef %147)
  %148 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %149 = load i32, ptr %18, align 4, !tbaa !36
  %150 = load ptr, ptr %8, align 8, !tbaa !5
  %151 = load i32, ptr %16, align 4, !tbaa !36
  %152 = sext i32 %151 to i64
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %150, i64 noundef %152) #5
  %154 = load double, ptr %153, align 8, !tbaa !11
  %155 = fneg double %154
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %148, i32 noundef %149, double noundef %155)
  br label %315

156:                                              ; preds = %59
  %157 = load i32, ptr %18, align 4, !tbaa !36
  %158 = load i32, ptr %14, align 4, !tbaa !36
  %159 = icmp slt i32 %157, %158
  br i1 %159, label %160, label %184

160:                                              ; preds = %156
  %161 = load ptr, ptr %8, align 8, !tbaa !5
  %162 = load i32, ptr %16, align 4, !tbaa !36
  %163 = sext i32 %162 to i64
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %161, i64 noundef %163) #5
  %165 = load double, ptr %164, align 8, !tbaa !11
  %166 = load ptr, ptr %13, align 8, !tbaa !5
  %167 = getelementptr inbounds %class.HighsMipSolver, ptr %166, i32 0, i32 25
  %168 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %167) #5
  %169 = getelementptr inbounds %struct.HighsMipSolverData, ptr %168, i32 0, i32 3
  %170 = getelementptr inbounds %class.HighsDomain, ptr %169, i32 0, i32 25
  %171 = load i32, ptr %18, align 4, !tbaa !36
  %172 = sext i32 %171 to i64
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %172) #5
  %174 = load double, ptr %173, align 8, !tbaa !11
  %175 = fmul double %165, %174
  %176 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef %175)
  %177 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %178 = load i32, ptr %18, align 4, !tbaa !36
  %179 = load ptr, ptr %8, align 8, !tbaa !5
  %180 = load i32, ptr %16, align 4, !tbaa !36
  %181 = sext i32 %180 to i64
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %181) #5
  %183 = load double, ptr %182, align 8, !tbaa !11
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %177, i32 noundef %178, double noundef %183)
  br label %229

184:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  %185 = load i32, ptr %18, align 4, !tbaa !36
  %186 = load i32, ptr %14, align 4, !tbaa !36
  %187 = sub nsw i32 %185, %186
  store i32 %187, ptr %19, align 4, !tbaa !36
  %188 = load ptr, ptr %8, align 8, !tbaa !5
  %189 = load i32, ptr %16, align 4, !tbaa !36
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef %190) #5
  %192 = load double, ptr %191, align 8, !tbaa !11
  %193 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 0
  %194 = load ptr, ptr %193, align 8, !tbaa !13
  %195 = load i32, ptr %19, align 4, !tbaa !36
  %196 = call noundef double @_ZNK17HighsLpRelaxation10slackLowerEi(ptr noundef nonnull align 8 dereferenceable(21425) %194, i32 noundef %195)
  %197 = fmul double %192, %196
  %198 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef %197)
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %199 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 0
  %200 = load ptr, ptr %199, align 8, !tbaa !13
  %201 = load i32, ptr %19, align 4, !tbaa !36
  call void @_ZNK17HighsLpRelaxation6getRowEiRiRPKiRPKd(ptr noundef nonnull align 8 dereferenceable(21425) %200, i32 noundef %201, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22)
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  store i32 0, ptr %23, align 4, !tbaa !36
  br label %202

202:                                              ; preds = %225, %184
  %203 = load i32, ptr %23, align 4, !tbaa !36
  %204 = load i32, ptr %20, align 4, !tbaa !36
  %205 = icmp ne i32 %203, %204
  br i1 %205, label %207, label %206

206:                                              ; preds = %202
  store i32 6, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br label %228

207:                                              ; preds = %202
  %208 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %209 = load ptr, ptr %21, align 8, !tbaa !5
  %210 = load i32, ptr %23, 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 = load ptr, ptr %8, align 8, !tbaa !5
  %215 = load i32, ptr %16, align 4, !tbaa !36
  %216 = sext i32 %215 to i64
  %217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %214, i64 noundef %216) #5
  %218 = load double, ptr %217, align 8, !tbaa !11
  %219 = load ptr, ptr %22, align 8, !tbaa !5
  %220 = load i32, ptr %23, align 4, !tbaa !36
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds double, ptr %219, i64 %221
  %223 = load double, ptr %222, align 8, !tbaa !11
  %224 = fmul double %218, %223
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %208, i32 noundef %213, double noundef %224)
  br label %225

225:                                              ; preds = %207
  %226 = load i32, ptr %23, align 4, !tbaa !36
  %227 = add nsw i32 %226, 1
  store i32 %227, ptr %23, align 4, !tbaa !36
  br label %202, !llvm.loop !45

228:                                              ; preds = %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  br label %229

229:                                              ; preds = %228, %160
  br label %315

230:                                              ; preds = %59
  %231 = load i32, ptr %18, align 4, !tbaa !36
  %232 = load i32, ptr %14, align 4, !tbaa !36
  %233 = icmp slt i32 %231, %232
  br i1 %233, label %234, label %259

234:                                              ; preds = %230
  %235 = load ptr, ptr %8, align 8, !tbaa !5
  %236 = load i32, ptr %16, align 4, !tbaa !36
  %237 = sext i32 %236 to i64
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %235, i64 noundef %237) #5
  %239 = load double, ptr %238, align 8, !tbaa !11
  %240 = load ptr, ptr %13, align 8, !tbaa !5
  %241 = getelementptr inbounds %class.HighsMipSolver, ptr %240, i32 0, i32 25
  %242 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %241) #5
  %243 = getelementptr inbounds %struct.HighsMipSolverData, ptr %242, i32 0, i32 3
  %244 = getelementptr inbounds %class.HighsDomain, ptr %243, i32 0, i32 26
  %245 = load i32, ptr %18, align 4, !tbaa !36
  %246 = sext i32 %245 to i64
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef %246) #5
  %248 = load double, ptr %247, align 8, !tbaa !11
  %249 = fmul double %239, %248
  %250 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef %249)
  %251 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %252 = load i32, ptr %18, align 4, !tbaa !36
  %253 = load ptr, ptr %8, align 8, !tbaa !5
  %254 = load i32, ptr %16, align 4, !tbaa !36
  %255 = sext i32 %254 to i64
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %253, i64 noundef %255) #5
  %257 = load double, ptr %256, align 8, !tbaa !11
  %258 = fneg double %257
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %251, i32 noundef %252, double noundef %258)
  br label %314

259:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  %260 = load i32, ptr %18, align 4, !tbaa !36
  %261 = load i32, ptr %14, align 4, !tbaa !36
  %262 = sub nsw i32 %260, %261
  store i32 %262, ptr %24, align 4, !tbaa !36
  %263 = load ptr, ptr %8, align 8, !tbaa !5
  %264 = load i32, ptr %16, align 4, !tbaa !36
  %265 = sext i32 %264 to i64
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %263, i64 noundef %265) #5
  %267 = load double, ptr %266, align 8, !tbaa !11
  %268 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 0
  %269 = load ptr, ptr %268, align 8, !tbaa !13
  %270 = load i32, ptr %24, align 4, !tbaa !36
  %271 = call noundef double @_ZNK17HighsLpRelaxation10slackUpperEi(ptr noundef nonnull align 8 dereferenceable(21425) %269, i32 noundef %270)
  %272 = fmul double %267, %271
  %273 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %12, double noundef %272)
  %274 = load ptr, ptr %8, align 8, !tbaa !5
  %275 = load i32, ptr %16, align 4, !tbaa !36
  %276 = sext i32 %275 to i64
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %274, i64 noundef %276) #5
  %278 = load double, ptr %277, align 8, !tbaa !11
  %279 = fneg double %278
  %280 = load ptr, ptr %8, align 8, !tbaa !5
  %281 = load i32, ptr %16, align 4, !tbaa !36
  %282 = sext i32 %281 to i64
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %280, i64 noundef %282) #5
  store double %279, ptr %283, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %284 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 0
  %285 = load ptr, ptr %284, align 8, !tbaa !13
  %286 = load i32, ptr %24, align 4, !tbaa !36
  call void @_ZNK17HighsLpRelaxation6getRowEiRiRPKiRPKd(ptr noundef nonnull align 8 dereferenceable(21425) %285, i32 noundef %286, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  store i32 0, ptr %28, align 4, !tbaa !36
  br label %287

287:                                              ; preds = %310, %259
  %288 = load i32, ptr %28, align 4, !tbaa !36
  %289 = load i32, ptr %25, align 4, !tbaa !36
  %290 = icmp ne i32 %288, %289
  br i1 %290, label %292, label %291

291:                                              ; preds = %287
  store i32 9, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  br label %313

292:                                              ; preds = %287
  %293 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %294 = load ptr, ptr %26, align 8, !tbaa !5
  %295 = load i32, ptr %28, align 4, !tbaa !36
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds i32, ptr %294, i64 %296
  %298 = load i32, ptr %297, align 4, !tbaa !36
  %299 = load ptr, ptr %8, align 8, !tbaa !5
  %300 = load i32, ptr %16, align 4, !tbaa !36
  %301 = sext i32 %300 to i64
  %302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %299, i64 noundef %301) #5
  %303 = load double, ptr %302, align 8, !tbaa !11
  %304 = load ptr, ptr %27, align 8, !tbaa !5
  %305 = load i32, ptr %28, align 4, !tbaa !36
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds double, ptr %304, i64 %306
  %308 = load double, ptr %307, align 8, !tbaa !11
  %309 = fmul double %303, %308
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %293, i32 noundef %298, double noundef %309)
  br label %310

310:                                              ; preds = %292
  %311 = load i32, ptr %28, align 4, !tbaa !36
  %312 = add nsw i32 %311, 1
  store i32 %312, ptr %28, align 4, !tbaa !36
  br label %287, !llvm.loop !47

313:                                              ; preds = %291
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br label %314

314:                                              ; preds = %313, %234
  br label %315

315:                                              ; preds = %314, %229, %113, %70, %59
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br label %316

316:                                              ; preds = %315, %58
  %317 = load i32, ptr %16, align 4, !tbaa !36
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr %16, align 4, !tbaa !36
  br label %46, !llvm.loop !48

319:                                              ; preds = %50
  %320 = load i8, ptr %11, align 1, !tbaa !9, !range !49, !noundef !50
  %321 = trunc i8 %320 to i1
  br i1 %321, label %322, label %329

322:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  %323 = getelementptr inbounds %class.anon.360, ptr %29, i32 0, i32 0
  %324 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %324, ptr %323, align 8, !tbaa !5
  %325 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  call void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_0EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48) %325, ptr noundef nonnull align 8 dereferenceable(8) %29)
  %326 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
  %327 = call double @llvm.round.f64(double %326)
  %328 = load ptr, ptr %10, align 8, !tbaa !5
  store double %327, ptr %328, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  br label %345

329:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #5
  store i8 0, ptr %30, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #5
  %330 = getelementptr inbounds %class.anon.361, ptr %31, i32 0, i32 0
  %331 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %331, ptr %330, align 8, !tbaa !5
  %332 = getelementptr inbounds %class.anon.361, ptr %31, i32 0, i32 1
  store ptr %30, ptr %332, align 8, !tbaa !5
  %333 = getelementptr inbounds %class.anon.361, ptr %31, i32 0, i32 2
  store ptr %12, ptr %333, align 8, !tbaa !5
  %334 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  call void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_1EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48) %334, ptr noundef nonnull align 8 dereferenceable(24) %31)
  %335 = load i8, ptr %30, align 1, !tbaa !9, !range !49, !noundef !50
  %336 = trunc i8 %335 to i1
  br i1 %336, label %337, label %339

337:                                              ; preds = %329
  %338 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  call void @_ZN20HighsSparseVectorSum5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %338)
  store i1 false, ptr %6, align 1
  store i32 1, ptr %17, align 4
  br label %342

339:                                              ; preds = %329
  %340 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
  %341 = load ptr, ptr %10, align 8, !tbaa !5
  store double %340, ptr %341, align 8, !tbaa !11
  store i32 0, ptr %17, align 4
  br label %342

342:                                              ; preds = %339, %337
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #5
  %343 = load i32, ptr %17, align 4
  switch i32 %343, label %405 [
    i32 0, label %344
  ]

344:                                              ; preds = %342
  br label %345

345:                                              ; preds = %344, %322
  %346 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %347 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK20HighsSparseVectorSum11getNonzerosEv(ptr noundef nonnull align 8 dereferenceable(48) %346)
  %348 = load ptr, ptr %9, align 8, !tbaa !5
  %349 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %348, ptr noundef nonnull align 8 dereferenceable(24) %347)
  %350 = load ptr, ptr %9, align 8, !tbaa !5
  %351 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %350) #5
  %352 = trunc i64 %351 to i32
  store i32 %352, ptr %15, align 4, !tbaa !36
  %353 = load ptr, ptr %8, align 8, !tbaa !5
  %354 = load i32, ptr %15, align 4, !tbaa !36
  %355 = sext i32 %354 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %353, i64 noundef %355)
  %356 = load i8, ptr %11, align 1, !tbaa !9, !range !49, !noundef !50
  %357 = trunc i8 %356 to i1
  br i1 %357, label %358, label %381

358:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  store i32 0, ptr %32, align 4, !tbaa !36
  br label %359

359:                                              ; preds = %377, %358
  %360 = load i32, ptr %32, align 4, !tbaa !36
  %361 = load i32, ptr %15, align 4, !tbaa !36
  %362 = icmp ne i32 %360, %361
  br i1 %362, label %364, label %363

363:                                              ; preds = %359
  store i32 12, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  br label %380

364:                                              ; preds = %359
  %365 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %366 = load ptr, ptr %9, align 8, !tbaa !5
  %367 = load i32, ptr %32, align 4, !tbaa !36
  %368 = sext i32 %367 to i64
  %369 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %368) #5
  %370 = load i32, ptr %369, align 4, !tbaa !36
  %371 = call noundef double @_ZNK20HighsSparseVectorSum8getValueEi(ptr noundef nonnull align 8 dereferenceable(48) %365, i32 noundef %370)
  %372 = call double @llvm.round.f64(double %371)
  %373 = load ptr, ptr %8, align 8, !tbaa !5
  %374 = load i32, ptr %32, align 4, !tbaa !36
  %375 = sext i32 %374 to i64
  %376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %373, i64 noundef %375) #5
  store double %372, ptr %376, align 8, !tbaa !11
  br label %377

377:                                              ; preds = %364
  %378 = load i32, ptr %32, align 4, !tbaa !36
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr %32, align 4, !tbaa !36
  br label %359, !llvm.loop !51

380:                                              ; preds = %363
  br label %403

381:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  store i32 0, ptr %33, align 4, !tbaa !36
  br label %382

382:                                              ; preds = %399, %381
  %383 = load i32, ptr %33, align 4, !tbaa !36
  %384 = load i32, ptr %15, align 4, !tbaa !36
  %385 = icmp ne i32 %383, %384
  br i1 %385, label %387, label %386

386:                                              ; preds = %382
  store i32 15, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  br label %402

387:                                              ; preds = %382
  %388 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  %389 = load ptr, ptr %9, align 8, !tbaa !5
  %390 = load i32, ptr %33, align 4, !tbaa !36
  %391 = sext i32 %390 to i64
  %392 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %389, i64 noundef %391) #5
  %393 = load i32, ptr %392, align 4, !tbaa !36
  %394 = call noundef double @_ZNK20HighsSparseVectorSum8getValueEi(ptr noundef nonnull align 8 dereferenceable(48) %388, i32 noundef %393)
  %395 = load ptr, ptr %8, align 8, !tbaa !5
  %396 = load i32, ptr %33, align 4, !tbaa !36
  %397 = sext i32 %396 to i64
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %395, i64 noundef %397) #5
  store double %394, ptr %398, align 8, !tbaa !11
  br label %399

399:                                              ; preds = %387
  %400 = load i32, ptr %33, align 4, !tbaa !36
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr %33, align 4, !tbaa !36
  br label %382, !llvm.loop !52

402:                                              ; preds = %386
  br label %403

403:                                              ; preds = %402, %380
  %404 = getelementptr inbounds %class.HighsTransformedLp, ptr %35, i32 0, i32 9
  call void @_ZN20HighsSparseVectorSum5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %404)
  store i1 true, ptr %6, align 1
  store i32 1, ptr %17, align 4
  br label %405

405:                                              ; preds = %403, %342
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #5
  %406 = load i1, ptr %6, align 1
  ret i1 %406
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK17HighsLpRelaxation6getRowEiRiRPKiRPKd(ptr noundef nonnull align 8 dereferenceable(21425), i32 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_0EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.round.f64(double) #4

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_1EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !6, i64 0}
!14 = !{!"_ZTS18HighsTransformedLp", !6, i64 0, !15, i64 8, !15, i64 32, !19, i64 56, !19, i64 80, !19, i64 104, !19, i64 128, !19, i64 152, !23, i64 176, !27, i64 200}
!15 = !{!"_ZTSSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!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 = !{!"_ZTSSt6vectorIN18HighsTransformedLp9BoundTypeESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIN18HighsTransformedLp9BoundTypeESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN18HighsTransformedLp9BoundTypeESaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN18HighsTransformedLp9BoundTypeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTS20HighsSparseVectorSum", !28, i64 0, !32, i64 24}
!28 = !{!"_ZTSSt6vectorI12HighsCDoubleSaIS0_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseI12HighsCDoubleSaIS0_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIiSaIiEE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!37, !37, i64 0}
!37 = !{!"int", !7, i64 0}
!38 = !{!39, !39, i64 0}
!39 = !{!"_ZTSN18HighsTransformedLp9BoundTypeE", !7, i64 0}
!40 = !{!41, !12, i64 16}
!41 = !{!"_ZTSSt4pairIiN17HighsImplications8VarBoundEE", !37, i64 0, !42, i64 8}
!42 = !{!"_ZTSN17HighsImplications8VarBoundE", !12, i64 0, !12, i64 8}
!43 = !{!41, !37, i64 0}
!44 = !{!41, !12, i64 8}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = distinct !{!47, !46}
!48 = distinct !{!48, !46}
!49 = !{i8 0, i8 2}
!50 = !{}
!51 = distinct !{!51, !46}
!52 = distinct !{!52, !46}


; 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 }
%class.anon.360 = type { ptr }
%class.anon.361 = type { ptr, ptr, ptr }

; 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 uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) 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 #2 align 2

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

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

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

declare noundef double @_ZNK17HighsLpRelaxation10slackUpperEi(ptr noundef nonnull align 8 dereferenceable(21425), i32 noundef) local_unnamed_addr #3

declare noundef double @_ZNK17HighsLpRelaxation10slackLowerEi(ptr noundef nonnull align 8 dereferenceable(21425), i32 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef, double noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK20HighsSparseVectorSum8getValueEi(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS0_IiSaIiEERdb(ptr noundef nonnull align 8 dereferenceable(248) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr nocapture noundef nonnull align 8 dereferenceable(8) %3, i1 noundef zeroext %4) local_unnamed_addr #1 align 2 {
  %6 = alloca %class.HighsCDouble, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %class.anon.360, align 8
  %14 = alloca i8, align 1
  %15 = alloca %class.anon.361, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #5
  %16 = load double, ptr %3, align 8, !tbaa !5
  call void @_ZN12HighsCDoubleC2Ed(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %16)
  %17 = load ptr, ptr %0, align 8, !tbaa !9
  %18 = call noundef nonnull align 8 dereferenceable(496) ptr @_ZNK17HighsLpRelaxation12getMipSolverEv(ptr noundef nonnull align 8 dereferenceable(21425) %17)
  %19 = call noundef i32 @_ZNK14HighsMipSolver6numColEv(ptr noundef nonnull align 8 dereferenceable(496) %18)
  %20 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  %21 = and i64 %20, 4294967295
  %.not126 = icmp eq i64 %21, 0
  br i1 %.not126, label %._crit_edge130, label %.lr.ph129

.lr.ph129:                                        ; preds = %5
  %22 = getelementptr inbounds i8, ptr %0, i64 176
  %23 = getelementptr inbounds i8, ptr %0, i64 200
  %24 = getelementptr inbounds i8, ptr %18, i64 224
  %25 = getelementptr inbounds i8, ptr %0, i64 8
  %26 = getelementptr inbounds i8, ptr %0, i64 32
  %27 = and i64 %20, 4294967295
  br label %28

._crit_edge130:                                   ; preds = %149, %5
  br i1 %4, label %150, label %154

28:                                               ; preds = %.lr.ph129, %149
  %indvars.iv142 = phi i64 [ 0, %.lr.ph129 ], [ %indvars.iv.next143, %149 ]
  %29 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %30 = load double, ptr %29, align 8, !tbaa !5
  %31 = fcmp oeq double %30, 0.000000e+00
  br i1 %31, label %149, label %32

32:                                               ; preds = %28
  %33 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv142) #5
  %34 = load i32, ptr %33, align 4, !tbaa !33
  %35 = sext i32 %34 to i64
  %36 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIN18HighsTransformedLp9BoundTypeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %35) #5
  %37 = load i8, ptr %36, align 1, !tbaa !35
  switch i8 %37, label %149 [
    i8 3, label %38
    i8 2, label %57
    i8 1, label %76
    i8 0, label %110
  ]

38:                                               ; preds = %32
  %39 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %35) #5
  %40 = getelementptr inbounds i8, ptr %39, i64 16
  %41 = load double, ptr %40, align 8, !tbaa !37
  %42 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %43 = load double, ptr %42, align 8, !tbaa !5
  %44 = fmul double %41, %43
  %45 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %44)
  %46 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %35) #5
  %47 = load i32, ptr %46, align 8, !tbaa !40
  %48 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %49 = load double, ptr %48, align 8, !tbaa !5
  %50 = fneg double %49
  %51 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %35) #5
  %52 = getelementptr inbounds i8, ptr %51, i64 8
  %53 = load double, ptr %52, align 8, !tbaa !41
  %54 = fmul double %53, %50
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %47, double noundef %54)
  %55 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %56 = load double, ptr %55, align 8, !tbaa !5
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %34, double noundef %56)
  br label %149

57:                                               ; preds = %32
  %58 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %35) #5
  %59 = getelementptr inbounds i8, ptr %58, i64 16
  %60 = load double, ptr %59, align 8, !tbaa !37
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %62 = load double, ptr %61, align 8, !tbaa !5
  %63 = fmul double %60, %62
  %64 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %63)
  %65 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %35) #5
  %66 = load i32, ptr %65, align 8, !tbaa !40
  %67 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %68 = load double, ptr %67, align 8, !tbaa !5
  %69 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %35) #5
  %70 = getelementptr inbounds i8, ptr %69, i64 8
  %71 = load double, ptr %70, align 8, !tbaa !41
  %72 = fmul double %68, %71
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %66, double noundef %72)
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %74 = load double, ptr %73, align 8, !tbaa !5
  %75 = fneg double %74
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %34, double noundef %75)
  br label %149

76:                                               ; preds = %32
  %77 = icmp slt i32 %34, %19
  br i1 %77, label %78, label %89

78:                                               ; preds = %76
  %79 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %80 = load double, ptr %79, align 8, !tbaa !5
  %81 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  %82 = getelementptr inbounds i8, ptr %81, i64 1688
  %83 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef %35) #5
  %84 = load double, ptr %83, align 8, !tbaa !5
  %85 = fmul double %80, %84
  %86 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %85)
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %88 = load double, ptr %87, align 8, !tbaa !5
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %34, double noundef %88)
  br label %149

89:                                               ; preds = %76
  %90 = sub nsw i32 %34, %19
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %92 = load double, ptr %91, align 8, !tbaa !5
  %93 = load ptr, ptr %0, align 8, !tbaa !9
  %94 = call noundef double @_ZNK17HighsLpRelaxation10slackLowerEi(ptr noundef nonnull align 8 dereferenceable(21425) %93, i32 noundef %90)
  %95 = fmul double %92, %94
  %96 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublepLEd(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %95)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %97 = load ptr, ptr %0, align 8, !tbaa !9
  call void @_ZNK17HighsLpRelaxation6getRowEiRiRPKiRPKd(ptr noundef nonnull align 8 dereferenceable(21425) %97, i32 noundef %90, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %98 = load i32, ptr %7, align 4, !tbaa !33
  %.not116121 = icmp eq i32 %98, 0
  br i1 %.not116121, label %._crit_edge125, label %.lr.ph124

._crit_edge125:                                   ; preds = %.lr.ph124, %89
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  br label %149

.lr.ph124:                                        ; preds = %89, %.lr.ph124
  %indvars.iv139 = phi i64 [ %indvars.iv.next140, %.lr.ph124 ], [ 0, %89 ]
  %99 = load ptr, ptr %8, align 8, !tbaa !42
  %100 = getelementptr inbounds i32, ptr %99, i64 %indvars.iv139
  %101 = load i32, ptr %100, align 4, !tbaa !33
  %102 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %103 = load double, ptr %102, align 8, !tbaa !5
  %104 = load ptr, ptr %9, align 8, !tbaa !42
  %105 = getelementptr inbounds double, ptr %104, i64 %indvars.iv139
  %106 = load double, ptr %105, align 8, !tbaa !5
  %107 = fmul double %103, %106
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %101, double noundef %107)
  %indvars.iv.next140 = add nuw nsw i64 %indvars.iv139, 1
  %108 = load i32, ptr %7, align 4, !tbaa !33
  %109 = zext i32 %108 to i64
  %.not116 = icmp eq i64 %indvars.iv.next140, %109
  br i1 %.not116, label %._crit_edge125, label %.lr.ph124, !llvm.loop !43

110:                                              ; preds = %32
  %111 = icmp slt i32 %34, %19
  br i1 %111, label %112, label %124

112:                                              ; preds = %110
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %114 = load double, ptr %113, align 8, !tbaa !5
  %115 = call noundef ptr @_ZNKSt10unique_ptrI18HighsMipSolverDataSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  %116 = getelementptr inbounds i8, ptr %115, i64 1712
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %116, i64 noundef %35) #5
  %118 = load double, ptr %117, align 8, !tbaa !5
  %119 = fmul double %114, %118
  %120 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %119)
  %121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %122 = load double, ptr %121, align 8, !tbaa !5
  %123 = fneg double %122
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %34, double noundef %123)
  br label %149

124:                                              ; preds = %110
  %125 = sub nsw i32 %34, %19
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %127 = load double, ptr %126, align 8, !tbaa !5
  %128 = load ptr, ptr %0, align 8, !tbaa !9
  %129 = call noundef double @_ZNK17HighsLpRelaxation10slackUpperEi(ptr noundef nonnull align 8 dereferenceable(21425) %128, i32 noundef %125)
  %130 = fmul double %127, %129
  %131 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN12HighsCDoublemIEd(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %130)
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %133 = load double, ptr %132, align 8, !tbaa !5
  %134 = fneg double %133
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  store double %134, ptr %135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %136 = load ptr, ptr %0, align 8, !tbaa !9
  call void @_ZNK17HighsLpRelaxation6getRowEiRiRPKiRPKd(ptr noundef nonnull align 8 dereferenceable(21425) %136, i32 noundef %125, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12)
  %137 = load i32, ptr %10, align 4, !tbaa !33
  %.not115119 = icmp eq i32 %137, 0
  br i1 %.not115119, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  br label %149

.lr.ph:                                           ; preds = %124, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %124 ]
  %138 = load ptr, ptr %11, align 8, !tbaa !42
  %139 = getelementptr inbounds i32, ptr %138, i64 %indvars.iv
  %140 = load i32, ptr %139, align 4, !tbaa !33
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv142) #5
  %142 = load double, ptr %141, align 8, !tbaa !5
  %143 = load ptr, ptr %12, align 8, !tbaa !42
  %144 = getelementptr inbounds double, ptr %143, i64 %indvars.iv
  %145 = load double, ptr %144, align 8, !tbaa !5
  %146 = fmul double %142, %145
  call void @_ZN20HighsSparseVectorSum3addEid(ptr noundef nonnull align 8 dereferenceable(48) %23, i32 noundef %140, double noundef %146)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %147 = load i32, ptr %10, align 4, !tbaa !33
  %148 = zext i32 %147 to i64
  %.not115 = icmp eq i64 %indvars.iv.next, %148
  br i1 %.not115, label %._crit_edge, label %.lr.ph, !llvm.loop !45

149:                                              ; preds = %32, %38, %57, %._crit_edge125, %78, %._crit_edge, %112, %28
  %indvars.iv.next143 = add nuw nsw i64 %indvars.iv142, 1
  %.not = icmp eq i64 %indvars.iv.next143, %27
  br i1 %.not, label %._crit_edge130, label %28, !llvm.loop !46

150:                                              ; preds = %._crit_edge130
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  store ptr %18, ptr %13, align 8, !tbaa !42
  %151 = getelementptr inbounds i8, ptr %0, i64 200
  call void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_0EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48) %151, ptr noundef nonnull align 8 dereferenceable(8) %13)
  %152 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
  %153 = call double @llvm.round.f64(double %152)
  store double %153, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  br label %162

154:                                              ; preds = %._crit_edge130
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #5
  store i8 0, ptr %14, align 1, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #5
  store ptr %18, ptr %15, align 8, !tbaa !42
  %155 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %14, ptr %155, align 8, !tbaa !42
  %156 = getelementptr inbounds i8, ptr %15, i64 16
  store ptr %6, ptr %156, align 8, !tbaa !42
  %157 = getelementptr inbounds i8, ptr %0, i64 200
  call void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_1EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48) %157, ptr noundef nonnull align 8 dereferenceable(24) %15)
  %158 = load i8, ptr %14, align 1, !tbaa !47, !range !49, !noundef !50
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %.thread, label %160

.thread:                                          ; preds = %154
  call void @_ZN20HighsSparseVectorSum5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %157)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  br label %180

160:                                              ; preds = %154
  %161 = call noundef double @_ZNK12HighsCDoublecvdEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
  store double %161, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  br label %162

162:                                              ; preds = %160, %150
  %163 = getelementptr inbounds i8, ptr %0, i64 200
  %164 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK20HighsSparseVectorSum11getNonzerosEv(ptr noundef nonnull align 8 dereferenceable(48) %163)
  %165 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %164)
  %166 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  %sext = shl i64 %166, 32
  %167 = ashr exact i64 %sext, 32
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %167)
  %168 = and i64 %166, 4294967295
  %.not114134 = icmp eq i64 %168, 0
  br i1 %4, label %.preheader, label %.preheader117

.preheader117:                                    ; preds = %162
  br i1 %.not114134, label %.loopexit, label %.lr.ph133.preheader

.lr.ph133.preheader:                              ; preds = %.preheader117
  %169 = and i64 %166, 4294967295
  br label %.lr.ph133

.preheader:                                       ; preds = %162
  br i1 %.not114134, label %.loopexit, label %.lr.ph136.preheader

.lr.ph136.preheader:                              ; preds = %.preheader
  %170 = and i64 %166, 4294967295
  br label %.lr.ph136

.lr.ph136:                                        ; preds = %.lr.ph136.preheader, %.lr.ph136
  %indvars.iv148 = phi i64 [ 0, %.lr.ph136.preheader ], [ %indvars.iv.next149, %.lr.ph136 ]
  %171 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv148) #5
  %172 = load i32, ptr %171, align 4, !tbaa !33
  %173 = call noundef double @_ZNK20HighsSparseVectorSum8getValueEi(ptr noundef nonnull align 8 dereferenceable(48) %163, i32 noundef %172)
  %174 = call double @llvm.round.f64(double %173)
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv148) #5
  store double %174, ptr %175, align 8, !tbaa !5
  %indvars.iv.next149 = add nuw nsw i64 %indvars.iv148, 1
  %.not114 = icmp eq i64 %indvars.iv.next149, %170
  br i1 %.not114, label %.loopexit, label %.lr.ph136, !llvm.loop !51

.lr.ph133:                                        ; preds = %.lr.ph133.preheader, %.lr.ph133
  %indvars.iv145 = phi i64 [ 0, %.lr.ph133.preheader ], [ %indvars.iv.next146, %.lr.ph133 ]
  %176 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv145) #5
  %177 = load i32, ptr %176, align 4, !tbaa !33
  %178 = call noundef double @_ZNK20HighsSparseVectorSum8getValueEi(ptr noundef nonnull align 8 dereferenceable(48) %163, i32 noundef %177)
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv145) #5
  store double %178, ptr %179, align 8, !tbaa !5
  %indvars.iv.next146 = add nuw nsw i64 %indvars.iv145, 1
  %.not113 = icmp eq i64 %indvars.iv.next146, %169
  br i1 %.not113, label %.loopexit, label %.lr.ph133, !llvm.loop !52

.loopexit:                                        ; preds = %.lr.ph133, %.lr.ph136, %.preheader117, %.preheader
  call void @_ZN20HighsSparseVectorSum5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %163)
  br label %180

180:                                              ; preds = %.thread, %.loopexit
  %.1 = phi i1 [ true, %.loopexit ], [ false, %.thread ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #5
  ret i1 %.1
}

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_0EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.round.f64(double) #4

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN20HighsSparseVectorSum7cleanupIRZN18HighsTransformedLp11untransformERSt6vectorIdSaIdEERS2_IiSaIiEERdbE3$_1EEvOT_"(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS18HighsTransformedLp", !11, i64 0, !12, i64 8, !12, i64 32, !16, i64 56, !16, i64 80, !16, i64 104, !16, i64 128, !16, i64 152, !20, i64 176, !24, i64 200}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"_ZTSSt6vectorISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseISt4pairIiN17HighsImplications8VarBoundEESaIS3_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!16 = !{!"_ZTSSt6vectorIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!20 = !{!"_ZTSSt6vectorIN18HighsTransformedLp9BoundTypeESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIN18HighsTransformedLp9BoundTypeESaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN18HighsTransformedLp9BoundTypeESaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN18HighsTransformedLp9BoundTypeESaIS1_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!24 = !{!"_ZTS20HighsSparseVectorSum", !25, i64 0, !29, i64 24}
!25 = !{!"_ZTSSt6vectorI12HighsCDoubleSaIS0_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseI12HighsCDoubleSaIS0_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseI12HighsCDoubleSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!29 = !{!"_ZTSSt6vectorIiSaIiEE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!33 = !{!34, !34, i64 0}
!34 = !{!"int", !7, i64 0}
!35 = !{!36, !36, i64 0}
!36 = !{!"_ZTSN18HighsTransformedLp9BoundTypeE", !7, i64 0}
!37 = !{!38, !6, i64 16}
!38 = !{!"_ZTSSt4pairIiN17HighsImplications8VarBoundEE", !34, i64 0, !39, i64 8}
!39 = !{!"_ZTSN17HighsImplications8VarBoundE", !6, i64 0, !6, i64 8}
!40 = !{!38, !34, i64 0}
!41 = !{!38, !6, i64 8}
!42 = !{!11, !11, i64 0}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = distinct !{!45, !44}
!46 = distinct !{!46, !44}
!47 = !{!48, !48, i64 0}
!48 = !{!"bool", !7, i64 0}
!49 = !{i8 0, i8 2}
!50 = !{}
!51 = distinct !{!51, !44}
!52 = distinct !{!52, !44}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass