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

; 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::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsSolution = type { i8, i8, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3" }
%class.HighsLp = type { i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.18", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsNameHash = type { %"class.std::unordered_map" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%struct.HighsScale = type { i32, i8, i32, i32, double, %"class.std::vector.3", %"class.std::vector.3" }
%struct.HighsLpMods = type { %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3" }
%struct.HighsOptionsStruct = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i8, i8, i32, i32, double, i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, double, double, double, double, double, double, double, double, double, double, double, i8, i8, i8, i8, i32, double, i8, i8, %"class.std::__cxx11::basic_string", double, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i8, i8, %"class.std::__cxx11::basic_string", i8, i32, %struct.HighsLogOptions }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }

@.str.52 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [27 x i8], align 1
@__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution = external hidden unnamed_addr constant [352 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [25 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 dso_local void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

declare i32 @printf(ptr noundef, ...) #6

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution(ptr noundef nonnull align 8 dereferenceable(1020) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef %4, i32 noundef %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %10, i32 noundef %11, ptr noundef nonnull align 8 dereferenceable(104) %12) #3 personality ptr @__gxx_personality_v0 {
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.std::vector.3", align 8
  %32 = alloca i8, align 1
  %33 = alloca double, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca double, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca double, align 8
  %48 = alloca i32, align 4
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca i8, align 1
  %55 = alloca i8, align 1
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca i32, align 4
  %76 = alloca i8, align 1
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca i8, align 1
  %86 = alloca i8, align 1
  %87 = alloca double, align 8
  %88 = alloca %"class.std::vector.3", align 8
  %89 = alloca double, align 8
  %90 = alloca i32, align 4
  %91 = alloca double, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca i32, align 4
  %97 = alloca double, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  store ptr %0, ptr %14, align 8, !tbaa !5
  store ptr %1, ptr %15, align 8, !tbaa !5
  store ptr %2, ptr %16, align 8, !tbaa !5
  store ptr %3, ptr %17, align 8, !tbaa !5
  store i32 %4, ptr %18, align 4, !tbaa !9
  store i32 %5, ptr %19, align 4, !tbaa !9
  store ptr %6, ptr %20, align 8, !tbaa !5
  store ptr %7, ptr %21, align 8, !tbaa !5
  store ptr %8, ptr %22, align 8, !tbaa !5
  store ptr %9, ptr %23, align 8, !tbaa !5
  store ptr %10, ptr %24, align 8, !tbaa !5
  store i32 %11, ptr %25, align 4, !tbaa !11
  store ptr %12, ptr %26, align 8, !tbaa !5
  %100 = load ptr, ptr %26, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.HighsSolution, ptr %100, i32 0, i32 2
  %102 = load ptr, ptr %15, align 8, !tbaa !5
  %103 = getelementptr inbounds %class.HighsLp, ptr %102, i32 0, i32 0
  %104 = load i32, ptr %103, align 8, !tbaa !13
  %105 = sext i32 %104 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %101, i64 noundef %105)
  %106 = load ptr, ptr %26, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.HighsSolution, ptr %106, i32 0, i32 4
  %108 = load ptr, ptr %15, align 8, !tbaa !5
  %109 = getelementptr inbounds %class.HighsLp, ptr %108, i32 0, i32 1
  %110 = load i32, ptr %109, align 4, !tbaa !47
  %111 = sext i32 %110 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %111)
  %112 = load ptr, ptr %26, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.HighsSolution, ptr %112, i32 0, i32 3
  %114 = load ptr, ptr %15, align 8, !tbaa !5
  %115 = getelementptr inbounds %class.HighsLp, ptr %114, i32 0, i32 0
  %116 = load i32, ptr %115, align 8, !tbaa !13
  %117 = sext i32 %116 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %113, i64 noundef %117)
  %118 = load ptr, ptr %26, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.HighsSolution, ptr %118, i32 0, i32 5
  %120 = load ptr, ptr %15, align 8, !tbaa !5
  %121 = getelementptr inbounds %class.HighsLp, ptr %120, i32 0, i32 1
  %122 = load i32, ptr %121, align 4, !tbaa !47
  %123 = sext i32 %122 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef %123)
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %124 = load ptr, ptr %14, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %124, i32 0, i32 14
  %126 = load double, ptr %125, align 8, !tbaa !48
  store double %126, ptr %27, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %127 = load ptr, ptr %14, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %127, i32 0, i32 15
  %129 = load double, ptr %128, align 8, !tbaa !54
  store double %129, ptr %28, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %130 = load ptr, ptr %20, align 8, !tbaa !5
  store ptr %130, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %131 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %131, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  store i8 1, ptr %32, align 1, !tbaa !55
  %132 = load ptr, ptr %15, align 8, !tbaa !5
  %133 = getelementptr inbounds %class.HighsLp, ptr %132, i32 0, i32 1
  %134 = load i32, ptr %133, align 4, !tbaa !47
  %135 = sext i32 %134 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  store double 0.000000e+00, ptr %33, align 8, !tbaa !53
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %135, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %136 unwind label %147

136:                                              ; preds = %13
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  %137 = load ptr, ptr %15, align 8, !tbaa !5
  %138 = getelementptr inbounds %class.HighsLp, ptr %137, i32 0, i32 0
  %139 = load i32, ptr %138, align 8, !tbaa !13
  store i32 %139, ptr %36, align 4, !tbaa !9
  %140 = load i32, ptr %19, align 4, !tbaa !9
  %141 = load ptr, ptr %15, align 8, !tbaa !5
  %142 = getelementptr inbounds %class.HighsLp, ptr %141, i32 0, i32 1
  %143 = load i32, ptr %142, align 4, !tbaa !47
  %144 = icmp eq i32 %140, %143
  br i1 %144, label %145, label %146

145:                                              ; preds = %136
  br label %152

146:                                              ; preds = %136
  call void @__assert_fail(ptr noundef @.str.77, ptr noundef @.str.52, i32 noundef 786, ptr noundef @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #8
  unreachable

147:                                              ; preds = %13
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %34, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  br label %962

151:                                              ; No predecessors!
  br label %152

152:                                              ; preds = %151, %145
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  store double 0.000000e+00, ptr %37, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %153

153:                                              ; preds = %271, %152
  %154 = load i32, ptr %38, align 4, !tbaa !9
  %155 = load ptr, ptr %15, align 8, !tbaa !5
  %156 = getelementptr inbounds %class.HighsLp, ptr %155, i32 0, i32 0
  %157 = load i32, ptr %156, align 8, !tbaa !13
  %158 = icmp slt i32 %154, %157
  br i1 %158, label %160, label %159

159:                                              ; preds = %153
  store i32 2, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %278

160:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %161 = load ptr, ptr %29, align 8, !tbaa !5
  %162 = load i32, ptr %38, align 4, !tbaa !9
  %163 = sext i32 %162 to i64
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %161, i64 noundef %163) #7
  %165 = load double, ptr %164, align 8, !tbaa !53
  store double %165, ptr %40, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %166 = load ptr, ptr %15, align 8, !tbaa !5
  %167 = getelementptr inbounds %class.HighsLp, ptr %166, i32 0, i32 2
  %168 = load i32, ptr %38, align 4, !tbaa !9
  %169 = sext i32 %168 to i64
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %167, i64 noundef %169) #7
  %171 = load double, ptr %170, align 8, !tbaa !53
  store double %171, ptr %41, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %172 = load ptr, ptr %15, align 8, !tbaa !5
  %173 = getelementptr inbounds %class.HighsLp, ptr %172, i32 0, i32 7
  %174 = getelementptr inbounds %class.HighsSparseMatrix, ptr %173, i32 0, i32 3
  %175 = load i32, ptr %38, align 4, !tbaa !9
  %176 = sext i32 %175 to i64
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef %176) #7
  %178 = load i32, ptr %177, align 4, !tbaa !9
  store i32 %178, ptr %42, align 4, !tbaa !9
  br label %179

179:                                              ; preds = %227, %160
  %180 = load i32, ptr %42, align 4, !tbaa !9
  %181 = load ptr, ptr %15, align 8, !tbaa !5
  %182 = getelementptr inbounds %class.HighsLp, ptr %181, i32 0, i32 7
  %183 = getelementptr inbounds %class.HighsSparseMatrix, ptr %182, i32 0, i32 3
  %184 = load i32, ptr %38, align 4, !tbaa !9
  %185 = add nsw i32 %184, 1
  %186 = sext i32 %185 to i64
  %187 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %183, i64 noundef %186) #7
  %188 = load i32, ptr %187, align 4, !tbaa !9
  %189 = icmp slt i32 %180, %188
  br i1 %189, label %191, label %190

190:                                              ; preds = %179
  store i32 5, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %230

191:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %192 = load ptr, ptr %15, align 8, !tbaa !5
  %193 = getelementptr inbounds %class.HighsLp, ptr %192, i32 0, i32 7
  %194 = getelementptr inbounds %class.HighsSparseMatrix, ptr %193, i32 0, i32 5
  %195 = load i32, ptr %42, align 4, !tbaa !9
  %196 = sext i32 %195 to i64
  %197 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %194, i64 noundef %196) #7
  %198 = load i32, ptr %197, align 4, !tbaa !9
  store i32 %198, ptr %43, align 4, !tbaa !9
  %199 = load double, ptr %40, align 8, !tbaa !53
  %200 = load ptr, ptr %15, align 8, !tbaa !5
  %201 = getelementptr inbounds %class.HighsLp, ptr %200, i32 0, i32 7
  %202 = getelementptr inbounds %class.HighsSparseMatrix, ptr %201, i32 0, i32 6
  %203 = load i32, ptr %42, align 4, !tbaa !9
  %204 = sext i32 %203 to i64
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef %204) #7
  %206 = load double, ptr %205, align 8, !tbaa !53
  %207 = load i32, ptr %43, align 4, !tbaa !9
  %208 = sext i32 %207 to i64
  %209 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %208) #7
  %210 = load double, ptr %209, align 8, !tbaa !53
  %211 = call double @llvm.fmuladd.f64(double %199, double %206, double %210)
  store double %211, ptr %209, align 8, !tbaa !53
  %212 = load ptr, ptr %22, align 8, !tbaa !5
  %213 = load i32, ptr %43, align 4, !tbaa !9
  %214 = sext i32 %213 to i64
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef %214) #7
  %216 = load double, ptr %215, align 8, !tbaa !53
  %217 = load ptr, ptr %15, align 8, !tbaa !5
  %218 = getelementptr inbounds %class.HighsLp, ptr %217, i32 0, i32 7
  %219 = getelementptr inbounds %class.HighsSparseMatrix, ptr %218, i32 0, i32 6
  %220 = load i32, ptr %42, align 4, !tbaa !9
  %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) #7
  %223 = load double, ptr %222, align 8, !tbaa !53
  %224 = load double, ptr %41, align 8, !tbaa !53
  %225 = fneg double %216
  %226 = call double @llvm.fmuladd.f64(double %225, double %223, double %224)
  store double %226, ptr %41, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %227

227:                                              ; preds = %191
  %228 = load i32, ptr %42, align 4, !tbaa !9
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr %42, align 4, !tbaa !9
  br label %179, !llvm.loop !56

230:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %231 = load double, ptr %41, align 8, !tbaa !53
  %232 = load ptr, ptr %23, align 8, !tbaa !5
  %233 = load i32, ptr %38, align 4, !tbaa !9
  %234 = sext i32 %233 to i64
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %234) #7
  %236 = load double, ptr %235, align 8, !tbaa !53
  %237 = load ptr, ptr %24, align 8, !tbaa !5
  %238 = load i32, ptr %38, align 4, !tbaa !9
  %239 = sext i32 %238 to i64
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %239) #7
  %241 = load double, ptr %240, align 8, !tbaa !53
  %242 = fsub double %236, %241
  %243 = fsub double %231, %242
  %244 = call double @llvm.fabs.f64(double %243)
  store double %244, ptr %44, align 8, !tbaa !53
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %246 unwind label %274

246:                                              ; preds = %230
  %247 = load double, ptr %245, align 8, !tbaa !53
  store double %247, ptr %37, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %248 = load ptr, ptr %23, align 8, !tbaa !5
  %249 = load i32, ptr %38, align 4, !tbaa !9
  %250 = sext i32 %249 to i64
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %250) #7
  %252 = load double, ptr %251, align 8, !tbaa !53
  %253 = load ptr, ptr %24, align 8, !tbaa !5
  %254 = load i32, ptr %38, align 4, !tbaa !9
  %255 = sext i32 %254 to i64
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %253, i64 noundef %255) #7
  %257 = load double, ptr %256, align 8, !tbaa !53
  %258 = fsub double %252, %257
  store double %258, ptr %45, align 8, !tbaa !53
  %259 = load double, ptr %40, align 8, !tbaa !53
  %260 = load ptr, ptr %26, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.HighsSolution, ptr %260, i32 0, i32 2
  %262 = load i32, ptr %38, align 4, !tbaa !9
  %263 = sext i32 %262 to i64
  %264 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %261, i64 noundef %263) #7
  store double %259, ptr %264, align 8, !tbaa !53
  %265 = load double, ptr %45, align 8, !tbaa !53
  %266 = load ptr, ptr %26, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.HighsSolution, ptr %266, i32 0, i32 3
  %268 = load i32, ptr %38, align 4, !tbaa !9
  %269 = sext i32 %268 to i64
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %267, i64 noundef %269) #7
  store double %265, ptr %270, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %271

271:                                              ; preds = %246
  %272 = load i32, ptr %38, align 4, !tbaa !9
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr %38, align 4, !tbaa !9
  br label %153, !llvm.loop !58

274:                                              ; preds = %230
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %34, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %961

278:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 0, ptr %46, align 4, !tbaa !9
  %279 = load ptr, ptr %15, align 8, !tbaa !5
  %280 = getelementptr inbounds %class.HighsLp, ptr %279, i32 0, i32 0
  %281 = load i32, ptr %280, align 8, !tbaa !13
  store i32 %281, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  store double 0.000000e+00, ptr %47, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  store i32 0, ptr %48, align 4, !tbaa !9
  br label %282

282:                                              ; preds = %407, %278
  %283 = load i32, ptr %48, align 4, !tbaa !9
  %284 = load ptr, ptr %15, align 8, !tbaa !5
  %285 = getelementptr inbounds %class.HighsLp, ptr %284, i32 0, i32 1
  %286 = load i32, ptr %285, align 4, !tbaa !47
  %287 = icmp slt i32 %283, %286
  br i1 %287, label %289, label %288

288:                                              ; preds = %282
  store i32 8, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %414

289:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %290 = load ptr, ptr %15, align 8, !tbaa !5
  %291 = getelementptr inbounds %class.HighsLp, ptr %290, i32 0, i32 5
  %292 = load i32, ptr %48, align 4, !tbaa !9
  %293 = sext i32 %292 to i64
  %294 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %291, i64 noundef %293) #7
  %295 = load double, ptr %294, align 8, !tbaa !53
  store double %295, ptr %49, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %296 = load ptr, ptr %15, align 8, !tbaa !5
  %297 = getelementptr inbounds %class.HighsLp, ptr %296, i32 0, i32 6
  %298 = load i32, ptr %48, align 4, !tbaa !9
  %299 = sext i32 %298 to i64
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %297, i64 noundef %299) #7
  %301 = load double, ptr %300, align 8, !tbaa !53
  store double %301, ptr %50, align 8, !tbaa !53
  %302 = load double, ptr %49, align 8, !tbaa !53
  %303 = fcmp ole double %302, 0xFFF0000000000000
  br i1 %303, label %304, label %322

304:                                              ; preds = %289
  %305 = load double, ptr %50, align 8, !tbaa !53
  %306 = fcmp oge double %305, 0x7FF0000000000000
  br i1 %306, label %307, label %322

307:                                              ; preds = %304
  %308 = load i32, ptr %48, align 4, !tbaa !9
  %309 = sext i32 %308 to i64
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %309) #7
  %311 = load double, ptr %310, align 8, !tbaa !53
  %312 = load ptr, ptr %26, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.HighsSolution, ptr %312, i32 0, i32 4
  %314 = load i32, ptr %48, align 4, !tbaa !9
  %315 = sext i32 %314 to i64
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %313, i64 noundef %315) #7
  store double %311, ptr %316, align 8, !tbaa !53
  %317 = load ptr, ptr %26, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.HighsSolution, ptr %317, i32 0, i32 5
  %319 = load i32, ptr %48, align 4, !tbaa !9
  %320 = sext i32 %319 to i64
  %321 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %318, i64 noundef %320) #7
  store double 0.000000e+00, ptr %321, align 8, !tbaa !53
  store i32 10, ptr %39, align 4
  br label %404

322:                                              ; preds = %304, %289
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  store double 0.000000e+00, ptr %51, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  store double 0.000000e+00, ptr %52, align 8, !tbaa !53
  %323 = load double, ptr %49, align 8, !tbaa !53
  %324 = fcmp ogt double %323, 0xFFF0000000000000
  br i1 %324, label %325, label %362

325:                                              ; preds = %322
  %326 = load double, ptr %50, align 8, !tbaa !53
  %327 = fcmp olt double %326, 0x7FF0000000000000
  br i1 %327, label %328, label %362

328:                                              ; preds = %325
  %329 = load double, ptr %49, align 8, !tbaa !53
  %330 = load double, ptr %50, align 8, !tbaa !53
  %331 = fcmp olt double %329, %330
  br i1 %331, label %332, label %362

332:                                              ; preds = %328
  %333 = load ptr, ptr %17, align 8, !tbaa !5
  %334 = load i32, ptr %46, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  %336 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %333, i64 noundef %335) #7
  %337 = load i8, ptr %336, align 1, !tbaa !59
  %338 = sext i8 %337 to i32
  %339 = icmp eq i32 %338, 61
  br i1 %339, label %340, label %341

340:                                              ; preds = %332
  br label %343

341:                                              ; preds = %332
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.52, i32 noundef 823, ptr noundef @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #8
  unreachable

342:                                              ; No predecessors!
  br label %343

343:                                              ; preds = %342, %340
  %344 = load ptr, ptr %29, align 8, !tbaa !5
  %345 = load i32, ptr %36, align 4, !tbaa !9
  %346 = sext i32 %345 to i64
  %347 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %344, i64 noundef %346) #7
  %348 = load double, ptr %347, align 8, !tbaa !53
  store double %348, ptr %51, align 8, !tbaa !53
  %349 = load ptr, ptr %23, align 8, !tbaa !5
  %350 = load i32, ptr %36, align 4, !tbaa !9
  %351 = sext i32 %350 to i64
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %349, i64 noundef %351) #7
  %353 = load double, ptr %352, align 8, !tbaa !53
  %354 = load ptr, ptr %24, align 8, !tbaa !5
  %355 = load i32, ptr %36, align 4, !tbaa !9
  %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) #7
  %358 = load double, ptr %357, align 8, !tbaa !53
  %359 = fsub double %353, %358
  store double %359, ptr %52, align 8, !tbaa !53
  %360 = load i32, ptr %36, align 4, !tbaa !9
  %361 = add nsw i32 %360, 1
  store i32 %361, ptr %36, align 4, !tbaa !9
  br label %379

362:                                              ; preds = %328, %325, %322
  %363 = load ptr, ptr %16, align 8, !tbaa !5
  %364 = load i32, ptr %46, align 4, !tbaa !9
  %365 = sext i32 %364 to i64
  %366 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %363, i64 noundef %365) #7
  %367 = load double, ptr %366, align 8, !tbaa !53
  %368 = load ptr, ptr %30, align 8, !tbaa !5
  %369 = load i32, ptr %46, align 4, !tbaa !9
  %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) #7
  %372 = load double, ptr %371, align 8, !tbaa !53
  %373 = fsub double %367, %372
  store double %373, ptr %51, align 8, !tbaa !53
  %374 = load ptr, ptr %22, align 8, !tbaa !5
  %375 = load i32, ptr %46, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %374, i64 noundef %376) #7
  %378 = load double, ptr %377, align 8, !tbaa !53
  store double %378, ptr %52, align 8, !tbaa !53
  br label %379

379:                                              ; preds = %362, %343
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %380 = load double, ptr %51, align 8, !tbaa !53
  %381 = load i32, ptr %48, align 4, !tbaa !9
  %382 = sext i32 %381 to i64
  %383 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %382) #7
  %384 = load double, ptr %383, align 8, !tbaa !53
  %385 = fsub double %380, %384
  %386 = call double @llvm.fabs.f64(double %385)
  store double %386, ptr %53, align 8, !tbaa !53
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %388 unwind label %410

388:                                              ; preds = %379
  %389 = load double, ptr %387, align 8, !tbaa !53
  store double %389, ptr %47, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  %390 = load double, ptr %51, align 8, !tbaa !53
  %391 = load ptr, ptr %26, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.HighsSolution, ptr %391, i32 0, i32 4
  %393 = load i32, ptr %48, align 4, !tbaa !9
  %394 = sext i32 %393 to i64
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %392, i64 noundef %394) #7
  store double %390, ptr %395, align 8, !tbaa !53
  %396 = load double, ptr %52, align 8, !tbaa !53
  %397 = load ptr, ptr %26, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.HighsSolution, ptr %397, i32 0, i32 5
  %399 = load i32, ptr %48, align 4, !tbaa !9
  %400 = sext i32 %399 to i64
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %398, i64 noundef %400) #7
  store double %396, ptr %401, align 8, !tbaa !53
  %402 = load i32, ptr %46, align 4, !tbaa !9
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  store i32 0, ptr %39, align 4
  br label %404

404:                                              ; preds = %388, %307
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  %405 = load i32, ptr %39, align 4
  switch i32 %405, label %968 [
    i32 0, label %406
    i32 10, label %407
  ]

406:                                              ; preds = %404
  br label %407

407:                                              ; preds = %406, %404
  %408 = load i32, ptr %48, align 4, !tbaa !9
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %48, align 4, !tbaa !9
  br label %282, !llvm.loop !60

410:                                              ; preds = %379
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %34, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %960

414:                                              ; preds = %288
  %415 = load ptr, ptr %14, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %415, i32 0, i32 130
  %417 = load double, ptr %37, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %416, i32 noundef 1, ptr noundef @.str.79, double noundef %417)
          to label %418 unwind label %437

418:                                              ; preds = %414
  %419 = load ptr, ptr %14, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %419, i32 0, i32 130
  %421 = load double, ptr %47, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %420, i32 noundef 1, ptr noundef @.str.80, double noundef %421)
          to label %422 unwind label %437

422:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #7
  store i8 0, ptr %54, align 1, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #7
  store i8 1, ptr %55, align 1, !tbaa !55
  %423 = load i32, ptr %25, align 4, !tbaa !11
  %424 = icmp eq i32 %423, 7
  br i1 %424, label %425, label %897

425:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  store double 0.000000e+00, ptr %56, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  store double 0.000000e+00, ptr %57, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  store double 0.000000e+00, ptr %58, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  store double 0.000000e+00, ptr %59, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  store i32 0, ptr %60, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  store i32 0, ptr %61, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  store i32 0, ptr %62, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #7
  store i32 0, ptr %63, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  store i32 0, ptr %64, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  store i32 0, ptr %65, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #7
  store i32 -127, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  store i32 -37, ptr %71, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  store double 0.000000e+00, ptr %72, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  store double 0.000000e+00, ptr %73, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  store double 0.000000e+00, ptr %74, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #7
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %426

426:                                              ; preds = %705, %425
  %427 = load i32, ptr %75, align 4, !tbaa !9
  %428 = load ptr, ptr %15, align 8, !tbaa !5
  %429 = getelementptr inbounds %class.HighsLp, ptr %428, i32 0, i32 0
  %430 = load i32, ptr %429, align 8, !tbaa !13
  %431 = load ptr, ptr %15, align 8, !tbaa !5
  %432 = getelementptr inbounds %class.HighsLp, ptr %431, i32 0, i32 1
  %433 = load i32, ptr %432, align 4, !tbaa !47
  %434 = add nsw i32 %430, %433
  %435 = icmp slt i32 %427, %434
  br i1 %435, label %441, label %436

436:                                              ; preds = %426
  store i32 11, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  br label %711

437:                                              ; preds = %418, %414
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %34, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %35, align 4
  br label %960

441:                                              ; preds = %426
  %442 = load i32, ptr %75, align 4, !tbaa !9
  %443 = load ptr, ptr %15, align 8, !tbaa !5
  %444 = getelementptr inbounds %class.HighsLp, ptr %443, i32 0, i32 0
  %445 = load i32, ptr %444, align 8, !tbaa !13
  %446 = icmp eq i32 %442, %445
  br i1 %446, label %447, label %452

447:                                              ; preds = %441
  %448 = load double, ptr %56, align 8, !tbaa !53
  store double %448, ptr %58, align 8, !tbaa !53
  %449 = load double, ptr %57, align 8, !tbaa !53
  store double %449, ptr %59, align 8, !tbaa !53
  %450 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %450, ptr %62, align 4, !tbaa !9
  %451 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %451, ptr %63, align 4, !tbaa !9
  store double 0.000000e+00, ptr %56, align 8, !tbaa !53
  store double 0.000000e+00, ptr %57, align 8, !tbaa !53
  store i32 0, ptr %60, align 4, !tbaa !9
  store i32 0, ptr %61, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %447, %441
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #7
  %453 = load i32, ptr %75, align 4, !tbaa !9
  %454 = load ptr, ptr %15, align 8, !tbaa !5
  %455 = getelementptr inbounds %class.HighsLp, ptr %454, i32 0, i32 0
  %456 = load i32, ptr %455, align 8, !tbaa !13
  %457 = icmp slt i32 %453, %456
  %458 = zext i1 %457 to i8
  store i8 %458, ptr %76, align 1, !tbaa !55
  %459 = load i8, ptr %76, align 1, !tbaa !55, !range !61, !noundef !62
  %460 = trunc i8 %459 to i1
  br i1 %460, label %461, label %497

461:                                              ; preds = %452
  %462 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %462, ptr %64, align 4, !tbaa !9
  %463 = load ptr, ptr %15, align 8, !tbaa !5
  %464 = getelementptr inbounds %class.HighsLp, ptr %463, i32 0, i32 3
  %465 = load i32, ptr %64, align 4, !tbaa !9
  %466 = sext i32 %465 to i64
  %467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %464, i64 noundef %466) #7
  %468 = load double, ptr %467, align 8, !tbaa !53
  store double %468, ptr %66, align 8, !tbaa !53
  %469 = load ptr, ptr %15, align 8, !tbaa !5
  %470 = getelementptr inbounds %class.HighsLp, ptr %469, i32 0, i32 4
  %471 = load i32, ptr %64, align 4, !tbaa !9
  %472 = sext i32 %471 to i64
  %473 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %470, i64 noundef %472) #7
  %474 = load double, ptr %473, align 8, !tbaa !53
  store double %474, ptr %67, align 8, !tbaa !53
  %475 = load ptr, ptr %26, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.HighsSolution, ptr %475, i32 0, i32 2
  %477 = load i32, ptr %64, align 4, !tbaa !9
  %478 = sext i32 %477 to i64
  %479 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %476, i64 noundef %478) #7
  %480 = load double, ptr %479, align 8, !tbaa !53
  store double %480, ptr %68, align 8, !tbaa !53
  %481 = load ptr, ptr %26, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.HighsSolution, ptr %481, i32 0, i32 3
  %483 = load i32, ptr %64, align 4, !tbaa !9
  %484 = sext i32 %483 to i64
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %482, i64 noundef %484) #7
  %486 = load double, ptr %485, align 8, !tbaa !53
  store double %486, ptr %69, align 8, !tbaa !53
  %487 = load i32, ptr %64, align 4, !tbaa !9
  %488 = icmp eq i32 %487, -127
  br i1 %488, label %489, label %496

489:                                              ; preds = %461
  %490 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.81, i32 noundef -127)
          to label %491 unwind label %492

491:                                              ; preds = %489
  br label %496

492:                                              ; preds = %529, %489
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %34, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %35, align 4
  br label %710

496:                                              ; preds = %491, %461
  br label %533

497:                                              ; preds = %452
  %498 = load i32, ptr %75, align 4, !tbaa !9
  %499 = load ptr, ptr %15, align 8, !tbaa !5
  %500 = getelementptr inbounds %class.HighsLp, ptr %499, i32 0, i32 0
  %501 = load i32, ptr %500, align 8, !tbaa !13
  %502 = sub nsw i32 %498, %501
  store i32 %502, ptr %65, align 4, !tbaa !9
  %503 = load ptr, ptr %15, align 8, !tbaa !5
  %504 = getelementptr inbounds %class.HighsLp, ptr %503, i32 0, i32 5
  %505 = load i32, ptr %65, align 4, !tbaa !9
  %506 = sext i32 %505 to i64
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %504, i64 noundef %506) #7
  %508 = load double, ptr %507, align 8, !tbaa !53
  store double %508, ptr %66, align 8, !tbaa !53
  %509 = load ptr, ptr %15, align 8, !tbaa !5
  %510 = getelementptr inbounds %class.HighsLp, ptr %509, i32 0, i32 6
  %511 = load i32, ptr %65, align 4, !tbaa !9
  %512 = sext i32 %511 to i64
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %510, i64 noundef %512) #7
  %514 = load double, ptr %513, align 8, !tbaa !53
  store double %514, ptr %67, align 8, !tbaa !53
  %515 = load ptr, ptr %26, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.HighsSolution, ptr %515, i32 0, i32 4
  %517 = load i32, ptr %65, align 4, !tbaa !9
  %518 = sext i32 %517 to i64
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %516, i64 noundef %518) #7
  %520 = load double, ptr %519, align 8, !tbaa !53
  store double %520, ptr %68, align 8, !tbaa !53
  %521 = load ptr, ptr %26, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.HighsSolution, ptr %521, i32 0, i32 5
  %523 = load i32, ptr %65, align 4, !tbaa !9
  %524 = sext i32 %523 to i64
  %525 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %522, i64 noundef %524) #7
  %526 = load double, ptr %525, align 8, !tbaa !53
  store double %526, ptr %69, align 8, !tbaa !53
  %527 = load i32, ptr %65, align 4, !tbaa !9
  %528 = icmp eq i32 %527, -37
  br i1 %528, label %529, label %532

529:                                              ; preds = %497
  %530 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.82, i32 noundef -37)
          to label %531 unwind label %492

531:                                              ; preds = %529
  br label %532

532:                                              ; preds = %531, %497
  br label %533

533:                                              ; preds = %532, %496
  %534 = load double, ptr %66, align 8, !tbaa !53
  %535 = load double, ptr %67, align 8, !tbaa !53
  %536 = fcmp oge double %534, %535
  br i1 %536, label %537, label %538

537:                                              ; preds = %533
  store i32 13, ptr %39, align 4
  br label %702

538:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #7
  store double 0.000000e+00, ptr %77, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #7
  store double 0.000000e+00, ptr %78, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #7
  store double 0.000000e+00, ptr %79, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %539 = load double, ptr %66, align 8, !tbaa !53
  %540 = load double, ptr %68, align 8, !tbaa !53
  %541 = fsub double %539, %540
  store double %541, ptr %81, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %542 = load double, ptr %68, align 8, !tbaa !53
  %543 = load double, ptr %67, align 8, !tbaa !53
  %544 = fsub double %542, %543
  store double %544, ptr %82, align 8, !tbaa !53
  %545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %546 unwind label %569

546:                                              ; preds = %538
  %547 = load double, ptr %545, align 8, !tbaa !53
  %548 = call double @llvm.fabs.f64(double %547)
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  store double %548, ptr %80, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #7
  %549 = load double, ptr %68, align 8, !tbaa !53
  store double %549, ptr %83, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #7
  %550 = load double, ptr %69, align 8, !tbaa !53
  store double %550, ptr %84, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #7
  %551 = load double, ptr %68, align 8, !tbaa !53
  %552 = load double, ptr %66, align 8, !tbaa !53
  %553 = load double, ptr %27, align 8, !tbaa !53
  %554 = fadd double %552, %553
  %555 = fcmp ole double %551, %554
  %556 = zext i1 %555 to i8
  store i8 %556, ptr %85, align 1, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #7
  %557 = load double, ptr %68, align 8, !tbaa !53
  %558 = load double, ptr %67, align 8, !tbaa !53
  %559 = load double, ptr %27, align 8, !tbaa !53
  %560 = fsub double %558, %559
  %561 = fcmp oge double %557, %560
  %562 = zext i1 %561 to i8
  store i8 %562, ptr %86, align 1, !tbaa !55
  %563 = load i8, ptr %85, align 1, !tbaa !55, !range !61, !noundef !62
  %564 = trunc i8 %563 to i1
  br i1 %564, label %565, label %573

565:                                              ; preds = %546
  %566 = load i8, ptr %86, align 1, !tbaa !55, !range !61, !noundef !62
  %567 = trunc i8 %566 to i1
  br i1 %567, label %568, label %573

568:                                              ; preds = %565
  store i32 13, ptr %39, align 4
  br label %701

569:                                              ; preds = %538
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %34, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  br label %709

573:                                              ; preds = %565, %546
  %574 = load i8, ptr %85, align 1, !tbaa !55, !range !61, !noundef !62
  %575 = trunc i8 %574 to i1
  br i1 %575, label %576, label %579

576:                                              ; preds = %573
  %577 = load double, ptr %69, align 8, !tbaa !53
  %578 = fneg double %577
  store double %578, ptr %79, align 8, !tbaa !53
  br label %588

579:                                              ; preds = %573
  %580 = load i8, ptr %86, align 1, !tbaa !55, !range !61, !noundef !62
  %581 = trunc i8 %580 to i1
  br i1 %581, label %582, label %584

582:                                              ; preds = %579
  %583 = load double, ptr %69, align 8, !tbaa !53
  store double %583, ptr %79, align 8, !tbaa !53
  br label %587

584:                                              ; preds = %579
  %585 = load double, ptr %69, align 8, !tbaa !53
  %586 = call double @llvm.fabs.f64(double %585)
  store double %586, ptr %79, align 8, !tbaa !53
  br label %587

587:                                              ; preds = %584, %582
  br label %588

588:                                              ; preds = %587, %576
  %589 = load double, ptr %79, align 8, !tbaa !53
  %590 = load double, ptr %28, align 8, !tbaa !53
  %591 = fcmp ole double %589, %590
  br i1 %591, label %592, label %593

592:                                              ; preds = %588
  store i32 13, ptr %39, align 4
  br label %701

593:                                              ; preds = %588
  %594 = load double, ptr %80, align 8, !tbaa !53
  %595 = load double, ptr %79, align 8, !tbaa !53
  %596 = fcmp olt double %594, %595
  br i1 %596, label %597, label %625

597:                                              ; preds = %593
  %598 = load i32, ptr %60, align 4, !tbaa !9
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr %60, align 4, !tbaa !9
  %600 = load double, ptr %69, align 8, !tbaa !53
  %601 = fcmp ogt double %600, 0.000000e+00
  br i1 %601, label %602, label %613

602:                                              ; preds = %597
  %603 = load double, ptr %68, align 8, !tbaa !53
  %604 = load double, ptr %66, align 8, !tbaa !53
  %605 = fcmp olt double %603, %604
  br i1 %605, label %606, label %609

606:                                              ; preds = %602
  %607 = load double, ptr %66, align 8, !tbaa !53
  %608 = fsub double %607, 0.000000e+00
  store double %608, ptr %83, align 8, !tbaa !53
  br label %612

609:                                              ; preds = %602
  %610 = load double, ptr %66, align 8, !tbaa !53
  %611 = fadd double %610, 0.000000e+00
  store double %611, ptr %83, align 8, !tbaa !53
  br label %612

612:                                              ; preds = %609, %606
  br label %624

613:                                              ; preds = %597
  %614 = load double, ptr %68, align 8, !tbaa !53
  %615 = load double, ptr %67, align 8, !tbaa !53
  %616 = fcmp olt double %614, %615
  br i1 %616, label %617, label %620

617:                                              ; preds = %613
  %618 = load double, ptr %67, align 8, !tbaa !53
  %619 = fsub double %618, 0.000000e+00
  store double %619, ptr %83, align 8, !tbaa !53
  br label %623

620:                                              ; preds = %613
  %621 = load double, ptr %67, align 8, !tbaa !53
  %622 = fadd double %621, 0.000000e+00
  store double %622, ptr %83, align 8, !tbaa !53
  br label %623

623:                                              ; preds = %620, %617
  br label %624

624:                                              ; preds = %623, %612
  br label %643

625:                                              ; preds = %593
  %626 = load i32, ptr %61, align 4, !tbaa !9
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr %61, align 4, !tbaa !9
  %628 = load i8, ptr %85, align 1, !tbaa !55, !range !61, !noundef !62
  %629 = trunc i8 %628 to i1
  br i1 %629, label %630, label %631

630:                                              ; preds = %625
  store double -0.000000e+00, ptr %84, align 8, !tbaa !53
  br label %642

631:                                              ; preds = %625
  %632 = load i8, ptr %86, align 1, !tbaa !55, !range !61, !noundef !62
  %633 = trunc i8 %632 to i1
  br i1 %633, label %634, label %635

634:                                              ; preds = %631
  store double 0.000000e+00, ptr %84, align 8, !tbaa !53
  br label %641

635:                                              ; preds = %631
  %636 = load double, ptr %69, align 8, !tbaa !53
  %637 = fcmp ogt double %636, 0.000000e+00
  br i1 %637, label %638, label %639

638:                                              ; preds = %635
  store double 0.000000e+00, ptr %84, align 8, !tbaa !53
  br label %640

639:                                              ; preds = %635
  store double -0.000000e+00, ptr %84, align 8, !tbaa !53
  br label %640

640:                                              ; preds = %639, %638
  br label %641

641:                                              ; preds = %640, %634
  br label %642

642:                                              ; preds = %641, %630
  br label %643

643:                                              ; preds = %642, %624
  %644 = load double, ptr %68, align 8, !tbaa !53
  %645 = load double, ptr %83, align 8, !tbaa !53
  %646 = fsub double %644, %645
  %647 = call double @llvm.fabs.f64(double %646)
  store double %647, ptr %78, align 8, !tbaa !53
  %648 = load double, ptr %69, align 8, !tbaa !53
  %649 = load double, ptr %84, align 8, !tbaa !53
  %650 = fsub double %648, %649
  %651 = call double @llvm.fabs.f64(double %650)
  store double %651, ptr %77, align 8, !tbaa !53
  %652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %653 unwind label %679

653:                                              ; preds = %643
  %654 = load double, ptr %652, align 8, !tbaa !53
  store double %654, ptr %56, align 8, !tbaa !53
  %655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %656 unwind label %679

656:                                              ; preds = %653
  %657 = load double, ptr %655, align 8, !tbaa !53
  store double %657, ptr %57, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #7
  %658 = load double, ptr %83, align 8, !tbaa !53
  %659 = invoke noundef double @_ZSt3absd(double noundef %658)
          to label %660 unwind label %683

660:                                              ; preds = %656
  store double %659, ptr %87, align 8, !tbaa !53
  %661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %662 unwind label %683

662:                                              ; preds = %660
  %663 = load double, ptr %661, align 8, !tbaa !53
  store double %663, ptr %74, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  %664 = load i8, ptr %76, align 1, !tbaa !55, !range !61, !noundef !62
  %665 = trunc i8 %664 to i1
  br i1 %665, label %666, label %687

666:                                              ; preds = %662
  %667 = load double, ptr %83, align 8, !tbaa !53
  %668 = load ptr, ptr %26, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.HighsSolution, ptr %668, i32 0, i32 2
  %670 = load i32, ptr %64, align 4, !tbaa !9
  %671 = sext i32 %670 to i64
  %672 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %669, i64 noundef %671) #7
  store double %667, ptr %672, align 8, !tbaa !53
  %673 = load double, ptr %84, align 8, !tbaa !53
  %674 = load ptr, ptr %26, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.HighsSolution, ptr %674, i32 0, i32 3
  %676 = load i32, ptr %64, align 4, !tbaa !9
  %677 = sext i32 %676 to i64
  %678 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef %677) #7
  store double %673, ptr %678, align 8, !tbaa !53
  br label %700

679:                                              ; preds = %653, %643
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %34, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %35, align 4
  br label %708

683:                                              ; preds = %660, %656
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %34, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  br label %708

687:                                              ; preds = %662
  %688 = load double, ptr %83, align 8, !tbaa !53
  %689 = load ptr, ptr %26, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.HighsSolution, ptr %689, i32 0, i32 4
  %691 = load i32, ptr %65, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %690, i64 noundef %692) #7
  store double %688, ptr %693, align 8, !tbaa !53
  %694 = load double, ptr %84, align 8, !tbaa !53
  %695 = load ptr, ptr %26, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.HighsSolution, ptr %695, i32 0, i32 5
  %697 = load i32, ptr %65, align 4, !tbaa !9
  %698 = sext i32 %697 to i64
  %699 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %696, i64 noundef %698) #7
  store double %694, ptr %699, align 8, !tbaa !53
  br label %700

700:                                              ; preds = %687, %666
  store i32 0, ptr %39, align 4
  br label %701

701:                                              ; preds = %700, %592, %568
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  br label %702

702:                                              ; preds = %701, %537
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #7
  %703 = load i32, ptr %39, align 4
  switch i32 %703, label %968 [
    i32 0, label %704
    i32 13, label %705
  ]

704:                                              ; preds = %702
  br label %705

705:                                              ; preds = %704, %702
  %706 = load i32, ptr %75, align 4, !tbaa !9
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr %75, align 4, !tbaa !9
  br label %426, !llvm.loop !63

708:                                              ; preds = %683, %679
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #7
  br label %709

709:                                              ; preds = %708, %569
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  br label %710

710:                                              ; preds = %709, %492
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  br label %896

711:                                              ; preds = %436
  %712 = load ptr, ptr %14, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %712, i32 0, i32 130
  %714 = load i32, ptr %62, align 4, !tbaa !9
  %715 = load double, ptr %58, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %713, i32 noundef 1, ptr noundef @.str.83, i32 noundef %714, double noundef %715)
          to label %716 unwind label %744

716:                                              ; preds = %711
  %717 = load ptr, ptr %14, align 8, !tbaa !5
  %718 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %717, i32 0, i32 130
  %719 = load i32, ptr %60, align 4, !tbaa !9
  %720 = load double, ptr %56, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %718, i32 noundef 1, ptr noundef @.str.84, i32 noundef %719, double noundef %720)
          to label %721 unwind label %744

721:                                              ; preds = %716
  %722 = load ptr, ptr %14, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %722, i32 0, i32 130
  %724 = load i32, ptr %63, align 4, !tbaa !9
  %725 = load double, ptr %59, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %723, i32 noundef 1, ptr noundef @.str.85, i32 noundef %724, double noundef %725)
          to label %726 unwind label %744

726:                                              ; preds = %721
  %727 = load ptr, ptr %14, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %727, i32 0, i32 130
  %729 = load i32, ptr %61, align 4, !tbaa !9
  %730 = load double, ptr %57, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %728, i32 noundef 1, ptr noundef @.str.86, i32 noundef %729, double noundef %730)
          to label %731 unwind label %744

731:                                              ; preds = %726
  call void @llvm.lifetime.start.p0(i64 24, ptr %88) #7
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #7
  %732 = load ptr, ptr %15, align 8, !tbaa !5
  %733 = getelementptr inbounds %class.HighsLp, ptr %732, i32 0, i32 1
  %734 = load i32, ptr %733, align 4, !tbaa !47
  %735 = sext i32 %734 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  store double 0.000000e+00, ptr %89, align 8, !tbaa !53
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %735, ptr noundef nonnull align 8 dereferenceable(8) %89)
          to label %736 unwind label %748

736:                                              ; preds = %731
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  store double 0.000000e+00, ptr %37, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #7
  store i32 0, ptr %90, align 4, !tbaa !9
  br label %737

737:                                              ; preds = %836, %736
  %738 = load i32, ptr %90, align 4, !tbaa !9
  %739 = load ptr, ptr %15, align 8, !tbaa !5
  %740 = getelementptr inbounds %class.HighsLp, ptr %739, i32 0, i32 0
  %741 = load i32, ptr %740, align 8, !tbaa !13
  %742 = icmp slt i32 %738, %741
  br i1 %742, label %752, label %743

743:                                              ; preds = %737
  store i32 14, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  br label %843

744:                                              ; preds = %726, %721, %716, %711
  %745 = landingpad { ptr, i32 }
          cleanup
  %746 = extractvalue { ptr, i32 } %745, 0
  store ptr %746, ptr %34, align 8
  %747 = extractvalue { ptr, i32 } %745, 1
  store i32 %747, ptr %35, align 4
  br label %896

748:                                              ; preds = %731
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %34, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  br label %895

752:                                              ; preds = %737
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #7
  %753 = load ptr, ptr %15, align 8, !tbaa !5
  %754 = getelementptr inbounds %class.HighsLp, ptr %753, i32 0, i32 2
  %755 = load i32, ptr %90, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %754, i64 noundef %756) #7
  %758 = load double, ptr %757, align 8, !tbaa !53
  store double %758, ptr %91, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #7
  %759 = load ptr, ptr %15, align 8, !tbaa !5
  %760 = getelementptr inbounds %class.HighsLp, ptr %759, i32 0, i32 7
  %761 = getelementptr inbounds %class.HighsSparseMatrix, ptr %760, i32 0, i32 3
  %762 = load i32, ptr %90, align 4, !tbaa !9
  %763 = sext i32 %762 to i64
  %764 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %761, i64 noundef %763) #7
  %765 = load i32, ptr %764, align 4, !tbaa !9
  store i32 %765, ptr %92, align 4, !tbaa !9
  br label %766

766:                                              ; preds = %820, %752
  %767 = load i32, ptr %92, align 4, !tbaa !9
  %768 = load ptr, ptr %15, align 8, !tbaa !5
  %769 = getelementptr inbounds %class.HighsLp, ptr %768, i32 0, i32 7
  %770 = getelementptr inbounds %class.HighsSparseMatrix, ptr %769, i32 0, i32 3
  %771 = load i32, ptr %90, align 4, !tbaa !9
  %772 = add nsw i32 %771, 1
  %773 = sext i32 %772 to i64
  %774 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %770, i64 noundef %773) #7
  %775 = load i32, ptr %774, align 4, !tbaa !9
  %776 = icmp slt i32 %767, %775
  br i1 %776, label %778, label %777

777:                                              ; preds = %766
  store i32 17, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  br label %823

778:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #7
  %779 = load ptr, ptr %15, align 8, !tbaa !5
  %780 = getelementptr inbounds %class.HighsLp, ptr %779, i32 0, i32 7
  %781 = getelementptr inbounds %class.HighsSparseMatrix, ptr %780, i32 0, i32 5
  %782 = load i32, ptr %92, align 4, !tbaa !9
  %783 = sext i32 %782 to i64
  %784 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %781, i64 noundef %783) #7
  %785 = load i32, ptr %784, align 4, !tbaa !9
  store i32 %785, ptr %93, align 4, !tbaa !9
  %786 = load ptr, ptr %26, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.HighsSolution, ptr %786, i32 0, i32 2
  %788 = load i32, ptr %90, align 4, !tbaa !9
  %789 = sext i32 %788 to i64
  %790 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %787, i64 noundef %789) #7
  %791 = load double, ptr %790, align 8, !tbaa !53
  %792 = load ptr, ptr %15, align 8, !tbaa !5
  %793 = getelementptr inbounds %class.HighsLp, ptr %792, i32 0, i32 7
  %794 = getelementptr inbounds %class.HighsSparseMatrix, ptr %793, i32 0, i32 6
  %795 = load i32, ptr %92, align 4, !tbaa !9
  %796 = sext i32 %795 to i64
  %797 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %794, i64 noundef %796) #7
  %798 = load double, ptr %797, align 8, !tbaa !53
  %799 = load i32, ptr %93, align 4, !tbaa !9
  %800 = sext i32 %799 to i64
  %801 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %800) #7
  %802 = load double, ptr %801, align 8, !tbaa !53
  %803 = call double @llvm.fmuladd.f64(double %791, double %798, double %802)
  store double %803, ptr %801, align 8, !tbaa !53
  %804 = load ptr, ptr %26, align 8, !tbaa !5
  %805 = getelementptr inbounds %struct.HighsSolution, ptr %804, i32 0, i32 5
  %806 = load i32, ptr %93, align 4, !tbaa !9
  %807 = sext i32 %806 to i64
  %808 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %805, i64 noundef %807) #7
  %809 = load double, ptr %808, align 8, !tbaa !53
  %810 = load ptr, ptr %15, align 8, !tbaa !5
  %811 = getelementptr inbounds %class.HighsLp, ptr %810, i32 0, i32 7
  %812 = getelementptr inbounds %class.HighsSparseMatrix, ptr %811, i32 0, i32 6
  %813 = load i32, ptr %92, align 4, !tbaa !9
  %814 = sext i32 %813 to i64
  %815 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %812, i64 noundef %814) #7
  %816 = load double, ptr %815, align 8, !tbaa !53
  %817 = load double, ptr %91, align 8, !tbaa !53
  %818 = fneg double %809
  %819 = call double @llvm.fmuladd.f64(double %818, double %816, double %817)
  store double %819, ptr %91, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #7
  br label %820

820:                                              ; preds = %778
  %821 = load i32, ptr %92, align 4, !tbaa !9
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr %92, align 4, !tbaa !9
  br label %766, !llvm.loop !64

823:                                              ; preds = %777
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #7
  %824 = load double, ptr %91, align 8, !tbaa !53
  %825 = load ptr, ptr %26, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.HighsSolution, ptr %825, i32 0, i32 3
  %827 = load i32, ptr %90, align 4, !tbaa !9
  %828 = sext i32 %827 to i64
  %829 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %826, i64 noundef %828) #7
  %830 = load double, ptr %829, align 8, !tbaa !53
  %831 = fsub double %824, %830
  %832 = call double @llvm.fabs.f64(double %831)
  store double %832, ptr %94, align 8, !tbaa !53
  %833 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %834 unwind label %839

834:                                              ; preds = %823
  %835 = load double, ptr %833, align 8, !tbaa !53
  store double %835, ptr %37, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #7
  br label %836

836:                                              ; preds = %834
  %837 = load i32, ptr %90, align 4, !tbaa !9
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr %90, align 4, !tbaa !9
  br label %737, !llvm.loop !65

839:                                              ; preds = %823
  %840 = landingpad { ptr, i32 }
          cleanup
  %841 = extractvalue { ptr, i32 } %840, 0
  store ptr %841, ptr %34, align 8
  %842 = extractvalue { ptr, i32 } %840, 1
  store i32 %842, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  br label %895

843:                                              ; preds = %743
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #7
  store double 0.000000e+00, ptr %95, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #7
  store i32 0, ptr %96, align 4, !tbaa !9
  br label %844

844:                                              ; preds = %867, %843
  %845 = load i32, ptr %96, align 4, !tbaa !9
  %846 = load ptr, ptr %15, align 8, !tbaa !5
  %847 = getelementptr inbounds %class.HighsLp, ptr %846, i32 0, i32 1
  %848 = load i32, ptr %847, align 4, !tbaa !47
  %849 = icmp slt i32 %845, %848
  br i1 %849, label %851, label %850

850:                                              ; preds = %844
  store i32 20, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  br label %874

851:                                              ; preds = %844
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #7
  %852 = load i32, ptr %96, align 4, !tbaa !9
  %853 = sext i32 %852 to i64
  %854 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %853) #7
  %855 = load double, ptr %854, align 8, !tbaa !53
  %856 = load ptr, ptr %26, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.HighsSolution, ptr %856, i32 0, i32 4
  %858 = load i32, ptr %96, align 4, !tbaa !9
  %859 = sext i32 %858 to i64
  %860 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %857, i64 noundef %859) #7
  %861 = load double, ptr %860, align 8, !tbaa !53
  %862 = fsub double %855, %861
  %863 = call double @llvm.fabs.f64(double %862)
  store double %863, ptr %97, align 8, !tbaa !53
  %864 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %865 unwind label %870

865:                                              ; preds = %851
  %866 = load double, ptr %864, align 8, !tbaa !53
  store double %866, ptr %95, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  br label %867

867:                                              ; preds = %865
  %868 = load i32, ptr %96, align 4, !tbaa !9
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr %96, align 4, !tbaa !9
  br label %844, !llvm.loop !66

870:                                              ; preds = %851
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %34, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  br label %894

874:                                              ; preds = %850
  %875 = load ptr, ptr %14, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %875, i32 0, i32 130
  %877 = load double, ptr %95, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %876, i32 noundef 1, ptr noundef @.str.87, double noundef %877)
          to label %878 unwind label %889

878:                                              ; preds = %874
  %879 = load ptr, ptr %14, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %879, i32 0, i32 130
  %881 = load double, ptr %37, align 8, !tbaa !53
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %880, i32 noundef 1, ptr noundef @.str.88, double noundef %881)
          to label %882 unwind label %889

882:                                              ; preds = %878
  %883 = load double, ptr %74, align 8, !tbaa !53
  %884 = fcmp ogt double %883, 1.000000e+25
  br i1 %884, label %885, label %893

885:                                              ; preds = %882
  %886 = load double, ptr %74, align 8, !tbaa !53
  %887 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.89, double noundef %886)
          to label %888 unwind label %889

888:                                              ; preds = %885
  br label %893

889:                                              ; preds = %885, %878, %874
  %890 = landingpad { ptr, i32 }
          cleanup
  %891 = extractvalue { ptr, i32 } %890, 0
  store ptr %891, ptr %34, align 8
  %892 = extractvalue { ptr, i32 } %890, 1
  store i32 %892, ptr %35, align 4
  br label %894

893:                                              ; preds = %888, %882
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %897

894:                                              ; preds = %889, %870
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #7
  br label %895

895:                                              ; preds = %894, %839, %748
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #7
  br label %896

896:                                              ; preds = %895, %744, %710
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #7
  br label %960

897:                                              ; preds = %893, %422
  %898 = load i32, ptr %46, align 4, !tbaa !9
  %899 = load i32, ptr %19, align 4, !tbaa !9
  %900 = icmp eq i32 %898, %899
  br i1 %900, label %901, label %902

901:                                              ; preds = %897
  br label %904

902:                                              ; preds = %897
  call void @__assert_fail(ptr noundef @.str.90, ptr noundef @.str.52, i32 noundef 1063, ptr noundef @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #8
  unreachable

903:                                              ; No predecessors!
  br label %904

904:                                              ; preds = %903, %901
  %905 = load i32, ptr %36, align 4, !tbaa !9
  %906 = load i32, ptr %18, align 4, !tbaa !9
  %907 = icmp eq i32 %905, %906
  br i1 %907, label %908, label %909

908:                                              ; preds = %904
  br label %911

909:                                              ; preds = %904
  call void @__assert_fail(ptr noundef @.str.91, ptr noundef @.str.52, i32 noundef 1064, ptr noundef @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #8
  unreachable

910:                                              ; No predecessors!
  br label %911

911:                                              ; preds = %910, %908
  %912 = load ptr, ptr %15, align 8, !tbaa !5
  %913 = getelementptr inbounds %class.HighsLp, ptr %912, i32 0, i32 8
  %914 = load i32, ptr %913, align 8, !tbaa !67
  %915 = icmp eq i32 %914, -1
  br i1 %915, label %916, label %955

916:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #7
  store i32 0, ptr %98, align 4, !tbaa !9
  br label %917

917:                                              ; preds = %932, %916
  %918 = load i32, ptr %98, align 4, !tbaa !9
  %919 = load ptr, ptr %15, align 8, !tbaa !5
  %920 = getelementptr inbounds %class.HighsLp, ptr %919, i32 0, i32 0
  %921 = load i32, ptr %920, align 8, !tbaa !13
  %922 = icmp slt i32 %918, %921
  br i1 %922, label %924, label %923

923:                                              ; preds = %917
  store i32 23, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  br label %935

924:                                              ; preds = %917
  %925 = load ptr, ptr %26, align 8, !tbaa !5
  %926 = getelementptr inbounds %struct.HighsSolution, ptr %925, i32 0, i32 3
  %927 = load i32, ptr %98, align 4, !tbaa !9
  %928 = sext i32 %927 to i64
  %929 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %926, i64 noundef %928) #7
  %930 = load double, ptr %929, align 8, !tbaa !53
  %931 = fmul double %930, -1.000000e+00
  store double %931, ptr %929, align 8, !tbaa !53
  br label %932

932:                                              ; preds = %924
  %933 = load i32, ptr %98, align 4, !tbaa !9
  %934 = add nsw i32 %933, 1
  store i32 %934, ptr %98, align 4, !tbaa !9
  br label %917, !llvm.loop !68

935:                                              ; preds = %923
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #7
  store i32 0, ptr %99, align 4, !tbaa !9
  br label %936

936:                                              ; preds = %951, %935
  %937 = load i32, ptr %99, align 4, !tbaa !9
  %938 = load ptr, ptr %15, align 8, !tbaa !5
  %939 = getelementptr inbounds %class.HighsLp, ptr %938, i32 0, i32 1
  %940 = load i32, ptr %939, align 4, !tbaa !47
  %941 = icmp slt i32 %937, %940
  br i1 %941, label %943, label %942

942:                                              ; preds = %936
  store i32 26, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #7
  br label %954

943:                                              ; preds = %936
  %944 = load ptr, ptr %26, align 8, !tbaa !5
  %945 = getelementptr inbounds %struct.HighsSolution, ptr %944, i32 0, i32 5
  %946 = load i32, ptr %99, align 4, !tbaa !9
  %947 = sext i32 %946 to i64
  %948 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %945, i64 noundef %947) #7
  %949 = load double, ptr %948, align 8, !tbaa !53
  %950 = fmul double %949, -1.000000e+00
  store double %950, ptr %948, align 8, !tbaa !53
  br label %951

951:                                              ; preds = %943
  %952 = load i32, ptr %99, align 4, !tbaa !9
  %953 = add nsw i32 %952, 1
  store i32 %953, ptr %99, align 4, !tbaa !9
  br label %936, !llvm.loop !69

954:                                              ; preds = %942
  br label %955

955:                                              ; preds = %954, %911
  %956 = load ptr, ptr %26, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.HighsSolution, ptr %956, i32 0, i32 0
  store i8 1, ptr %957, align 8, !tbaa !70
  %958 = load ptr, ptr %26, align 8, !tbaa !5
  %959 = getelementptr inbounds %struct.HighsSolution, ptr %958, i32 0, i32 1
  store i8 1, ptr %959, align 1, !tbaa !72
  store i32 1, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  ret i32 0

960:                                              ; preds = %896, %437, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %961

961:                                              ; preds = %960, %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %962

962:                                              ; preds = %961, %147
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %963

963:                                              ; preds = %962
  %964 = load ptr, ptr %34, align 8
  %965 = load i32, ptr %35, align 4
  %966 = insertvalue { ptr, i32 } poison, ptr %964, 0
  %967 = insertvalue { ptr, i32 } %966, i32 %965, 1
  resume { ptr, i32 } %967

968:                                              ; preds = %702, %404
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #4

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

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

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


; 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::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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 }

@.str.52 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [27 x i8], align 1
@__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution = external hidden unnamed_addr constant [352 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [25 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 dso_local void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #5

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution(ptr noundef nonnull align 8 dereferenceable(1020) %0, ptr noundef nonnull align 8 dereferenceable(920) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef %4, i32 noundef %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %10, i32 noundef %11, ptr noundef nonnull align 8 dereferenceable(104) %12) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %14 = alloca %"class.std::vector.3", align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca %"class.std::vector.3", align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = getelementptr inbounds i8, ptr %12, i64 8
  %34 = load i32, ptr %1, align 8, !tbaa !5
  %35 = sext i32 %34 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %35)
  %36 = getelementptr inbounds i8, ptr %12, i64 56
  %37 = getelementptr inbounds i8, ptr %1, i64 4
  %38 = load i32, ptr %37, align 4, !tbaa !43
  %39 = sext i32 %38 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %39)
  %40 = getelementptr inbounds i8, ptr %12, i64 32
  %41 = load i32, ptr %1, align 8, !tbaa !5
  %42 = sext i32 %41 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %42)
  %43 = getelementptr inbounds i8, ptr %12, i64 80
  %44 = load i32, ptr %37, align 4, !tbaa !43
  %45 = sext i32 %44 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %45)
  %46 = getelementptr inbounds i8, ptr %0, i64 280
  %47 = load double, ptr %46, align 8, !tbaa !44
  %48 = getelementptr inbounds i8, ptr %0, i64 288
  %49 = load double, ptr %48, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  %50 = load i32, ptr %37, align 4, !tbaa !43
  %51 = sext i32 %50 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  store double 0.000000e+00, ptr %15, align 8, !tbaa !50
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %51, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %52 unwind label %56

52:                                               ; preds = %13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  %53 = load i32, ptr %37, align 4, !tbaa !43
  %54 = icmp eq i32 %53, %5
  br i1 %54, label %58, label %55

55:                                               ; preds = %52
  call void @__assert_fail(ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.52, i32 noundef 786, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #9
  unreachable

56:                                               ; preds = %13
  %57 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %393

58:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  store double 0.000000e+00, ptr %16, align 8, !tbaa !50
  %59 = load i32, ptr %1, align 8, !tbaa !5
  %60 = icmp sgt i32 %59, 0
  br i1 %60, label %.lr.ph330, label %._crit_edge331

.lr.ph330:                                        ; preds = %58
  %61 = getelementptr inbounds i8, ptr %1, i64 8
  %62 = getelementptr inbounds i8, ptr %1, i64 144
  %63 = getelementptr inbounds i8, ptr %1, i64 192
  %64 = getelementptr inbounds i8, ptr %1, i64 216
  br label %69

._crit_edge331.loopexit:                          ; preds = %._crit_edge
  %.pre = load i32, ptr %37, align 4, !tbaa !43
  br label %._crit_edge331

._crit_edge331:                                   ; preds = %._crit_edge331.loopexit, %58
  %65 = phi i32 [ %5, %58 ], [ %.pre, %._crit_edge331.loopexit ]
  %.lcssa324 = phi i32 [ %59, %58 ], [ %96, %._crit_edge331.loopexit ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  store double 0.000000e+00, ptr %18, align 8, !tbaa !50
  %66 = icmp sgt i32 %65, 0
  br i1 %66, label %.lr.ph337, label %._crit_edge338

.lr.ph337:                                        ; preds = %._crit_edge331
  %67 = getelementptr inbounds i8, ptr %1, i64 80
  %68 = getelementptr inbounds i8, ptr %1, i64 104
  br label %119

69:                                               ; preds = %.lr.ph330, %._crit_edge
  %indvars.iv381 = phi i64 [ 0, %.lr.ph330 ], [ %indvars.iv.next382, %._crit_edge ]
  %70 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv381) #8
  %71 = load double, ptr %70, align 8, !tbaa !50
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %indvars.iv381) #8
  %73 = load double, ptr %72, align 8, !tbaa !50
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %indvars.iv381) #8
  %75 = load i32, ptr %74, align 4, !tbaa !51
  %indvars.iv.next382 = add nuw nsw i64 %indvars.iv381, 1
  %76 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %indvars.iv.next382) #8
  %77 = load i32, ptr %76, align 4, !tbaa !51
  %78 = icmp slt i32 %75, %77
  br i1 %78, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %69
  %79 = sext i32 %75 to i64
  br label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %69
  %.0274.lcssa = phi double [ %73, %69 ], [ %112, %.lr.ph ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv381) #8
  %81 = load double, ptr %80, align 8, !tbaa !50
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv381) #8
  %83 = load double, ptr %82, align 8, !tbaa !50
  %84 = fsub double %81, %83
  %85 = fsub double %.0274.lcssa, %84
  %86 = call double @llvm.fabs.f64(double %85)
  store double %86, ptr %17, align 8, !tbaa !50
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %16)
  %88 = load double, ptr %87, align 8, !tbaa !50
  store double %88, ptr %16, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv381) #8
  %90 = load double, ptr %89, align 8, !tbaa !50
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv381) #8
  %92 = load double, ptr %91, align 8, !tbaa !50
  %93 = fsub double %90, %92
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv381) #8
  store double %71, ptr %94, align 8, !tbaa !50
  %95 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %indvars.iv381) #8
  store double %93, ptr %95, align 8, !tbaa !50
  %96 = load i32, ptr %1, align 8, !tbaa !5
  %97 = sext i32 %96 to i64
  %98 = icmp slt i64 %indvars.iv.next382, %97
  br i1 %98, label %69, label %._crit_edge331.loopexit, !llvm.loop !52

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ %79, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %.0274326 = phi double [ %73, %.lr.ph.preheader ], [ %112, %.lr.ph ]
  %99 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef %indvars.iv) #8
  %100 = load i32, ptr %99, align 4, !tbaa !51
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %indvars.iv) #8
  %102 = load double, ptr %101, align 8, !tbaa !50
  %103 = sext i32 %100 to i64
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %103) #8
  %105 = load double, ptr %104, align 8, !tbaa !50
  %106 = call double @llvm.fmuladd.f64(double %71, double %102, double %105)
  store double %106, ptr %104, align 8, !tbaa !50
  %107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %103) #8
  %108 = load double, ptr %107, align 8, !tbaa !50
  %109 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %indvars.iv) #8
  %110 = load double, ptr %109, align 8, !tbaa !50
  %111 = fneg double %108
  %112 = call double @llvm.fmuladd.f64(double %111, double %110, double %.0274326)
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %indvars.iv.next382) #8
  %114 = load i32, ptr %113, align 4, !tbaa !51
  %115 = sext i32 %114 to i64
  %116 = icmp slt i64 %indvars.iv.next, %115
  br i1 %116, label %.lr.ph, label %._crit_edge, !llvm.loop !54

._crit_edge338:                                   ; preds = %169, %._crit_edge331
  %.0276.lcssa = phi i32 [ 0, %._crit_edge331 ], [ %.1277, %169 ]
  %.0266.lcssa = phi i32 [ %.lcssa324, %._crit_edge331 ], [ %.2268, %169 ]
  %117 = getelementptr inbounds i8, ptr %0, i64 896
  %118 = load double, ptr %16, align 8, !tbaa !50
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.79, double noundef %118)
          to label %173 unwind label %186

119:                                              ; preds = %.lr.ph337, %169
  %indvars.iv384 = phi i64 [ 0, %.lr.ph337 ], [ %indvars.iv.next385, %169 ]
  %.0266335 = phi i32 [ %.lcssa324, %.lr.ph337 ], [ %.2268, %169 ]
  %.0276334 = phi i32 [ 0, %.lr.ph337 ], [ %.1277, %169 ]
  %120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef %indvars.iv384) #8
  %121 = load double, ptr %120, align 8, !tbaa !50
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %indvars.iv384) #8
  %123 = load double, ptr %122, align 8, !tbaa !50
  %124 = fcmp oeq double %121, 0xFFF0000000000000
  %125 = fcmp oeq double %123, 0x7FF0000000000000
  %or.cond = select i1 %124, i1 %125, i1 false
  br i1 %or.cond, label %126, label %131

126:                                              ; preds = %119
  %127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv384) #8
  %128 = load double, ptr %127, align 8, !tbaa !50
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %indvars.iv384) #8
  store double %128, ptr %129, align 8, !tbaa !50
  %130 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %indvars.iv384) #8
  store double 0.000000e+00, ptr %130, align 8, !tbaa !50
  br label %169

131:                                              ; preds = %119
  %132 = fcmp one double %121, 0xFFF0000000000000
  %133 = fcmp one double %123, 0x7FF0000000000000
  %or.cond3 = select i1 %132, i1 %133, i1 false
  %134 = fcmp olt double %121, %123
  %or.cond318 = select i1 %or.cond3, i1 %134, i1 false
  %135 = sext i32 %.0276334 to i64
  br i1 %or.cond318, label %136, label %151

136:                                              ; preds = %131
  %137 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %135) #8
  %138 = load i8, ptr %137, align 1, !tbaa !55
  %139 = icmp eq i8 %138, 61
  br i1 %139, label %141, label %140

140:                                              ; preds = %136
  call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.52, i32 noundef 823, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #9
  unreachable

141:                                              ; preds = %136
  %142 = sext i32 %.0266335 to i64
  %143 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %142) #8
  %144 = load double, ptr %143, align 8, !tbaa !50
  %145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %142) #8
  %146 = load double, ptr %145, align 8, !tbaa !50
  %147 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %142) #8
  %148 = load double, ptr %147, align 8, !tbaa !50
  %149 = fsub double %146, %148
  %150 = add nsw i32 %.0266335, 1
  br label %159

151:                                              ; preds = %131
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %135) #8
  %153 = load double, ptr %152, align 8, !tbaa !50
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %135) #8
  %155 = load double, ptr %154, align 8, !tbaa !50
  %156 = fsub double %153, %155
  %157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %135) #8
  %158 = load double, ptr %157, align 8, !tbaa !50
  br label %159

159:                                              ; preds = %151, %141
  %.0305 = phi double [ %149, %141 ], [ %158, %151 ]
  %.0304 = phi double [ %144, %141 ], [ %156, %151 ]
  %.1267 = phi i32 [ %150, %141 ], [ %.0266335, %151 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  %160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv384) #8
  %161 = load double, ptr %160, align 8, !tbaa !50
  %162 = fsub double %.0304, %161
  %163 = call double @llvm.fabs.f64(double %162)
  store double %163, ptr %19, align 8, !tbaa !50
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
  %165 = load double, ptr %164, align 8, !tbaa !50
  store double %165, ptr %18, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  %166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %indvars.iv384) #8
  store double %.0304, ptr %166, align 8, !tbaa !50
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %indvars.iv384) #8
  store double %.0305, ptr %167, align 8, !tbaa !50
  %168 = add nsw i32 %.0276334, 1
  br label %169

169:                                              ; preds = %159, %126
  %.1277 = phi i32 [ %.0276334, %126 ], [ %168, %159 ]
  %.2268 = phi i32 [ %.0266335, %126 ], [ %.1267, %159 ]
  %indvars.iv.next385 = add nuw nsw i64 %indvars.iv384, 1
  %170 = load i32, ptr %37, align 4, !tbaa !43
  %171 = sext i32 %170 to i64
  %172 = icmp slt i64 %indvars.iv.next385, %171
  br i1 %172, label %119, label %._crit_edge338, !llvm.loop !56

173:                                              ; preds = %._crit_edge338
  %174 = load double, ptr %18, align 8, !tbaa !50
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.80, double noundef %174)
          to label %175 unwind label %186

175:                                              ; preds = %173
  %176 = icmp eq i32 %11, 7
  br i1 %176, label %177, label %365

177:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  store double 0.000000e+00, ptr %20, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  store double 0.000000e+00, ptr %21, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  store double 0.000000e+00, ptr %22, align 8, !tbaa !50
  %178 = load i32, ptr %1, align 8, !tbaa !5
  %179 = load i32, ptr %37, align 4, !tbaa !43
  %180 = add nsw i32 %179, %178
  %181 = icmp sgt i32 %180, 0
  br i1 %181, label %.lr.ph351, label %._crit_edge352

.lr.ph351:                                        ; preds = %177
  %182 = getelementptr inbounds i8, ptr %1, i64 80
  %183 = getelementptr inbounds i8, ptr %1, i64 104
  %184 = getelementptr inbounds i8, ptr %1, i64 32
  %185 = getelementptr inbounds i8, ptr %1, i64 56
  br label %188

._crit_edge352:                                   ; preds = %276, %177
  %.0302.lcssa = phi double [ 0.000000e+00, %177 ], [ %.1303, %276 ]
  %.0300.lcssa = phi double [ 0.000000e+00, %177 ], [ %.1301, %276 ]
  %.0295.lcssa = phi i32 [ 0, %177 ], [ %.4299, %276 ]
  %.0291.lcssa = phi i32 [ 0, %177 ], [ %.4, %276 ]
  %.0289.lcssa = phi i32 [ 0, %177 ], [ %.1290, %276 ]
  %.0287.lcssa = phi i32 [ 0, %177 ], [ %.1288, %276 ]
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.83, i32 noundef %.0289.lcssa, double noundef %.0302.lcssa)
          to label %282 unwind label %299

186:                                              ; preds = %173, %._crit_edge338
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %392

188:                                              ; preds = %.lr.ph351, %276
  %indvars.iv387 = phi i64 [ 0, %.lr.ph351 ], [ %indvars.iv.next388, %276 ]
  %189 = phi i32 [ %178, %.lr.ph351 ], [ %277, %276 ]
  %.0285347 = phi i32 [ 0, %.lr.ph351 ], [ %.1286, %276 ]
  %.0287346 = phi i32 [ 0, %.lr.ph351 ], [ %.1288, %276 ]
  %.0289345 = phi i32 [ 0, %.lr.ph351 ], [ %.1290, %276 ]
  %.0291344 = phi i32 [ 0, %.lr.ph351 ], [ %.4, %276 ]
  %.0295343 = phi i32 [ 0, %.lr.ph351 ], [ %.4299, %276 ]
  %.0300342 = phi double [ 0.000000e+00, %.lr.ph351 ], [ %.1301, %276 ]
  %.0302341 = phi double [ 0.000000e+00, %.lr.ph351 ], [ %.1303, %276 ]
  %190 = zext i32 %189 to i64
  %191 = icmp eq i64 %indvars.iv387, %190
  br i1 %191, label %192, label %195

192:                                              ; preds = %188
  %193 = load double, ptr %20, align 8, !tbaa !50
  %194 = load double, ptr %21, align 8, !tbaa !50
  store double 0.000000e+00, ptr %20, align 8, !tbaa !50
  store double 0.000000e+00, ptr %21, align 8, !tbaa !50
  br label %195

195:                                              ; preds = %192, %188
  %.1303 = phi double [ %193, %192 ], [ %.0302341, %188 ]
  %.1301 = phi double [ %194, %192 ], [ %.0300342, %188 ]
  %.1296 = phi i32 [ 0, %192 ], [ %.0295343, %188 ]
  %.1292 = phi i32 [ 0, %192 ], [ %.0291344, %188 ]
  %.1290 = phi i32 [ %.0295343, %192 ], [ %.0289345, %188 ]
  %.1288 = phi i32 [ %.0291344, %192 ], [ %.0287346, %188 ]
  %196 = sext i32 %189 to i64
  %197 = icmp slt i64 %indvars.iv387, %196
  br i1 %197, label %198, label %208

198:                                              ; preds = %195
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef %indvars.iv387) #8
  %200 = load double, ptr %199, align 8, !tbaa !50
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %185, i64 noundef %indvars.iv387) #8
  %202 = load double, ptr %201, align 8, !tbaa !50
  %203 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv387) #8
  %204 = load double, ptr %203, align 8, !tbaa !50
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %indvars.iv387) #8
  %206 = load double, ptr %205, align 8, !tbaa !50
  %207 = trunc nuw nsw i64 %indvars.iv387 to i32
  br label %223

208:                                              ; preds = %195
  %209 = trunc nuw nsw i64 %indvars.iv387 to i32
  %210 = sub nsw i32 %209, %189
  %211 = sext i32 %210 to i64
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %211) #8
  %213 = load double, ptr %212, align 8, !tbaa !50
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %183, i64 noundef %211) #8
  %215 = load double, ptr %214, align 8, !tbaa !50
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %211) #8
  %217 = load double, ptr %216, align 8, !tbaa !50
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %211) #8
  %219 = load double, ptr %218, align 8, !tbaa !50
  %220 = icmp eq i32 %210, -37
  br i1 %220, label %221, label %223

221:                                              ; preds = %208
  %222 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.82, i32 noundef -37)
  br label %223

223:                                              ; preds = %198, %208, %221
  %.1286..1284 = phi i32 [ %207, %198 ], [ -37, %221 ], [ %210, %208 ]
  %.1286 = phi i32 [ %207, %198 ], [ %.0285347, %221 ], [ %.0285347, %208 ]
  %.0282 = phi double [ %200, %198 ], [ %213, %221 ], [ %213, %208 ]
  %.0281 = phi double [ %202, %198 ], [ %215, %221 ], [ %215, %208 ]
  %.0280 = phi double [ %204, %198 ], [ %217, %221 ], [ %217, %208 ]
  %.0279 = phi double [ %206, %198 ], [ %219, %221 ], [ %219, %208 ]
  %224 = fcmp ult double %.0282, %.0281
  br i1 %224, label %225, label %276

225:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  store double 0.000000e+00, ptr %23, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  store double 0.000000e+00, ptr %24, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  %226 = fsub double %.0282, %.0280
  store double %226, ptr %25, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  %227 = fsub double %.0280, %.0281
  store double %227, ptr %26, align 8, !tbaa !50
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26)
  %229 = load double, ptr %228, align 8, !tbaa !50
  %230 = call double @llvm.fabs.f64(double %229)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  %231 = fadd double %47, %.0282
  %232 = fcmp ugt double %.0280, %231
  %233 = fsub double %.0281, %47
  %234 = fcmp ult double %.0280, %233
  %brmerge = or i1 %232, %234
  br i1 %brmerge, label %235, label %275

235:                                              ; preds = %225
  br i1 %232, label %238, label %236

236:                                              ; preds = %235
  %237 = fneg double %.0279
  br label %241

238:                                              ; preds = %235
  br i1 %234, label %239, label %241

239:                                              ; preds = %238
  %240 = call double @llvm.fabs.f64(double %.0279)
  br label %241

241:                                              ; preds = %238, %239, %236
  %.0272 = phi double [ %237, %236 ], [ %240, %239 ], [ %.0279, %238 ]
  %242 = fcmp ugt double %.0272, %49
  br i1 %242, label %243, label %275

243:                                              ; preds = %241
  %244 = fcmp olt double %230, %.0272
  br i1 %244, label %245, label %256

245:                                              ; preds = %243
  %246 = add nsw i32 %.1296, 1
  %247 = fcmp ogt double %.0279, 0.000000e+00
  br i1 %247, label %248, label %252

248:                                              ; preds = %245
  %249 = fcmp olt double %.0280, %.0282
  br i1 %249, label %.sink.split, label %250

250:                                              ; preds = %248
  %251 = fadd double %.0282, 0.000000e+00
  br label %.sink.split

252:                                              ; preds = %245
  %253 = fcmp olt double %.0280, %.0281
  br i1 %253, label %.sink.split, label %254

254:                                              ; preds = %252
  %255 = fadd double %.0281, 0.000000e+00
  br label %.sink.split

256:                                              ; preds = %243
  %257 = add nsw i32 %.1292, 1
  br i1 %232, label %258, label %.sink.split

258:                                              ; preds = %256
  br i1 %234, label %259, label %.sink.split

259:                                              ; preds = %258
  %260 = fcmp ogt double %.0279, 0.000000e+00
  %. = select i1 %260, double 0.000000e+00, double -0.000000e+00
  br label %.sink.split

.sink.split:                                      ; preds = %259, %258, %256, %252, %248, %250, %254
  %.2297 = phi i32 [ %246, %250 ], [ %246, %254 ], [ %246, %248 ], [ %246, %252 ], [ %.1296, %256 ], [ %.1296, %258 ], [ %.1296, %259 ]
  %.2293 = phi i32 [ %.1292, %250 ], [ %.1292, %254 ], [ %.1292, %248 ], [ %.1292, %252 ], [ %257, %256 ], [ %257, %258 ], [ %257, %259 ]
  %.0270 = phi double [ %251, %250 ], [ %255, %254 ], [ %.0282, %248 ], [ %.0281, %252 ], [ %.0280, %256 ], [ %.0280, %258 ], [ %.0280, %259 ]
  %.0269 = phi double [ %.0279, %250 ], [ %.0279, %254 ], [ %.0279, %248 ], [ %.0279, %252 ], [ -0.000000e+00, %256 ], [ 0.000000e+00, %258 ], [ %., %259 ]
  %261 = fsub double %.0280, %.0270
  %262 = call double @llvm.fabs.f64(double %261)
  store double %262, ptr %24, align 8, !tbaa !50
  %263 = fsub double %.0279, %.0269
  %264 = call double @llvm.fabs.f64(double %263)
  store double %264, ptr %23, align 8, !tbaa !50
  %265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %20)
  %266 = load double, ptr %265, align 8, !tbaa !50
  store double %266, ptr %20, align 8, !tbaa !50
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %21)
  %268 = load double, ptr %267, align 8, !tbaa !50
  store double %268, ptr %21, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  %269 = call noundef double @_ZSt3absd(double noundef %.0270)
  store double %269, ptr %27, align 8, !tbaa !50
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %22)
  %271 = load double, ptr %270, align 8, !tbaa !50
  store double %271, ptr %22, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  %.412 = select i1 %197, ptr %33, ptr %36
  %.413 = select i1 %197, ptr %40, ptr %43
  %272 = sext i32 %.1286..1284 to i64
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %.412, i64 noundef %272) #8
  store double %.0270, ptr %273, align 8, !tbaa !50
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %.413, i64 noundef %272) #8
  store double %.0269, ptr %274, align 8, !tbaa !50
  br label %275

275:                                              ; preds = %.sink.split, %241, %225
  %.3298 = phi i32 [ %.1296, %225 ], [ %.1296, %241 ], [ %.2297, %.sink.split ]
  %.3294 = phi i32 [ %.1292, %225 ], [ %.1292, %241 ], [ %.2293, %.sink.split ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %276

276:                                              ; preds = %223, %275
  %.4299 = phi i32 [ %.3298, %275 ], [ %.1296, %223 ]
  %.4 = phi i32 [ %.3294, %275 ], [ %.1292, %223 ]
  %indvars.iv.next388 = add nuw nsw i64 %indvars.iv387, 1
  %277 = load i32, ptr %1, align 8, !tbaa !5
  %278 = load i32, ptr %37, align 4, !tbaa !43
  %279 = add nsw i32 %278, %277
  %280 = sext i32 %279 to i64
  %281 = icmp slt i64 %indvars.iv.next388, %280
  br i1 %281, label %188, label %._crit_edge352, !llvm.loop !57

282:                                              ; preds = %._crit_edge352
  %283 = load double, ptr %20, align 8, !tbaa !50
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.84, i32 noundef %.0295.lcssa, double noundef %283)
          to label %284 unwind label %299

284:                                              ; preds = %282
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.85, i32 noundef %.0287.lcssa, double noundef %.0300.lcssa)
          to label %285 unwind label %299

285:                                              ; preds = %284
  %286 = load double, ptr %21, align 8, !tbaa !50
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.86, i32 noundef %.0291.lcssa, double noundef %286)
          to label %287 unwind label %299

287:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #8
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  %288 = load i32, ptr %37, align 4, !tbaa !43
  %289 = sext i32 %288 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  store double 0.000000e+00, ptr %29, align 8, !tbaa !50
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %289, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %290 unwind label %301

290:                                              ; preds = %287
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  store double 0.000000e+00, ptr %16, align 8, !tbaa !50
  %291 = load i32, ptr %1, align 8, !tbaa !5
  %292 = icmp sgt i32 %291, 0
  br i1 %292, label %.lr.ph368, label %._crit_edge369

.lr.ph368:                                        ; preds = %290
  %293 = getelementptr inbounds i8, ptr %1, i64 8
  %294 = getelementptr inbounds i8, ptr %1, i64 144
  %295 = getelementptr inbounds i8, ptr %1, i64 192
  %296 = getelementptr inbounds i8, ptr %1, i64 216
  br label %303

._crit_edge369:                                   ; preds = %._crit_edge363, %290
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #8
  store double 0.000000e+00, ptr %31, align 8, !tbaa !50
  %297 = load i32, ptr %37, align 4, !tbaa !43
  %298 = icmp sgt i32 %297, 0
  br i1 %298, label %.lr.ph372, label %._crit_edge373

299:                                              ; preds = %285, %284, %282, %._crit_edge352
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %364

301:                                              ; preds = %287
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  br label %363

303:                                              ; preds = %.lr.ph368, %._crit_edge363
  %indvars.iv393 = phi i64 [ 0, %.lr.ph368 ], [ %indvars.iv.next394, %._crit_edge363 ]
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %293, i64 noundef %indvars.iv393) #8
  %305 = load double, ptr %304, align 8, !tbaa !50
  %306 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef %indvars.iv393) #8
  %307 = load i32, ptr %306, align 4, !tbaa !51
  %indvars.iv.next394 = add nuw nsw i64 %indvars.iv393, 1
  %308 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef %indvars.iv.next394) #8
  %309 = load i32, ptr %308, align 4, !tbaa !51
  %310 = icmp slt i32 %307, %309
  br i1 %310, label %.lr.ph362.preheader, label %._crit_edge363

.lr.ph362.preheader:                              ; preds = %303
  %311 = sext i32 %307 to i64
  br label %.lr.ph362

._crit_edge363:                                   ; preds = %.lr.ph362, %303
  %.0260.lcssa = phi double [ %305, %303 ], [ %336, %.lr.ph362 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #8
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %indvars.iv393) #8
  %313 = load double, ptr %312, align 8, !tbaa !50
  %314 = fsub double %.0260.lcssa, %313
  %315 = call double @llvm.fabs.f64(double %314)
  store double %315, ptr %30, align 8, !tbaa !50
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %16)
  %317 = load double, ptr %316, align 8, !tbaa !50
  store double %317, ptr %16, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  %318 = load i32, ptr %1, align 8, !tbaa !5
  %319 = sext i32 %318 to i64
  %320 = icmp slt i64 %indvars.iv.next394, %319
  br i1 %320, label %303, label %._crit_edge369, !llvm.loop !58

.lr.ph362:                                        ; preds = %.lr.ph362.preheader, %.lr.ph362
  %indvars.iv390 = phi i64 [ %311, %.lr.ph362.preheader ], [ %indvars.iv.next391, %.lr.ph362 ]
  %.0260359 = phi double [ %305, %.lr.ph362.preheader ], [ %336, %.lr.ph362 ]
  %321 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %295, i64 noundef %indvars.iv390) #8
  %322 = load i32, ptr %321, align 4, !tbaa !51
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv393) #8
  %324 = load double, ptr %323, align 8, !tbaa !50
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %296, i64 noundef %indvars.iv390) #8
  %326 = load double, ptr %325, align 8, !tbaa !50
  %327 = sext i32 %322 to i64
  %328 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %327) #8
  %329 = load double, ptr %328, align 8, !tbaa !50
  %330 = call double @llvm.fmuladd.f64(double %324, double %326, double %329)
  store double %330, ptr %328, align 8, !tbaa !50
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %327) #8
  %332 = load double, ptr %331, align 8, !tbaa !50
  %333 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %296, i64 noundef %indvars.iv390) #8
  %334 = load double, ptr %333, align 8, !tbaa !50
  %335 = fneg double %332
  %336 = call double @llvm.fmuladd.f64(double %335, double %334, double %.0260359)
  %indvars.iv.next391 = add nsw i64 %indvars.iv390, 1
  %337 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef %indvars.iv.next394) #8
  %338 = load i32, ptr %337, align 4, !tbaa !51
  %339 = sext i32 %338 to i64
  %340 = icmp slt i64 %indvars.iv.next391, %339
  br i1 %340, label %.lr.ph362, label %._crit_edge363, !llvm.loop !59

._crit_edge373:                                   ; preds = %.lr.ph372, %._crit_edge369
  %341 = phi double [ 0.000000e+00, %._crit_edge369 ], [ %349, %.lr.ph372 ]
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.87, double noundef %341)
          to label %353 unwind label %360

.lr.ph372:                                        ; preds = %._crit_edge369, %.lr.ph372
  %indvars.iv396 = phi i64 [ %indvars.iv.next397, %.lr.ph372 ], [ 0, %._crit_edge369 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  %342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %indvars.iv396) #8
  %343 = load double, ptr %342, align 8, !tbaa !50
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %36, i64 noundef %indvars.iv396) #8
  %345 = load double, ptr %344, align 8, !tbaa !50
  %346 = fsub double %343, %345
  %347 = call double @llvm.fabs.f64(double %346)
  store double %347, ptr %32, align 8, !tbaa !50
  %348 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %31)
  %349 = load double, ptr %348, align 8, !tbaa !50
  store double %349, ptr %31, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  %indvars.iv.next397 = add nuw nsw i64 %indvars.iv396, 1
  %350 = load i32, ptr %37, align 4, !tbaa !43
  %351 = sext i32 %350 to i64
  %352 = icmp slt i64 %indvars.iv.next397, %351
  br i1 %352, label %.lr.ph372, label %._crit_edge373, !llvm.loop !60

353:                                              ; preds = %._crit_edge373
  %354 = load double, ptr %16, align 8, !tbaa !50
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %117, i32 noundef 1, ptr noundef nonnull @.str.88, double noundef %354)
          to label %355 unwind label %360

355:                                              ; preds = %353
  %356 = load double, ptr %22, align 8, !tbaa !50
  %357 = fcmp ogt double %356, 1.000000e+25
  br i1 %357, label %358, label %362

358:                                              ; preds = %355
  %359 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.89, double noundef %356)
  br label %362

360:                                              ; preds = %353, %._crit_edge373
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %363

362:                                              ; preds = %358, %355
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  br label %365

363:                                              ; preds = %360, %301
  %.pn = phi { ptr, i32 } [ %361, %360 ], [ %302, %301 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  br label %364

364:                                              ; preds = %363, %299
  %.pn.pn = phi { ptr, i32 } [ %.pn, %363 ], [ %300, %299 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  br label %392

365:                                              ; preds = %362, %175
  %366 = icmp eq i32 %.0276.lcssa, %5
  br i1 %366, label %368, label %367

367:                                              ; preds = %365
  call void @__assert_fail(ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.52, i32 noundef 1063, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #9
  unreachable

368:                                              ; preds = %365
  %369 = icmp eq i32 %.0266.lcssa, %4
  br i1 %369, label %371, label %370

370:                                              ; preds = %368
  call void @__assert_fail(ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.52, i32 noundef 1064, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26ipxSolutionToHighsSolutionRK12HighsOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEEiiS9_S9_S9_S9_S9_16HighsModelStatusR13HighsSolution) #9
  unreachable

371:                                              ; preds = %368
  %372 = getelementptr inbounds i8, ptr %1, i64 240
  %373 = load i32, ptr %372, align 8, !tbaa !61
  %374 = icmp eq i32 %373, -1
  br i1 %374, label %.preheader320, label %.loopexit

.preheader320:                                    ; preds = %371
  %375 = load i32, ptr %1, align 8, !tbaa !5
  %376 = icmp sgt i32 %375, 0
  br i1 %376, label %.lr.ph375, label %.preheader

.preheader:                                       ; preds = %.lr.ph375, %.preheader320
  %377 = load i32, ptr %37, align 4, !tbaa !43
  %378 = icmp sgt i32 %377, 0
  br i1 %378, label %.lr.ph377, label %.loopexit

.lr.ph375:                                        ; preds = %.preheader320, %.lr.ph375
  %indvars.iv399 = phi i64 [ %indvars.iv.next400, %.lr.ph375 ], [ 0, %.preheader320 ]
  %379 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %indvars.iv399) #8
  %380 = load double, ptr %379, align 8, !tbaa !50
  %381 = fneg double %380
  store double %381, ptr %379, align 8, !tbaa !50
  %indvars.iv.next400 = add nuw nsw i64 %indvars.iv399, 1
  %382 = load i32, ptr %1, align 8, !tbaa !5
  %383 = sext i32 %382 to i64
  %384 = icmp slt i64 %indvars.iv.next400, %383
  br i1 %384, label %.lr.ph375, label %.preheader, !llvm.loop !62

.lr.ph377:                                        ; preds = %.preheader, %.lr.ph377
  %indvars.iv402 = phi i64 [ %indvars.iv.next403, %.lr.ph377 ], [ 0, %.preheader ]
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %indvars.iv402) #8
  %386 = load double, ptr %385, align 8, !tbaa !50
  %387 = fneg double %386
  store double %387, ptr %385, align 8, !tbaa !50
  %indvars.iv.next403 = add nuw nsw i64 %indvars.iv402, 1
  %388 = load i32, ptr %37, align 4, !tbaa !43
  %389 = sext i32 %388 to i64
  %390 = icmp slt i64 %indvars.iv.next403, %389
  br i1 %390, label %.lr.ph377, label %.loopexit, !llvm.loop !63

.loopexit:                                        ; preds = %.lr.ph377, %.preheader, %371
  store i8 1, ptr %12, align 8, !tbaa !64
  %391 = getelementptr inbounds i8, ptr %12, i64 1
  store i8 1, ptr %391, align 1, !tbaa !66
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #8
  ret i32 0

392:                                              ; preds = %364, %186
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %364 ], [ %187, %186 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %393

393:                                              ; preds = %392, %56
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %392 ], [ %57, %56 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #8
  resume { ptr, i32 } %.pn.pn.pn.pn
}

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #4

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

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

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


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