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

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

%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__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::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.std::array" = type { [32 x i8] }
%struct.HighsRanging = type { i8, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord, %struct.HighsRangingRecord }
%struct.HighsRangingRecord = type { %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3" }
%"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::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.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.25", %"class.std::vector.25", %"class.std::vector.30", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = 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.30", %"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" }
%struct.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.83", %"class.std::vector.83" }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsSolution = type { i8, i8, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector" }

@.str.56 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [2 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 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 uwtable
define dso_local void @_Z16writeRangingFileP8_IO_FILERK7HighsLpdRK10HighsBasisRK13HighsSolutionRK12HighsRangingi(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(920) %1, double noundef %2, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(584) %5, i32 noundef %6) #2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca double, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"struct.std::array", align 1
  %24 = alloca %"struct.std::array", align 1
  %25 = alloca %"struct.std::array", align 1
  %26 = alloca %"struct.std::array", align 1
  %27 = alloca %"struct.std::array", align 1
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"struct.std::array", align 1
  %35 = alloca %"struct.std::array", align 1
  %36 = alloca %"struct.std::array", align 1
  %37 = alloca %"struct.std::array", align 1
  %38 = alloca i32, align 4
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"struct.std::array", align 1
  %43 = alloca %"struct.std::array", align 1
  %44 = alloca %"struct.std::array", align 1
  %45 = alloca %"struct.std::array", align 1
  %46 = alloca i32, align 4
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"struct.std::array", align 1
  %51 = alloca %"struct.std::array", align 1
  %52 = alloca %"struct.std::array", align 1
  %53 = alloca %"struct.std::array", align 1
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store double %2, ptr %10, align 8, !tbaa !9
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  store i32 %6, ptr %14, align 4, !tbaa !11
  %54 = load ptr, ptr %13, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.HighsRanging, ptr %54, i32 0, i32 0
  %56 = load i8, ptr %55, align 8, !tbaa !13, !range !25, !noundef !26
  %57 = trunc i8 %56 to i1
  br i1 %57, label %61, label %58

58:                                               ; preds = %7
  %59 = load ptr, ptr %8, align 8, !tbaa !5
  %60 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef @.str.56) #8
  br label %647

61:                                               ; preds = %7
  %62 = load ptr, ptr %8, align 8, !tbaa !5
  %63 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef @.str.57) #8
  call void @llvm.lifetime.start.p0(i64 392, ptr %15) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15)
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #8
  %64 = load ptr, ptr %9, align 8, !tbaa !5
  %65 = getelementptr inbounds %class.HighsLp, ptr %64, i32 0, i32 14
  %66 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #8
  %67 = icmp ugt i64 %66, 0
  %68 = zext i1 %67 to i8
  store i8 %68, ptr %16, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #8
  %69 = load ptr, ptr %9, align 8, !tbaa !5
  %70 = getelementptr inbounds %class.HighsLp, ptr %69, i32 0, i32 15
  %71 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %70) #8
  %72 = icmp ugt i64 %71, 0
  %73 = zext i1 %72 to i8
  store i8 %73, ptr %17, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #8
  %74 = load i32, ptr %14, align 4, !tbaa !11
  %75 = icmp eq i32 %74, 1
  %76 = zext i1 %75 to i8
  store i8 %76, ptr %18, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  store ptr @.str.58, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  store ptr @.str.59, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  store ptr @.str.60, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  store ptr @.str.59, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  %77 = load double, ptr %10, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %27, double noundef %77, double noundef 1.000000e-13)
          to label %78 unwind label %87

78:                                               ; preds = %61
  %79 = load ptr, ptr %8, align 8, !tbaa !5
  %80 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %27) #9
  %81 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef @.str.61, ptr noundef %80) #8
  %82 = load i8, ptr %18, align 1, !tbaa !27, !range !25, !noundef !26
  %83 = trunc i8 %82 to i1
  br i1 %83, label %84, label %91

84:                                               ; preds = %78
  %85 = load ptr, ptr %8, align 8, !tbaa !5
  %86 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %85, ptr noundef @.str.62) #8
  br label %94

87:                                               ; preds = %61
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %28, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %29, align 4
  br label %648

91:                                               ; preds = %78
  %92 = load ptr, ptr %8, align 8, !tbaa !5
  %93 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %92, ptr noundef @.str.63) #8
  br label %94

94:                                               ; preds = %91, %84
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  store i32 0, ptr %30, align 4, !tbaa !11
  br label %95

95:                                               ; preds = %258, %94
  %96 = load i32, ptr %30, align 4, !tbaa !11
  %97 = load ptr, ptr %9, align 8, !tbaa !5
  %98 = getelementptr inbounds %class.HighsLp, ptr %97, i32 0, i32 0
  %99 = load i32, ptr %98, align 8, !tbaa !28
  %100 = icmp slt i32 %96, %99
  br i1 %100, label %102, label %101

101:                                              ; preds = %95
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %264

102:                                              ; preds = %95
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %15, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %103 unwind label %184

103:                                              ; preds = %102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  %104 = getelementptr inbounds i8, ptr %15, i64 16
  %105 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef @.str.64)
          to label %106 unwind label %188

106:                                              ; preds = %103
  %107 = load i32, ptr %30, align 4, !tbaa !11
  %108 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %105, i32 noundef %107)
          to label %109 unwind label %188

109:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  %110 = load i8, ptr %16, align 1, !tbaa !27, !range !25, !noundef !26
  %111 = trunc i8 %110 to i1
  br i1 %111, label %112, label %119

112:                                              ; preds = %109
  %113 = load ptr, ptr %9, align 8, !tbaa !5
  %114 = getelementptr inbounds %class.HighsLp, ptr %113, i32 0, i32 14
  %115 = load i32, ptr %30, align 4, !tbaa !11
  %116 = sext i32 %115 to i64
  %117 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %114, i64 noundef %116) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %118 unwind label %192

118:                                              ; preds = %112
  br label %121

119:                                              ; preds = %109
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %120 unwind label %192

120:                                              ; preds = %119
  br label %121

121:                                              ; preds = %120, %118
  %122 = load i8, ptr %18, align 1, !tbaa !27, !range !25, !noundef !26
  %123 = trunc i8 %122 to i1
  br i1 %123, label %124, label %200

124:                                              ; preds = %121
  %125 = load ptr, ptr %8, align 8, !tbaa !5
  %126 = load ptr, ptr %19, align 8, !tbaa !5
  %127 = load i32, ptr %30, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  %128 = load ptr, ptr %11, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.HighsBasis, ptr %128, i32 0, i32 7
  %130 = load i32, ptr %30, align 4, !tbaa !11
  %131 = sext i32 %130 to i64
  %132 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %129, i64 noundef %131) #8
  %133 = load i8, ptr %132, align 1, !tbaa !52
  %134 = load ptr, ptr %9, align 8, !tbaa !5
  %135 = getelementptr inbounds %class.HighsLp, ptr %134, i32 0, i32 3
  %136 = load i32, ptr %30, align 4, !tbaa !11
  %137 = sext i32 %136 to i64
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %135, i64 noundef %137) #8
  %139 = load double, ptr %138, align 8, !tbaa !9
  %140 = load ptr, ptr %9, align 8, !tbaa !5
  %141 = getelementptr inbounds %class.HighsLp, ptr %140, i32 0, i32 4
  %142 = load i32, ptr %30, align 4, !tbaa !11
  %143 = sext i32 %142 to i64
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %143) #8
  %145 = load double, ptr %144, align 8, !tbaa !9
  invoke void @_Z14statusToStringB5cxx1116HighsBasisStatusdd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, i8 noundef zeroext %133, double noundef %139, double noundef %145)
          to label %146 unwind label %196

146:                                              ; preds = %124
  %147 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  %148 = load ptr, ptr %13, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.HighsRanging, ptr %148, i32 0, i32 2
  %150 = getelementptr inbounds %struct.HighsRangingRecord, ptr %149, i32 0, i32 1
  %151 = load i32, ptr %30, align 4, !tbaa !11
  %152 = sext i32 %151 to i64
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %150, i64 noundef %152) #8
  %154 = load double, ptr %153, align 8, !tbaa !9
  %155 = load ptr, ptr %13, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.HighsRanging, ptr %155, i32 0, i32 2
  %157 = getelementptr inbounds %struct.HighsRangingRecord, ptr %156, i32 0, i32 0
  %158 = load i32, ptr %30, align 4, !tbaa !11
  %159 = sext i32 %158 to i64
  %160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %157, i64 noundef %159) #8
  %161 = load double, ptr %160, align 8, !tbaa !9
  %162 = load ptr, ptr %9, align 8, !tbaa !5
  %163 = getelementptr inbounds %class.HighsLp, ptr %162, i32 0, i32 2
  %164 = load i32, ptr %30, align 4, !tbaa !11
  %165 = sext i32 %164 to i64
  %166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %163, i64 noundef %165) #8
  %167 = load double, ptr %166, align 8, !tbaa !9
  %168 = load ptr, ptr %13, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.HighsRanging, ptr %168, i32 0, i32 1
  %170 = getelementptr inbounds %struct.HighsRangingRecord, ptr %169, i32 0, i32 0
  %171 = load i32, ptr %30, align 4, !tbaa !11
  %172 = sext i32 %171 to i64
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %172) #8
  %174 = load double, ptr %173, align 8, !tbaa !9
  %175 = load ptr, ptr %13, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.HighsRanging, ptr %175, i32 0, i32 1
  %177 = getelementptr inbounds %struct.HighsRangingRecord, ptr %176, i32 0, i32 1
  %178 = load i32, ptr %30, align 4, !tbaa !11
  %179 = sext i32 %178 to i64
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %179) #8
  %181 = load double, ptr %180, align 8, !tbaa !9
  %182 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  %183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %125, ptr noundef %126, i32 noundef %127, ptr noundef %147, double noundef %154, double noundef %161, double noundef %167, double noundef %174, double noundef %181, ptr noundef %182) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %257

184:                                              ; preds = %102
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %28, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %29, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %263

188:                                              ; preds = %106, %103
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %28, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %29, align 4
  br label %263

192:                                              ; preds = %119, %112
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %28, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %29, align 4
  br label %262

196:                                              ; preds = %124
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %28, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %261

200:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  %201 = load ptr, ptr %13, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.HighsRanging, ptr %201, i32 0, i32 2
  %203 = getelementptr inbounds %struct.HighsRangingRecord, ptr %202, i32 0, i32 1
  %204 = load i32, ptr %30, align 4, !tbaa !11
  %205 = sext i32 %204 to i64
  %206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %203, i64 noundef %205) #8
  %207 = load double, ptr %206, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %34, double noundef %207, double noundef 1.000000e-13)
          to label %208 unwind label %241

208:                                              ; preds = %200
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %23, ptr align 1 %34, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  %209 = load ptr, ptr %13, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.HighsRanging, ptr %209, i32 0, i32 1
  %211 = getelementptr inbounds %struct.HighsRangingRecord, ptr %210, i32 0, i32 1
  %212 = load i32, ptr %30, align 4, !tbaa !11
  %213 = sext i32 %212 to i64
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %211, i64 noundef %213) #8
  %215 = load double, ptr %214, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %35, double noundef %215, double noundef 1.000000e-13)
          to label %216 unwind label %245

216:                                              ; preds = %208
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %24, ptr align 1 %35, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  %217 = load ptr, ptr %13, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.HighsRanging, ptr %217, i32 0, i32 2
  %219 = getelementptr inbounds %struct.HighsRangingRecord, ptr %218, i32 0, i32 0
  %220 = load i32, ptr %30, align 4, !tbaa !11
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %219, i64 noundef %221) #8
  %223 = load double, ptr %222, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %36, double noundef %223, double noundef 1.000000e-13)
          to label %224 unwind label %249

224:                                              ; preds = %216
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %25, ptr align 1 %36, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  %225 = load ptr, ptr %13, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.HighsRanging, ptr %225, i32 0, i32 1
  %227 = getelementptr inbounds %struct.HighsRangingRecord, ptr %226, i32 0, i32 0
  %228 = load i32, ptr %30, align 4, !tbaa !11
  %229 = sext i32 %228 to i64
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %227, i64 noundef %229) #8
  %231 = load double, ptr %230, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %37, double noundef %231, double noundef 1.000000e-13)
          to label %232 unwind label %253

232:                                              ; preds = %224
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 %37, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  %233 = load ptr, ptr %8, align 8, !tbaa !5
  %234 = load ptr, ptr %20, align 8, !tbaa !5
  %235 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  %236 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %23) #9
  %237 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %25) #9
  %238 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %26) #9
  %239 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %24) #9
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %233, ptr noundef %234, ptr noundef %235, ptr noundef %236, ptr noundef %237, ptr noundef %238, ptr noundef %239) #8
  br label %257

241:                                              ; preds = %200
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %28, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  br label %261

245:                                              ; preds = %208
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %28, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %261

249:                                              ; preds = %216
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %28, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %261

253:                                              ; preds = %224
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %28, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  br label %261

257:                                              ; preds = %232, %146
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  br label %258

258:                                              ; preds = %257
  %259 = load i32, ptr %30, align 4, !tbaa !11
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr %30, align 4, !tbaa !11
  br label %95, !llvm.loop !56

261:                                              ; preds = %253, %249, %245, %241, %196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %262

262:                                              ; preds = %261, %192
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  br label %263

263:                                              ; preds = %262, %188, %184
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %648

264:                                              ; preds = %101
  %265 = load i8, ptr %18, align 1, !tbaa !27, !range !25, !noundef !26
  %266 = trunc i8 %265 to i1
  br i1 %266, label %267, label %270

267:                                              ; preds = %264
  %268 = load ptr, ptr %8, align 8, !tbaa !5
  %269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %268, ptr noundef @.str.65) #8
  br label %273

270:                                              ; preds = %264
  %271 = load ptr, ptr %8, align 8, !tbaa !5
  %272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef @.str.66) #8
  br label %273

273:                                              ; preds = %270, %267
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 0, ptr %38, align 4, !tbaa !11
  br label %274

274:                                              ; preds = %449, %273
  %275 = load i32, ptr %38, align 4, !tbaa !11
  %276 = load ptr, ptr %9, align 8, !tbaa !5
  %277 = getelementptr inbounds %class.HighsLp, ptr %276, i32 0, i32 0
  %278 = load i32, ptr %277, align 8, !tbaa !28
  %279 = icmp slt i32 %275, %278
  br i1 %279, label %281, label %280

280:                                              ; preds = %274
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %455

281:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %15, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %282 unwind label %375

282:                                              ; preds = %281
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  %283 = getelementptr inbounds i8, ptr %15, i64 16
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %283, ptr noundef @.str.64)
          to label %285 unwind label %379

285:                                              ; preds = %282
  %286 = load i32, ptr %38, align 4, !tbaa !11
  %287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %284, i32 noundef %286)
          to label %288 unwind label %379

288:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  %289 = load i8, ptr %16, align 1, !tbaa !27, !range !25, !noundef !26
  %290 = trunc i8 %289 to i1
  br i1 %290, label %291, label %298

291:                                              ; preds = %288
  %292 = load ptr, ptr %9, align 8, !tbaa !5
  %293 = getelementptr inbounds %class.HighsLp, ptr %292, i32 0, i32 14
  %294 = load i32, ptr %38, align 4, !tbaa !11
  %295 = sext i32 %294 to i64
  %296 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %293, i64 noundef %295) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %296)
          to label %297 unwind label %383

297:                                              ; preds = %291
  br label %300

298:                                              ; preds = %288
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %299 unwind label %383

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299, %297
  %301 = load i8, ptr %18, align 1, !tbaa !27, !range !25, !noundef !26
  %302 = trunc i8 %301 to i1
  br i1 %302, label %303, label %391

303:                                              ; preds = %300
  %304 = load ptr, ptr %8, align 8, !tbaa !5
  %305 = load ptr, ptr %21, align 8, !tbaa !5
  %306 = load i32, ptr %38, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  %307 = load ptr, ptr %11, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.HighsBasis, ptr %307, i32 0, i32 7
  %309 = load i32, ptr %38, align 4, !tbaa !11
  %310 = sext i32 %309 to i64
  %311 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %310) #8
  %312 = load i8, ptr %311, align 1, !tbaa !52
  %313 = load ptr, ptr %9, align 8, !tbaa !5
  %314 = getelementptr inbounds %class.HighsLp, ptr %313, i32 0, i32 3
  %315 = load i32, ptr %38, align 4, !tbaa !11
  %316 = sext i32 %315 to i64
  %317 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %314, i64 noundef %316) #8
  %318 = load double, ptr %317, align 8, !tbaa !9
  %319 = load ptr, ptr %9, align 8, !tbaa !5
  %320 = getelementptr inbounds %class.HighsLp, ptr %319, i32 0, i32 4
  %321 = load i32, ptr %38, align 4, !tbaa !11
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %320, i64 noundef %322) #8
  %324 = load double, ptr %323, align 8, !tbaa !9
  invoke void @_Z14statusToStringB5cxx1116HighsBasisStatusdd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, i8 noundef zeroext %312, double noundef %318, double noundef %324)
          to label %325 unwind label %387

325:                                              ; preds = %303
  %326 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  %327 = load ptr, ptr %13, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.HighsRanging, ptr %327, i32 0, i32 4
  %329 = getelementptr inbounds %struct.HighsRangingRecord, ptr %328, i32 0, i32 1
  %330 = load i32, ptr %38, align 4, !tbaa !11
  %331 = sext i32 %330 to i64
  %332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %329, i64 noundef %331) #8
  %333 = load double, ptr %332, align 8, !tbaa !9
  %334 = load ptr, ptr %13, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.HighsRanging, ptr %334, i32 0, i32 4
  %336 = getelementptr inbounds %struct.HighsRangingRecord, ptr %335, i32 0, i32 0
  %337 = load i32, ptr %38, align 4, !tbaa !11
  %338 = sext i32 %337 to i64
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %336, i64 noundef %338) #8
  %340 = load double, ptr %339, align 8, !tbaa !9
  %341 = load ptr, ptr %9, align 8, !tbaa !5
  %342 = getelementptr inbounds %class.HighsLp, ptr %341, i32 0, i32 3
  %343 = load i32, ptr %38, align 4, !tbaa !11
  %344 = sext i32 %343 to i64
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %342, i64 noundef %344) #8
  %346 = load double, ptr %345, align 8, !tbaa !9
  %347 = load ptr, ptr %12, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.HighsSolution, ptr %347, i32 0, i32 2
  %349 = load i32, ptr %38, align 4, !tbaa !11
  %350 = sext i32 %349 to i64
  %351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %348, i64 noundef %350) #8
  %352 = load double, ptr %351, align 8, !tbaa !9
  %353 = load ptr, ptr %9, align 8, !tbaa !5
  %354 = getelementptr inbounds %class.HighsLp, ptr %353, i32 0, i32 4
  %355 = load i32, ptr %38, align 4, !tbaa !11
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef %356) #8
  %358 = load double, ptr %357, align 8, !tbaa !9
  %359 = load ptr, ptr %13, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct.HighsRanging, ptr %359, i32 0, i32 3
  %361 = getelementptr inbounds %struct.HighsRangingRecord, ptr %360, i32 0, i32 0
  %362 = load i32, ptr %38, align 4, !tbaa !11
  %363 = sext i32 %362 to i64
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %361, i64 noundef %363) #8
  %365 = load double, ptr %364, align 8, !tbaa !9
  %366 = load ptr, ptr %13, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.HighsRanging, ptr %366, i32 0, i32 3
  %368 = getelementptr inbounds %struct.HighsRangingRecord, ptr %367, i32 0, i32 1
  %369 = load i32, ptr %38, align 4, !tbaa !11
  %370 = sext i32 %369 to i64
  %371 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %368, i64 noundef %370) #8
  %372 = load double, ptr %371, align 8, !tbaa !9
  %373 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef %305, i32 noundef %306, ptr noundef %326, double noundef %333, double noundef %340, double noundef %346, double noundef %352, double noundef %358, double noundef %365, double noundef %372, ptr noundef %373) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %448

375:                                              ; preds = %281
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %28, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %29, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %454

379:                                              ; preds = %285, %282
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %28, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %29, align 4
  br label %454

383:                                              ; preds = %298, %291
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %28, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %29, align 4
  br label %453

387:                                              ; preds = %303
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %28, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %452

391:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  %392 = load ptr, ptr %13, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.HighsRanging, ptr %392, i32 0, i32 4
  %394 = getelementptr inbounds %struct.HighsRangingRecord, ptr %393, i32 0, i32 1
  %395 = load i32, ptr %38, align 4, !tbaa !11
  %396 = sext i32 %395 to i64
  %397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %394, i64 noundef %396) #8
  %398 = load double, ptr %397, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %42, double noundef %398, double noundef 1.000000e-13)
          to label %399 unwind label %432

399:                                              ; preds = %391
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %23, ptr align 1 %42, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #8
  %400 = load ptr, ptr %13, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.HighsRanging, ptr %400, i32 0, i32 3
  %402 = getelementptr inbounds %struct.HighsRangingRecord, ptr %401, i32 0, i32 1
  %403 = load i32, ptr %38, align 4, !tbaa !11
  %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) #8
  %406 = load double, ptr %405, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %43, double noundef %406, double noundef 1.000000e-13)
          to label %407 unwind label %436

407:                                              ; preds = %399
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %24, ptr align 1 %43, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  %408 = load ptr, ptr %13, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.HighsRanging, ptr %408, i32 0, i32 4
  %410 = getelementptr inbounds %struct.HighsRangingRecord, ptr %409, i32 0, i32 0
  %411 = load i32, ptr %38, align 4, !tbaa !11
  %412 = sext i32 %411 to i64
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %410, i64 noundef %412) #8
  %414 = load double, ptr %413, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %44, double noundef %414, double noundef 1.000000e-13)
          to label %415 unwind label %440

415:                                              ; preds = %407
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %25, ptr align 1 %44, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #8
  %416 = load ptr, ptr %13, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.HighsRanging, ptr %416, i32 0, i32 3
  %418 = getelementptr inbounds %struct.HighsRangingRecord, ptr %417, i32 0, i32 0
  %419 = load i32, ptr %38, align 4, !tbaa !11
  %420 = sext i32 %419 to i64
  %421 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %418, i64 noundef %420) #8
  %422 = load double, ptr %421, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %45, double noundef %422, double noundef 1.000000e-13)
          to label %423 unwind label %444

423:                                              ; preds = %415
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 %45, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  %424 = load ptr, ptr %8, align 8, !tbaa !5
  %425 = load ptr, ptr %22, align 8, !tbaa !5
  %426 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  %427 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %23) #9
  %428 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %25) #9
  %429 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %26) #9
  %430 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %24) #9
  %431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %424, ptr noundef %425, ptr noundef %426, ptr noundef %427, ptr noundef %428, ptr noundef %429, ptr noundef %430) #8
  br label %448

432:                                              ; preds = %391
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %28, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  br label %452

436:                                              ; preds = %399
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %28, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  br label %452

440:                                              ; preds = %407
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %28, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  br label %452

444:                                              ; preds = %415
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %28, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  br label %452

448:                                              ; preds = %423, %325
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr %38, align 4, !tbaa !11
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr %38, align 4, !tbaa !11
  br label %274, !llvm.loop !58

452:                                              ; preds = %444, %440, %436, %432, %387
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %453

453:                                              ; preds = %452, %383
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %454

454:                                              ; preds = %453, %379, %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %648

455:                                              ; preds = %280
  %456 = load i8, ptr %18, align 1, !tbaa !27, !range !25, !noundef !26
  %457 = trunc i8 %456 to i1
  br i1 %457, label %458, label %461

458:                                              ; preds = %455
  %459 = load ptr, ptr %8, align 8, !tbaa !5
  %460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %459, ptr noundef @.str.67) #8
  br label %464

461:                                              ; preds = %455
  %462 = load ptr, ptr %8, align 8, !tbaa !5
  %463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %462, ptr noundef @.str.68) #8
  br label %464

464:                                              ; preds = %461, %458
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  store i32 0, ptr %46, align 4, !tbaa !11
  br label %465

465:                                              ; preds = %640, %464
  %466 = load i32, ptr %46, align 4, !tbaa !11
  %467 = load ptr, ptr %9, align 8, !tbaa !5
  %468 = getelementptr inbounds %class.HighsLp, ptr %467, i32 0, i32 1
  %469 = load i32, ptr %468, align 4, !tbaa !59
  %470 = icmp slt i32 %466, %469
  br i1 %470, label %472, label %471

471:                                              ; preds = %465
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %646

472:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %15, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %473 unwind label %566

473:                                              ; preds = %472
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  %474 = getelementptr inbounds i8, ptr %15, i64 16
  %475 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %474, ptr noundef @.str.69)
          to label %476 unwind label %570

476:                                              ; preds = %473
  %477 = load i32, ptr %46, align 4, !tbaa !11
  %478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %475, i32 noundef %477)
          to label %479 unwind label %570

479:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #8
  %480 = load i8, ptr %17, align 1, !tbaa !27, !range !25, !noundef !26
  %481 = trunc i8 %480 to i1
  br i1 %481, label %482, label %489

482:                                              ; preds = %479
  %483 = load ptr, ptr %9, align 8, !tbaa !5
  %484 = getelementptr inbounds %class.HighsLp, ptr %483, i32 0, i32 15
  %485 = load i32, ptr %46, align 4, !tbaa !11
  %486 = sext i32 %485 to i64
  %487 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %484, i64 noundef %486) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %487)
          to label %488 unwind label %574

488:                                              ; preds = %482
  br label %491

489:                                              ; preds = %479
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(128) %15)
          to label %490 unwind label %574

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490, %488
  %492 = load i8, ptr %18, align 1, !tbaa !27, !range !25, !noundef !26
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %582

494:                                              ; preds = %491
  %495 = load ptr, ptr %8, align 8, !tbaa !5
  %496 = load ptr, ptr %21, align 8, !tbaa !5
  %497 = load i32, ptr %46, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  %498 = load ptr, ptr %11, align 8, !tbaa !5
  %499 = getelementptr inbounds %struct.HighsBasis, ptr %498, i32 0, i32 8
  %500 = load i32, ptr %46, align 4, !tbaa !11
  %501 = sext i32 %500 to i64
  %502 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef %501) #8
  %503 = load i8, ptr %502, align 1, !tbaa !52
  %504 = load ptr, ptr %9, align 8, !tbaa !5
  %505 = getelementptr inbounds %class.HighsLp, ptr %504, i32 0, i32 5
  %506 = load i32, ptr %46, align 4, !tbaa !11
  %507 = sext i32 %506 to i64
  %508 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %505, i64 noundef %507) #8
  %509 = load double, ptr %508, align 8, !tbaa !9
  %510 = load ptr, ptr %9, align 8, !tbaa !5
  %511 = getelementptr inbounds %class.HighsLp, ptr %510, i32 0, i32 6
  %512 = load i32, ptr %46, align 4, !tbaa !11
  %513 = sext i32 %512 to i64
  %514 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %511, i64 noundef %513) #8
  %515 = load double, ptr %514, align 8, !tbaa !9
  invoke void @_Z14statusToStringB5cxx1116HighsBasisStatusdd(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, i8 noundef zeroext %503, double noundef %509, double noundef %515)
          to label %516 unwind label %578

516:                                              ; preds = %494
  %517 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  %518 = load ptr, ptr %13, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.HighsRanging, ptr %518, i32 0, i32 6
  %520 = getelementptr inbounds %struct.HighsRangingRecord, ptr %519, i32 0, i32 1
  %521 = load i32, ptr %46, align 4, !tbaa !11
  %522 = sext i32 %521 to i64
  %523 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %520, i64 noundef %522) #8
  %524 = load double, ptr %523, align 8, !tbaa !9
  %525 = load ptr, ptr %13, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.HighsRanging, ptr %525, i32 0, i32 6
  %527 = getelementptr inbounds %struct.HighsRangingRecord, ptr %526, i32 0, i32 0
  %528 = load i32, ptr %46, align 4, !tbaa !11
  %529 = sext i32 %528 to i64
  %530 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %527, i64 noundef %529) #8
  %531 = load double, ptr %530, align 8, !tbaa !9
  %532 = load ptr, ptr %9, align 8, !tbaa !5
  %533 = getelementptr inbounds %class.HighsLp, ptr %532, i32 0, i32 5
  %534 = load i32, ptr %46, align 4, !tbaa !11
  %535 = sext i32 %534 to i64
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %533, i64 noundef %535) #8
  %537 = load double, ptr %536, align 8, !tbaa !9
  %538 = load ptr, ptr %12, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.HighsSolution, ptr %538, i32 0, i32 4
  %540 = load i32, ptr %46, align 4, !tbaa !11
  %541 = sext i32 %540 to i64
  %542 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %539, i64 noundef %541) #8
  %543 = load double, ptr %542, align 8, !tbaa !9
  %544 = load ptr, ptr %9, align 8, !tbaa !5
  %545 = getelementptr inbounds %class.HighsLp, ptr %544, i32 0, i32 6
  %546 = load i32, ptr %46, align 4, !tbaa !11
  %547 = sext i32 %546 to i64
  %548 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %545, i64 noundef %547) #8
  %549 = load double, ptr %548, align 8, !tbaa !9
  %550 = load ptr, ptr %13, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.HighsRanging, ptr %550, i32 0, i32 5
  %552 = getelementptr inbounds %struct.HighsRangingRecord, ptr %551, i32 0, i32 0
  %553 = load i32, ptr %46, align 4, !tbaa !11
  %554 = sext i32 %553 to i64
  %555 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %552, i64 noundef %554) #8
  %556 = load double, ptr %555, align 8, !tbaa !9
  %557 = load ptr, ptr %13, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.HighsRanging, ptr %557, i32 0, i32 5
  %559 = getelementptr inbounds %struct.HighsRangingRecord, ptr %558, i32 0, i32 1
  %560 = load i32, ptr %46, align 4, !tbaa !11
  %561 = sext i32 %560 to i64
  %562 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %559, i64 noundef %561) #8
  %563 = load double, ptr %562, align 8, !tbaa !9
  %564 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  %565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %495, ptr noundef %496, i32 noundef %497, ptr noundef %517, double noundef %524, double noundef %531, double noundef %537, double noundef %543, double noundef %549, double noundef %556, double noundef %563, ptr noundef %564) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  br label %639

566:                                              ; preds = %472
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %28, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %29, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  br label %645

570:                                              ; preds = %476, %473
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %28, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %29, align 4
  br label %645

574:                                              ; preds = %489, %482
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %28, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %29, align 4
  br label %644

578:                                              ; preds = %494
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %28, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  br label %643

582:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  %583 = load ptr, ptr %13, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.HighsRanging, ptr %583, i32 0, i32 6
  %585 = getelementptr inbounds %struct.HighsRangingRecord, ptr %584, i32 0, i32 1
  %586 = load i32, ptr %46, align 4, !tbaa !11
  %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) #8
  %589 = load double, ptr %588, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %50, double noundef %589, double noundef 1.000000e-13)
          to label %590 unwind label %623

590:                                              ; preds = %582
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %23, ptr align 1 %50, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  %591 = load ptr, ptr %13, align 8, !tbaa !5
  %592 = getelementptr inbounds %struct.HighsRanging, ptr %591, i32 0, i32 5
  %593 = getelementptr inbounds %struct.HighsRangingRecord, ptr %592, i32 0, i32 1
  %594 = load i32, ptr %46, align 4, !tbaa !11
  %595 = sext i32 %594 to i64
  %596 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %593, i64 noundef %595) #8
  %597 = load double, ptr %596, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %51, double noundef %597, double noundef 1.000000e-13)
          to label %598 unwind label %627

598:                                              ; preds = %590
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %24, ptr align 1 %51, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  %599 = load ptr, ptr %13, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.HighsRanging, ptr %599, i32 0, i32 6
  %601 = getelementptr inbounds %struct.HighsRangingRecord, ptr %600, i32 0, i32 0
  %602 = load i32, ptr %46, align 4, !tbaa !11
  %603 = sext i32 %602 to i64
  %604 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %601, i64 noundef %603) #8
  %605 = load double, ptr %604, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %52, double noundef %605, double noundef 1.000000e-13)
          to label %606 unwind label %631

606:                                              ; preds = %598
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %25, ptr align 1 %52, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %607 = load ptr, ptr %13, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.HighsRanging, ptr %607, i32 0, i32 5
  %609 = getelementptr inbounds %struct.HighsRangingRecord, ptr %608, i32 0, i32 0
  %610 = load i32, ptr %46, align 4, !tbaa !11
  %611 = sext i32 %610 to i64
  %612 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %609, i64 noundef %611) #8
  %613 = load double, ptr %612, align 8, !tbaa !9
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind writable sret(%"struct.std::array") align 1 %53, double noundef %613, double noundef 1.000000e-13)
          to label %614 unwind label %635

614:                                              ; preds = %606
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 %53, i64 32, i1 false), !tbaa.struct !54
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  %615 = load ptr, ptr %8, align 8, !tbaa !5
  %616 = load ptr, ptr %22, align 8, !tbaa !5
  %617 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  %618 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %23) #9
  %619 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %25) #9
  %620 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %26) #9
  %621 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %24) #9
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %615, ptr noundef %616, ptr noundef %617, ptr noundef %618, ptr noundef %619, ptr noundef %620, ptr noundef %621) #8
  br label %639

623:                                              ; preds = %582
  %624 = landingpad { ptr, i32 }
          cleanup
  %625 = extractvalue { ptr, i32 } %624, 0
  store ptr %625, ptr %28, align 8
  %626 = extractvalue { ptr, i32 } %624, 1
  store i32 %626, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %643

627:                                              ; preds = %590
  %628 = landingpad { ptr, i32 }
          cleanup
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %28, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %643

631:                                              ; preds = %598
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %28, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %643

635:                                              ; preds = %606
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %28, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  br label %643

639:                                              ; preds = %614, %516
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  br label %640

640:                                              ; preds = %639
  %641 = load i32, ptr %46, align 4, !tbaa !11
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr %46, align 4, !tbaa !11
  br label %465, !llvm.loop !60

643:                                              ; preds = %635, %631, %627, %623, %578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %644

644:                                              ; preds = %643, %574
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  br label %645

645:                                              ; preds = %644, %570, %566
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %648

646:                                              ; preds = %471
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr %15) #8
  br label %647

647:                                              ; preds = %646, %58
  ret void

648:                                              ; preds = %645, %454, %263, %87
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %15) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr %15) #8
  br label %649

649:                                              ; preds = %648
  %650 = load ptr, ptr %28, align 8
  %651 = load i32, ptr %29, align 4
  %652 = insertvalue { ptr, i32 } poison, ptr %650, 0
  %653 = insertvalue { ptr, i32 } %652, i32 %651, 1
  resume { ptr, i32 } %653
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #3

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

; 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

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

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

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

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

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

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

; 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
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

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

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

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

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


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

%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__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::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.std::array" = type { [32 x i8] }

@.str.56 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [2 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 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 uwtable
define dso_local void @_Z16writeRangingFileP8_IO_FILERK7HighsLpdRK10HighsBasisRK13HighsSolutionRK12HighsRangingi(ptr nocapture noundef %0, ptr noundef nonnull align 8 dereferenceable(920) %1, double noundef %2, ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(584) %5, i32 noundef %6) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %8 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %9 = alloca %"struct.std::array", align 1
  %10 = alloca %"struct.std::array", align 1
  %11 = alloca %"struct.std::array", align 1
  %12 = alloca %"struct.std::array", align 1
  %13 = alloca %"struct.std::array", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"struct.std::array", align 1
  %18 = alloca %"struct.std::array", align 1
  %19 = alloca %"struct.std::array", align 1
  %20 = alloca %"struct.std::array", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"struct.std::array", align 1
  %25 = alloca %"struct.std::array", align 1
  %26 = alloca %"struct.std::array", align 1
  %27 = alloca %"struct.std::array", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"struct.std::array", align 1
  %32 = alloca %"struct.std::array", align 1
  %33 = alloca %"struct.std::array", align 1
  %34 = alloca %"struct.std::array", align 1
  %35 = load i8, ptr %5, align 8, !tbaa !5, !range !20, !noundef !21
  %36 = trunc nuw i8 %35 to i1
  br i1 %36, label %39, label %37

37:                                               ; preds = %7
  %38 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.56) #8
  br label %333

39:                                               ; preds = %7
  %40 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.57) #8
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %8) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %8)
  %41 = getelementptr inbounds i8, ptr %1, i64 328
  %42 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %.not = icmp eq i64 %42, 0
  %43 = getelementptr inbounds i8, ptr %1, i64 352
  %44 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  %.not150 = icmp eq i64 %44, 0
  %45 = icmp eq i32 %6, 1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %13, double noundef %2, double noundef 1.000000e-13)
          to label %46 unwind label %49

46:                                               ; preds = %39
  %47 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %13) #9
  %48 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.61, ptr noundef %47) #8
  br i1 %45, label %51, label %.thread

49:                                               ; preds = %39
  %50 = landingpad { ptr, i32 }
          cleanup
  br label %334

51:                                               ; preds = %46
  %52 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.62) #8
  %53 = load i32, ptr %1, align 8, !tbaa !22
  %54 = icmp sgt i32 %53, 0
  br i1 %54, label %.lr.ph.split.us.preheader, label %._crit_edge.thread192

.thread:                                          ; preds = %46
  %55 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.63) #8
  %56 = load i32, ptr %1, align 8, !tbaa !22
  %57 = icmp sgt i32 %56, 0
  br i1 %57, label %.lr.ph.split.preheader, label %._crit_edge.thread

.lr.ph.split.preheader:                           ; preds = %.thread
  %58 = getelementptr inbounds i8, ptr %8, i64 16
  %59 = getelementptr inbounds i8, ptr %5, i64 104
  %60 = getelementptr inbounds i8, ptr %5, i64 128
  %61 = getelementptr inbounds i8, ptr %5, i64 8
  %62 = getelementptr inbounds i8, ptr %5, i64 32
  br label %.lr.ph.split

.lr.ph.split.us.preheader:                        ; preds = %51
  %63 = getelementptr inbounds i8, ptr %8, i64 16
  %64 = getelementptr inbounds i8, ptr %5, i64 104
  %65 = getelementptr inbounds i8, ptr %5, i64 128
  %66 = getelementptr inbounds i8, ptr %5, i64 8
  %67 = getelementptr inbounds i8, ptr %5, i64 32
  %68 = getelementptr inbounds i8, ptr %3, i64 48
  %69 = getelementptr inbounds i8, ptr %1, i64 32
  %70 = getelementptr inbounds i8, ptr %1, i64 56
  %71 = getelementptr inbounds i8, ptr %1, i64 8
  br label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.preheader, %88
  %indvars.iv183 = phi i64 [ 0, %.lr.ph.split.us.preheader ], [ %indvars.iv.next184, %88 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %8, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %72 unwind label %.split.us

72:                                               ; preds = %.lr.ph.split.us
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  %73 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull @.str.64)
          to label %74 unwind label %.split165.us

74:                                               ; preds = %72
  %75 = trunc nuw nsw i64 %indvars.iv183 to i32
  %76 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %73, i32 noundef %75)
          to label %77 unwind label %.split165.us

77:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  br i1 %.not, label %80, label %78

78:                                               ; preds = %77
  %79 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %indvars.iv183) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %81 unwind label %.split168.us

80:                                               ; preds = %77
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(128) %8)
          to label %81 unwind label %.split168.us

81:                                               ; preds = %80, %78
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  %82 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %indvars.iv183) #8
  %83 = load i8, ptr %82, align 1, !tbaa !48
  %84 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %69, i64 noundef %indvars.iv183) #8
  %85 = load double, ptr %84, align 8, !tbaa !50
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %70, i64 noundef %indvars.iv183) #8
  %87 = load double, ptr %86, align 8, !tbaa !50
  invoke void @_Z14statusToStringB5cxx1116HighsBasisStatusdd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, i8 noundef zeroext %83, double noundef %85, double noundef %87)
          to label %88 unwind label %.split171.us

88:                                               ; preds = %81
  %89 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  %90 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %65, i64 noundef %indvars.iv183) #8
  %91 = load double, ptr %90, align 8, !tbaa !50
  %92 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %indvars.iv183) #8
  %93 = load double, ptr %92, align 8, !tbaa !50
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %indvars.iv183) #8
  %95 = load double, ptr %94, align 8, !tbaa !50
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %indvars.iv183) #8
  %97 = load double, ptr %96, align 8, !tbaa !50
  %98 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef %indvars.iv183) #8
  %99 = load double, ptr %98, align 8, !tbaa !50
  %100 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  %101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.58, i32 noundef %75, ptr noundef %89, double noundef %91, double noundef %93, double noundef %95, double noundef %97, double noundef %99, ptr noundef %100) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  %indvars.iv.next184 = add nuw nsw i64 %indvars.iv183, 1
  %102 = load i32, ptr %1, align 8, !tbaa !22
  %103 = sext i32 %102 to i64
  %104 = icmp slt i64 %indvars.iv.next184, %103
  br i1 %104, label %.lr.ph.split.us, label %._crit_edge, !llvm.loop !51

.split.us:                                        ; preds = %.lr.ph.split.us
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %122

.split165.us:                                     ; preds = %74, %72
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %334

.split168.us:                                     ; preds = %80, %78
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %153

.split171.us:                                     ; preds = %81
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %152

._crit_edge:                                      ; preds = %134, %88
  br i1 %45, label %._crit_edge.thread192, label %._crit_edge.thread

.lr.ph.split:                                     ; preds = %.lr.ph.split.preheader, %134
  %indvars.iv = phi i64 [ 0, %.lr.ph.split.preheader ], [ %indvars.iv.next, %134 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %8, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %109 unwind label %.split

109:                                              ; preds = %.lr.ph.split
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  %110 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull @.str.64)
          to label %111 unwind label %.split165

111:                                              ; preds = %109
  %112 = trunc nuw nsw i64 %indvars.iv to i32
  %113 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %110, i32 noundef %112)
          to label %114 unwind label %.split165

114:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  br i1 %.not, label %117, label %115

115:                                              ; preds = %114
  %116 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %indvars.iv) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %118 unwind label %.split168

117:                                              ; preds = %114
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(128) %8)
          to label %118 unwind label %.split168

118:                                              ; preds = %117, %115
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %indvars.iv) #8
  %120 = load double, ptr %119, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %17, double noundef %120, double noundef 1.000000e-13)
          to label %125 unwind label %144

.split:                                           ; preds = %.lr.ph.split
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %122

122:                                              ; preds = %.split.us, %.split
  %.us-phi = phi { ptr, i32 } [ %121, %.split ], [ %105, %.split.us ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  br label %334

.split165:                                        ; preds = %111, %109
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %334

.split168:                                        ; preds = %117, %115
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %153

125:                                              ; preds = %118
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(32) %17, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %indvars.iv) #8
  %127 = load double, ptr %126, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %18, double noundef %127, double noundef 1.000000e-13)
          to label %128 unwind label %146

128:                                              ; preds = %125
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) %18, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #8
  %130 = load double, ptr %129, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %19, double noundef %130, double noundef 1.000000e-13)
          to label %131 unwind label %148

131:                                              ; preds = %128
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(32) %19, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %indvars.iv) #8
  %133 = load double, ptr %132, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %20, double noundef %133, double noundef 1.000000e-13)
          to label %134 unwind label %150

134:                                              ; preds = %131
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(32) %20, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  %135 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  %136 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %9) #9
  %137 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %11) #9
  %138 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %12) #9
  %139 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %10) #9
  %140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.59, ptr noundef %135, ptr noundef %136, ptr noundef %137, ptr noundef %138, ptr noundef %139) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %141 = load i32, ptr %1, align 8, !tbaa !22
  %142 = sext i32 %141 to i64
  %143 = icmp slt i64 %indvars.iv.next, %142
  br i1 %143, label %.lr.ph.split, label %._crit_edge, !llvm.loop !51

144:                                              ; preds = %118
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %152

146:                                              ; preds = %125
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br label %152

148:                                              ; preds = %128
  %149 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  br label %152

150:                                              ; preds = %131
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  br label %152

152:                                              ; preds = %150, %148, %146, %144, %.split171.us
  %.pn158 = phi { ptr, i32 } [ %108, %.split171.us ], [ %151, %150 ], [ %149, %148 ], [ %147, %146 ], [ %145, %144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %153

153:                                              ; preds = %.split168, %.split168.us, %152
  %.pn158.pn = phi { ptr, i32 } [ %.pn158, %152 ], [ %124, %.split168 ], [ %107, %.split168.us ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  br label %334

._crit_edge.thread:                               ; preds = %.thread, %._crit_edge
  br label %._crit_edge.thread192

._crit_edge.thread192:                            ; preds = %._crit_edge, %51, %._crit_edge.thread
  %.str.66.sink = phi ptr [ @.str.66, %._crit_edge.thread ], [ @.str.65, %51 ], [ @.str.65, %._crit_edge ]
  %154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull %.str.66.sink) #8
  %155 = load i32, ptr %1, align 8, !tbaa !22
  %156 = icmp sgt i32 %155, 0
  br i1 %156, label %.lr.ph175, label %._crit_edge176

.lr.ph175:                                        ; preds = %._crit_edge.thread192
  %157 = getelementptr inbounds i8, ptr %8, i64 16
  %158 = getelementptr inbounds i8, ptr %5, i64 296
  %159 = getelementptr inbounds i8, ptr %5, i64 320
  %160 = getelementptr inbounds i8, ptr %5, i64 200
  %161 = getelementptr inbounds i8, ptr %5, i64 224
  %162 = getelementptr inbounds i8, ptr %3, i64 48
  %163 = getelementptr inbounds i8, ptr %1, i64 32
  %164 = getelementptr inbounds i8, ptr %1, i64 56
  %165 = getelementptr inbounds i8, ptr %4, i64 8
  br label %170

._crit_edge176:                                   ; preds = %241, %._crit_edge.thread192
  %.str.67..str.68 = select i1 %45, ptr @.str.67, ptr @.str.68
  %166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull %.str.67..str.68) #8
  %167 = getelementptr inbounds i8, ptr %1, i64 4
  %168 = load i32, ptr %167, align 4, !tbaa !55
  %169 = icmp sgt i32 %168, 0
  br i1 %169, label %.lr.ph179, label %._crit_edge180

170:                                              ; preds = %.lr.ph175, %241
  %indvars.iv186 = phi i64 [ 0, %.lr.ph175 ], [ %indvars.iv.next187, %241 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %8, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %171 unwind label %206

171:                                              ; preds = %170
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %157, ptr noundef nonnull @.str.64)
          to label %173 unwind label %208

173:                                              ; preds = %171
  %174 = trunc nuw nsw i64 %indvars.iv186 to i32
  %175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %172, i32 noundef %174)
          to label %176 unwind label %208

176:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  br i1 %.not, label %179, label %177

177:                                              ; preds = %176
  %178 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %indvars.iv186) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %178)
          to label %180 unwind label %210

179:                                              ; preds = %176
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(128) %8)
          to label %180 unwind label %210

180:                                              ; preds = %179, %177
  br i1 %45, label %181, label %214

181:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #8
  %182 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %indvars.iv186) #8
  %183 = load i8, ptr %182, align 1, !tbaa !48
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %163, i64 noundef %indvars.iv186) #8
  %185 = load double, ptr %184, align 8, !tbaa !50
  %186 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %164, i64 noundef %indvars.iv186) #8
  %187 = load double, ptr %186, align 8, !tbaa !50
  invoke void @_Z14statusToStringB5cxx1116HighsBasisStatusdd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, i8 noundef zeroext %183, double noundef %185, double noundef %187)
          to label %188 unwind label %212

188:                                              ; preds = %181
  %189 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %159, i64 noundef %indvars.iv186) #8
  %191 = load double, ptr %190, align 8, !tbaa !50
  %192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %158, i64 noundef %indvars.iv186) #8
  %193 = load double, ptr %192, align 8, !tbaa !50
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %163, i64 noundef %indvars.iv186) #8
  %195 = load double, ptr %194, align 8, !tbaa !50
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %indvars.iv186) #8
  %197 = load double, ptr %196, align 8, !tbaa !50
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %164, i64 noundef %indvars.iv186) #8
  %199 = load double, ptr %198, align 8, !tbaa !50
  %200 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %160, i64 noundef %indvars.iv186) #8
  %201 = load double, ptr %200, align 8, !tbaa !50
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %161, i64 noundef %indvars.iv186) #8
  %203 = load double, ptr %202, align 8, !tbaa !50
  %204 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.60, i32 noundef %174, ptr noundef %189, double noundef %191, double noundef %193, double noundef %195, double noundef %197, double noundef %199, double noundef %201, double noundef %203, ptr noundef %204) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  br label %241

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

208:                                              ; preds = %173, %171
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %334

210:                                              ; preds = %179, %177
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %246

212:                                              ; preds = %181
  %213 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  br label %245

214:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #8
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %159, i64 noundef %indvars.iv186) #8
  %216 = load double, ptr %215, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %24, double noundef %216, double noundef 1.000000e-13)
          to label %217 unwind label %233

217:                                              ; preds = %214
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(32) %24, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %161, i64 noundef %indvars.iv186) #8
  %219 = load double, ptr %218, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %25, double noundef %219, double noundef 1.000000e-13)
          to label %220 unwind label %235

220:                                              ; preds = %217
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) %25, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %158, i64 noundef %indvars.iv186) #8
  %222 = load double, ptr %221, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %26, double noundef %222, double noundef 1.000000e-13)
          to label %223 unwind label %237

223:                                              ; preds = %220
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(32) %26, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %160, i64 noundef %indvars.iv186) #8
  %225 = load double, ptr %224, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %27, double noundef %225, double noundef 1.000000e-13)
          to label %226 unwind label %239

226:                                              ; preds = %223
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(32) %27, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  %227 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  %228 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %9) #9
  %229 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %11) #9
  %230 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %12) #9
  %231 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %10) #9
  %232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.59, ptr noundef %227, ptr noundef %228, ptr noundef %229, ptr noundef %230, ptr noundef %231) #8
  br label %241

233:                                              ; preds = %214
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  br label %245

235:                                              ; preds = %217
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %245

237:                                              ; preds = %220
  %238 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  br label %245

239:                                              ; preds = %223
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %245

241:                                              ; preds = %226, %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  %indvars.iv.next187 = add nuw nsw i64 %indvars.iv186, 1
  %242 = load i32, ptr %1, align 8, !tbaa !22
  %243 = sext i32 %242 to i64
  %244 = icmp slt i64 %indvars.iv.next187, %243
  br i1 %244, label %170, label %._crit_edge176, !llvm.loop !56

245:                                              ; preds = %239, %237, %235, %233, %212
  %.pn154 = phi { ptr, i32 } [ %213, %212 ], [ %240, %239 ], [ %238, %237 ], [ %236, %235 ], [ %234, %233 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %246

246:                                              ; preds = %245, %210
  %.pn154.pn = phi { ptr, i32 } [ %.pn154, %245 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  br label %334

.lr.ph179:                                        ; preds = %._crit_edge176
  %247 = getelementptr inbounds i8, ptr %8, i64 16
  %248 = getelementptr inbounds i8, ptr %5, i64 488
  %249 = getelementptr inbounds i8, ptr %5, i64 512
  %250 = getelementptr inbounds i8, ptr %5, i64 392
  %251 = getelementptr inbounds i8, ptr %5, i64 416
  %252 = getelementptr inbounds i8, ptr %3, i64 72
  %253 = getelementptr inbounds i8, ptr %1, i64 80
  %254 = getelementptr inbounds i8, ptr %1, i64 104
  %255 = getelementptr inbounds i8, ptr %4, i64 56
  br label %256

._crit_edge180:                                   ; preds = %327, %._crit_edge176
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %8) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %8) #8
  br label %333

256:                                              ; preds = %.lr.ph179, %327
  %indvars.iv189 = phi i64 [ 0, %.lr.ph179 ], [ %indvars.iv.next190, %327 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %8, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %257 unwind label %292

257:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef nonnull @.str.69)
          to label %259 unwind label %294

259:                                              ; preds = %257
  %260 = trunc nuw nsw i64 %indvars.iv189 to i32
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %258, i32 noundef %260)
          to label %262 unwind label %294

262:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #8
  br i1 %.not150, label %265, label %263

263:                                              ; preds = %262
  %264 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %indvars.iv189) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %264)
          to label %266 unwind label %296

265:                                              ; preds = %262
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(128) %8)
          to label %266 unwind label %296

266:                                              ; preds = %265, %263
  br i1 %45, label %267, label %300

267:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  %268 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %indvars.iv189) #8
  %269 = load i8, ptr %268, align 1, !tbaa !48
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %253, i64 noundef %indvars.iv189) #8
  %271 = load double, ptr %270, align 8, !tbaa !50
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %254, i64 noundef %indvars.iv189) #8
  %273 = load double, ptr %272, align 8, !tbaa !50
  invoke void @_Z14statusToStringB5cxx1116HighsBasisStatusdd(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, i8 noundef zeroext %269, double noundef %271, double noundef %273)
          to label %274 unwind label %298

274:                                              ; preds = %267
  %275 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %249, i64 noundef %indvars.iv189) #8
  %277 = load double, ptr %276, align 8, !tbaa !50
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %indvars.iv189) #8
  %279 = load double, ptr %278, align 8, !tbaa !50
  %280 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %253, i64 noundef %indvars.iv189) #8
  %281 = load double, ptr %280, align 8, !tbaa !50
  %282 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %indvars.iv189) #8
  %283 = load double, ptr %282, align 8, !tbaa !50
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %254, i64 noundef %indvars.iv189) #8
  %285 = load double, ptr %284, align 8, !tbaa !50
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %250, i64 noundef %indvars.iv189) #8
  %287 = load double, ptr %286, align 8, !tbaa !50
  %288 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %251, i64 noundef %indvars.iv189) #8
  %289 = load double, ptr %288, align 8, !tbaa !50
  %290 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  %291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.60, i32 noundef %260, ptr noundef %275, double noundef %277, double noundef %279, double noundef %281, double noundef %283, double noundef %285, double noundef %287, double noundef %289, ptr noundef %290) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %327

292:                                              ; preds = %256
  %293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  br label %334

294:                                              ; preds = %259, %257
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %334

296:                                              ; preds = %265, %263
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %332

298:                                              ; preds = %267
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %331

300:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %249, i64 noundef %indvars.iv189) #8
  %302 = load double, ptr %301, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %31, double noundef %302, double noundef 1.000000e-13)
          to label %303 unwind label %319

303:                                              ; preds = %300
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(32) %31, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %251, i64 noundef %indvars.iv189) #8
  %305 = load double, ptr %304, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %32, double noundef %305, double noundef 1.000000e-13)
          to label %306 unwind label %321

306:                                              ; preds = %303
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) %32, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #8
  %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %indvars.iv189) #8
  %308 = load double, ptr %307, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %33, double noundef %308, double noundef 1.000000e-13)
          to label %309 unwind label %323

309:                                              ; preds = %306
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(32) %33, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %250, i64 noundef %indvars.iv189) #8
  %311 = load double, ptr %310, align 8, !tbaa !50
  invoke void @_Z19highsDoubleToStringdd(ptr dead_on_unwind nonnull writable sret(%"struct.std::array") align 1 %34, double noundef %311, double noundef 1.000000e-13)
          to label %312 unwind label %325

312:                                              ; preds = %309
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(32) %34, i64 32, i1 false), !tbaa.struct !53
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  %313 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  %314 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %9) #9
  %315 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %11) #9
  %316 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %12) #9
  %317 = call noundef ptr @_ZNSt5arrayIcLm32EE4dataEv(ptr noundef nonnull align 1 dereferenceable(32) %10) #9
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.59, ptr noundef %313, ptr noundef %314, ptr noundef %315, ptr noundef %316, ptr noundef %317) #8
  br label %327

319:                                              ; preds = %300
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  br label %331

321:                                              ; preds = %303
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  br label %331

323:                                              ; preds = %306
  %324 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  br label %331

325:                                              ; preds = %309
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %331

327:                                              ; preds = %312, %274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  %indvars.iv.next190 = add nuw nsw i64 %indvars.iv189, 1
  %328 = load i32, ptr %167, align 4, !tbaa !55
  %329 = sext i32 %328 to i64
  %330 = icmp slt i64 %indvars.iv.next190, %329
  br i1 %330, label %256, label %._crit_edge180, !llvm.loop !57

331:                                              ; preds = %325, %323, %321, %319, %298
  %.pn = phi { ptr, i32 } [ %299, %298 ], [ %326, %325 ], [ %324, %323 ], [ %322, %321 ], [ %320, %319 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %332

332:                                              ; preds = %331, %296
  %.pn.pn = phi { ptr, i32 } [ %.pn, %331 ], [ %297, %296 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  br label %334

333:                                              ; preds = %._crit_edge180, %37
  ret void

334:                                              ; preds = %.split165, %.split165.us, %292, %294, %332, %206, %208, %246, %122, %153, %49
  %.pn158.pn.pn.pn = phi { ptr, i32 } [ %50, %49 ], [ %.pn158.pn, %153 ], [ %.us-phi, %122 ], [ %.pn154.pn, %246 ], [ %209, %208 ], [ %207, %206 ], [ %.pn.pn, %332 ], [ %295, %294 ], [ %293, %292 ], [ %123, %.split165 ], [ %106, %.split165.us ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %8) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %8) #8
  resume { ptr, i32 } %.pn158.pn.pn.pn
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #3

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

; 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

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

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

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

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

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

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

; Function Attrs: mustprogress 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
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 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: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) 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 = { "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 = { mustprogress nofree nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(none) }

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

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


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