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

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

@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@_ZL9kHighsInf = external hidden constant double, align 8
@.str.239 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [50 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd = external hidden unnamed_addr constant [97 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [58 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

declare i32 @__gxx_personality_v0(...)

; 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

declare void @_ZN17HighsSparseMatrix13ensureRowwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #3 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #4

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

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

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

declare void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) #3 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)) #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd(ptr noundef nonnull align 8 dereferenceable(20928) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, i1 noundef zeroext %3, double noundef %4) #3 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i8, align 1
  %10 = alloca double, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca i32, align 4
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca double, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca double, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca i32, align 4
  %61 = alloca double, align 8
  %62 = alloca i32, align 4
  %63 = alloca double, align 8
  %64 = alloca i32, align 4
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca i32, align 4
  %70 = alloca double, align 8
  %71 = alloca i32, align 4
  %72 = alloca double, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca i32, align 4
  %80 = alloca double, align 8
  %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 double, align 8
  %86 = alloca double, align 8
  %87 = alloca i32, align 4
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca i32, align 4
  %91 = alloca double, align 8
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  %94 = alloca i32, align 4
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca i32, align 4
  %100 = alloca double, align 8
  %101 = alloca i32, align 4
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca double, align 8
  %105 = alloca double, align 8
  %106 = alloca i32, align 4
  %107 = alloca double, align 8
  %108 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  %109 = zext i1 %3 to i8
  store i8 %109, ptr %9, align 1, !tbaa !9
  store double %4, ptr %10, align 8, !tbaa !11
  %110 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %111 = getelementptr inbounds %class.Highs, ptr %110, i32 0, i32 4
  %112 = getelementptr inbounds %class.HighsModel, ptr %111, i32 0, i32 0
  store ptr %112, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %113 = load ptr, ptr %11, align 8, !tbaa !5
  %114 = getelementptr inbounds %class.HighsLp, ptr %113, i32 0, i32 1
  %115 = load i32, ptr %114, align 4, !tbaa !13
  store i32 %115, ptr %12, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 0, ptr %13, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %116 = load i32, ptr %12, align 4, !tbaa !46
  store i32 %116, ptr %14, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %117 = load i32, ptr %12, align 4, !tbaa !46
  %118 = mul nsw i32 2, %117
  store i32 %118, ptr %15, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %119 = load i32, ptr %12, align 4, !tbaa !46
  %120 = mul nsw i32 3, %119
  store i32 %120, ptr %16, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %121 = load i32, ptr %12, align 4, !tbaa !46
  %122 = mul nsw i32 3, %121
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr %17, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 0, ptr %18, align 4, !tbaa !46
  br label %124

124:                                              ; preds = %134, %5
  %125 = load i32, ptr %18, align 4, !tbaa !46
  %126 = load i32, ptr %16, align 4, !tbaa !46
  %127 = icmp slt i32 %125, %126
  br i1 %127, label %129, label %128

128:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %137

129:                                              ; preds = %124
  %130 = load ptr, ptr %7, align 8, !tbaa !5
  %131 = getelementptr inbounds %class.HighsLp, ptr %130, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %131, ptr noundef nonnull align 8 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  %132 = load ptr, ptr %7, align 8, !tbaa !5
  %133 = getelementptr inbounds %class.HighsLp, ptr %132, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  store double 0.000000e+00, ptr %20, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %133, ptr noundef nonnull align 8 dereferenceable(8) %20)
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %134

134:                                              ; preds = %129
  %135 = load i32, ptr %18, align 4, !tbaa !46
  %136 = add nsw i32 %135, 1
  store i32 %136, ptr %18, align 4, !tbaa !46
  br label %124, !llvm.loop !47

137:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %138 = load ptr, ptr %11, align 8, !tbaa !5
  %139 = getelementptr inbounds %class.HighsLp, ptr %138, i32 0, i32 7
  store ptr %139, ptr %21, align 8, !tbaa !5
  %140 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %140)
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %141 = load ptr, ptr %7, align 8, !tbaa !5
  %142 = getelementptr inbounds %class.HighsLp, ptr %141, i32 0, i32 7
  store ptr %142, ptr %22, align 8, !tbaa !5
  %143 = load ptr, ptr %7, align 8, !tbaa !5
  %144 = getelementptr inbounds %class.HighsLp, ptr %143, i32 0, i32 0
  store i32 0, ptr %144, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 0, ptr %23, align 4, !tbaa !46
  br label %145

145:                                              ; preds = %248, %137
  %146 = load i32, ptr %23, align 4, !tbaa !46
  %147 = load ptr, ptr %11, align 8, !tbaa !5
  %148 = getelementptr inbounds %class.HighsLp, ptr %147, i32 0, i32 0
  %149 = load i32, ptr %148, align 8, !tbaa !49
  %150 = icmp slt i32 %146, %149
  br i1 %150, label %152, label %151

151:                                              ; preds = %145
  store i32 5, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %251

152:                                              ; preds = %145
  %153 = getelementptr inbounds %class.Highs, ptr %110, i32 0, i32 2
  %154 = getelementptr inbounds %struct.HighsBasis, ptr %153, i32 0, i32 7
  %155 = load i32, ptr %23, align 4, !tbaa !46
  %156 = sext i32 %155 to i64
  %157 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %154, i64 noundef %156) #7
  %158 = load i8, ptr %157, align 1, !tbaa !50
  %159 = icmp ne i8 %158, 1
  br i1 %159, label %160, label %161

160:                                              ; preds = %152
  br label %248

161:                                              ; preds = %152
  %162 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %162, ptr noundef nonnull align 4 dereferenceable(4) %23)
  %163 = load ptr, ptr %7, align 8, !tbaa !5
  %164 = getelementptr inbounds %class.HighsLp, ptr %163, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #7
  %165 = load ptr, ptr %7, align 8, !tbaa !5
  %166 = getelementptr inbounds %class.HighsLp, ptr %165, i32 0, i32 0
  %167 = load i32, ptr %166, align 8, !tbaa !49
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, i32 noundef %167) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef @.str.239, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %168 unwind label %193

168:                                              ; preds = %161
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %164, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %169 unwind label %197

169:                                              ; preds = %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  %170 = load ptr, ptr %7, align 8, !tbaa !5
  %171 = getelementptr inbounds %class.HighsLp, ptr %170, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  store double 0.000000e+00, ptr %29, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %171, ptr noundef nonnull align 8 dereferenceable(8) %29)
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  %172 = load ptr, ptr %7, align 8, !tbaa !5
  %173 = getelementptr inbounds %class.HighsLp, ptr %172, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  store double 0xFFF0000000000000, ptr %30, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %173, ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  %174 = load ptr, ptr %7, align 8, !tbaa !5
  %175 = getelementptr inbounds %class.HighsLp, ptr %174, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %175, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %176 = load ptr, ptr %21, align 8, !tbaa !5
  %177 = getelementptr inbounds %class.HighsSparseMatrix, ptr %176, i32 0, i32 3
  %178 = load i32, ptr %23, align 4, !tbaa !46
  %179 = sext i32 %178 to i64
  %180 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %179) #7
  %181 = load i32, ptr %180, align 4, !tbaa !46
  store i32 %181, ptr %31, align 4, !tbaa !46
  br label %182

182:                                              ; preds = %217, %169
  %183 = load i32, ptr %31, align 4, !tbaa !46
  %184 = load ptr, ptr %21, align 8, !tbaa !5
  %185 = getelementptr inbounds %class.HighsSparseMatrix, ptr %184, i32 0, i32 3
  %186 = load i32, ptr %23, align 4, !tbaa !46
  %187 = add nsw i32 %186, 1
  %188 = sext i32 %187 to i64
  %189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %185, i64 noundef %188) #7
  %190 = load i32, ptr %189, align 4, !tbaa !46
  %191 = icmp slt i32 %183, %190
  br i1 %191, label %202, label %192

192:                                              ; preds = %182
  store i32 8, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %220

193:                                              ; preds = %161
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %27, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %28, align 4
  br label %201

197:                                              ; preds = %168
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %27, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %201

201:                                              ; preds = %197, %193
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %774

202:                                              ; preds = %182
  %203 = load ptr, ptr %22, align 8, !tbaa !5
  %204 = getelementptr inbounds %class.HighsSparseMatrix, ptr %203, i32 0, i32 5
  %205 = load ptr, ptr %21, align 8, !tbaa !5
  %206 = getelementptr inbounds %class.HighsSparseMatrix, ptr %205, i32 0, i32 5
  %207 = load i32, ptr %31, align 4, !tbaa !46
  %208 = sext i32 %207 to i64
  %209 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %208) #7
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %204, ptr noundef nonnull align 4 dereferenceable(4) %209)
  %210 = load ptr, ptr %22, align 8, !tbaa !5
  %211 = getelementptr inbounds %class.HighsSparseMatrix, ptr %210, i32 0, i32 6
  %212 = load ptr, ptr %21, align 8, !tbaa !5
  %213 = getelementptr inbounds %class.HighsSparseMatrix, ptr %212, i32 0, i32 6
  %214 = load i32, ptr %31, align 4, !tbaa !46
  %215 = sext i32 %214 to i64
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %213, i64 noundef %215) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %211, ptr noundef nonnull align 8 dereferenceable(8) %216)
  br label %217

217:                                              ; preds = %202
  %218 = load i32, ptr %31, align 4, !tbaa !46
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr %31, align 4, !tbaa !46
  br label %182, !llvm.loop !52

220:                                              ; preds = %192
  %221 = load i8, ptr %9, align 1, !tbaa !9, !range !53, !noundef !54
  %222 = trunc i8 %221 to i1
  br i1 %222, label %237, label %223

223:                                              ; preds = %220
  %224 = load ptr, ptr %22, align 8, !tbaa !5
  %225 = getelementptr inbounds %class.HighsSparseMatrix, ptr %224, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  %226 = load i32, ptr %14, align 4, !tbaa !46
  %227 = load ptr, ptr %7, align 8, !tbaa !5
  %228 = getelementptr inbounds %class.HighsLp, ptr %227, i32 0, i32 0
  %229 = load i32, ptr %228, align 8, !tbaa !49
  %230 = add nsw i32 %226, %229
  store i32 %230, ptr %32, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %225, ptr noundef nonnull align 4 dereferenceable(4) %32)
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  %231 = load ptr, ptr %22, align 8, !tbaa !5
  %232 = getelementptr inbounds %class.HighsSparseMatrix, ptr %231, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  store double 1.000000e+00, ptr %33, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %232, ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  %233 = load ptr, ptr %22, align 8, !tbaa !5
  %234 = getelementptr inbounds %class.HighsSparseMatrix, ptr %233, i32 0, i32 5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %234, ptr noundef nonnull align 4 dereferenceable(4) %16)
  %235 = load ptr, ptr %22, align 8, !tbaa !5
  %236 = getelementptr inbounds %class.HighsSparseMatrix, ptr %235, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  store double 1.000000e+00, ptr %34, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %236, ptr noundef nonnull align 8 dereferenceable(8) %34)
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %237

237:                                              ; preds = %223, %220
  %238 = load ptr, ptr %22, align 8, !tbaa !5
  %239 = getelementptr inbounds %class.HighsSparseMatrix, ptr %238, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %240 = load ptr, ptr %22, align 8, !tbaa !5
  %241 = getelementptr inbounds %class.HighsSparseMatrix, ptr %240, i32 0, i32 5
  %242 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %241) #7
  %243 = trunc i64 %242 to i32
  store i32 %243, ptr %35, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %239, ptr noundef nonnull align 4 dereferenceable(4) %35)
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  %244 = load ptr, ptr %7, align 8, !tbaa !5
  %245 = getelementptr inbounds %class.HighsLp, ptr %244, i32 0, i32 0
  %246 = load i32, ptr %245, align 8, !tbaa !49
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr %245, align 8, !tbaa !49
  br label %248

248:                                              ; preds = %237, %160
  %249 = load i32, ptr %23, align 4, !tbaa !46
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr %23, align 4, !tbaa !46
  br label %145, !llvm.loop !55

251:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  store i32 0, ptr %36, align 4, !tbaa !46
  br label %252

252:                                              ; preds = %326, %251
  %253 = load i32, ptr %36, align 4, !tbaa !46
  %254 = load i32, ptr %12, align 4, !tbaa !46
  %255 = icmp slt i32 %253, %254
  br i1 %255, label %257, label %256

256:                                              ; preds = %252
  store i32 11, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %329

257:                                              ; preds = %252
  %258 = getelementptr inbounds %class.Highs, ptr %110, i32 0, i32 2
  %259 = getelementptr inbounds %struct.HighsBasis, ptr %258, i32 0, i32 8
  %260 = load i32, ptr %36, align 4, !tbaa !46
  %261 = sext i32 %260 to i64
  %262 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %259, i64 noundef %261) #7
  %263 = load i8, ptr %262, align 1, !tbaa !50
  %264 = icmp ne i8 %263, 1
  br i1 %264, label %265, label %266

265:                                              ; preds = %257
  br label %326

266:                                              ; preds = %257
  %267 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %268 = load ptr, ptr %11, align 8, !tbaa !5
  %269 = getelementptr inbounds %class.HighsLp, ptr %268, i32 0, i32 0
  %270 = load i32, ptr %269, align 8, !tbaa !49
  %271 = load i32, ptr %36, align 4, !tbaa !46
  %272 = add nsw i32 %270, %271
  store i32 %272, ptr %37, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %267, ptr noundef nonnull align 4 dereferenceable(4) %37)
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  %273 = load ptr, ptr %7, align 8, !tbaa !5
  %274 = getelementptr inbounds %class.HighsLp, ptr %273, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #7
  %275 = load ptr, ptr %7, align 8, !tbaa !5
  %276 = getelementptr inbounds %class.HighsLp, ptr %275, i32 0, i32 0
  %277 = load i32, ptr %276, align 8, !tbaa !49
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, i32 noundef %277) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef @.str.239, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %278 unwind label %306

278:                                              ; preds = %266
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %274, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %279 unwind label %310

279:                                              ; preds = %278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  %280 = load ptr, ptr %7, align 8, !tbaa !5
  %281 = getelementptr inbounds %class.HighsLp, ptr %280, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  store double 0.000000e+00, ptr %40, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %281, ptr noundef nonnull align 8 dereferenceable(8) %40)
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  %282 = load ptr, ptr %7, align 8, !tbaa !5
  %283 = getelementptr inbounds %class.HighsLp, ptr %282, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  store double 0xFFF0000000000000, ptr %41, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %283, ptr noundef nonnull align 8 dereferenceable(8) %41)
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  %284 = load ptr, ptr %7, align 8, !tbaa !5
  %285 = getelementptr inbounds %class.HighsLp, ptr %284, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %285, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %286 = load ptr, ptr %22, align 8, !tbaa !5
  %287 = getelementptr inbounds %class.HighsSparseMatrix, ptr %286, i32 0, i32 5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %287, ptr noundef nonnull align 4 dereferenceable(4) %36)
  %288 = load ptr, ptr %22, align 8, !tbaa !5
  %289 = getelementptr inbounds %class.HighsSparseMatrix, ptr %288, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  store double -1.000000e+00, ptr %42, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %289, ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  %290 = load i8, ptr %9, align 1, !tbaa !9, !range !53, !noundef !54
  %291 = trunc i8 %290 to i1
  br i1 %291, label %315, label %292

292:                                              ; preds = %279
  %293 = load ptr, ptr %22, align 8, !tbaa !5
  %294 = getelementptr inbounds %class.HighsSparseMatrix, ptr %293, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %295 = load i32, ptr %14, align 4, !tbaa !46
  %296 = load ptr, ptr %7, align 8, !tbaa !5
  %297 = getelementptr inbounds %class.HighsLp, ptr %296, i32 0, i32 0
  %298 = load i32, ptr %297, align 8, !tbaa !49
  %299 = add nsw i32 %295, %298
  store i32 %299, ptr %43, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %294, ptr noundef nonnull align 4 dereferenceable(4) %43)
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  %300 = load ptr, ptr %22, align 8, !tbaa !5
  %301 = getelementptr inbounds %class.HighsSparseMatrix, ptr %300, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  store double 1.000000e+00, ptr %44, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %301, ptr noundef nonnull align 8 dereferenceable(8) %44)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  %302 = load ptr, ptr %22, align 8, !tbaa !5
  %303 = getelementptr inbounds %class.HighsSparseMatrix, ptr %302, i32 0, i32 5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %303, ptr noundef nonnull align 4 dereferenceable(4) %16)
  %304 = load ptr, ptr %22, align 8, !tbaa !5
  %305 = getelementptr inbounds %class.HighsSparseMatrix, ptr %304, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  store double 1.000000e+00, ptr %45, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %305, ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %315

306:                                              ; preds = %266
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %27, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %28, align 4
  br label %314

310:                                              ; preds = %278
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %27, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %314

314:                                              ; preds = %310, %306
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %774

315:                                              ; preds = %292, %279
  %316 = load ptr, ptr %22, align 8, !tbaa !5
  %317 = getelementptr inbounds %class.HighsSparseMatrix, ptr %316, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %318 = load ptr, ptr %22, align 8, !tbaa !5
  %319 = getelementptr inbounds %class.HighsSparseMatrix, ptr %318, i32 0, i32 5
  %320 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %319) #7
  %321 = trunc i64 %320 to i32
  store i32 %321, ptr %46, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %317, ptr noundef nonnull align 4 dereferenceable(4) %46)
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  %322 = load ptr, ptr %7, align 8, !tbaa !5
  %323 = getelementptr inbounds %class.HighsLp, ptr %322, i32 0, i32 0
  %324 = load i32, ptr %323, align 8, !tbaa !49
  %325 = add nsw i32 %324, 1
  store i32 %325, ptr %323, align 8, !tbaa !49
  br label %326

326:                                              ; preds = %315, %265
  %327 = load i32, ptr %36, align 4, !tbaa !46
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr %36, align 4, !tbaa !46
  br label %252, !llvm.loop !56

329:                                              ; preds = %256
  %330 = load ptr, ptr %7, align 8, !tbaa !5
  %331 = getelementptr inbounds %class.HighsLp, ptr %330, i32 0, i32 0
  %332 = load i32, ptr %331, align 8, !tbaa !49
  %333 = load i32, ptr %12, align 4, !tbaa !46
  %334 = icmp eq i32 %332, %333
  br i1 %334, label %335, label %336

335:                                              ; preds = %329
  br label %338

336:                                              ; preds = %329
  call void @__assert_fail(ptr noundef @.str.240, ptr noundef @.str.78, i32 noundef 3265, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

337:                                              ; No predecessors!
  br label %338

338:                                              ; preds = %337, %335
  %339 = load i8, ptr %9, align 1, !tbaa !9, !range !53, !noundef !54
  %340 = trunc i8 %339 to i1
  br i1 %340, label %341, label %415

341:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  store i32 0, ptr %47, align 4, !tbaa !46
  br label %342

342:                                              ; preds = %358, %341
  %343 = load i32, ptr %47, align 4, !tbaa !46
  %344 = load i32, ptr %12, align 4, !tbaa !46
  %345 = icmp slt i32 %343, %344
  br i1 %345, label %347, label %346

346:                                              ; preds = %342
  store i32 14, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %361

347:                                              ; preds = %342
  %348 = load ptr, ptr %22, align 8, !tbaa !5
  %349 = getelementptr inbounds %class.HighsSparseMatrix, ptr %348, i32 0, i32 5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %349, ptr noundef nonnull align 4 dereferenceable(4) %47)
  %350 = load ptr, ptr %22, align 8, !tbaa !5
  %351 = getelementptr inbounds %class.HighsSparseMatrix, ptr %350, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  store double 1.000000e+00, ptr %48, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %351, ptr noundef nonnull align 8 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  %352 = load ptr, ptr %22, align 8, !tbaa !5
  %353 = getelementptr inbounds %class.HighsSparseMatrix, ptr %352, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  %354 = load ptr, ptr %22, align 8, !tbaa !5
  %355 = getelementptr inbounds %class.HighsSparseMatrix, ptr %354, i32 0, i32 5
  %356 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %355) #7
  %357 = trunc i64 %356 to i32
  store i32 %357, ptr %49, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %353, ptr noundef nonnull align 4 dereferenceable(4) %49)
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %358

358:                                              ; preds = %347
  %359 = load i32, ptr %47, align 4, !tbaa !46
  %360 = add nsw i32 %359, 1
  store i32 %360, ptr %47, align 4, !tbaa !46
  br label %342, !llvm.loop !57

361:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 0, ptr %50, align 4, !tbaa !46
  br label %362

362:                                              ; preds = %374, %361
  %363 = load i32, ptr %50, align 4, !tbaa !46
  %364 = load i32, ptr %12, align 4, !tbaa !46
  %365 = icmp slt i32 %363, %364
  br i1 %365, label %367, label %366

366:                                              ; preds = %362
  store i32 17, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %377

367:                                              ; preds = %362
  %368 = load ptr, ptr %22, align 8, !tbaa !5
  %369 = getelementptr inbounds %class.HighsSparseMatrix, ptr %368, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  %370 = load ptr, ptr %22, align 8, !tbaa !5
  %371 = getelementptr inbounds %class.HighsSparseMatrix, ptr %370, i32 0, i32 5
  %372 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %371) #7
  %373 = trunc i64 %372 to i32
  store i32 %373, ptr %51, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %369, ptr noundef nonnull align 4 dereferenceable(4) %51)
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %374

374:                                              ; preds = %367
  %375 = load i32, ptr %50, align 4, !tbaa !46
  %376 = add nsw i32 %375, 1
  store i32 %376, ptr %50, align 4, !tbaa !46
  br label %362, !llvm.loop !58

377:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  store i32 0, ptr %52, align 4, !tbaa !46
  br label %378

378:                                              ; preds = %388, %377
  %379 = load i32, ptr %52, align 4, !tbaa !46
  %380 = load i32, ptr %12, align 4, !tbaa !46
  %381 = icmp slt i32 %379, %380
  br i1 %381, label %383, label %382

382:                                              ; preds = %378
  store i32 20, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %391

383:                                              ; preds = %378
  %384 = load ptr, ptr %22, align 8, !tbaa !5
  %385 = getelementptr inbounds %class.HighsSparseMatrix, ptr %384, i32 0, i32 5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %385, ptr noundef nonnull align 4 dereferenceable(4) %52)
  %386 = load ptr, ptr %22, align 8, !tbaa !5
  %387 = getelementptr inbounds %class.HighsSparseMatrix, ptr %386, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  store double 1.000000e+00, ptr %53, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %387, ptr noundef nonnull align 8 dereferenceable(8) %53)
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  br label %388

388:                                              ; preds = %383
  %389 = load i32, ptr %52, align 4, !tbaa !46
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %52, align 4, !tbaa !46
  br label %378, !llvm.loop !59

391:                                              ; preds = %382
  %392 = load ptr, ptr %22, align 8, !tbaa !5
  %393 = getelementptr inbounds %class.HighsSparseMatrix, ptr %392, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  %394 = load ptr, ptr %22, align 8, !tbaa !5
  %395 = getelementptr inbounds %class.HighsSparseMatrix, ptr %394, i32 0, i32 5
  %396 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #7
  %397 = trunc i64 %396 to i32
  store i32 %397, ptr %54, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %393, ptr noundef nonnull align 4 dereferenceable(4) %54)
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  %398 = load i32, ptr %16, align 4, !tbaa !46
  %399 = add nsw i32 %398, 1
  %400 = load ptr, ptr %22, align 8, !tbaa !5
  %401 = getelementptr inbounds %class.HighsSparseMatrix, ptr %400, i32 0, i32 1
  store i32 %399, ptr %401, align 4, !tbaa !60
  %402 = load i32, ptr %12, align 4, !tbaa !46
  %403 = load ptr, ptr %22, align 8, !tbaa !5
  %404 = getelementptr inbounds %class.HighsSparseMatrix, ptr %403, i32 0, i32 2
  store i32 %402, ptr %404, align 8, !tbaa !61
  %405 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_ZN17HighsSparseMatrix13ensureRowwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %405)
  %406 = load ptr, ptr %22, align 8, !tbaa !5
  %407 = getelementptr inbounds %class.HighsSparseMatrix, ptr %406, i32 0, i32 0
  store i32 1, ptr %407, align 8, !tbaa !62
  %408 = load i32, ptr %12, align 4, !tbaa !46
  %409 = load ptr, ptr %22, align 8, !tbaa !5
  %410 = getelementptr inbounds %class.HighsSparseMatrix, ptr %409, i32 0, i32 1
  store i32 %408, ptr %410, align 4, !tbaa !60
  %411 = load i32, ptr %16, align 4, !tbaa !46
  %412 = add nsw i32 %411, 1
  %413 = load ptr, ptr %22, align 8, !tbaa !5
  %414 = getelementptr inbounds %class.HighsSparseMatrix, ptr %413, i32 0, i32 2
  store i32 %412, ptr %414, align 8, !tbaa !61
  br label %415

415:                                              ; preds = %391, %338
  %416 = load ptr, ptr %7, align 8, !tbaa !5
  %417 = getelementptr inbounds %class.HighsLp, ptr %416, i32 0, i32 0
  %418 = load i32, ptr %417, align 8, !tbaa !49
  %419 = load i32, ptr %12, align 4, !tbaa !46
  %420 = icmp eq i32 %418, %419
  br i1 %420, label %421, label %422

421:                                              ; preds = %415
  br label %424

422:                                              ; preds = %415
  call void @__assert_fail(ptr noundef @.str.240, ptr noundef @.str.78, i32 noundef 3295, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

423:                                              ; No predecessors!
  br label %424

424:                                              ; preds = %423, %421
  %425 = load i32, ptr %12, align 4, !tbaa !46
  %426 = mul nsw i32 3, %425
  %427 = add nsw i32 %426, 2
  %428 = load ptr, ptr %7, align 8, !tbaa !5
  %429 = getelementptr inbounds %class.HighsLp, ptr %428, i32 0, i32 1
  store i32 %427, ptr %429, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  store i32 0, ptr %55, align 4, !tbaa !46
  br label %430

430:                                              ; preds = %506, %424
  %431 = load i32, ptr %55, align 4, !tbaa !46
  %432 = load i32, ptr %12, align 4, !tbaa !46
  %433 = icmp slt i32 %431, %432
  br i1 %433, label %435, label %434

434:                                              ; preds = %430
  store i32 23, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br label %528

435:                                              ; preds = %430
  %436 = load ptr, ptr %7, align 8, !tbaa !5
  %437 = getelementptr inbounds %class.HighsLp, ptr %436, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  %438 = load i32, ptr %55, align 4, !tbaa !46
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, i32 noundef %438) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef @.str.241, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %439 unwind label %509

439:                                              ; preds = %435
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %437, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %440 unwind label %513

440:                                              ; preds = %439
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  %441 = load ptr, ptr %7, align 8, !tbaa !5
  %442 = getelementptr inbounds %class.HighsLp, ptr %441, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  store double 0.000000e+00, ptr %58, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %442, ptr noundef nonnull align 8 dereferenceable(8) %58)
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  %443 = load ptr, ptr %7, align 8, !tbaa !5
  %444 = getelementptr inbounds %class.HighsLp, ptr %443, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  store double 0.000000e+00, ptr %59, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %444, ptr noundef nonnull align 8 dereferenceable(8) %59)
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  %445 = load ptr, ptr %7, align 8, !tbaa !5
  %446 = getelementptr inbounds %class.HighsLp, ptr %445, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %446, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %447 = load ptr, ptr %22, align 8, !tbaa !5
  %448 = getelementptr inbounds %class.HighsSparseMatrix, ptr %447, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  %449 = load i32, ptr %14, align 4, !tbaa !46
  %450 = load i32, ptr %55, align 4, !tbaa !46
  %451 = add nsw i32 %449, %450
  store i32 %451, ptr %60, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %448, ptr noundef nonnull align 4 dereferenceable(4) %60)
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  %452 = load ptr, ptr %22, align 8, !tbaa !5
  %453 = getelementptr inbounds %class.HighsSparseMatrix, ptr %452, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  store double -1.000000e+00, ptr %61, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %453, ptr noundef nonnull align 8 dereferenceable(8) %61)
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  %454 = load ptr, ptr %22, align 8, !tbaa !5
  %455 = getelementptr inbounds %class.HighsSparseMatrix, ptr %454, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  %456 = load i32, ptr %15, align 4, !tbaa !46
  %457 = load i32, ptr %55, align 4, !tbaa !46
  %458 = add nsw i32 %456, %457
  store i32 %458, ptr %62, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %455, ptr noundef nonnull align 4 dereferenceable(4) %62)
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  %459 = load ptr, ptr %22, align 8, !tbaa !5
  %460 = getelementptr inbounds %class.HighsSparseMatrix, ptr %459, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  store double 1.000000e+00, ptr %63, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %460, ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  %461 = load ptr, ptr %22, align 8, !tbaa !5
  %462 = getelementptr inbounds %class.HighsSparseMatrix, ptr %461, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  %463 = load ptr, ptr %22, align 8, !tbaa !5
  %464 = getelementptr inbounds %class.HighsSparseMatrix, ptr %463, i32 0, i32 5
  %465 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %464) #7
  %466 = trunc i64 %465 to i32
  store i32 %466, ptr %64, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %462, ptr noundef nonnull align 4 dereferenceable(4) %64)
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  %467 = load ptr, ptr %7, align 8, !tbaa !5
  %468 = getelementptr inbounds %class.HighsLp, ptr %467, i32 0, i32 0
  %469 = load i32, ptr %468, align 8, !tbaa !49
  %470 = add nsw i32 %469, 1
  store i32 %470, ptr %468, align 8, !tbaa !49
  %471 = load ptr, ptr %7, align 8, !tbaa !5
  %472 = getelementptr inbounds %class.HighsLp, ptr %471, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #7
  %473 = load i32, ptr %55, align 4, !tbaa !46
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, i32 noundef %473) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef @.str.242, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %474 unwind label %518

474:                                              ; preds = %440
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %472, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %475 unwind label %522

475:                                              ; preds = %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  %476 = load ptr, ptr %7, align 8, !tbaa !5
  %477 = getelementptr inbounds %class.HighsLp, ptr %476, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  store double 0.000000e+00, ptr %67, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %477, ptr noundef nonnull align 8 dereferenceable(8) %67)
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  %478 = load ptr, ptr %7, align 8, !tbaa !5
  %479 = getelementptr inbounds %class.HighsLp, ptr %478, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  store double 0.000000e+00, ptr %68, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %479, ptr noundef nonnull align 8 dereferenceable(8) %68)
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  %480 = load ptr, ptr %7, align 8, !tbaa !5
  %481 = getelementptr inbounds %class.HighsLp, ptr %480, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %481, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %482 = load ptr, ptr %22, align 8, !tbaa !5
  %483 = getelementptr inbounds %class.HighsSparseMatrix, ptr %482, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  %484 = load i32, ptr %14, align 4, !tbaa !46
  %485 = load i32, ptr %55, align 4, !tbaa !46
  %486 = add nsw i32 %484, %485
  store i32 %486, ptr %69, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %483, ptr noundef nonnull align 4 dereferenceable(4) %69)
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  %487 = load ptr, ptr %22, align 8, !tbaa !5
  %488 = getelementptr inbounds %class.HighsSparseMatrix, ptr %487, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  store double 1.000000e+00, ptr %70, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %488, ptr noundef nonnull align 8 dereferenceable(8) %70)
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  %489 = load ptr, ptr %22, align 8, !tbaa !5
  %490 = getelementptr inbounds %class.HighsSparseMatrix, ptr %489, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  %491 = load i32, ptr %15, align 4, !tbaa !46
  %492 = load i32, ptr %55, align 4, !tbaa !46
  %493 = add nsw i32 %491, %492
  store i32 %493, ptr %71, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %490, ptr noundef nonnull align 4 dereferenceable(4) %71)
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  %494 = load ptr, ptr %22, align 8, !tbaa !5
  %495 = getelementptr inbounds %class.HighsSparseMatrix, ptr %494, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  store double 1.000000e+00, ptr %72, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %495, ptr noundef nonnull align 8 dereferenceable(8) %72)
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  %496 = load ptr, ptr %22, align 8, !tbaa !5
  %497 = getelementptr inbounds %class.HighsSparseMatrix, ptr %496, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  %498 = load ptr, ptr %22, align 8, !tbaa !5
  %499 = getelementptr inbounds %class.HighsSparseMatrix, ptr %498, i32 0, i32 5
  %500 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %499) #7
  %501 = trunc i64 %500 to i32
  store i32 %501, ptr %73, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %497, ptr noundef nonnull align 4 dereferenceable(4) %73)
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  %502 = load ptr, ptr %7, align 8, !tbaa !5
  %503 = getelementptr inbounds %class.HighsLp, ptr %502, i32 0, i32 0
  %504 = load i32, ptr %503, align 8, !tbaa !49
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr %503, align 8, !tbaa !49
  br label %506

506:                                              ; preds = %475
  %507 = load i32, ptr %55, align 4, !tbaa !46
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr %55, align 4, !tbaa !46
  br label %430, !llvm.loop !63

509:                                              ; preds = %435
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %27, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %28, align 4
  br label %517

513:                                              ; preds = %439
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %27, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %517

517:                                              ; preds = %513, %509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  br label %527

518:                                              ; preds = %440
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %27, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %28, align 4
  br label %526

522:                                              ; preds = %474
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %27, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %526

526:                                              ; preds = %522, %518
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %527

527:                                              ; preds = %526, %517
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br label %774

528:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  store i32 0, ptr %74, align 4, !tbaa !46
  br label %529

529:                                              ; preds = %597, %528
  %530 = load i32, ptr %74, align 4, !tbaa !46
  %531 = load i32, ptr %12, align 4, !tbaa !46
  %532 = icmp slt i32 %530, %531
  br i1 %532, label %534, label %533

533:                                              ; preds = %529
  store i32 26, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  br label %619

534:                                              ; preds = %529
  %535 = load ptr, ptr %7, align 8, !tbaa !5
  %536 = getelementptr inbounds %class.HighsLp, ptr %535, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #7
  %537 = load i32, ptr %74, align 4, !tbaa !46
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, i32 noundef %537) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef @.str.243, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %538 unwind label %600

538:                                              ; preds = %534
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %536, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %539 unwind label %604

539:                                              ; preds = %538
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  %540 = load ptr, ptr %7, align 8, !tbaa !5
  %541 = getelementptr inbounds %class.HighsLp, ptr %540, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #7
  store double 0.000000e+00, ptr %77, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %541, ptr noundef nonnull align 8 dereferenceable(8) %77)
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  %542 = load ptr, ptr %7, align 8, !tbaa !5
  %543 = getelementptr inbounds %class.HighsLp, ptr %542, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #7
  store double 0.000000e+00, ptr %78, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %543, ptr noundef nonnull align 8 dereferenceable(8) %78)
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  %544 = load ptr, ptr %7, align 8, !tbaa !5
  %545 = getelementptr inbounds %class.HighsLp, ptr %544, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %545, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %546 = load ptr, ptr %22, align 8, !tbaa !5
  %547 = getelementptr inbounds %class.HighsSparseMatrix, ptr %546, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  %548 = load i32, ptr %74, align 4, !tbaa !46
  %549 = add nsw i32 0, %548
  store i32 %549, ptr %79, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %547, ptr noundef nonnull align 4 dereferenceable(4) %79)
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  %550 = load ptr, ptr %22, align 8, !tbaa !5
  %551 = getelementptr inbounds %class.HighsSparseMatrix, ptr %550, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #7
  store double -1.000000e+00, ptr %80, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %551, ptr noundef nonnull align 8 dereferenceable(8) %80)
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  %552 = load ptr, ptr %22, align 8, !tbaa !5
  %553 = getelementptr inbounds %class.HighsSparseMatrix, ptr %552, i32 0, i32 5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %553, ptr noundef nonnull align 4 dereferenceable(4) %17)
  %554 = load ptr, ptr %22, align 8, !tbaa !5
  %555 = getelementptr inbounds %class.HighsSparseMatrix, ptr %554, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  store double 1.000000e+00, ptr %81, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %555, ptr noundef nonnull align 8 dereferenceable(8) %81)
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  %556 = load ptr, ptr %22, align 8, !tbaa !5
  %557 = getelementptr inbounds %class.HighsSparseMatrix, ptr %556, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #7
  %558 = load ptr, ptr %22, align 8, !tbaa !5
  %559 = getelementptr inbounds %class.HighsSparseMatrix, ptr %558, i32 0, i32 5
  %560 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %559) #7
  %561 = trunc i64 %560 to i32
  store i32 %561, ptr %82, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %557, ptr noundef nonnull align 4 dereferenceable(4) %82)
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  %562 = load ptr, ptr %7, align 8, !tbaa !5
  %563 = getelementptr inbounds %class.HighsLp, ptr %562, i32 0, i32 0
  %564 = load i32, ptr %563, align 8, !tbaa !49
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr %563, align 8, !tbaa !49
  %566 = load ptr, ptr %7, align 8, !tbaa !5
  %567 = getelementptr inbounds %class.HighsLp, ptr %566, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #7
  %568 = load i32, ptr %74, align 4, !tbaa !46
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, i32 noundef %568) #7
  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.244, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %569 unwind label %609

569:                                              ; preds = %539
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %567, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %570 unwind label %613

570:                                              ; preds = %569
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #7
  %571 = load ptr, ptr %7, align 8, !tbaa !5
  %572 = getelementptr inbounds %class.HighsLp, ptr %571, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #7
  store double 0.000000e+00, ptr %85, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %572, ptr noundef nonnull align 8 dereferenceable(8) %85)
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #7
  %573 = load ptr, ptr %7, align 8, !tbaa !5
  %574 = getelementptr inbounds %class.HighsLp, ptr %573, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #7
  store double 0.000000e+00, ptr %86, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %574, ptr noundef nonnull align 8 dereferenceable(8) %86)
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #7
  %575 = load ptr, ptr %7, align 8, !tbaa !5
  %576 = getelementptr inbounds %class.HighsLp, ptr %575, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %576, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %577 = load ptr, ptr %22, align 8, !tbaa !5
  %578 = getelementptr inbounds %class.HighsSparseMatrix, ptr %577, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #7
  %579 = load i32, ptr %74, align 4, !tbaa !46
  %580 = add nsw i32 0, %579
  store i32 %580, ptr %87, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %578, ptr noundef nonnull align 4 dereferenceable(4) %87)
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  %581 = load ptr, ptr %22, align 8, !tbaa !5
  %582 = getelementptr inbounds %class.HighsSparseMatrix, ptr %581, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #7
  store double 1.000000e+00, ptr %88, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %582, ptr noundef nonnull align 8 dereferenceable(8) %88)
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #7
  %583 = load ptr, ptr %22, align 8, !tbaa !5
  %584 = getelementptr inbounds %class.HighsSparseMatrix, ptr %583, i32 0, i32 5
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %584, ptr noundef nonnull align 4 dereferenceable(4) %17)
  %585 = load ptr, ptr %22, align 8, !tbaa !5
  %586 = getelementptr inbounds %class.HighsSparseMatrix, ptr %585, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  store double 1.000000e+00, ptr %89, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %586, ptr noundef nonnull align 8 dereferenceable(8) %89)
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  %587 = load ptr, ptr %22, align 8, !tbaa !5
  %588 = getelementptr inbounds %class.HighsSparseMatrix, ptr %587, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #7
  %589 = load ptr, ptr %22, align 8, !tbaa !5
  %590 = getelementptr inbounds %class.HighsSparseMatrix, ptr %589, i32 0, i32 5
  %591 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %590) #7
  %592 = trunc i64 %591 to i32
  store i32 %592, ptr %90, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %588, ptr noundef nonnull align 4 dereferenceable(4) %90)
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  %593 = load ptr, ptr %7, align 8, !tbaa !5
  %594 = getelementptr inbounds %class.HighsLp, ptr %593, i32 0, i32 0
  %595 = load i32, ptr %594, align 8, !tbaa !49
  %596 = add nsw i32 %595, 1
  store i32 %596, ptr %594, align 8, !tbaa !49
  br label %597

597:                                              ; preds = %570
  %598 = load i32, ptr %74, align 4, !tbaa !46
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr %74, align 4, !tbaa !46
  br label %529, !llvm.loop !64

600:                                              ; preds = %534
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %27, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %28, align 4
  br label %608

604:                                              ; preds = %538
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %27, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %608

608:                                              ; preds = %604, %600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  br label %618

609:                                              ; preds = %539
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %27, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %28, align 4
  br label %617

613:                                              ; preds = %569
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %27, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %617

617:                                              ; preds = %613, %609
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #7
  br label %618

618:                                              ; preds = %617, %608
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  br label %774

619:                                              ; preds = %533
  %620 = load ptr, ptr %7, align 8, !tbaa !5
  %621 = getelementptr inbounds %class.HighsLp, ptr %620, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #7
  store double 1.000000e+00, ptr %91, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %621, ptr noundef nonnull align 8 dereferenceable(8) %91)
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #7
  %622 = load ptr, ptr %7, align 8, !tbaa !5
  %623 = getelementptr inbounds %class.HighsLp, ptr %622, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #7
  store double 1.000000e+00, ptr %92, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %623, ptr noundef nonnull align 8 dereferenceable(8) %92)
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #7
  %624 = load double, ptr %10, align 8, !tbaa !11
  %625 = fcmp ogt double %624, 0.000000e+00
  br i1 %625, label %626, label %627

626:                                              ; preds = %619
  br label %629

627:                                              ; preds = %619
  call void @__assert_fail(ptr noundef @.str.245, ptr noundef @.str.78, i32 noundef 3364, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

628:                                              ; No predecessors!
  br label %629

629:                                              ; preds = %628, %626
  %630 = load ptr, ptr %7, align 8, !tbaa !5
  %631 = getelementptr inbounds %class.HighsLp, ptr %630, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  store double 0xFFF0000000000000, ptr %93, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %631, ptr noundef nonnull align 8 dereferenceable(8) %93)
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  %632 = load ptr, ptr %7, align 8, !tbaa !5
  %633 = getelementptr inbounds %class.HighsLp, ptr %632, i32 0, i32 6
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %633, ptr noundef nonnull align 8 dereferenceable(8) %10)
  %634 = load ptr, ptr %7, align 8, !tbaa !5
  %635 = getelementptr inbounds %class.HighsLp, ptr %634, i32 0, i32 5
  %636 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %635) #7
  %637 = trunc i64 %636 to i32
  %638 = load ptr, ptr %7, align 8, !tbaa !5
  %639 = getelementptr inbounds %class.HighsLp, ptr %638, i32 0, i32 1
  %640 = load i32, ptr %639, align 4, !tbaa !13
  %641 = icmp eq i32 %637, %640
  br i1 %641, label %642, label %643

642:                                              ; preds = %629
  br label %645

643:                                              ; preds = %629
  call void @__assert_fail(ptr noundef @.str.246, ptr noundef @.str.78, i32 noundef 3368, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

644:                                              ; No predecessors!
  br label %645

645:                                              ; preds = %644, %642
  %646 = load ptr, ptr %7, align 8, !tbaa !5
  %647 = getelementptr inbounds %class.HighsLp, ptr %646, i32 0, i32 6
  %648 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %647) #7
  %649 = trunc i64 %648 to i32
  %650 = load ptr, ptr %7, align 8, !tbaa !5
  %651 = getelementptr inbounds %class.HighsLp, ptr %650, i32 0, i32 1
  %652 = load i32, ptr %651, align 4, !tbaa !13
  %653 = icmp eq i32 %649, %652
  br i1 %653, label %654, label %655

654:                                              ; preds = %645
  br label %657

655:                                              ; preds = %645
  call void @__assert_fail(ptr noundef @.str.247, ptr noundef @.str.78, i32 noundef 3370, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

656:                                              ; No predecessors!
  br label %657

657:                                              ; preds = %656, %654
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #7
  store i32 0, ptr %94, align 4, !tbaa !46
  br label %658

658:                                              ; preds = %720, %657
  %659 = load i32, ptr %94, align 4, !tbaa !46
  %660 = load i32, ptr %12, align 4, !tbaa !46
  %661 = icmp slt i32 %659, %660
  br i1 %661, label %663, label %662

662:                                              ; preds = %658
  store i32 29, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #7
  br label %742

663:                                              ; preds = %658
  %664 = load ptr, ptr %7, align 8, !tbaa !5
  %665 = getelementptr inbounds %class.HighsLp, ptr %664, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #7
  %666 = load i32, ptr %94, align 4, !tbaa !46
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, i32 noundef %666) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef @.str.248, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %667 unwind label %723

667:                                              ; preds = %663
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %665, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %668 unwind label %727

668:                                              ; preds = %667
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  %669 = load ptr, ptr %7, align 8, !tbaa !5
  %670 = getelementptr inbounds %class.HighsLp, ptr %669, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #7
  store double 1.000000e+00, ptr %97, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %670, ptr noundef nonnull align 8 dereferenceable(8) %97)
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  %671 = load ptr, ptr %7, align 8, !tbaa !5
  %672 = getelementptr inbounds %class.HighsLp, ptr %671, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #7
  store double 0.000000e+00, ptr %98, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %672, ptr noundef nonnull align 8 dereferenceable(8) %98)
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #7
  %673 = load ptr, ptr %7, align 8, !tbaa !5
  %674 = getelementptr inbounds %class.HighsLp, ptr %673, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %674, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %675 = load ptr, ptr %22, align 8, !tbaa !5
  %676 = getelementptr inbounds %class.HighsSparseMatrix, ptr %675, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #7
  %677 = load i32, ptr %15, align 4, !tbaa !46
  %678 = load i32, ptr %94, align 4, !tbaa !46
  %679 = add nsw i32 %677, %678
  store i32 %679, ptr %99, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %676, ptr noundef nonnull align 4 dereferenceable(4) %99)
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #7
  %680 = load ptr, ptr %22, align 8, !tbaa !5
  %681 = getelementptr inbounds %class.HighsSparseMatrix, ptr %680, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #7
  store double -1.000000e+00, ptr %100, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %681, ptr noundef nonnull align 8 dereferenceable(8) %100)
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #7
  %682 = load ptr, ptr %22, align 8, !tbaa !5
  %683 = getelementptr inbounds %class.HighsSparseMatrix, ptr %682, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #7
  %684 = load ptr, ptr %22, align 8, !tbaa !5
  %685 = getelementptr inbounds %class.HighsSparseMatrix, ptr %684, i32 0, i32 5
  %686 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %685) #7
  %687 = trunc i64 %686 to i32
  store i32 %687, ptr %101, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %683, ptr noundef nonnull align 4 dereferenceable(4) %101)
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #7
  %688 = load ptr, ptr %7, align 8, !tbaa !5
  %689 = getelementptr inbounds %class.HighsLp, ptr %688, i32 0, i32 0
  %690 = load i32, ptr %689, align 8, !tbaa !49
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr %689, align 8, !tbaa !49
  %692 = load ptr, ptr %7, align 8, !tbaa !5
  %693 = getelementptr inbounds %class.HighsLp, ptr %692, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #7
  %694 = load i32, ptr %94, align 4, !tbaa !46
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, i32 noundef %694) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %695 unwind label %732

695:                                              ; preds = %668
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %693, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %696 unwind label %736

696:                                              ; preds = %695
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  %697 = load ptr, ptr %7, align 8, !tbaa !5
  %698 = getelementptr inbounds %class.HighsLp, ptr %697, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #7
  store double 1.000000e+00, ptr %104, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %698, ptr noundef nonnull align 8 dereferenceable(8) %104)
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  %699 = load ptr, ptr %7, align 8, !tbaa !5
  %700 = getelementptr inbounds %class.HighsLp, ptr %699, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #7
  store double 0.000000e+00, ptr %105, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %700, ptr noundef nonnull align 8 dereferenceable(8) %105)
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #7
  %701 = load ptr, ptr %7, align 8, !tbaa !5
  %702 = getelementptr inbounds %class.HighsLp, ptr %701, i32 0, i32 4
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %702, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %703 = load ptr, ptr %22, align 8, !tbaa !5
  %704 = getelementptr inbounds %class.HighsSparseMatrix, ptr %703, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #7
  %705 = load i32, ptr %15, align 4, !tbaa !46
  %706 = load i32, ptr %94, align 4, !tbaa !46
  %707 = add nsw i32 %705, %706
  store i32 %707, ptr %106, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 4 dereferenceable(4) %106)
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #7
  %708 = load ptr, ptr %22, align 8, !tbaa !5
  %709 = getelementptr inbounds %class.HighsSparseMatrix, ptr %708, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #7
  store double 1.000000e+00, ptr %107, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %709, ptr noundef nonnull align 8 dereferenceable(8) %107)
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #7
  %710 = load ptr, ptr %22, align 8, !tbaa !5
  %711 = getelementptr inbounds %class.HighsSparseMatrix, ptr %710, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #7
  %712 = load ptr, ptr %22, align 8, !tbaa !5
  %713 = getelementptr inbounds %class.HighsSparseMatrix, ptr %712, i32 0, i32 5
  %714 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %713) #7
  %715 = trunc i64 %714 to i32
  store i32 %715, ptr %108, align 4, !tbaa !46
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %711, ptr noundef nonnull align 4 dereferenceable(4) %108)
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #7
  %716 = load ptr, ptr %7, align 8, !tbaa !5
  %717 = getelementptr inbounds %class.HighsLp, ptr %716, i32 0, i32 0
  %718 = load i32, ptr %717, align 8, !tbaa !49
  %719 = add nsw i32 %718, 1
  store i32 %719, ptr %717, align 8, !tbaa !49
  br label %720

720:                                              ; preds = %696
  %721 = load i32, ptr %94, align 4, !tbaa !46
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr %94, align 4, !tbaa !46
  br label %658, !llvm.loop !65

723:                                              ; preds = %663
  %724 = landingpad { ptr, i32 }
          cleanup
  %725 = extractvalue { ptr, i32 } %724, 0
  store ptr %725, ptr %27, align 8
  %726 = extractvalue { ptr, i32 } %724, 1
  store i32 %726, ptr %28, align 4
  br label %731

727:                                              ; preds = %667
  %728 = landingpad { ptr, i32 }
          cleanup
  %729 = extractvalue { ptr, i32 } %728, 0
  store ptr %729, ptr %27, align 8
  %730 = extractvalue { ptr, i32 } %728, 1
  store i32 %730, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %731

731:                                              ; preds = %727, %723
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  br label %741

732:                                              ; preds = %668
  %733 = landingpad { ptr, i32 }
          cleanup
  %734 = extractvalue { ptr, i32 } %733, 0
  store ptr %734, ptr %27, align 8
  %735 = extractvalue { ptr, i32 } %733, 1
  store i32 %735, ptr %28, align 4
  br label %740

736:                                              ; preds = %695
  %737 = landingpad { ptr, i32 }
          cleanup
  %738 = extractvalue { ptr, i32 } %737, 0
  store ptr %738, ptr %27, align 8
  %739 = extractvalue { ptr, i32 } %737, 1
  store i32 %739, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %740

740:                                              ; preds = %736, %732
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %741

741:                                              ; preds = %740, %731
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #7
  br label %774

742:                                              ; preds = %662
  %743 = load ptr, ptr %7, align 8, !tbaa !5
  %744 = getelementptr inbounds %class.HighsLp, ptr %743, i32 0, i32 0
  %745 = load i32, ptr %744, align 8, !tbaa !49
  %746 = load i32, ptr %12, align 4, !tbaa !46
  %747 = mul nsw i32 7, %746
  %748 = icmp eq i32 %745, %747
  br i1 %748, label %749, label %750

749:                                              ; preds = %742
  br label %752

750:                                              ; preds = %742
  call void @__assert_fail(ptr noundef @.str.250, ptr noundef @.str.78, i32 noundef 3398, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

751:                                              ; No predecessors!
  br label %752

752:                                              ; preds = %751, %749
  %753 = load ptr, ptr %7, align 8, !tbaa !5
  %754 = getelementptr inbounds %class.HighsLp, ptr %753, i32 0, i32 1
  %755 = load i32, ptr %754, align 4, !tbaa !13
  %756 = load i32, ptr %12, align 4, !tbaa !46
  %757 = mul nsw i32 3, %756
  %758 = add nsw i32 %757, 2
  %759 = icmp eq i32 %755, %758
  br i1 %759, label %760, label %761

760:                                              ; preds = %752
  br label %763

761:                                              ; preds = %752
  call void @__assert_fail(ptr noundef @.str.251, ptr noundef @.str.78, i32 noundef 3399, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

762:                                              ; No predecessors!
  br label %763

763:                                              ; preds = %762, %760
  %764 = load ptr, ptr %7, align 8, !tbaa !5
  %765 = getelementptr inbounds %class.HighsLp, ptr %764, i32 0, i32 0
  %766 = load i32, ptr %765, align 8, !tbaa !49
  %767 = load ptr, ptr %22, align 8, !tbaa !5
  %768 = getelementptr inbounds %class.HighsSparseMatrix, ptr %767, i32 0, i32 1
  store i32 %766, ptr %768, align 4, !tbaa !60
  %769 = load ptr, ptr %7, align 8, !tbaa !5
  %770 = getelementptr inbounds %class.HighsLp, ptr %769, i32 0, i32 1
  %771 = load i32, ptr %770, align 4, !tbaa !13
  %772 = load ptr, ptr %22, align 8, !tbaa !5
  %773 = getelementptr inbounds %class.HighsSparseMatrix, ptr %772, i32 0, i32 2
  store i32 %771, ptr %773, align 8, !tbaa !61
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  ret void

774:                                              ; preds = %741, %618, %527, %314, %201
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %775

775:                                              ; preds = %774
  %776 = load ptr, ptr %27, align 8
  %777 = load i32, ptr %28, align 4
  %778 = insertvalue { ptr, i32 } poison, ptr %776, 0
  %779 = insertvalue { ptr, i32 } %778, i32 %777, 1
  resume { ptr, i32 } %779
}

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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { 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 #6 = { 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 #7 = { nounwind }
attributes #8 = { noreturn nounwind }

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

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


; 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] }

@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@_ZL9kHighsInf = external hidden constant double, align 8
@.str.239 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [50 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd = external hidden unnamed_addr constant [97 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [58 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

declare i32 @__gxx_personality_v0(...)

; 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

declare void @_ZN17HighsSparseMatrix13ensureRowwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #4

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

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

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

declare void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 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 #5

; 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 #6

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd(ptr noundef nonnull align 8 dereferenceable(20928) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, i1 noundef zeroext %3, double noundef %4) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca double, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca i32, align 4
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca i32, align 4
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca double, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca i32, align 4
  %43 = alloca double, align 8
  %44 = alloca i32, align 4
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca i32, align 4
  %52 = alloca double, align 8
  %53 = alloca i32, align 4
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca i32, align 4
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca i32, align 4
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca i32, align 4
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca i32, align 4
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca i32, align 4
  %80 = alloca double, align 8
  %81 = alloca i32, align 4
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca i32, align 4
  %87 = alloca double, align 8
  %88 = alloca i32, align 4
  store double %4, ptr %6, align 8, !tbaa !5
  %89 = getelementptr inbounds i8, ptr %0, i64 312
  %90 = getelementptr inbounds i8, ptr %0, i64 316
  %91 = load i32, ptr %90, align 4, !tbaa !9
  %92 = shl nsw i32 %91, 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #7
  %93 = mul nsw i32 %91, 3
  store i32 %93, ptr %7, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  %94 = add nsw i32 %93, 1
  store i32 %94, ptr %8, align 4, !tbaa !44
  %95 = icmp sgt i32 %91, 0
  br i1 %95, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %5
  %96 = getelementptr inbounds i8, ptr %1, i64 80
  %97 = getelementptr inbounds i8, ptr %1, i64 104
  br label %113

._crit_edge:                                      ; preds = %113, %5
  %98 = getelementptr inbounds i8, ptr %0, i64 440
  call void @_ZN17HighsSparseMatrix13ensureColwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %98)
  %99 = getelementptr inbounds i8, ptr %1, i64 128
  store i32 0, ptr %1, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #7
  store i32 0, ptr %11, align 4, !tbaa !44
  %100 = load i32, ptr %89, align 8, !tbaa !45
  %101 = icmp sgt i32 %100, 0
  br i1 %101, label %.lr.ph253, label %._crit_edge254

.lr.ph253:                                        ; preds = %._crit_edge
  %102 = getelementptr inbounds i8, ptr %0, i64 160
  %103 = getelementptr inbounds i8, ptr %1, i64 328
  %104 = getelementptr inbounds i8, ptr %1, i64 8
  %105 = getelementptr inbounds i8, ptr %1, i64 32
  %106 = getelementptr inbounds i8, ptr %1, i64 56
  %107 = getelementptr inbounds i8, ptr %0, i64 456
  %108 = getelementptr inbounds i8, ptr %1, i64 192
  %109 = getelementptr inbounds i8, ptr %0, i64 504
  %110 = getelementptr inbounds i8, ptr %1, i64 216
  %111 = getelementptr inbounds i8, ptr %0, i64 528
  %112 = getelementptr inbounds i8, ptr %1, i64 144
  br label %125

113:                                              ; preds = %.lr.ph, %113
  %.0216246 = phi i32 [ 0, %.lr.ph ], [ %114, %113 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  store double 0.000000e+00, ptr %9, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %96, ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  store double 0.000000e+00, ptr %10, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  %114 = add nuw nsw i32 %.0216246, 1
  %115 = load i32, ptr %7, align 4, !tbaa !44
  %116 = icmp slt i32 %114, %115
  br i1 %116, label %113, label %._crit_edge, !llvm.loop !46

._crit_edge254:                                   ; preds = %166, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  store i32 0, ptr %20, align 4, !tbaa !44
  br i1 %95, label %.lr.ph257, label %._crit_edge258

.lr.ph257:                                        ; preds = %._crit_edge254
  %117 = getelementptr inbounds i8, ptr %0, i64 184
  %118 = getelementptr inbounds i8, ptr %1, i64 328
  %119 = getelementptr inbounds i8, ptr %1, i64 8
  %120 = getelementptr inbounds i8, ptr %1, i64 32
  %121 = getelementptr inbounds i8, ptr %1, i64 56
  %122 = getelementptr inbounds i8, ptr %1, i64 192
  %123 = getelementptr inbounds i8, ptr %1, i64 216
  %124 = getelementptr inbounds i8, ptr %1, i64 144
  br label %173

125:                                              ; preds = %.lr.ph253, %166
  %storemerge251 = phi i32 [ 0, %.lr.ph253 ], [ %168, %166 ]
  %126 = sext i32 %storemerge251 to i64
  %127 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %102, i64 noundef %126) #7
  %128 = load i8, ptr %127, align 1, !tbaa !48
  %.not241 = icmp eq i8 %128, 1
  br i1 %.not241, label %129, label %166

129:                                              ; preds = %125
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 4 dereferenceable(4) %11)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  %130 = load i32, ptr %1, align 8, !tbaa !45
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, i32 noundef %130) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull @.str.239, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %131 unwind label %144

131:                                              ; preds = %129
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %103, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %132 unwind label %146

132:                                              ; preds = %131
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  store double 0.000000e+00, ptr %14, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  store double 0xFFF0000000000000, ptr %15, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %105, ptr noundef nonnull align 8 dereferenceable(8) %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %106, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  %133 = load i32, ptr %11, align 4, !tbaa !44
  %134 = sext i32 %133 to i64
  %135 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %134) #7
  %136 = load i32, ptr %135, align 4, !tbaa !44
  %137 = load i32, ptr %11, align 4, !tbaa !44
  %138 = add nsw i32 %137, 1
  %139 = sext i32 %138 to i64
  %140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %139) #7
  %141 = load i32, ptr %140, align 4, !tbaa !44
  %142 = icmp slt i32 %136, %141
  br i1 %142, label %.lr.ph249.preheader, label %._crit_edge250

.lr.ph249.preheader:                              ; preds = %132
  %143 = sext i32 %136 to i64
  br label %.lr.ph249

._crit_edge250:                                   ; preds = %.lr.ph249, %132
  br i1 %3, label %161, label %158

144:                                              ; preds = %129
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %148

146:                                              ; preds = %131
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %148

148:                                              ; preds = %146, %144
  %.pn242 = phi { ptr, i32 } [ %147, %146 ], [ %145, %144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br label %362

.lr.ph249:                                        ; preds = %.lr.ph249.preheader, %.lr.ph249
  %indvars.iv = phi i64 [ %143, %.lr.ph249.preheader ], [ %indvars.iv.next, %.lr.ph249 ]
  %149 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %indvars.iv) #7
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %108, ptr noundef nonnull align 4 dereferenceable(4) %149)
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %indvars.iv) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(8) %150)
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %151 = load i32, ptr %11, align 4, !tbaa !44
  %152 = add nsw i32 %151, 1
  %153 = sext i32 %152 to i64
  %154 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %153) #7
  %155 = load i32, ptr %154, align 4, !tbaa !44
  %156 = sext i32 %155 to i64
  %157 = icmp slt i64 %indvars.iv.next, %156
  br i1 %157, label %.lr.ph249, label %._crit_edge250, !llvm.loop !50

158:                                              ; preds = %._crit_edge250
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  %159 = load i32, ptr %1, align 8, !tbaa !45
  %160 = add nsw i32 %159, %91
  store i32 %160, ptr %16, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %108, ptr noundef nonnull align 4 dereferenceable(4) %16)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  store double 1.000000e+00, ptr %17, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %108, ptr noundef nonnull align 4 dereferenceable(4) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  store double 1.000000e+00, ptr %18, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br label %161

161:                                              ; preds = %158, %._crit_edge250
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  %162 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %108) #7
  %163 = trunc i64 %162 to i32
  store i32 %163, ptr %19, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr noundef nonnull align 4 dereferenceable(4) %19)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  %164 = load i32, ptr %1, align 8, !tbaa !45
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr %1, align 8, !tbaa !45
  br label %166

166:                                              ; preds = %125, %161
  %167 = load i32, ptr %11, align 4, !tbaa !44
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr %11, align 4, !tbaa !44
  %169 = load i32, ptr %89, align 8, !tbaa !45
  %170 = icmp slt i32 %168, %169
  br i1 %170, label %125, label %._crit_edge254, !llvm.loop !51

._crit_edge258:                                   ; preds = %197, %._crit_edge254
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  %171 = load i32, ptr %1, align 8, !tbaa !45
  %172 = icmp eq i32 %171, %91
  br i1 %172, label %202, label %201

173:                                              ; preds = %.lr.ph257, %197
  %storemerge222255 = phi i32 [ 0, %.lr.ph257 ], [ %199, %197 ]
  %174 = sext i32 %storemerge222255 to i64
  %175 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %117, i64 noundef %174) #7
  %176 = load i8, ptr %175, align 1, !tbaa !48
  %.not = icmp eq i8 %176, 1
  br i1 %.not, label %177, label %197

177:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  %178 = load i32, ptr %89, align 8, !tbaa !45
  %179 = load i32, ptr %20, align 4, !tbaa !44
  %180 = add nsw i32 %179, %178
  store i32 %180, ptr %21, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 4 dereferenceable(4) %21)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  %181 = load i32, ptr %1, align 8, !tbaa !45
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, i32 noundef %181) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull @.str.239, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %182 unwind label %187

182:                                              ; preds = %177
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %118, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %183 unwind label %189

183:                                              ; preds = %182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  store double 0.000000e+00, ptr %24, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef nonnull align 8 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  store double 0xFFF0000000000000, ptr %25, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %120, ptr noundef nonnull align 8 dereferenceable(8) %25)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %121, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef nonnull align 4 dereferenceable(4) %20)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  store double -1.000000e+00, ptr %26, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(8) %26)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br i1 %3, label %192, label %184

184:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #7
  %185 = load i32, ptr %1, align 8, !tbaa !45
  %186 = add nsw i32 %185, %91
  store i32 %186, ptr %27, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef nonnull align 4 dereferenceable(4) %27)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  store double 1.000000e+00, ptr %28, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(8) %28)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef nonnull align 4 dereferenceable(4) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  store double 1.000000e+00, ptr %29, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(8) %29)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %192

187:                                              ; preds = %177
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %191

189:                                              ; preds = %182
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %191

191:                                              ; preds = %189, %187
  %.pn239 = phi { ptr, i32 } [ %190, %189 ], [ %188, %187 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br label %362

192:                                              ; preds = %184, %183
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  %193 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %122) #7
  %194 = trunc i64 %193 to i32
  store i32 %194, ptr %30, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 4 dereferenceable(4) %30)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  %195 = load i32, ptr %1, align 8, !tbaa !45
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr %1, align 8, !tbaa !45
  br label %197

197:                                              ; preds = %173, %192
  %198 = load i32, ptr %20, align 4, !tbaa !44
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr %20, align 4, !tbaa !44
  %200 = icmp slt i32 %199, %91
  br i1 %200, label %173, label %._crit_edge258, !llvm.loop !52

201:                                              ; preds = %._crit_edge258
  call void @__assert_fail(ptr noundef nonnull @.str.240, ptr noundef nonnull @.str.78, i32 noundef 3265, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

202:                                              ; preds = %._crit_edge258
  br i1 %3, label %203, label %.thread

203:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  store i32 0, ptr %31, align 4, !tbaa !44
  br i1 %95, label %.lr.ph260, label %._crit_edge261.thread

._crit_edge261.thread:                            ; preds = %203
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br label %._crit_edge265.thread

.lr.ph260:                                        ; preds = %203
  %204 = getelementptr inbounds i8, ptr %1, i64 192
  %205 = getelementptr inbounds i8, ptr %1, i64 216
  %206 = getelementptr inbounds i8, ptr %1, i64 144
  br label %209

._crit_edge261:                                   ; preds = %209
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br i1 %95, label %.lr.ph264, label %._crit_edge265.thread

.lr.ph264:                                        ; preds = %._crit_edge261
  %207 = getelementptr inbounds i8, ptr %1, i64 144
  %208 = getelementptr inbounds i8, ptr %1, i64 192
  br label %217

209:                                              ; preds = %.lr.ph260, %209
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %204, ptr noundef nonnull align 4 dereferenceable(4) %31)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  store double 1.000000e+00, ptr %32, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %205, ptr noundef nonnull align 8 dereferenceable(8) %32)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  %210 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #7
  %211 = trunc i64 %210 to i32
  store i32 %211, ptr %33, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %206, ptr noundef nonnull align 4 dereferenceable(4) %33)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  %212 = load i32, ptr %31, align 4, !tbaa !44
  %213 = add nsw i32 %212, 1
  store i32 %213, ptr %31, align 4, !tbaa !44
  %214 = icmp slt i32 %213, %91
  br i1 %214, label %209, label %._crit_edge261, !llvm.loop !53

._crit_edge265.thread:                            ; preds = %._crit_edge261.thread, %._crit_edge261
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  br label %.loopexit

._crit_edge265:                                   ; preds = %217
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  store i32 0, ptr %35, align 4, !tbaa !44
  br i1 %95, label %.lr.ph267, label %.loopexit

.lr.ph267:                                        ; preds = %._crit_edge265
  %215 = getelementptr inbounds i8, ptr %1, i64 192
  %216 = getelementptr inbounds i8, ptr %1, i64 216
  br label %221

217:                                              ; preds = %.lr.ph264, %217
  %.0201262 = phi i32 [ 0, %.lr.ph264 ], [ %220, %217 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  %218 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %208) #7
  %219 = trunc i64 %218 to i32
  store i32 %219, ptr %34, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %207, ptr noundef nonnull align 4 dereferenceable(4) %34)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  %220 = add nuw nsw i32 %.0201262, 1
  %exitcond.not = icmp eq i32 %220, %91
  br i1 %exitcond.not, label %._crit_edge265, label %217, !llvm.loop !54

221:                                              ; preds = %.lr.ph267, %221
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %215, ptr noundef nonnull align 4 dereferenceable(4) %35)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  store double 1.000000e+00, ptr %36, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %216, ptr noundef nonnull align 8 dereferenceable(8) %36)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  %222 = load i32, ptr %35, align 4, !tbaa !44
  %223 = add nsw i32 %222, 1
  store i32 %223, ptr %35, align 4, !tbaa !44
  %224 = icmp slt i32 %223, %91
  br i1 %224, label %221, label %.loopexit, !llvm.loop !55

.loopexit:                                        ; preds = %221, %._crit_edge265, %._crit_edge265.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  %225 = getelementptr inbounds i8, ptr %1, i64 144
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  %226 = getelementptr inbounds i8, ptr %1, i64 192
  %227 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %226) #7
  %228 = trunc i64 %227 to i32
  store i32 %228, ptr %37, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %225, ptr noundef nonnull align 4 dereferenceable(4) %37)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  %229 = load i32, ptr %7, align 4, !tbaa !44
  %230 = add nsw i32 %229, 1
  %231 = getelementptr inbounds i8, ptr %1, i64 132
  store i32 %230, ptr %231, align 4, !tbaa !56
  %232 = getelementptr inbounds i8, ptr %1, i64 136
  store i32 %91, ptr %232, align 8, !tbaa !57
  call void @_ZN17HighsSparseMatrix13ensureRowwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %99)
  store i32 1, ptr %99, align 8, !tbaa !58
  store i32 %91, ptr %231, align 4, !tbaa !56
  %233 = load i32, ptr %7, align 4, !tbaa !44
  %234 = add nsw i32 %233, 1
  store i32 %234, ptr %232, align 8, !tbaa !57
  %.pre = load i32, ptr %1, align 8, !tbaa !45
  %235 = icmp eq i32 %.pre, %91
  br i1 %235, label %.thread, label %236

236:                                              ; preds = %.loopexit
  call void @__assert_fail(ptr noundef nonnull @.str.240, ptr noundef nonnull @.str.78, i32 noundef 3295, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

.thread:                                          ; preds = %202, %.loopexit
  %237 = add nsw i32 %93, 2
  %238 = getelementptr inbounds i8, ptr %1, i64 4
  store i32 %237, ptr %238, align 4, !tbaa !9
  br i1 %95, label %.lr.ph271, label %._crit_edge274

.lr.ph271:                                        ; preds = %.thread
  %239 = getelementptr inbounds i8, ptr %1, i64 328
  %240 = getelementptr inbounds i8, ptr %1, i64 8
  %241 = getelementptr inbounds i8, ptr %1, i64 32
  %242 = getelementptr inbounds i8, ptr %1, i64 56
  %243 = getelementptr inbounds i8, ptr %1, i64 192
  %244 = getelementptr inbounds i8, ptr %1, i64 216
  %245 = getelementptr inbounds i8, ptr %1, i64 144
  br label %253

.preheader245:                                    ; preds = %263
  br i1 %95, label %.lr.ph273, label %._crit_edge274

.lr.ph273:                                        ; preds = %.preheader245
  %246 = getelementptr inbounds i8, ptr %1, i64 328
  %247 = getelementptr inbounds i8, ptr %1, i64 8
  %248 = getelementptr inbounds i8, ptr %1, i64 32
  %249 = getelementptr inbounds i8, ptr %1, i64 56
  %250 = getelementptr inbounds i8, ptr %1, i64 192
  %251 = getelementptr inbounds i8, ptr %1, i64 216
  %252 = getelementptr inbounds i8, ptr %1, i64 144
  br label %282

253:                                              ; preds = %.lr.ph271, %263
  %.0200269 = phi i32 [ 0, %.lr.ph271 ], [ %268, %263 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, i32 noundef %.0200269) #7
  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.241, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %254 unwind label %269

254:                                              ; preds = %253
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %239, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %255 unwind label %271

255:                                              ; preds = %254
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  store double 0.000000e+00, ptr %40, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %240, ptr noundef nonnull align 8 dereferenceable(8) %40)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  store double 0.000000e+00, ptr %41, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %241, ptr noundef nonnull align 8 dereferenceable(8) %41)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %242, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  %256 = add nuw nsw i32 %.0200269, %91
  store i32 %256, ptr %42, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %243, ptr noundef nonnull align 4 dereferenceable(4) %42)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  store double -1.000000e+00, ptr %43, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 8 dereferenceable(8) %43)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #7
  %257 = add nuw nsw i32 %.0200269, %92
  store i32 %257, ptr %44, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %243, ptr noundef nonnull align 4 dereferenceable(4) %44)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  store double 1.000000e+00, ptr %45, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #7
  %258 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %243) #7
  %259 = trunc i64 %258 to i32
  store i32 %259, ptr %46, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %245, ptr noundef nonnull align 4 dereferenceable(4) %46)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  %260 = load i32, ptr %1, align 8, !tbaa !45
  %261 = add nsw i32 %260, 1
  store i32 %261, ptr %1, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, i32 noundef %.0200269) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull @.str.242, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %262 unwind label %274

262:                                              ; preds = %255
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %239, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %263 unwind label %276

263:                                              ; preds = %262
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #7
  store double 0.000000e+00, ptr %49, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %240, ptr noundef nonnull align 8 dereferenceable(8) %49)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #7
  store double 0.000000e+00, ptr %50, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %241, ptr noundef nonnull align 8 dereferenceable(8) %50)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %242, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #7
  store i32 %256, ptr %51, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %243, ptr noundef nonnull align 4 dereferenceable(4) %51)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #7
  store double 1.000000e+00, ptr %52, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 8 dereferenceable(8) %52)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #7
  store i32 %257, ptr %53, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %243, ptr noundef nonnull align 4 dereferenceable(4) %53)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #7
  store double 1.000000e+00, ptr %54, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 8 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #7
  %264 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %243) #7
  %265 = trunc i64 %264 to i32
  store i32 %265, ptr %55, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %245, ptr noundef nonnull align 4 dereferenceable(4) %55)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #7
  %266 = load i32, ptr %1, align 8, !tbaa !45
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %1, align 8, !tbaa !45
  %268 = add nuw nsw i32 %.0200269, 1
  %exitcond279.not = icmp eq i32 %268, %91
  br i1 %exitcond279.not, label %.preheader245, label %253, !llvm.loop !59

269:                                              ; preds = %253
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %273

271:                                              ; preds = %254
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %273

273:                                              ; preds = %271, %269
  %.pn234 = phi { ptr, i32 } [ %272, %271 ], [ %270, %269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %362

274:                                              ; preds = %255
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %278

276:                                              ; preds = %262
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %278

278:                                              ; preds = %276, %274
  %.pn236 = phi { ptr, i32 } [ %277, %276 ], [ %275, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  br label %362

._crit_edge274:                                   ; preds = %290, %.thread, %.preheader245
  %279 = getelementptr inbounds i8, ptr %1, i64 80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #7
  store double 1.000000e+00, ptr %72, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %279, ptr noundef nonnull align 8 dereferenceable(8) %72)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #7
  %280 = getelementptr inbounds i8, ptr %1, i64 104
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #7
  store double 1.000000e+00, ptr %73, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %280, ptr noundef nonnull align 8 dereferenceable(8) %73)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #7
  %281 = fcmp ogt double %4, 0.000000e+00
  br i1 %281, label %307, label %306

282:                                              ; preds = %.lr.ph273, %290
  %.0199272 = phi i32 [ 0, %.lr.ph273 ], [ %295, %290 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, i32 noundef %.0199272) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull @.str.243, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %283 unwind label %296

283:                                              ; preds = %282
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %246, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %284 unwind label %298

284:                                              ; preds = %283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #7
  store double 0.000000e+00, ptr %58, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %247, ptr noundef nonnull align 8 dereferenceable(8) %58)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #7
  store double 0.000000e+00, ptr %59, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %248, ptr noundef nonnull align 8 dereferenceable(8) %59)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %249, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #7
  store i32 %.0199272, ptr %60, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %250, ptr noundef nonnull align 4 dereferenceable(4) %60)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #7
  store double -1.000000e+00, ptr %61, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef nonnull align 8 dereferenceable(8) %61)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %250, ptr noundef nonnull align 4 dereferenceable(4) %8)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #7
  store double 1.000000e+00, ptr %62, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef nonnull align 8 dereferenceable(8) %62)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %63) #7
  %285 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %250) #7
  %286 = trunc i64 %285 to i32
  store i32 %286, ptr %63, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %252, ptr noundef nonnull align 4 dereferenceable(4) %63)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #7
  %287 = load i32, ptr %1, align 8, !tbaa !45
  %288 = add nsw i32 %287, 1
  store i32 %288, ptr %1, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, i32 noundef %.0199272) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull @.str.244, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %289 unwind label %301

289:                                              ; preds = %284
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %246, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %290 unwind label %303

290:                                              ; preds = %289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #7
  store double 0.000000e+00, ptr %66, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %247, ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #7
  store double 0.000000e+00, ptr %67, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %248, ptr noundef nonnull align 8 dereferenceable(8) %67)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %249, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #7
  store i32 %.0199272, ptr %68, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %250, ptr noundef nonnull align 4 dereferenceable(4) %68)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #7
  store double 1.000000e+00, ptr %69, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef nonnull align 8 dereferenceable(8) %69)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  call void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %250, ptr noundef nonnull align 4 dereferenceable(4) %8)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #7
  store double 1.000000e+00, ptr %70, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef nonnull align 8 dereferenceable(8) %70)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %71) #7
  %291 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %250) #7
  %292 = trunc i64 %291 to i32
  store i32 %292, ptr %71, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %252, ptr noundef nonnull align 4 dereferenceable(4) %71)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #7
  %293 = load i32, ptr %1, align 8, !tbaa !45
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr %1, align 8, !tbaa !45
  %295 = add nuw nsw i32 %.0199272, 1
  %exitcond280.not = icmp eq i32 %295, %91
  br i1 %exitcond280.not, label %._crit_edge274, label %282, !llvm.loop !60

296:                                              ; preds = %282
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

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

300:                                              ; preds = %298, %296
  %.pn229 = phi { ptr, i32 } [ %299, %298 ], [ %297, %296 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  br label %362

301:                                              ; preds = %284
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %305

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

305:                                              ; preds = %303, %301
  %.pn231 = phi { ptr, i32 } [ %304, %303 ], [ %302, %301 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  br label %362

306:                                              ; preds = %._crit_edge274
  call void @__assert_fail(ptr noundef nonnull @.str.245, ptr noundef nonnull @.str.78, i32 noundef 3364, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

307:                                              ; preds = %._crit_edge274
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #7
  store double 0xFFF0000000000000, ptr %74, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %279, ptr noundef nonnull align 8 dereferenceable(8) %74)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %280, ptr noundef nonnull align 8 dereferenceable(8) %6)
  %308 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %279) #7
  %309 = trunc i64 %308 to i32
  %310 = load i32, ptr %238, align 4, !tbaa !9
  %311 = icmp eq i32 %310, %309
  br i1 %311, label %313, label %312

312:                                              ; preds = %307
  call void @__assert_fail(ptr noundef nonnull @.str.246, ptr noundef nonnull @.str.78, i32 noundef 3368, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

313:                                              ; preds = %307
  %314 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %280) #7
  %315 = trunc i64 %314 to i32
  %316 = load i32, ptr %238, align 4, !tbaa !9
  %317 = icmp eq i32 %316, %315
  br i1 %317, label %.preheader, label %325

.preheader:                                       ; preds = %313
  br i1 %95, label %.lr.ph276, label %.preheader.._crit_edge277_crit_edge

.preheader.._crit_edge277_crit_edge:              ; preds = %.preheader
  %.pre282 = load i32, ptr %1, align 8, !tbaa !45
  br label %._crit_edge277

.lr.ph276:                                        ; preds = %.preheader
  %318 = getelementptr inbounds i8, ptr %1, i64 328
  %319 = getelementptr inbounds i8, ptr %1, i64 8
  %320 = getelementptr inbounds i8, ptr %1, i64 32
  %321 = getelementptr inbounds i8, ptr %1, i64 56
  %322 = getelementptr inbounds i8, ptr %1, i64 192
  %323 = getelementptr inbounds i8, ptr %1, i64 216
  %324 = getelementptr inbounds i8, ptr %1, i64 144
  br label %329

325:                                              ; preds = %313
  call void @__assert_fail(ptr noundef nonnull @.str.247, ptr noundef nonnull @.str.78, i32 noundef 3370, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

._crit_edge277:                                   ; preds = %338, %.preheader.._crit_edge277_crit_edge
  %326 = phi i32 [ %.pre282, %.preheader.._crit_edge277_crit_edge ], [ %342, %338 ]
  %327 = mul nsw i32 %91, 7
  %328 = icmp eq i32 %326, %327
  br i1 %328, label %355, label %354

329:                                              ; preds = %.lr.ph276, %338
  %.0275 = phi i32 [ 0, %.lr.ph276 ], [ %343, %338 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, i32 noundef %.0275) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull @.str.248, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %330 unwind label %344

330:                                              ; preds = %329
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %318, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %331 unwind label %346

331:                                              ; preds = %330
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #7
  store double 1.000000e+00, ptr %77, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %319, ptr noundef nonnull align 8 dereferenceable(8) %77)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #7
  store double 0.000000e+00, ptr %78, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %320, ptr noundef nonnull align 8 dereferenceable(8) %78)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %321, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %79) #7
  %332 = add nuw nsw i32 %.0275, %92
  store i32 %332, ptr %79, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %322, ptr noundef nonnull align 4 dereferenceable(4) %79)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #7
  store double -1.000000e+00, ptr %80, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %323, ptr noundef nonnull align 8 dereferenceable(8) %80)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %81) #7
  %333 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %322) #7
  %334 = trunc i64 %333 to i32
  store i32 %334, ptr %81, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %324, ptr noundef nonnull align 4 dereferenceable(4) %81)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #7
  %335 = load i32, ptr %1, align 8, !tbaa !45
  %336 = add nsw i32 %335, 1
  store i32 %336, ptr %1, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, i32 noundef %.0275) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %337 unwind label %349

337:                                              ; preds = %331
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %318, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %338 unwind label %351

338:                                              ; preds = %337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #7
  store double 1.000000e+00, ptr %84, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %319, ptr noundef nonnull align 8 dereferenceable(8) %84)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #7
  store double 0.000000e+00, ptr %85, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %320, ptr noundef nonnull align 8 dereferenceable(8) %85)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #7
  call void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %321, ptr noundef nonnull align 8 dereferenceable(8) @_ZL9kHighsInf)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %86) #7
  store i32 %332, ptr %86, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %322, ptr noundef nonnull align 4 dereferenceable(4) %86)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #7
  store double 1.000000e+00, ptr %87, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %323, ptr noundef nonnull align 8 dereferenceable(8) %87)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %88) #7
  %339 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %322) #7
  %340 = trunc i64 %339 to i32
  store i32 %340, ptr %88, align 4, !tbaa !44
  call void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %324, ptr noundef nonnull align 4 dereferenceable(4) %88)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #7
  %341 = load i32, ptr %1, align 8, !tbaa !45
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr %1, align 8, !tbaa !45
  %343 = add nuw nsw i32 %.0275, 1
  %exitcond281.not = icmp eq i32 %343, %91
  br i1 %exitcond281.not, label %._crit_edge277, label %329, !llvm.loop !61

344:                                              ; preds = %329
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %348

346:                                              ; preds = %330
  %347 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %348

348:                                              ; preds = %346, %344
  %.pn = phi { ptr, i32 } [ %347, %346 ], [ %345, %344 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  br label %362

349:                                              ; preds = %331
  %350 = landingpad { ptr, i32 }
          cleanup
  br label %353

351:                                              ; preds = %337
  %352 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %353

353:                                              ; preds = %351, %349
  %.pn226 = phi { ptr, i32 } [ %352, %351 ], [ %350, %349 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  br label %362

354:                                              ; preds = %._crit_edge277
  call void @__assert_fail(ptr noundef nonnull @.str.250, ptr noundef nonnull @.str.78, i32 noundef 3398, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

355:                                              ; preds = %._crit_edge277
  %356 = load i32, ptr %238, align 4, !tbaa !9
  %357 = icmp eq i32 %356, %237
  br i1 %357, label %359, label %358

358:                                              ; preds = %355
  call void @__assert_fail(ptr noundef nonnull @.str.251, ptr noundef nonnull @.str.78, i32 noundef 3399, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs22formIllConditioningLp1ER7HighsLpRSt6vectorIiSaIiEEbd) #8
  unreachable

359:                                              ; preds = %355
  %360 = getelementptr inbounds i8, ptr %1, i64 132
  store i32 %326, ptr %360, align 4, !tbaa !56
  %361 = getelementptr inbounds i8, ptr %1, i64 136
  store i32 %237, ptr %361, align 8, !tbaa !57
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  ret void

362:                                              ; preds = %348, %353, %300, %305, %273, %278, %191, %148
  %.pn242.pn = phi { ptr, i32 } [ %.pn242, %148 ], [ %.pn239, %191 ], [ %.pn236, %278 ], [ %.pn234, %273 ], [ %.pn231, %305 ], [ %.pn229, %300 ], [ %.pn226, %353 ], [ %.pn, %348 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  resume { ptr, i32 } %.pn242.pn
}

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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { 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 #6 = { 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 #7 = { nounwind }
attributes #8 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !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, !6, i64 248, !24, i64 256, !24, i64 288, !11, i64 320, !11, i64 324, !27, i64 328, !27, i64 352, !31, i64 376, !35, i64 400, !35, i64 456, !11, i64 512, !11, i64 516, !41, i64 520, !42, i64 592, !42, i64 593, !11, i64 596, !42, i64 600, !43, 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 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !26, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !16, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!31 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!35 = !{!"_ZTS13HighsNameHash", !36, i64 0}
!36 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !37, i64 0}
!37 = !{!"_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, !26, i64 8, !38, i64 16, !26, i64 24, !39, i64 32, !16, i64 48}
!38 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !16, i64 0}
!39 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !40, i64 0, !26, i64 8}
!40 = !{!"float", !7, i64 0}
!41 = !{!"_ZTS10HighsScale", !11, i64 0, !42, i64 4, !11, i64 8, !11, i64 12, !6, i64 16, !12, i64 24, !12, i64 48}
!42 = !{!"bool", !7, i64 0}
!43 = !{!"_ZTS11HighsLpMods", !19, i64 0, !19, i64 24, !12, i64 48, !12, i64 72, !31, 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}
!44 = !{!11, !11, i64 0}
!45 = !{!10, !11, i64 0}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = !{!49, !49, i64 0}
!49 = !{!"_ZTS16HighsBasisStatus", !7, i64 0}
!50 = distinct !{!50, !47}
!51 = distinct !{!51, !47}
!52 = distinct !{!52, !47}
!53 = distinct !{!53, !47}
!54 = distinct !{!54, !47}
!55 = distinct !{!55, !47}
!56 = !{!17, !11, i64 4}
!57 = !{!17, !11, i64 8}
!58 = !{!17, !18, i64 0}
!59 = distinct !{!59, !47}
!60 = distinct !{!60, !47}
!61 = distinct !{!61, !47}


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