; LLVM IR from ERGO-Code/HiGHS :: src/io (FilereaderLp)

; 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.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.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.8", %"class.std::vector.8", %"class.std::vector.13", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.3", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector.13", %"class.std::vector.3", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector.3", %"class.std::vector", %"class.std::vector", %"class.std::vector" }
%class.HighsHessian = type { i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector" }

@.str.53 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [16 x i8], align 1
@__PRETTY_FUNCTION__._ZN12FilereaderLp16writeModelToFileERK12HighsOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK10HighsModel = external hidden unnamed_addr constant [112 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.92 = 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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare noalias ptr @fopen(ptr noundef, ptr noundef) #4

declare i32 @fclose(ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef, ptr noundef, ...) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef, double noundef, i1 noundef zeroext) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef, i32 noundef) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12FilereaderLp14writeToFileConEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef, i32 noundef) #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN12FilereaderLp16writeModelToFileERK12HighsOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK10HighsModel(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef nonnull align 8 dereferenceable(1020) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(1000) %3) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %class.HighsSparseMatrix, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca double, align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca double, align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca double, align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %class.HighsSparseMatrix, align 8
  %30 = alloca %"class.std::vector.8", align 8
  %31 = alloca i8, align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %class.HighsSparseMatrix, align 8
  %34 = alloca %"class.std::vector.8", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %class.HighsSparseMatrix, align 8
  %37 = alloca %"class.std::vector.8", align 8
  %38 = alloca i32, align 4
  %39 = alloca i8, align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca i32, align 4
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca i32, align 4
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %49 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %50 = load ptr, ptr %8, align 8, !tbaa !5
  %51 = getelementptr inbounds %class.HighsModel, ptr %50, i32 0, i32 0
  store ptr %51, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 112, ptr %10) #7
  %52 = load ptr, ptr %9, align 8, !tbaa !5
  %53 = getelementptr inbounds %class.HighsLp, ptr %52, i32 0, i32 7
  call void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(112) %53)
  invoke void @_ZN17HighsSparseMatrix13ensureRowwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %10)
          to label %54 unwind label %97

54:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #7
  %55 = load ptr, ptr %9, align 8, !tbaa !5
  %56 = getelementptr inbounds %class.HighsLp, ptr %55, i32 0, i32 14
  %57 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %56) #7
  %58 = load ptr, ptr %9, align 8, !tbaa !5
  %59 = getelementptr inbounds %class.HighsLp, ptr %58, i32 0, i32 0
  %60 = load i32, ptr %59, align 8, !tbaa !9
  %61 = sext i32 %60 to i64
  %62 = icmp eq i64 %57, %61
  %63 = zext i1 %62 to i8
  store i8 %63, ptr %13, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #7
  %64 = load ptr, ptr %9, align 8, !tbaa !5
  %65 = getelementptr inbounds %class.HighsLp, ptr %64, i32 0, i32 15
  %66 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #7
  %67 = load ptr, ptr %9, align 8, !tbaa !5
  %68 = getelementptr inbounds %class.HighsLp, ptr %67, i32 0, i32 1
  %69 = load i32, ptr %68, align 4, !tbaa !45
  %70 = sext i32 %69 to i64
  %71 = icmp eq i64 %66, %70
  %72 = zext i1 %71 to i8
  store i8 %72, ptr %14, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %73 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  %74 = invoke noalias ptr @fopen(ptr noundef %73, ptr noundef @.str.69)
          to label %75 unwind label %101

75:                                               ; preds = %54
  store ptr %74, ptr %15, align 8, !tbaa !5
  %76 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %76, ptr noundef @.str.70, ptr noundef @.str.71)
  %77 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %77)
  %78 = load ptr, ptr %15, align 8, !tbaa !5
  %79 = load ptr, ptr %9, align 8, !tbaa !5
  %80 = getelementptr inbounds %class.HighsLp, ptr %79, i32 0, i32 8
  %81 = load i32, ptr %80, align 8, !tbaa !46
  %82 = icmp eq i32 %81, 1
  br i1 %82, label %83, label %84

83:                                               ; preds = %75
  br label %85

84:                                               ; preds = %75
  br label %85

85:                                               ; preds = %84, %83
  %86 = phi ptr [ @.str.72, %83 ], [ @.str.73, %84 ]
  %87 = getelementptr inbounds [4 x i8], ptr %86, i64 0, i64 0
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %78, ptr noundef @.str.62, ptr noundef %87)
  %88 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %88)
  %89 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %89, ptr noundef @.str.74)
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 0, ptr %16, align 4, !tbaa !47
  br label %90

90:                                               ; preds = %136, %85
  %91 = load i32, ptr %16, align 4, !tbaa !47
  %92 = load ptr, ptr %9, align 8, !tbaa !5
  %93 = getelementptr inbounds %class.HighsLp, ptr %92, i32 0, i32 0
  %94 = load i32, ptr %93, align 8, !tbaa !9
  %95 = icmp slt i32 %91, %94
  br i1 %95, label %105, label %96

96:                                               ; preds = %90
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %139

97:                                               ; preds = %4
  %98 = landingpad { ptr, i32 }
          cleanup
  %99 = extractvalue { ptr, i32 } %98, 0
  store ptr %99, ptr %11, align 8
  %100 = extractvalue { ptr, i32 } %98, 1
  store i32 %100, ptr %12, align 4
  br label %818

101:                                              ; preds = %139, %54
  %102 = landingpad { ptr, i32 }
          cleanup
  %103 = extractvalue { ptr, i32 } %102, 0
  store ptr %103, ptr %11, align 8
  %104 = extractvalue { ptr, i32 } %102, 1
  store i32 %104, ptr %12, align 4
  br label %817

105:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %106 = load ptr, ptr %9, align 8, !tbaa !5
  %107 = getelementptr inbounds %class.HighsLp, ptr %106, i32 0, i32 2
  %108 = load i32, ptr %16, align 4, !tbaa !47
  %109 = sext i32 %108 to i64
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %109) #7
  %111 = load double, ptr %110, align 8, !tbaa !48
  store double %111, ptr %17, align 8, !tbaa !48
  %112 = load double, ptr %17, align 8, !tbaa !48
  %113 = fcmp une double %112, 0.000000e+00
  br i1 %113, label %114, label %135

114:                                              ; preds = %105
  %115 = load ptr, ptr %15, align 8, !tbaa !5
  %116 = load double, ptr %17, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %115, double noundef %116, i1 noundef zeroext true)
  %117 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %131

119:                                              ; preds = %114
  %120 = load ptr, ptr %15, align 8, !tbaa !5
  %121 = load ptr, ptr %9, align 8, !tbaa !5
  %122 = getelementptr inbounds %class.HighsLp, ptr %121, i32 0, i32 14
  %123 = load i32, ptr %16, align 4, !tbaa !47
  %124 = sext i32 %123 to i64
  %125 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef %124) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %126 unwind label %127

126:                                              ; preds = %119
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %120, ptr noundef %18)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %134

127:                                              ; preds = %119
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %11, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %817

131:                                              ; preds = %114
  %132 = load ptr, ptr %15, align 8, !tbaa !5
  %133 = load i32, ptr %16, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %132, i32 noundef %133)
  br label %134

134:                                              ; preds = %131, %126
  br label %135

135:                                              ; preds = %134, %105
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %136

136:                                              ; preds = %135
  %137 = load i32, ptr %16, align 4, !tbaa !47
  %138 = add nsw i32 %137, 1
  store i32 %138, ptr %16, align 4, !tbaa !47
  br label %90, !llvm.loop !51

139:                                              ; preds = %96
  %140 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %140, ptr noundef @.str.75)
  %141 = load ptr, ptr %8, align 8, !tbaa !5
  %142 = invoke noundef zeroext i1 @_ZNK10HighsModel4isQpEv(ptr noundef nonnull align 8 dereferenceable(1000) %141)
          to label %143 unwind label %101

143:                                              ; preds = %139
  br i1 %142, label %144, label %244

144:                                              ; preds = %143
  %145 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %145, ptr noundef @.str.76)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !47
  br label %146

146:                                              ; preds = %239, %144
  %147 = load i32, ptr %19, align 4, !tbaa !47
  %148 = load ptr, ptr %9, align 8, !tbaa !5
  %149 = getelementptr inbounds %class.HighsLp, ptr %148, i32 0, i32 0
  %150 = load i32, ptr %149, align 8, !tbaa !9
  %151 = icmp slt i32 %147, %150
  br i1 %151, label %153, label %152

152:                                              ; preds = %146
  store i32 5, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %242

153:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %154 = load ptr, ptr %8, align 8, !tbaa !5
  %155 = getelementptr inbounds %class.HighsModel, ptr %154, i32 0, i32 1
  %156 = getelementptr inbounds %class.HighsHessian, ptr %155, i32 0, i32 2
  %157 = load i32, ptr %19, align 4, !tbaa !47
  %158 = sext i32 %157 to i64
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %156, i64 noundef %158) #7
  %160 = load i32, ptr %159, align 4, !tbaa !47
  store i32 %160, ptr %21, align 4, !tbaa !47
  br label %161

161:                                              ; preds = %235, %153
  %162 = load i32, ptr %21, align 4, !tbaa !47
  %163 = load ptr, ptr %8, align 8, !tbaa !5
  %164 = getelementptr inbounds %class.HighsModel, ptr %163, i32 0, i32 1
  %165 = getelementptr inbounds %class.HighsHessian, ptr %164, i32 0, i32 2
  %166 = load i32, ptr %19, align 4, !tbaa !47
  %167 = add nsw i32 %166, 1
  %168 = sext i32 %167 to i64
  %169 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %168) #7
  %170 = load i32, ptr %169, align 4, !tbaa !47
  %171 = icmp slt i32 %162, %170
  br i1 %171, label %173, label %172

172:                                              ; preds = %161
  store i32 8, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %238

173:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %174 = load ptr, ptr %8, align 8, !tbaa !5
  %175 = getelementptr inbounds %class.HighsModel, ptr %174, i32 0, i32 1
  %176 = getelementptr inbounds %class.HighsHessian, ptr %175, i32 0, i32 3
  %177 = load i32, ptr %21, align 4, !tbaa !47
  %178 = sext i32 %177 to i64
  %179 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %176, i64 noundef %178) #7
  %180 = load i32, ptr %179, align 4, !tbaa !47
  store i32 %180, ptr %22, align 4, !tbaa !47
  %181 = load i32, ptr %19, align 4, !tbaa !47
  %182 = load i32, ptr %22, align 4, !tbaa !47
  %183 = icmp sle i32 %181, %182
  br i1 %183, label %184, label %234

184:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %185 = load ptr, ptr %8, align 8, !tbaa !5
  %186 = getelementptr inbounds %class.HighsModel, ptr %185, i32 0, i32 1
  %187 = getelementptr inbounds %class.HighsHessian, ptr %186, i32 0, i32 4
  %188 = load i32, ptr %21, align 4, !tbaa !47
  %189 = sext i32 %188 to i64
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %189) #7
  %191 = load double, ptr %190, align 8, !tbaa !48
  store double %191, ptr %23, align 8, !tbaa !48
  %192 = load i32, ptr %19, align 4, !tbaa !47
  %193 = load i32, ptr %22, align 4, !tbaa !47
  %194 = icmp ne i32 %192, %193
  br i1 %194, label %195, label %198

195:                                              ; preds = %184
  %196 = load double, ptr %23, align 8, !tbaa !48
  %197 = fmul double %196, 2.000000e+00
  store double %197, ptr %23, align 8, !tbaa !48
  br label %198

198:                                              ; preds = %195, %184
  %199 = load double, ptr %23, align 8, !tbaa !48
  %200 = fcmp une double %199, 0.000000e+00
  br i1 %200, label %201, label %233

201:                                              ; preds = %198
  %202 = load ptr, ptr %15, align 8, !tbaa !5
  %203 = load double, ptr %23, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %202, double noundef %203, i1 noundef zeroext true)
  %204 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %205 = trunc i8 %204 to i1
  br i1 %205, label %206, label %226

206:                                              ; preds = %201
  %207 = load ptr, ptr %15, align 8, !tbaa !5
  %208 = load ptr, ptr %9, align 8, !tbaa !5
  %209 = getelementptr inbounds %class.HighsLp, ptr %208, i32 0, i32 14
  %210 = load i32, ptr %19, align 4, !tbaa !47
  %211 = sext i32 %210 to i64
  %212 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %211) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %212)
          to label %213 unwind label %222

213:                                              ; preds = %206
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %207, ptr noundef %24)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  %214 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %214, ptr noundef @.str.77)
  %215 = load ptr, ptr %15, align 8, !tbaa !5
  %216 = load ptr, ptr %9, align 8, !tbaa !5
  %217 = getelementptr inbounds %class.HighsLp, ptr %216, i32 0, i32 14
  %218 = load i32, ptr %22, align 4, !tbaa !47
  %219 = sext i32 %218 to i64
  %220 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef %219) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %220)
          to label %221 unwind label %222

221:                                              ; preds = %213
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %215, ptr noundef %25)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %232

222:                                              ; preds = %213, %206
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %11, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %817

226:                                              ; preds = %201
  %227 = load ptr, ptr %15, align 8, !tbaa !5
  %228 = load i32, ptr %19, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %227, i32 noundef %228)
  %229 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %229, ptr noundef @.str.77)
  %230 = load ptr, ptr %15, align 8, !tbaa !5
  %231 = load i32, ptr %22, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %230, i32 noundef %231)
  br label %232

232:                                              ; preds = %226, %221
  br label %233

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

234:                                              ; preds = %233, %173
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %235

235:                                              ; preds = %234
  %236 = load i32, ptr %21, align 4, !tbaa !47
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr %21, align 4, !tbaa !47
  br label %161, !llvm.loop !53

238:                                              ; preds = %172
  br label %239

239:                                              ; preds = %238
  %240 = load i32, ptr %19, align 4, !tbaa !47
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr %19, align 4, !tbaa !47
  br label %146, !llvm.loop !54

242:                                              ; preds = %152
  %243 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %243, ptr noundef @.str.78)
  br label %244

244:                                              ; preds = %242, %143
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %245 = load ptr, ptr %9, align 8, !tbaa !5
  %246 = getelementptr inbounds %class.HighsLp, ptr %245, i32 0, i32 9
  %247 = load double, ptr %246, align 8, !tbaa !55
  store double %247, ptr %26, align 8, !tbaa !48
  %248 = load double, ptr %26, align 8, !tbaa !48
  %249 = fcmp une double %248, 0.000000e+00
  br i1 %249, label %250, label %253

250:                                              ; preds = %244
  %251 = load ptr, ptr %15, align 8, !tbaa !5
  %252 = load double, ptr %26, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %251, double noundef %252, i1 noundef zeroext true)
  br label %253

253:                                              ; preds = %250, %244
  %254 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %254)
  %255 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %255, ptr noundef @.str.79)
  %256 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %256)
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !47
  br label %257

257:                                              ; preds = %458, %253
  %258 = load i32, ptr %27, align 4, !tbaa !47
  %259 = load ptr, ptr %9, align 8, !tbaa !5
  %260 = getelementptr inbounds %class.HighsLp, ptr %259, i32 0, i32 1
  %261 = load i32, ptr %260, align 4, !tbaa !45
  %262 = icmp slt i32 %258, %261
  br i1 %262, label %264, label %263

263:                                              ; preds = %257
  store i32 11, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %462

264:                                              ; preds = %257
  %265 = load ptr, ptr %9, align 8, !tbaa !5
  %266 = getelementptr inbounds %class.HighsLp, ptr %265, i32 0, i32 5
  %267 = load i32, ptr %27, align 4, !tbaa !47
  %268 = sext i32 %267 to i64
  %269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %266, i64 noundef %268) #7
  %270 = load double, ptr %269, align 8, !tbaa !48
  %271 = load ptr, ptr %9, align 8, !tbaa !5
  %272 = getelementptr inbounds %class.HighsLp, ptr %271, i32 0, i32 6
  %273 = load i32, ptr %27, align 4, !tbaa !47
  %274 = sext i32 %273 to i64
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %272, i64 noundef %274) #7
  %276 = load double, ptr %275, align 8, !tbaa !48
  %277 = fcmp oeq double %270, %276
  br i1 %277, label %278, label %323

278:                                              ; preds = %264
  %279 = load i8, ptr %14, align 1, !tbaa !44, !range !49, !noundef !50
  %280 = trunc i8 %279 to i1
  br i1 %280, label %281, label %293

281:                                              ; preds = %278
  %282 = load ptr, ptr %15, align 8, !tbaa !5
  %283 = load ptr, ptr %9, align 8, !tbaa !5
  %284 = getelementptr inbounds %class.HighsLp, ptr %283, i32 0, i32 15
  %285 = load i32, ptr %27, align 4, !tbaa !47
  %286 = sext i32 %285 to i64
  %287 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %284, i64 noundef %286) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %287)
          to label %288 unwind label %289

288:                                              ; preds = %281
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %282, ptr noundef %28)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %296

289:                                              ; preds = %296, %281
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %11, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %12, align 4
  br label %461

293:                                              ; preds = %278
  %294 = load ptr, ptr %15, align 8, !tbaa !5
  %295 = load i32, ptr %27, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileConEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %294, i32 noundef %295)
  br label %296

296:                                              ; preds = %293, %288
  %297 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %297, ptr noundef @.str.80)
  %298 = load ptr, ptr %15, align 8, !tbaa !5
  %299 = load i32, ptr %27, align 4, !tbaa !47
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %29, ptr noundef nonnull align 8 dereferenceable(112) %10)
          to label %300 unwind label %289

300:                                              ; preds = %296
  %301 = load ptr, ptr %9, align 8, !tbaa !5
  %302 = getelementptr inbounds %class.HighsLp, ptr %301, i32 0, i32 14
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(24) %302)
          to label %303 unwind label %314

303:                                              ; preds = %300
  invoke void @_ZN12FilereaderLp20writeToFileMatrixRowEP8_IO_FILEi17HighsSparseMatrixSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %298, i32 noundef %299, ptr noundef %29, ptr noundef %30)
          to label %304 unwind label %318

304:                                              ; preds = %303
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #7
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %29) #7
  %305 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %305, ptr noundef @.str.81)
  %306 = load ptr, ptr %15, align 8, !tbaa !5
  %307 = load ptr, ptr %9, align 8, !tbaa !5
  %308 = getelementptr inbounds %class.HighsLp, ptr %307, i32 0, i32 5
  %309 = load i32, ptr %27, align 4, !tbaa !47
  %310 = sext i32 %309 to i64
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %310) #7
  %312 = load double, ptr %311, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %306, double noundef %312, i1 noundef zeroext true)
  %313 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %313)
  br label %457

314:                                              ; preds = %300
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %11, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %12, align 4
  br label %322

318:                                              ; preds = %303
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %11, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #7
  br label %322

322:                                              ; preds = %318, %314
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %29) #7
  br label %461

323:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  %324 = load ptr, ptr %9, align 8, !tbaa !5
  %325 = getelementptr inbounds %class.HighsLp, ptr %324, i32 0, i32 5
  %326 = load i32, ptr %27, align 4, !tbaa !47
  %327 = sext i32 %326 to i64
  %328 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %325, i64 noundef %327) #7
  %329 = load double, ptr %328, align 8, !tbaa !48
  %330 = fcmp ogt double %329, 0xFFF0000000000000
  br i1 %330, label %331, label %339

331:                                              ; preds = %323
  %332 = load ptr, ptr %9, align 8, !tbaa !5
  %333 = getelementptr inbounds %class.HighsLp, ptr %332, i32 0, i32 6
  %334 = load i32, ptr %27, align 4, !tbaa !47
  %335 = sext i32 %334 to i64
  %336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %333, i64 noundef %335) #7
  %337 = load double, ptr %336, align 8, !tbaa !48
  %338 = fcmp olt double %337, 0x7FF0000000000000
  br label %339

339:                                              ; preds = %331, %323
  %340 = phi i1 [ false, %323 ], [ %338, %331 ]
  %341 = zext i1 %340 to i8
  store i8 %341, ptr %31, align 1, !tbaa !44
  %342 = load ptr, ptr %9, align 8, !tbaa !5
  %343 = getelementptr inbounds %class.HighsLp, ptr %342, i32 0, i32 5
  %344 = load i32, ptr %27, align 4, !tbaa !47
  %345 = sext i32 %344 to i64
  %346 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %343, i64 noundef %345) #7
  %347 = load double, ptr %346, align 8, !tbaa !48
  %348 = fcmp ogt double %347, 0xFFF0000000000000
  br i1 %348, label %349, label %400

349:                                              ; preds = %339
  %350 = load i8, ptr %14, align 1, !tbaa !44, !range !49, !noundef !50
  %351 = trunc i8 %350 to i1
  br i1 %351, label %352, label %364

352:                                              ; preds = %349
  %353 = load ptr, ptr %15, align 8, !tbaa !5
  %354 = load ptr, ptr %9, align 8, !tbaa !5
  %355 = getelementptr inbounds %class.HighsLp, ptr %354, i32 0, i32 15
  %356 = load i32, ptr %27, align 4, !tbaa !47
  %357 = sext i32 %356 to i64
  %358 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %355, i64 noundef %357) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %358)
          to label %359 unwind label %360

359:                                              ; preds = %352
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %353, ptr noundef %32)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %367

360:                                              ; preds = %429, %411, %374, %352
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %11, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %12, align 4
  br label %456

364:                                              ; preds = %349
  %365 = load ptr, ptr %15, align 8, !tbaa !5
  %366 = load i32, ptr %27, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileConEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %365, i32 noundef %366)
  br label %367

367:                                              ; preds = %364, %359
  %368 = load i8, ptr %31, align 1, !tbaa !44, !range !49, !noundef !50
  %369 = trunc i8 %368 to i1
  br i1 %369, label %370, label %372

370:                                              ; preds = %367
  %371 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %371, ptr noundef @.str.82)
  br label %374

372:                                              ; preds = %367
  %373 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %373, ptr noundef @.str.80)
  br label %374

374:                                              ; preds = %372, %370
  %375 = load ptr, ptr %15, align 8, !tbaa !5
  %376 = load i32, ptr %27, align 4, !tbaa !47
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %33, ptr noundef nonnull align 8 dereferenceable(112) %10)
          to label %377 unwind label %360

377:                                              ; preds = %374
  %378 = load ptr, ptr %9, align 8, !tbaa !5
  %379 = getelementptr inbounds %class.HighsLp, ptr %378, i32 0, i32 14
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %379)
          to label %380 unwind label %391

380:                                              ; preds = %377
  invoke void @_ZN12FilereaderLp20writeToFileMatrixRowEP8_IO_FILEi17HighsSparseMatrixSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %375, i32 noundef %376, ptr noundef %33, ptr noundef %34)
          to label %381 unwind label %395

381:                                              ; preds = %380
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %33) #7
  %382 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %382, ptr noundef @.str.83)
  %383 = load ptr, ptr %15, align 8, !tbaa !5
  %384 = load ptr, ptr %9, align 8, !tbaa !5
  %385 = getelementptr inbounds %class.HighsLp, ptr %384, i32 0, i32 5
  %386 = load i32, ptr %27, align 4, !tbaa !47
  %387 = sext i32 %386 to i64
  %388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %385, i64 noundef %387) #7
  %389 = load double, ptr %388, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %383, double noundef %389, i1 noundef zeroext true)
  %390 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %390)
  br label %400

391:                                              ; preds = %377
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %11, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %12, align 4
  br label %399

395:                                              ; preds = %380
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %11, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  br label %399

399:                                              ; preds = %395, %391
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %33) #7
  br label %456

400:                                              ; preds = %381, %339
  %401 = load ptr, ptr %9, align 8, !tbaa !5
  %402 = getelementptr inbounds %class.HighsLp, ptr %401, i32 0, i32 6
  %403 = load i32, ptr %27, align 4, !tbaa !47
  %404 = sext i32 %403 to i64
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef %404) #7
  %406 = load double, ptr %405, align 8, !tbaa !48
  %407 = fcmp olt double %406, 0x7FF0000000000000
  br i1 %407, label %408, label %455

408:                                              ; preds = %400
  %409 = load i8, ptr %14, align 1, !tbaa !44, !range !49, !noundef !50
  %410 = trunc i8 %409 to i1
  br i1 %410, label %411, label %419

411:                                              ; preds = %408
  %412 = load ptr, ptr %15, align 8, !tbaa !5
  %413 = load ptr, ptr %9, align 8, !tbaa !5
  %414 = getelementptr inbounds %class.HighsLp, ptr %413, i32 0, i32 15
  %415 = load i32, ptr %27, align 4, !tbaa !47
  %416 = sext i32 %415 to i64
  %417 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %414, i64 noundef %416) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %417)
          to label %418 unwind label %360

418:                                              ; preds = %411
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %412, ptr noundef %35)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %422

419:                                              ; preds = %408
  %420 = load ptr, ptr %15, align 8, !tbaa !5
  %421 = load i32, ptr %27, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileConEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %420, i32 noundef %421)
  br label %422

422:                                              ; preds = %419, %418
  %423 = load i8, ptr %31, align 1, !tbaa !44, !range !49, !noundef !50
  %424 = trunc i8 %423 to i1
  br i1 %424, label %425, label %427

425:                                              ; preds = %422
  %426 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %426, ptr noundef @.str.84)
  br label %429

427:                                              ; preds = %422
  %428 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %428, ptr noundef @.str.80)
  br label %429

429:                                              ; preds = %427, %425
  %430 = load ptr, ptr %15, align 8, !tbaa !5
  %431 = load i32, ptr %27, align 4, !tbaa !47
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %36, ptr noundef nonnull align 8 dereferenceable(112) %10)
          to label %432 unwind label %360

432:                                              ; preds = %429
  %433 = load ptr, ptr %9, align 8, !tbaa !5
  %434 = getelementptr inbounds %class.HighsLp, ptr %433, i32 0, i32 14
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %434)
          to label %435 unwind label %446

435:                                              ; preds = %432
  invoke void @_ZN12FilereaderLp20writeToFileMatrixRowEP8_IO_FILEi17HighsSparseMatrixSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %430, i32 noundef %431, ptr noundef %36, ptr noundef %37)
          to label %436 unwind label %450

436:                                              ; preds = %435
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %36) #7
  %437 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %437, ptr noundef @.str.85)
  %438 = load ptr, ptr %15, align 8, !tbaa !5
  %439 = load ptr, ptr %9, align 8, !tbaa !5
  %440 = getelementptr inbounds %class.HighsLp, ptr %439, i32 0, i32 6
  %441 = load i32, ptr %27, align 4, !tbaa !47
  %442 = sext i32 %441 to i64
  %443 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %440, i64 noundef %442) #7
  %444 = load double, ptr %443, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %438, double noundef %444, i1 noundef zeroext true)
  %445 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %445)
  br label %455

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

450:                                              ; preds = %435
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %11, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  br label %454

454:                                              ; preds = %450, %446
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %36) #7
  br label %456

455:                                              ; preds = %436, %400
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  br label %457

456:                                              ; preds = %454, %399, %360
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  br label %461

457:                                              ; preds = %455, %304
  br label %458

458:                                              ; preds = %457
  %459 = load i32, ptr %27, align 4, !tbaa !47
  %460 = add nsw i32 %459, 1
  store i32 %460, ptr %27, align 4, !tbaa !47
  br label %257, !llvm.loop !56

461:                                              ; preds = %456, %322, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %816

462:                                              ; preds = %263
  %463 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %463, ptr noundef @.str.86)
  %464 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %464)
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  store i32 0, ptr %38, align 4, !tbaa !47
  br label %465

465:                                              ; preds = %629, %462
  %466 = load i32, ptr %38, align 4, !tbaa !47
  %467 = load ptr, ptr %9, align 8, !tbaa !5
  %468 = getelementptr inbounds %class.HighsLp, ptr %467, i32 0, i32 0
  %469 = load i32, ptr %468, align 8, !tbaa !9
  %470 = icmp slt i32 %466, %469
  br i1 %470, label %472, label %471

471:                                              ; preds = %465
  store i32 14, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %632

472:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  %473 = load ptr, ptr %9, align 8, !tbaa !5
  %474 = getelementptr inbounds %class.HighsLp, ptr %473, i32 0, i32 3
  %475 = load i32, ptr %38, align 4, !tbaa !47
  %476 = sext i32 %475 to i64
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %474, i64 noundef %476) #7
  %478 = load double, ptr %477, align 8, !tbaa !48
  %479 = fcmp oeq double %478, 0.000000e+00
  br i1 %479, label %480, label %488

480:                                              ; preds = %472
  %481 = load ptr, ptr %9, align 8, !tbaa !5
  %482 = getelementptr inbounds %class.HighsLp, ptr %481, i32 0, i32 4
  %483 = load i32, ptr %38, align 4, !tbaa !47
  %484 = sext i32 %483 to i64
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %482, i64 noundef %484) #7
  %486 = load double, ptr %485, align 8, !tbaa !48
  %487 = fcmp oeq double %486, 0x7FF0000000000000
  br label %488

488:                                              ; preds = %480, %472
  %489 = phi i1 [ false, %472 ], [ %487, %480 ]
  %490 = zext i1 %489 to i8
  store i8 %490, ptr %39, align 1, !tbaa !44
  %491 = load i8, ptr %39, align 1, !tbaa !44, !range !49, !noundef !50
  %492 = trunc i8 %491 to i1
  br i1 %492, label %493, label %494

493:                                              ; preds = %488
  store i32 16, ptr %20, align 4
  br label %626

494:                                              ; preds = %488
  %495 = load ptr, ptr %9, align 8, !tbaa !5
  %496 = getelementptr inbounds %class.HighsLp, ptr %495, i32 0, i32 3
  %497 = load i32, ptr %38, align 4, !tbaa !47
  %498 = sext i32 %497 to i64
  %499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %496, i64 noundef %498) #7
  %500 = load double, ptr %499, align 8, !tbaa !48
  %501 = fcmp ole double %500, 0xFFF0000000000000
  br i1 %501, label %502, label %530

502:                                              ; preds = %494
  %503 = load ptr, ptr %9, align 8, !tbaa !5
  %504 = getelementptr inbounds %class.HighsLp, ptr %503, i32 0, i32 4
  %505 = load i32, ptr %38, align 4, !tbaa !47
  %506 = sext i32 %505 to i64
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %504, i64 noundef %506) #7
  %508 = load double, ptr %507, align 8, !tbaa !48
  %509 = fcmp oge double %508, 0x7FF0000000000000
  br i1 %509, label %510, label %530

510:                                              ; preds = %502
  %511 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %512 = trunc i8 %511 to i1
  br i1 %512, label %513, label %525

513:                                              ; preds = %510
  %514 = load ptr, ptr %15, align 8, !tbaa !5
  %515 = load ptr, ptr %9, align 8, !tbaa !5
  %516 = getelementptr inbounds %class.HighsLp, ptr %515, i32 0, i32 14
  %517 = load i32, ptr %38, align 4, !tbaa !47
  %518 = sext i32 %517 to i64
  %519 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %516, i64 noundef %518) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %520 unwind label %521

520:                                              ; preds = %513
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %514, ptr noundef %40)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %528

521:                                              ; preds = %594, %547, %513
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %11, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %816

525:                                              ; preds = %510
  %526 = load ptr, ptr %15, align 8, !tbaa !5
  %527 = load i32, ptr %38, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %526, i32 noundef %527)
  br label %528

528:                                              ; preds = %525, %520
  %529 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %529, ptr noundef @.str.87)
  br label %624

530:                                              ; preds = %502, %494
  %531 = load ptr, ptr %9, align 8, !tbaa !5
  %532 = getelementptr inbounds %class.HighsLp, ptr %531, i32 0, i32 3
  %533 = load i32, ptr %38, align 4, !tbaa !47
  %534 = sext i32 %533 to i64
  %535 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %532, i64 noundef %534) #7
  %536 = load double, ptr %535, align 8, !tbaa !48
  %537 = load ptr, ptr %9, align 8, !tbaa !5
  %538 = getelementptr inbounds %class.HighsLp, ptr %537, i32 0, i32 4
  %539 = load i32, ptr %38, align 4, !tbaa !47
  %540 = sext i32 %539 to i64
  %541 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %538, i64 noundef %540) #7
  %542 = load double, ptr %541, align 8, !tbaa !48
  %543 = fcmp oeq double %536, %542
  br i1 %543, label %544, label %567

544:                                              ; preds = %530
  %545 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %546 = trunc i8 %545 to i1
  br i1 %546, label %547, label %555

547:                                              ; preds = %544
  %548 = load ptr, ptr %15, align 8, !tbaa !5
  %549 = load ptr, ptr %9, align 8, !tbaa !5
  %550 = getelementptr inbounds %class.HighsLp, ptr %549, i32 0, i32 14
  %551 = load i32, ptr %38, align 4, !tbaa !47
  %552 = sext i32 %551 to i64
  %553 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %550, i64 noundef %552) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %553)
          to label %554 unwind label %521

554:                                              ; preds = %547
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %548, ptr noundef %41)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %558

555:                                              ; preds = %544
  %556 = load ptr, ptr %15, align 8, !tbaa !5
  %557 = load i32, ptr %38, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %556, i32 noundef %557)
  br label %558

558:                                              ; preds = %555, %554
  %559 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %559, ptr noundef @.str.81)
  %560 = load ptr, ptr %15, align 8, !tbaa !5
  %561 = load ptr, ptr %9, align 8, !tbaa !5
  %562 = getelementptr inbounds %class.HighsLp, ptr %561, i32 0, i32 4
  %563 = load i32, ptr %38, align 4, !tbaa !47
  %564 = sext i32 %563 to i64
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %562, i64 noundef %564) #7
  %566 = load double, ptr %565, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %560, double noundef %566, i1 noundef zeroext false)
  br label %623

567:                                              ; preds = %530
  %568 = load i8, ptr %39, align 1, !tbaa !44, !range !49, !noundef !50
  %569 = trunc i8 %568 to i1
  %570 = xor i1 %569, true
  br i1 %570, label %571, label %572

571:                                              ; preds = %567
  br label %574

572:                                              ; preds = %567
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.53, i32 noundef 433, ptr noundef @__PRETTY_FUNCTION__._ZN12FilereaderLp16writeModelToFileERK12HighsOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK10HighsModel) #8
  unreachable

573:                                              ; No predecessors!
  br label %574

574:                                              ; preds = %573, %571
  %575 = load ptr, ptr %9, align 8, !tbaa !5
  %576 = getelementptr inbounds %class.HighsLp, ptr %575, i32 0, i32 3
  %577 = load i32, ptr %38, align 4, !tbaa !47
  %578 = sext i32 %577 to i64
  %579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %576, i64 noundef %578) #7
  %580 = load double, ptr %579, align 8, !tbaa !48
  %581 = fcmp une double %580, 0.000000e+00
  br i1 %581, label %582, label %591

582:                                              ; preds = %574
  %583 = load ptr, ptr %15, align 8, !tbaa !5
  %584 = load ptr, ptr %9, align 8, !tbaa !5
  %585 = getelementptr inbounds %class.HighsLp, ptr %584, i32 0, i32 3
  %586 = load i32, ptr %38, align 4, !tbaa !47
  %587 = sext i32 %586 to i64
  %588 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %585, i64 noundef %587) #7
  %589 = load double, ptr %588, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %583, double noundef %589, i1 noundef zeroext false)
  %590 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %590, ptr noundef @.str.85)
  br label %591

591:                                              ; preds = %582, %574
  %592 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %593 = trunc i8 %592 to i1
  br i1 %593, label %594, label %602

594:                                              ; preds = %591
  %595 = load ptr, ptr %15, align 8, !tbaa !5
  %596 = load ptr, ptr %9, align 8, !tbaa !5
  %597 = getelementptr inbounds %class.HighsLp, ptr %596, i32 0, i32 14
  %598 = load i32, ptr %38, align 4, !tbaa !47
  %599 = sext i32 %598 to i64
  %600 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %597, i64 noundef %599) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %600)
          to label %601 unwind label %521

601:                                              ; preds = %594
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %595, ptr noundef %42)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %605

602:                                              ; preds = %591
  %603 = load ptr, ptr %15, align 8, !tbaa !5
  %604 = load i32, ptr %38, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %603, i32 noundef %604)
  br label %605

605:                                              ; preds = %602, %601
  %606 = load ptr, ptr %9, align 8, !tbaa !5
  %607 = getelementptr inbounds %class.HighsLp, ptr %606, i32 0, i32 4
  %608 = load i32, ptr %38, align 4, !tbaa !47
  %609 = sext i32 %608 to i64
  %610 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %607, i64 noundef %609) #7
  %611 = load double, ptr %610, align 8, !tbaa !48
  %612 = fcmp olt double %611, 0x7FF0000000000000
  br i1 %612, label %613, label %622

613:                                              ; preds = %605
  %614 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %614, ptr noundef @.str.85)
  %615 = load ptr, ptr %15, align 8, !tbaa !5
  %616 = load ptr, ptr %9, align 8, !tbaa !5
  %617 = getelementptr inbounds %class.HighsLp, ptr %616, i32 0, i32 4
  %618 = load i32, ptr %38, align 4, !tbaa !47
  %619 = sext i32 %618 to i64
  %620 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %617, i64 noundef %619) #7
  %621 = load double, ptr %620, align 8, !tbaa !48
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %615, double noundef %621, i1 noundef zeroext false)
  br label %622

622:                                              ; preds = %613, %605
  br label %623

623:                                              ; preds = %622, %558
  br label %624

624:                                              ; preds = %623, %528
  %625 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %625)
  store i32 0, ptr %20, align 4
  br label %626

626:                                              ; preds = %624, %493
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  %627 = load i32, ptr %20, align 4
  switch i32 %627, label %824 [
    i32 0, label %628
    i32 16, label %629
  ]

628:                                              ; preds = %626
  br label %629

629:                                              ; preds = %628, %626
  %630 = load i32, ptr %38, align 4, !tbaa !47
  %631 = add nsw i32 %630, 1
  store i32 %631, ptr %38, align 4, !tbaa !47
  br label %465, !llvm.loop !57

632:                                              ; preds = %471
  %633 = load ptr, ptr %9, align 8, !tbaa !5
  %634 = getelementptr inbounds %class.HighsLp, ptr %633, i32 0, i32 16
  %635 = call noundef i64 @_ZNKSt6vectorI12HighsVarTypeSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #7
  %636 = icmp ugt i64 %635, 0
  br i1 %636, label %637, label %806

637:                                              ; preds = %632
  %638 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %638, ptr noundef @.str.89)
  %639 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %639)
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  store i32 0, ptr %43, align 4, !tbaa !47
  br label %640

640:                                              ; preds = %693, %637
  %641 = load i32, ptr %43, align 4, !tbaa !47
  %642 = load ptr, ptr %9, align 8, !tbaa !5
  %643 = getelementptr inbounds %class.HighsLp, ptr %642, i32 0, i32 0
  %644 = load i32, ptr %643, align 8, !tbaa !9
  %645 = icmp slt i32 %641, %644
  br i1 %645, label %647, label %646

646:                                              ; preds = %640
  store i32 17, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %696

647:                                              ; preds = %640
  %648 = load ptr, ptr %9, align 8, !tbaa !5
  %649 = getelementptr inbounds %class.HighsLp, ptr %648, i32 0, i32 16
  %650 = load i32, ptr %43, align 4, !tbaa !47
  %651 = sext i32 %650 to i64
  %652 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %649, i64 noundef %651) #7
  %653 = load i8, ptr %652, align 1, !tbaa !58
  %654 = icmp eq i8 %653, 1
  br i1 %654, label %655, label %692

655:                                              ; preds = %647
  %656 = load ptr, ptr %9, align 8, !tbaa !5
  %657 = getelementptr inbounds %class.HighsLp, ptr %656, i32 0, i32 3
  %658 = load i32, ptr %43, align 4, !tbaa !47
  %659 = sext i32 %658 to i64
  %660 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %657, i64 noundef %659) #7
  %661 = load double, ptr %660, align 8, !tbaa !48
  %662 = fcmp oeq double %661, 0.000000e+00
  br i1 %662, label %663, label %691

663:                                              ; preds = %655
  %664 = load ptr, ptr %9, align 8, !tbaa !5
  %665 = getelementptr inbounds %class.HighsLp, ptr %664, i32 0, i32 4
  %666 = load i32, ptr %43, align 4, !tbaa !47
  %667 = sext i32 %666 to i64
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %665, i64 noundef %667) #7
  %669 = load double, ptr %668, align 8, !tbaa !48
  %670 = fcmp oeq double %669, 1.000000e+00
  br i1 %670, label %671, label %691

671:                                              ; preds = %663
  %672 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %673 = trunc i8 %672 to i1
  br i1 %673, label %674, label %686

674:                                              ; preds = %671
  %675 = load ptr, ptr %15, align 8, !tbaa !5
  %676 = load ptr, ptr %9, align 8, !tbaa !5
  %677 = getelementptr inbounds %class.HighsLp, ptr %676, i32 0, i32 14
  %678 = load i32, ptr %43, align 4, !tbaa !47
  %679 = sext i32 %678 to i64
  %680 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %677, i64 noundef %679) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %680)
          to label %681 unwind label %682

681:                                              ; preds = %674
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %675, ptr noundef %44)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %689

682:                                              ; preds = %674
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %11, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %816

686:                                              ; preds = %671
  %687 = load ptr, ptr %15, align 8, !tbaa !5
  %688 = load i32, ptr %43, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %687, i32 noundef %688)
  br label %689

689:                                              ; preds = %686, %681
  %690 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %690)
  br label %691

691:                                              ; preds = %689, %663, %655
  br label %692

692:                                              ; preds = %691, %647
  br label %693

693:                                              ; preds = %692
  %694 = load i32, ptr %43, align 4, !tbaa !47
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr %43, align 4, !tbaa !47
  br label %640, !llvm.loop !60

696:                                              ; preds = %646
  %697 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %697, ptr noundef @.str.90)
  %698 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %698)
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store i32 0, ptr %45, align 4, !tbaa !47
  br label %699

699:                                              ; preds = %752, %696
  %700 = load i32, ptr %45, align 4, !tbaa !47
  %701 = load ptr, ptr %9, align 8, !tbaa !5
  %702 = getelementptr inbounds %class.HighsLp, ptr %701, i32 0, i32 0
  %703 = load i32, ptr %702, align 8, !tbaa !9
  %704 = icmp slt i32 %700, %703
  br i1 %704, label %706, label %705

705:                                              ; preds = %699
  store i32 20, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %755

706:                                              ; preds = %699
  %707 = load ptr, ptr %9, align 8, !tbaa !5
  %708 = getelementptr inbounds %class.HighsLp, ptr %707, i32 0, i32 16
  %709 = load i32, ptr %45, align 4, !tbaa !47
  %710 = sext i32 %709 to i64
  %711 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %708, i64 noundef %710) #7
  %712 = load i8, ptr %711, align 1, !tbaa !58
  %713 = icmp eq i8 %712, 1
  br i1 %713, label %714, label %751

714:                                              ; preds = %706
  %715 = load ptr, ptr %9, align 8, !tbaa !5
  %716 = getelementptr inbounds %class.HighsLp, ptr %715, i32 0, i32 3
  %717 = load i32, ptr %45, align 4, !tbaa !47
  %718 = sext i32 %717 to i64
  %719 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %716, i64 noundef %718) #7
  %720 = load double, ptr %719, align 8, !tbaa !48
  %721 = fcmp une double %720, 0.000000e+00
  br i1 %721, label %730, label %722

722:                                              ; preds = %714
  %723 = load ptr, ptr %9, align 8, !tbaa !5
  %724 = getelementptr inbounds %class.HighsLp, ptr %723, i32 0, i32 4
  %725 = load i32, ptr %45, align 4, !tbaa !47
  %726 = sext i32 %725 to i64
  %727 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %724, i64 noundef %726) #7
  %728 = load double, ptr %727, align 8, !tbaa !48
  %729 = fcmp une double %728, 1.000000e+00
  br i1 %729, label %730, label %750

730:                                              ; preds = %722, %714
  %731 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %732 = trunc i8 %731 to i1
  br i1 %732, label %733, label %745

733:                                              ; preds = %730
  %734 = load ptr, ptr %15, align 8, !tbaa !5
  %735 = load ptr, ptr %9, align 8, !tbaa !5
  %736 = getelementptr inbounds %class.HighsLp, ptr %735, i32 0, i32 14
  %737 = load i32, ptr %45, align 4, !tbaa !47
  %738 = sext i32 %737 to i64
  %739 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %736, i64 noundef %738) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %739)
          to label %740 unwind label %741

740:                                              ; preds = %733
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %734, ptr noundef %46)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %748

741:                                              ; preds = %733
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %11, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %816

745:                                              ; preds = %730
  %746 = load ptr, ptr %15, align 8, !tbaa !5
  %747 = load i32, ptr %45, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %746, i32 noundef %747)
  br label %748

748:                                              ; preds = %745, %740
  %749 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %749)
  br label %750

750:                                              ; preds = %748, %722
  br label %751

751:                                              ; preds = %750, %706
  br label %752

752:                                              ; preds = %751
  %753 = load i32, ptr %45, align 4, !tbaa !47
  %754 = add nsw i32 %753, 1
  store i32 %754, ptr %45, align 4, !tbaa !47
  br label %699, !llvm.loop !61

755:                                              ; preds = %705
  %756 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %756, ptr noundef @.str.91)
  %757 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %757)
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  store i32 0, ptr %47, align 4, !tbaa !47
  br label %758

758:                                              ; preds = %802, %755
  %759 = load i32, ptr %47, align 4, !tbaa !47
  %760 = load ptr, ptr %9, align 8, !tbaa !5
  %761 = getelementptr inbounds %class.HighsLp, ptr %760, i32 0, i32 0
  %762 = load i32, ptr %761, align 8, !tbaa !9
  %763 = icmp slt i32 %759, %762
  br i1 %763, label %765, label %764

764:                                              ; preds = %758
  store i32 23, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %805

765:                                              ; preds = %758
  %766 = load ptr, ptr %9, align 8, !tbaa !5
  %767 = getelementptr inbounds %class.HighsLp, ptr %766, i32 0, i32 16
  %768 = load i32, ptr %47, align 4, !tbaa !47
  %769 = sext i32 %768 to i64
  %770 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %767, i64 noundef %769) #7
  %771 = load i8, ptr %770, align 1, !tbaa !58
  %772 = icmp eq i8 %771, 2
  br i1 %772, label %781, label %773

773:                                              ; preds = %765
  %774 = load ptr, ptr %9, align 8, !tbaa !5
  %775 = getelementptr inbounds %class.HighsLp, ptr %774, i32 0, i32 16
  %776 = load i32, ptr %47, align 4, !tbaa !47
  %777 = sext i32 %776 to i64
  %778 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %775, i64 noundef %777) #7
  %779 = load i8, ptr %778, align 1, !tbaa !58
  %780 = icmp eq i8 %779, 3
  br i1 %780, label %781, label %801

781:                                              ; preds = %773, %765
  %782 = load i8, ptr %13, align 1, !tbaa !44, !range !49, !noundef !50
  %783 = trunc i8 %782 to i1
  br i1 %783, label %784, label %796

784:                                              ; preds = %781
  %785 = load ptr, ptr %15, align 8, !tbaa !5
  %786 = load ptr, ptr %9, align 8, !tbaa !5
  %787 = getelementptr inbounds %class.HighsLp, ptr %786, i32 0, i32 14
  %788 = load i32, ptr %47, align 4, !tbaa !47
  %789 = sext i32 %788 to i64
  %790 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %787, i64 noundef %789) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %790)
          to label %791 unwind label %792

791:                                              ; preds = %784
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %785, ptr noundef %48)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  br label %799

792:                                              ; preds = %784
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %11, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %816

796:                                              ; preds = %781
  %797 = load ptr, ptr %15, align 8, !tbaa !5
  %798 = load i32, ptr %47, align 4, !tbaa !47
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %797, i32 noundef %798)
  br label %799

799:                                              ; preds = %796, %791
  %800 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %800)
  br label %801

801:                                              ; preds = %799, %773
  br label %802

802:                                              ; preds = %801
  %803 = load i32, ptr %47, align 4, !tbaa !47
  %804 = add nsw i32 %803, 1
  store i32 %804, ptr %47, align 4, !tbaa !47
  br label %758, !llvm.loop !62

805:                                              ; preds = %764
  br label %806

806:                                              ; preds = %805, %632
  %807 = load ptr, ptr %15, align 8, !tbaa !5
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %807, ptr noundef @.str.92)
  %808 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %49, ptr noundef %808)
  %809 = load ptr, ptr %15, align 8, !tbaa !5
  %810 = invoke i32 @fclose(ptr noundef %809)
          to label %811 unwind label %812

811:                                              ; preds = %806
  store i32 1, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %10) #7
  call void @llvm.lifetime.end.p0(i64 112, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  ret i32 0

812:                                              ; preds = %806
  %813 = landingpad { ptr, i32 }
          cleanup
  %814 = extractvalue { ptr, i32 } %813, 0
  store ptr %814, ptr %11, align 8
  %815 = extractvalue { ptr, i32 } %813, 1
  store i32 %815, ptr %12, align 4
  br label %816

816:                                              ; preds = %812, %792, %741, %682, %521, %461
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %817

817:                                              ; preds = %816, %222, %127, %101
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  br label %818

818:                                              ; preds = %817, %97
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %10) #7
  call void @llvm.lifetime.end.p0(i64 112, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %819

819:                                              ; preds = %818
  %820 = load ptr, ptr %11, align 8
  %821 = load i32, ptr %12, align 4
  %822 = insertvalue { ptr, i32 } poison, ptr %820, 0
  %823 = insertvalue { ptr, i32 } %822, i32 %821, 1
  resume { ptr, i32 } %823

824:                                              ; preds = %626
  unreachable
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10HighsModel4isQpEv(ptr noundef nonnull align 8 dereferenceable(1000)) #1 align 2

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

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

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

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

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

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

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

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


; 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.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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 }

@.str.62 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.92 = 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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN12FilereaderLp16writeModelToFileERK12HighsOptionsNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK10HighsModel(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(1020) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(1000) %3) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %class.HighsSparseMatrix, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %class.HighsSparseMatrix, align 8
  %11 = alloca %"class.std::vector.8", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %class.HighsSparseMatrix, align 8
  %14 = alloca %"class.std::vector.8", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %class.HighsSparseMatrix, align 8
  %17 = alloca %"class.std::vector.8", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %5) #7
  %24 = getelementptr inbounds i8, ptr %3, i64 128
  call void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %5, ptr noundef nonnull align 8 dereferenceable(112) %24)
  invoke void @_ZN17HighsSparseMatrix13ensureRowwiseEv(ptr noundef nonnull align 8 dereferenceable(112) %5)
          to label %25 unwind label %58

25:                                               ; preds = %4
  %26 = getelementptr inbounds i8, ptr %3, i64 328
  %27 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %28 = load i32, ptr %3, align 8, !tbaa !5
  %.fr = freeze i32 %28
  %29 = sext i32 %.fr to i64
  %30 = icmp eq i64 %27, %29
  %31 = getelementptr inbounds i8, ptr %3, i64 352
  %32 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  %33 = getelementptr inbounds i8, ptr %3, i64 4
  %34 = load i32, ptr %33, align 4, !tbaa !43
  %35 = sext i32 %34 to i64
  %36 = icmp eq i64 %32, %35
  %37 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #7
  %38 = call noalias ptr @fopen(ptr noundef %37, ptr noundef nonnull @.str.69)
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.71)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  %39 = getelementptr inbounds i8, ptr %3, i64 240
  %40 = load i32, ptr %39, align 8, !tbaa !44
  %41 = icmp eq i32 %40, 1
  %42 = select i1 %41, ptr @.str.72, ptr @.str.73
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.62, ptr noundef nonnull %42)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.74)
  %43 = load i32, ptr %3, align 8, !tbaa !5
  %44 = icmp sgt i32 %43, 0
  br i1 %44, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %25
  %45 = getelementptr inbounds i8, ptr %3, i64 8
  br i1 %30, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.lr.ph, %52
  %indvars.iv321 = phi i64 [ %indvars.iv.next322, %52 ], [ 0, %.lr.ph ]
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %indvars.iv321) #7
  %47 = load double, ptr %46, align 8, !tbaa !45
  %48 = fcmp une double %47, 0.000000e+00
  br i1 %48, label %49, label %52

49:                                               ; preds = %.lr.ph.split.us
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %47, i1 noundef zeroext true)
  %50 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv321) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %51 unwind label %.split.us

51:                                               ; preds = %49
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %6)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %52

52:                                               ; preds = %51, %.lr.ph.split.us
  %indvars.iv.next322 = add nuw nsw i64 %indvars.iv321, 1
  %53 = load i32, ptr %3, align 8, !tbaa !5
  %54 = sext i32 %53 to i64
  %55 = icmp slt i64 %indvars.iv.next322, %54
  br i1 %55, label %.lr.ph.split.us, label %._crit_edge, !llvm.loop !46

.split.us:                                        ; preds = %49
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %364

._crit_edge:                                      ; preds = %65, %52, %25
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.75)
  %57 = call noundef zeroext i1 @_ZNK10HighsModel4isQpEv(ptr noundef nonnull align 8 dereferenceable(1000) %3)
  br i1 %57, label %69, label %121

58:                                               ; preds = %4
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %364

.lr.ph.split:                                     ; preds = %.lr.ph, %65
  %indvars.iv = phi i64 [ %indvars.iv.next, %65 ], [ 0, %.lr.ph ]
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %indvars.iv) #7
  %61 = load double, ptr %60, align 8, !tbaa !45
  %62 = fcmp une double %61, 0.000000e+00
  br i1 %62, label %63, label %65

63:                                               ; preds = %.lr.ph.split
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %61, i1 noundef zeroext true)
  %64 = trunc nuw nsw i64 %indvars.iv to i32
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %64)
  br label %65

65:                                               ; preds = %63, %.lr.ph.split
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %66 = load i32, ptr %3, align 8, !tbaa !5
  %67 = sext i32 %66 to i64
  %68 = icmp slt i64 %indvars.iv.next, %67
  br i1 %68, label %.lr.ph.split, label %._crit_edge, !llvm.loop !46

69:                                               ; preds = %._crit_edge
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.76)
  %70 = load i32, ptr %3, align 8, !tbaa !5
  %71 = icmp sgt i32 %70, 0
  br i1 %71, label %.lr.ph293, label %._crit_edge294

.lr.ph293:                                        ; preds = %69
  %72 = getelementptr inbounds i8, ptr %3, i64 928
  %73 = getelementptr inbounds i8, ptr %3, i64 952
  %74 = getelementptr inbounds i8, ptr %3, i64 976
  br label %78

.loopexit282:                                     ; preds = %116, %100, %78
  %75 = load i32, ptr %3, align 8, !tbaa !5
  %76 = sext i32 %75 to i64
  %77 = icmp slt i64 %indvars.iv.next331, %76
  br i1 %77, label %78, label %._crit_edge294, !llvm.loop !48

._crit_edge294:                                   ; preds = %.loopexit282, %69
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.78)
  br label %121

78:                                               ; preds = %.lr.ph293, %.loopexit282
  %indvars.iv330 = phi i64 [ 0, %.lr.ph293 ], [ %indvars.iv.next331, %.loopexit282 ]
  %79 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef %indvars.iv330) #7
  %80 = load i32, ptr %79, align 4, !tbaa !49
  %indvars.iv.next331 = add nuw nsw i64 %indvars.iv330, 1
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef %indvars.iv.next331) #7
  %82 = load i32, ptr %81, align 4, !tbaa !49
  %83 = icmp slt i32 %80, %82
  br i1 %83, label %.lr.ph287, label %.loopexit282

.lr.ph287:                                        ; preds = %78
  %84 = sext i32 %80 to i64
  br i1 %30, label %.lr.ph287.split.us, label %.lr.ph287.split.preheader

.lr.ph287.split.preheader:                        ; preds = %.lr.ph287
  %85 = trunc nuw nsw i64 %indvars.iv330 to i32
  br label %.lr.ph287.split

.lr.ph287.split.us:                               ; preds = %.lr.ph287, %100
  %indvars.iv327 = phi i64 [ %indvars.iv.next328, %100 ], [ %84, %.lr.ph287 ]
  %86 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %indvars.iv327) #7
  %87 = load i32, ptr %86, align 4, !tbaa !49
  %88 = sext i32 %87 to i64
  %.not277.us = icmp sgt i64 %indvars.iv330, %88
  br i1 %.not277.us, label %100, label %89

89:                                               ; preds = %.lr.ph287.split.us
  %90 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %74, i64 noundef %indvars.iv327) #7
  %91 = load double, ptr %90, align 8, !tbaa !45
  %92 = zext i32 %87 to i64
  %.not278.us = icmp eq i64 %indvars.iv330, %92
  %93 = fmul double %91, 2.000000e+00
  %.0262.us = select i1 %.not278.us, double %91, double %93
  %94 = fcmp une double %.0262.us, 0.000000e+00
  br i1 %94, label %95, label %100

95:                                               ; preds = %89
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %.0262.us, i1 noundef zeroext true)
  %96 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv330) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %97 unwind label %.split.us288

97:                                               ; preds = %95
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %7)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.77)
  %98 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %88) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %99 unwind label %.split.us288

99:                                               ; preds = %97
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %8)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %100

100:                                              ; preds = %99, %89, %.lr.ph287.split.us
  %indvars.iv.next328 = add nsw i64 %indvars.iv327, 1
  %101 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef %indvars.iv.next331) #7
  %102 = load i32, ptr %101, align 4, !tbaa !49
  %103 = sext i32 %102 to i64
  %104 = icmp slt i64 %indvars.iv.next328, %103
  br i1 %104, label %.lr.ph287.split.us, label %.loopexit282, !llvm.loop !50

.split.us288:                                     ; preds = %97, %95
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %364

.lr.ph287.split:                                  ; preds = %.lr.ph287.split.preheader, %116
  %indvars.iv324 = phi i64 [ %84, %.lr.ph287.split.preheader ], [ %indvars.iv.next325, %116 ]
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %indvars.iv324) #7
  %107 = load i32, ptr %106, align 4, !tbaa !49
  %108 = sext i32 %107 to i64
  %.not277 = icmp sgt i64 %indvars.iv330, %108
  br i1 %.not277, label %116, label %109

109:                                              ; preds = %.lr.ph287.split
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %74, i64 noundef %indvars.iv324) #7
  %111 = load double, ptr %110, align 8, !tbaa !45
  %112 = zext i32 %107 to i64
  %.not278 = icmp eq i64 %indvars.iv330, %112
  %113 = fmul double %111, 2.000000e+00
  %.0262 = select i1 %.not278, double %111, double %113
  %114 = fcmp une double %.0262, 0.000000e+00
  br i1 %114, label %115, label %116

115:                                              ; preds = %109
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %.0262, i1 noundef zeroext true)
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %85)
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.77)
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %107)
  br label %116

116:                                              ; preds = %109, %115, %.lr.ph287.split
  %indvars.iv.next325 = add nsw i64 %indvars.iv324, 1
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef %indvars.iv.next331) #7
  %118 = load i32, ptr %117, align 4, !tbaa !49
  %119 = sext i32 %118 to i64
  %120 = icmp slt i64 %indvars.iv.next325, %119
  br i1 %120, label %.lr.ph287.split, label %.loopexit282, !llvm.loop !50

121:                                              ; preds = %._crit_edge294, %._crit_edge
  %122 = getelementptr inbounds i8, ptr %3, i64 248
  %123 = load double, ptr %122, align 8, !tbaa !51
  %124 = fcmp une double %123, 0.000000e+00
  br i1 %124, label %125, label %126

125:                                              ; preds = %121
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %123, i1 noundef zeroext true)
  br label %126

126:                                              ; preds = %125, %121
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.79)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  %127 = load i32, ptr %33, align 4, !tbaa !43
  %128 = icmp sgt i32 %127, 0
  br i1 %128, label %.lr.ph297, label %._crit_edge298

.lr.ph297:                                        ; preds = %126
  %129 = getelementptr inbounds i8, ptr %3, i64 80
  %130 = getelementptr inbounds i8, ptr %3, i64 104
  br label %135

._crit_edge298:                                   ; preds = %212, %126
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.86)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  %131 = load i32, ptr %3, align 8, !tbaa !5
  %132 = icmp sgt i32 %131, 0
  br i1 %132, label %.lr.ph301, label %._crit_edge302

.lr.ph301:                                        ; preds = %._crit_edge298
  %133 = getelementptr inbounds i8, ptr %3, i64 32
  %134 = getelementptr inbounds i8, ptr %3, i64 56
  br label %218

135:                                              ; preds = %.lr.ph297, %212
  %indvars.iv333 = phi i64 [ 0, %.lr.ph297 ], [ %indvars.iv.next334, %212 ]
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %indvars.iv333) #7
  %137 = load double, ptr %136, align 8, !tbaa !45
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv333) #7
  %139 = load double, ptr %138, align 8, !tbaa !45
  %140 = fcmp oeq double %137, %139
  br i1 %140, label %141, label %158

141:                                              ; preds = %135
  br i1 %36, label %142, label %147

142:                                              ; preds = %141
  %143 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv333) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %144 unwind label %145

144:                                              ; preds = %142
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %9)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %149

145:                                              ; preds = %149, %142
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %364

147:                                              ; preds = %141
  %148 = trunc nuw nsw i64 %indvars.iv333 to i32
  call void @_ZN12FilereaderLp14writeToFileConEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %148)
  br label %149

149:                                              ; preds = %147, %144
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.80)
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(112) %5)
          to label %150 unwind label %145

150:                                              ; preds = %149
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %151 unwind label %153

151:                                              ; preds = %150
  %152 = trunc nuw nsw i64 %indvars.iv333 to i32
  invoke void @_ZN12FilereaderLp20writeToFileMatrixRowEP8_IO_FILEi17HighsSparseMatrixSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %152, ptr noundef nonnull %10, ptr noundef nonnull %11)
          to label %.sink.split unwind label %155

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

155:                                              ; preds = %151
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br label %157

157:                                              ; preds = %155, %153
  %.pn273 = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %10) #7
  br label %364

158:                                              ; preds = %135
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %indvars.iv333) #7
  %160 = load double, ptr %159, align 8, !tbaa !45
  %161 = fcmp ueq double %160, 0xFFF0000000000000
  br i1 %161, label %166, label %162

162:                                              ; preds = %158
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv333) #7
  %164 = load double, ptr %163, align 8, !tbaa !45
  %165 = fcmp one double %164, 0x7FF0000000000000
  br label %166

166:                                              ; preds = %162, %158
  %167 = phi i1 [ false, %158 ], [ %165, %162 ]
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %indvars.iv333) #7
  %169 = load double, ptr %168, align 8, !tbaa !45
  %170 = fcmp ueq double %169, 0xFFF0000000000000
  br i1 %170, label %191, label %171

171:                                              ; preds = %166
  br i1 %36, label %172, label %177

172:                                              ; preds = %171
  %173 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv333) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %173)
          to label %174 unwind label %175

174:                                              ; preds = %172
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %12)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %179

175:                                              ; preds = %201, %196, %179, %172
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %364

177:                                              ; preds = %171
  %178 = trunc nuw nsw i64 %indvars.iv333 to i32
  call void @_ZN12FilereaderLp14writeToFileConEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %178)
  br label %179

179:                                              ; preds = %177, %174
  %.str.82..str.80 = select i1 %167, ptr @.str.82, ptr @.str.80
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %.str.82..str.80)
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %13, ptr noundef nonnull align 8 dereferenceable(112) %5)
          to label %180 unwind label %175

180:                                              ; preds = %179
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %181 unwind label %186

181:                                              ; preds = %180
  %182 = trunc nuw nsw i64 %indvars.iv333 to i32
  invoke void @_ZN12FilereaderLp20writeToFileMatrixRowEP8_IO_FILEi17HighsSparseMatrixSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %182, ptr noundef nonnull %13, ptr noundef nonnull %14)
          to label %183 unwind label %188

183:                                              ; preds = %181
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %13) #7
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.83)
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %indvars.iv333) #7
  %185 = load double, ptr %184, align 8, !tbaa !45
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %185, i1 noundef zeroext true)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  br label %191

186:                                              ; preds = %180
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %190

188:                                              ; preds = %181
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  br label %190

190:                                              ; preds = %188, %186
  %.pn = phi { ptr, i32 } [ %189, %188 ], [ %187, %186 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %13) #7
  br label %364

191:                                              ; preds = %183, %166
  %192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %indvars.iv333) #7
  %193 = load double, ptr %192, align 8, !tbaa !45
  %194 = fcmp ueq double %193, 0x7FF0000000000000
  br i1 %194, label %212, label %195

195:                                              ; preds = %191
  br i1 %36, label %196, label %199

196:                                              ; preds = %195
  %197 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv333) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %197)
          to label %198 unwind label %175

198:                                              ; preds = %196
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %15)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %201

199:                                              ; preds = %195
  %200 = trunc nuw nsw i64 %indvars.iv333 to i32
  call void @_ZN12FilereaderLp14writeToFileConEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %200)
  br label %201

201:                                              ; preds = %199, %198
  %.str.84..str.80 = select i1 %167, ptr @.str.84, ptr @.str.80
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %.str.84..str.80)
  invoke void @_ZN17HighsSparseMatrixC2ERKS_(ptr noundef nonnull align 8 dereferenceable(112) %16, ptr noundef nonnull align 8 dereferenceable(112) %5)
          to label %202 unwind label %175

202:                                              ; preds = %201
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %203 unwind label %205

203:                                              ; preds = %202
  %204 = trunc nuw nsw i64 %indvars.iv333 to i32
  invoke void @_ZN12FilereaderLp20writeToFileMatrixRowEP8_IO_FILEi17HighsSparseMatrixSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %204, ptr noundef nonnull %16, ptr noundef nonnull %17)
          to label %.sink.split unwind label %207

205:                                              ; preds = %202
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %209

207:                                              ; preds = %203
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  br label %209

209:                                              ; preds = %207, %205
  %.pn270 = phi { ptr, i32 } [ %208, %207 ], [ %206, %205 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %16) #7
  br label %364

.sink.split:                                      ; preds = %203, %151
  %.sink353 = phi ptr [ %11, %151 ], [ %17, %203 ]
  %.sink352 = phi ptr [ %10, %151 ], [ %16, %203 ]
  %.str.85.sink = phi ptr [ @.str.81, %151 ], [ @.str.85, %203 ]
  %.sink = phi ptr [ %129, %151 ], [ %130, %203 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.sink353) #7
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %.sink352) #7
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %.str.85.sink)
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %.sink, i64 noundef %indvars.iv333) #7
  %211 = load double, ptr %210, align 8, !tbaa !45
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %211, i1 noundef zeroext true)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  br label %212

212:                                              ; preds = %.sink.split, %191
  %indvars.iv.next334 = add nuw nsw i64 %indvars.iv333, 1
  %213 = load i32, ptr %33, align 4, !tbaa !43
  %214 = sext i32 %213 to i64
  %215 = icmp slt i64 %indvars.iv.next334, %214
  br i1 %215, label %135, label %._crit_edge298, !llvm.loop !52

._crit_edge302:                                   ; preds = %278, %._crit_edge298
  %216 = getelementptr inbounds i8, ptr %3, i64 376
  %217 = call noundef i64 @_ZNKSt6vectorI12HighsVarTypeSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %216) #7
  %.not = icmp eq i64 %217, 0
  br i1 %.not, label %.loopexit, label %282

218:                                              ; preds = %.lr.ph301, %278
  %indvars.iv336 = phi i64 [ 0, %.lr.ph301 ], [ %indvars.iv.next337, %278 ]
  %219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %indvars.iv336) #7
  %220 = load double, ptr %219, align 8, !tbaa !45
  %221 = fcmp oeq double %220, 0.000000e+00
  br i1 %221, label %222, label %.critedge

222:                                              ; preds = %218
  %223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv336) #7
  %224 = load double, ptr %223, align 8, !tbaa !45
  %225 = fcmp oeq double %224, 0x7FF0000000000000
  br i1 %225, label %278, label %.critedge

.critedge:                                        ; preds = %218, %222
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %indvars.iv336) #7
  %227 = load double, ptr %226, align 8, !tbaa !45
  %228 = fcmp oeq double %227, 0xFFF0000000000000
  br i1 %228, label %229, label %242

229:                                              ; preds = %.critedge
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv336) #7
  %231 = load double, ptr %230, align 8, !tbaa !45
  %232 = fcmp oeq double %231, 0x7FF0000000000000
  br i1 %232, label %233, label %242

233:                                              ; preds = %229
  br i1 %30, label %234, label %239

234:                                              ; preds = %233
  %235 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv336) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %235)
          to label %236 unwind label %237

236:                                              ; preds = %234
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %18)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %241

237:                                              ; preds = %265, %249, %234
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %364

239:                                              ; preds = %233
  %240 = trunc nuw nsw i64 %indvars.iv336 to i32
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %240)
  br label %241

241:                                              ; preds = %239, %236
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.87)
  br label %277

242:                                              ; preds = %229, %.critedge
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %indvars.iv336) #7
  %244 = load double, ptr %243, align 8, !tbaa !45
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv336) #7
  %246 = load double, ptr %245, align 8, !tbaa !45
  %247 = fcmp oeq double %244, %246
  br i1 %247, label %248, label %257

248:                                              ; preds = %242
  br i1 %30, label %249, label %252

249:                                              ; preds = %248
  %250 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv336) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %250)
          to label %251 unwind label %237

251:                                              ; preds = %249
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %19)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %254

252:                                              ; preds = %248
  %253 = trunc nuw nsw i64 %indvars.iv336 to i32
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %253)
  br label %254

254:                                              ; preds = %252, %251
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.81)
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv336) #7
  %256 = load double, ptr %255, align 8, !tbaa !45
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %256, i1 noundef zeroext false)
  br label %277

257:                                              ; preds = %242
  %258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %indvars.iv336) #7
  %259 = load double, ptr %258, align 8, !tbaa !45
  %260 = fcmp une double %259, 0.000000e+00
  br i1 %260, label %261, label %264

261:                                              ; preds = %257
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %indvars.iv336) #7
  %263 = load double, ptr %262, align 8, !tbaa !45
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %263, i1 noundef zeroext false)
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.85)
  br label %264

264:                                              ; preds = %261, %257
  br i1 %30, label %265, label %268

265:                                              ; preds = %264
  %266 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv336) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %266)
          to label %267 unwind label %237

267:                                              ; preds = %265
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %20)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %270

268:                                              ; preds = %264
  %269 = trunc nuw nsw i64 %indvars.iv336 to i32
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %269)
  br label %270

270:                                              ; preds = %268, %267
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv336) #7
  %272 = load double, ptr %271, align 8, !tbaa !45
  %273 = fcmp ueq double %272, 0x7FF0000000000000
  br i1 %273, label %277, label %274

274:                                              ; preds = %270
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.85)
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef %indvars.iv336) #7
  %276 = load double, ptr %275, align 8, !tbaa !45
  call void @_ZN12FilereaderLp16writeToFileValueEP8_IO_FILEdb(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, double noundef %276, i1 noundef zeroext false)
  br label %277

277:                                              ; preds = %254, %274, %270, %241
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  br label %278

278:                                              ; preds = %222, %277
  %indvars.iv.next337 = add nuw nsw i64 %indvars.iv336, 1
  %279 = load i32, ptr %3, align 8, !tbaa !5
  %280 = sext i32 %279 to i64
  %281 = icmp slt i64 %indvars.iv.next337, %280
  br i1 %281, label %218, label %._crit_edge302, !llvm.loop !53

282:                                              ; preds = %._crit_edge302
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.89)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  %283 = load i32, ptr %3, align 8, !tbaa !5
  %284 = icmp sgt i32 %283, 0
  br i1 %284, label %.lr.ph306, label %._crit_edge307

.lr.ph306:                                        ; preds = %282
  %285 = getelementptr inbounds i8, ptr %3, i64 32
  %286 = getelementptr inbounds i8, ptr %3, i64 56
  br label %291

._crit_edge307:                                   ; preds = %312, %282
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.90)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  %287 = load i32, ptr %3, align 8, !tbaa !5
  %288 = icmp sgt i32 %287, 0
  br i1 %288, label %.lr.ph311, label %._crit_edge312

.lr.ph311:                                        ; preds = %._crit_edge307
  %289 = getelementptr inbounds i8, ptr %3, i64 32
  %290 = getelementptr inbounds i8, ptr %3, i64 56
  br label %318

291:                                              ; preds = %.lr.ph306, %312
  %indvars.iv339 = phi i64 [ 0, %.lr.ph306 ], [ %indvars.iv.next340, %312 ]
  %292 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %216, i64 noundef %indvars.iv339) #7
  %293 = load i8, ptr %292, align 1, !tbaa !54
  %294 = icmp eq i8 %293, 1
  br i1 %294, label %295, label %312

295:                                              ; preds = %291
  %296 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %285, i64 noundef %indvars.iv339) #7
  %297 = load double, ptr %296, align 8, !tbaa !45
  %298 = fcmp oeq double %297, 0.000000e+00
  br i1 %298, label %299, label %312

299:                                              ; preds = %295
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %286, i64 noundef %indvars.iv339) #7
  %301 = load double, ptr %300, align 8, !tbaa !45
  %302 = fcmp oeq double %301, 1.000000e+00
  br i1 %302, label %303, label %312

303:                                              ; preds = %299
  br i1 %30, label %304, label %309

304:                                              ; preds = %303
  %305 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv339) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %305)
          to label %306 unwind label %307

306:                                              ; preds = %304
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %21)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %311

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

309:                                              ; preds = %303
  %310 = trunc nuw nsw i64 %indvars.iv339 to i32
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %310)
  br label %311

311:                                              ; preds = %309, %306
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  br label %312

312:                                              ; preds = %291, %311, %299, %295
  %indvars.iv.next340 = add nuw nsw i64 %indvars.iv339, 1
  %313 = load i32, ptr %3, align 8, !tbaa !5
  %314 = sext i32 %313 to i64
  %315 = icmp slt i64 %indvars.iv.next340, %314
  br i1 %315, label %291, label %._crit_edge307, !llvm.loop !56

._crit_edge312:                                   ; preds = %339, %._crit_edge307
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.91)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  %316 = load i32, ptr %3, align 8, !tbaa !5
  %317 = icmp sgt i32 %316, 0
  br i1 %317, label %.lr.ph316, label %.loopexit

318:                                              ; preds = %.lr.ph311, %339
  %indvars.iv342 = phi i64 [ 0, %.lr.ph311 ], [ %indvars.iv.next343, %339 ]
  %319 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %216, i64 noundef %indvars.iv342) #7
  %320 = load i8, ptr %319, align 1, !tbaa !54
  %321 = icmp eq i8 %320, 1
  br i1 %321, label %322, label %339

322:                                              ; preds = %318
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %289, i64 noundef %indvars.iv342) #7
  %324 = load double, ptr %323, align 8, !tbaa !45
  %325 = fcmp une double %324, 0.000000e+00
  br i1 %325, label %330, label %326

326:                                              ; preds = %322
  %327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %290, i64 noundef %indvars.iv342) #7
  %328 = load double, ptr %327, align 8, !tbaa !45
  %329 = fcmp une double %328, 1.000000e+00
  br i1 %329, label %330, label %339

330:                                              ; preds = %326, %322
  br i1 %30, label %331, label %336

331:                                              ; preds = %330
  %332 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv342) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %332)
          to label %333 unwind label %334

333:                                              ; preds = %331
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %22)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %338

334:                                              ; preds = %331
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %364

336:                                              ; preds = %330
  %337 = trunc nuw nsw i64 %indvars.iv342 to i32
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %337)
  br label %338

338:                                              ; preds = %336, %333
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  br label %339

339:                                              ; preds = %318, %338, %326
  %indvars.iv.next343 = add nuw nsw i64 %indvars.iv342, 1
  %340 = load i32, ptr %3, align 8, !tbaa !5
  %341 = sext i32 %340 to i64
  %342 = icmp slt i64 %indvars.iv.next343, %341
  br i1 %342, label %318, label %._crit_edge312, !llvm.loop !57

.lr.ph316:                                        ; preds = %._crit_edge312, %359
  %indvars.iv345 = phi i64 [ %indvars.iv.next346, %359 ], [ 0, %._crit_edge312 ]
  %343 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %216, i64 noundef %indvars.iv345) #7
  %344 = load i8, ptr %343, align 1, !tbaa !54
  %345 = icmp eq i8 %344, 2
  br i1 %345, label %350, label %346

346:                                              ; preds = %.lr.ph316
  %347 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI12HighsVarTypeSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %216, i64 noundef %indvars.iv345) #7
  %348 = load i8, ptr %347, align 1, !tbaa !54
  %349 = icmp eq i8 %348, 3
  br i1 %349, label %350, label %359

350:                                              ; preds = %346, %.lr.ph316
  br i1 %30, label %351, label %356

351:                                              ; preds = %350
  %352 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv345) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %352)
          to label %353 unwind label %354

353:                                              ; preds = %351
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull %23)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %358

354:                                              ; preds = %351
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %364

356:                                              ; preds = %350
  %357 = trunc nuw nsw i64 %indvars.iv345 to i32
  call void @_ZN12FilereaderLp14writeToFileVarEP8_IO_FILEi(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, i32 noundef %357)
  br label %358

358:                                              ; preds = %356, %353
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  br label %359

359:                                              ; preds = %346, %358
  %indvars.iv.next346 = add nuw nsw i64 %indvars.iv345, 1
  %360 = load i32, ptr %3, align 8, !tbaa !5
  %361 = sext i32 %360 to i64
  %362 = icmp slt i64 %indvars.iv.next346, %361
  br i1 %362, label %.lr.ph316, label %.loopexit, !llvm.loop !58

.loopexit:                                        ; preds = %359, %._crit_edge312, %._crit_edge302
  call void (ptr, ptr, ptr, ...) @_ZN12FilereaderLp11writeToFileEP8_IO_FILEPKcz(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38, ptr noundef nonnull @.str.92)
  call void @_ZN12FilereaderLp18writeToFileLineendEP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef %38)
  %363 = call i32 @fclose(ptr noundef %38)
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %5) #7
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %5) #7
  ret i32 0

364:                                              ; preds = %.split.us, %.split.us288, %145, %157, %209, %190, %175, %354, %334, %307, %237, %58
  %.pn279.pn = phi { ptr, i32 } [ %59, %58 ], [ %56, %.split.us ], [ %105, %.split.us288 ], [ %238, %237 ], [ %308, %307 ], [ %335, %334 ], [ %355, %354 ], [ %.pn273, %157 ], [ %146, %145 ], [ %.pn270, %209 ], [ %176, %175 ], [ %.pn, %190 ]
  call void @_ZN17HighsSparseMatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %5) #7
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %5) #7
  resume { ptr, i32 } %.pn279.pn
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10HighsModel4isQpEv(ptr noundef nonnull align 8 dereferenceable(1000)) local_unnamed_addr #1 align 2

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

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

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

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

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

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


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