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

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

%struct.HighsIndexCollection = type { i32, i8, i32, i32, i8, i32, %"class.std::vector.13", i8, %"class.std::vector.13" }
%"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.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.std::allocator.0" = type { i8 }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"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::__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.std::allocator" = type { i8 }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%"class.std::allocator.15" = type { 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.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::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 }
%"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.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.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [51 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Highs16addRowsInterfaceEiPKdS1_iPKiS3_S1_ = external hidden unnamed_addr constant [140 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; 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 uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

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

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

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

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

declare void @_ZN17HighsSparseMatrix7addRowsES_PKa(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #6 align 2

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

declare noundef zeroext i1 @_Z16isMatrixDataNullRK15HighsLogOptionsPKiS3_PKd(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN20HighsIndexCollectionC2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #6 align 2

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

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

declare noundef i32 @_Z19interpretCallStatus15HighsLogOptions11HighsStatusS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN15HighsLogOptionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #6 align 2

declare noundef i32 @_Z12assessBoundsRK12HighsOptionsPKciRK20HighsIndexCollectionRSt6vectorIdSaIdEESA_dPK12HighsVarType(ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), double noundef, ptr noundef) #3

declare noundef zeroext i1 @_Z12boundScaleOkRKSt6vectorIdSaIdEES3_id(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, double noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef, i32 noundef) #6

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

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

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

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

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

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

declare noundef i32 @_ZN17HighsSparseMatrix6assessERK15HighsLogOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(89), ptr noundef, double noundef, double noundef) #3

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

declare noundef zeroext i1 @_Z14lpDimensionsOkNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK7HighsLpRK15HighsLogOptions(ptr noundef, ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(89)) #3

declare void @_ZN5Highs36invalidateModelStatusSolutionAndInfoEv(ptr noundef nonnull align 8 dereferenceable(20928)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN20HighsIndexCollectionD2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN5Highs16addRowsInterfaceEiPKdS1_iPKiS3_S1_(ptr noundef nonnull align 8 dereferenceable(20928) %0, i32 noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #2 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca %struct.HighsIndexCollection, align 8
  %28 = alloca %"class.std::vector", align 8
  %29 = alloca %"class.std::allocator.0", align 1
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca %"class.std::vector", align 8
  %33 = alloca %"class.std::allocator.0", align 1
  %34 = alloca %struct.HighsLogOptions, align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca double, align 8
  %38 = alloca i32, align 4
  %39 = alloca %class.HighsSparseMatrix, align 8
  %40 = alloca %"class.std::vector.13", align 8
  %41 = alloca %"class.std::allocator.15", align 1
  %42 = alloca %"class.std::vector.13", align 8
  %43 = alloca %"class.std::allocator.15", align 1
  %44 = alloca %"class.std::vector", align 8
  %45 = alloca %"class.std::allocator.0", align 1
  %46 = alloca %struct.HighsLogOptions, align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca i32, align 4
  %52 = alloca %class.HighsSparseMatrix, align 8
  %53 = alloca i32, align 4
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  store ptr %0, ptr %10, align 8, !tbaa !5
  store i32 %1, ptr %11, align 4, !tbaa !9
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store i32 %4, ptr %14, align 4, !tbaa !9
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  %58 = load ptr, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 0, ptr %18, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %59 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 9
  store ptr %59, ptr %19, align 8, !tbaa !5
  %60 = load i32, ptr %11, align 4, !tbaa !9
  %61 = icmp slt i32 %60, 0
  br i1 %61, label %62, label %63

62:                                               ; preds = %8
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %466

63:                                               ; preds = %8
  %64 = load i32, ptr %14, align 4, !tbaa !9
  %65 = icmp slt i32 %64, 0
  br i1 %65, label %66, label %67

66:                                               ; preds = %63
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %466

67:                                               ; preds = %63
  %68 = load i32, ptr %11, align 4, !tbaa !9
  %69 = icmp eq i32 %68, 0
  br i1 %69, label %70, label %71

70:                                               ; preds = %67
  store i32 0, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %466

71:                                               ; preds = %67
  %72 = load i32, ptr %11, align 4, !tbaa !9
  %73 = icmp sgt i32 %72, 0
  br i1 %73, label %74, label %82

74:                                               ; preds = %71
  %75 = load ptr, ptr %19, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %75, i32 0, i32 130
  %77 = load ptr, ptr %12, align 8, !tbaa !5
  %78 = load ptr, ptr %13, align 8, !tbaa !5
  %79 = call noundef zeroext i1 @_Z13isRowDataNullRK15HighsLogOptionsPKdS3_(ptr noundef nonnull align 8 dereferenceable(89) %76, ptr noundef %77, ptr noundef %78)
  br i1 %79, label %80, label %81

80:                                               ; preds = %74
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %466

81:                                               ; preds = %74
  br label %82

82:                                               ; preds = %81, %71
  %83 = load i32, ptr %14, align 4, !tbaa !9
  %84 = icmp sgt i32 %83, 0
  br i1 %84, label %85, label %94

85:                                               ; preds = %82
  %86 = load ptr, ptr %19, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %86, i32 0, i32 130
  %88 = load ptr, ptr %15, align 8, !tbaa !5
  %89 = load ptr, ptr %16, align 8, !tbaa !5
  %90 = load ptr, ptr %17, align 8, !tbaa !5
  %91 = call noundef zeroext i1 @_Z16isMatrixDataNullRK15HighsLogOptionsPKiS3_PKd(ptr noundef nonnull align 8 dereferenceable(89) %87, ptr noundef %88, ptr noundef %89, ptr noundef %90)
  br i1 %91, label %92, label %93

92:                                               ; preds = %85
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %466

93:                                               ; preds = %85
  br label %94

94:                                               ; preds = %93, %82
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %95 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 4
  %96 = getelementptr inbounds %class.HighsModel, ptr %95, i32 0, i32 0
  store ptr %96, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %97 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 2
  store ptr %97, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %98 = load ptr, ptr %21, align 8, !tbaa !5
  %99 = getelementptr inbounds %class.HighsLp, ptr %98, i32 0, i32 21
  store ptr %99, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %100 = load ptr, ptr %22, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.HighsBasis, ptr %100, i32 0, i32 2
  store ptr %101, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %102 = load ptr, ptr %21, align 8, !tbaa !5
  %103 = getelementptr inbounds %class.HighsLp, ptr %102, i32 0, i32 21
  %104 = getelementptr inbounds %struct.HighsScale, ptr %103, i32 0, i32 1
  store ptr %104, ptr %25, align 8, !tbaa !5
  %105 = load ptr, ptr %21, align 8, !tbaa !5
  %106 = getelementptr inbounds %class.HighsLp, ptr %105, i32 0, i32 0
  %107 = load i32, ptr %106, align 8, !tbaa !13
  %108 = icmp sle i32 %107, 0
  br i1 %108, label %109, label %113

109:                                              ; preds = %94
  %110 = load i32, ptr %14, align 4, !tbaa !9
  %111 = icmp sgt i32 %110, 0
  br i1 %111, label %112, label %113

112:                                              ; preds = %109
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %465

113:                                              ; preds = %109, %94
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %114 = load ptr, ptr %21, align 8, !tbaa !5
  %115 = getelementptr inbounds %class.HighsLp, ptr %114, i32 0, i32 1
  %116 = load i32, ptr %115, align 4, !tbaa !47
  %117 = load i32, ptr %11, align 4, !tbaa !9
  %118 = add nsw i32 %116, %117
  store i32 %118, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %27) #7
  call void @_ZN20HighsIndexCollectionC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %27) #7
  %119 = load i32, ptr %11, align 4, !tbaa !9
  %120 = getelementptr inbounds %struct.HighsIndexCollection, ptr %27, i32 0, i32 0
  store i32 %119, ptr %120, align 8, !tbaa !48
  %121 = getelementptr inbounds %struct.HighsIndexCollection, ptr %27, i32 0, i32 1
  store i8 1, ptr %121, align 4, !tbaa !50
  %122 = getelementptr inbounds %struct.HighsIndexCollection, ptr %27, i32 0, i32 2
  store i32 0, ptr %122, align 8, !tbaa !51
  %123 = load i32, ptr %11, align 4, !tbaa !9
  %124 = sub nsw i32 %123, 1
  %125 = getelementptr inbounds %struct.HighsIndexCollection, ptr %27, i32 0, i32 3
  store i32 %124, ptr %125, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #7
  %126 = load ptr, ptr %12, align 8, !tbaa !5
  %127 = load ptr, ptr %12, align 8, !tbaa !5
  %128 = load i32, ptr %11, align 4, !tbaa !9
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds double, ptr %127, i64 %129
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2IPKdvEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef %126, ptr noundef %130, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %131 unwind label %158

131:                                              ; preds = %113
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #7
  %132 = load ptr, ptr %13, align 8, !tbaa !5
  %133 = load ptr, ptr %13, align 8, !tbaa !5
  %134 = load i32, ptr %11, align 4, !tbaa !9
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds double, ptr %133, i64 %135
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2IPKdvEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef %132, ptr noundef %136, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %137 unwind label %162

137:                                              ; preds = %131
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  %138 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 9
  %139 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %138, i32 0, i32 130
  invoke void @_ZN15HighsLogOptionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(89) %34, ptr noundef nonnull align 8 dereferenceable(89) %139)
          to label %140 unwind label %166

140:                                              ; preds = %137
  %141 = load ptr, ptr %19, align 8, !tbaa !5
  %142 = load ptr, ptr %21, align 8, !tbaa !5
  %143 = getelementptr inbounds %class.HighsLp, ptr %142, i32 0, i32 1
  %144 = load i32, ptr %143, align 4, !tbaa !47
  %145 = load ptr, ptr %19, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %145, i32 0, i32 11
  %147 = load double, ptr %146, align 8, !tbaa !53
  %148 = invoke noundef i32 @_Z12assessBoundsRK12HighsOptionsPKciRK20HighsIndexCollectionRSt6vectorIdSaIdEESA_dPK12HighsVarType(ptr noundef nonnull align 8 dereferenceable(1020) %141, ptr noundef @.str.97, i32 noundef %144, ptr noundef nonnull align 8 dereferenceable(80) %27, ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %32, double noundef %147, ptr noundef null)
          to label %149 unwind label %170

149:                                              ; preds = %140
  %150 = load i32, ptr %18, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %151 unwind label %174

151:                                              ; preds = %149
  %152 = invoke noundef i32 @_Z19interpretCallStatus15HighsLogOptions11HighsStatusS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %34, i32 noundef %148, i32 noundef %150, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %153 unwind label %178

153:                                              ; preds = %151
  store i32 %152, ptr %18, align 4, !tbaa !11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %34) #7
  %154 = load i32, ptr %18, align 4, !tbaa !11
  %155 = icmp eq i32 %154, -1
  br i1 %155, label %156, label %184

156:                                              ; preds = %153
  %157 = load i32, ptr %18, align 4, !tbaa !11
  store i32 %157, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %461

158:                                              ; preds = %113
  %159 = landingpad { ptr, i32 }
          cleanup
  %160 = extractvalue { ptr, i32 } %159, 0
  store ptr %160, ptr %30, align 8
  %161 = extractvalue { ptr, i32 } %159, 1
  store i32 %161, ptr %31, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  br label %464

162:                                              ; preds = %131
  %163 = landingpad { ptr, i32 }
          cleanup
  %164 = extractvalue { ptr, i32 } %163, 0
  store ptr %164, ptr %30, align 8
  %165 = extractvalue { ptr, i32 } %163, 1
  store i32 %165, ptr %31, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  br label %463

166:                                              ; preds = %234, %198, %189, %137
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %30, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %31, align 4
  br label %462

170:                                              ; preds = %140
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %30, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %31, align 4
  br label %183

174:                                              ; preds = %149
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %30, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %31, align 4
  br label %182

178:                                              ; preds = %151
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %30, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %182

182:                                              ; preds = %178, %174
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  br label %183

183:                                              ; preds = %182, %170
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %34) #7
  br label %462

184:                                              ; preds = %153
  %185 = load ptr, ptr %21, align 8, !tbaa !5
  %186 = getelementptr inbounds %class.HighsLp, ptr %185, i32 0, i32 19
  %187 = load i32, ptr %186, align 8, !tbaa !58
  %188 = icmp ne i32 %187, 0
  br i1 %188, label %189, label %234

189:                                              ; preds = %184
  %190 = load ptr, ptr %21, align 8, !tbaa !5
  %191 = getelementptr inbounds %class.HighsLp, ptr %190, i32 0, i32 19
  %192 = load i32, ptr %191, align 8, !tbaa !58
  %193 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 9
  %194 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %193, i32 0, i32 11
  %195 = load double, ptr %194, align 8, !tbaa !53
  %196 = invoke noundef zeroext i1 @_Z12boundScaleOkRKSt6vectorIdSaIdEES3_id(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %32, i32 noundef %192, double noundef %195)
          to label %197 unwind label %166

197:                                              ; preds = %189
  br i1 %196, label %202, label %198

198:                                              ; preds = %197
  %199 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 9
  %200 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %199, i32 0, i32 130
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %200, i32 noundef 5, ptr noundef @.str.90)
          to label %201 unwind label %166

201:                                              ; preds = %198
  store i32 -1, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %461

202:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %203 = load ptr, ptr %21, align 8, !tbaa !5
  %204 = getelementptr inbounds %class.HighsLp, ptr %203, i32 0, i32 19
  %205 = load i32, ptr %204, align 8, !tbaa !58
  %206 = invoke noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef 2, i32 noundef %205)
          to label %207 unwind label %213

207:                                              ; preds = %202
  store double %206, ptr %37, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %208

208:                                              ; preds = %230, %207
  %209 = load i32, ptr %38, align 4, !tbaa !9
  %210 = load i32, ptr %11, align 4, !tbaa !9
  %211 = icmp slt i32 %209, %210
  br i1 %211, label %217, label %212

212:                                              ; preds = %208
  store i32 2, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %233

213:                                              ; preds = %202
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %30, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %462

217:                                              ; preds = %208
  %218 = load double, ptr %37, align 8, !tbaa !59
  %219 = load i32, ptr %38, align 4, !tbaa !9
  %220 = sext i32 %219 to i64
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %220) #7
  %222 = load double, ptr %221, align 8, !tbaa !59
  %223 = fmul double %222, %218
  store double %223, ptr %221, align 8, !tbaa !59
  %224 = load double, ptr %37, align 8, !tbaa !59
  %225 = load i32, ptr %38, align 4, !tbaa !9
  %226 = sext i32 %225 to i64
  %227 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %226) #7
  %228 = load double, ptr %227, align 8, !tbaa !59
  %229 = fmul double %228, %224
  store double %229, ptr %227, align 8, !tbaa !59
  br label %230

230:                                              ; preds = %217
  %231 = load i32, ptr %38, align 4, !tbaa !9
  %232 = add nsw i32 %231, 1
  store i32 %232, ptr %38, align 4, !tbaa !9
  br label %208, !llvm.loop !60

233:                                              ; preds = %212
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %234

234:                                              ; preds = %233, %184
  %235 = load ptr, ptr %21, align 8, !tbaa !5
  %236 = load i32, ptr %11, align 4, !tbaa !9
  invoke void @_Z21appendRowsToLpVectorsR7HighsLpiRKSt6vectorIdSaIdEES5_(ptr noundef nonnull align 8 dereferenceable(920) %235, i32 noundef %236, ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %237 unwind label %166

237:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 112, ptr %39) #7
  invoke void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %39)
          to label %238 unwind label %305

238:                                              ; preds = %237
  %239 = load ptr, ptr %21, align 8, !tbaa !5
  %240 = getelementptr inbounds %class.HighsLp, ptr %239, i32 0, i32 0
  %241 = load i32, ptr %240, align 8, !tbaa !13
  %242 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 1
  store i32 %241, ptr %242, align 4, !tbaa !62
  %243 = load i32, ptr %11, align 4, !tbaa !9
  %244 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 2
  store i32 %243, ptr %244, align 8, !tbaa !63
  %245 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 0
  store i32 2, ptr %245, align 8, !tbaa !64
  %246 = load i32, ptr %14, align 4, !tbaa !9
  %247 = icmp ne i32 %246, 0
  br i1 %247, label %248, label %345

248:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #7
  %249 = load ptr, ptr %15, align 8, !tbaa !5
  %250 = load ptr, ptr %15, align 8, !tbaa !5
  %251 = load i32, ptr %11, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds i32, ptr %250, i64 %252
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2IPKivEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef %249, ptr noundef %253, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %254 unwind label %309

254:                                              ; preds = %248
  %255 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 3
  %256 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %255, ptr noundef nonnull align 8 dereferenceable(24) %40) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #7
  %257 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 3
  %258 = load i32, ptr %11, align 4, !tbaa !9
  %259 = add nsw i32 %258, 1
  %260 = sext i32 %259 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %257, i64 noundef %260)
          to label %261 unwind label %313

261:                                              ; preds = %254
  %262 = load i32, ptr %14, align 4, !tbaa !9
  %263 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 3
  %264 = load i32, ptr %11, align 4, !tbaa !9
  %265 = sext i32 %264 to i64
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %263, i64 noundef %265) #7
  store i32 %262, ptr %266, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #7
  %267 = load ptr, ptr %16, align 8, !tbaa !5
  %268 = load ptr, ptr %16, align 8, !tbaa !5
  %269 = load i32, ptr %14, align 4, !tbaa !9
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds i32, ptr %268, i64 %270
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2IPKivEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef %267, ptr noundef %271, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %272 unwind label %317

272:                                              ; preds = %261
  %273 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 5
  %274 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %273, ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #7
  %275 = load ptr, ptr %17, align 8, !tbaa !5
  %276 = load ptr, ptr %17, align 8, !tbaa !5
  %277 = load i32, ptr %14, align 4, !tbaa !9
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds double, ptr %276, i64 %278
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2IPKdvEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef %275, ptr noundef %279, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %280 unwind label %321

280:                                              ; preds = %272
  %281 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 6
  %282 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %281, ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #7
  %283 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 9
  %284 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %283, i32 0, i32 130
  invoke void @_ZN15HighsLogOptionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(89) %46, ptr noundef nonnull align 8 dereferenceable(89) %284)
          to label %285 unwind label %313

285:                                              ; preds = %280
  %286 = load ptr, ptr %19, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %286, i32 0, i32 130
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %288 unwind label %325

288:                                              ; preds = %285
  %289 = load ptr, ptr %19, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %289, i32 0, i32 12
  %291 = load double, ptr %290, align 8, !tbaa !65
  %292 = load ptr, ptr %19, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %292, i32 0, i32 13
  %294 = load double, ptr %293, align 8, !tbaa !66
  %295 = invoke noundef i32 @_ZN17HighsSparseMatrix6assessERK15HighsLogOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(112) %39, ptr noundef nonnull align 8 dereferenceable(89) %287, ptr noundef %47, double noundef %291, double noundef %294)
          to label %296 unwind label %329

296:                                              ; preds = %288
  %297 = load i32, ptr %18, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %298 unwind label %333

298:                                              ; preds = %296
  %299 = invoke noundef i32 @_Z19interpretCallStatus15HighsLogOptions11HighsStatusS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %46, i32 noundef %295, i32 noundef %297, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %300 unwind label %337

300:                                              ; preds = %298
  store i32 %299, ptr %18, align 4, !tbaa !11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %46) #7
  %301 = load i32, ptr %18, align 4, !tbaa !11
  %302 = icmp eq i32 %301, -1
  br i1 %302, label %303, label %344

303:                                              ; preds = %300
  %304 = load i32, ptr %18, align 4, !tbaa !11
  store i32 %304, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %458

305:                                              ; preds = %237
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %30, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %31, align 4
  br label %460

309:                                              ; preds = %248
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %30, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %31, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #7
  br label %459

313:                                              ; preds = %452, %451, %412, %396, %391, %363, %355, %280, %254
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %30, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %31, align 4
  br label %459

317:                                              ; preds = %261
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %30, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %31, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  br label %459

321:                                              ; preds = %272
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %30, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %31, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #7
  br label %459

325:                                              ; preds = %285
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %30, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %31, align 4
  br label %343

329:                                              ; preds = %288
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %30, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %31, align 4
  br label %342

333:                                              ; preds = %296
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %30, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %31, align 4
  br label %341

337:                                              ; preds = %298
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %30, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %341

341:                                              ; preds = %337, %333
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  br label %342

342:                                              ; preds = %341, %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %343

343:                                              ; preds = %342, %325
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %46) #7
  br label %459

344:                                              ; preds = %300
  br label %355

345:                                              ; preds = %238
  %346 = getelementptr inbounds %class.HighsSparseMatrix, ptr %39, i32 0, i32 3
  %347 = load i32, ptr %11, align 4, !tbaa !9
  %348 = add nsw i32 %347, 1
  %349 = sext i32 %348 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 0, ptr %51, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %346, i64 noundef %349, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %350 unwind label %351

350:                                              ; preds = %345
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %355

351:                                              ; preds = %345
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %30, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %459

355:                                              ; preds = %350, %344
  %356 = load ptr, ptr %21, align 8, !tbaa !5
  %357 = getelementptr inbounds %class.HighsLp, ptr %356, i32 0, i32 7
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %52, ptr noundef nonnull align 8 dereferenceable(112) %39)
          to label %358 unwind label %313

358:                                              ; preds = %355
  invoke void @_ZN17HighsSparseMatrix7addRowsES_PKa(ptr noundef nonnull align 8 dereferenceable(112) %357, ptr noundef %52, ptr noundef null)
          to label %359 unwind label %374

359:                                              ; preds = %358
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %52) #7
  %360 = load ptr, ptr %25, align 8, !tbaa !5
  %361 = load i8, ptr %360, align 1, !tbaa !67, !range !68, !noundef !69
  %362 = trunc i8 %361 to i1
  br i1 %362, label %363, label %408

363:                                              ; preds = %359
  %364 = load ptr, ptr %23, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.HighsScale, ptr %364, i32 0, i32 6
  %366 = load i32, ptr %26, align 4, !tbaa !9
  %367 = sext i32 %366 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %365, i64 noundef %367)
          to label %368 unwind label %313

368:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %369

369:                                              ; preds = %388, %368
  %370 = load i32, ptr %53, align 4, !tbaa !9
  %371 = load i32, ptr %11, align 4, !tbaa !9
  %372 = icmp slt i32 %370, %371
  br i1 %372, label %378, label %373

373:                                              ; preds = %369
  store i32 5, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %391

374:                                              ; preds = %358
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %30, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %31, align 4
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %52) #7
  br label %459

378:                                              ; preds = %369
  %379 = load ptr, ptr %23, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.HighsScale, ptr %379, i32 0, i32 6
  %381 = load ptr, ptr %21, align 8, !tbaa !5
  %382 = getelementptr inbounds %class.HighsLp, ptr %381, i32 0, i32 1
  %383 = load i32, ptr %382, align 4, !tbaa !47
  %384 = load i32, ptr %53, align 4, !tbaa !9
  %385 = add nsw i32 %383, %384
  %386 = sext i32 %385 to i64
  %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %380, i64 noundef %386) #7
  store double 1.000000e+00, ptr %387, align 8, !tbaa !59
  br label %388

388:                                              ; preds = %378
  %389 = load i32, ptr %53, align 4, !tbaa !9
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %53, align 4, !tbaa !9
  br label %369, !llvm.loop !70

391:                                              ; preds = %373
  %392 = load i32, ptr %26, align 4, !tbaa !9
  %393 = load ptr, ptr %23, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.HighsScale, ptr %393, i32 0, i32 3
  store i32 %392, ptr %394, align 4, !tbaa !71
  %395 = load ptr, ptr %23, align 8, !tbaa !5
  invoke void @_ZN17HighsSparseMatrix13applyColScaleERK10HighsScale(ptr noundef nonnull align 8 dereferenceable(112) %39, ptr noundef nonnull align 8 dereferenceable(72) %395)
          to label %396 unwind label %313

396:                                              ; preds = %391
  %397 = load ptr, ptr %19, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %397, i32 0, i32 65
  %399 = load i32, ptr %398, align 4, !tbaa !72
  %400 = load ptr, ptr %23, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.HighsScale, ptr %400, i32 0, i32 6
  %402 = load ptr, ptr %21, align 8, !tbaa !5
  %403 = getelementptr inbounds %class.HighsLp, ptr %402, i32 0, i32 1
  %404 = load i32, ptr %403, align 4, !tbaa !47
  %405 = sext i32 %404 to i64
  %406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %401, i64 noundef %405) #7
  invoke void @_ZN17HighsSparseMatrix18considerRowScalingEiPd(ptr noundef nonnull align 8 dereferenceable(112) %39, i32 noundef %399, ptr noundef %406)
          to label %407 unwind label %313

407:                                              ; preds = %396
  br label %408

408:                                              ; preds = %407, %359
  %409 = load ptr, ptr %24, align 8, !tbaa !5
  %410 = load i8, ptr %409, align 1, !tbaa !67, !range !68, !noundef !69
  %411 = trunc i8 %410 to i1
  br i1 %411, label %412, label %415

412:                                              ; preds = %408
  %413 = load i32, ptr %11, align 4, !tbaa !9
  invoke void @_ZN5Highs31appendBasicRowsToBasisInterfaceEi(ptr noundef nonnull align 8 dereferenceable(20928) %58, i32 noundef %413)
          to label %414 unwind label %313

414:                                              ; preds = %412
  br label %415

415:                                              ; preds = %414, %408
  %416 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %417 unwind label %433

417:                                              ; preds = %415
  %418 = load i32, ptr %11, align 4, !tbaa !9
  invoke void @_ZN7HighsLp11addRowNamesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(920) %416, ptr noundef %54, i32 noundef %418)
          to label %419 unwind label %437

419:                                              ; preds = %417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  %420 = load i32, ptr %11, align 4, !tbaa !9
  %421 = load ptr, ptr %21, align 8, !tbaa !5
  %422 = getelementptr inbounds %class.HighsLp, ptr %421, i32 0, i32 1
  %423 = load i32, ptr %422, align 4, !tbaa !47
  %424 = add nsw i32 %423, %420
  store i32 %424, ptr %422, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.98, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %425 unwind label %442

425:                                              ; preds = %419
  %426 = load ptr, ptr %21, align 8, !tbaa !5
  %427 = load ptr, ptr %19, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %427, i32 0, i32 130
  %429 = invoke noundef zeroext i1 @_Z14lpDimensionsOkNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK7HighsLpRK15HighsLogOptions(ptr noundef %56, ptr noundef nonnull align 8 dereferenceable(920) %426, ptr noundef nonnull align 8 dereferenceable(89) %428)
          to label %430 unwind label %446

430:                                              ; preds = %425
  br i1 %429, label %431, label %432

431:                                              ; preds = %430
  br label %451

432:                                              ; preds = %430
  call void @__assert_fail(ptr noundef @.str.99, ptr noundef @.str.78, i32 noundef 664, ptr noundef @__PRETTY_FUNCTION__._ZN5Highs16addRowsInterfaceEiPKdS1_iPKiS3_S1_) #8
  unreachable

433:                                              ; preds = %415
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %30, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %31, align 4
  br label %441

437:                                              ; preds = %417
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %30, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %441

441:                                              ; preds = %437, %433
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  br label %459

442:                                              ; preds = %419
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %30, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %31, align 4
  br label %457

446:                                              ; preds = %425
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %30, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %457

450:                                              ; No predecessors!
  br label %451

451:                                              ; preds = %450, %431
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #7
  invoke void @_ZN5Highs36invalidateModelStatusSolutionAndInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %58)
          to label %452 unwind label %313

452:                                              ; preds = %451
  %453 = getelementptr inbounds %class.Highs, ptr %58, i32 0, i32 21
  %454 = load ptr, ptr %21, align 8, !tbaa !5
  invoke void @_ZN4HEkk7addRowsERK7HighsLpRK17HighsSparseMatrix(ptr noundef nonnull align 8 dereferenceable(14568) %453, ptr noundef nonnull align 8 dereferenceable(920) %454, ptr noundef nonnull align 8 dereferenceable(112) %39)
          to label %455 unwind label %313

455:                                              ; preds = %452
  %456 = load i32, ptr %18, align 4, !tbaa !11
  store i32 %456, ptr %9, align 4
  store i32 1, ptr %20, align 4
  br label %458

457:                                              ; preds = %446, %442
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #7
  br label %459

458:                                              ; preds = %455, %303
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %39) #7
  call void @llvm.lifetime.end.p0(i64 112, ptr %39) #7
  br label %461

459:                                              ; preds = %457, %441, %374, %351, %343, %321, %317, %313, %309
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %39) #7
  br label %460

460:                                              ; preds = %459, %305
  call void @llvm.lifetime.end.p0(i64 112, ptr %39) #7
  br label %462

461:                                              ; preds = %458, %201, %156
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  call void @_ZN20HighsIndexCollectionD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %27) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %465

462:                                              ; preds = %460, %213, %183, %166
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  br label %463

463:                                              ; preds = %462, %162
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  br label %464

464:                                              ; preds = %463, %158
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  call void @_ZN20HighsIndexCollectionD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %27) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  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 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %468

465:                                              ; preds = %461, %112
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %466

466:                                              ; preds = %465, %92, %80, %70, %66, %62
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  %467 = load i32, ptr %9, align 4
  ret i32 %467

468:                                              ; preds = %464
  %469 = load ptr, ptr %30, align 8
  %470 = load i32, ptr %31, align 4
  %471 = insertvalue { ptr, i32 } poison, ptr %469, 0
  %472 = insertvalue { ptr, i32 } %471, i32 %470, 1
  resume { ptr, i32 } %472
}

declare noundef zeroext i1 @_Z13isRowDataNullRK15HighsLogOptionsPKdS3_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef, ptr noundef) #3

declare void @_Z21appendRowsToLpVectorsR7HighsLpiRKSt6vectorIdSaIdEES5_(ptr noundef nonnull align 8 dereferenceable(920), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #3

declare void @_ZN17HighsSparseMatrix13applyColScaleERK10HighsScale(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(72)) #3

declare void @_ZN17HighsSparseMatrix18considerRowScalingEiPd(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Highs31appendBasicRowsToBasisInterfaceEi(ptr noundef nonnull align 8 dereferenceable(20928), i32 noundef) #2 align 2

declare void @_ZN7HighsLp11addRowNamesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef, i32 noundef) #3

declare void @_ZN4HEkk7addRowsERK7HighsLpRK17HighsSparseMatrix(ptr noundef nonnull align 8 dereferenceable(14568), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(112)) #3

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTS11HighsStatus", !7, i64 0}
!13 = !{!14, !10, i64 0}
!14 = !{!"_ZTS7HighsLp", !10, i64 0, !10, i64 4, !15, i64 8, !15, i64 32, !15, i64 56, !15, i64 80, !15, i64 104, !19, i64 128, !25, i64 240, !26, i64 248, !27, i64 256, !27, i64 288, !10, i64 320, !10, i64 324, !30, i64 328, !30, i64 352, !34, i64 376, !38, i64 400, !38, i64 456, !10, i64 512, !10, i64 516, !44, i64 520, !45, i64 592, !45, i64 593, !10, i64 596, !45, i64 600, !46, i64 608}
!15 = !{!"_ZTSSt6vectorIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTS17HighsSparseMatrix", !20, i64 0, !10, i64 4, !10, i64 8, !21, i64 16, !21, i64 40, !21, i64 64, !15, i64 88}
!20 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!21 = !{!"_ZTSSt6vectorIiSaIiEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"_ZTS8ObjSense", !7, i64 0}
!26 = !{!"double", !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", !10, i64 0, !45, i64 4, !10, i64 8, !10, i64 12, !26, i64 16, !15, i64 24, !15, i64 48}
!45 = !{!"bool", !7, i64 0}
!46 = !{!"_ZTS11HighsLpMods", !21, i64 0, !21, i64 24, !15, i64 48, !15, i64 72, !34, i64 96, !21, i64 120, !15, i64 144, !21, i64 168, !15, i64 192, !21, i64 216, !15, i64 240, !15, i64 264, !15, i64 288}
!47 = !{!14, !10, i64 4}
!48 = !{!49, !10, i64 0}
!49 = !{!"_ZTS20HighsIndexCollection", !10, i64 0, !45, i64 4, !10, i64 8, !10, i64 12, !45, i64 16, !10, i64 20, !21, i64 24, !45, i64 48, !21, i64 56}
!50 = !{!49, !45, i64 4}
!51 = !{!49, !10, i64 8}
!52 = !{!49, !10, i64 12}
!53 = !{!54, !26, i64 256}
!54 = !{!"_ZTS18HighsOptionsStruct", !27, i64 8, !27, i64 40, !27, i64 72, !27, i64 104, !26, i64 136, !27, i64 144, !27, i64 176, !10, i64 208, !27, i64 216, !26, i64 248, !26, i64 256, !26, i64 264, !26, i64 272, !26, i64 280, !26, i64 288, !26, i64 296, !26, i64 304, !26, i64 312, !26, i64 320, !26, i64 328, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !27, i64 392, !45, i64 424, !45, i64 425, !45, i64 426, !10, i64 428, !10, i64 432, !27, i64 440, !45, i64 472, !45, i64 473, !45, i64 474, !10, i64 476, !45, i64 480, !45, i64 481, !10, i64 484, !10, i64 488, !26, i64 496, !10, i64 504, !10, i64 508, !10, i64 512, !45, i64 516, !10, i64 520, !45, i64 524, !45, i64 525, !45, i64 526, !45, i64 527, !45, i64 528, !45, i64 529, !45, i64 530, !10, i64 532, !10, i64 536, !10, i64 540, !10, i64 544, !10, i64 548, !10, i64 552, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !10, i64 588, !45, i64 592, !45, i64 593, !45, i64 594, !45, i64 595, !26, i64 600, !26, i64 608, !26, i64 616, !26, i64 624, !26, i64 632, !26, i64 640, !26, i64 648, !26, i64 656, !26, i64 664, !26, i64 672, !26, i64 680, !45, i64 688, !45, i64 689, !45, i64 690, !45, i64 691, !10, i64 692, !26, i64 696, !45, i64 704, !45, i64 705, !27, i64 712, !26, i64 744, !10, i64 752, !10, i64 756, !45, i64 760, !45, i64 761, !45, i64 762, !45, i64 763, !10, i64 764, !10, i64 768, !10, i64 772, !10, i64 776, !10, i64 780, !10, i64 784, !10, i64 788, !10, i64 792, !10, i64 796, !10, i64 800, !10, i64 804, !26, i64 808, !26, i64 816, !26, i64 824, !26, i64 832, !26, i64 840, !45, i64 848, !45, i64 849, !27, i64 856, !45, i64 888, !10, i64 892, !55, i64 896}
!55 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !56, i64 48, !6, i64 80, !45, i64 88}
!56 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !57, i64 0, !6, i64 24}
!57 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!58 = !{!14, !10, i64 512}
!59 = !{!26, !26, i64 0}
!60 = distinct !{!60, !61}
!61 = !{!"llvm.loop.mustprogress"}
!62 = !{!19, !10, i64 4}
!63 = !{!19, !10, i64 8}
!64 = !{!19, !20, i64 0}
!65 = !{!54, !26, i64 264}
!66 = !{!54, !26, i64 272}
!67 = !{!45, !45, i64 0}
!68 = !{i8 0, i8 2}
!69 = !{}
!70 = distinct !{!70, !61}
!71 = !{!44, !10, i64 12}
!72 = !{!54, !10, i64 540}


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

%struct.HighsIndexCollection = type { i32, i8, i32, i32, i8, i32, %"class.std::vector.13", i8, %"class.std::vector.13" }
%"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.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.std::allocator.0" = type { i8 }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"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::__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.std::allocator" = type { i8 }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%"class.std::allocator.15" = type { i8 }

@.str.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [51 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Highs16addRowsInterfaceEiPKdS1_iPKiS3_S1_ = external hidden unnamed_addr constant [140 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; 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 uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 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

declare void @_ZN17HighsSparseMatrix7addRowsES_PKa(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #6 align 2

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

declare noundef zeroext i1 @_Z16isMatrixDataNullRK15HighsLogOptionsPKiS3_PKd(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN20HighsIndexCollectionC2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #6 align 2

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

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

declare noundef i32 @_Z19interpretCallStatus15HighsLogOptions11HighsStatusS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN15HighsLogOptionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #6 align 2

declare noundef i32 @_Z12assessBoundsRK12HighsOptionsPKciRK20HighsIndexCollectionRSt6vectorIdSaIdEESA_dPK12HighsVarType(ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), double noundef, ptr noundef) local_unnamed_addr #3

declare noundef zeroext i1 @_Z12boundScaleOkRKSt6vectorIdSaIdEES3_id(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, double noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef, i32 noundef) local_unnamed_addr #6

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

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

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

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

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

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

declare noundef i32 @_ZN17HighsSparseMatrix6assessERK15HighsLogOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(89), ptr noundef, double noundef, double noundef) local_unnamed_addr #3

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

declare noundef zeroext i1 @_Z14lpDimensionsOkNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK7HighsLpRK15HighsLogOptions(ptr noundef, ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(89)) local_unnamed_addr #3

declare void @_ZN5Highs36invalidateModelStatusSolutionAndInfoEv(ptr noundef nonnull align 8 dereferenceable(20928)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN20HighsIndexCollectionD2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN5Highs16addRowsInterfaceEiPKdS1_iPKiS3_S1_(ptr noundef nonnull align 8 dereferenceable(20928) %0, i32 noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca %struct.HighsIndexCollection, align 8
  %10 = alloca %"class.std::vector", align 8
  %11 = alloca %"class.std::allocator.0", align 1
  %12 = alloca %"class.std::vector", align 8
  %13 = alloca %"class.std::allocator.0", align 1
  %14 = alloca %struct.HighsLogOptions, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %class.HighsSparseMatrix, align 8
  %18 = alloca %"class.std::vector.13", align 8
  %19 = alloca %"class.std::allocator.15", align 1
  %20 = alloca %"class.std::vector.13", align 8
  %21 = alloca %"class.std::allocator.15", align 1
  %22 = alloca %"class.std::vector", align 8
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca %struct.HighsLogOptions, align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca i32, align 4
  %30 = alloca %class.HighsSparseMatrix, align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = getelementptr inbounds i8, ptr %0, i64 2728
  %36 = or i32 %4, %1
  %or.cond140.not = icmp sgt i32 %36, -1
  br i1 %or.cond140.not, label %37, label %228

37:                                               ; preds = %8
  %38 = icmp eq i32 %1, 0
  br i1 %38, label %228, label %39

39:                                               ; preds = %37
  %40 = getelementptr inbounds i8, ptr %0, i64 3624
  %41 = tail call noundef zeroext i1 @_Z13isRowDataNullRK15HighsLogOptionsPKdS3_(ptr noundef nonnull align 8 dereferenceable(89) %40, ptr noundef %2, ptr noundef %3)
  br i1 %41, label %228, label %42

42:                                               ; preds = %39
  %.not145 = icmp eq i32 %4, 0
  br i1 %.not145, label %.thread, label %44

.thread:                                          ; preds = %42
  %43 = getelementptr inbounds i8, ptr %0, i64 312
  br label %49

44:                                               ; preds = %42
  %45 = tail call noundef zeroext i1 @_Z16isMatrixDataNullRK15HighsLogOptionsPKiS3_PKd(ptr noundef nonnull align 8 dereferenceable(89) %40, ptr noundef %5, ptr noundef %6, ptr noundef %7)
  %46 = getelementptr inbounds i8, ptr %0, i64 312
  %47 = load i32, ptr %46, align 8
  %48 = icmp slt i32 %47, 1
  %or.cond = select i1 %45, i1 true, i1 %48
  br i1 %or.cond, label %228, label %49

49:                                               ; preds = %44, %.thread
  %50 = phi ptr [ %43, %.thread ], [ %46, %44 ]
  %51 = getelementptr inbounds i8, ptr %0, i64 832
  %52 = getelementptr inbounds i8, ptr %0, i64 114
  %53 = getelementptr inbounds i8, ptr %0, i64 836
  %54 = getelementptr inbounds i8, ptr %0, i64 316
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = add nsw i32 %55, %1
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %9) #7
  call void @_ZN20HighsIndexCollectionC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %9) #7
  store i32 %1, ptr %9, align 8, !tbaa !43
  %57 = getelementptr inbounds i8, ptr %9, i64 4
  store i8 1, ptr %57, align 4, !tbaa !45
  %58 = getelementptr inbounds i8, ptr %9, i64 8
  store i32 0, ptr %58, align 8, !tbaa !46
  %59 = add nsw i32 %1, -1
  %60 = getelementptr inbounds i8, ptr %9, i64 12
  store i32 %59, ptr %60, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  %61 = zext i32 %1 to i64
  %62 = getelementptr inbounds double, ptr %2, i64 %61
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2IPKdvEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef %2, ptr noundef nonnull %62, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %63 unwind label %76

63:                                               ; preds = %49
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #7
  %64 = getelementptr inbounds double, ptr %3, i64 %61
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2IPKdvEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef %3, ptr noundef nonnull %64, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %65 unwind label %78

65:                                               ; preds = %63
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  invoke void @_ZN15HighsLogOptionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(89) %14, ptr noundef nonnull align 8 dereferenceable(89) %40)
          to label %66 unwind label %80

66:                                               ; preds = %65
  %67 = load i32, ptr %54, align 4, !tbaa !5
  %68 = getelementptr inbounds i8, ptr %0, i64 2984
  %69 = load double, ptr %68, align 8, !tbaa !48
  %70 = invoke noundef i32 @_Z12assessBoundsRK12HighsOptionsPKciRK20HighsIndexCollectionRSt6vectorIdSaIdEESA_dPK12HighsVarType(ptr noundef nonnull align 8 dereferenceable(1020) %35, ptr noundef nonnull @.str.97, i32 noundef %67, ptr noundef nonnull align 8 dereferenceable(80) %9, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %12, double noundef %69, ptr noundef null)
          to label %71 unwind label %82

71:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %72 unwind label %84

72:                                               ; preds = %71
  %73 = invoke noundef i32 @_Z19interpretCallStatus15HighsLogOptions11HighsStatusS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %14, i32 noundef %70, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %74 unwind label %86

74:                                               ; preds = %72
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %14) #7
  %75 = icmp eq i32 %73, -1
  br i1 %75, label %224, label %90

76:                                               ; preds = %49
  %77 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  br label %227

78:                                               ; preds = %63
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  br label %226

80:                                               ; preds = %.loopexit, %97, %93, %65
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %225

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

84:                                               ; preds = %71
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %88

86:                                               ; preds = %72
  %87 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %88

88:                                               ; preds = %86, %84
  %.pn = phi { ptr, i32 } [ %87, %86 ], [ %85, %84 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %89

89:                                               ; preds = %88, %82
  %.pn.pn = phi { ptr, i32 } [ %.pn, %88 ], [ %83, %82 ]
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %14) #7
  br label %225

90:                                               ; preds = %74
  %91 = getelementptr inbounds i8, ptr %0, i64 824
  %92 = load i32, ptr %91, align 8, !tbaa !53
  %.not = icmp eq i32 %92, 0
  br i1 %.not, label %.loopexit, label %93

93:                                               ; preds = %90
  %94 = load double, ptr %68, align 8, !tbaa !48
  %95 = invoke noundef zeroext i1 @_Z12boundScaleOkRKSt6vectorIdSaIdEES3_id(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %12, i32 noundef %92, double noundef %94)
          to label %96 unwind label %80

96:                                               ; preds = %93
  br i1 %95, label %98, label %97

97:                                               ; preds = %96
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %40, i32 noundef 5, ptr noundef nonnull @.str.90)
          to label %224 unwind label %80

98:                                               ; preds = %96
  %99 = load i32, ptr %91, align 8, !tbaa !53
  %100 = call noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef 2, i32 noundef %99)
  %101 = icmp sgt i32 %1, 0
  br i1 %101, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %98, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %98 ]
  %102 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv) #7
  %103 = load double, ptr %102, align 8, !tbaa !54
  %104 = fmul double %100, %103
  store double %104, ptr %102, align 8, !tbaa !54
  %105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %indvars.iv) #7
  %106 = load double, ptr %105, align 8, !tbaa !54
  %107 = fmul double %100, %106
  store double %107, ptr %105, align 8, !tbaa !54
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %61
  br i1 %exitcond.not, label %.loopexit, label %.lr.ph, !llvm.loop !55

.loopexit:                                        ; preds = %.lr.ph, %98, %90
  invoke void @_Z21appendRowsToLpVectorsR7HighsLpiRKSt6vectorIdSaIdEES5_(ptr noundef nonnull align 8 dereferenceable(920) %50, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %108 unwind label %80

108:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %17) #7
  invoke void @_ZN17HighsSparseMatrixC2Ev(ptr noundef nonnull align 8 dereferenceable(112) %17)
          to label %109 unwind label %143

109:                                              ; preds = %108
  %110 = load i32, ptr %50, align 8, !tbaa !57
  %111 = getelementptr inbounds i8, ptr %17, i64 4
  store i32 %110, ptr %111, align 4, !tbaa !58
  %112 = getelementptr inbounds i8, ptr %17, i64 8
  store i32 %1, ptr %112, align 8, !tbaa !59
  store i32 2, ptr %17, align 8, !tbaa !60
  br i1 %.not145, label %164, label %113

113:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #7
  %114 = getelementptr inbounds i32, ptr %5, i64 %61
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2IPKivEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef %5, ptr noundef nonnull %114, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %115 unwind label %145

115:                                              ; preds = %113
  %116 = getelementptr inbounds i8, ptr %17, i64 16
  %117 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %116, ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  %118 = add nuw nsw i32 %1, 1
  %119 = zext nneg i32 %118 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %116, i64 noundef %119)
          to label %120 unwind label %147

120:                                              ; preds = %115
  %121 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %116, i64 noundef %61) #7
  store i32 %4, ptr %121, align 4, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #7
  %122 = zext nneg i32 %4 to i64
  %123 = getelementptr inbounds i32, ptr %6, i64 %122
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2IPKivEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef %6, ptr noundef nonnull %123, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %124 unwind label %149

124:                                              ; preds = %120
  %125 = getelementptr inbounds i8, ptr %17, i64 64
  %126 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #7
  %127 = getelementptr inbounds double, ptr %7, i64 %122
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2IPKdvEET_S5_RKS0_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef %7, ptr noundef nonnull %127, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %128 unwind label %151

128:                                              ; preds = %124
  %129 = getelementptr inbounds i8, ptr %17, i64 88
  %130 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %129, ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #7
  invoke void @_ZN15HighsLogOptionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(89) %24, ptr noundef nonnull align 8 dereferenceable(89) %40)
          to label %131 unwind label %147

131:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %132 unwind label %153

132:                                              ; preds = %131
  %133 = getelementptr inbounds i8, ptr %0, i64 2992
  %134 = load double, ptr %133, align 8, !tbaa !62
  %135 = getelementptr inbounds i8, ptr %0, i64 3000
  %136 = load double, ptr %135, align 8, !tbaa !63
  %137 = invoke noundef i32 @_ZN17HighsSparseMatrix6assessERK15HighsLogOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(112) %17, ptr noundef nonnull align 8 dereferenceable(89) %40, ptr noundef nonnull %25, double noundef %134, double noundef %136)
          to label %138 unwind label %155

138:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %139 unwind label %157

139:                                              ; preds = %138
  %140 = invoke noundef i32 @_Z19interpretCallStatus15HighsLogOptions11HighsStatusS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %24, i32 noundef %137, i32 noundef %73, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %141 unwind label %159

141:                                              ; preds = %139
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %24) #7
  %142 = icmp eq i32 %140, -1
  br i1 %142, label %221, label %171

143:                                              ; preds = %108
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %223

145:                                              ; preds = %113
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  br label %222

147:                                              ; preds = %218, %217, %198, %189, %._crit_edge, %177, %171, %128, %115
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %222

149:                                              ; preds = %120
  %150 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  br label %222

151:                                              ; preds = %124
  %152 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #7
  br label %222

153:                                              ; preds = %131
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %163

155:                                              ; preds = %132
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %162

157:                                              ; preds = %138
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %161

159:                                              ; preds = %139
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %161

161:                                              ; preds = %159, %157
  %.pn126 = phi { ptr, i32 } [ %160, %159 ], [ %158, %157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %162

162:                                              ; preds = %161, %155
  %.pn126.pn = phi { ptr, i32 } [ %.pn126, %161 ], [ %156, %155 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %163

163:                                              ; preds = %162, %153
  %.pn126.pn.pn = phi { ptr, i32 } [ %.pn126.pn, %162 ], [ %154, %153 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @_ZN15HighsLogOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %24) #7
  br label %222

164:                                              ; preds = %109
  %165 = getelementptr inbounds i8, ptr %17, i64 16
  %166 = add nuw nsw i32 %1, 1
  %167 = zext nneg i32 %166 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  store i32 0, ptr %29, align 4, !tbaa !61
  invoke void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %167, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %168 unwind label %169

168:                                              ; preds = %164
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %171

169:                                              ; preds = %164
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %222

171:                                              ; preds = %141, %168
  %.0115 = phi i32 [ %140, %141 ], [ %73, %168 ]
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %30, ptr noundef nonnull align 8 dereferenceable(112) %17)
          to label %172 unwind label %147

172:                                              ; preds = %171
  %173 = getelementptr inbounds i8, ptr %0, i64 440
  invoke void @_ZN17HighsSparseMatrix7addRowsES_PKa(ptr noundef nonnull align 8 dereferenceable(112) %173, ptr noundef nonnull %30, ptr noundef null)
          to label %174 unwind label %182

174:                                              ; preds = %172
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %30) #7
  %175 = load i8, ptr %53, align 4, !tbaa !64, !range !65, !noundef !66
  %176 = trunc nuw i8 %175 to i1
  br i1 %176, label %177, label %195

177:                                              ; preds = %174
  %178 = getelementptr inbounds i8, ptr %0, i64 880
  %179 = sext i32 %56 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %179)
          to label %.preheader unwind label %147

.preheader:                                       ; preds = %177
  %180 = icmp sgt i32 %1, 0
  br i1 %180, label %.lr.ph144, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph144, %.preheader
  %181 = getelementptr inbounds i8, ptr %0, i64 844
  store i32 %56, ptr %181, align 4, !tbaa !67
  invoke void @_ZN17HighsSparseMatrix13applyColScaleERK10HighsScale(ptr noundef nonnull align 8 dereferenceable(112) %17, ptr noundef nonnull align 8 dereferenceable(72) %51)
          to label %189 unwind label %147

182:                                              ; preds = %172
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %30) #7
  br label %222

.lr.ph144:                                        ; preds = %.preheader, %.lr.ph144
  %.0143 = phi i32 [ %188, %.lr.ph144 ], [ 0, %.preheader ]
  %184 = load i32, ptr %54, align 4, !tbaa !5
  %185 = add nsw i32 %184, %.0143
  %186 = sext i32 %185 to i64
  %187 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %186) #7
  store double 1.000000e+00, ptr %187, align 8, !tbaa !54
  %188 = add nuw nsw i32 %.0143, 1
  %exitcond147.not = icmp eq i32 %188, %1
  br i1 %exitcond147.not, label %._crit_edge, label %.lr.ph144, !llvm.loop !68

189:                                              ; preds = %._crit_edge
  %190 = getelementptr inbounds i8, ptr %0, i64 3268
  %191 = load i32, ptr %190, align 4, !tbaa !69
  %192 = load i32, ptr %54, align 4, !tbaa !5
  %193 = sext i32 %192 to i64
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %193) #7
  invoke void @_ZN17HighsSparseMatrix18considerRowScalingEiPd(ptr noundef nonnull align 8 dereferenceable(112) %17, i32 noundef %191, ptr noundef nonnull %194)
          to label %195 unwind label %147

195:                                              ; preds = %189, %174
  %196 = load i8, ptr %52, align 2, !tbaa !64, !range !65, !noundef !66
  %197 = trunc nuw i8 %196 to i1
  br i1 %197, label %198, label %199

198:                                              ; preds = %195
  invoke void @_ZN5Highs31appendBasicRowsToBasisInterfaceEi(ptr noundef nonnull align 8 dereferenceable(20928) %0, i32 noundef %1)
          to label %199 unwind label %147

199:                                              ; preds = %198, %195
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %200 unwind label %208

200:                                              ; preds = %199
  invoke void @_ZN7HighsLp11addRowNamesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(920) %50, ptr noundef nonnull %31, i32 noundef %1)
          to label %201 unwind label %210

201:                                              ; preds = %200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  %202 = load i32, ptr %54, align 4, !tbaa !5
  %203 = add nsw i32 %202, %1
  store i32 %203, ptr %54, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.98, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %204 unwind label %213

204:                                              ; preds = %201
  %205 = invoke noundef zeroext i1 @_Z14lpDimensionsOkNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK7HighsLpRK15HighsLogOptions(ptr noundef nonnull %33, ptr noundef nonnull align 8 dereferenceable(920) %50, ptr noundef nonnull align 8 dereferenceable(89) %40)
          to label %206 unwind label %215

206:                                              ; preds = %204
  br i1 %205, label %217, label %207

207:                                              ; preds = %206
  call void @__assert_fail(ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.78, i32 noundef 664, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Highs16addRowsInterfaceEiPKdS1_iPKiS3_S1_) #8
  unreachable

208:                                              ; preds = %199
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %212

210:                                              ; preds = %200
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %212

212:                                              ; preds = %210, %208
  %.pn130 = phi { ptr, i32 } [ %211, %210 ], [ %209, %208 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  br label %222

213:                                              ; preds = %201
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %220

215:                                              ; preds = %204
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %220

217:                                              ; preds = %206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  invoke void @_ZN5Highs36invalidateModelStatusSolutionAndInfoEv(ptr noundef nonnull align 8 dereferenceable(20928) %0)
          to label %218 unwind label %147

218:                                              ; preds = %217
  %219 = getelementptr inbounds i8, ptr %0, i64 4856
  invoke void @_ZN4HEkk7addRowsERK7HighsLpRK17HighsSparseMatrix(ptr noundef nonnull align 8 dereferenceable(14568) %219, ptr noundef nonnull align 8 dereferenceable(920) %50, ptr noundef nonnull align 8 dereferenceable(112) %17)
          to label %221 unwind label %147

220:                                              ; preds = %215, %213
  %.pn132 = phi { ptr, i32 } [ %216, %215 ], [ %214, %213 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  br label %222

221:                                              ; preds = %218, %141
  %.098 = phi i32 [ -1, %141 ], [ %.0115, %218 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %17) #7
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %17) #7
  br label %224

222:                                              ; preds = %220, %212, %182, %169, %163, %151, %149, %147, %145
  %.pn134 = phi { ptr, i32 } [ %148, %147 ], [ %.pn132, %220 ], [ %.pn130, %212 ], [ %183, %182 ], [ %.pn126.pn.pn, %163 ], [ %152, %151 ], [ %150, %149 ], [ %146, %145 ], [ %170, %169 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %17) #7
  br label %223

223:                                              ; preds = %222, %143
  %.pn134.pn = phi { ptr, i32 } [ %.pn134, %222 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %17) #7
  br label %225

224:                                              ; preds = %97, %74, %221
  %.1 = phi i32 [ %.098, %221 ], [ -1, %74 ], [ -1, %97 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @_ZN20HighsIndexCollectionD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %9) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %9) #7
  br label %228

225:                                              ; preds = %223, %89, %80
  %.pn134.pn.pn = phi { ptr, i32 } [ %.pn134.pn, %223 ], [ %81, %80 ], [ %.pn.pn, %89 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %226

226:                                              ; preds = %225, %78
  %.pn134.pn.pn.pn = phi { ptr, i32 } [ %.pn134.pn.pn, %225 ], [ %79, %78 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  br label %227

227:                                              ; preds = %226, %76
  %.pn134.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn134.pn.pn.pn, %226 ], [ %77, %76 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @_ZN20HighsIndexCollectionD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %9) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %9) #7
  resume { ptr, i32 } %.pn134.pn.pn.pn.pn

228:                                              ; preds = %224, %44, %39, %37, %8
  %.3 = phi i32 [ -1, %8 ], [ 0, %37 ], [ -1, %39 ], [ -1, %44 ], [ %.1, %224 ]
  ret i32 %.3
}

declare noundef zeroext i1 @_Z13isRowDataNullRK15HighsLogOptionsPKdS3_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @_Z21appendRowsToLpVectorsR7HighsLpiRKSt6vectorIdSaIdEES5_(ptr noundef nonnull align 8 dereferenceable(920), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3

declare void @_ZN17HighsSparseMatrix13applyColScaleERK10HighsScale(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #3

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

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

declare void @_ZN7HighsLp11addRowNamesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @_ZN4HEkk7addRowsERK7HighsLpRK17HighsSparseMatrix(ptr noundef nonnull align 8 dereferenceable(14568), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #3

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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, !7, i64 4}
!6 = !{!"_ZTS7HighsLp", !7, i64 0, !7, i64 4, !10, i64 8, !10, i64 32, !10, i64 56, !10, i64 80, !10, i64 104, !15, i64 128, !21, i64 240, !22, i64 248, !23, i64 256, !23, i64 288, !7, i64 320, !7, i64 324, !26, i64 328, !26, i64 352, !30, i64 376, !34, i64 400, !34, i64 456, !7, i64 512, !7, i64 516, !40, i64 520, !41, i64 592, !41, i64 593, !7, i64 596, !41, i64 600, !42, i64 608}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSSt6vectorIdSaIdEE", !11, i64 0}
!11 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !12, i64 0}
!12 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!14 = !{!"any pointer", !8, i64 0}
!15 = !{!"_ZTS17HighsSparseMatrix", !16, i64 0, !7, i64 4, !7, i64 8, !17, i64 16, !17, i64 40, !17, i64 64, !10, i64 88}
!16 = !{!"_ZTS12MatrixFormat", !8, i64 0}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!21 = !{!"_ZTS8ObjSense", !8, i64 0}
!22 = !{!"double", !8, i64 0}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !8, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !14, i64 0}
!25 = !{!"long", !8, i64 0}
!26 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!30 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!34 = !{!"_ZTS13HighsNameHash", !35, i64 0}
!35 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !36, i64 0}
!36 = !{!"_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", !14, i64 0, !25, i64 8, !37, i64 16, !25, i64 24, !38, i64 32, !14, i64 48}
!37 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !14, i64 0}
!38 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !39, i64 0, !25, i64 8}
!39 = !{!"float", !8, i64 0}
!40 = !{!"_ZTS10HighsScale", !7, i64 0, !41, i64 4, !7, i64 8, !7, i64 12, !22, i64 16, !10, i64 24, !10, i64 48}
!41 = !{!"bool", !8, i64 0}
!42 = !{!"_ZTS11HighsLpMods", !17, i64 0, !17, i64 24, !10, i64 48, !10, i64 72, !30, i64 96, !17, i64 120, !10, i64 144, !17, i64 168, !10, i64 192, !17, i64 216, !10, i64 240, !10, i64 264, !10, i64 288}
!43 = !{!44, !7, i64 0}
!44 = !{!"_ZTS20HighsIndexCollection", !7, i64 0, !41, i64 4, !7, i64 8, !7, i64 12, !41, i64 16, !7, i64 20, !17, i64 24, !41, i64 48, !17, i64 56}
!45 = !{!44, !41, i64 4}
!46 = !{!44, !7, i64 8}
!47 = !{!44, !7, i64 12}
!48 = !{!49, !22, i64 256}
!49 = !{!"_ZTS18HighsOptionsStruct", !23, i64 8, !23, i64 40, !23, i64 72, !23, i64 104, !22, i64 136, !23, i64 144, !23, i64 176, !7, i64 208, !23, i64 216, !22, i64 248, !22, i64 256, !22, i64 264, !22, i64 272, !22, i64 280, !22, i64 288, !22, i64 296, !22, i64 304, !22, i64 312, !22, i64 320, !22, i64 328, !7, i64 336, !7, i64 340, !7, i64 344, !7, i64 348, !7, i64 352, !7, i64 356, !7, i64 360, !7, i64 364, !7, i64 368, !7, i64 372, !7, i64 376, !7, i64 380, !7, i64 384, !7, i64 388, !23, i64 392, !41, i64 424, !41, i64 425, !41, i64 426, !7, i64 428, !7, i64 432, !23, i64 440, !41, i64 472, !41, i64 473, !41, i64 474, !7, i64 476, !41, i64 480, !41, i64 481, !7, i64 484, !7, i64 488, !22, i64 496, !7, i64 504, !7, i64 508, !7, i64 512, !41, i64 516, !7, i64 520, !41, i64 524, !41, i64 525, !41, i64 526, !41, i64 527, !41, i64 528, !41, i64 529, !41, i64 530, !7, i64 532, !7, i64 536, !7, i64 540, !7, i64 544, !7, i64 548, !7, i64 552, !7, i64 556, !7, i64 560, !7, i64 564, !7, i64 568, !7, i64 572, !7, i64 576, !7, i64 580, !7, i64 584, !7, i64 588, !41, i64 592, !41, i64 593, !41, i64 594, !41, i64 595, !22, i64 600, !22, i64 608, !22, i64 616, !22, i64 624, !22, i64 632, !22, i64 640, !22, i64 648, !22, i64 656, !22, i64 664, !22, i64 672, !22, i64 680, !41, i64 688, !41, i64 689, !41, i64 690, !41, i64 691, !7, i64 692, !22, i64 696, !41, i64 704, !41, i64 705, !23, i64 712, !22, i64 744, !7, i64 752, !7, i64 756, !41, i64 760, !41, i64 761, !41, i64 762, !41, i64 763, !7, i64 764, !7, i64 768, !7, i64 772, !7, i64 776, !7, i64 780, !7, i64 784, !7, i64 788, !7, i64 792, !7, i64 796, !7, i64 800, !7, i64 804, !22, i64 808, !22, i64 816, !22, i64 824, !22, i64 832, !22, i64 840, !41, i64 848, !41, i64 849, !23, i64 856, !41, i64 888, !7, i64 892, !50, i64 896}
!50 = !{!"_ZTS15HighsLogOptions", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !51, i64 48, !14, i64 80, !41, i64 88}
!51 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !52, i64 0, !14, i64 24}
!52 = !{!"_ZTSSt14_Function_base", !8, i64 0, !14, i64 16}
!53 = !{!6, !7, i64 512}
!54 = !{!22, !22, i64 0}
!55 = distinct !{!55, !56}
!56 = !{!"llvm.loop.mustprogress"}
!57 = !{!6, !7, i64 0}
!58 = !{!15, !7, i64 4}
!59 = !{!15, !7, i64 8}
!60 = !{!15, !16, i64 0}
!61 = !{!7, !7, i64 0}
!62 = !{!49, !22, i64 264}
!63 = !{!49, !22, i64 272}
!64 = !{!41, !41, i64 0}
!65 = !{i8 0, i8 2}
!66 = !{}
!67 = !{!40, !7, i64 12}
!68 = distinct !{!68, !56}
!69 = !{!49, !7, i64 540}


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