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

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.std::array" = type { [32 x i8] }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::allocator" = type { i8 }
%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.3", %"class.std::vector.3", %"class.std::vector.18", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector" }
%"class.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.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.18", %"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" }
%struct.HighsSolution = type { i8, i8, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%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 }

@.str.73 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [41 x i8], align 1
@__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob = external hidden unnamed_addr constant [131 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [55 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

declare void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

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

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

declare void @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ...) #4

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

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

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

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

declare void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1, double noundef, double noundef) #4

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32)) #6 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(1000) %2, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(184) %4, i1 noundef zeroext %5) #2 personality ptr @__gxx_personality_v0 {
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca ptr, align 8
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %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.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca i32, align 4
  %34 = alloca %"struct.std::array", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca i32, align 4
  %52 = alloca %"struct.std::array", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca i32, align 4
  %62 = alloca %"struct.std::array", align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  %68 = zext i1 %5 to i8
  store i8 %68, ptr %12, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %69 = load ptr, ptr %9, align 8, !tbaa !5
  %70 = getelementptr inbounds %class.HighsModel, ptr %69, i32 0, i32 0
  store ptr %70, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #7
  %71 = load ptr, ptr %13, align 8, !tbaa !5
  %72 = getelementptr inbounds %class.HighsLp, ptr %71, i32 0, i32 14
  %73 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  %74 = icmp ugt i64 %73, 0
  %75 = zext i1 %74 to i8
  store i8 %75, ptr %14, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #7
  %76 = load ptr, ptr %13, align 8, !tbaa !5
  %77 = getelementptr inbounds %class.HighsLp, ptr %76, i32 0, i32 15
  %78 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  %79 = icmp ugt i64 %78, 0
  %80 = zext i1 %79 to i8
  store i8 %80, ptr %15, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  %81 = load ptr, ptr %10, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.HighsSolution, ptr %81, i32 0, i32 0
  %83 = load i8, ptr %82, align 8, !tbaa !11, !range !17, !noundef !18
  %84 = trunc i8 %83 to i1
  %85 = zext i1 %84 to i8
  store i8 %85, ptr %16, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  %86 = load ptr, ptr %10, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.HighsSolution, ptr %86, i32 0, i32 1
  %88 = load i8, ptr %87, align 1, !tbaa !19, !range !17, !noundef !18
  %89 = trunc i8 %88 to i1
  %90 = zext i1 %89 to i8
  store i8 %90, ptr %17, align 1, !tbaa !9
  %91 = load i8, ptr %14, align 1, !tbaa !9, !range !17, !noundef !18
  %92 = trunc i8 %91 to i1
  br i1 %92, label %93, label %106

93:                                               ; preds = %6
  %94 = load ptr, ptr %13, align 8, !tbaa !5
  %95 = getelementptr inbounds %class.HighsLp, ptr %94, i32 0, i32 14
  %96 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %95) #7
  %97 = trunc i64 %96 to i32
  %98 = load ptr, ptr %13, align 8, !tbaa !5
  %99 = getelementptr inbounds %class.HighsLp, ptr %98, i32 0, i32 0
  %100 = load i32, ptr %99, align 8, !tbaa !20
  %101 = icmp sge i32 %97, %100
  br i1 %101, label %102, label %103

102:                                              ; preds = %93
  br label %105

103:                                              ; preds = %93
  call void @__assert_fail(ptr noundef @.str.93, ptr noundef @.str.73, i32 noundef 258, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

104:                                              ; No predecessors!
  br label %105

105:                                              ; preds = %104, %102
  br label %106

106:                                              ; preds = %105, %6
  %107 = load i8, ptr %15, align 1, !tbaa !9, !range !17, !noundef !18
  %108 = trunc i8 %107 to i1
  br i1 %108, label %109, label %122

109:                                              ; preds = %106
  %110 = load ptr, ptr %13, align 8, !tbaa !5
  %111 = getelementptr inbounds %class.HighsLp, ptr %110, i32 0, i32 15
  %112 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #7
  %113 = trunc i64 %112 to i32
  %114 = load ptr, ptr %13, align 8, !tbaa !5
  %115 = getelementptr inbounds %class.HighsLp, ptr %114, i32 0, i32 1
  %116 = load i32, ptr %115, align 4, !tbaa !50
  %117 = icmp sge i32 %113, %116
  br i1 %117, label %118, label %119

118:                                              ; preds = %109
  br label %121

119:                                              ; preds = %109
  call void @__assert_fail(ptr noundef @.str.94, ptr noundef @.str.73, i32 noundef 259, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

120:                                              ; No predecessors!
  br label %121

121:                                              ; preds = %120, %118
  br label %122

122:                                              ; preds = %121, %106
  %123 = load i8, ptr %16, align 1, !tbaa !9, !range !17, !noundef !18
  %124 = trunc i8 %123 to i1
  br i1 %124, label %125, label %159

125:                                              ; preds = %122
  %126 = load ptr, ptr %10, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.HighsSolution, ptr %126, i32 0, i32 2
  %128 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %127) #7
  %129 = trunc i64 %128 to i32
  %130 = load ptr, ptr %13, align 8, !tbaa !5
  %131 = getelementptr inbounds %class.HighsLp, ptr %130, i32 0, i32 0
  %132 = load i32, ptr %131, align 8, !tbaa !20
  %133 = icmp sge i32 %129, %132
  br i1 %133, label %134, label %135

134:                                              ; preds = %125
  br label %137

135:                                              ; preds = %125
  call void @__assert_fail(ptr noundef @.str.95, ptr noundef @.str.73, i32 noundef 261, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

136:                                              ; No predecessors!
  br label %137

137:                                              ; preds = %136, %134
  %138 = load ptr, ptr %10, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.HighsSolution, ptr %138, i32 0, i32 4
  %140 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %139) #7
  %141 = trunc i64 %140 to i32
  %142 = load ptr, ptr %13, align 8, !tbaa !5
  %143 = getelementptr inbounds %class.HighsLp, ptr %142, i32 0, i32 1
  %144 = load i32, ptr %143, align 4, !tbaa !50
  %145 = icmp sge i32 %141, %144
  br i1 %145, label %146, label %147

146:                                              ; preds = %137
  br label %149

147:                                              ; preds = %137
  call void @__assert_fail(ptr noundef @.str.96, ptr noundef @.str.73, i32 noundef 262, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

148:                                              ; No predecessors!
  br label %149

149:                                              ; preds = %148, %146
  %150 = load ptr, ptr %11, align 8, !tbaa !5
  %151 = getelementptr inbounds i8, ptr %150, i64 8
  %152 = getelementptr inbounds %struct.HighsInfoStruct, ptr %151, i32 0, i32 7
  %153 = load i32, ptr %152, align 4, !tbaa !51
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %156

155:                                              ; preds = %149
  br label %158

156:                                              ; preds = %149
  call void @__assert_fail(ptr noundef @.str.97, ptr noundef @.str.73, i32 noundef 263, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

157:                                              ; No predecessors!
  br label %158

158:                                              ; preds = %157, %155
  br label %159

159:                                              ; preds = %158, %122
  %160 = load i8, ptr %17, align 1, !tbaa !9, !range !17, !noundef !18
  %161 = trunc i8 %160 to i1
  br i1 %161, label %162, label %196

162:                                              ; preds = %159
  %163 = load ptr, ptr %10, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.HighsSolution, ptr %163, i32 0, i32 3
  %165 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %164) #7
  %166 = trunc i64 %165 to i32
  %167 = load ptr, ptr %13, align 8, !tbaa !5
  %168 = getelementptr inbounds %class.HighsLp, ptr %167, i32 0, i32 0
  %169 = load i32, ptr %168, align 8, !tbaa !20
  %170 = icmp sge i32 %166, %169
  br i1 %170, label %171, label %172

171:                                              ; preds = %162
  br label %174

172:                                              ; preds = %162
  call void @__assert_fail(ptr noundef @.str.98, ptr noundef @.str.73, i32 noundef 266, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

173:                                              ; No predecessors!
  br label %174

174:                                              ; preds = %173, %171
  %175 = load ptr, ptr %10, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.HighsSolution, ptr %175, i32 0, i32 5
  %177 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %176) #7
  %178 = trunc i64 %177 to i32
  %179 = load ptr, ptr %13, align 8, !tbaa !5
  %180 = getelementptr inbounds %class.HighsLp, ptr %179, i32 0, i32 1
  %181 = load i32, ptr %180, align 4, !tbaa !50
  %182 = icmp sge i32 %178, %181
  br i1 %182, label %183, label %184

183:                                              ; preds = %174
  br label %186

184:                                              ; preds = %174
  call void @__assert_fail(ptr noundef @.str.99, ptr noundef @.str.73, i32 noundef 267, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

185:                                              ; No predecessors!
  br label %186

186:                                              ; preds = %185, %183
  %187 = load ptr, ptr %11, align 8, !tbaa !5
  %188 = getelementptr inbounds i8, ptr %187, i64 8
  %189 = getelementptr inbounds %struct.HighsInfoStruct, ptr %188, i32 0, i32 8
  %190 = load i32, ptr %189, align 8, !tbaa !53
  %191 = icmp ne i32 %190, 0
  br i1 %191, label %192, label %193

192:                                              ; preds = %186
  br label %195

193:                                              ; preds = %186
  call void @__assert_fail(ptr noundef @.str.100, ptr noundef @.str.73, i32 noundef 268, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

194:                                              ; No predecessors!
  br label %195

195:                                              ; preds = %194, %192
  br label %196

196:                                              ; preds = %195, %159
  call void @llvm.lifetime.start.p0(i64 392, ptr %18) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18)
  %197 = load ptr, ptr %7, align 8, !tbaa !5
  %198 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %199 unwind label %214

199:                                              ; preds = %196
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %197, ptr noundef nonnull align 8 dereferenceable(89) %198, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %200 unwind label %218

200:                                              ; preds = %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  %201 = load i8, ptr %16, align 1, !tbaa !9, !range !17, !noundef !18
  %202 = trunc i8 %201 to i1
  br i1 %202, label %203, label %209

203:                                              ; preds = %200
  %204 = load ptr, ptr %11, align 8, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %204, i64 8
  %206 = getelementptr inbounds %struct.HighsInfoStruct, ptr %205, i32 0, i32 7
  %207 = load i32, ptr %206, align 4, !tbaa !51
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %232

209:                                              ; preds = %203, %200
  %210 = load ptr, ptr %7, align 8, !tbaa !5
  %211 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %212 unwind label %223

212:                                              ; preds = %209
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %210, ptr noundef nonnull align 8 dereferenceable(89) %211, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %213 unwind label %227

213:                                              ; preds = %212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  br label %419

214:                                              ; preds = %196
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %21, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %22, align 4
  br label %222

218:                                              ; preds = %199
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %21, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %222

222:                                              ; preds = %218, %214
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  br label %743

223:                                              ; preds = %209
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %21, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %22, align 4
  br label %231

227:                                              ; preds = %212
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %21, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %231

231:                                              ; preds = %227, %223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  br label %743

232:                                              ; preds = %203
  %233 = load ptr, ptr %11, align 8, !tbaa !5
  %234 = getelementptr inbounds i8, ptr %233, i64 8
  %235 = getelementptr inbounds %struct.HighsInfoStruct, ptr %234, i32 0, i32 7
  %236 = load i32, ptr %235, align 4, !tbaa !51
  %237 = icmp eq i32 %236, 2
  br i1 %237, label %238, label %252

238:                                              ; preds = %232
  %239 = load ptr, ptr %7, align 8, !tbaa !5
  %240 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %241 unwind label %243

241:                                              ; preds = %238
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %239, ptr noundef nonnull align 8 dereferenceable(89) %240, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %242 unwind label %247

242:                                              ; preds = %241
  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 %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %275

243:                                              ; preds = %238
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %21, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %22, align 4
  br label %251

247:                                              ; preds = %241
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %21, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %251

251:                                              ; preds = %247, %243
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %743

252:                                              ; preds = %232
  %253 = load ptr, ptr %11, align 8, !tbaa !5
  %254 = getelementptr inbounds i8, ptr %253, i64 8
  %255 = getelementptr inbounds %struct.HighsInfoStruct, ptr %254, i32 0, i32 7
  %256 = load i32, ptr %255, align 4, !tbaa !51
  %257 = icmp eq i32 %256, 1
  br i1 %257, label %258, label %259

258:                                              ; preds = %252
  br label %261

259:                                              ; preds = %252
  call void @__assert_fail(ptr noundef @.str.104, ptr noundef @.str.73, i32 noundef 278, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

260:                                              ; No predecessors!
  br label %261

261:                                              ; preds = %260, %258
  %262 = load ptr, ptr %7, align 8, !tbaa !5
  %263 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.105, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %264 unwind label %266

264:                                              ; preds = %261
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %262, ptr noundef nonnull align 8 dereferenceable(89) %263, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %265 unwind label %270

265:                                              ; preds = %264
  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 %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  br label %275

266:                                              ; preds = %261
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %21, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %22, align 4
  br label %274

270:                                              ; preds = %264
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %21, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %274

274:                                              ; preds = %270, %266
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  br label %743

275:                                              ; preds = %265, %242
  %276 = load ptr, ptr %7, align 8, !tbaa !5
  %277 = load ptr, ptr %8, align 8, !tbaa !5
  %278 = load ptr, ptr %9, align 8, !tbaa !5
  %279 = load ptr, ptr %10, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.HighsSolution, ptr %279, i32 0, i32 2
  invoke void @_Z19writeModelObjectiveP8_IO_FILERK15HighsLogOptionsRK10HighsModelRKSt6vectorIdSaIdEE(ptr noundef %276, ptr noundef nonnull align 8 dereferenceable(89) %277, ptr noundef nonnull align 8 dereferenceable(1000) %278, ptr noundef nonnull align 8 dereferenceable(24) %280)
          to label %281 unwind label %294

281:                                              ; preds = %275
  %282 = load ptr, ptr %7, align 8, !tbaa !5
  %283 = load ptr, ptr %8, align 8, !tbaa !5
  %284 = load ptr, ptr %9, align 8, !tbaa !5
  %285 = getelementptr inbounds %class.HighsModel, ptr %284, i32 0, i32 0
  %286 = load ptr, ptr %10, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.HighsSolution, ptr %286, i32 0, i32 2
  %288 = load i8, ptr %12, align 1, !tbaa !9, !range !17, !noundef !18
  %289 = trunc i8 %288 to i1
  invoke void @_Z19writePrimalSolutionP8_IO_FILERK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEEb(ptr noundef %282, ptr noundef nonnull align 8 dereferenceable(89) %283, ptr noundef nonnull align 8 dereferenceable(920) %285, ptr noundef nonnull align 8 dereferenceable(24) %287, i1 noundef zeroext %289)
          to label %290 unwind label %294

290:                                              ; preds = %281
  %291 = load i8, ptr %12, align 1, !tbaa !9, !range !17, !noundef !18
  %292 = trunc i8 %291 to i1
  br i1 %292, label %293, label %298

293:                                              ; preds = %290
  store i32 1, ptr %29, align 4
  br label %740

294:                                              ; preds = %281, %275
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %21, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %22, align 4
  br label %743

298:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %299 unwind label %318

299:                                              ; preds = %298
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  %300 = getelementptr inbounds i8, ptr %18, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  %301 = load ptr, ptr %13, align 8, !tbaa !5
  %302 = getelementptr inbounds %class.HighsLp, ptr %301, i32 0, i32 1
  %303 = load i32, ptr %302, align 4, !tbaa !50
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef @.str.106, i32 noundef %303)
          to label %304 unwind label %322

304:                                              ; preds = %299
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %306 unwind label %326

306:                                              ; preds = %304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  %307 = load ptr, ptr %7, align 8, !tbaa !5
  %308 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %309 unwind label %331

309:                                              ; preds = %306
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %307, ptr noundef nonnull align 8 dereferenceable(89) %308, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %310 unwind label %335

310:                                              ; preds = %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 0, ptr %33, align 4, !tbaa !54
  br label %311

311:                                              ; preds = %378, %310
  %312 = load i32, ptr %33, align 4, !tbaa !54
  %313 = load ptr, ptr %13, align 8, !tbaa !5
  %314 = getelementptr inbounds %class.HighsLp, ptr %313, i32 0, i32 1
  %315 = load i32, ptr %314, align 4, !tbaa !50
  %316 = icmp slt i32 %312, %315
  br i1 %316, label %340, label %317

317:                                              ; preds = %311
  store i32 2, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %418

318:                                              ; preds = %298
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %21, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %743

322:                                              ; preds = %299
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %21, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %22, align 4
  br label %330

326:                                              ; preds = %304
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %21, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %330

330:                                              ; preds = %326, %322
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  br label %743

331:                                              ; preds = %306
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %21, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %22, align 4
  br label %339

335:                                              ; preds = %309
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %21, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %339

339:                                              ; preds = %335, %331
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  br label %743

340:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  %341 = load ptr, ptr %10, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.HighsSolution, ptr %341, i32 0, i32 4
  %343 = load i32, ptr %33, align 4, !tbaa !54
  %344 = sext i32 %343 to i64
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %342, i64 noundef %344) #7
  %346 = load double, ptr %345, align 8, !tbaa !55
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %34, double noundef %346, double noundef 1.000000e-13)
          to label %347 unwind label %381

347:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %348 unwind label %385

348:                                              ; preds = %347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  %349 = getelementptr inbounds i8, ptr %18, i64 16
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef @.str.107)
          to label %351 unwind label %381

351:                                              ; preds = %348
  %352 = load i32, ptr %33, align 4, !tbaa !54
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %350, i32 noundef %352)
          to label %354 unwind label %381

354:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  %355 = load i8, ptr %15, align 1, !tbaa !9, !range !17, !noundef !18
  %356 = trunc i8 %355 to i1
  br i1 %356, label %357, label %364

357:                                              ; preds = %354
  %358 = load ptr, ptr %13, align 8, !tbaa !5
  %359 = getelementptr inbounds %class.HighsLp, ptr %358, i32 0, i32 15
  %360 = load i32, ptr %33, align 4, !tbaa !54
  %361 = sext i32 %360 to i64
  %362 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %359, i64 noundef %361) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %362)
          to label %363 unwind label %389

363:                                              ; preds = %357
  br label %366

364:                                              ; preds = %354
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %365 unwind label %389

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365, %363
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %367 unwind label %393

367:                                              ; preds = %366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  %368 = getelementptr inbounds i8, ptr %18, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  %369 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  %370 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %34) #9
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef @.str.108, ptr noundef %369, ptr noundef %370)
          to label %371 unwind label %397

371:                                              ; preds = %367
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %368, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %373 unwind label %401

373:                                              ; preds = %371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  %374 = load ptr, ptr %7, align 8, !tbaa !5
  %375 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %376 unwind label %406

376:                                              ; preds = %373
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %374, ptr noundef nonnull align 8 dereferenceable(89) %375, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %377 unwind label %410

377:                                              ; preds = %376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  br label %378

378:                                              ; preds = %377
  %379 = load i32, ptr %33, align 4, !tbaa !54
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr %33, align 4, !tbaa !54
  br label %311, !llvm.loop !56

381:                                              ; preds = %351, %348, %340
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %21, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %22, align 4
  br label %417

385:                                              ; preds = %347
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %21, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  br label %417

389:                                              ; preds = %364, %357
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %21, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %22, align 4
  br label %416

393:                                              ; preds = %366
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %21, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  br label %415

397:                                              ; preds = %367
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %21, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %22, align 4
  br label %405

401:                                              ; preds = %371
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %21, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %405

405:                                              ; preds = %401, %397
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %415

406:                                              ; preds = %373
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %21, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %22, align 4
  br label %414

410:                                              ; preds = %376
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %21, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %414

414:                                              ; preds = %410, %406
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  br label %415

415:                                              ; preds = %414, %405, %393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %416

416:                                              ; preds = %415, %389
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  br label %417

417:                                              ; preds = %416, %385, %381
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %743

418:                                              ; preds = %317
  br label %419

419:                                              ; preds = %418, %213
  %420 = load ptr, ptr %7, align 8, !tbaa !5
  %421 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.109, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %422 unwind label %437

422:                                              ; preds = %419
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %420, ptr noundef nonnull align 8 dereferenceable(89) %421, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %423 unwind label %441

423:                                              ; preds = %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %40) #7
  %424 = load i8, ptr %17, align 1, !tbaa !9, !range !17, !noundef !18
  %425 = trunc i8 %424 to i1
  br i1 %425, label %426, label %432

426:                                              ; preds = %423
  %427 = load ptr, ptr %11, align 8, !tbaa !5
  %428 = getelementptr inbounds i8, ptr %427, i64 8
  %429 = getelementptr inbounds %struct.HighsInfoStruct, ptr %428, i32 0, i32 8
  %430 = load i32, ptr %429, align 8, !tbaa !53
  %431 = icmp eq i32 %430, 0
  br i1 %431, label %432, label %455

432:                                              ; preds = %426, %423
  %433 = load ptr, ptr %7, align 8, !tbaa !5
  %434 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %435 unwind label %446

435:                                              ; preds = %432
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %433, ptr noundef nonnull align 8 dereferenceable(89) %434, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %436 unwind label %450

436:                                              ; preds = %435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %42) #7
  br label %739

437:                                              ; preds = %419
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %21, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %22, align 4
  br label %445

441:                                              ; preds = %422
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %21, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %445

445:                                              ; preds = %441, %437
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %40) #7
  br label %743

446:                                              ; preds = %432
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %21, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %22, align 4
  br label %454

450:                                              ; preds = %435
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %21, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %454

454:                                              ; preds = %450, %446
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %42) #7
  br label %743

455:                                              ; preds = %426
  %456 = load ptr, ptr %11, align 8, !tbaa !5
  %457 = getelementptr inbounds i8, ptr %456, i64 8
  %458 = getelementptr inbounds %struct.HighsInfoStruct, ptr %457, i32 0, i32 8
  %459 = load i32, ptr %458, align 8, !tbaa !53
  %460 = icmp eq i32 %459, 2
  br i1 %460, label %461, label %475

461:                                              ; preds = %455
  %462 = load ptr, ptr %7, align 8, !tbaa !5
  %463 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %464 unwind label %466

464:                                              ; preds = %461
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %462, ptr noundef nonnull align 8 dereferenceable(89) %463, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %465 unwind label %470

465:                                              ; preds = %464
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %44) #7
  br label %498

466:                                              ; preds = %461
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %21, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %22, align 4
  br label %474

470:                                              ; preds = %464
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %21, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %474

474:                                              ; preds = %470, %466
  call void @_ZNSt15__new_allocatorIcED2Ev(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 32, ptr %44) #7
  br label %743

475:                                              ; preds = %455
  %476 = load ptr, ptr %11, align 8, !tbaa !5
  %477 = getelementptr inbounds i8, ptr %476, i64 8
  %478 = getelementptr inbounds %struct.HighsInfoStruct, ptr %477, i32 0, i32 8
  %479 = load i32, ptr %478, align 8, !tbaa !53
  %480 = icmp eq i32 %479, 1
  br i1 %480, label %481, label %482

481:                                              ; preds = %475
  br label %484

482:                                              ; preds = %475
  call void @__assert_fail(ptr noundef @.str.110, ptr noundef @.str.73, i32 noundef 307, ptr noundef @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

483:                                              ; No predecessors!
  br label %484

484:                                              ; preds = %483, %481
  %485 = load ptr, ptr %7, align 8, !tbaa !5
  %486 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.105, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %487 unwind label %489

487:                                              ; preds = %484
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %485, ptr noundef nonnull align 8 dereferenceable(89) %486, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %488 unwind label %493

488:                                              ; preds = %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %498

489:                                              ; preds = %484
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %21, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %22, align 4
  br label %497

493:                                              ; preds = %487
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %21, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %497

497:                                              ; preds = %493, %489
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %743

498:                                              ; preds = %488, %465
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %499 unwind label %518

499:                                              ; preds = %498
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  %500 = getelementptr inbounds i8, ptr %18, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #7
  %501 = load ptr, ptr %13, align 8, !tbaa !5
  %502 = getelementptr inbounds %class.HighsLp, ptr %501, i32 0, i32 0
  %503 = load i32, ptr %502, align 8, !tbaa !20
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef @.str.89, i32 noundef %503)
          to label %504 unwind label %522

504:                                              ; preds = %499
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %500, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %506 unwind label %526

506:                                              ; preds = %504
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  %507 = load ptr, ptr %7, align 8, !tbaa !5
  %508 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %509 unwind label %531

509:                                              ; preds = %506
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %507, ptr noundef nonnull align 8 dereferenceable(89) %508, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %510 unwind label %535

510:                                              ; preds = %509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 0, ptr %51, align 4, !tbaa !54
  br label %511

511:                                              ; preds = %578, %510
  %512 = load i32, ptr %51, align 4, !tbaa !54
  %513 = load ptr, ptr %13, align 8, !tbaa !5
  %514 = getelementptr inbounds %class.HighsLp, ptr %513, i32 0, i32 0
  %515 = load i32, ptr %514, align 8, !tbaa !20
  %516 = icmp slt i32 %512, %515
  br i1 %516, label %540, label %517

517:                                              ; preds = %511
  store i32 5, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %618

518:                                              ; preds = %498
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %21, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  br label %743

522:                                              ; preds = %499
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %21, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %22, align 4
  br label %530

526:                                              ; preds = %504
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %21, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %530

530:                                              ; preds = %526, %522
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  br label %743

531:                                              ; preds = %506
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %21, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %22, align 4
  br label %539

535:                                              ; preds = %509
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %21, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %539

539:                                              ; preds = %535, %531
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br label %743

540:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  %541 = load ptr, ptr %10, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.HighsSolution, ptr %541, i32 0, i32 3
  %543 = load i32, ptr %51, align 4, !tbaa !54
  %544 = sext i32 %543 to i64
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %542, i64 noundef %544) #7
  %546 = load double, ptr %545, align 8, !tbaa !55
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %52, double noundef %546, double noundef 1.000000e-13)
          to label %547 unwind label %581

547:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %548 unwind label %585

548:                                              ; preds = %547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  %549 = getelementptr inbounds i8, ptr %18, i64 16
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %549, ptr noundef @.str.90)
          to label %551 unwind label %581

551:                                              ; preds = %548
  %552 = load i32, ptr %51, align 4, !tbaa !54
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %550, i32 noundef %552)
          to label %554 unwind label %581

554:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #7
  %555 = load i8, ptr %14, align 1, !tbaa !9, !range !17, !noundef !18
  %556 = trunc i8 %555 to i1
  br i1 %556, label %557, label %564

557:                                              ; preds = %554
  %558 = load ptr, ptr %13, align 8, !tbaa !5
  %559 = getelementptr inbounds %class.HighsLp, ptr %558, i32 0, i32 14
  %560 = load i32, ptr %51, align 4, !tbaa !54
  %561 = sext i32 %560 to i64
  %562 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %559, i64 noundef %561) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %562)
          to label %563 unwind label %589

563:                                              ; preds = %557
  br label %566

564:                                              ; preds = %554
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %565 unwind label %589

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565, %563
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %567 unwind label %593

567:                                              ; preds = %566
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  %568 = getelementptr inbounds i8, ptr %18, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  %569 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  %570 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %52) #9
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef @.str.108, ptr noundef %569, ptr noundef %570)
          to label %571 unwind label %597

571:                                              ; preds = %567
  %572 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %568, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %573 unwind label %601

573:                                              ; preds = %571
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  %574 = load ptr, ptr %7, align 8, !tbaa !5
  %575 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %576 unwind label %606

576:                                              ; preds = %573
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %574, ptr noundef nonnull align 8 dereferenceable(89) %575, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %577 unwind label %610

577:                                              ; preds = %576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  br label %578

578:                                              ; preds = %577
  %579 = load i32, ptr %51, align 4, !tbaa !54
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr %51, align 4, !tbaa !54
  br label %511, !llvm.loop !58

581:                                              ; preds = %551, %548, %540
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %21, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %22, align 4
  br label %617

585:                                              ; preds = %547
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %21, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  br label %617

589:                                              ; preds = %564, %557
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %21, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %22, align 4
  br label %616

593:                                              ; preds = %566
  %594 = landingpad { ptr, i32 }
          cleanup
  %595 = extractvalue { ptr, i32 } %594, 0
  store ptr %595, ptr %21, align 8
  %596 = extractvalue { ptr, i32 } %594, 1
  store i32 %596, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  br label %615

597:                                              ; preds = %567
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %21, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %22, align 4
  br label %605

601:                                              ; preds = %571
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %21, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %605

605:                                              ; preds = %601, %597
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  br label %615

606:                                              ; preds = %573
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %21, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %22, align 4
  br label %614

610:                                              ; preds = %576
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %21, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %614

614:                                              ; preds = %610, %606
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  br label %615

615:                                              ; preds = %614, %605, %593
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %616

616:                                              ; preds = %615, %589
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %617

617:                                              ; preds = %616, %585, %581
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %743

618:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %619 unwind label %638

619:                                              ; preds = %618
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  %620 = getelementptr inbounds i8, ptr %18, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #7
  %621 = load ptr, ptr %13, align 8, !tbaa !5
  %622 = getelementptr inbounds %class.HighsLp, ptr %621, i32 0, i32 1
  %623 = load i32, ptr %622, align 4, !tbaa !50
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef @.str.106, i32 noundef %623)
          to label %624 unwind label %642

624:                                              ; preds = %619
  %625 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %626 unwind label %646

626:                                              ; preds = %624
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  %627 = load ptr, ptr %7, align 8, !tbaa !5
  %628 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %629 unwind label %651

629:                                              ; preds = %626
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %627, ptr noundef nonnull align 8 dereferenceable(89) %628, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %630 unwind label %655

630:                                              ; preds = %629
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  store i32 0, ptr %61, align 4, !tbaa !54
  br label %631

631:                                              ; preds = %698, %630
  %632 = load i32, ptr %61, align 4, !tbaa !54
  %633 = load ptr, ptr %13, align 8, !tbaa !5
  %634 = getelementptr inbounds %class.HighsLp, ptr %633, i32 0, i32 1
  %635 = load i32, ptr %634, align 4, !tbaa !50
  %636 = icmp slt i32 %632, %635
  br i1 %636, label %660, label %637

637:                                              ; preds = %631
  store i32 8, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %738

638:                                              ; preds = %618
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %21, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  br label %743

642:                                              ; preds = %619
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %21, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %22, align 4
  br label %650

646:                                              ; preds = %624
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %21, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %650

650:                                              ; preds = %646, %642
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  br label %743

651:                                              ; preds = %626
  %652 = landingpad { ptr, i32 }
          cleanup
  %653 = extractvalue { ptr, i32 } %652, 0
  store ptr %653, ptr %21, align 8
  %654 = extractvalue { ptr, i32 } %652, 1
  store i32 %654, ptr %22, align 4
  br label %659

655:                                              ; preds = %629
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %21, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %659

659:                                              ; preds = %655, %651
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  br label %743

660:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  %661 = load ptr, ptr %10, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.HighsSolution, ptr %661, i32 0, i32 5
  %663 = load i32, ptr %61, align 4, !tbaa !54
  %664 = sext i32 %663 to i64
  %665 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %662, i64 noundef %664) #7
  %666 = load double, ptr %665, align 8, !tbaa !55
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %62, double noundef %666, double noundef 1.000000e-13)
          to label %667 unwind label %701

667:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %668 unwind label %705

668:                                              ; preds = %667
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #7
  %669 = getelementptr inbounds i8, ptr %18, i64 16
  %670 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %669, ptr noundef @.str.107)
          to label %671 unwind label %701

671:                                              ; preds = %668
  %672 = load i32, ptr %61, align 4, !tbaa !54
  %673 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %670, i32 noundef %672)
          to label %674 unwind label %701

674:                                              ; preds = %671
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #7
  %675 = load i8, ptr %15, align 1, !tbaa !9, !range !17, !noundef !18
  %676 = trunc i8 %675 to i1
  br i1 %676, label %677, label %684

677:                                              ; preds = %674
  %678 = load ptr, ptr %13, align 8, !tbaa !5
  %679 = getelementptr inbounds %class.HighsLp, ptr %678, i32 0, i32 15
  %680 = load i32, ptr %61, align 4, !tbaa !54
  %681 = sext i32 %680 to i64
  %682 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %679, i64 noundef %681) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %683 unwind label %709

683:                                              ; preds = %677
  br label %686

684:                                              ; preds = %674
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %685 unwind label %709

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685, %683
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %687 unwind label %713

687:                                              ; preds = %686
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  %688 = getelementptr inbounds i8, ptr %18, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #7
  %689 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  %690 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %62) #9
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef @.str.108, ptr noundef %689, ptr noundef %690)
          to label %691 unwind label %717

691:                                              ; preds = %687
  %692 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %688, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %693 unwind label %721

693:                                              ; preds = %691
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  %694 = load ptr, ptr %7, align 8, !tbaa !5
  %695 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %696 unwind label %726

696:                                              ; preds = %693
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %694, ptr noundef nonnull align 8 dereferenceable(89) %695, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %697 unwind label %730

697:                                              ; preds = %696
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %698

698:                                              ; preds = %697
  %699 = load i32, ptr %61, align 4, !tbaa !54
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr %61, align 4, !tbaa !54
  br label %631, !llvm.loop !59

701:                                              ; preds = %671, %668, %660
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %21, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %22, align 4
  br label %737

705:                                              ; preds = %667
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %21, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #7
  br label %737

709:                                              ; preds = %684, %677
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %21, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %22, align 4
  br label %736

713:                                              ; preds = %686
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %21, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %735

717:                                              ; preds = %687
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %21, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %22, align 4
  br label %725

721:                                              ; preds = %691
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %21, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %725

725:                                              ; preds = %721, %717
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  br label %735

726:                                              ; preds = %693
  %727 = landingpad { ptr, i32 }
          cleanup
  %728 = extractvalue { ptr, i32 } %727, 0
  store ptr %728, ptr %21, align 8
  %729 = extractvalue { ptr, i32 } %727, 1
  store i32 %729, ptr %22, align 4
  br label %734

730:                                              ; preds = %696
  %731 = landingpad { ptr, i32 }
          cleanup
  %732 = extractvalue { ptr, i32 } %731, 0
  store ptr %732, ptr %21, align 8
  %733 = extractvalue { ptr, i32 } %731, 1
  store i32 %733, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %734

734:                                              ; preds = %730, %726
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  br label %735

735:                                              ; preds = %734, %725, %713
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %736

736:                                              ; preds = %735, %709
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  br label %737

737:                                              ; preds = %736, %705, %701
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %743

738:                                              ; preds = %637
  br label %739

739:                                              ; preds = %738, %436
  store i32 0, ptr %29, align 4
  br label %740

740:                                              ; preds = %739, %293
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  %741 = load i32, ptr %29, align 4
  switch i32 %741, label %749 [
    i32 0, label %742
    i32 1, label %742
  ]

742:                                              ; preds = %740, %740
  ret void

743:                                              ; preds = %737, %659, %650, %638, %617, %539, %530, %518, %497, %474, %454, %445, %417, %339, %330, %318, %294, %274, %251, %231, %222
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  br label %744

744:                                              ; preds = %743
  %745 = load ptr, ptr %21, align 8
  %746 = load i32, ptr %22, align 4
  %747 = insertvalue { ptr, i32 } poison, ptr %745, 0
  %748 = insertvalue { ptr, i32 } %747, i32 %746, 1
  resume { ptr, i32 } %748

749:                                              ; preds = %740
  unreachable
}

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 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = { mustprogress nounwind willreturn memory(none) 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 }
attributes #9 = { nounwind willreturn memory(none) }

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

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


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.std::array" = type { [32 x i8] }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::allocator" = type { i8 }

@.str.73 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [41 x i8], align 1
@__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob = external hidden unnamed_addr constant [131 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [55 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

declare void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

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

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

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

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

declare void @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ...) local_unnamed_addr #4

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

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

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

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

declare void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1, double noundef, double noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #6 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(1000) %2, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr nocapture noundef nonnull readonly align 8 dereferenceable(184) %4, i1 noundef zeroext %5) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %7 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"struct.std::array", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", 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 %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"struct.std::array", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"struct.std::array", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = getelementptr inbounds i8, ptr %2, i64 328
  %52 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #7
  %.not = icmp eq i64 %52, 0
  %53 = getelementptr inbounds i8, ptr %2, i64 352
  %54 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  %.not135 = icmp eq i64 %54, 0
  %55 = load i8, ptr %3, align 8, !tbaa !5, !range !15, !noundef !16
  %56 = trunc nuw i8 %55 to i1
  %57 = getelementptr inbounds i8, ptr %3, i64 1
  %58 = load i8, ptr %57, align 1, !tbaa !17, !range !15, !noundef !16
  %59 = trunc nuw i8 %58 to i1
  br i1 %.not, label %65, label %60

60:                                               ; preds = %6
  %61 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #7
  %62 = trunc i64 %61 to i32
  %63 = load i32, ptr %2, align 8, !tbaa !18
  %.not136 = icmp sgt i32 %63, %62
  br i1 %.not136, label %64, label %65

64:                                               ; preds = %60
  tail call void @__assert_fail(ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.73, i32 noundef 258, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

65:                                               ; preds = %60, %6
  br i1 %.not135, label %72, label %66

66:                                               ; preds = %65
  %67 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  %68 = trunc i64 %67 to i32
  %69 = getelementptr inbounds i8, ptr %2, i64 4
  %70 = load i32, ptr %69, align 4, !tbaa !48
  %.not137 = icmp sgt i32 %70, %68
  br i1 %.not137, label %71, label %72

71:                                               ; preds = %66
  tail call void @__assert_fail(ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.73, i32 noundef 259, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

72:                                               ; preds = %66, %65
  br i1 %56, label %73, label %90

73:                                               ; preds = %72
  %74 = getelementptr inbounds i8, ptr %3, i64 8
  %75 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %74) #7
  %76 = trunc i64 %75 to i32
  %77 = load i32, ptr %2, align 8, !tbaa !18
  %.not138 = icmp sgt i32 %77, %76
  br i1 %.not138, label %78, label %79

78:                                               ; preds = %73
  tail call void @__assert_fail(ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.73, i32 noundef 261, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

79:                                               ; preds = %73
  %80 = getelementptr inbounds i8, ptr %3, i64 56
  %81 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %80) #7
  %82 = trunc i64 %81 to i32
  %83 = getelementptr inbounds i8, ptr %2, i64 4
  %84 = load i32, ptr %83, align 4, !tbaa !48
  %.not139 = icmp sgt i32 %84, %82
  br i1 %.not139, label %85, label %86

85:                                               ; preds = %79
  tail call void @__assert_fail(ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.73, i32 noundef 262, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

86:                                               ; preds = %79
  %87 = getelementptr inbounds i8, ptr %4, i64 44
  %88 = load i32, ptr %87, align 4, !tbaa !49
  %.not140 = icmp eq i32 %88, 0
  br i1 %.not140, label %89, label %90

89:                                               ; preds = %86
  tail call void @__assert_fail(ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.73, i32 noundef 263, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

90:                                               ; preds = %86, %72
  br i1 %59, label %91, label %108

91:                                               ; preds = %90
  %92 = getelementptr inbounds i8, ptr %3, i64 32
  %93 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %92) #7
  %94 = trunc i64 %93 to i32
  %95 = load i32, ptr %2, align 8, !tbaa !18
  %.not141 = icmp sgt i32 %95, %94
  br i1 %.not141, label %96, label %97

96:                                               ; preds = %91
  tail call void @__assert_fail(ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.73, i32 noundef 266, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

97:                                               ; preds = %91
  %98 = getelementptr inbounds i8, ptr %3, i64 80
  %99 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #7
  %100 = trunc i64 %99 to i32
  %101 = getelementptr inbounds i8, ptr %2, i64 4
  %102 = load i32, ptr %101, align 4, !tbaa !48
  %.not142 = icmp sgt i32 %102, %100
  br i1 %.not142, label %103, label %104

103:                                              ; preds = %97
  tail call void @__assert_fail(ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.73, i32 noundef 267, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

104:                                              ; preds = %97
  %105 = getelementptr inbounds i8, ptr %4, i64 48
  %106 = load i32, ptr %105, align 8, !tbaa !51
  %.not143 = icmp eq i32 %106, 0
  br i1 %.not143, label %107, label %108

107:                                              ; preds = %104
  tail call void @__assert_fail(ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.73, i32 noundef 268, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

108:                                              ; preds = %104, %90
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %7) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %109 unwind label %117

109:                                              ; preds = %108
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %110 unwind label %119

110:                                              ; preds = %109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br i1 %56, label %111, label %114

111:                                              ; preds = %110
  %112 = getelementptr inbounds i8, ptr %4, i64 44
  %113 = load i32, ptr %112, align 4, !tbaa !49
  switch i32 %113, label %135 [
    i32 0, label %114
    i32 2, label %127
    i32 1, label %136
  ]

114:                                              ; preds = %111, %110
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %115 unwind label %122

115:                                              ; preds = %114
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %116 unwind label %124

116:                                              ; preds = %115
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(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.end.p0(i64 32, ptr nonnull %10) #7
  br label %.loopexit193

117:                                              ; preds = %108
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %121

119:                                              ; preds = %109
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %121

121:                                              ; preds = %119, %117
  %.pn = phi { ptr, i32 } [ %120, %119 ], [ %118, %117 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %395

122:                                              ; preds = %114
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %126

124:                                              ; preds = %115
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %126

126:                                              ; preds = %124, %122
  %.pn160 = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(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.end.p0(i64 32, ptr nonnull %10) #7
  br label %395

127:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %128 unwind label %130

128:                                              ; preds = %127
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %129 unwind label %132

129:                                              ; preds = %128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %144

130:                                              ; preds = %127
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %134

132:                                              ; preds = %128
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %134

134:                                              ; preds = %132, %130
  %.pn147 = phi { ptr, i32 } [ %133, %132 ], [ %131, %130 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %395

135:                                              ; preds = %111
  call void @__assert_fail(ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.73, i32 noundef 278, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

136:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.105, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %137 unwind label %139

137:                                              ; preds = %136
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %138 unwind label %141

138:                                              ; preds = %137
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %144

139:                                              ; preds = %136
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %143

141:                                              ; preds = %137
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %143

143:                                              ; preds = %141, %139
  %.pn145 = phi { ptr, i32 } [ %142, %141 ], [ %140, %139 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %395

144:                                              ; preds = %138, %129
  %145 = getelementptr inbounds i8, ptr %3, i64 8
  invoke void @_Z19writeModelObjectiveP8_IO_FILERK15HighsLogOptionsRK10HighsModelRKSt6vectorIdSaIdEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(1000) %2, ptr noundef nonnull align 8 dereferenceable(24) %145)
          to label %146 unwind label %148

146:                                              ; preds = %144
  invoke void @_Z19writePrimalSolutionP8_IO_FILERK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEEb(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(920) %2, ptr noundef nonnull align 8 dereferenceable(24) %145, i1 noundef zeroext %5)
          to label %147 unwind label %148

147:                                              ; preds = %146
  br i1 %5, label %.loopexit, label %150

148:                                              ; preds = %146, %144
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %395

150:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %151 unwind label %163

151:                                              ; preds = %150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  %152 = getelementptr inbounds i8, ptr %7, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  %153 = getelementptr inbounds i8, ptr %2, i64 4
  %154 = load i32, ptr %153, align 4, !tbaa !48
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull @.str.106, i32 noundef %154)
          to label %155 unwind label %165

155:                                              ; preds = %151
  %156 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %157 unwind label %167

157:                                              ; preds = %155
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %158 unwind label %170

158:                                              ; preds = %157
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %159 unwind label %172

159:                                              ; preds = %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  %160 = load i32, ptr %153, align 4, !tbaa !48
  %161 = icmp sgt i32 %160, 0
  br i1 %161, label %.lr.ph, label %.loopexit193

.lr.ph:                                           ; preds = %159
  %162 = getelementptr inbounds i8, ptr %3, i64 56
  br label %175

163:                                              ; preds = %150
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %395

165:                                              ; preds = %151
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %169

167:                                              ; preds = %155
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %169

169:                                              ; preds = %167, %165
  %.pn149 = phi { ptr, i32 } [ %168, %167 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %395

170:                                              ; preds = %157
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %174

172:                                              ; preds = %158
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %174

174:                                              ; preds = %172, %170
  %.pn151 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %395

175:                                              ; preds = %.lr.ph, %196
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %196 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %indvars.iv) #7
  %177 = load double, ptr %176, align 8, !tbaa !52
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %19, double noundef %177, double noundef 1.000000e-13)
          to label %178 unwind label %200

178:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %179 unwind label %202

179:                                              ; preds = %178
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull @.str.107)
          to label %181 unwind label %200

181:                                              ; preds = %179
  %182 = trunc nuw nsw i64 %indvars.iv to i32
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %180, i32 noundef %182)
          to label %184 unwind label %200

184:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  br i1 %.not135, label %187, label %185

185:                                              ; preds = %184
  %186 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %186)
          to label %188 unwind label %204

187:                                              ; preds = %184
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %188 unwind label %204

188:                                              ; preds = %187, %185
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %189 unwind label %206

189:                                              ; preds = %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  %190 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  %191 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %19) #9
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull @.str.108, ptr noundef %190, ptr noundef %191)
          to label %192 unwind label %208

192:                                              ; preds = %189
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %194 unwind label %210

194:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %195 unwind label %213

195:                                              ; preds = %194
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %196 unwind label %215

196:                                              ; preds = %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %197 = load i32, ptr %153, align 4, !tbaa !48
  %198 = sext i32 %197 to i64
  %199 = icmp slt i64 %indvars.iv.next, %198
  br i1 %199, label %175, label %.loopexit193, !llvm.loop !53

200:                                              ; preds = %181, %179, %175
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %220

202:                                              ; preds = %178
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %220

204:                                              ; preds = %187, %185
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %219

206:                                              ; preds = %188
  %207 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %218

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

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

212:                                              ; preds = %210, %208
  %.pn153 = phi { ptr, i32 } [ %211, %210 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %218

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

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

217:                                              ; preds = %215, %213
  %.pn155 = phi { ptr, i32 } [ %216, %215 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %218

218:                                              ; preds = %217, %212, %206
  %.pn155.pn = phi { ptr, i32 } [ %.pn155, %217 ], [ %.pn153, %212 ], [ %207, %206 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %219

219:                                              ; preds = %218, %204
  %.pn155.pn.pn = phi { ptr, i32 } [ %.pn155.pn, %218 ], [ %205, %204 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %220

220:                                              ; preds = %219, %202, %200
  %.pn155.pn.pn.pn = phi { ptr, i32 } [ %.pn155.pn.pn, %219 ], [ %201, %200 ], [ %203, %202 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %395

.loopexit193:                                     ; preds = %196, %159, %116
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  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.109, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %221 unwind label %229

221:                                              ; preds = %.loopexit193
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %222 unwind label %231

222:                                              ; preds = %221
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br i1 %59, label %223, label %226

223:                                              ; preds = %222
  %224 = getelementptr inbounds i8, ptr %4, i64 48
  %225 = load i32, ptr %224, align 8, !tbaa !51
  switch i32 %225, label %247 [
    i32 0, label %226
    i32 2, label %239
    i32 1, label %248
  ]

226:                                              ; preds = %223, %222
  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.102, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %227 unwind label %234

227:                                              ; preds = %226
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %228 unwind label %236

228:                                              ; preds = %227
  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
  br label %.loopexit

229:                                              ; preds = %.loopexit193
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %233

231:                                              ; preds = %221
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %233

233:                                              ; preds = %231, %229
  %.pn162 = phi { ptr, i32 } [ %232, %231 ], [ %230, %229 ]
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %395

234:                                              ; preds = %226
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %227
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %238

238:                                              ; preds = %236, %234
  %.pn190 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  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 %395

239:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %240 unwind label %242

240:                                              ; preds = %239
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %241 unwind label %244

241:                                              ; preds = %240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  br label %256

242:                                              ; preds = %239
  %243 = landingpad { ptr, i32 }
          cleanup
  br label %246

244:                                              ; preds = %240
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %246

246:                                              ; preds = %244, %242
  %.pn166 = phi { ptr, i32 } [ %245, %244 ], [ %243, %242 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  br label %395

247:                                              ; preds = %223
  call void @__assert_fail(ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.73, i32 noundef 307, ptr noundef nonnull @__PRETTY_FUNCTION__._Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob) #8
  unreachable

248:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  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.105, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %249 unwind label %251

249:                                              ; preds = %248
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %250 unwind label %253

250:                                              ; preds = %249
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %256

251:                                              ; preds = %248
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %255

253:                                              ; preds = %249
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %255

255:                                              ; preds = %253, %251
  %.pn164 = phi { ptr, i32 } [ %254, %253 ], [ %252, %251 ]
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %395

256:                                              ; preds = %250, %241
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %257 unwind label %268

257:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  %258 = getelementptr inbounds i8, ptr %7, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #7
  %259 = load i32, ptr %2, align 8, !tbaa !18
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull @.str.89, i32 noundef %259)
          to label %260 unwind label %270

260:                                              ; preds = %257
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %262 unwind label %272

262:                                              ; preds = %260
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %263 unwind label %275

263:                                              ; preds = %262
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %264 unwind label %277

264:                                              ; preds = %263
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  %265 = load i32, ptr %2, align 8, !tbaa !18
  %266 = icmp sgt i32 %265, 0
  br i1 %266, label %.lr.ph196, label %._crit_edge

.lr.ph196:                                        ; preds = %264
  %267 = getelementptr inbounds i8, ptr %3, i64 32
  br label %280

._crit_edge:                                      ; preds = %301, %264
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %326 unwind label %337

268:                                              ; preds = %256
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br label %395

270:                                              ; preds = %257
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %274

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

274:                                              ; preds = %272, %270
  %.pn168 = phi { ptr, i32 } [ %273, %272 ], [ %271, %270 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  br label %395

275:                                              ; preds = %262
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %279

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

279:                                              ; preds = %277, %275
  %.pn170 = phi { ptr, i32 } [ %278, %277 ], [ %276, %275 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %395

280:                                              ; preds = %.lr.ph196, %301
  %indvars.iv201 = phi i64 [ 0, %.lr.ph196 ], [ %indvars.iv.next202, %301 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %267, i64 noundef %indvars.iv201) #7
  %282 = load double, ptr %281, align 8, !tbaa !52
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %36, double noundef %282, double noundef 1.000000e-13)
          to label %283 unwind label %305

283:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %284 unwind label %307

284:                                              ; preds = %283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  %285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull @.str.90)
          to label %286 unwind label %305

286:                                              ; preds = %284
  %287 = trunc nuw nsw i64 %indvars.iv201 to i32
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %285, i32 noundef %287)
          to label %289 unwind label %305

289:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  br i1 %.not, label %292, label %290

290:                                              ; preds = %289
  %291 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef %indvars.iv201) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %291)
          to label %293 unwind label %309

292:                                              ; preds = %289
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %293 unwind label %309

293:                                              ; preds = %292, %290
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %294 unwind label %311

294:                                              ; preds = %293
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  %295 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  %296 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %36) #9
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull @.str.108, ptr noundef %295, ptr noundef %296)
          to label %297 unwind label %313

297:                                              ; preds = %294
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %299 unwind label %315

299:                                              ; preds = %297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %300 unwind label %318

300:                                              ; preds = %299
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %301 unwind label %320

301:                                              ; preds = %300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  %indvars.iv.next202 = add nuw nsw i64 %indvars.iv201, 1
  %302 = load i32, ptr %2, align 8, !tbaa !18
  %303 = sext i32 %302 to i64
  %304 = icmp slt i64 %indvars.iv.next202, %303
  br i1 %304, label %280, label %._crit_edge, !llvm.loop !55

305:                                              ; preds = %286, %284, %280
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %325

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

309:                                              ; preds = %292, %290
  %310 = landingpad { ptr, i32 }
          cleanup
  br label %324

311:                                              ; preds = %293
  %312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  br label %323

313:                                              ; preds = %294
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %317

315:                                              ; preds = %297
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %317

317:                                              ; preds = %315, %313
  %.pn183 = phi { ptr, i32 } [ %316, %315 ], [ %314, %313 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  br label %323

318:                                              ; preds = %299
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %322

320:                                              ; preds = %300
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %322

322:                                              ; preds = %320, %318
  %.pn185 = phi { ptr, i32 } [ %321, %320 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br label %323

323:                                              ; preds = %322, %317, %311
  %.pn185.pn = phi { ptr, i32 } [ %.pn185, %322 ], [ %.pn183, %317 ], [ %312, %311 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %324

324:                                              ; preds = %323, %309
  %.pn185.pn.pn = phi { ptr, i32 } [ %.pn185.pn, %323 ], [ %310, %309 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %325

325:                                              ; preds = %324, %307, %305
  %.pn185.pn.pn.pn = phi { ptr, i32 } [ %.pn185.pn.pn, %324 ], [ %306, %305 ], [ %308, %307 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  br label %395

326:                                              ; preds = %._crit_edge
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  %327 = getelementptr inbounds i8, ptr %2, i64 4
  %328 = load i32, ptr %327, align 4, !tbaa !48
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull @.str.106, i32 noundef %328)
          to label %329 unwind label %339

329:                                              ; preds = %326
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %331 unwind label %341

331:                                              ; preds = %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %332 unwind label %344

332:                                              ; preds = %331
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %333 unwind label %346

333:                                              ; preds = %332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  %334 = load i32, ptr %327, align 4, !tbaa !48
  %335 = icmp sgt i32 %334, 0
  br i1 %335, label %.lr.ph199, label %.loopexit

.lr.ph199:                                        ; preds = %333
  %336 = getelementptr inbounds i8, ptr %3, i64 80
  br label %349

337:                                              ; preds = %._crit_edge
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  br label %395

339:                                              ; preds = %326
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %343

341:                                              ; preds = %329
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %343

343:                                              ; preds = %341, %339
  %.pn172 = phi { ptr, i32 } [ %342, %341 ], [ %340, %339 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  br label %395

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

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

348:                                              ; preds = %346, %344
  %.pn174 = phi { ptr, i32 } [ %347, %346 ], [ %345, %344 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  br label %395

349:                                              ; preds = %.lr.ph199, %370
  %indvars.iv204 = phi i64 [ 0, %.lr.ph199 ], [ %indvars.iv.next205, %370 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #7
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %336, i64 noundef %indvars.iv204) #7
  %351 = load double, ptr %350, align 8, !tbaa !52
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %45, double noundef %351, double noundef 1.000000e-13)
          to label %352 unwind label %374

352:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %353 unwind label %376

353:                                              ; preds = %352
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  %354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull @.str.107)
          to label %355 unwind label %374

355:                                              ; preds = %353
  %356 = trunc nuw nsw i64 %indvars.iv204 to i32
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %354, i32 noundef %356)
          to label %358 unwind label %374

358:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  br i1 %.not135, label %361, label %359

359:                                              ; preds = %358
  %360 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv204) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %360)
          to label %362 unwind label %378

361:                                              ; preds = %358
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %362 unwind label %378

362:                                              ; preds = %361, %359
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %363 unwind label %380

363:                                              ; preds = %362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #7
  %364 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  %365 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %45) #9
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull @.str.108, ptr noundef %364, ptr noundef %365)
          to label %366 unwind label %382

366:                                              ; preds = %363
  %367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %368 unwind label %384

368:                                              ; preds = %366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(128) %7)
          to label %369 unwind label %387

369:                                              ; preds = %368
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %370 unwind label %389

370:                                              ; preds = %369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  %indvars.iv.next205 = add nuw nsw i64 %indvars.iv204, 1
  %371 = load i32, ptr %327, align 4, !tbaa !48
  %372 = sext i32 %371 to i64
  %373 = icmp slt i64 %indvars.iv.next205, %372
  br i1 %373, label %349, label %.loopexit, !llvm.loop !56

374:                                              ; preds = %355, %353, %349
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %394

376:                                              ; preds = %352
  %377 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  br label %394

378:                                              ; preds = %361, %359
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %393

380:                                              ; preds = %362
  %381 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  br label %392

382:                                              ; preds = %363
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %386

384:                                              ; preds = %366
  %385 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %386

386:                                              ; preds = %384, %382
  %.pn176 = phi { ptr, i32 } [ %385, %384 ], [ %383, %382 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  br label %392

387:                                              ; preds = %368
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %391

389:                                              ; preds = %369
  %390 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %391

391:                                              ; preds = %389, %387
  %.pn178 = phi { ptr, i32 } [ %390, %389 ], [ %388, %387 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  br label %392

392:                                              ; preds = %391, %386, %380
  %.pn178.pn = phi { ptr, i32 } [ %.pn178, %391 ], [ %.pn176, %386 ], [ %381, %380 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %393

393:                                              ; preds = %392, %378
  %.pn178.pn.pn = phi { ptr, i32 } [ %.pn178.pn, %392 ], [ %379, %378 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  br label %394

394:                                              ; preds = %393, %376, %374
  %.pn178.pn.pn.pn = phi { ptr, i32 } [ %.pn178.pn.pn, %393 ], [ %375, %374 ], [ %377, %376 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  br label %395

.loopexit:                                        ; preds = %370, %333, %228, %147
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %7) #7
  ret void

395:                                              ; preds = %394, %348, %343, %337, %325, %279, %274, %268, %255, %246, %238, %233, %220, %174, %169, %163, %148, %143, %134, %126, %121
  %.pn190.pn = phi { ptr, i32 } [ %.pn190, %238 ], [ %.pn185.pn.pn.pn, %325 ], [ %.pn178.pn.pn.pn, %394 ], [ %.pn174, %348 ], [ %.pn172, %343 ], [ %338, %337 ], [ %.pn170, %279 ], [ %.pn168, %274 ], [ %269, %268 ], [ %.pn166, %246 ], [ %.pn164, %255 ], [ %.pn162, %233 ], [ %.pn160, %126 ], [ %.pn155.pn.pn.pn, %220 ], [ %.pn151, %174 ], [ %.pn149, %169 ], [ %164, %163 ], [ %149, %148 ], [ %.pn147, %134 ], [ %.pn145, %143 ], [ %.pn, %121 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %7) #7
  resume { ptr, i32 } %.pn190.pn
}

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

!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 0}
!6 = !{!"_ZTS13HighsSolution", !7, i64 0, !7, i64 1, !10, i64 8, !10, i64 32, !10, i64 56, !10, i64 80}
!7 = !{!"bool", !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 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!6, !7, i64 1}
!18 = !{!19, !20, i64 0}
!19 = !{!"_ZTS7HighsLp", !20, i64 0, !20, i64 4, !10, i64 8, !10, i64 32, !10, i64 56, !10, i64 80, !10, i64 104, !21, i64 128, !27, i64 240, !28, i64 248, !29, i64 256, !29, i64 288, !20, i64 320, !20, i64 324, !32, i64 328, !32, i64 352, !36, i64 376, !40, i64 400, !40, i64 456, !20, i64 512, !20, i64 516, !46, i64 520, !7, i64 592, !7, i64 593, !20, i64 596, !7, i64 600, !47, i64 608}
!20 = !{!"int", !8, i64 0}
!21 = !{!"_ZTS17HighsSparseMatrix", !22, i64 0, !20, i64 4, !20, i64 8, !23, i64 16, !23, i64 40, !23, i64 64, !10, i64 88}
!22 = !{!"_ZTS12MatrixFormat", !8, i64 0}
!23 = !{!"_ZTSSt6vectorIiSaIiEE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!27 = !{!"_ZTS8ObjSense", !8, i64 0}
!28 = !{!"double", !8, i64 0}
!29 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !30, i64 0, !31, i64 8, !8, i64 16}
!30 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !14, i64 0}
!31 = !{!"long", !8, i64 0}
!32 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!36 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!40 = !{!"_ZTS13HighsNameHash", !41, i64 0}
!41 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !42, i64 0}
!42 = !{!"_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, !31, i64 8, !43, i64 16, !31, i64 24, !44, i64 32, !14, i64 48}
!43 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !14, i64 0}
!44 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !45, i64 0, !31, i64 8}
!45 = !{!"float", !8, i64 0}
!46 = !{!"_ZTS10HighsScale", !20, i64 0, !7, i64 4, !20, i64 8, !20, i64 12, !28, i64 16, !10, i64 24, !10, i64 48}
!47 = !{!"_ZTS11HighsLpMods", !23, i64 0, !23, i64 24, !10, i64 48, !10, i64 72, !36, i64 96, !23, i64 120, !10, i64 144, !23, i64 168, !10, i64 192, !23, i64 216, !10, i64 240, !10, i64 264, !10, i64 288}
!48 = !{!19, !20, i64 4}
!49 = !{!50, !20, i64 36}
!50 = !{!"_ZTS15HighsInfoStruct", !7, i64 0, !31, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !20, i64 28, !20, i64 32, !20, i64 36, !20, i64 40, !20, i64 44, !28, i64 48, !28, i64 56, !28, i64 64, !28, i64 72, !20, i64 80, !28, i64 88, !28, i64 96, !20, i64 104, !28, i64 112, !28, i64 120, !28, i64 128, !28, i64 136, !28, i64 144}
!51 = !{!50, !20, i64 40}
!52 = !{!28, !28, i64 0}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}
!55 = distinct !{!55, !54}
!56 = distinct !{!56, !54}


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