; 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::allocator" = type { 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 }
%struct.HighsSolution = type { i8, i8, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%"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 }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.8", %"class.std::vector.8" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.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.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.HighsOptionsStruct = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i8, i8, i32, i32, double, i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, double, double, double, double, double, double, double, double, double, double, double, i8, i8, i8, i8, i32, double, i8, i8, %"class.std::__cxx11::basic_string", double, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i8, i8, %"class.std::__cxx11::basic_string", i8, i32, %struct.HighsLogOptions }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%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.82 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [37 x i8], align 1
@__PRETTY_FUNCTION__._Z17writeSolutionFileP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolutionRK9HighsInfo16HighsModelStatusi = external hidden unnamed_addr constant [175 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [4 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 uwtable
declare dso_local void @_Z23writeModelBoundSolutionP8_IO_FILERK15HighsLogOptionsbiRKSt6vectorIdSaIdEES8_RKS4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EEbS8_bS8_bRKS4_I16HighsBasisStatusSaISJ_EEPK12HighsVarType(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #2

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

; 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: 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 void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 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 @_Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(1000), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(184), i1 noundef zeroext) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z17writeSolutionFileP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolutionRK9HighsInfo16HighsModelStatusi(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(1020) %1, ptr noundef nonnull align 8 dereferenceable(1000) %2, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(184) %5, i32 noundef %6, i32 noundef %7) #2 personality ptr @__gxx_personality_v0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"struct.std::array", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", 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 i8, align 1
  %39 = alloca i8, align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store i32 %6, ptr %15, align 4, !tbaa !9
  store i32 %7, ptr %16, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  %47 = load ptr, ptr %13, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.HighsSolution, ptr %47, i32 0, i32 0
  %49 = load i8, ptr %48, align 8, !tbaa !13, !range !20, !noundef !21
  %50 = trunc i8 %49 to i1
  %51 = zext i1 %50 to i8
  store i8 %51, ptr %17, align 1, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #7
  %52 = load ptr, ptr %13, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.HighsSolution, ptr %52, i32 0, i32 1
  %54 = load i8, ptr %53, align 1, !tbaa !23, !range !20, !noundef !21
  %55 = trunc i8 %54 to i1
  %56 = zext i1 %55 to i8
  store i8 %56, ptr %18, align 1, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  %57 = load ptr, ptr %12, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct.HighsBasis, ptr %57, i32 0, i32 0
  %59 = load i8, ptr %58, align 8, !tbaa !24, !range !20, !noundef !21
  %60 = trunc i8 %59 to i1
  %61 = zext i1 %60 to i8
  store i8 %61, ptr %19, align 1, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %62 = load ptr, ptr %11, align 8, !tbaa !5
  %63 = getelementptr inbounds %class.HighsModel, ptr %62, i32 0, i32 0
  store ptr %63, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %64 = load ptr, ptr %10, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %64, i32 0, i32 130
  store ptr %65, ptr %21, align 8, !tbaa !5
  %66 = load i32, ptr %16, align 4, !tbaa !11
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %74

68:                                               ; preds = %8
  %69 = load ptr, ptr %9, align 8, !tbaa !5
  %70 = load ptr, ptr %21, align 8, !tbaa !5
  %71 = load ptr, ptr %20, align 8, !tbaa !5
  %72 = load ptr, ptr %12, align 8, !tbaa !5
  %73 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_Z19writeOldRawSolutionP8_IO_FILERK15HighsLogOptionsRK7HighsLpRK10HighsBasisRK13HighsSolution(ptr noundef %69, ptr noundef nonnull align 8 dereferenceable(89) %70, ptr noundef nonnull align 8 dereferenceable(920) %71, ptr noundef nonnull align 8 dereferenceable(96) %72, ptr noundef nonnull align 8 dereferenceable(104) %73)
  br label %347

74:                                               ; preds = %8
  %75 = load i32, ptr %16, align 4, !tbaa !11
  %76 = icmp eq i32 %75, 1
  br i1 %76, label %77, label %245

77:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %78 = load ptr, ptr %20, align 8, !tbaa !5
  %79 = getelementptr inbounds %class.HighsLp, ptr %78, i32 0, i32 16
  %80 = call noundef i64 @_ZNKSt6vectorI12HighsVarTypeSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %79) #7
  %81 = icmp ugt i64 %80, 0
  br i1 %81, label %82, label %86

82:                                               ; preds = %77
  %83 = load ptr, ptr %20, align 8, !tbaa !5
  %84 = getelementptr inbounds %class.HighsLp, ptr %83, i32 0, i32 16
  %85 = call noundef ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #7
  br label %87

86:                                               ; preds = %77
  br label %87

87:                                               ; preds = %86, %82
  %88 = phi ptr [ %85, %82 ], [ null, %86 ]
  store ptr %88, ptr %22, align 8, !tbaa !5
  %89 = load ptr, ptr %9, align 8, !tbaa !5
  %90 = load ptr, ptr %21, align 8, !tbaa !5
  %91 = load ptr, ptr %20, align 8, !tbaa !5
  %92 = getelementptr inbounds %class.HighsLp, ptr %91, i32 0, i32 0
  %93 = load i32, ptr %92, align 8, !tbaa !33
  %94 = load ptr, ptr %20, align 8, !tbaa !5
  %95 = getelementptr inbounds %class.HighsLp, ptr %94, i32 0, i32 3
  %96 = load ptr, ptr %20, align 8, !tbaa !5
  %97 = getelementptr inbounds %class.HighsLp, ptr %96, i32 0, i32 4
  %98 = load ptr, ptr %20, align 8, !tbaa !5
  %99 = getelementptr inbounds %class.HighsLp, ptr %98, i32 0, i32 14
  %100 = load i8, ptr %17, align 1, !tbaa !22, !range !20, !noundef !21
  %101 = trunc i8 %100 to i1
  %102 = load ptr, ptr %13, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.HighsSolution, ptr %102, i32 0, i32 2
  %104 = load i8, ptr %18, align 1, !tbaa !22, !range !20, !noundef !21
  %105 = trunc i8 %104 to i1
  %106 = load ptr, ptr %13, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.HighsSolution, ptr %106, i32 0, i32 3
  %108 = load i8, ptr %19, align 1, !tbaa !22, !range !20, !noundef !21
  %109 = trunc i8 %108 to i1
  %110 = load ptr, ptr %12, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.HighsBasis, ptr %110, i32 0, i32 7
  %112 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_Z23writeModelBoundSolutionP8_IO_FILERK15HighsLogOptionsbiRKSt6vectorIdSaIdEES8_RKS4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EEbS8_bS8_bRKS4_I16HighsBasisStatusSaISJ_EEPK12HighsVarType(ptr noundef %89, ptr noundef nonnull align 8 dereferenceable(89) %90, i1 noundef zeroext true, i32 noundef %93, ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %99, i1 noundef zeroext %101, ptr noundef nonnull align 8 dereferenceable(24) %103, i1 noundef zeroext %105, ptr noundef nonnull align 8 dereferenceable(24) %107, i1 noundef zeroext %109, ptr noundef nonnull align 8 dereferenceable(24) %111, ptr noundef %112)
  %113 = load ptr, ptr %9, align 8, !tbaa !5
  %114 = load ptr, ptr %21, align 8, !tbaa !5
  %115 = load ptr, ptr %20, align 8, !tbaa !5
  %116 = getelementptr inbounds %class.HighsLp, ptr %115, i32 0, i32 1
  %117 = load i32, ptr %116, align 4, !tbaa !59
  %118 = load ptr, ptr %20, align 8, !tbaa !5
  %119 = getelementptr inbounds %class.HighsLp, ptr %118, i32 0, i32 5
  %120 = load ptr, ptr %20, align 8, !tbaa !5
  %121 = getelementptr inbounds %class.HighsLp, ptr %120, i32 0, i32 6
  %122 = load ptr, ptr %20, align 8, !tbaa !5
  %123 = getelementptr inbounds %class.HighsLp, ptr %122, i32 0, i32 15
  %124 = load i8, ptr %17, align 1, !tbaa !22, !range !20, !noundef !21
  %125 = trunc i8 %124 to i1
  %126 = load ptr, ptr %13, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.HighsSolution, ptr %126, i32 0, i32 4
  %128 = load i8, ptr %18, align 1, !tbaa !22, !range !20, !noundef !21
  %129 = trunc i8 %128 to i1
  %130 = load ptr, ptr %13, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.HighsSolution, ptr %130, i32 0, i32 5
  %132 = load i8, ptr %19, align 1, !tbaa !22, !range !20, !noundef !21
  %133 = trunc i8 %132 to i1
  %134 = load ptr, ptr %12, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.HighsBasis, ptr %134, i32 0, i32 8
  call void @_Z23writeModelBoundSolutionP8_IO_FILERK15HighsLogOptionsbiRKSt6vectorIdSaIdEES8_RKS4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EEbS8_bS8_bRKS4_I16HighsBasisStatusSaISJ_EEPK12HighsVarType(ptr noundef %113, ptr noundef nonnull align 8 dereferenceable(89) %114, i1 noundef zeroext false, i32 noundef %117, ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef nonnull align 8 dereferenceable(24) %121, ptr noundef nonnull align 8 dereferenceable(24) %123, i1 noundef zeroext %125, ptr noundef nonnull align 8 dereferenceable(24) %127, i1 noundef zeroext %129, ptr noundef nonnull align 8 dereferenceable(24) %131, i1 noundef zeroext %133, ptr noundef nonnull align 8 dereferenceable(24) %135, ptr noundef null)
  %136 = load ptr, ptr %9, align 8, !tbaa !5
  %137 = load ptr, ptr %21, 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.82, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %138 unwind label %171

138:                                              ; preds = %87
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %136, ptr noundef nonnull align 8 dereferenceable(89) %137, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %139 unwind label %175

139:                                              ; preds = %138
  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
  call void @llvm.lifetime.start.p0(i64 392, ptr %27) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27)
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %27, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %140 unwind label %180

140:                                              ; preds = %139
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  %141 = getelementptr inbounds i8, ptr %27, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  %142 = load i32, ptr %15, align 4, !tbaa !9
  invoke void @_Z23utilModelStatusToStringB5cxx1116HighsModelStatus(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, i32 noundef %142)
          to label %143 unwind label %184

143:                                              ; preds = %140
  %144 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef @.str.115, ptr noundef %144)
          to label %145 unwind label %188

145:                                              ; preds = %143
  %146 = 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) %141, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %147 unwind label %192

147:                                              ; preds = %145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  %148 = load ptr, ptr %9, align 8, !tbaa !5
  %149 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %150 unwind label %198

150:                                              ; preds = %147
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %148, ptr noundef nonnull align 8 dereferenceable(89) %149, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %151 unwind label %202

151:                                              ; preds = %150
  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
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  %152 = load ptr, ptr %14, align 8, !tbaa !5
  %153 = getelementptr inbounds i8, ptr %152, i64 8
  %154 = getelementptr inbounds %struct.HighsInfoStruct, ptr %153, i32 0, i32 10
  %155 = load double, ptr %154, align 8, !tbaa !60
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %32, double noundef %155, double noundef 1.000000e-13)
          to label %156 unwind label %207

156:                                              ; preds = %151
  %157 = load ptr, ptr %9, align 8, !tbaa !5
  %158 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %159 unwind label %211

159:                                              ; preds = %156
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %157, ptr noundef nonnull align 8 dereferenceable(89) %158, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %160 unwind label %215

160:                                              ; preds = %159
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  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) %27, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %161 unwind label %220

161:                                              ; preds = %160
  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
  %162 = getelementptr inbounds i8, ptr %27, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  %163 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %32) #8
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef @.str.116, ptr noundef %163)
          to label %164 unwind label %224

164:                                              ; preds = %161
  %165 = 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) %162, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %166 unwind label %228

166:                                              ; preds = %164
  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
  %167 = load ptr, ptr %9, align 8, !tbaa !5
  %168 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(128) %27)
          to label %169 unwind label %233

169:                                              ; preds = %166
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %167, ptr noundef nonnull align 8 dereferenceable(89) %168, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %170 unwind label %237

170:                                              ; preds = %169
  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
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %346

171:                                              ; preds = %87
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %25, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %26, align 4
  br label %179

175:                                              ; preds = %138
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %25, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %179

179:                                              ; preds = %175, %171
  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 %244

180:                                              ; preds = %139
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %25, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  br label %243

184:                                              ; preds = %140
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %25, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %26, align 4
  br label %197

188:                                              ; preds = %143
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %25, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %26, align 4
  br label %196

192:                                              ; preds = %145
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %25, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %196

196:                                              ; preds = %192, %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %197

197:                                              ; preds = %196, %184
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  br label %243

198:                                              ; preds = %147
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %25, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %26, align 4
  br label %206

202:                                              ; preds = %150
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %25, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %206

206:                                              ; preds = %202, %198
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  br label %243

207:                                              ; preds = %151
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %25, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %26, align 4
  br label %242

211:                                              ; preds = %156
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %25, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %26, align 4
  br label %219

215:                                              ; preds = %159
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %25, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %219

219:                                              ; preds = %215, %211
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br label %242

220:                                              ; preds = %160
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %25, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %26, 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 %242

224:                                              ; preds = %161
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %25, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %26, align 4
  br label %232

228:                                              ; preds = %164
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %25, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %232

232:                                              ; preds = %228, %224
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  br label %242

233:                                              ; preds = %166
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %25, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %26, align 4
  br label %241

237:                                              ; preds = %169
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %25, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %241

241:                                              ; preds = %237, %233
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  br label %242

242:                                              ; preds = %241, %232, %220, %219, %207
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  br label %243

243:                                              ; preds = %242, %206, %197, %180
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %27) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %27) #7
  br label %244

244:                                              ; preds = %243, %179
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %348

245:                                              ; preds = %74
  %246 = load i32, ptr %16, align 4, !tbaa !11
  %247 = icmp eq i32 %246, 2
  br i1 %247, label %251, label %248

248:                                              ; preds = %245
  %249 = load i32, ptr %16, align 4, !tbaa !11
  %250 = icmp eq i32 %249, 3
  br i1 %250, label %251, label %264

251:                                              ; preds = %248, %245
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #7
  %252 = load i32, ptr %16, align 4, !tbaa !11
  %253 = icmp eq i32 %252, 2
  %254 = zext i1 %253 to i8
  store i8 %254, ptr %38, align 1, !tbaa !22
  %255 = load ptr, ptr %9, align 8, !tbaa !5
  %256 = load ptr, ptr %10, align 8, !tbaa !5
  %257 = load ptr, ptr %11, align 8, !tbaa !5
  %258 = load ptr, ptr %12, align 8, !tbaa !5
  %259 = load ptr, ptr %13, align 8, !tbaa !5
  %260 = load i32, ptr %15, align 4, !tbaa !9
  %261 = load ptr, ptr %14, align 8, !tbaa !5
  %262 = load i8, ptr %38, align 1, !tbaa !22, !range !20, !noundef !21
  %263 = trunc i8 %262 to i1
  call void @_Z19writeGlpsolSolutionP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolution16HighsModelStatusRK9HighsInfob(ptr noundef %255, ptr noundef nonnull align 8 dereferenceable(1020) %256, ptr noundef nonnull align 8 dereferenceable(1000) %257, ptr noundef nonnull align 8 dereferenceable(96) %258, ptr noundef nonnull align 8 dereferenceable(104) %259, i32 noundef %260, ptr noundef nonnull align 8 dereferenceable(184) %261, i1 noundef zeroext %263)
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #7
  br label %345

264:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  %265 = load i32, ptr %16, align 4, !tbaa !11
  %266 = icmp eq i32 %265, 4
  %267 = zext i1 %266 to i8
  store i8 %267, ptr %39, align 1, !tbaa !22
  %268 = load i32, ptr %16, align 4, !tbaa !11
  %269 = icmp eq i32 %268, 0
  br i1 %269, label %273, label %270

270:                                              ; preds = %264
  %271 = load i8, ptr %39, align 1, !tbaa !22, !range !20, !noundef !21
  %272 = trunc i8 %271 to i1
  br label %273

273:                                              ; preds = %270, %264
  %274 = phi i1 [ true, %264 ], [ %272, %270 ]
  br i1 %274, label %275, label %276

275:                                              ; preds = %273
  br label %278

276:                                              ; preds = %273
  call void @__assert_fail(ptr noundef @.str.117, ptr noundef @.str.73, i32 noundef 454, ptr noundef @__PRETTY_FUNCTION__._Z17writeSolutionFileP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolutionRK9HighsInfo16HighsModelStatusi) #9
  unreachable

277:                                              ; No predecessors!
  br label %278

278:                                              ; preds = %277, %275
  %279 = load ptr, ptr %9, align 8, !tbaa !5
  %280 = load ptr, ptr %21, 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.118, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %281 unwind label %303

281:                                              ; preds = %278
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %279, ptr noundef nonnull align 8 dereferenceable(89) %280, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %282 unwind label %307

282:                                              ; preds = %281
  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
  call void @llvm.lifetime.start.p0(i64 392, ptr %42) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %42)
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %42, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %283 unwind label %312

283:                                              ; preds = %282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  %284 = getelementptr inbounds i8, ptr %42, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  %285 = load i32, ptr %15, align 4, !tbaa !9
  invoke void @_Z23utilModelStatusToStringB5cxx1116HighsModelStatus(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, i32 noundef %285)
          to label %286 unwind label %316

286:                                              ; preds = %283
  %287 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef @.str.119, ptr noundef %287)
          to label %288 unwind label %320

288:                                              ; preds = %286
  %289 = 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) %284, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %290 unwind label %324

290:                                              ; preds = %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  %291 = load ptr, ptr %9, align 8, !tbaa !5
  %292 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(128) %42)
          to label %293 unwind label %330

293:                                              ; preds = %290
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %291, ptr noundef nonnull align 8 dereferenceable(89) %292, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %294 unwind label %334

294:                                              ; preds = %293
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  %295 = load ptr, ptr %9, align 8, !tbaa !5
  %296 = load ptr, ptr %21, align 8, !tbaa !5
  %297 = load ptr, ptr %11, align 8, !tbaa !5
  %298 = load ptr, ptr %13, align 8, !tbaa !5
  %299 = load ptr, ptr %14, align 8, !tbaa !5
  %300 = load i8, ptr %39, align 1, !tbaa !22, !range !20, !noundef !21
  %301 = trunc i8 %300 to i1
  invoke void @_Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob(ptr noundef %295, ptr noundef nonnull align 8 dereferenceable(89) %296, ptr noundef nonnull align 8 dereferenceable(1000) %297, ptr noundef nonnull align 8 dereferenceable(104) %298, ptr noundef nonnull align 8 dereferenceable(184) %299, i1 noundef zeroext %301)
          to label %302 unwind label %339

302:                                              ; preds = %294
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %42) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  br label %345

303:                                              ; preds = %278
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %25, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %26, align 4
  br label %311

307:                                              ; preds = %281
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %25, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %311

311:                                              ; preds = %307, %303
  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 %344

312:                                              ; preds = %282
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %25, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  br label %343

316:                                              ; preds = %283
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %25, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %26, align 4
  br label %329

320:                                              ; preds = %286
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %25, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %26, align 4
  br label %328

324:                                              ; preds = %288
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %25, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %328

328:                                              ; preds = %324, %320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %329

329:                                              ; preds = %328, %316
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  br label %343

330:                                              ; preds = %290
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %25, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %26, align 4
  br label %338

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

338:                                              ; preds = %334, %330
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  br label %343

339:                                              ; preds = %294
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %25, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %26, align 4
  br label %343

343:                                              ; preds = %339, %338, %329, %312
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %42) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %42) #7
  br label %344

344:                                              ; preds = %343, %311
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  br label %348

345:                                              ; preds = %302, %251
  br label %346

346:                                              ; preds = %345, %170
  br label %347

347:                                              ; preds = %346, %68
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  ret void

348:                                              ; preds = %344, %244
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  br label %349

349:                                              ; preds = %348
  %350 = load ptr, ptr %25, align 8
  %351 = load i32, ptr %26, align 4
  %352 = insertvalue { ptr, i32 } poison, ptr %350, 0
  %353 = insertvalue { ptr, i32 } %352, i32 %351, 1
  resume { ptr, i32 } %353
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19writeOldRawSolutionP8_IO_FILERK15HighsLogOptionsRK7HighsLpRK10HighsBasisRK13HighsSolution(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(104)) #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19writeGlpsolSolutionP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolution16HighsModelStatusRK9HighsInfob(ptr noundef, ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef nonnull align 8 dereferenceable(1000), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(104), i32 noundef, ptr noundef nonnull align 8 dereferenceable(184), i1 noundef zeroext) #2

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

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

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


; 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::allocator" = type { 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 }

@.str.73 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [37 x i8], align 1
@__PRETTY_FUNCTION__._Z17writeSolutionFileP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolutionRK9HighsInfo16HighsModelStatusi = external hidden unnamed_addr constant [175 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [4 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 uwtable
declare dso_local void @_Z23writeModelBoundSolutionP8_IO_FILERK15HighsLogOptionsbiRKSt6vectorIdSaIdEES8_RKS4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EEbS8_bS8_bRKS4_I16HighsBasisStatusSaISJ_EEPK12HighsVarType(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #2

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

; 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: 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 void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 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 @_Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(1000), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(184), i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z17writeSolutionFileP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolutionRK9HighsInfo16HighsModelStatusi(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(1020) %1, ptr noundef nonnull align 8 dereferenceable(1000) %2, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(184) %5, i32 noundef %6, i32 noundef %7) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"struct.std::array", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = load i8, ptr %4, align 8, !tbaa !5, !range !15, !noundef !16
  %30 = trunc nuw i8 %29 to i1
  %31 = getelementptr inbounds i8, ptr %4, i64 1
  %32 = load i8, ptr %31, align 1, !tbaa !17, !range !15, !noundef !16
  %33 = trunc nuw i8 %32 to i1
  %34 = load i8, ptr %3, align 8, !tbaa !18, !range !15, !noundef !16
  %35 = trunc nuw i8 %34 to i1
  %36 = getelementptr inbounds i8, ptr %1, i64 896
  switch i32 %7, label %124 [
    i32 -1, label %37
    i32 1, label %38
  ]

37:                                               ; preds = %8
  tail call void @_Z19writeOldRawSolutionP8_IO_FILERK15HighsLogOptionsRK7HighsLpRK10HighsBasisRK13HighsSolution(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(920) %2, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(104) %4)
  br label %167

38:                                               ; preds = %8
  %39 = getelementptr inbounds i8, ptr %2, i64 376
  %40 = tail call noundef i64 @_ZNKSt6vectorI12HighsVarTypeSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %39) #7
  %.not = icmp eq i64 %40, 0
  br i1 %.not, label %43, label %41

41:                                               ; preds = %38
  %42 = tail call noundef ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %39) #7
  br label %43

43:                                               ; preds = %38, %41
  %44 = phi ptr [ %42, %41 ], [ null, %38 ]
  %45 = load i32, ptr %2, align 8, !tbaa !28
  %46 = getelementptr inbounds i8, ptr %2, i64 32
  %47 = getelementptr inbounds i8, ptr %2, i64 56
  %48 = getelementptr inbounds i8, ptr %2, i64 328
  %49 = getelementptr inbounds i8, ptr %4, i64 8
  %50 = getelementptr inbounds i8, ptr %4, i64 32
  %51 = getelementptr inbounds i8, ptr %3, i64 48
  tail call void @_Z23writeModelBoundSolutionP8_IO_FILERK15HighsLogOptionsbiRKSt6vectorIdSaIdEES8_RKS4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EEbS8_bS8_bRKS4_I16HighsBasisStatusSaISJ_EEPK12HighsVarType(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, i1 noundef zeroext true, i32 noundef %45, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(24) %48, i1 noundef zeroext %30, ptr noundef nonnull align 8 dereferenceable(24) %49, i1 noundef zeroext %33, ptr noundef nonnull align 8 dereferenceable(24) %50, i1 noundef zeroext %35, ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef %44)
  %52 = getelementptr inbounds i8, ptr %2, i64 4
  %53 = load i32, ptr %52, align 4, !tbaa !54
  %54 = getelementptr inbounds i8, ptr %2, i64 80
  %55 = getelementptr inbounds i8, ptr %2, i64 104
  %56 = getelementptr inbounds i8, ptr %2, i64 352
  %57 = getelementptr inbounds i8, ptr %4, i64 56
  %58 = getelementptr inbounds i8, ptr %4, i64 80
  %59 = getelementptr inbounds i8, ptr %3, i64 72
  tail call void @_Z23writeModelBoundSolutionP8_IO_FILERK15HighsLogOptionsbiRKSt6vectorIdSaIdEES8_RKS4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EEbS8_bS8_bRKS4_I16HighsBasisStatusSaISJ_EEPK12HighsVarType(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, i1 noundef zeroext false, i32 noundef %53, ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 8 dereferenceable(24) %56, i1 noundef zeroext %30, ptr noundef nonnull align 8 dereferenceable(24) %57, i1 noundef zeroext %33, ptr noundef nonnull align 8 dereferenceable(24) %58, i1 noundef zeroext %35, ptr noundef nonnull align 8 dereferenceable(24) %59, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %60 unwind label %83

60:                                               ; preds = %43
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %61 unwind label %85

61:                                               ; preds = %60
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %11) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %11, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %62 unwind label %88

62:                                               ; preds = %61
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  %63 = getelementptr inbounds i8, ptr %11, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  invoke void @_Z23utilModelStatusToStringB5cxx1116HighsModelStatus(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, i32 noundef %6)
          to label %64 unwind label %90

64:                                               ; preds = %62
  %65 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull @.str.115, ptr noundef %65)
          to label %66 unwind label %92

66:                                               ; preds = %64
  %67 = 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) %63, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %68 unwind label %94

68:                                               ; preds = %66
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %69 unwind label %98

69:                                               ; preds = %68
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %70 unwind label %100

70:                                               ; preds = %69
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  %71 = getelementptr inbounds i8, ptr %5, i64 56
  %72 = load double, ptr %71, align 8, !tbaa !55
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %16, double noundef %72, double noundef 1.000000e-13)
          to label %73 unwind label %103

73:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %74 unwind label %105

74:                                               ; preds = %73
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %75 unwind label %107

75:                                               ; preds = %74
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %11, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %76 unwind label %110

76:                                               ; preds = %75
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #7
  %77 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %16) #8
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull @.str.116, ptr noundef %77)
          to label %78 unwind label %112

78:                                               ; preds = %76
  %79 = 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) %63, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %80 unwind label %114

80:                                               ; preds = %78
  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
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  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) %11)
          to label %81 unwind label %117

81:                                               ; preds = %80
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %82 unwind label %119

82:                                               ; preds = %81
  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 %16) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %11) #7
  br label %167

83:                                               ; preds = %43
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %87

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

87:                                               ; preds = %85, %83
  %.pn103 = phi { ptr, i32 } [ %86, %85 ], [ %84, %83 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  br label %168

88:                                               ; preds = %61
  %89 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %123

90:                                               ; preds = %62
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %97

92:                                               ; preds = %64
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %96

94:                                               ; preds = %66
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %96

96:                                               ; preds = %94, %92
  %.pn105 = phi { ptr, i32 } [ %95, %94 ], [ %93, %92 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %97

97:                                               ; preds = %96, %90
  %.pn105.pn = phi { ptr, i32 } [ %.pn105, %96 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %123

98:                                               ; preds = %68
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %102

100:                                              ; preds = %69
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %102

102:                                              ; preds = %100, %98
  %.pn108 = phi { ptr, i32 } [ %101, %100 ], [ %99, %98 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %123

103:                                              ; preds = %70
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %122

105:                                              ; preds = %73
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %109

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

109:                                              ; preds = %107, %105
  %.pn110 = phi { ptr, i32 } [ %108, %107 ], [ %106, %105 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %122

110:                                              ; preds = %75
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %122

112:                                              ; preds = %76
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %116

114:                                              ; preds = %78
  %115 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %116

116:                                              ; preds = %114, %112
  %.pn112 = phi { ptr, i32 } [ %115, %114 ], [ %113, %112 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %122

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

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

121:                                              ; preds = %119, %117
  %.pn114 = phi { ptr, i32 } [ %120, %119 ], [ %118, %117 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %122

122:                                              ; preds = %121, %116, %110, %109, %103
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %121 ], [ %.pn112, %116 ], [ %111, %110 ], [ %.pn110, %109 ], [ %104, %103 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %123

123:                                              ; preds = %122, %102, %97, %88
  %.pn114.pn.pn = phi { ptr, i32 } [ %.pn114.pn, %122 ], [ %.pn108, %102 ], [ %.pn105.pn, %97 ], [ %89, %88 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %11) #7
  br label %168

124:                                              ; preds = %8
  %125 = and i32 %7, -2
  %or.cond = icmp eq i32 %125, 2
  br i1 %or.cond, label %126, label %128

126:                                              ; preds = %124
  %127 = icmp eq i32 %7, 2
  tail call void @_Z19writeGlpsolSolutionP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolution16HighsModelStatusRK9HighsInfob(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(1020) %1, ptr noundef nonnull align 8 dereferenceable(1000) %2, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(104) %4, i32 noundef %6, ptr noundef nonnull align 8 dereferenceable(184) %5, i1 noundef zeroext %127)
  br label %167

128:                                              ; preds = %124
  %129 = icmp eq i32 %7, 4
  switch i32 %7, label %130 [
    i32 4, label %131
    i32 0, label %131
  ]

130:                                              ; preds = %128
  tail call void @__assert_fail(ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.73, i32 noundef 454, ptr noundef nonnull @__PRETTY_FUNCTION__._Z17writeSolutionFileP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolutionRK9HighsInfo16HighsModelStatusi) #9
  unreachable

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

132:                                              ; preds = %131
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %133 unwind label %146

133:                                              ; preds = %132
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %24) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %24, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %134 unwind label %149

134:                                              ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  %135 = getelementptr inbounds i8, ptr %24, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  invoke void @_Z23utilModelStatusToStringB5cxx1116HighsModelStatus(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, i32 noundef %6)
          to label %136 unwind label %151

136:                                              ; preds = %134
  %137 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  invoke void (ptr, ptr, ...) @_Z19highsFormatToStringB5cxx11PKcz(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull @.str.119, ptr noundef %137)
          to label %138 unwind label %153

138:                                              ; preds = %136
  %139 = 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) %135, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %140 unwind label %155

140:                                              ; preds = %138
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(128) %24)
          to label %141 unwind label %159

141:                                              ; preds = %140
  invoke void @_Z18highsFprintfStringP8_IO_FILERK15HighsLogOptionsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %142 unwind label %161

142:                                              ; preds = %141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  invoke void @_Z18writeModelSolutionP8_IO_FILERK15HighsLogOptionsRK10HighsModelRK13HighsSolutionRK9HighsInfob(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(89) %36, ptr noundef nonnull align 8 dereferenceable(1000) %2, ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(184) %5, i1 noundef zeroext %129)
          to label %143 unwind label %164

143:                                              ; preds = %142
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %24) #7
  br label %167

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

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

148:                                              ; preds = %146, %144
  %.pn = phi { ptr, i32 } [ %147, %146 ], [ %145, %144 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %168

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

151:                                              ; preds = %134
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %158

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

155:                                              ; preds = %138
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %157

157:                                              ; preds = %155, %153
  %.pn95 = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %158

158:                                              ; preds = %157, %151
  %.pn95.pn = phi { ptr, i32 } [ %.pn95, %157 ], [ %152, %151 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  br label %166

159:                                              ; preds = %140
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %163

161:                                              ; preds = %141
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %163

163:                                              ; preds = %161, %159
  %.pn98 = phi { ptr, i32 } [ %162, %161 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  br label %166

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

166:                                              ; preds = %164, %163, %158, %149
  %.pn100 = phi { ptr, i32 } [ %165, %164 ], [ %.pn98, %163 ], [ %.pn95.pn, %158 ], [ %150, %149 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %24) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %24) #7
  br label %168

167:                                              ; preds = %82, %143, %126, %37
  ret void

168:                                              ; preds = %148, %166, %87, %123
  %.pn114.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn, %123 ], [ %.pn103, %87 ], [ %.pn100, %166 ], [ %.pn, %148 ]
  resume { ptr, i32 } %.pn114.pn.pn.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19writeOldRawSolutionP8_IO_FILERK15HighsLogOptionsRK7HighsLpRK10HighsBasisRK13HighsSolution(ptr noundef, ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19writeGlpsolSolutionP8_IO_FILERK12HighsOptionsRK10HighsModelRK10HighsBasisRK13HighsSolution16HighsModelStatusRK9HighsInfob(ptr noundef, ptr noundef nonnull align 8 dereferenceable(1020), ptr noundef nonnull align 8 dereferenceable(1000), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(104), i32 noundef, ptr noundef nonnull align 8 dereferenceable(184), i1 noundef zeroext) local_unnamed_addr #2

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

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

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


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass