; LLVM IR from ERGO-Code/HiGHS :: src/lp_data/HighsInterface.ll (ZN5Highs22computeIllConditioningER20HighsIllConditioningbid)

; 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.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] }
%class.Highs = type { ptr, %struct.HighsSolution, %struct.HighsBasis, %struct.ICrashInfo, %class.HighsModel, %"class.std::vector.33", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.57", i32, i32, i8, double, %"class.std::vector", %"class.std::vector", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.HighsSolution = type { i8, i8, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.3", %"class.std::vector.3" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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 }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.8", %"class.std::vector", double }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.HighsLp = type { i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.23", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%struct.HighsScale = type { i32, i8, i32, i32, double, %"class.std::vector", %"class.std::vector" }
%struct.HighsLpMods = type { %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.23", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHessian = type { i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.18", i32, i32, i32, [4 x i8] }>
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.38", %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.38" = 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.42", 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.42" = type { %"struct.std::_Vector_base.43" }
%"struct.std::_Vector_base.43" = 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.47" }
%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.47" = type { %"struct.std::_Vector_base.48" }
%"struct.std::_Vector_base.48" = 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", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13" }
%class.HighsIis = type { i8, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.52" }
%"class.std::vector.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = 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.std::vector.57" = type { %"struct.std::_Vector_base.58" }
%"struct.std::_Vector_base.58" = 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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%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", %"class.std::vector", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector.13", %"class.std::vector", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.105", %"class.std::vector", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.62", %"class.std::vector.62", 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", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.67", %"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.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = 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.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.73" }
%"struct.std::_Head_base.73" = 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", %"class.std::vector.13", 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", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", 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.13", %"class.std::vector.74", %"class.std::vector.74", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.74" = type { %"struct.std::_Vector_base.75" }
%"struct.std::_Vector_base.75" = 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.79", %"class.std::unique_ptr.87", i64, i64, i64 }
%"class.std::unique_ptr.79" = type { %"struct.std::__uniq_ptr_data.80" }
%"struct.std::__uniq_ptr_data.80" = type { %"class.std::__uniq_ptr_impl.81" }
%"class.std::__uniq_ptr_impl.81" = type { %"class.std::tuple.82" }
%"class.std::tuple.82" = type { %"struct.std::_Tuple_impl.83" }
%"struct.std::_Tuple_impl.83" = type { %"struct.std::_Head_base.86" }
%"struct.std::_Head_base.86" = type { ptr }
%"class.std::unique_ptr.87" = type { %"struct.std::__uniq_ptr_data.88" }
%"struct.std::__uniq_ptr_data.88" = type { %"class.std::__uniq_ptr_impl.89" }
%"class.std::__uniq_ptr_impl.89" = type { %"class.std::tuple.90" }
%"class.std::tuple.90" = type { %"struct.std::_Tuple_impl.91" }
%"struct.std::_Tuple_impl.91" = type { %"struct.std::_Head_base.94" }
%"struct.std::_Head_base.94" = 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.13", %"class.std::vector.13", %"class.std::vector.13", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.95", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.103", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.74", double }
%"class.std::unique_ptr.95" = type { %"struct.std::__uniq_ptr_data.96" }
%"struct.std::__uniq_ptr_data.96" = type { %"class.std::__uniq_ptr_impl.97" }
%"class.std::__uniq_ptr_impl.97" = type { %"class.std::tuple.98" }
%"class.std::tuple.98" = type { %"struct.std::_Tuple_impl.99" }
%"struct.std::_Tuple_impl.99" = type { %"struct.std::_Head_base.102" }
%"struct.std::_Head_base.102" = type { ptr }
%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }
%"struct.std::_Vector_base.104" = 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 }
%class.HVectorBase = type { i32, i32, %"class.std::vector.13", %"class.std::vector", double, %"class.std::vector.103", %"class.std::vector.13", ptr, i8, i32, %"class.std::vector.13", %"class.std::vector" }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector" }
%struct.InvertibleRepresentation = type { %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.74" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector" }
%"class.std::vector.105" = type { %"struct.std::_Vector_base.106" }
%"struct.std::_Vector_base.106" = 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.110" }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = 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.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.115", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.120", %"class.std::vector.125", %"class.std::vector.125", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector.103", i64 }
%"class.std::vector.115" = type { %"struct.std::_Vector_base.116" }
%"struct.std::_Vector_base.116" = 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.120" = type { %"struct.std::_Vector_base.121" }
%"struct.std::_Vector_base.121" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = 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.std::pair" = type <{ double, i32, [4 x i8] }>
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%class.anon.140 = type { ptr, ptr }
%struct.HighsIllConditioningRecord = type { i32, double }
%"class.std::allocator.15" = type { i8 }
%"class.std::allocator.0" = type { i8 }
%struct.HighsIllConditioning = type { %"class.std::vector.130" }
%"class.std::vector.130" = type { %"struct.std::_Vector_base.131" }
%"struct.std::_Vector_base.131" = type { %"struct.std::_Vector_base<HighsIllConditioningRecord, std::allocator<HighsIllConditioningRecord>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsIllConditioningRecord, std::allocator<HighsIllConditioningRecord>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsIllConditioningRecord, std::allocator<HighsIllConditioningRecord>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsIllConditioningRecord, std::allocator<HighsIllConditioningRecord>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [66 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Highs22computeIllConditioningER20HighsIllConditioningbid = external hidden unnamed_addr constant [108 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [8 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

declare void @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) #4

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) #2 align 2

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

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

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

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

declare void @_ZNK17HighsSparseMatrix6getRowEiRiPiPd(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef) #4

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) #4

declare noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928)) #4

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN5Highs22computeIllConditioningER20HighsIllConditioningbid(ptr noundef nonnull align 8 dereferenceable(20928) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i1 noundef zeroext %2, i32 noundef %3, double noundef %4) #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %class.Highs, align 8
  %15 = alloca i8, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::vector.13", align 8
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca i8, align 1
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca double, align 8
  %30 = alloca i32, align 4
  %31 = alloca double, align 8
  %32 = alloca %"class.std::vector.135", align 8
  %33 = alloca i32, align 4
  %34 = alloca double, align 8
  %35 = alloca %"struct.std::pair", align 8
  %36 = alloca { double, i32 }, align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %39 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %40 = alloca i8, align 1
  %41 = alloca i8, align 1
  %42 = alloca double, align 8
  %43 = alloca %class.anon.140, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.HighsIllConditioningRecord, align 8
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca %"class.std::vector.13", align 8
  %50 = alloca %"class.std::allocator.15", align 1
  %51 = alloca %"class.std::vector", align 8
  %52 = alloca %"class.std::allocator.0", align 1
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca i8, align 1
  %58 = alloca i32, align 4
  %59 = alloca double, align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca i1, align 1
  %63 = alloca i1, align 1
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca i1, align 1
  %71 = alloca i1, align 1
  %72 = alloca i32, align 4
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca i32, align 4
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca i8, align 1
  %81 = alloca double, align 8
  %82 = alloca i32, align 4
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca i1, align 1
  %86 = alloca i1, align 1
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca i1, align 1
  %92 = alloca i1, align 1
  %93 = alloca i32, align 4
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca i32, align 4
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca i1, align 1
  %101 = alloca i1, align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  %104 = zext i1 %2 to i8
  store i8 %104, ptr %9, align 1, !tbaa !9
  store i32 %3, ptr %10, align 4, !tbaa !11
  store double %4, ptr %11, align 8, !tbaa !13
  %105 = load ptr, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store double 0x3EB0C6F7A0B5ED8D, ptr %12, align 8, !tbaa !13
  %106 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN20HighsIllConditioning5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %106)
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %107 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 4
  %108 = getelementptr inbounds %class.HighsModel, ptr %107, i32 0, i32 0
  store ptr %108, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 20928, ptr %14) #9
  call void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %14)
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #9
  store i8 0, ptr %15, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.219, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %109 unwind label %121

109:                                              ; preds = %5
  %110 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928) %14, ptr noundef nonnull align 8 dereferenceable(32) %16, i1 noundef zeroext false)
          to label %111 unwind label %125

111:                                              ; preds = %109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %112 = getelementptr inbounds %class.Highs, ptr %14, i32 0, i32 4
  %113 = getelementptr inbounds %class.HighsModel, ptr %112, i32 0, i32 0
  store ptr %113, ptr %21, align 8, !tbaa !5
  %114 = load i32, ptr %10, align 4, !tbaa !11
  %115 = icmp eq i32 %114, 0
  br i1 %115, label %116, label %134

116:                                              ; preds = %111
  %117 = load ptr, ptr %21, align 8, !tbaa !5
  %118 = load i8, ptr %9, align 1, !tbaa !9, !range !15, !noundef !16
  %119 = trunc i8 %118 to i1
  invoke void @_ZN5Highs22formIllConditioningLp0ER7HighsLpRSt6vectorIiSaIiEEb(ptr noundef nonnull align 8 dereferenceable(20928) %105, ptr noundef nonnull align 8 dereferenceable(920) %117, ptr noundef nonnull align 8 dereferenceable(24) %20, i1 noundef zeroext %119)
          to label %120 unwind label %130

120:                                              ; preds = %116
  br label %140

121:                                              ; preds = %5
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %18, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %19, align 4
  br label %129

125:                                              ; preds = %109
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %18, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %129

129:                                              ; preds = %125, %121
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  br label %1053

130:                                              ; preds = %140, %134, %116
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %18, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %19, align 4
  br label %1052

134:                                              ; preds = %111
  %135 = load ptr, ptr %21, align 8, !tbaa !5
  %136 = load i8, ptr %9, align 1, !tbaa !9, !range !15, !noundef !16
  %137 = trunc i8 %136 to i1
  %138 = load double, ptr %11, align 8, !tbaa !13
  invoke void @_ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd(ptr noundef nonnull align 8 dereferenceable(20928) %105, ptr noundef nonnull align 8 dereferenceable(920) %135, ptr noundef nonnull align 8 dereferenceable(24) %20, i1 noundef zeroext %137, double noundef %138)
          to label %139 unwind label %130

139:                                              ; preds = %134
  br label %140

140:                                              ; preds = %139, %120
  %141 = load ptr, ptr %21, align 8, !tbaa !5
  %142 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %143 = invoke noundef i32 @_Z8assessLpR7HighsLpRK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(920) %141, ptr noundef nonnull align 8 dereferenceable(1020) %142)
          to label %144 unwind label %130

144:                                              ; preds = %140
  %145 = icmp eq i32 %143, 0
  br i1 %145, label %146, label %147

146:                                              ; preds = %144
  br label %149

147:                                              ; preds = %144
  call void @__assert_fail(ptr noundef @.str.220, ptr noundef @.str.78, i32 noundef 2885, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22computeIllConditioningER20HighsIllConditioningbid) #10
  unreachable

148:                                              ; No predecessors!
  br label %149

149:                                              ; preds = %148, %146
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %150 = invoke noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %151 unwind label %191

151:                                              ; preds = %149
  store i32 %150, ptr %22, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %152 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %153 unwind label %195

153:                                              ; preds = %151
  %154 = load i32, ptr %152, align 4, !tbaa !19
  store i32 %154, ptr %23, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #9
  %155 = load i8, ptr %9, align 1, !tbaa !9, !range !15, !noundef !16
  %156 = trunc i8 %155 to i1
  %157 = zext i1 %156 to i64
  %158 = select i1 %156, ptr @.str.221, ptr @.str.222
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %158, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %159 unwind label %199

159:                                              ; preds = %153
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #9
  %160 = load i32, ptr %22, align 4, !tbaa !17
  %161 = icmp ne i32 %160, 0
  br i1 %161, label %181, label %162

162:                                              ; preds = %159
  %163 = load i32, ptr %10, align 4, !tbaa !11
  %164 = icmp eq i32 %163, 0
  br i1 %164, label %165, label %168

165:                                              ; preds = %162
  %166 = load i32, ptr %23, align 4, !tbaa !19
  %167 = icmp ne i32 %166, 7
  br i1 %167, label %181, label %168

168:                                              ; preds = %165, %162
  %169 = load i32, ptr %10, align 4, !tbaa !11
  %170 = icmp eq i32 %169, 1
  br i1 %170, label %171, label %179

171:                                              ; preds = %168
  %172 = load i32, ptr %23, align 4, !tbaa !19
  %173 = icmp ne i32 %172, 7
  br i1 %173, label %174, label %177

174:                                              ; preds = %171
  %175 = load i32, ptr %23, align 4, !tbaa !19
  %176 = icmp ne i32 %175, 8
  br label %177

177:                                              ; preds = %174, %171
  %178 = phi i1 [ false, %171 ], [ %176, %174 ]
  br label %179

179:                                              ; preds = %177, %168
  %180 = phi i1 [ false, %168 ], [ %178, %177 ]
  br label %181

181:                                              ; preds = %179, %165, %159
  %182 = phi i1 [ true, %165 ], [ true, %159 ], [ %180, %179 ]
  %183 = zext i1 %182 to i8
  store i8 %183, ptr %26, align 1, !tbaa !9
  %184 = load i8, ptr %26, align 1, !tbaa !9, !range !15, !noundef !16
  %185 = trunc i8 %184 to i1
  br i1 %185, label %186, label %207

186:                                              ; preds = %181
  %187 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %188 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %187, i32 0, i32 130
  %189 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %188, i32 noundef 1, ptr noundef @.str.223, ptr noundef %189)
          to label %190 unwind label %203

190:                                              ; preds = %186
  store i32 -1, ptr %6, align 4
  store i32 1, ptr %27, align 4
  br label %1046

191:                                              ; preds = %149
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %18, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %19, align 4
  br label %1051

195:                                              ; preds = %151
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %18, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %19, align 4
  br label %1050

199:                                              ; preds = %153
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %18, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %19, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  br label %1049

203:                                              ; preds = %213, %186
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %18, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %19, align 4
  br label %1048

207:                                              ; preds = %181
  %208 = load i32, ptr %10, align 4, !tbaa !11
  %209 = icmp eq i32 %208, 1
  br i1 %209, label %210, label %221

210:                                              ; preds = %207
  %211 = load i32, ptr %23, align 4, !tbaa !19
  %212 = icmp eq i32 %211, 8
  br i1 %212, label %213, label %221

213:                                              ; preds = %210
  %214 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %215 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %214, i32 0, i32 130
  %216 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  %217 = load double, ptr %11, align 8, !tbaa !13
  %218 = load double, ptr %11, align 8, !tbaa !13
  %219 = fmul double 1.000000e+01, %218
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %215, i32 noundef 1, ptr noundef @.str.224, ptr noundef %216, double noundef %217, double noundef %219)
          to label %220 unwind label %203

220:                                              ; preds = %213
  store i32 0, ptr %6, align 4
  store i32 1, ptr %27, align 4
  br label %1046

221:                                              ; preds = %210, %207
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %222 = getelementptr inbounds %class.Highs, ptr %14, i32 0, i32 1
  store ptr %222, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  store double 0.000000e+00, ptr %29, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  store i32 0, ptr %30, align 4, !tbaa !11
  br label %223

223:                                              ; preds = %240, %221
  %224 = load i32, ptr %30, align 4, !tbaa !11
  %225 = load ptr, ptr %13, align 8, !tbaa !5
  %226 = getelementptr inbounds %class.HighsLp, ptr %225, i32 0, i32 1
  %227 = load i32, ptr %226, align 4, !tbaa !21
  %228 = icmp slt i32 %224, %227
  br i1 %228, label %230, label %229

229:                                              ; preds = %223
  store i32 2, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %243

230:                                              ; preds = %223
  %231 = load ptr, ptr %28, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.HighsSolution, ptr %231, i32 0, i32 2
  %233 = load i32, ptr %30, align 4, !tbaa !11
  %234 = sext i32 %233 to i64
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %234) #9
  %236 = load double, ptr %235, align 8, !tbaa !13
  %237 = call double @llvm.fabs.f64(double %236)
  %238 = load double, ptr %29, align 8, !tbaa !13
  %239 = fadd double %238, %237
  store double %239, ptr %29, align 8, !tbaa !13
  br label %240

240:                                              ; preds = %230
  %241 = load i32, ptr %30, align 4, !tbaa !11
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr %30, align 4, !tbaa !11
  br label %223, !llvm.loop !53

243:                                              ; preds = %229
  %244 = load double, ptr %29, align 8, !tbaa !13
  %245 = fcmp ogt double %244, 0.000000e+00
  br i1 %245, label %246, label %247

246:                                              ; preds = %243
  br label %249

247:                                              ; preds = %243
  call void @__assert_fail(ptr noundef @.str.225, ptr noundef @.str.78, i32 noundef 2915, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22computeIllConditioningER20HighsIllConditioningbid) #10
  unreachable

248:                                              ; No predecessors!
  br label %249

249:                                              ; preds = %248, %246
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %250 = load i32, ptr %10, align 4, !tbaa !11
  %251 = icmp eq i32 %250, 0
  br i1 %251, label %252, label %258

252:                                              ; preds = %249
  %253 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %254 unwind label %283

254:                                              ; preds = %252
  %255 = getelementptr inbounds i8, ptr %253, i64 8
  %256 = getelementptr inbounds %struct.HighsInfoStruct, ptr %255, i32 0, i32 10
  %257 = load double, ptr %256, align 8, !tbaa !55
  br label %267

258:                                              ; preds = %249
  %259 = load ptr, ptr %28, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.HighsSolution, ptr %259, i32 0, i32 4
  %261 = invoke noundef i32 @_ZNK5Highs9getNumRowEv(ptr noundef nonnull align 8 dereferenceable(20928) %14)
          to label %262 unwind label %283

262:                                              ; preds = %258
  %263 = sub nsw i32 %261, 1
  %264 = sext i32 %263 to i64
  %265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %260, i64 noundef %264) #9
  %266 = load double, ptr %265, align 8, !tbaa !13
  br label %267

267:                                              ; preds = %262, %254
  %268 = phi double [ %257, %254 ], [ %266, %262 ]
  %269 = load double, ptr %29, align 8, !tbaa !13
  %270 = fdiv double %268, %269
  store double %270, ptr %31, align 8, !tbaa !13
  %271 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %272 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %271, i32 0, i32 130
  %273 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  %274 = load double, ptr %31, align 8, !tbaa !13
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %272, i32 noundef 1, ptr noundef @.str.226, ptr noundef %273, double noundef %274)
          to label %275 unwind label %283

275:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #9
  call void @_ZNSt6vectorISt4pairIdiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  store i32 0, ptr %33, align 4, !tbaa !11
  br label %276

276:                                              ; preds = %307, %275
  %277 = load i32, ptr %33, align 4, !tbaa !11
  %278 = load ptr, ptr %13, align 8, !tbaa !5
  %279 = getelementptr inbounds %class.HighsLp, ptr %278, i32 0, i32 1
  %280 = load i32, ptr %279, align 4, !tbaa !21
  %281 = icmp slt i32 %277, %280
  br i1 %281, label %287, label %282

282:                                              ; preds = %276
  store i32 5, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %314

283:                                              ; preds = %267, %258, %252
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %18, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %19, align 4
  br label %1045

287:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %288 = load ptr, ptr %28, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.HighsSolution, ptr %288, i32 0, i32 2
  %290 = load i32, ptr %33, align 4, !tbaa !11
  %291 = sext i32 %290 to i64
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %289, i64 noundef %291) #9
  %293 = load double, ptr %292, align 8, !tbaa !13
  %294 = call double @llvm.fabs.f64(double %293)
  %295 = load double, ptr %29, align 8, !tbaa !13
  %296 = fdiv double %294, %295
  store double %296, ptr %34, align 8, !tbaa !13
  %297 = load double, ptr %34, align 8, !tbaa !13
  %298 = fcmp ole double %297, 0x3EB0C6F7A0B5ED8D
  br i1 %298, label %299, label %300

299:                                              ; preds = %287
  store i32 7, ptr %27, align 4
  br label %304

300:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #9
  %301 = invoke { double, i32 } @_ZSt9make_pairIRdRiESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %302 unwind label %310

302:                                              ; preds = %300
  store { double, i32 } %301, ptr %36, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %35, ptr align 8 %36, i64 12, i1 false)
  invoke void @_ZNSt6vectorISt4pairIdiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(12) %35)
          to label %303 unwind label %310

303:                                              ; preds = %302
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #9
  store i32 0, ptr %27, align 4
  br label %304

304:                                              ; preds = %303, %299
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  %305 = load i32, ptr %27, align 4
  switch i32 %305, label %1059 [
    i32 0, label %306
    i32 7, label %307
  ]

306:                                              ; preds = %304
  br label %307

307:                                              ; preds = %306, %304
  %308 = load i32, ptr %33, align 4, !tbaa !11
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr %33, align 4, !tbaa !11
  br label %276, !llvm.loop !57

310:                                              ; preds = %302, %300
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %18, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1044

314:                                              ; preds = %282
  %315 = call ptr @_ZNSt6vectorISt4pairIdiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %32) #9
  %316 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  store ptr %315, ptr %316, align 8
  %317 = call ptr @_ZNSt6vectorISt4pairIdiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %32) #9
  %318 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  store ptr %317, ptr %318, align 8
  %319 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  %320 = load ptr, ptr %319, align 8
  %321 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  %322 = load ptr, ptr %321, align 8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIdiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %320, ptr %322)
          to label %323 unwind label %352

323:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 392, ptr %39) #9
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %324 unwind label %356

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #9
  %325 = load ptr, ptr %13, align 8, !tbaa !5
  %326 = getelementptr inbounds %class.HighsLp, ptr %325, i32 0, i32 15
  %327 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %326) #9
  %328 = trunc i64 %327 to i32
  %329 = load ptr, ptr %13, align 8, !tbaa !5
  %330 = getelementptr inbounds %class.HighsLp, ptr %329, i32 0, i32 1
  %331 = load i32, ptr %330, align 4, !tbaa !21
  %332 = icmp eq i32 %328, %331
  %333 = zext i1 %332 to i8
  store i8 %333, ptr %40, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #9
  %334 = load ptr, ptr %13, align 8, !tbaa !5
  %335 = getelementptr inbounds %class.HighsLp, ptr %334, i32 0, i32 14
  %336 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %335) #9
  %337 = trunc i64 %336 to i32
  %338 = load ptr, ptr %13, align 8, !tbaa !5
  %339 = getelementptr inbounds %class.HighsLp, ptr %338, i32 0, i32 0
  %340 = load i32, ptr %339, align 8, !tbaa !58
  %341 = icmp eq i32 %337, %340
  %342 = zext i1 %341 to i8
  store i8 %342, ptr %41, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  store double 1.000000e-08, ptr %42, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #9
  %343 = getelementptr inbounds %class.anon.140, ptr %43, i32 0, i32 0
  store ptr %42, ptr %343, align 8, !tbaa !5
  %344 = getelementptr inbounds %class.anon.140, ptr %43, i32 0, i32 1
  store ptr %39, ptr %344, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %345 = call noundef i64 @_ZNKSt6vectorISt4pairIdiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %32) #9
  %346 = trunc i64 %345 to i32
  %347 = sub nsw i32 %346, 1
  store i32 %347, ptr %44, align 4, !tbaa !11
  br label %348

348:                                              ; preds = %380, %324
  %349 = load i32, ptr %44, align 4, !tbaa !11
  %350 = icmp sge i32 %349, 0
  br i1 %350, label %360, label %351

351:                                              ; preds = %348
  store i32 8, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %387

352:                                              ; preds = %314
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %18, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %19, align 4
  br label %1044

356:                                              ; preds = %323
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %18, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %19, align 4
  br label %1043

360:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %361 = load i32, ptr %44, align 4, !tbaa !11
  %362 = sext i32 %361 to i64
  %363 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNSt6vectorISt4pairIdiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %362) #9
  %364 = getelementptr inbounds %"struct.std::pair", ptr %363, i32 0, i32 1
  %365 = load i32, ptr %364, align 8, !tbaa !59
  store i32 %365, ptr %45, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #9
  %366 = load i32, ptr %45, align 4, !tbaa !11
  %367 = getelementptr inbounds %struct.HighsIllConditioningRecord, ptr %46, i32 0, i32 0
  store i32 %366, ptr %367, align 8, !tbaa !61
  %368 = load ptr, ptr %28, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.HighsSolution, ptr %368, i32 0, i32 2
  %370 = load i32, ptr %45, align 4, !tbaa !11
  %371 = sext i32 %370 to i64
  %372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %369, i64 noundef %371) #9
  %373 = load double, ptr %372, align 8, !tbaa !13
  %374 = load double, ptr %29, align 8, !tbaa !13
  %375 = fdiv double %373, %374
  %376 = getelementptr inbounds %struct.HighsIllConditioningRecord, ptr %46, i32 0, i32 1
  store double %375, ptr %376, align 8, !tbaa !63
  %377 = load ptr, ptr %8, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.HighsIllConditioning, ptr %377, i32 0, i32 0
  invoke void @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %378, ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %379 unwind label %383

379:                                              ; preds = %360
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %380

380:                                              ; preds = %379
  %381 = load i32, ptr %44, align 4, !tbaa !11
  %382 = add nsw i32 %381, -1
  store i32 %382, ptr %44, align 4, !tbaa !11
  br label %348, !llvm.loop !64

383:                                              ; preds = %360
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %18, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1042

387:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %388 = load ptr, ptr %13, align 8, !tbaa !5
  %389 = getelementptr inbounds %class.HighsLp, ptr %388, i32 0, i32 7
  store ptr %389, ptr %47, align 8, !tbaa !5
  %390 = load i8, ptr %9, align 1, !tbaa !9, !range !15, !noundef !16
  %391 = trunc i8 %390 to i1
  br i1 %391, label %392, label %708

392:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #9
  %393 = load ptr, ptr %13, align 8, !tbaa !5
  %394 = getelementptr inbounds %class.HighsLp, ptr %393, i32 0, i32 0
  %395 = load i32, ptr %394, align 8, !tbaa !58
  %396 = sext i32 %395 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #9
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %396, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %397 unwind label %413

397:                                              ; preds = %392
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #9
  %398 = load ptr, ptr %13, align 8, !tbaa !5
  %399 = getelementptr inbounds %class.HighsLp, ptr %398, i32 0, i32 0
  %400 = load i32, ptr %399, align 8, !tbaa !58
  %401 = sext i32 %400 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef %401, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %402 unwind label %417

402:                                              ; preds = %397
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %403 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %49) #9
  store ptr %403, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %404 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  store ptr %404, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  store i32 0, ptr %55, align 4, !tbaa !11
  br label %405

405:                                              ; preds = %697, %402
  %406 = load i32, ptr %55, align 4, !tbaa !11
  %407 = load ptr, ptr %8, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.HighsIllConditioning, ptr %407, i32 0, i32 0
  %409 = call noundef i64 @_ZNKSt6vectorI26HighsIllConditioningRecordSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %408) #9
  %410 = trunc i64 %409 to i32
  %411 = icmp slt i32 %406, %410
  br i1 %411, label %421, label %412

412:                                              ; preds = %405
  store i32 11, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %705

413:                                              ; preds = %392
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %18, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %19, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #9
  br label %707

417:                                              ; preds = %397
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %18, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %19, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #9
  br label %706

421:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %39, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %422 unwind label %503

422:                                              ; preds = %421
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #9
  store i8 0, ptr %57, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %423 = load ptr, ptr %8, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.HighsIllConditioning, ptr %423, i32 0, i32 0
  %425 = load i32, ptr %55, align 4, !tbaa !11
  %426 = sext i32 %425 to i64
  %427 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %424, i64 noundef %426) #9
  %428 = getelementptr inbounds %struct.HighsIllConditioningRecord, ptr %427, i32 0, i32 0
  %429 = load i32, ptr %428, align 8, !tbaa !61
  store i32 %429, ptr %58, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %430 = load ptr, ptr %8, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.HighsIllConditioning, ptr %430, i32 0, i32 0
  %432 = load i32, ptr %55, align 4, !tbaa !11
  %433 = sext i32 %432 to i64
  %434 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %431, i64 noundef %433) #9
  %435 = getelementptr inbounds %struct.HighsIllConditioningRecord, ptr %434, i32 0, i32 1
  %436 = load double, ptr %435, align 8, !tbaa !63
  store double %436, ptr %59, align 8, !tbaa !13
  store i32 0, ptr %48, align 4, !tbaa !11
  %437 = load ptr, ptr %47, align 8, !tbaa !5
  %438 = load i32, ptr %58, align 4, !tbaa !11
  %439 = load ptr, ptr %53, align 8, !tbaa !5
  %440 = load ptr, ptr %54, align 8, !tbaa !5
  invoke void @_ZNK17HighsSparseMatrix6getRowEiRiPiPd(ptr noundef nonnull align 8 dereferenceable(112) %437, i32 noundef %438, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef %439, ptr noundef %440)
          to label %441 unwind label %507

441:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #9
  %442 = load i8, ptr %40, align 1, !tbaa !9, !range !15, !noundef !16
  %443 = trunc i8 %442 to i1
  store i1 false, ptr %62, align 1
  store i1 false, ptr %63, align 1
  br i1 %443, label %444, label %451

444:                                              ; preds = %441
  %445 = load ptr, ptr %13, align 8, !tbaa !5
  %446 = getelementptr inbounds %class.HighsLp, ptr %445, i32 0, i32 15
  %447 = load i32, ptr %58, align 4, !tbaa !11
  %448 = sext i32 %447 to i64
  %449 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %446, i64 noundef %448) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %449)
          to label %450 unwind label %511

450:                                              ; preds = %444
  br label %454

451:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  store i1 true, ptr %62, align 1
  %452 = load i32, ptr %58, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, i32 noundef %452) #9
  store i1 true, ptr %63, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef @.str.227, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %453 unwind label %515

453:                                              ; preds = %451
  br label %454

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

456:                                              ; preds = %454
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %457

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

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

460:                                              ; preds = %459, %457
  %461 = getelementptr inbounds i8, ptr %39, i64 16
  %462 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %461, ptr noundef @.str.228)
          to label %463 unwind label %525

463:                                              ; preds = %460
  %464 = load double, ptr %59, align 8, !tbaa !13
  %465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %462, double noundef %464)
          to label %466 unwind label %525

466:                                              ; preds = %463
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef @.str.229)
          to label %468 unwind label %525

468:                                              ; preds = %466
  %469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %467, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %470 unwind label %525

470:                                              ; preds = %468
  %471 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %469, ptr noundef @.str.230)
          to label %472 unwind label %525

472:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %473 = load ptr, ptr %13, align 8, !tbaa !5
  %474 = getelementptr inbounds %class.HighsLp, ptr %473, i32 0, i32 5
  %475 = load i32, ptr %58, align 4, !tbaa !11
  %476 = sext i32 %475 to i64
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %474, i64 noundef %476) #9
  %478 = load double, ptr %477, align 8, !tbaa !13
  store double %478, ptr %64, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %479 = load ptr, ptr %13, align 8, !tbaa !5
  %480 = getelementptr inbounds %class.HighsLp, ptr %479, i32 0, i32 6
  %481 = load i32, ptr %58, align 4, !tbaa !11
  %482 = sext i32 %481 to i64
  %483 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %480, i64 noundef %482) #9
  %484 = load double, ptr %483, align 8, !tbaa !13
  store double %484, ptr %65, align 8, !tbaa !13
  %485 = load double, ptr %64, align 8, !tbaa !13
  %486 = fcmp ogt double %485, 0xFFF0000000000000
  br i1 %486, label %487, label %533

487:                                              ; preds = %472
  %488 = load double, ptr %64, align 8, !tbaa !13
  %489 = load double, ptr %65, align 8, !tbaa !13
  %490 = fcmp une double %488, %489
  br i1 %490, label %491, label %533

491:                                              ; preds = %487
  %492 = getelementptr inbounds i8, ptr %39, i64 16
  %493 = load ptr, ptr %13, align 8, !tbaa !5
  %494 = getelementptr inbounds %class.HighsLp, ptr %493, i32 0, i32 5
  %495 = load i32, ptr %58, align 4, !tbaa !11
  %496 = sext i32 %495 to i64
  %497 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %494, i64 noundef %496) #9
  %498 = load double, ptr %497, align 8, !tbaa !13
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %492, double noundef %498)
          to label %500 unwind label %529

500:                                              ; preds = %491
  %501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %499, ptr noundef @.str.231)
          to label %502 unwind label %529

502:                                              ; preds = %500
  br label %533

503:                                              ; preds = %421
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %18, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  br label %704

507:                                              ; preds = %422
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %18, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %19, align 4
  br label %703

511:                                              ; preds = %444
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %18, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %19, align 4
  br label %702

515:                                              ; preds = %451
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %18, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %19, align 4
  %519 = load i1, ptr %63, align 1
  br i1 %519, label %520, label %521

520:                                              ; preds = %515
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %521

521:                                              ; preds = %520, %515
  %522 = load i1, ptr %62, align 1
  br i1 %522, label %523, label %524

523:                                              ; preds = %521
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  br label %524

524:                                              ; preds = %523, %521
  br label %702

525:                                              ; preds = %470, %468, %466, %463, %460
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %18, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %19, align 4
  br label %701

529:                                              ; preds = %668, %665, %661, %658, %500, %491
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %18, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %19, align 4
  br label %700

533:                                              ; preds = %502, %487, %472
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  store i32 0, ptr %66, align 4, !tbaa !11
  br label %534

534:                                              ; preds = %643, %533
  %535 = load i32, ptr %66, align 4, !tbaa !11
  %536 = load i32, ptr %48, align 4, !tbaa !11
  %537 = icmp slt i32 %535, %536
  br i1 %537, label %539, label %538

538:                                              ; preds = %534
  store i32 14, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %651

539:                                              ; preds = %534
  %540 = load i8, ptr %57, align 1, !tbaa !9, !range !15, !noundef !16
  %541 = trunc i8 %540 to i1
  br i1 %541, label %542, label %550

542:                                              ; preds = %539
  %543 = getelementptr inbounds i8, ptr %39, i64 16
  %544 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %543, ptr noundef @.str.232)
          to label %545 unwind label %546

545:                                              ; preds = %542
  store i8 0, ptr %57, align 1, !tbaa !9
  br label %550

546:                                              ; preds = %542
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %18, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %19, align 4
  br label %650

550:                                              ; preds = %545, %539
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %551 = load i32, ptr %66, align 4, !tbaa !11
  %552 = sext i32 %551 to i64
  %553 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %552) #9
  %554 = load i32, ptr %553, align 4, !tbaa !11
  store i32 %554, ptr %67, align 4, !tbaa !11
  %555 = load i32, ptr %66, align 4, !tbaa !11
  %556 = sext i32 %555 to i64
  %557 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef %556) #9
  %558 = load double, ptr %557, align 8, !tbaa !13
  %559 = load i32, ptr %66, align 4, !tbaa !11
  %560 = icmp eq i32 %559, 0
  invoke void @"_ZZN5Highs22computeIllConditioningER20HighsIllConditioningbidENK3$_0clEdb"(ptr noundef nonnull align 8 dereferenceable(16) %43, double noundef %558, i1 noundef zeroext %560)
          to label %561 unwind label %603

561:                                              ; preds = %550
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #9
  %562 = load i8, ptr %41, align 1, !tbaa !9, !range !15, !noundef !16
  %563 = trunc i8 %562 to i1
  store i1 false, ptr %70, align 1
  store i1 false, ptr %71, align 1
  br i1 %563, label %564, label %571

564:                                              ; preds = %561
  %565 = load ptr, ptr %13, align 8, !tbaa !5
  %566 = getelementptr inbounds %class.HighsLp, ptr %565, i32 0, i32 14
  %567 = load i32, ptr %67, align 4, !tbaa !11
  %568 = sext i32 %567 to i64
  %569 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %566, i64 noundef %568) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %569)
          to label %570 unwind label %607

570:                                              ; preds = %564
  br label %574

571:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #9
  store i1 true, ptr %70, align 1
  %572 = load i32, ptr %67, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, i32 noundef %572) #9
  store i1 true, ptr %71, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef @.str.233, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %573 unwind label %611

573:                                              ; preds = %571
  br label %574

574:                                              ; preds = %573, %570
  %575 = load i1, ptr %71, align 1
  br i1 %575, label %576, label %577

576:                                              ; preds = %574
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %577

577:                                              ; preds = %576, %574
  %578 = load i1, ptr %70, align 1
  br i1 %578, label %579, label %580

579:                                              ; preds = %577
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  br label %580

580:                                              ; preds = %579, %577
  %581 = getelementptr inbounds i8, ptr %39, i64 16
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %581, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %583 unwind label %621

583:                                              ; preds = %580
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %582, ptr noundef @.str.64)
          to label %585 unwind label %621

585:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %586 unwind label %625

586:                                              ; preds = %585
  %587 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  %588 = trunc i64 %587 to i32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  store i32 %588, ptr %72, align 4, !tbaa !11
  %589 = load i32, ptr %72, align 4, !tbaa !11
  %590 = icmp sgt i32 %589, 72
  br i1 %590, label %591, label %642

591:                                              ; preds = %586
  %592 = load i32, ptr %66, align 4, !tbaa !11
  %593 = load i32, ptr %48, align 4, !tbaa !11
  %594 = sub nsw i32 %593, 1
  %595 = icmp slt i32 %592, %594
  br i1 %595, label %596, label %642

596:                                              ; preds = %591
  %597 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %598 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %597, i32 0, i32 130
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %599 unwind label %629

599:                                              ; preds = %596
  %600 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %598, i32 noundef 1, ptr noundef @.str.76, ptr noundef %600)
          to label %601 unwind label %633

601:                                              ; preds = %599
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %39, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %602 unwind label %638

602:                                              ; preds = %601
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #9
  store i8 1, ptr %57, align 1, !tbaa !9
  br label %642

603:                                              ; preds = %550
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %18, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %19, align 4
  br label %649

607:                                              ; preds = %564
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %18, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %19, align 4
  br label %648

611:                                              ; preds = %571
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %18, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %19, align 4
  %615 = load i1, ptr %71, align 1
  br i1 %615, label %616, label %617

616:                                              ; preds = %611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %617

617:                                              ; preds = %616, %611
  %618 = load i1, ptr %70, align 1
  br i1 %618, label %619, label %620

619:                                              ; preds = %617
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  br label %620

620:                                              ; preds = %619, %617
  br label %648

621:                                              ; preds = %583, %580
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %18, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %19, align 4
  br label %647

625:                                              ; preds = %585
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %18, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  br label %646

629:                                              ; preds = %596
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %18, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %19, align 4
  br label %637

633:                                              ; preds = %599
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %18, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %637

637:                                              ; preds = %633, %629
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #9
  br label %646

638:                                              ; preds = %601
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %18, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #9
  br label %646

642:                                              ; preds = %602, %591, %586
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %643

643:                                              ; preds = %642
  %644 = load i32, ptr %66, align 4, !tbaa !11
  %645 = add nsw i32 %644, 1
  store i32 %645, ptr %66, align 4, !tbaa !11
  br label %534, !llvm.loop !65

646:                                              ; preds = %638, %637, %625
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %647

647:                                              ; preds = %646, %621
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %648

648:                                              ; preds = %647, %620, %607
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  br label %649

649:                                              ; preds = %648, %603
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %650

650:                                              ; preds = %649, %546
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %700

651:                                              ; preds = %538
  %652 = load double, ptr %65, align 8, !tbaa !13
  %653 = fcmp olt double %652, 0x7FF0000000000000
  br i1 %653, label %654, label %673

654:                                              ; preds = %651
  %655 = load double, ptr %64, align 8, !tbaa !13
  %656 = load double, ptr %65, align 8, !tbaa !13
  %657 = fcmp oeq double %655, %656
  br i1 %657, label %658, label %665

658:                                              ; preds = %654
  %659 = getelementptr inbounds i8, ptr %39, i64 16
  %660 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %659, ptr noundef @.str.234)
          to label %661 unwind label %529

661:                                              ; preds = %658
  %662 = load double, ptr %65, align 8, !tbaa !13
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %660, double noundef %662)
          to label %664 unwind label %529

664:                                              ; preds = %661
  br label %672

665:                                              ; preds = %654
  %666 = getelementptr inbounds i8, ptr %39, i64 16
  %667 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %666, ptr noundef @.str.235)
          to label %668 unwind label %529

668:                                              ; preds = %665
  %669 = load double, ptr %65, align 8, !tbaa !13
  %670 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %667, double noundef %669)
          to label %671 unwind label %529

671:                                              ; preds = %668
  br label %672

672:                                              ; preds = %671, %664
  br label %673

673:                                              ; preds = %672, %651
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %674 unwind label %683

674:                                              ; preds = %673
  %675 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  %676 = icmp ne i64 %675, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  br i1 %676, label %677, label %696

677:                                              ; preds = %674
  %678 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %679 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %678, i32 0, i32 130
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %680 unwind label %687

680:                                              ; preds = %677
  %681 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %679, i32 noundef 1, ptr noundef @.str.76, ptr noundef %681)
          to label %682 unwind label %691

682:                                              ; preds = %680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  br label %696

683:                                              ; preds = %673
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %18, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  br label %700

687:                                              ; preds = %677
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %18, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %19, align 4
  br label %695

691:                                              ; preds = %680
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %18, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %695

695:                                              ; preds = %691, %687
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  br label %700

696:                                              ; preds = %682, %674
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #9
  br label %697

697:                                              ; preds = %696
  %698 = load i32, ptr %55, align 4, !tbaa !11
  %699 = add nsw i32 %698, 1
  store i32 %699, ptr %55, align 4, !tbaa !11
  br label %405, !llvm.loop !66

700:                                              ; preds = %695, %683, %650, %529
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  br label %701

701:                                              ; preds = %700, %525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br label %702

702:                                              ; preds = %701, %524, %511
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  br label %703

703:                                              ; preds = %702, %507
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #9
  br label %704

704:                                              ; preds = %703, %503
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  br label %706

705:                                              ; preds = %412
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %1040

706:                                              ; preds = %704, %417
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #9
  br label %707

707:                                              ; preds = %706, %413
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %1041

708:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  store i32 0, ptr %78, align 4, !tbaa !11
  br label %709

709:                                              ; preds = %1034, %708
  %710 = load i32, ptr %78, align 4, !tbaa !11
  %711 = load ptr, ptr %8, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.HighsIllConditioning, ptr %711, i32 0, i32 0
  %713 = call noundef i64 @_ZNKSt6vectorI26HighsIllConditioningRecordSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %712) #9
  %714 = trunc i64 %713 to i32
  %715 = icmp slt i32 %710, %714
  br i1 %715, label %717, label %716

716:                                              ; preds = %709
  store i32 17, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %1039

717:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %39, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %718 unwind label %790

718:                                              ; preds = %717
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #9
  store i8 0, ptr %80, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %719 = load ptr, ptr %8, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.HighsIllConditioning, ptr %719, i32 0, i32 0
  %721 = load i32, ptr %78, align 4, !tbaa !11
  %722 = sext i32 %721 to i64
  %723 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %720, i64 noundef %722) #9
  %724 = getelementptr inbounds %struct.HighsIllConditioningRecord, ptr %723, i32 0, i32 1
  %725 = load double, ptr %724, align 8, !tbaa !63
  store double %725, ptr %81, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %726 = load ptr, ptr %8, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.HighsIllConditioning, ptr %726, i32 0, i32 0
  %728 = load i32, ptr %78, align 4, !tbaa !11
  %729 = sext i32 %728 to i64
  %730 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %727, i64 noundef %729) #9
  %731 = getelementptr inbounds %struct.HighsIllConditioningRecord, ptr %730, i32 0, i32 0
  %732 = load i32, ptr %731, align 8, !tbaa !61
  %733 = sext i32 %732 to i64
  %734 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %733) #9
  %735 = load i32, ptr %734, align 4, !tbaa !11
  store i32 %735, ptr %82, align 4, !tbaa !11
  %736 = load i32, ptr %82, align 4, !tbaa !11
  %737 = load ptr, ptr %13, align 8, !tbaa !5
  %738 = getelementptr inbounds %class.HighsLp, ptr %737, i32 0, i32 0
  %739 = load i32, ptr %738, align 8, !tbaa !58
  %740 = icmp slt i32 %736, %739
  br i1 %740, label %741, label %954

741:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #9
  %742 = load i8, ptr %41, align 1, !tbaa !9, !range !15, !noundef !16
  %743 = trunc i8 %742 to i1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %86, align 1
  br i1 %743, label %744, label %751

744:                                              ; preds = %741
  %745 = load ptr, ptr %13, align 8, !tbaa !5
  %746 = getelementptr inbounds %class.HighsLp, ptr %745, i32 0, i32 14
  %747 = load i32, ptr %82, align 4, !tbaa !11
  %748 = sext i32 %747 to i64
  %749 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %746, i64 noundef %748) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %749)
          to label %750 unwind label %794

750:                                              ; preds = %744
  br label %754

751:                                              ; preds = %741
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #9
  store i1 true, ptr %85, align 1
  %752 = load i32, ptr %82, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, i32 noundef %752) #9
  store i1 true, ptr %86, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef @.str.233, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %753 unwind label %798

753:                                              ; preds = %751
  br label %754

754:                                              ; preds = %753, %750
  %755 = load i1, ptr %86, align 1
  br i1 %755, label %756, label %757

756:                                              ; preds = %754
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #9
  br label %757

757:                                              ; preds = %756, %754
  %758 = load i1, ptr %85, align 1
  br i1 %758, label %759, label %760

759:                                              ; preds = %757
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #9
  br label %760

760:                                              ; preds = %759, %757
  %761 = getelementptr inbounds i8, ptr %39, i64 16
  %762 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %761, ptr noundef @.str.228)
          to label %763 unwind label %808

763:                                              ; preds = %760
  %764 = load double, ptr %81, align 8, !tbaa !13
  %765 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %762, double noundef %764)
          to label %766 unwind label %808

766:                                              ; preds = %763
  %767 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %765, ptr noundef @.str.229)
          to label %768 unwind label %808

768:                                              ; preds = %766
  %769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %767, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %770 unwind label %808

770:                                              ; preds = %768
  %771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %769, ptr noundef @.str.230)
          to label %772 unwind label %808

772:                                              ; preds = %770
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %773 = load ptr, ptr %47, align 8, !tbaa !5
  %774 = getelementptr inbounds %class.HighsSparseMatrix, ptr %773, i32 0, i32 3
  %775 = load i32, ptr %82, align 4, !tbaa !11
  %776 = sext i32 %775 to i64
  %777 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %774, i64 noundef %776) #9
  %778 = load i32, ptr %777, align 4, !tbaa !11
  store i32 %778, ptr %87, align 4, !tbaa !11
  br label %779

779:                                              ; preds = %943, %772
  %780 = load i32, ptr %87, align 4, !tbaa !11
  %781 = load ptr, ptr %47, align 8, !tbaa !5
  %782 = getelementptr inbounds %class.HighsSparseMatrix, ptr %781, i32 0, i32 3
  %783 = load i32, ptr %82, align 4, !tbaa !11
  %784 = add nsw i32 %783, 1
  %785 = sext i32 %784 to i64
  %786 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %782, i64 noundef %785) #9
  %787 = load i32, ptr %786, align 4, !tbaa !11
  %788 = icmp slt i32 %780, %787
  br i1 %788, label %812, label %789

789:                                              ; preds = %779
  store i32 20, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %951

790:                                              ; preds = %717
  %791 = landingpad { ptr, i32 }
          cleanup
  %792 = extractvalue { ptr, i32 } %791, 0
  store ptr %792, ptr %18, align 8
  %793 = extractvalue { ptr, i32 } %791, 1
  store i32 %793, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  br label %1038

794:                                              ; preds = %744
  %795 = landingpad { ptr, i32 }
          cleanup
  %796 = extractvalue { ptr, i32 } %795, 0
  store ptr %796, ptr %18, align 8
  %797 = extractvalue { ptr, i32 } %795, 1
  store i32 %797, ptr %19, align 4
  br label %953

798:                                              ; preds = %751
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %18, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %19, align 4
  %802 = load i1, ptr %86, align 1
  br i1 %802, label %803, label %804

803:                                              ; preds = %798
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #9
  br label %804

804:                                              ; preds = %803, %798
  %805 = load i1, ptr %85, align 1
  br i1 %805, label %806, label %807

806:                                              ; preds = %804
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #9
  br label %807

807:                                              ; preds = %806, %804
  br label %953

808:                                              ; preds = %770, %768, %766, %763, %760
  %809 = landingpad { ptr, i32 }
          cleanup
  %810 = extractvalue { ptr, i32 } %809, 0
  store ptr %810, ptr %18, align 8
  %811 = extractvalue { ptr, i32 } %809, 1
  store i32 %811, ptr %19, align 4
  br label %952

812:                                              ; preds = %779
  %813 = load i8, ptr %80, align 1, !tbaa !9, !range !15, !noundef !16
  %814 = trunc i8 %813 to i1
  br i1 %814, label %815, label %823

815:                                              ; preds = %812
  %816 = getelementptr inbounds i8, ptr %39, i64 16
  %817 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %816, ptr noundef @.str.232)
          to label %818 unwind label %819

818:                                              ; preds = %815
  store i8 0, ptr %80, align 1, !tbaa !9
  br label %837

819:                                              ; preds = %832, %815
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %18, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %19, align 4
  br label %950

823:                                              ; preds = %812
  %824 = load i32, ptr %87, align 4, !tbaa !11
  %825 = load ptr, ptr %47, align 8, !tbaa !5
  %826 = getelementptr inbounds %class.HighsSparseMatrix, ptr %825, i32 0, i32 3
  %827 = load i32, ptr %82, align 4, !tbaa !11
  %828 = sext i32 %827 to i64
  %829 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %826, i64 noundef %828) #9
  %830 = load i32, ptr %829, align 4, !tbaa !11
  %831 = icmp sgt i32 %824, %830
  br i1 %831, label %832, label %836

832:                                              ; preds = %823
  %833 = getelementptr inbounds i8, ptr %39, i64 16
  %834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %833, ptr noundef @.str.236)
          to label %835 unwind label %819

835:                                              ; preds = %832
  br label %836

836:                                              ; preds = %835, %823
  br label %837

837:                                              ; preds = %836, %818
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %838 = load ptr, ptr %47, align 8, !tbaa !5
  %839 = getelementptr inbounds %class.HighsSparseMatrix, ptr %838, i32 0, i32 5
  %840 = load i32, ptr %87, align 4, !tbaa !11
  %841 = sext i32 %840 to i64
  %842 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %839, i64 noundef %841) #9
  %843 = load i32, ptr %842, align 4, !tbaa !11
  store i32 %843, ptr %88, align 4, !tbaa !11
  %844 = load ptr, ptr %47, align 8, !tbaa !5
  %845 = getelementptr inbounds %class.HighsSparseMatrix, ptr %844, i32 0, i32 6
  %846 = load i32, ptr %87, align 4, !tbaa !11
  %847 = sext i32 %846 to i64
  %848 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %845, i64 noundef %847) #9
  %849 = load double, ptr %848, align 8, !tbaa !13
  invoke void @"_ZZN5Highs22computeIllConditioningER20HighsIllConditioningbidENK3$_0clEdb"(ptr noundef nonnull align 8 dereferenceable(16) %43, double noundef %849, i1 noundef zeroext true)
          to label %850 unwind label %899

850:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #9
  %851 = load i8, ptr %40, align 1, !tbaa !9, !range !15, !noundef !16
  %852 = trunc i8 %851 to i1
  store i1 false, ptr %91, align 1
  store i1 false, ptr %92, align 1
  br i1 %852, label %853, label %860

853:                                              ; preds = %850
  %854 = load ptr, ptr %13, align 8, !tbaa !5
  %855 = getelementptr inbounds %class.HighsLp, ptr %854, i32 0, i32 15
  %856 = load i32, ptr %88, align 4, !tbaa !11
  %857 = sext i32 %856 to i64
  %858 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %855, i64 noundef %857) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %858)
          to label %859 unwind label %903

859:                                              ; preds = %853
  br label %863

860:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #9
  store i1 true, ptr %91, align 1
  %861 = load i32, ptr %88, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, i32 noundef %861) #9
  store i1 true, ptr %92, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef @.str.227, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %862 unwind label %907

862:                                              ; preds = %860
  br label %863

863:                                              ; preds = %862, %859
  %864 = load i1, ptr %92, align 1
  br i1 %864, label %865, label %866

865:                                              ; preds = %863
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #9
  br label %866

866:                                              ; preds = %865, %863
  %867 = load i1, ptr %91, align 1
  br i1 %867, label %868, label %869

868:                                              ; preds = %866
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #9
  br label %869

869:                                              ; preds = %868, %866
  %870 = getelementptr inbounds i8, ptr %39, i64 16
  %871 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %870, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %872 unwind label %917

872:                                              ; preds = %869
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %873 unwind label %921

873:                                              ; preds = %872
  %874 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  %875 = trunc i64 %874 to i32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  store i32 %875, ptr %93, align 4, !tbaa !11
  %876 = load i32, ptr %93, align 4, !tbaa !11
  %877 = icmp sgt i32 %876, 72
  br i1 %877, label %878, label %942

878:                                              ; preds = %873
  %879 = load i32, ptr %87, align 4, !tbaa !11
  %880 = load ptr, ptr %47, align 8, !tbaa !5
  %881 = getelementptr inbounds %class.HighsSparseMatrix, ptr %880, i32 0, i32 3
  %882 = load i32, ptr %82, align 4, !tbaa !11
  %883 = add nsw i32 %882, 1
  %884 = sext i32 %883 to i64
  %885 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %881, i64 noundef %884) #9
  %886 = load i32, ptr %885, align 4, !tbaa !11
  %887 = sub nsw i32 %886, 1
  %888 = icmp slt i32 %879, %887
  br i1 %888, label %889, label %942

889:                                              ; preds = %878
  %890 = getelementptr inbounds i8, ptr %39, i64 16
  %891 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %890, ptr noundef @.str.236)
          to label %892 unwind label %925

892:                                              ; preds = %889
  %893 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %894 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %893, i32 0, i32 130
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %895 unwind label %929

895:                                              ; preds = %892
  %896 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %894, i32 noundef 1, ptr noundef @.str.76, ptr noundef %896)
          to label %897 unwind label %933

897:                                              ; preds = %895
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %39, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %898 unwind label %938

898:                                              ; preds = %897
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #9
  store i8 1, ptr %80, align 1, !tbaa !9
  br label %942

899:                                              ; preds = %837
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %18, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %19, align 4
  br label %949

903:                                              ; preds = %853
  %904 = landingpad { ptr, i32 }
          cleanup
  %905 = extractvalue { ptr, i32 } %904, 0
  store ptr %905, ptr %18, align 8
  %906 = extractvalue { ptr, i32 } %904, 1
  store i32 %906, ptr %19, align 4
  br label %948

907:                                              ; preds = %860
  %908 = landingpad { ptr, i32 }
          cleanup
  %909 = extractvalue { ptr, i32 } %908, 0
  store ptr %909, ptr %18, align 8
  %910 = extractvalue { ptr, i32 } %908, 1
  store i32 %910, ptr %19, align 4
  %911 = load i1, ptr %92, align 1
  br i1 %911, label %912, label %913

912:                                              ; preds = %907
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #9
  br label %913

913:                                              ; preds = %912, %907
  %914 = load i1, ptr %91, align 1
  br i1 %914, label %915, label %916

915:                                              ; preds = %913
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #9
  br label %916

916:                                              ; preds = %915, %913
  br label %948

917:                                              ; preds = %869
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %18, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %19, align 4
  br label %947

921:                                              ; preds = %872
  %922 = landingpad { ptr, i32 }
          cleanup
  %923 = extractvalue { ptr, i32 } %922, 0
  store ptr %923, ptr %18, align 8
  %924 = extractvalue { ptr, i32 } %922, 1
  store i32 %924, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  br label %946

925:                                              ; preds = %889
  %926 = landingpad { ptr, i32 }
          cleanup
  %927 = extractvalue { ptr, i32 } %926, 0
  store ptr %927, ptr %18, align 8
  %928 = extractvalue { ptr, i32 } %926, 1
  store i32 %928, ptr %19, align 4
  br label %946

929:                                              ; preds = %892
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %18, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %19, align 4
  br label %937

933:                                              ; preds = %895
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %18, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  br label %937

937:                                              ; preds = %933, %929
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #9
  br label %946

938:                                              ; preds = %897
  %939 = landingpad { ptr, i32 }
          cleanup
  %940 = extractvalue { ptr, i32 } %939, 0
  store ptr %940, ptr %18, align 8
  %941 = extractvalue { ptr, i32 } %939, 1
  store i32 %941, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #9
  br label %946

942:                                              ; preds = %898, %878, %873
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %943

943:                                              ; preds = %942
  %944 = load i32, ptr %87, align 4, !tbaa !11
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr %87, align 4, !tbaa !11
  br label %779, !llvm.loop !67

946:                                              ; preds = %938, %937, %925, %921
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %947

947:                                              ; preds = %946, %917
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %948

948:                                              ; preds = %947, %916, %903
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  br label %949

949:                                              ; preds = %948, %899
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %950

950:                                              ; preds = %949, %819
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %952

951:                                              ; preds = %789
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #9
  br label %1010

952:                                              ; preds = %950, %808
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  br label %953

953:                                              ; preds = %952, %807, %794
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #9
  br label %1037

954:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %955 = load i32, ptr %82, align 4, !tbaa !11
  %956 = load ptr, ptr %13, align 8, !tbaa !5
  %957 = getelementptr inbounds %class.HighsLp, ptr %956, i32 0, i32 0
  %958 = load i32, ptr %957, align 8, !tbaa !58
  %959 = sub nsw i32 %955, %958
  store i32 %959, ptr %97, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #9
  %960 = load i8, ptr %40, align 1, !tbaa !9, !range !15, !noundef !16
  %961 = trunc i8 %960 to i1
  store i1 false, ptr %100, align 1
  store i1 false, ptr %101, align 1
  br i1 %961, label %962, label %969

962:                                              ; preds = %954
  %963 = load ptr, ptr %13, align 8, !tbaa !5
  %964 = getelementptr inbounds %class.HighsLp, ptr %963, i32 0, i32 15
  %965 = load i32, ptr %97, align 4, !tbaa !11
  %966 = sext i32 %965 to i64
  %967 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %964, i64 noundef %966) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef @.str.237, ptr noundef nonnull align 8 dereferenceable(32) %967)
          to label %968 unwind label %991

968:                                              ; preds = %962
  br label %972

969:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #9
  store i1 true, ptr %100, align 1
  %970 = load i32, ptr %97, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, i32 noundef %970) #9
  store i1 true, ptr %101, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef @.str.238, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %971 unwind label %995

971:                                              ; preds = %969
  br label %972

972:                                              ; preds = %971, %968
  %973 = load i1, ptr %101, align 1
  br i1 %973, label %974, label %975

974:                                              ; preds = %972
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %975

975:                                              ; preds = %974, %972
  %976 = load i1, ptr %100, align 1
  br i1 %976, label %977, label %978

977:                                              ; preds = %975
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #9
  br label %978

978:                                              ; preds = %977, %975
  %979 = getelementptr inbounds i8, ptr %39, i64 16
  %980 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %979, ptr noundef @.str.228)
          to label %981 unwind label %1005

981:                                              ; preds = %978
  %982 = load double, ptr %81, align 8, !tbaa !13
  %983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %980, double noundef %982)
          to label %984 unwind label %1005

984:                                              ; preds = %981
  %985 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %983, ptr noundef @.str.229)
          to label %986 unwind label %1005

986:                                              ; preds = %984
  %987 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %985, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %988 unwind label %1005

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

990:                                              ; preds = %988
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %1010

991:                                              ; preds = %962
  %992 = landingpad { ptr, i32 }
          cleanup
  %993 = extractvalue { ptr, i32 } %992, 0
  store ptr %993, ptr %18, align 8
  %994 = extractvalue { ptr, i32 } %992, 1
  store i32 %994, ptr %19, align 4
  br label %1009

995:                                              ; preds = %969
  %996 = landingpad { ptr, i32 }
          cleanup
  %997 = extractvalue { ptr, i32 } %996, 0
  store ptr %997, ptr %18, align 8
  %998 = extractvalue { ptr, i32 } %996, 1
  store i32 %998, ptr %19, align 4
  %999 = load i1, ptr %101, align 1
  br i1 %999, label %1000, label %1001

1000:                                             ; preds = %995
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %1001

1001:                                             ; preds = %1000, %995
  %1002 = load i1, ptr %100, align 1
  br i1 %1002, label %1003, label %1004

1003:                                             ; preds = %1001
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #9
  br label %1004

1004:                                             ; preds = %1003, %1001
  br label %1009

1005:                                             ; preds = %988, %986, %984, %981, %978
  %1006 = landingpad { ptr, i32 }
          cleanup
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %18, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  br label %1009

1009:                                             ; preds = %1005, %1004, %991
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %1037

1010:                                             ; preds = %990, %951
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %1011 unwind label %1020

1011:                                             ; preds = %1010
  %1012 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  %1013 = icmp ne i64 %1012, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #9
  br i1 %1013, label %1014, label %1033

1014:                                             ; preds = %1011
  %1015 = getelementptr inbounds %class.Highs, ptr %105, i32 0, i32 9
  %1016 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %1015, i32 0, i32 130
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #9
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %1017 unwind label %1024

1017:                                             ; preds = %1014
  %1018 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1016, i32 noundef 1, ptr noundef @.str.76, ptr noundef %1018)
          to label %1019 unwind label %1028

1019:                                             ; preds = %1017
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #9
  br label %1033

1020:                                             ; preds = %1010
  %1021 = landingpad { ptr, i32 }
          cleanup
  %1022 = extractvalue { ptr, i32 } %1021, 0
  store ptr %1022, ptr %18, align 8
  %1023 = extractvalue { ptr, i32 } %1021, 1
  store i32 %1023, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #9
  br label %1037

1024:                                             ; preds = %1014
  %1025 = landingpad { ptr, i32 }
          cleanup
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %18, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %19, align 4
  br label %1032

1028:                                             ; preds = %1017
  %1029 = landingpad { ptr, i32 }
          cleanup
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %18, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %19, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  br label %1032

1032:                                             ; preds = %1028, %1024
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #9
  br label %1037

1033:                                             ; preds = %1019, %1011
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #9
  br label %1034

1034:                                             ; preds = %1033
  %1035 = load i32, ptr %78, align 4, !tbaa !11
  %1036 = add nsw i32 %1035, 1
  store i32 %1036, ptr %78, align 4, !tbaa !11
  br label %709, !llvm.loop !68

1037:                                             ; preds = %1032, %1020, %1009, %953
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #9
  br label %1038

1038:                                             ; preds = %1037, %790
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %1041

1039:                                             ; preds = %716
  br label %1040

1040:                                             ; preds = %1039, %705
  store i32 0, ptr %6, align 4
  store i32 1, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #9
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %39) #9
  call void @llvm.lifetime.end.p0(i64 392, ptr %39) #9
  call void @_ZNSt6vectorISt4pairIdiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %1046

1041:                                             ; preds = %1038, %707
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %1042

1042:                                             ; preds = %1041, %383
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #9
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %39) #9
  br label %1043

1043:                                             ; preds = %1042, %356
  call void @llvm.lifetime.end.p0(i64 392, ptr %39) #9
  br label %1044

1044:                                             ; preds = %1043, %352, %310
  call void @_ZNSt6vectorISt4pairIdiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #9
  br label %1045

1045:                                             ; preds = %1044, %283
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %1048

1046:                                             ; preds = %1040, %220, %190
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #9
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %14) #9
  call void @llvm.lifetime.end.p0(i64 20928, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  %1047 = load i32, ptr %6, align 4
  ret i32 %1047

1048:                                             ; preds = %1045, %203
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %1049

1049:                                             ; preds = %1048, %199
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  br label %1050

1050:                                             ; preds = %1049, %195
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %1051

1051:                                             ; preds = %1050, %191
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1052

1052:                                             ; preds = %1051, %130
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #9
  br label %1053

1053:                                             ; preds = %1052, %129
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #9
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %14) #9
  call void @llvm.lifetime.end.p0(i64 20928, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %1054

1054:                                             ; preds = %1053
  %1055 = load ptr, ptr %18, align 8
  %1056 = load i32, ptr %19, align 4
  %1057 = insertvalue { ptr, i32 } poison, ptr %1055, 0
  %1058 = insertvalue { ptr, i32 } %1057, i32 %1056, 1
  resume { ptr, i32 } %1058

1059:                                             ; preds = %304
  unreachable
}

declare void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Highs22formIllConditioningLp0ER7HighsLpRSt6vectorIiSaIiEEb(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, double noundef) #2 align 2

declare noundef i32 @_Z8assessLpR7HighsLpRK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(1020)) #4

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIdiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr, ptr) #3

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN5Highs22computeIllConditioningER20HighsIllConditioningbidENK3$_0clEdb"(ptr noundef nonnull align 8 dereferenceable(16), double noundef, i1 noundef zeroext) #3 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTS11HighsStatus", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!21 = !{!22, !12, i64 4}
!22 = !{!"_ZTS7HighsLp", !12, i64 0, !12, i64 4, !23, i64 8, !23, i64 32, !23, i64 56, !23, i64 80, !23, i64 104, !27, i64 128, !33, i64 240, !14, i64 248, !34, i64 256, !34, i64 288, !12, i64 320, !12, i64 324, !37, i64 328, !37, i64 352, !41, i64 376, !45, i64 400, !45, i64 456, !12, i64 512, !12, i64 516, !51, i64 520, !10, i64 592, !10, i64 593, !12, i64 596, !10, i64 600, !52, i64 608}
!23 = !{!"_ZTSSt6vectorIdSaIdEE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTS17HighsSparseMatrix", !28, i64 0, !12, i64 4, !12, i64 8, !29, i64 16, !29, i64 40, !29, i64 64, !23, i64 88}
!28 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!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", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTS8ObjSense", !7, i64 0}
!34 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !35, i64 0, !36, i64 8, !7, i64 16}
!35 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!36 = !{!"long", !7, i64 0}
!37 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!"_ZTS13HighsNameHash", !46, i64 0}
!46 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !47, i64 0}
!47 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !36, i64 8, !48, i64 16, !36, i64 24, !49, i64 32, !6, i64 48}
!48 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!49 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !50, i64 0, !36, i64 8}
!50 = !{!"float", !7, i64 0}
!51 = !{!"_ZTS10HighsScale", !12, i64 0, !10, i64 4, !12, i64 8, !12, i64 12, !14, i64 16, !23, i64 24, !23, i64 48}
!52 = !{!"_ZTS11HighsLpMods", !29, i64 0, !29, i64 24, !23, i64 48, !23, i64 72, !41, i64 96, !29, i64 120, !23, i64 144, !29, i64 168, !23, i64 192, !29, i64 216, !23, i64 240, !23, i64 264, !23, i64 288}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}
!55 = !{!56, !14, i64 48}
!56 = !{!"_ZTS15HighsInfoStruct", !10, i64 0, !36, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !12, i64 80, !14, i64 88, !14, i64 96, !12, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !14, i64 136, !14, i64 144}
!57 = distinct !{!57, !54}
!58 = !{!22, !12, i64 0}
!59 = !{!60, !12, i64 8}
!60 = !{!"_ZTSSt4pairIdiE", !14, i64 0, !12, i64 8}
!61 = !{!62, !12, i64 0}
!62 = !{!"_ZTS26HighsIllConditioningRecord", !12, i64 0, !14, i64 8}
!63 = !{!62, !14, i64 8}
!64 = distinct !{!64, !54}
!65 = distinct !{!65, !54}
!66 = distinct !{!66, !54}
!67 = distinct !{!67, !54}
!68 = distinct !{!68, !54}


; 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.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] }
%class.Highs = type { ptr, %struct.HighsSolution, %struct.HighsBasis, %struct.ICrashInfo, %class.HighsModel, %"class.std::vector.33", %class.HighsModel, %class.HighsTimer, %struct.HighsCallback, %class.HighsOptions, %class.HighsInfo, %struct.HighsRanging, %class.HighsIis, %"class.std::vector.57", i32, i32, i8, double, %"class.std::vector", %"class.std::vector", %class.HighsSparseMatrix, %class.HEkk, %struct.HighsPresolveLog, i32, i8, i32, i8, %class.PresolveComponent }
%struct.HighsSolution = type { i8, i8, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.3", %"class.std::vector.3" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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 }
%struct.ICrashInfo = type { i32, double, double, double, double, double, %"class.std::vector.8", %"class.std::vector", double }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.HighsLp = type { i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.18", %"class.std::vector.18", %"class.std::vector.23", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%struct.HighsScale = type { i32, i8, i32, i32, double, %"class.std::vector", %"class.std::vector" }
%struct.HighsLpMods = type { %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.23", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsHessian = type { i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%class.HighsTimer = type <{ ptr, double, i32, [4 x i8], %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.18", i32, i32, i32, [4 x i8] }>
%struct.HighsCallback = type { %"class.std::function", ptr, ptr, %"class.std::vector.38", %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.38" = 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.42", 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.42" = type { %"struct.std::_Vector_base.43" }
%"struct.std::_Vector_base.43" = 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.47" }
%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.47" = type { %"struct.std::_Vector_base.48" }
%"struct.std::_Vector_base.48" = 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", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13" }
%class.HighsIis = type { i8, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.52" }
%"class.std::vector.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = 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.std::vector.57" = type { %"struct.std::_Vector_base.58" }
%"struct.std::_Vector_base.58" = 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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%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", %"class.std::vector", i8, %class.HighsSparseMatrix, %class.HighsSparseMatrix, %class.HSimplexNla, %struct.HotStart, double, double, double, i32, i32, i32, i32, i8, i8, i32, i32, i32, %"class.std::vector.13", %"class.std::vector", %struct.HighsRayRecord, %struct.HighsRayRecord, i32, i32, i32, double, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", double, double, double, i32, i32, i8, i32, i8, i8, i8, i8, double, %"class.std::vector.105", %"class.std::vector", %struct.HighsSimplexStats }
%class.HighsSimplexAnalysis = type { ptr, %"class.std::vector.62", %"class.std::vector.62", 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", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.67", %"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.62" = type { %"struct.std::_Vector_base.63" }
%"struct.std::_Vector_base.63" = 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.67" = type { %"struct.std::_Vector_base.68" }
%"struct.std::_Vector_base.68" = 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.73" }
%"struct.std::_Head_base.73" = 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", %"class.std::vector.13", 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", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", i32, i32, i8, i8, [6 x i8], %struct.SimplexBasis, i32, i32, i32, [4 x i8], %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", 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.13", %"class.std::vector.74", %"class.std::vector.74", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.74" = type { %"struct.std::_Vector_base.75" }
%"struct.std::_Vector_base.75" = 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.79", %"class.std::unique_ptr.87", i64, i64, i64 }
%"class.std::unique_ptr.79" = type { %"struct.std::__uniq_ptr_data.80" }
%"struct.std::__uniq_ptr_data.80" = type { %"class.std::__uniq_ptr_impl.81" }
%"class.std::__uniq_ptr_impl.81" = type { %"class.std::tuple.82" }
%"class.std::tuple.82" = type { %"struct.std::_Tuple_impl.83" }
%"struct.std::_Tuple_impl.83" = type { %"struct.std::_Head_base.86" }
%"struct.std::_Head_base.86" = type { ptr }
%"class.std::unique_ptr.87" = type { %"struct.std::__uniq_ptr_data.88" }
%"struct.std::__uniq_ptr_data.88" = type { %"class.std::__uniq_ptr_impl.89" }
%"class.std::__uniq_ptr_impl.89" = type { %"class.std::tuple.90" }
%"class.std::tuple.90" = type { %"struct.std::_Tuple_impl.91" }
%"struct.std::_Tuple_impl.91" = type { %"struct.std::_Head_base.94" }
%"struct.std::_Head_base.94" = 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.13", %"class.std::vector.13", %"class.std::vector.13", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr.95", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.103", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.74", double }
%"class.std::unique_ptr.95" = type { %"struct.std::__uniq_ptr_data.96" }
%"struct.std::__uniq_ptr_data.96" = type { %"class.std::__uniq_ptr_impl.97" }
%"class.std::__uniq_ptr_impl.97" = type { %"class.std::tuple.98" }
%"class.std::tuple.98" = type { %"struct.std::_Tuple_impl.99" }
%"struct.std::_Tuple_impl.99" = type { %"struct.std::_Head_base.102" }
%"struct.std::_Head_base.102" = type { ptr }
%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }
%"struct.std::_Vector_base.104" = 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 }
%class.HVectorBase = type { i32, i32, %"class.std::vector.13", %"class.std::vector", double, %"class.std::vector.103", %"class.std::vector.13", ptr, i8, i32, %"class.std::vector.13", %"class.std::vector" }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector" }
%struct.InvertibleRepresentation = type { %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector", %"class.std::vector.13", %"class.std::vector" }
%struct.HotStart = type { i8, %struct.RefactorInfo, %"class.std::vector.74" }
%struct.HighsRayRecord = type { i32, i32, %"class.std::vector" }
%"class.std::vector.105" = type { %"struct.std::_Vector_base.106" }
%"struct.std::_Vector_base.106" = 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.110" }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = 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.presolve::HighsPostsolveStack" = type { i64, double, double, double, double, %class.HighsDataStack, %"class.std::vector.115", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.120", %"class.std::vector.125", %"class.std::vector.125", i32, i32 }
%class.HighsDataStack = type { %"class.std::vector.103", i64 }
%"class.std::vector.115" = type { %"struct.std::_Vector_base.116" }
%"struct.std::_Vector_base.116" = 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.120" = type { %"struct.std::_Vector_base.121" }
%"struct.std::_Vector_base.121" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl" = type { %"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" }
%"struct.std::_Vector_base<presolve::HighsPostsolveStack::Nonzero, std::allocator<presolve::HighsPostsolveStack::Nonzero>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = 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.std::pair" = type <{ double, i32, [4 x i8] }>
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%class.anon.140 = type { ptr, ptr }
%struct.HighsIllConditioningRecord = type { i32, double }
%"class.std::allocator.15" = type { i8 }
%"class.std::allocator.0" = type { i8 }

@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [66 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Highs22computeIllConditioningER20HighsIllConditioningbid = external hidden unnamed_addr constant [108 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [8 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

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

declare void @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2 align 2

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

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

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

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

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

declare void @_ZNK17HighsSparseMatrix6getRowEiRiPiPd(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) local_unnamed_addr #4

declare noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928)) local_unnamed_addr #4

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 -1, 1) i32 @_ZN5Highs22computeIllConditioningER20HighsIllConditioningbid(ptr noundef nonnull align 8 dereferenceable(20928) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i1 noundef zeroext %2, i32 noundef %3, double noundef %4) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %class.Highs, align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::vector.13", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::vector.135", align 8
  %13 = alloca i32, align 4
  %14 = alloca double, align 8
  %15 = alloca %"struct.std::pair", align 8
  %16 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %17 = alloca double, align 8
  %18 = alloca %class.anon.140, align 8
  %19 = alloca %struct.HighsIllConditioningRecord, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::vector.13", align 8
  %22 = alloca %"class.std::allocator.15", align 1
  %23 = alloca %"class.std::vector", align 8
  %24 = alloca %"class.std::allocator.0", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  tail call void @_ZN20HighsIllConditioning5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %1)
  %47 = getelementptr inbounds i8, ptr %0, i64 312
  call void @llvm.lifetime.start.p0(i64 20928, ptr nonnull %6) #8
  call void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928) %6)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.219, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %48 unwind label %54

48:                                               ; preds = %5
  %49 = invoke noundef i32 @_ZN5Highs14setOptionValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(20928) %6, ptr noundef nonnull align 8 dereferenceable(32) %7, i1 noundef zeroext false)
          to label %50 unwind label %56

50:                                               ; preds = %48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  %51 = getelementptr inbounds i8, ptr %6, i64 312
  %52 = icmp eq i32 %3, 0
  br i1 %52, label %53, label %61

53:                                               ; preds = %50
  invoke void @_ZN5Highs22formIllConditioningLp0ER7HighsLpRSt6vectorIiSaIiEEb(ptr noundef nonnull align 8 dereferenceable(20928) %0, ptr noundef nonnull align 8 dereferenceable(920) %51, ptr noundef nonnull align 8 dereferenceable(24) %9, i1 noundef zeroext %2)
          to label %62 unwind label %59

54:                                               ; preds = %5
  %55 = landingpad { ptr, i32 }
          cleanup
  br label %58

56:                                               ; preds = %48
  %57 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %58

58:                                               ; preds = %56, %54
  %.pn = phi { ptr, i32 } [ %57, %56 ], [ %55, %54 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  br label %503

59:                                               ; preds = %62, %61, %53
  %60 = landingpad { ptr, i32 }
          cleanup
  br label %502

61:                                               ; preds = %50
  invoke void @_ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd(ptr noundef nonnull align 8 dereferenceable(20928) %0, ptr noundef nonnull align 8 dereferenceable(920) %51, ptr noundef nonnull align 8 dereferenceable(24) %9, i1 noundef zeroext %2, double noundef %4)
          to label %62 unwind label %59

62:                                               ; preds = %61, %53
  %63 = getelementptr inbounds i8, ptr %0, i64 2728
  %64 = invoke noundef i32 @_Z8assessLpR7HighsLpRK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(920) %51, ptr noundef nonnull align 8 dereferenceable(1020) %63)
          to label %65 unwind label %59

65:                                               ; preds = %62
  %66 = icmp eq i32 %64, 0
  br i1 %66, label %68, label %67

67:                                               ; preds = %65
  call void @__assert_fail(ptr noundef nonnull @.str.220, ptr noundef nonnull @.str.78, i32 noundef 2885, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22computeIllConditioningER20HighsIllConditioningbid) #9
  unreachable

68:                                               ; preds = %65
  %69 = invoke noundef i32 @_ZN5Highs3runEv(ptr noundef nonnull align 8 dereferenceable(20928) %6)
          to label %70 unwind label %82

70:                                               ; preds = %68
  %71 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5Highs14getModelStatusEv(ptr noundef nonnull align 8 dereferenceable(20928) %6)
  %72 = load i32, ptr %71, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  %73 = select i1 %2, ptr @.str.221, ptr @.str.222
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %73, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %74 unwind label %84

74:                                               ; preds = %70
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  %.not = icmp ne i32 %69, 0
  %75 = icmp ne i32 %72, 7
  %or.cond = select i1 %52, i1 %75, i1 false
  %or.cond280 = select i1 %.not, i1 true, i1 %or.cond
  br i1 %or.cond280, label %.critedge, label %76

76:                                               ; preds = %74
  %77 = icmp eq i32 %3, 1
  %78 = add i32 %72, -9
  %79 = icmp ult i32 %78, -2
  %or.cond295 = select i1 %77, i1 %79, i1 false
  br i1 %or.cond295, label %.critedge, label %.critedge282

.critedge:                                        ; preds = %74, %76
  %80 = getelementptr inbounds i8, ptr %0, i64 3624
  %81 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %80, i32 noundef 1, ptr noundef nonnull @.str.223, ptr noundef %81)
          to label %499 unwind label %86

82:                                               ; preds = %68
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %502

84:                                               ; preds = %70
  %85 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  br label %501

86:                                               ; preds = %93, %.critedge
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %500

.critedge282:                                     ; preds = %76
  %88 = icmp eq i32 %72, 8
  %or.cond3 = select i1 %77, i1 %88, i1 false
  br i1 %or.cond3, label %93, label %.preheader300

.preheader300:                                    ; preds = %.critedge282
  %89 = getelementptr inbounds i8, ptr %0, i64 316
  %90 = load i32, ptr %89, align 4, !tbaa !9
  %91 = icmp sgt i32 %90, 0
  br i1 %91, label %.lr.ph, label %._crit_edge.thread

.lr.ph:                                           ; preds = %.preheader300
  %92 = getelementptr inbounds i8, ptr %6, i64 16
  br label %98

93:                                               ; preds = %.critedge282
  %94 = getelementptr inbounds i8, ptr %0, i64 3624
  %95 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  %96 = fmul double %4, 1.000000e+01
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %94, i32 noundef 1, ptr noundef nonnull @.str.224, ptr noundef %95, double noundef %4, double noundef %96)
          to label %499 unwind label %86

._crit_edge:                                      ; preds = %98
  %97 = fcmp ogt double %102, 0.000000e+00
  br i1 %97, label %106, label %._crit_edge.thread

98:                                               ; preds = %.lr.ph, %98
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %98 ]
  %.0208302 = phi double [ 0.000000e+00, %.lr.ph ], [ %102, %98 ]
  %99 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef %indvars.iv) #8
  %100 = load double, ptr %99, align 8, !tbaa !45
  %101 = call double @llvm.fabs.f64(double %100)
  %102 = fadd double %.0208302, %101
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %103 = load i32, ptr %89, align 4, !tbaa !9
  %104 = sext i32 %103 to i64
  %105 = icmp slt i64 %indvars.iv.next, %104
  br i1 %105, label %98, label %._crit_edge, !llvm.loop !46

._crit_edge.thread:                               ; preds = %.preheader300, %._crit_edge
  call void @__assert_fail(ptr noundef nonnull @.str.225, ptr noundef nonnull @.str.78, i32 noundef 2915, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22computeIllConditioningER20HighsIllConditioningbid) #9
  unreachable

106:                                              ; preds = %._crit_edge
  br i1 %52, label %107, label %110

107:                                              ; preds = %106
  %108 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK5Highs7getInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %6)
  %109 = getelementptr inbounds i8, ptr %108, i64 56
  br label %116

110:                                              ; preds = %106
  %111 = getelementptr inbounds i8, ptr %6, i64 64
  %112 = call noundef i32 @_ZNK5Highs9getNumRowEv(ptr noundef nonnull align 8 dereferenceable(20928) %6)
  %113 = add nsw i32 %112, -1
  %114 = sext i32 %113 to i64
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %114) #8
  br label %116

116:                                              ; preds = %110, %107
  %.in = phi ptr [ %109, %107 ], [ %115, %110 ]
  %117 = load double, ptr %.in, align 8, !tbaa !45
  %118 = fdiv double %117, %102
  %119 = getelementptr inbounds i8, ptr %0, i64 3624
  %120 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %119, i32 noundef 1, ptr noundef nonnull @.str.226, ptr noundef %120, double noundef %118)
          to label %121 unwind label %127

121:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #8
  call void @_ZNSt6vectorISt4pairIdiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #8
  store i32 0, ptr %13, align 4, !tbaa !48
  %122 = load i32, ptr %89, align 4, !tbaa !9
  %123 = icmp sgt i32 %122, 0
  br i1 %123, label %.lr.ph305, label %._crit_edge306

.lr.ph305:                                        ; preds = %121
  %124 = getelementptr inbounds i8, ptr %6, i64 16
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 8
  br label %129

._crit_edge306:                                   ; preds = %140, %121
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  %125 = call ptr @_ZNSt6vectorISt4pairIdiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  %126 = call ptr @_ZNSt6vectorISt4pairIdiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIdiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %125, ptr %126)
          to label %147 unwind label %172

127:                                              ; preds = %116
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %500

129:                                              ; preds = %.lr.ph305, %140
  %storemerge303 = phi i32 [ 0, %.lr.ph305 ], [ %142, %140 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  %130 = sext i32 %storemerge303 to i64
  %131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %124, i64 noundef %130) #8
  %132 = load double, ptr %131, align 8, !tbaa !45
  %133 = call double @llvm.fabs.f64(double %132)
  %134 = fdiv double %133, %102
  store double %134, ptr %14, align 8, !tbaa !45
  %135 = fcmp ugt double %134, 0x3EB0C6F7A0B5ED8D
  br i1 %135, label %136, label %140

136:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  %137 = invoke { double, i32 } @_ZSt9make_pairIRdRiESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %138 unwind label %145

138:                                              ; preds = %136
  %.fca.0.extract = extractvalue { double, i32 } %137, 0
  %.fca.1.extract = extractvalue { double, i32 } %137, 1
  store double %.fca.0.extract, ptr %15, align 8
  store i32 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  invoke void @_ZNSt6vectorISt4pairIdiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(12) %15)
          to label %139 unwind label %145

139:                                              ; preds = %138
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  br label %140

140:                                              ; preds = %129, %139
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  %141 = load i32, ptr %13, align 4, !tbaa !48
  %142 = add nsw i32 %141, 1
  store i32 %142, ptr %13, align 4, !tbaa !48
  %143 = load i32, ptr %89, align 4, !tbaa !9
  %144 = icmp slt i32 %142, %143
  br i1 %144, label %129, label %._crit_edge306, !llvm.loop !49

145:                                              ; preds = %138, %136
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  br label %498

147:                                              ; preds = %._crit_edge306
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %16) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %148 unwind label %174

148:                                              ; preds = %147
  %149 = getelementptr inbounds i8, ptr %0, i64 664
  %150 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #8
  %151 = trunc i64 %150 to i32
  %152 = load i32, ptr %89, align 4, !tbaa !9
  %.not230.not.not = icmp eq i32 %152, %151
  %153 = getelementptr inbounds i8, ptr %0, i64 640
  %154 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #8
  %155 = trunc i64 %154 to i32
  %156 = load i32, ptr %47, align 8, !tbaa !50
  %.not233.not = icmp eq i32 %156, %155
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  store double 1.000000e-08, ptr %17, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #8
  store ptr %17, ptr %18, align 8, !tbaa !51
  %157 = getelementptr inbounds i8, ptr %18, i64 8
  store ptr %16, ptr %157, align 8, !tbaa !51
  %158 = call noundef i64 @_ZNKSt6vectorISt4pairIdiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  %159 = trunc i64 %158 to i32
  %160 = icmp sgt i32 %159, 0
  br i1 %160, label %.lr.ph310, label %._crit_edge311

.lr.ph310:                                        ; preds = %148
  %161 = getelementptr inbounds i8, ptr %6, i64 16
  %162 = getelementptr inbounds i8, ptr %19, i64 8
  %163 = and i64 %158, 2147483647
  br label %176

._crit_edge311:                                   ; preds = %184, %148
  %164 = getelementptr inbounds i8, ptr %0, i64 440
  br i1 %2, label %188, label %.preheader

.preheader:                                       ; preds = %._crit_edge311
  %165 = call noundef i64 @_ZNKSt6vectorI26HighsIllConditioningRecordSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %166 = trunc i64 %165 to i32
  %167 = icmp sgt i32 %166, 0
  br i1 %167, label %.lr.ph318, label %.loopexit

.lr.ph318:                                        ; preds = %.preheader
  %168 = getelementptr inbounds i8, ptr %16, i64 16
  %169 = getelementptr inbounds i8, ptr %0, i64 456
  %170 = getelementptr inbounds i8, ptr %0, i64 504
  %171 = getelementptr inbounds i8, ptr %0, i64 528
  br label %342

172:                                              ; preds = %._crit_edge306
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %498

174:                                              ; preds = %147
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %497

176:                                              ; preds = %.lr.ph310, %184
  %indvars.iv329 = phi i64 [ %163, %.lr.ph310 ], [ %indvars.iv.next330, %184 ]
  %indvars.iv.next330 = add nsw i64 %indvars.iv329, -1
  %177 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNSt6vectorISt4pairIdiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %indvars.iv.next330) #8
  %178 = getelementptr inbounds i8, ptr %177, i64 8
  %179 = load i32, ptr %178, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #8
  store i32 %179, ptr %19, align 8, !tbaa !54
  %180 = sext i32 %179 to i64
  %181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %161, i64 noundef %180) #8
  %182 = load double, ptr %181, align 8, !tbaa !45
  %183 = fdiv double %182, %102
  store double %183, ptr %162, align 8, !tbaa !56
  invoke void @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %184 unwind label %186

184:                                              ; preds = %176
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  %185 = icmp ugt i64 %indvars.iv329, 1
  br i1 %185, label %176, label %._crit_edge311, !llvm.loop !57

186:                                              ; preds = %176
  %187 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  br label %496

188:                                              ; preds = %._crit_edge311
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #8
  %189 = load i32, ptr %47, align 8, !tbaa !50
  %190 = sext i32 %189 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %190, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %191 unwind label %203

191:                                              ; preds = %188
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #8
  %192 = load i32, ptr %47, align 8, !tbaa !50
  %193 = sext i32 %192 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %193, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %194 unwind label %205

194:                                              ; preds = %191
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  %195 = call noundef ptr @_ZNSt6vectorIiSaIiEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  %196 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  %197 = call noundef i64 @_ZNKSt6vectorI26HighsIllConditioningRecordSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %198 = trunc i64 %197 to i32
  %199 = icmp sgt i32 %198, 0
  br i1 %199, label %.lr.ph326, label %._crit_edge327

.lr.ph326:                                        ; preds = %194
  %200 = getelementptr inbounds i8, ptr %16, i64 16
  %201 = getelementptr inbounds i8, ptr %0, i64 392
  %202 = getelementptr inbounds i8, ptr %0, i64 416
  br label %207

._crit_edge327:                                   ; preds = %333, %194
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  br label %.loopexit

203:                                              ; preds = %188
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  br label %341

205:                                              ; preds = %191
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  br label %340

207:                                              ; preds = %.lr.ph326, %333
  %indvars.iv339 = phi i64 [ 0, %.lr.ph326 ], [ %indvars.iv.next340, %333 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %16, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %208 unwind label %243

208:                                              ; preds = %207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  %209 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv339) #8
  %210 = load i32, ptr %209, align 8, !tbaa !54
  %211 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv339) #8
  %212 = getelementptr inbounds i8, ptr %211, i64 8
  %213 = load double, ptr %212, align 8, !tbaa !56
  store i32 0, ptr %20, align 4, !tbaa !48
  invoke void @_ZNK17HighsSparseMatrix6getRowEiRiPiPd(ptr noundef nonnull align 8 dereferenceable(112) %164, i32 noundef %210, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef %195, ptr noundef %196)
          to label %214 unwind label %245

214:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  br i1 %.not230.not.not, label %215, label %218

215:                                              ; preds = %214
  %216 = sext i32 %210 to i64
  %217 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %216) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %217)
          to label %.critedge284 unwind label %247

218:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, i32 noundef %210) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull @.str.227, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %219 unwind label %249

219:                                              ; preds = %218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %.critedge284

.critedge284:                                     ; preds = %215, %219
  %220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull @.str.228)
          to label %221 unwind label %251

221:                                              ; preds = %.critedge284
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %220, double noundef %213)
          to label %223 unwind label %251

223:                                              ; preds = %221
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull @.str.229)
          to label %225 unwind label %251

225:                                              ; preds = %223
  %226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %227 unwind label %251

227:                                              ; preds = %225
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %226, ptr noundef nonnull @.str.230)
          to label %229 unwind label %251

229:                                              ; preds = %227
  %230 = sext i32 %210 to i64
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %230) #8
  %232 = load double, ptr %231, align 8, !tbaa !45
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef %230) #8
  %234 = load double, ptr %233, align 8, !tbaa !45
  %235 = fcmp one double %232, 0xFFF0000000000000
  %236 = fcmp une double %232, %234
  %or.cond285 = select i1 %235, i1 %236, i1 false
  br i1 %or.cond285, label %237, label %255

237:                                              ; preds = %229
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %230) #8
  %239 = load double, ptr %238, align 8, !tbaa !45
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %200, double noundef %239)
          to label %241 unwind label %253

241:                                              ; preds = %237
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull @.str.231)
          to label %255 unwind label %253

243:                                              ; preds = %207
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %339

245:                                              ; preds = %208
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %339

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

249:                                              ; preds = %218
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %338

251:                                              ; preds = %227, %225, %223, %221, %.critedge284
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %337

253:                                              ; preds = %.invoke345, %.invoke, %241, %237
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %337

255:                                              ; preds = %241, %229
  %256 = load i32, ptr %20, align 4, !tbaa !48
  %257 = icmp sgt i32 %256, 0
  br i1 %257, label %.lr.ph322, label %._crit_edge323

._crit_edge323:                                   ; preds = %310, %255
  %258 = fcmp ueq double %234, 0x7FF0000000000000
  br i1 %258, label %319, label %.invoke345

.lr.ph322:                                        ; preds = %255, %310
  %indvars.iv337 = phi i64 [ %indvars.iv.next338, %310 ], [ 0, %255 ]
  %.0219319 = phi i1 [ %.2221, %310 ], [ false, %255 ]
  br i1 %.0219319, label %259, label %263

259:                                              ; preds = %.lr.ph322
  %260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull @.str.232)
          to label %263 unwind label %261

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

263:                                              ; preds = %259, %.lr.ph322
  %264 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv337) #8
  %265 = load i32, ptr %264, align 4, !tbaa !48
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv337) #8
  %267 = load double, ptr %266, align 8, !tbaa !45
  %268 = icmp eq i64 %indvars.iv337, 0
  invoke void @"_ZZN5Highs22computeIllConditioningER20HighsIllConditioningbidENK3$_0clEdb"(ptr noundef nonnull align 8 dereferenceable(16) %18, double noundef %267, i1 noundef zeroext %268)
          to label %269 unwind label %293

269:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  br i1 %.not233.not, label %270, label %273

270:                                              ; preds = %269
  %271 = sext i32 %265 to i64
  %272 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %271) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %272)
          to label %.critedge287 unwind label %295

273:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #8
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, i32 noundef %265) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull @.str.233, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %274 unwind label %297

274:                                              ; preds = %273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  br label %.critedge287

.critedge287:                                     ; preds = %270, %274
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %276 unwind label %299

276:                                              ; preds = %.critedge287
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %275, ptr noundef nonnull @.str.64)
          to label %278 unwind label %299

278:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %279 unwind label %301

279:                                              ; preds = %278
  %280 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  %281 = trunc i64 %280 to i32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  %282 = icmp sgt i32 %281, 72
  br i1 %282, label %283, label %310

283:                                              ; preds = %279
  %284 = load i32, ptr %20, align 4, !tbaa !48
  %285 = add nsw i32 %284, -1
  %286 = sext i32 %285 to i64
  %287 = icmp slt i64 %indvars.iv337, %286
  br i1 %287, label %288, label %310

288:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %289 unwind label %303

289:                                              ; preds = %288
  %290 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %119, i32 noundef 1, ptr noundef nonnull @.str.76, ptr noundef %290)
          to label %291 unwind label %305

291:                                              ; preds = %289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %16, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %292 unwind label %308

292:                                              ; preds = %291
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  br label %310

293:                                              ; preds = %263
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %337

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

297:                                              ; preds = %273
  %298 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  br label %315

299:                                              ; preds = %276, %.critedge287
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %314

301:                                              ; preds = %278
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %314

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

305:                                              ; preds = %289
  %306 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %307

307:                                              ; preds = %305, %303
  %.pn252 = phi { ptr, i32 } [ %306, %305 ], [ %304, %303 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  br label %314

308:                                              ; preds = %291
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  br label %314

310:                                              ; preds = %292, %283, %279
  %.2221 = phi i1 [ true, %292 ], [ false, %283 ], [ false, %279 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  %indvars.iv.next338 = add nuw nsw i64 %indvars.iv337, 1
  %311 = load i32, ptr %20, align 4, !tbaa !48
  %312 = sext i32 %311 to i64
  %313 = icmp slt i64 %indvars.iv.next338, %312
  br i1 %313, label %.lr.ph322, label %._crit_edge323, !llvm.loop !58

314:                                              ; preds = %301, %307, %308, %299
  %.pn254.pn = phi { ptr, i32 } [ %300, %299 ], [ %309, %308 ], [ %.pn252, %307 ], [ %302, %301 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %315

315:                                              ; preds = %297, %314, %295
  %.pn254.pn.pn = phi { ptr, i32 } [ %.pn254.pn, %314 ], [ %296, %295 ], [ %298, %297 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  br label %337

.invoke345:                                       ; preds = %._crit_edge323
  %316 = fcmp oeq double %232, %234
  %.str.234..str.235 = select i1 %316, ptr @.str.234, ptr @.str.235
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull %.str.234..str.235)
          to label %.invoke unwind label %253

.invoke:                                          ; preds = %.invoke345
  %318 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %317, double noundef %234)
          to label %319 unwind label %253

319:                                              ; preds = %.invoke, %._crit_edge323
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %320 unwind label %326

320:                                              ; preds = %319
  %321 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  %.not249 = icmp eq i64 %321, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  br i1 %.not249, label %333, label %322

322:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %323 unwind label %328

323:                                              ; preds = %322
  %324 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %119, i32 noundef 1, ptr noundef nonnull @.str.76, ptr noundef %324)
          to label %325 unwind label %330

325:                                              ; preds = %323
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %333

326:                                              ; preds = %319
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  br label %337

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

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

332:                                              ; preds = %330, %328
  %.pn250 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %337

333:                                              ; preds = %325, %320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  %indvars.iv.next340 = add nuw nsw i64 %indvars.iv339, 1
  %334 = call noundef i64 @_ZNKSt6vectorI26HighsIllConditioningRecordSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %sext342 = shl i64 %334, 32
  %335 = ashr exact i64 %sext342, 32
  %336 = icmp slt i64 %indvars.iv.next340, %335
  br i1 %336, label %207, label %._crit_edge327, !llvm.loop !59

337:                                              ; preds = %253, %326, %332, %293, %315, %261, %251
  %.pn254.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %252, %251 ], [ %.pn250, %332 ], [ %327, %326 ], [ %254, %253 ], [ %262, %261 ], [ %.pn254.pn.pn, %315 ], [ %294, %293 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %338

338:                                              ; preds = %249, %337, %247
  %.pn254.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn254.pn.pn.pn.pn.pn.pn, %337 ], [ %248, %247 ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  br label %339

339:                                              ; preds = %245, %338, %243
  %.pn254.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %244, %243 ], [ %.pn254.pn.pn.pn.pn.pn.pn.pn, %338 ], [ %246, %245 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  br label %340

340:                                              ; preds = %339, %205
  %.pn254.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn254.pn.pn.pn.pn.pn.pn.pn.pn.pn, %339 ], [ %206, %205 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  br label %341

341:                                              ; preds = %340, %203
  %.pn254.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn254.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %340 ], [ %204, %203 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  br label %496

342:                                              ; preds = %.lr.ph318, %492
  %indvars.iv334 = phi i64 [ 0, %.lr.ph318 ], [ %indvars.iv.next335, %492 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %16, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %343 unwind label %379

343:                                              ; preds = %342
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  %344 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv334) #8
  %345 = getelementptr inbounds i8, ptr %344, i64 8
  %346 = load double, ptr %345, align 8, !tbaa !56
  %347 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI26HighsIllConditioningRecordSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv334) #8
  %348 = load i32, ptr %347, align 8, !tbaa !54
  %349 = sext i32 %348 to i64
  %350 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %349) #8
  %351 = load i32, ptr %350, align 4, !tbaa !48
  %352 = load i32, ptr %47, align 8, !tbaa !50
  %353 = icmp slt i32 %351, %352
  br i1 %353, label %354, label %454

354:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  br i1 %.not233.not, label %355, label %358

355:                                              ; preds = %354
  %356 = sext i32 %351 to i64
  %357 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %356) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %357)
          to label %.critedge289 unwind label %381

358:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #8
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, i32 noundef %351) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull @.str.233, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %359 unwind label %383

359:                                              ; preds = %358
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  br label %.critedge289

.critedge289:                                     ; preds = %355, %359
  %360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull @.str.228)
          to label %361 unwind label %385

361:                                              ; preds = %.critedge289
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %360, double noundef %346)
          to label %363 unwind label %385

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

365:                                              ; preds = %363
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %367 unwind label %385

367:                                              ; preds = %365
  %368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %366, ptr noundef nonnull @.str.230)
          to label %369 unwind label %385

369:                                              ; preds = %367
  %370 = sext i32 %351 to i64
  %371 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %370) #8
  %372 = load i32, ptr %371, align 4, !tbaa !48
  %373 = add nsw i32 %351, 1
  %374 = sext i32 %373 to i64
  %375 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %374) #8
  %376 = load i32, ptr %375, align 4, !tbaa !48
  %377 = icmp slt i32 %372, %376
  br i1 %377, label %.lr.ph315.preheader, label %._crit_edge316

.lr.ph315.preheader:                              ; preds = %369
  %378 = sext i32 %372 to i64
  br label %.lr.ph315

._crit_edge316:                                   ; preds = %445, %369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  br label %478

379:                                              ; preds = %342
  %380 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  br label %496

381:                                              ; preds = %355
  %382 = landingpad { ptr, i32 }
          cleanup
  br label %453

383:                                              ; preds = %358
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  br label %453

385:                                              ; preds = %367, %365, %363, %361, %.critedge289
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %452

.lr.ph315:                                        ; preds = %.lr.ph315.preheader, %445
  %indvars.iv332 = phi i64 [ %378, %.lr.ph315.preheader ], [ %indvars.iv.next333, %445 ]
  %.0209312 = phi i1 [ false, %.lr.ph315.preheader ], [ %.2211, %445 ]
  br i1 %.0209312, label %.invoke344, label %389

387:                                              ; preds = %.invoke344
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %452

389:                                              ; preds = %.lr.ph315
  %390 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %370) #8
  %391 = load i32, ptr %390, align 4, !tbaa !48
  %392 = sext i32 %391 to i64
  %393 = icmp sgt i64 %indvars.iv332, %392
  br i1 %393, label %.invoke344, label %396

.invoke344:                                       ; preds = %.lr.ph315, %389
  %394 = phi ptr [ @.str.236, %389 ], [ @.str.232, %.lr.ph315 ]
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull %394)
          to label %396 unwind label %387

396:                                              ; preds = %.invoke344, %389
  %397 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %indvars.iv332) #8
  %398 = load i32, ptr %397, align 4, !tbaa !48
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef %indvars.iv332) #8
  %400 = load double, ptr %399, align 8, !tbaa !45
  invoke void @"_ZZN5Highs22computeIllConditioningER20HighsIllConditioningbidENK3$_0clEdb"(ptr noundef nonnull align 8 dereferenceable(16) %18, double noundef %400, i1 noundef zeroext true)
          to label %401 unwind label %426

401:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #8
  br i1 %.not230.not.not, label %402, label %405

402:                                              ; preds = %401
  %403 = sext i32 %398 to i64
  %404 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %403) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %404)
          to label %.critedge291 unwind label %428

405:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #8
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, i32 noundef %398) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull @.str.227, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %406 unwind label %430

406:                                              ; preds = %405
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  br label %.critedge291

.critedge291:                                     ; preds = %402, %406
  %407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %408 unwind label %432

408:                                              ; preds = %.critedge291
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %409 unwind label %434

409:                                              ; preds = %408
  %410 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  %411 = trunc i64 %410 to i32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  %412 = icmp sgt i32 %411, 72
  br i1 %412, label %413, label %445

413:                                              ; preds = %409
  %414 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %374) #8
  %415 = load i32, ptr %414, align 4, !tbaa !48
  %416 = add nsw i32 %415, -1
  %417 = sext i32 %416 to i64
  %418 = icmp slt i64 %indvars.iv332, %417
  br i1 %418, label %419, label %445

419:                                              ; preds = %413
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull @.str.236)
          to label %421 unwind label %436

421:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %422 unwind label %438

422:                                              ; preds = %421
  %423 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %119, i32 noundef 1, ptr noundef nonnull @.str.76, ptr noundef %423)
          to label %424 unwind label %440

424:                                              ; preds = %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %16, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %425 unwind label %443

425:                                              ; preds = %424
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  br label %445

426:                                              ; preds = %396
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %452

428:                                              ; preds = %402
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %451

430:                                              ; preds = %405
  %431 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  br label %451

432:                                              ; preds = %.critedge291
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %450

434:                                              ; preds = %408
  %435 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %450

436:                                              ; preds = %419
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %450

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

440:                                              ; preds = %422
  %441 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %442

442:                                              ; preds = %440, %438
  %.pn237 = phi { ptr, i32 } [ %441, %440 ], [ %439, %438 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  br label %450

443:                                              ; preds = %424
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  br label %450

445:                                              ; preds = %425, %413, %409
  %.2211 = phi i1 [ true, %425 ], [ false, %413 ], [ false, %409 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  %indvars.iv.next333 = add nsw i64 %indvars.iv332, 1
  %446 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %374) #8
  %447 = load i32, ptr %446, align 4, !tbaa !48
  %448 = sext i32 %447 to i64
  %449 = icmp slt i64 %indvars.iv.next333, %448
  br i1 %449, label %.lr.ph315, label %._crit_edge316, !llvm.loop !60

450:                                              ; preds = %434, %436, %442, %443, %432
  %.pn239.pn = phi { ptr, i32 } [ %433, %432 ], [ %444, %443 ], [ %.pn237, %442 ], [ %437, %436 ], [ %435, %434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %451

451:                                              ; preds = %430, %450, %428
  %.pn239.pn.pn = phi { ptr, i32 } [ %.pn239.pn, %450 ], [ %429, %428 ], [ %431, %430 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #8
  br label %452

452:                                              ; preds = %387, %451, %426, %385
  %.pn239.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %386, %385 ], [ %388, %387 ], [ %.pn239.pn.pn, %451 ], [ %427, %426 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %453

453:                                              ; preds = %383, %452, %381
  %.pn239.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn, %452 ], [ %382, %381 ], [ %384, %383 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  br label %496

454:                                              ; preds = %343
  %455 = sub nsw i32 %351, %352
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #8
  br i1 %.not230.not.not, label %456, label %459

456:                                              ; preds = %454
  %457 = sext i32 %455 to i64
  %458 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %457) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull @.str.237, ptr noundef nonnull align 8 dereferenceable(32) %458)
          to label %.critedge293 unwind label %471

459:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, i32 noundef %455) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull @.str.238, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %460 unwind label %473

460:                                              ; preds = %459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %.critedge293

.critedge293:                                     ; preds = %456, %460
  %461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull @.str.228)
          to label %462 unwind label %475

462:                                              ; preds = %.critedge293
  %463 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %461, double noundef %346)
          to label %464 unwind label %475

464:                                              ; preds = %462
  %465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %463, ptr noundef nonnull @.str.229)
          to label %466 unwind label %475

466:                                              ; preds = %464
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %468 unwind label %475

468:                                              ; preds = %466
  %469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %467, ptr noundef nonnull @.str.230)
          to label %470 unwind label %475

470:                                              ; preds = %468
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  br label %478

471:                                              ; preds = %456
  %472 = landingpad { ptr, i32 }
          cleanup
  br label %477

473:                                              ; preds = %459
  %474 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %477

475:                                              ; preds = %468, %466, %464, %462, %.critedge293
  %476 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %477

477:                                              ; preds = %473, %475, %471
  %.pn231 = phi { ptr, i32 } [ %476, %475 ], [ %472, %471 ], [ %474, %473 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  br label %496

478:                                              ; preds = %470, %._crit_edge316
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %479 unwind label %485

479:                                              ; preds = %478
  %480 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  %.not234 = icmp eq i64 %480, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  br i1 %.not234, label %492, label %481

481:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(128) %16)
          to label %482 unwind label %487

482:                                              ; preds = %481
  %483 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %119, i32 noundef 1, ptr noundef nonnull @.str.76, ptr noundef %483)
          to label %484 unwind label %489

484:                                              ; preds = %482
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %492

485:                                              ; preds = %478
  %486 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  br label %496

487:                                              ; preds = %481
  %488 = landingpad { ptr, i32 }
          cleanup
  br label %491

489:                                              ; preds = %482
  %490 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %491

491:                                              ; preds = %489, %487
  %.pn235 = phi { ptr, i32 } [ %490, %489 ], [ %488, %487 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %496

492:                                              ; preds = %484, %479
  %indvars.iv.next335 = add nuw nsw i64 %indvars.iv334, 1
  %493 = call noundef i64 @_ZNKSt6vectorI26HighsIllConditioningRecordSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %sext = shl i64 %493, 32
  %494 = ashr exact i64 %sext, 32
  %495 = icmp slt i64 %indvars.iv.next335, %494
  br i1 %495, label %342, label %.loopexit, !llvm.loop !61

.loopexit:                                        ; preds = %492, %.preheader, %._crit_edge327
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %16) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %16) #8
  call void @_ZNSt6vectorISt4pairIdiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  br label %499

496:                                              ; preds = %341, %453, %477, %485, %491, %379, %186
  %.pn268 = phi { ptr, i32 } [ %187, %186 ], [ %.pn254.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %341 ], [ %380, %379 ], [ %.pn239.pn.pn.pn.pn.pn.pn, %453 ], [ %.pn235, %491 ], [ %486, %485 ], [ %.pn231, %477 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %16) #8
  br label %497

497:                                              ; preds = %496, %174
  %.pn268.pn = phi { ptr, i32 } [ %.pn268, %496 ], [ %175, %174 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %16) #8
  br label %498

498:                                              ; preds = %497, %172, %145
  %.pn271 = phi { ptr, i32 } [ %146, %145 ], [ %.pn268.pn, %497 ], [ %173, %172 ]
  call void @_ZNSt6vectorISt4pairIdiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  br label %500

499:                                              ; preds = %93, %.critedge, %.loopexit
  %.0164 = phi i32 [ 0, %.loopexit ], [ -1, %.critedge ], [ 0, %93 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %6) #8
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %6) #8
  ret i32 %.0164

500:                                              ; preds = %127, %498, %86
  %.pn274 = phi { ptr, i32 } [ %87, %86 ], [ %.pn271, %498 ], [ %128, %127 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %501

501:                                              ; preds = %500, %84
  %.pn274.pn = phi { ptr, i32 } [ %.pn274, %500 ], [ %85, %84 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  br label %502

502:                                              ; preds = %82, %501, %59
  %.pn274.pn.pn.pn = phi { ptr, i32 } [ %60, %59 ], [ %.pn274.pn, %501 ], [ %83, %82 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %503

503:                                              ; preds = %502, %58
  %.pn274.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn274.pn.pn.pn, %502 ], [ %.pn, %58 ]
  call void @_ZN5HighsD2Ev(ptr noundef nonnull align 8 dereferenceable(20928) %6) #8
  call void @llvm.lifetime.end.p0(i64 20928, ptr nonnull %6) #8
  resume { ptr, i32 } %.pn274.pn.pn.pn.pn
}

declare void @_ZN5HighsC1Ev(ptr noundef nonnull align 8 dereferenceable(20928)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Highs22formIllConditioningLp0ER7HighsLpRSt6vectorIiSaIiEEb(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd(ptr noundef nonnull align 8 dereferenceable(20928), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, double noundef) local_unnamed_addr #2 align 2

declare noundef i32 @_Z8assessLpR7HighsLpRK12HighsOptions(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(1020)) local_unnamed_addr #4

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIdiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr, ptr) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN5Highs22computeIllConditioningER20HighsIllConditioningbidENK3$_0clEdb"(ptr noundef nonnull align 8 dereferenceable(16), double noundef, i1 noundef zeroext) local_unnamed_addr #3 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"_ZTS16HighsModelStatus", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 4}
!10 = !{!"_ZTS7HighsLp", !11, i64 0, !11, i64 4, !12, i64 8, !12, i64 32, !12, i64 56, !12, i64 80, !12, i64 104, !17, i64 128, !23, i64 240, !24, i64 248, !25, i64 256, !25, i64 288, !11, i64 320, !11, i64 324, !28, i64 328, !28, i64 352, !32, i64 376, !36, i64 400, !36, i64 456, !11, i64 512, !11, i64 516, !42, i64 520, !43, i64 592, !43, i64 593, !11, i64 596, !43, i64 600, !44, i64 608}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIdSaIdEE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!"_ZTS17HighsSparseMatrix", !18, i64 0, !11, i64 4, !11, i64 8, !19, i64 16, !19, i64 40, !19, i64 64, !12, i64 88}
!18 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!19 = !{!"_ZTSSt6vectorIiSaIiEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!23 = !{!"_ZTS8ObjSense", !7, i64 0}
!24 = !{!"double", !7, i64 0}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !26, i64 0, !27, i64 8, !7, i64 16}
!26 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !16, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!32 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!36 = !{!"_ZTS13HighsNameHash", !37, i64 0}
!37 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !38, i64 0}
!38 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !16, i64 0, !27, i64 8, !39, i64 16, !27, i64 24, !40, i64 32, !16, i64 48}
!39 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !16, i64 0}
!40 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !41, i64 0, !27, i64 8}
!41 = !{!"float", !7, i64 0}
!42 = !{!"_ZTS10HighsScale", !11, i64 0, !43, i64 4, !11, i64 8, !11, i64 12, !24, i64 16, !12, i64 24, !12, i64 48}
!43 = !{!"bool", !7, i64 0}
!44 = !{!"_ZTS11HighsLpMods", !19, i64 0, !19, i64 24, !12, i64 48, !12, i64 72, !32, i64 96, !19, i64 120, !12, i64 144, !19, i64 168, !12, i64 192, !19, i64 216, !12, i64 240, !12, i64 264, !12, i64 288}
!45 = !{!24, !24, i64 0}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = !{!11, !11, i64 0}
!49 = distinct !{!49, !47}
!50 = !{!10, !11, i64 0}
!51 = !{!16, !16, i64 0}
!52 = !{!53, !11, i64 8}
!53 = !{!"_ZTSSt4pairIdiE", !24, i64 0, !11, i64 8}
!54 = !{!55, !11, i64 0}
!55 = !{!"_ZTS26HighsIllConditioningRecord", !11, i64 0, !24, i64 8}
!56 = !{!55, !24, i64 8}
!57 = distinct !{!57, !47}
!58 = distinct !{!58, !47}
!59 = distinct !{!59, !47}
!60 = distinct !{!60, !47}
!61 = distinct !{!61, !47}


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