; 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.HighsBasis = type { i8, i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.28", %"class.std::vector.28" }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsBasisStatus, std::allocator<HighsBasisStatus>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.IpxSolution = type { i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8" }

@.str.52 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [14 x i8], align 1
@__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution = external hidden unnamed_addr constant [199 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [57 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

declare void @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) #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.fmuladd.f64(double, double, double) #5

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

; 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, ...) #4

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution(ptr noundef nonnull align 8 dereferenceable(89) %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, ptr noundef nonnull align 8 dereferenceable(152) %4, ptr noundef nonnull align 8 dereferenceable(96) %5, ptr noundef nonnull align 8 dereferenceable(104) %6) #3 personality ptr @__gxx_personality_v0 {
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::vector.3", align 8
  %27 = alloca i8, align 1
  %28 = alloca double, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i8, align 1
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i8, align 1
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  %55 = load ptr, ptr %15, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.HighsSolution, ptr %55, i32 0, i32 2
  %57 = load ptr, ptr %10, align 8, !tbaa !5
  %58 = getelementptr inbounds %class.HighsLp, ptr %57, i32 0, i32 0
  %59 = load i32, ptr %58, align 8, !tbaa !9
  %60 = sext i32 %59 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %60)
  %61 = load ptr, ptr %15, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.HighsSolution, ptr %61, i32 0, i32 4
  %63 = load ptr, ptr %10, align 8, !tbaa !5
  %64 = getelementptr inbounds %class.HighsLp, ptr %63, i32 0, i32 1
  %65 = load i32, ptr %64, align 4, !tbaa !44
  %66 = sext i32 %65 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %66)
  %67 = load ptr, ptr %15, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.HighsSolution, ptr %67, i32 0, i32 3
  %69 = load ptr, ptr %10, align 8, !tbaa !5
  %70 = getelementptr inbounds %class.HighsLp, ptr %69, i32 0, i32 0
  %71 = load i32, ptr %70, align 8, !tbaa !9
  %72 = sext i32 %71 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %72)
  %73 = load ptr, ptr %15, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.HighsSolution, ptr %73, i32 0, i32 5
  %75 = load ptr, ptr %10, align 8, !tbaa !5
  %76 = getelementptr inbounds %class.HighsLp, ptr %75, i32 0, i32 1
  %77 = load i32, ptr %76, align 4, !tbaa !44
  %78 = sext i32 %77 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %74, i64 noundef %78)
  %79 = load ptr, ptr %14, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.HighsBasis, ptr %79, i32 0, i32 7
  %81 = load ptr, ptr %10, align 8, !tbaa !5
  %82 = getelementptr inbounds %class.HighsLp, ptr %81, i32 0, i32 0
  %83 = load i32, ptr %82, align 8, !tbaa !9
  %84 = sext i32 %83 to i64
  call void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %80, i64 noundef %84)
  %85 = load ptr, ptr %14, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.HighsBasis, ptr %85, i32 0, i32 8
  %87 = load ptr, ptr %10, align 8, !tbaa !5
  %88 = getelementptr inbounds %class.HighsLp, ptr %87, i32 0, i32 1
  %89 = load i32, ptr %88, align 4, !tbaa !44
  %90 = sext i32 %89 to i64
  call void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %90)
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  %91 = load ptr, ptr %13, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.IpxSolution, ptr %91, i32 0, i32 2
  store ptr %92, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %93 = load ptr, ptr %13, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.IpxSolution, ptr %93, i32 0, i32 3
  store ptr %94, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %95 = load ptr, ptr %13, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.IpxSolution, ptr %95, i32 0, i32 4
  store ptr %96, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %97 = load ptr, ptr %13, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.IpxSolution, ptr %97, i32 0, i32 5
  store ptr %98, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %99 = load ptr, ptr %13, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.IpxSolution, ptr %99, i32 0, i32 6
  store ptr %100, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %101 = load ptr, ptr %13, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.IpxSolution, ptr %101, i32 0, i32 7
  store ptr %102, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  store i32 0, ptr %22, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 -1, ptr %23, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 -2, ptr %24, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  store i32 -3, ptr %25, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #6
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #6
  %103 = load ptr, ptr %13, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.IpxSolution, ptr %103, i32 0, i32 1
  %105 = load i32, ptr %104, align 4, !tbaa !46
  %106 = load ptr, ptr %10, align 8, !tbaa !5
  %107 = getelementptr inbounds %class.HighsLp, ptr %106, i32 0, i32 1
  %108 = load i32, ptr %107, align 4, !tbaa !44
  %109 = icmp slt i32 %105, %108
  %110 = zext i1 %109 to i8
  store i8 %110, ptr %27, align 1, !tbaa !48
  %111 = load i8, ptr %27, align 1, !tbaa !48, !range !49, !noundef !50
  %112 = trunc i8 %111 to i1
  br i1 %112, label %113, label %123

113:                                              ; preds = %7
  %114 = load ptr, ptr %10, align 8, !tbaa !5
  %115 = getelementptr inbounds %class.HighsLp, ptr %114, i32 0, i32 1
  %116 = load i32, ptr %115, align 4, !tbaa !44
  %117 = sext i32 %116 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  store double 0.000000e+00, ptr %28, align 8, !tbaa !51
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %117, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %118 unwind label %119

118:                                              ; preds = %113
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  br label %123

119:                                              ; preds = %113
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %29, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  br label %937

123:                                              ; preds = %118, %7
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  store i32 0, ptr %31, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  store i32 0, ptr %32, align 4, !tbaa !45
  br label %124

124:                                              ; preds = %390, %123
  %125 = load i32, ptr %32, align 4, !tbaa !45
  %126 = load ptr, ptr %10, align 8, !tbaa !5
  %127 = getelementptr inbounds %class.HighsLp, ptr %126, i32 0, i32 0
  %128 = load i32, ptr %127, align 8, !tbaa !9
  %129 = icmp slt i32 %125, %128
  br i1 %129, label %131, label %130

130:                                              ; preds = %124
  store i32 2, ptr %33, align 4
  br label %393

131:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #6
  store i8 0, ptr %34, align 1, !tbaa !48
  %132 = load ptr, ptr %20, align 8, !tbaa !5
  %133 = load i32, ptr %32, align 4, !tbaa !45
  %134 = sext i32 %133 to i64
  %135 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %134) #6
  %136 = load i32, ptr %135, align 4, !tbaa !45
  %137 = icmp eq i32 %136, 0
  br i1 %137, label %138, label %159

138:                                              ; preds = %131
  %139 = load ptr, ptr %14, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.HighsBasis, ptr %139, i32 0, i32 7
  %141 = load i32, ptr %32, align 4, !tbaa !45
  %142 = sext i32 %141 to i64
  %143 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %140, i64 noundef %142) #6
  store i8 1, ptr %143, align 1, !tbaa !52
  %144 = load ptr, ptr %16, align 8, !tbaa !5
  %145 = load i32, ptr %32, align 4, !tbaa !45
  %146 = sext i32 %145 to i64
  %147 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %144, i64 noundef %146) #6
  %148 = load double, ptr %147, align 8, !tbaa !51
  %149 = load ptr, ptr %15, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.HighsSolution, ptr %149, i32 0, i32 2
  %151 = load i32, ptr %32, align 4, !tbaa !45
  %152 = sext i32 %151 to i64
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %150, i64 noundef %152) #6
  store double %148, ptr %153, align 8, !tbaa !51
  %154 = load ptr, ptr %15, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.HighsSolution, ptr %154, i32 0, i32 3
  %156 = load i32, ptr %32, align 4, !tbaa !45
  %157 = sext i32 %156 to i64
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %155, i64 noundef %157) #6
  store double 0.000000e+00, ptr %158, align 8, !tbaa !51
  br label %274

159:                                              ; preds = %131
  %160 = load ptr, ptr %20, align 8, !tbaa !5
  %161 = load i32, ptr %32, align 4, !tbaa !45
  %162 = sext i32 %161 to i64
  %163 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %160, i64 noundef %162) #6
  %164 = load i32, ptr %163, align 4, !tbaa !45
  %165 = icmp eq i32 %164, -1
  br i1 %165, label %166, label %192

166:                                              ; preds = %159
  %167 = load ptr, ptr %14, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.HighsBasis, ptr %167, i32 0, i32 7
  %169 = load i32, ptr %32, align 4, !tbaa !45
  %170 = sext i32 %169 to i64
  %171 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef %170) #6
  store i8 0, ptr %171, align 1, !tbaa !52
  %172 = load ptr, ptr %16, align 8, !tbaa !5
  %173 = load i32, ptr %32, align 4, !tbaa !45
  %174 = sext i32 %173 to i64
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %174) #6
  %176 = load double, ptr %175, align 8, !tbaa !51
  %177 = load ptr, ptr %15, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.HighsSolution, ptr %177, i32 0, i32 2
  %179 = load i32, ptr %32, align 4, !tbaa !45
  %180 = sext i32 %179 to i64
  %181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %180) #6
  store double %176, ptr %181, align 8, !tbaa !51
  %182 = load ptr, ptr %18, align 8, !tbaa !5
  %183 = load i32, ptr %32, align 4, !tbaa !45
  %184 = sext i32 %183 to i64
  %185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %184) #6
  %186 = load double, ptr %185, align 8, !tbaa !51
  %187 = load ptr, ptr %15, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.HighsSolution, ptr %187, i32 0, i32 3
  %189 = load i32, ptr %32, align 4, !tbaa !45
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef %190) #6
  store double %186, ptr %191, align 8, !tbaa !51
  br label %273

192:                                              ; preds = %159
  %193 = load ptr, ptr %20, align 8, !tbaa !5
  %194 = load i32, ptr %32, align 4, !tbaa !45
  %195 = sext i32 %194 to i64
  %196 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef %195) #6
  %197 = load i32, ptr %196, align 4, !tbaa !45
  %198 = icmp eq i32 %197, -2
  br i1 %198, label %199, label %225

199:                                              ; preds = %192
  %200 = load ptr, ptr %14, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.HighsBasis, ptr %200, i32 0, i32 7
  %202 = load i32, ptr %32, align 4, !tbaa !45
  %203 = sext i32 %202 to i64
  %204 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %203) #6
  store i8 2, ptr %204, align 1, !tbaa !52
  %205 = load ptr, ptr %16, align 8, !tbaa !5
  %206 = load i32, ptr %32, align 4, !tbaa !45
  %207 = sext i32 %206 to i64
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %205, i64 noundef %207) #6
  %209 = load double, ptr %208, align 8, !tbaa !51
  %210 = load ptr, ptr %15, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.HighsSolution, ptr %210, i32 0, i32 2
  %212 = load i32, ptr %32, align 4, !tbaa !45
  %213 = sext i32 %212 to i64
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %211, i64 noundef %213) #6
  store double %209, ptr %214, align 8, !tbaa !51
  %215 = load ptr, ptr %18, align 8, !tbaa !5
  %216 = load i32, ptr %32, align 4, !tbaa !45
  %217 = sext i32 %216 to i64
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %215, i64 noundef %217) #6
  %219 = load double, ptr %218, align 8, !tbaa !51
  %220 = load ptr, ptr %15, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.HighsSolution, ptr %220, i32 0, i32 3
  %222 = load i32, ptr %32, align 4, !tbaa !45
  %223 = sext i32 %222 to i64
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %223) #6
  store double %219, ptr %224, align 8, !tbaa !51
  br label %272

225:                                              ; preds = %192
  %226 = load ptr, ptr %20, align 8, !tbaa !5
  %227 = load i32, ptr %32, align 4, !tbaa !45
  %228 = sext i32 %227 to i64
  %229 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %226, i64 noundef %228) #6
  %230 = load i32, ptr %229, align 4, !tbaa !45
  %231 = icmp eq i32 %230, -3
  br i1 %231, label %232, label %258

232:                                              ; preds = %225
  %233 = load ptr, ptr %14, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.HighsBasis, ptr %233, i32 0, i32 7
  %235 = load i32, ptr %32, align 4, !tbaa !45
  %236 = sext i32 %235 to i64
  %237 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %234, i64 noundef %236) #6
  store i8 3, ptr %237, align 1, !tbaa !52
  %238 = load ptr, ptr %16, align 8, !tbaa !5
  %239 = load i32, ptr %32, align 4, !tbaa !45
  %240 = sext i32 %239 to i64
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %240) #6
  %242 = load double, ptr %241, align 8, !tbaa !51
  %243 = load ptr, ptr %15, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.HighsSolution, ptr %243, i32 0, i32 2
  %245 = load i32, ptr %32, align 4, !tbaa !45
  %246 = sext i32 %245 to i64
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef %246) #6
  store double %242, ptr %247, align 8, !tbaa !51
  %248 = load ptr, ptr %18, align 8, !tbaa !5
  %249 = load i32, ptr %32, align 4, !tbaa !45
  %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) #6
  %252 = load double, ptr %251, align 8, !tbaa !51
  %253 = load ptr, ptr %15, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.HighsSolution, ptr %253, i32 0, i32 3
  %255 = load i32, ptr %32, align 4, !tbaa !45
  %256 = sext i32 %255 to i64
  %257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %254, i64 noundef %256) #6
  store double %252, ptr %257, align 8, !tbaa !51
  br label %271

258:                                              ; preds = %225
  store i8 1, ptr %34, align 1, !tbaa !48
  %259 = load ptr, ptr %9, align 8, !tbaa !5
  %260 = load i32, ptr %32, align 4, !tbaa !45
  %261 = load ptr, ptr %20, align 8, !tbaa !5
  %262 = load i32, ptr %32, align 4, !tbaa !45
  %263 = sext i32 %262 to i64
  %264 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %261, i64 noundef %263) #6
  %265 = load i32, ptr %264, align 4, !tbaa !45
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %259, i32 noundef 5, ptr noundef @.str.92, i32 noundef %260, i32 noundef %265)
          to label %266 unwind label %267

266:                                              ; preds = %258
  br label %271

267:                                              ; preds = %319, %291, %277, %258
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %29, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  br label %936

271:                                              ; preds = %266, %232
  br label %272

272:                                              ; preds = %271, %199
  br label %273

273:                                              ; preds = %272, %166
  br label %274

274:                                              ; preds = %273, %138
  %275 = load i8, ptr %34, align 1, !tbaa !48, !range !49, !noundef !50
  %276 = trunc i8 %275 to i1
  br i1 %276, label %277, label %322

277:                                              ; preds = %274
  %278 = load ptr, ptr %9, align 8, !tbaa !5
  %279 = load ptr, ptr %10, align 8, !tbaa !5
  %280 = getelementptr inbounds %class.HighsLp, ptr %279, i32 0, i32 3
  %281 = load i32, ptr %32, align 4, !tbaa !45
  %282 = sext i32 %281 to i64
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %280, i64 noundef %282) #6
  %284 = load double, ptr %283, align 8, !tbaa !51
  %285 = load ptr, ptr %10, align 8, !tbaa !5
  %286 = getelementptr inbounds %class.HighsLp, ptr %285, i32 0, i32 4
  %287 = load i32, ptr %32, align 4, !tbaa !45
  %288 = sext i32 %287 to i64
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %286, i64 noundef %288) #6
  %290 = load double, ptr %289, align 8, !tbaa !51
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %278, i32 noundef 5, ptr noundef @.str.93, double noundef %284, double noundef %290)
          to label %291 unwind label %267

291:                                              ; preds = %277
  %292 = load ptr, ptr %9, align 8, !tbaa !5
  %293 = load i32, ptr %32, align 4, !tbaa !45
  %294 = load i32, ptr %32, align 4, !tbaa !45
  %295 = load ptr, ptr %20, align 8, !tbaa !5
  %296 = load i32, ptr %32, align 4, !tbaa !45
  %297 = sext i32 %296 to i64
  %298 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %295, i64 noundef %297) #6
  %299 = load i32, ptr %298, align 4, !tbaa !45
  %300 = load i32, ptr %32, align 4, !tbaa !45
  %301 = load ptr, ptr %16, align 8, !tbaa !5
  %302 = load i32, ptr %32, align 4, !tbaa !45
  %303 = sext i32 %302 to i64
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %301, i64 noundef %303) #6
  %305 = load double, ptr %304, align 8, !tbaa !51
  %306 = load i32, ptr %32, align 4, !tbaa !45
  %307 = load ptr, ptr %18, align 8, !tbaa !5
  %308 = load i32, ptr %32, align 4, !tbaa !45
  %309 = sext i32 %308 to i64
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %309) #6
  %311 = load double, ptr %310, align 8, !tbaa !51
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %292, i32 noundef 5, ptr noundef @.str.94, i32 noundef %293, i32 noundef %294, i32 noundef %299, i32 noundef %300, double noundef %305, i32 noundef %306, double noundef %311)
          to label %312 unwind label %267

312:                                              ; preds = %291
  %313 = load i8, ptr %34, align 1, !tbaa !48, !range !49, !noundef !50
  %314 = trunc i8 %313 to i1
  %315 = xor i1 %314, true
  br i1 %315, label %316, label %317

316:                                              ; preds = %312
  br label %319

317:                                              ; preds = %312
  call void @__assert_fail(ptr noundef @.str.95, ptr noundef @.str.52, i32 noundef 1158, ptr noundef @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

318:                                              ; No predecessors!
  br label %319

319:                                              ; preds = %318, %316
  %320 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %320, i32 noundef 5, ptr noundef @.str.96)
          to label %321 unwind label %267

321:                                              ; preds = %319
  store i32 -1, ptr %8, align 4
  store i32 1, ptr %33, align 4
  br label %387

322:                                              ; preds = %274
  %323 = load i8, ptr %27, align 1, !tbaa !48, !range !49, !noundef !50
  %324 = trunc i8 %323 to i1
  br i1 %324, label %325, label %375

325:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  %326 = load ptr, ptr %10, align 8, !tbaa !5
  %327 = getelementptr inbounds %class.HighsLp, ptr %326, i32 0, i32 7
  %328 = getelementptr inbounds %class.HighsSparseMatrix, ptr %327, i32 0, i32 3
  %329 = load i32, ptr %32, align 4, !tbaa !45
  %330 = sext i32 %329 to i64
  %331 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %328, i64 noundef %330) #6
  %332 = load i32, ptr %331, align 4, !tbaa !45
  store i32 %332, ptr %35, align 4, !tbaa !45
  br label %333

333:                                              ; preds = %371, %325
  %334 = load i32, ptr %35, align 4, !tbaa !45
  %335 = load ptr, ptr %10, align 8, !tbaa !5
  %336 = getelementptr inbounds %class.HighsLp, ptr %335, i32 0, i32 7
  %337 = getelementptr inbounds %class.HighsSparseMatrix, ptr %336, i32 0, i32 3
  %338 = load i32, ptr %32, align 4, !tbaa !45
  %339 = add nsw i32 %338, 1
  %340 = sext i32 %339 to i64
  %341 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %340) #6
  %342 = load i32, ptr %341, align 4, !tbaa !45
  %343 = icmp slt i32 %334, %342
  br i1 %343, label %345, label %344

344:                                              ; preds = %333
  store i32 5, ptr %33, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %374

345:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  %346 = load ptr, ptr %10, align 8, !tbaa !5
  %347 = getelementptr inbounds %class.HighsLp, ptr %346, i32 0, i32 7
  %348 = getelementptr inbounds %class.HighsSparseMatrix, ptr %347, i32 0, i32 5
  %349 = load i32, ptr %35, align 4, !tbaa !45
  %350 = sext i32 %349 to i64
  %351 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %348, i64 noundef %350) #6
  %352 = load i32, ptr %351, align 4, !tbaa !45
  store i32 %352, ptr %36, align 4, !tbaa !45
  %353 = load ptr, ptr %15, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.HighsSolution, ptr %353, i32 0, i32 2
  %355 = load i32, ptr %32, align 4, !tbaa !45
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef %356) #6
  %358 = load double, ptr %357, align 8, !tbaa !51
  %359 = load ptr, ptr %10, align 8, !tbaa !5
  %360 = getelementptr inbounds %class.HighsLp, ptr %359, i32 0, i32 7
  %361 = getelementptr inbounds %class.HighsSparseMatrix, ptr %360, i32 0, i32 6
  %362 = load i32, ptr %35, align 4, !tbaa !45
  %363 = sext i32 %362 to i64
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %361, i64 noundef %363) #6
  %365 = load double, ptr %364, align 8, !tbaa !51
  %366 = load i32, ptr %36, align 4, !tbaa !45
  %367 = sext i32 %366 to i64
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %367) #6
  %369 = load double, ptr %368, align 8, !tbaa !51
  %370 = call double @llvm.fmuladd.f64(double %358, double %365, double %369)
  store double %370, ptr %368, align 8, !tbaa !51
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br label %371

371:                                              ; preds = %345
  %372 = load i32, ptr %35, align 4, !tbaa !45
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr %35, align 4, !tbaa !45
  br label %333, !llvm.loop !54

374:                                              ; preds = %344
  br label %375

375:                                              ; preds = %374, %322
  %376 = load ptr, ptr %14, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.HighsBasis, ptr %376, i32 0, i32 7
  %378 = load i32, ptr %32, align 4, !tbaa !45
  %379 = sext i32 %378 to i64
  %380 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef %379) #6
  %381 = load i8, ptr %380, align 1, !tbaa !52
  %382 = icmp eq i8 %381, 1
  br i1 %382, label %383, label %386

383:                                              ; preds = %375
  %384 = load i32, ptr %31, align 4, !tbaa !45
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr %31, align 4, !tbaa !45
  br label %386

386:                                              ; preds = %383, %375
  store i32 0, ptr %33, align 4
  br label %387

387:                                              ; preds = %386, %321
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #6
  %388 = load i32, ptr %33, align 4
  switch i32 %388, label %393 [
    i32 0, label %389
  ]

389:                                              ; preds = %387
  br label %390

390:                                              ; preds = %389
  %391 = load i32, ptr %32, align 4, !tbaa !45
  %392 = add nsw i32 %391, 1
  store i32 %392, ptr %32, align 4, !tbaa !45
  br label %124, !llvm.loop !56

393:                                              ; preds = %387, %130
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  %394 = load i32, ptr %33, align 4
  switch i32 %394, label %934 [
    i32 2, label %395
  ]

395:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  store i32 0, ptr %37, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  %396 = load ptr, ptr %10, align 8, !tbaa !5
  %397 = getelementptr inbounds %class.HighsLp, ptr %396, i32 0, i32 0
  %398 = load i32, ptr %397, align 8, !tbaa !9
  store i32 %398, ptr %38, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #6
  store i32 0, ptr %39, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  store i32 0, ptr %40, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  store i32 0, ptr %41, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  store i32 0, ptr %42, align 4, !tbaa !45
  br label %399

399:                                              ; preds = %833, %395
  %400 = load i32, ptr %42, align 4, !tbaa !45
  %401 = load ptr, ptr %10, align 8, !tbaa !5
  %402 = getelementptr inbounds %class.HighsLp, ptr %401, i32 0, i32 1
  %403 = load i32, ptr %402, align 4, !tbaa !44
  %404 = icmp slt i32 %400, %403
  br i1 %404, label %406, label %405

405:                                              ; preds = %399
  store i32 8, ptr %33, align 4
  br label %837

406:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #6
  store i8 0, ptr %43, align 1, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #6
  %407 = load ptr, ptr %10, align 8, !tbaa !5
  %408 = getelementptr inbounds %class.HighsLp, ptr %407, i32 0, i32 5
  %409 = load i32, ptr %42, align 4, !tbaa !45
  %410 = sext i32 %409 to i64
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %408, i64 noundef %410) #6
  %412 = load double, ptr %411, align 8, !tbaa !51
  store double %412, ptr %44, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #6
  %413 = load ptr, ptr %10, align 8, !tbaa !5
  %414 = getelementptr inbounds %class.HighsLp, ptr %413, i32 0, i32 6
  %415 = load i32, ptr %42, align 4, !tbaa !45
  %416 = sext i32 %415 to i64
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %414, i64 noundef %416) #6
  %418 = load double, ptr %417, align 8, !tbaa !51
  store double %418, ptr %45, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #6
  %419 = load i32, ptr %37, align 4, !tbaa !45
  store i32 %419, ptr %46, align 4, !tbaa !45
  %420 = load double, ptr %44, align 8, !tbaa !51
  %421 = fcmp ole double %420, 0xFFF0000000000000
  br i1 %421, label %422, label %445

422:                                              ; preds = %406
  %423 = load double, ptr %45, align 8, !tbaa !51
  %424 = fcmp oge double %423, 0x7FF0000000000000
  br i1 %424, label %425, label %445

425:                                              ; preds = %422
  %426 = load ptr, ptr %14, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.HighsBasis, ptr %426, i32 0, i32 8
  %428 = load i32, ptr %42, align 4, !tbaa !45
  %429 = sext i32 %428 to i64
  %430 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %427, i64 noundef %429) #6
  store i8 1, ptr %430, align 1, !tbaa !52
  %431 = load i32, ptr %42, align 4, !tbaa !45
  %432 = sext i32 %431 to i64
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %432) #6
  %434 = load double, ptr %433, align 8, !tbaa !51
  %435 = load ptr, ptr %15, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.HighsSolution, ptr %435, i32 0, i32 4
  %437 = load i32, ptr %42, align 4, !tbaa !45
  %438 = sext i32 %437 to i64
  %439 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %436, i64 noundef %438) #6
  store double %434, ptr %439, align 8, !tbaa !51
  %440 = load ptr, ptr %15, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.HighsSolution, ptr %440, i32 0, i32 5
  %442 = load i32, ptr %42, align 4, !tbaa !45
  %443 = sext i32 %442 to i64
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %441, i64 noundef %443) #6
  store double 0.000000e+00, ptr %444, align 8, !tbaa !51
  br label %766

445:                                              ; preds = %422, %406
  %446 = load double, ptr %44, align 8, !tbaa !51
  %447 = fcmp ogt double %446, 0xFFF0000000000000
  br i1 %447, label %448, label %602

448:                                              ; preds = %445
  %449 = load double, ptr %45, align 8, !tbaa !51
  %450 = fcmp olt double %449, 0x7FF0000000000000
  br i1 %450, label %451, label %602

451:                                              ; preds = %448
  %452 = load double, ptr %44, align 8, !tbaa !51
  %453 = load double, ptr %45, align 8, !tbaa !51
  %454 = fcmp olt double %452, %453
  br i1 %454, label %455, label %602

455:                                              ; preds = %451
  %456 = load i32, ptr %39, align 4, !tbaa !45
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %39, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  %458 = load ptr, ptr %16, align 8, !tbaa !5
  %459 = load i32, ptr %38, align 4, !tbaa !45
  %460 = sext i32 %459 to i64
  %461 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %458, i64 noundef %460) #6
  %462 = load double, ptr %461, align 8, !tbaa !51
  store double %462, ptr %47, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #6
  %463 = load ptr, ptr %18, align 8, !tbaa !5
  %464 = load i32, ptr %38, align 4, !tbaa !45
  %465 = sext i32 %464 to i64
  %466 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %463, i64 noundef %465) #6
  %467 = load double, ptr %466, align 8, !tbaa !51
  store double %467, ptr %48, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #6
  %468 = load double, ptr %47, align 8, !tbaa !51
  store double %468, ptr %49, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #6
  %469 = load double, ptr %48, align 8, !tbaa !51
  store double %469, ptr %50, align 8, !tbaa !51
  %470 = load ptr, ptr %21, align 8, !tbaa !5
  %471 = load i32, ptr %37, align 4, !tbaa !45
  %472 = sext i32 %471 to i64
  %473 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %470, i64 noundef %472) #6
  %474 = load i32, ptr %473, align 4, !tbaa !45
  %475 = icmp eq i32 %474, 0
  br i1 %475, label %476, label %495

476:                                              ; preds = %455
  %477 = load i32, ptr %40, align 4, !tbaa !45
  %478 = add nsw i32 %477, 1
  store i32 %478, ptr %40, align 4, !tbaa !45
  %479 = load ptr, ptr %14, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.HighsBasis, ptr %479, i32 0, i32 8
  %481 = load i32, ptr %42, align 4, !tbaa !45
  %482 = sext i32 %481 to i64
  %483 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %480, i64 noundef %482) #6
  store i8 1, ptr %483, align 1, !tbaa !52
  %484 = load double, ptr %49, align 8, !tbaa !51
  %485 = load ptr, ptr %15, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.HighsSolution, ptr %485, i32 0, i32 4
  %487 = load i32, ptr %42, align 4, !tbaa !45
  %488 = sext i32 %487 to i64
  %489 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %486, i64 noundef %488) #6
  store double %484, ptr %489, align 8, !tbaa !51
  %490 = load ptr, ptr %15, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.HighsSolution, ptr %490, i32 0, i32 5
  %492 = load i32, ptr %42, align 4, !tbaa !45
  %493 = sext i32 %492 to i64
  %494 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %491, i64 noundef %493) #6
  store double 0.000000e+00, ptr %494, align 8, !tbaa !51
  br label %599

495:                                              ; preds = %455
  %496 = load ptr, ptr %20, align 8, !tbaa !5
  %497 = load i32, ptr %38, align 4, !tbaa !45
  %498 = sext i32 %497 to i64
  %499 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %496, i64 noundef %498) #6
  %500 = load i32, ptr %499, align 4, !tbaa !45
  %501 = icmp eq i32 %500, 0
  br i1 %501, label %502, label %521

502:                                              ; preds = %495
  %503 = load i32, ptr %41, align 4, !tbaa !45
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %41, align 4, !tbaa !45
  %505 = load ptr, ptr %14, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.HighsBasis, ptr %505, i32 0, i32 8
  %507 = load i32, ptr %42, align 4, !tbaa !45
  %508 = sext i32 %507 to i64
  %509 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %506, i64 noundef %508) #6
  store i8 1, ptr %509, align 1, !tbaa !52
  %510 = load double, ptr %49, align 8, !tbaa !51
  %511 = load ptr, ptr %15, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.HighsSolution, ptr %511, i32 0, i32 4
  %513 = load i32, ptr %42, align 4, !tbaa !45
  %514 = sext i32 %513 to i64
  %515 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %512, i64 noundef %514) #6
  store double %510, ptr %515, align 8, !tbaa !51
  %516 = load ptr, ptr %15, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.HighsSolution, ptr %516, i32 0, i32 5
  %518 = load i32, ptr %42, align 4, !tbaa !45
  %519 = sext i32 %518 to i64
  %520 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %517, i64 noundef %519) #6
  store double 0.000000e+00, ptr %520, align 8, !tbaa !51
  br label %598

521:                                              ; preds = %495
  %522 = load ptr, ptr %20, align 8, !tbaa !5
  %523 = load i32, ptr %38, align 4, !tbaa !45
  %524 = sext i32 %523 to i64
  %525 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %522, i64 noundef %524) #6
  %526 = load i32, ptr %525, align 4, !tbaa !45
  %527 = icmp eq i32 %526, -1
  br i1 %527, label %528, label %546

528:                                              ; preds = %521
  %529 = load ptr, ptr %14, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.HighsBasis, ptr %529, i32 0, i32 8
  %531 = load i32, ptr %42, align 4, !tbaa !45
  %532 = sext i32 %531 to i64
  %533 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %530, i64 noundef %532) #6
  store i8 0, ptr %533, align 1, !tbaa !52
  %534 = load double, ptr %49, align 8, !tbaa !51
  %535 = load ptr, ptr %15, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.HighsSolution, ptr %535, i32 0, i32 4
  %537 = load i32, ptr %42, align 4, !tbaa !45
  %538 = sext i32 %537 to i64
  %539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %536, i64 noundef %538) #6
  store double %534, ptr %539, align 8, !tbaa !51
  %540 = load double, ptr %50, align 8, !tbaa !51
  %541 = load ptr, ptr %15, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.HighsSolution, ptr %541, i32 0, i32 5
  %543 = load i32, ptr %42, align 4, !tbaa !45
  %544 = sext i32 %543 to i64
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %542, i64 noundef %544) #6
  store double %540, ptr %545, align 8, !tbaa !51
  br label %597

546:                                              ; preds = %521
  %547 = load ptr, ptr %20, align 8, !tbaa !5
  %548 = load i32, ptr %38, align 4, !tbaa !45
  %549 = sext i32 %548 to i64
  %550 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %547, i64 noundef %549) #6
  %551 = load i32, ptr %550, align 4, !tbaa !45
  %552 = icmp eq i32 %551, -2
  br i1 %552, label %553, label %581

553:                                              ; preds = %546
  %554 = load ptr, ptr %20, align 8, !tbaa !5
  %555 = load i32, ptr %38, align 4, !tbaa !45
  %556 = sext i32 %555 to i64
  %557 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %554, i64 noundef %556) #6
  %558 = load i32, ptr %557, align 4, !tbaa !45
  %559 = icmp eq i32 %558, -2
  br i1 %559, label %560, label %561

560:                                              ; preds = %553
  br label %563

561:                                              ; preds = %553
  call void @__assert_fail(ptr noundef @.str.97, ptr noundef @.str.52, i32 noundef 1219, ptr noundef @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

562:                                              ; No predecessors!
  br label %563

563:                                              ; preds = %562, %560
  %564 = load ptr, ptr %14, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.HighsBasis, ptr %564, i32 0, i32 8
  %566 = load i32, ptr %42, align 4, !tbaa !45
  %567 = sext i32 %566 to i64
  %568 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %565, i64 noundef %567) #6
  store i8 2, ptr %568, align 1, !tbaa !52
  %569 = load double, ptr %49, align 8, !tbaa !51
  %570 = load ptr, ptr %15, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.HighsSolution, ptr %570, i32 0, i32 4
  %572 = load i32, ptr %42, align 4, !tbaa !45
  %573 = sext i32 %572 to i64
  %574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %571, i64 noundef %573) #6
  store double %569, ptr %574, align 8, !tbaa !51
  %575 = load double, ptr %50, align 8, !tbaa !51
  %576 = load ptr, ptr %15, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.HighsSolution, ptr %576, i32 0, i32 5
  %578 = load i32, ptr %42, align 4, !tbaa !45
  %579 = sext i32 %578 to i64
  %580 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %577, i64 noundef %579) #6
  store double %575, ptr %580, align 8, !tbaa !51
  br label %596

581:                                              ; preds = %546
  store i8 1, ptr %43, align 1, !tbaa !48
  %582 = load ptr, ptr %9, align 8, !tbaa !5
  %583 = load i32, ptr %42, align 4, !tbaa !45
  %584 = load i32, ptr %37, align 4, !tbaa !45
  %585 = load i32, ptr %38, align 4, !tbaa !45
  %586 = load ptr, ptr %20, align 8, !tbaa !5
  %587 = load i32, ptr %38, align 4, !tbaa !45
  %588 = sext i32 %587 to i64
  %589 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %586, i64 noundef %588) #6
  %590 = load i32, ptr %589, align 4, !tbaa !45
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %582, i32 noundef 5, ptr noundef @.str.98, i32 noundef %583, i32 noundef %584, i32 noundef %585, i32 noundef %590)
          to label %591 unwind label %592

591:                                              ; preds = %581
  br label %596

592:                                              ; preds = %581
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %29, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  br label %836

596:                                              ; preds = %591, %563
  br label %597

597:                                              ; preds = %596, %528
  br label %598

598:                                              ; preds = %597, %502
  br label %599

599:                                              ; preds = %598, %476
  %600 = load i32, ptr %38, align 4, !tbaa !45
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr %38, align 4, !tbaa !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  br label %763

602:                                              ; preds = %451, %448, %445
  %603 = load ptr, ptr %21, align 8, !tbaa !5
  %604 = load i32, ptr %37, align 4, !tbaa !45
  %605 = sext i32 %604 to i64
  %606 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %603, i64 noundef %605) #6
  %607 = load i32, ptr %606, align 4, !tbaa !45
  %608 = icmp eq i32 %607, 0
  br i1 %608, label %609, label %636

609:                                              ; preds = %602
  %610 = load ptr, ptr %14, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.HighsBasis, ptr %610, i32 0, i32 8
  %612 = load i32, ptr %42, align 4, !tbaa !45
  %613 = sext i32 %612 to i64
  %614 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %611, i64 noundef %613) #6
  store i8 1, ptr %614, align 1, !tbaa !52
  %615 = load ptr, ptr %11, align 8, !tbaa !5
  %616 = load i32, ptr %37, align 4, !tbaa !45
  %617 = sext i32 %616 to i64
  %618 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %615, i64 noundef %617) #6
  %619 = load double, ptr %618, align 8, !tbaa !51
  %620 = load ptr, ptr %17, align 8, !tbaa !5
  %621 = load i32, ptr %37, align 4, !tbaa !45
  %622 = sext i32 %621 to i64
  %623 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %620, i64 noundef %622) #6
  %624 = load double, ptr %623, align 8, !tbaa !51
  %625 = fsub double %619, %624
  %626 = load ptr, ptr %15, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.HighsSolution, ptr %626, i32 0, i32 4
  %628 = load i32, ptr %42, align 4, !tbaa !45
  %629 = sext i32 %628 to i64
  %630 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %627, i64 noundef %629) #6
  store double %625, ptr %630, align 8, !tbaa !51
  %631 = load ptr, ptr %15, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.HighsSolution, ptr %631, i32 0, i32 5
  %633 = load i32, ptr %42, align 4, !tbaa !45
  %634 = sext i32 %633 to i64
  %635 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %632, i64 noundef %634) #6
  store double 0.000000e+00, ptr %635, align 8, !tbaa !51
  br label %762

636:                                              ; preds = %602
  %637 = load ptr, ptr %21, align 8, !tbaa !5
  %638 = load i32, ptr %37, align 4, !tbaa !45
  %639 = sext i32 %638 to i64
  %640 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %637, i64 noundef %639) #6
  %641 = load i32, ptr %640, align 4, !tbaa !45
  %642 = icmp eq i32 %641, -1
  br i1 %642, label %643, label %644

643:                                              ; preds = %636
  br label %646

644:                                              ; preds = %636
  call void @__assert_fail(ptr noundef @.str.99, ptr noundef @.str.52, i32 noundef 1244, ptr noundef @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

645:                                              ; No predecessors!
  br label %646

646:                                              ; preds = %645, %643
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #6
  %647 = load ptr, ptr %11, align 8, !tbaa !5
  %648 = load i32, ptr %37, align 4, !tbaa !45
  %649 = sext i32 %648 to i64
  %650 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %647, i64 noundef %649) #6
  %651 = load double, ptr %650, align 8, !tbaa !51
  %652 = load ptr, ptr %17, align 8, !tbaa !5
  %653 = load i32, ptr %37, align 4, !tbaa !45
  %654 = sext i32 %653 to i64
  %655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %652, i64 noundef %654) #6
  %656 = load double, ptr %655, align 8, !tbaa !51
  %657 = fsub double %651, %656
  store double %657, ptr %51, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #6
  %658 = load ptr, ptr %19, align 8, !tbaa !5
  %659 = load i32, ptr %37, align 4, !tbaa !45
  %660 = sext i32 %659 to i64
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %658, i64 noundef %660) #6
  %662 = load double, ptr %661, align 8, !tbaa !51
  store double %662, ptr %52, align 8, !tbaa !51
  %663 = load ptr, ptr %12, align 8, !tbaa !5
  %664 = load i32, ptr %37, align 4, !tbaa !45
  %665 = sext i32 %664 to i64
  %666 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %663, i64 noundef %665) #6
  %667 = load i8, ptr %666, align 1, !tbaa !57
  %668 = sext i8 %667 to i32
  %669 = icmp eq i32 %668, 62
  br i1 %669, label %670, label %688

670:                                              ; preds = %646
  %671 = load ptr, ptr %14, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.HighsBasis, ptr %671, i32 0, i32 8
  %673 = load i32, ptr %42, align 4, !tbaa !45
  %674 = sext i32 %673 to i64
  %675 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %672, i64 noundef %674) #6
  store i8 0, ptr %675, align 1, !tbaa !52
  %676 = load double, ptr %51, align 8, !tbaa !51
  %677 = load ptr, ptr %15, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.HighsSolution, ptr %677, i32 0, i32 4
  %679 = load i32, ptr %42, align 4, !tbaa !45
  %680 = sext i32 %679 to i64
  %681 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %678, i64 noundef %680) #6
  store double %676, ptr %681, align 8, !tbaa !51
  %682 = load double, ptr %52, align 8, !tbaa !51
  %683 = load ptr, ptr %15, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.HighsSolution, ptr %683, i32 0, i32 5
  %685 = load i32, ptr %42, align 4, !tbaa !45
  %686 = sext i32 %685 to i64
  %687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %684, i64 noundef %686) #6
  store double %682, ptr %687, align 8, !tbaa !51
  br label %761

688:                                              ; preds = %646
  %689 = load ptr, ptr %12, align 8, !tbaa !5
  %690 = load i32, ptr %37, align 4, !tbaa !45
  %691 = sext i32 %690 to i64
  %692 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %689, i64 noundef %691) #6
  %693 = load i8, ptr %692, align 1, !tbaa !57
  %694 = sext i8 %693 to i32
  %695 = icmp eq i32 %694, 60
  br i1 %695, label %696, label %714

696:                                              ; preds = %688
  %697 = load ptr, ptr %14, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.HighsBasis, ptr %697, i32 0, i32 8
  %699 = load i32, ptr %42, align 4, !tbaa !45
  %700 = sext i32 %699 to i64
  %701 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %698, i64 noundef %700) #6
  store i8 2, ptr %701, align 1, !tbaa !52
  %702 = load double, ptr %51, align 8, !tbaa !51
  %703 = load ptr, ptr %15, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.HighsSolution, ptr %703, i32 0, i32 4
  %705 = load i32, ptr %42, align 4, !tbaa !45
  %706 = sext i32 %705 to i64
  %707 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %704, i64 noundef %706) #6
  store double %702, ptr %707, align 8, !tbaa !51
  %708 = load double, ptr %52, align 8, !tbaa !51
  %709 = load ptr, ptr %15, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.HighsSolution, ptr %709, i32 0, i32 5
  %711 = load i32, ptr %42, align 4, !tbaa !45
  %712 = sext i32 %711 to i64
  %713 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %710, i64 noundef %712) #6
  store double %708, ptr %713, align 8, !tbaa !51
  br label %760

714:                                              ; preds = %688
  %715 = load ptr, ptr %12, align 8, !tbaa !5
  %716 = load i32, ptr %37, align 4, !tbaa !45
  %717 = sext i32 %716 to i64
  %718 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %715, i64 noundef %717) #6
  %719 = load i8, ptr %718, align 1, !tbaa !57
  %720 = sext i8 %719 to i32
  %721 = icmp eq i32 %720, 61
  br i1 %721, label %722, label %744

722:                                              ; preds = %714
  %723 = load double, ptr %52, align 8, !tbaa !51
  %724 = fcmp oge double %723, 0.000000e+00
  %725 = zext i1 %724 to i64
  %726 = select i1 %724, i8 0, i8 2
  %727 = load ptr, ptr %14, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.HighsBasis, ptr %727, i32 0, i32 8
  %729 = load i32, ptr %42, align 4, !tbaa !45
  %730 = sext i32 %729 to i64
  %731 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %728, i64 noundef %730) #6
  store i8 %726, ptr %731, align 1, !tbaa !52
  %732 = load double, ptr %51, align 8, !tbaa !51
  %733 = load ptr, ptr %15, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.HighsSolution, ptr %733, i32 0, i32 4
  %735 = load i32, ptr %42, align 4, !tbaa !45
  %736 = sext i32 %735 to i64
  %737 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %734, i64 noundef %736) #6
  store double %732, ptr %737, align 8, !tbaa !51
  %738 = load double, ptr %52, align 8, !tbaa !51
  %739 = load ptr, ptr %15, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.HighsSolution, ptr %739, i32 0, i32 5
  %741 = load i32, ptr %42, align 4, !tbaa !45
  %742 = sext i32 %741 to i64
  %743 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %740, i64 noundef %742) #6
  store double %738, ptr %743, align 8, !tbaa !51
  br label %759

744:                                              ; preds = %714
  store i8 1, ptr %43, align 1, !tbaa !48
  %745 = load ptr, ptr %9, align 8, !tbaa !5
  %746 = load i32, ptr %42, align 4, !tbaa !45
  %747 = load i32, ptr %37, align 4, !tbaa !45
  %748 = load ptr, ptr %12, align 8, !tbaa !5
  %749 = load i32, ptr %37, align 4, !tbaa !45
  %750 = sext i32 %749 to i64
  %751 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %748, i64 noundef %750) #6
  %752 = load i8, ptr %751, align 1, !tbaa !57
  %753 = sext i8 %752 to i32
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %745, i32 noundef 5, ptr noundef @.str.100, i32 noundef %746, i32 noundef %747, i32 noundef %753)
          to label %754 unwind label %755

754:                                              ; preds = %744
  br label %759

755:                                              ; preds = %744
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %29, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  br label %836

759:                                              ; preds = %754, %722
  br label %760

760:                                              ; preds = %759, %696
  br label %761

761:                                              ; preds = %760, %670
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  br label %762

762:                                              ; preds = %761, %609
  br label %763

763:                                              ; preds = %762, %599
  %764 = load i32, ptr %37, align 4, !tbaa !45
  %765 = add nsw i32 %764, 1
  store i32 %765, ptr %37, align 4, !tbaa !45
  br label %766

766:                                              ; preds = %763, %425
  %767 = load i8, ptr %43, align 1, !tbaa !48, !range !49, !noundef !50
  %768 = trunc i8 %767 to i1
  br i1 %768, label %769, label %818

769:                                              ; preds = %766
  %770 = load ptr, ptr %9, align 8, !tbaa !5
  %771 = load ptr, ptr %10, align 8, !tbaa !5
  %772 = getelementptr inbounds %class.HighsLp, ptr %771, i32 0, i32 5
  %773 = load i32, ptr %42, align 4, !tbaa !45
  %774 = sext i32 %773 to i64
  %775 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %772, i64 noundef %774) #6
  %776 = load double, ptr %775, align 8, !tbaa !51
  %777 = load ptr, ptr %10, align 8, !tbaa !5
  %778 = getelementptr inbounds %class.HighsLp, ptr %777, i32 0, i32 6
  %779 = load i32, ptr %42, align 4, !tbaa !45
  %780 = sext i32 %779 to i64
  %781 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %778, i64 noundef %780) #6
  %782 = load double, ptr %781, align 8, !tbaa !51
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %770, i32 noundef 5, ptr noundef @.str.93, double noundef %776, double noundef %782)
          to label %783 unwind label %810

783:                                              ; preds = %769
  %784 = load ptr, ptr %9, align 8, !tbaa !5
  %785 = load i32, ptr %42, align 4, !tbaa !45
  %786 = load i32, ptr %46, align 4, !tbaa !45
  %787 = load ptr, ptr %21, align 8, !tbaa !5
  %788 = load i32, ptr %46, align 4, !tbaa !45
  %789 = sext i32 %788 to i64
  %790 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %787, i64 noundef %789) #6
  %791 = load i32, ptr %790, align 4, !tbaa !45
  %792 = load i32, ptr %46, align 4, !tbaa !45
  %793 = load ptr, ptr %17, align 8, !tbaa !5
  %794 = load i32, ptr %46, align 4, !tbaa !45
  %795 = sext i32 %794 to i64
  %796 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %793, i64 noundef %795) #6
  %797 = load double, ptr %796, align 8, !tbaa !51
  %798 = load i32, ptr %46, align 4, !tbaa !45
  %799 = load ptr, ptr %19, align 8, !tbaa !5
  %800 = load i32, ptr %46, align 4, !tbaa !45
  %801 = sext i32 %800 to i64
  %802 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %799, i64 noundef %801) #6
  %803 = load double, ptr %802, align 8, !tbaa !51
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %784, i32 noundef 5, ptr noundef @.str.101, i32 noundef %785, i32 noundef %786, i32 noundef %791, i32 noundef %792, double noundef %797, i32 noundef %798, double noundef %803)
          to label %804 unwind label %810

804:                                              ; preds = %783
  %805 = load i8, ptr %43, align 1, !tbaa !48, !range !49, !noundef !50
  %806 = trunc i8 %805 to i1
  %807 = xor i1 %806, true
  br i1 %807, label %808, label %809

808:                                              ; preds = %804
  br label %815

809:                                              ; preds = %804
  call void @__assert_fail(ptr noundef @.str.95, ptr noundef @.str.52, i32 noundef 1297, ptr noundef @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

810:                                              ; preds = %815, %783, %769
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %29, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %30, align 4
  br label %836

814:                                              ; No predecessors!
  br label %815

815:                                              ; preds = %814, %808
  %816 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %816, i32 noundef 5, ptr noundef @.str.102)
          to label %817 unwind label %810

817:                                              ; preds = %815
  store i32 -1, ptr %8, align 4
  store i32 1, ptr %33, align 4
  br label %830

818:                                              ; preds = %766
  %819 = load ptr, ptr %14, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.HighsBasis, ptr %819, i32 0, i32 8
  %821 = load i32, ptr %42, align 4, !tbaa !45
  %822 = sext i32 %821 to i64
  %823 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %820, i64 noundef %822) #6
  %824 = load i8, ptr %823, align 1, !tbaa !52
  %825 = icmp eq i8 %824, 1
  br i1 %825, label %826, label %829

826:                                              ; preds = %818
  %827 = load i32, ptr %31, align 4, !tbaa !45
  %828 = add nsw i32 %827, 1
  store i32 %828, ptr %31, align 4, !tbaa !45
  br label %829

829:                                              ; preds = %826, %818
  store i32 0, ptr %33, align 4
  br label %830

830:                                              ; preds = %829, %817
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #6
  %831 = load i32, ptr %33, align 4
  switch i32 %831, label %837 [
    i32 0, label %832
  ]

832:                                              ; preds = %830
  br label %833

833:                                              ; preds = %832
  %834 = load i32, ptr %42, align 4, !tbaa !45
  %835 = add nsw i32 %834, 1
  store i32 %835, ptr %42, align 4, !tbaa !45
  br label %399, !llvm.loop !58

836:                                              ; preds = %810, %755, %592
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %933

837:                                              ; preds = %830, %405
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  %838 = load i32, ptr %33, align 4
  switch i32 %838, label %932 [
    i32 8, label %839
  ]

839:                                              ; preds = %837
  %840 = load i32, ptr %31, align 4, !tbaa !45
  %841 = load ptr, ptr %10, align 8, !tbaa !5
  %842 = getelementptr inbounds %class.HighsLp, ptr %841, i32 0, i32 1
  %843 = load i32, ptr %842, align 4, !tbaa !44
  %844 = icmp eq i32 %840, %843
  br i1 %844, label %845, label %846

845:                                              ; preds = %839
  br label %848

846:                                              ; preds = %839
  call void @__assert_fail(ptr noundef @.str.103, ptr noundef @.str.52, i32 noundef 1305, ptr noundef @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

847:                                              ; No predecessors!
  br label %848

848:                                              ; preds = %847, %845
  %849 = load i32, ptr %37, align 4, !tbaa !45
  %850 = load ptr, ptr %13, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.IpxSolution, ptr %850, i32 0, i32 1
  %852 = load i32, ptr %851, align 4, !tbaa !46
  %853 = icmp eq i32 %849, %852
  br i1 %853, label %854, label %855

854:                                              ; preds = %848
  br label %857

855:                                              ; preds = %848
  call void @__assert_fail(ptr noundef @.str.104, ptr noundef @.str.52, i32 noundef 1306, ptr noundef @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

856:                                              ; No predecessors!
  br label %857

857:                                              ; preds = %856, %854
  %858 = load i32, ptr %38, align 4, !tbaa !45
  %859 = load ptr, ptr %13, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.IpxSolution, ptr %859, i32 0, i32 0
  %861 = load i32, ptr %860, align 8, !tbaa !59
  %862 = icmp eq i32 %858, %861
  br i1 %862, label %863, label %864

863:                                              ; preds = %857
  br label %866

864:                                              ; preds = %857
  call void @__assert_fail(ptr noundef @.str.105, ptr noundef @.str.52, i32 noundef 1307, ptr noundef @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

865:                                              ; No predecessors!
  br label %866

866:                                              ; preds = %865, %863
  %867 = load ptr, ptr %10, align 8, !tbaa !5
  %868 = getelementptr inbounds %class.HighsLp, ptr %867, i32 0, i32 8
  %869 = load i32, ptr %868, align 8, !tbaa !60
  %870 = icmp eq i32 %869, -1
  br i1 %870, label %871, label %910

871:                                              ; preds = %866
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  store i32 0, ptr %53, align 4, !tbaa !45
  br label %872

872:                                              ; preds = %887, %871
  %873 = load i32, ptr %53, align 4, !tbaa !45
  %874 = load ptr, ptr %10, align 8, !tbaa !5
  %875 = getelementptr inbounds %class.HighsLp, ptr %874, i32 0, i32 0
  %876 = load i32, ptr %875, align 8, !tbaa !9
  %877 = icmp slt i32 %873, %876
  br i1 %877, label %879, label %878

878:                                              ; preds = %872
  store i32 11, ptr %33, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  br label %890

879:                                              ; preds = %872
  %880 = load ptr, ptr %15, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.HighsSolution, ptr %880, i32 0, i32 3
  %882 = load i32, ptr %53, align 4, !tbaa !45
  %883 = sext i32 %882 to i64
  %884 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %881, i64 noundef %883) #6
  %885 = load double, ptr %884, align 8, !tbaa !51
  %886 = fmul double %885, -1.000000e+00
  store double %886, ptr %884, align 8, !tbaa !51
  br label %887

887:                                              ; preds = %879
  %888 = load i32, ptr %53, align 4, !tbaa !45
  %889 = add nsw i32 %888, 1
  store i32 %889, ptr %53, align 4, !tbaa !45
  br label %872, !llvm.loop !61

890:                                              ; preds = %878
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  store i32 0, ptr %54, align 4, !tbaa !45
  br label %891

891:                                              ; preds = %906, %890
  %892 = load i32, ptr %54, align 4, !tbaa !45
  %893 = load ptr, ptr %10, align 8, !tbaa !5
  %894 = getelementptr inbounds %class.HighsLp, ptr %893, i32 0, i32 1
  %895 = load i32, ptr %894, align 4, !tbaa !44
  %896 = icmp slt i32 %892, %895
  br i1 %896, label %898, label %897

897:                                              ; preds = %891
  store i32 14, ptr %33, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br label %909

898:                                              ; preds = %891
  %899 = load ptr, ptr %15, align 8, !tbaa !5
  %900 = getelementptr inbounds %struct.HighsSolution, ptr %899, i32 0, i32 5
  %901 = load i32, ptr %54, align 4, !tbaa !45
  %902 = sext i32 %901 to i64
  %903 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %900, i64 noundef %902) #6
  %904 = load double, ptr %903, align 8, !tbaa !51
  %905 = fmul double %904, -1.000000e+00
  store double %905, ptr %903, align 8, !tbaa !51
  br label %906

906:                                              ; preds = %898
  %907 = load i32, ptr %54, align 4, !tbaa !45
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr %54, align 4, !tbaa !45
  br label %891, !llvm.loop !62

909:                                              ; preds = %897
  br label %910

910:                                              ; preds = %909, %866
  %911 = load i32, ptr %39, align 4, !tbaa !45
  %912 = icmp ne i32 %911, 0
  br i1 %912, label %913, label %923

913:                                              ; preds = %910
  %914 = load ptr, ptr %9, align 8, !tbaa !5
  %915 = load i32, ptr %39, align 4, !tbaa !45
  %916 = load i32, ptr %40, align 4, !tbaa !45
  %917 = load i32, ptr %41, align 4, !tbaa !45
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %914, i32 noundef 1, ptr noundef @.str.106, i32 noundef %915, i32 noundef %916, i32 noundef %917)
          to label %918 unwind label %919

918:                                              ; preds = %913
  br label %923

919:                                              ; preds = %913
  %920 = landingpad { ptr, i32 }
          cleanup
  %921 = extractvalue { ptr, i32 } %920, 0
  store ptr %921, ptr %29, align 8
  %922 = extractvalue { ptr, i32 } %920, 1
  store i32 %922, ptr %30, align 4
  br label %933

923:                                              ; preds = %918, %910
  %924 = load ptr, ptr %15, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.HighsSolution, ptr %924, i32 0, i32 0
  store i8 1, ptr %925, align 8, !tbaa !63
  %926 = load ptr, ptr %15, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.HighsSolution, ptr %926, i32 0, i32 1
  store i8 1, ptr %927, align 1, !tbaa !65
  %928 = load ptr, ptr %14, align 8, !tbaa !5
  %929 = getelementptr inbounds %struct.HighsBasis, ptr %928, i32 0, i32 0
  store i8 1, ptr %929, align 8, !tbaa !66
  %930 = load ptr, ptr %14, align 8, !tbaa !5
  %931 = getelementptr inbounds %struct.HighsBasis, ptr %930, i32 0, i32 2
  store i8 1, ptr %931, align 2, !tbaa !72
  store i32 0, ptr %8, align 4
  store i32 1, ptr %33, align 4
  br label %932

932:                                              ; preds = %923, %837
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  br label %934

933:                                              ; preds = %919, %836
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  br label %936

934:                                              ; preds = %932, %393
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #6
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  %935 = load i32, ptr %8, align 4
  ret i32 %935

936:                                              ; preds = %933, %267
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  br label %937

937:                                              ; preds = %936, %119
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #6
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  br label %938

938:                                              ; preds = %937
  %939 = load ptr, ptr %29, align 8
  %940 = load i32, ptr %30, align 4
  %941 = insertvalue { ptr, i32 } poison, ptr %939, 0
  %942 = insertvalue { ptr, i32 } %941, i32 %940, 1
  resume { ptr, i32 } %942
}

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

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

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

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


; 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.92 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [14 x i8], align 1
@__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution = external hidden unnamed_addr constant [199 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [57 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: 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.fmuladd.f64(double, double, double) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(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 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 #5

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution(ptr noundef nonnull align 8 dereferenceable(89) %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, ptr noundef nonnull align 8 dereferenceable(152) %4, ptr noundef nonnull align 8 dereferenceable(96) %5, ptr noundef nonnull align 8 dereferenceable(104) %6) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %8 = alloca %"class.std::vector.3", align 8
  %9 = alloca double, align 8
  %10 = getelementptr inbounds i8, ptr %6, i64 8
  %11 = load i32, ptr %1, align 8, !tbaa !5
  %12 = sext i32 %11 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %12)
  %13 = getelementptr inbounds i8, ptr %6, i64 56
  %14 = getelementptr inbounds i8, ptr %1, i64 4
  %15 = load i32, ptr %14, align 4, !tbaa !43
  %16 = sext i32 %15 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %16)
  %17 = getelementptr inbounds i8, ptr %6, i64 32
  %18 = load i32, ptr %1, align 8, !tbaa !5
  %19 = sext i32 %18 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %19)
  %20 = getelementptr inbounds i8, ptr %6, i64 80
  %21 = load i32, ptr %14, align 4, !tbaa !43
  %22 = sext i32 %21 to i64
  tail call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %22)
  %23 = getelementptr inbounds i8, ptr %5, i64 48
  %24 = load i32, ptr %1, align 8, !tbaa !5
  %25 = sext i32 %24 to i64
  tail call void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %25)
  %26 = getelementptr inbounds i8, ptr %5, i64 72
  %27 = load i32, ptr %14, align 4, !tbaa !43
  %28 = sext i32 %27 to i64
  tail call void @_ZNSt6vectorI16HighsBasisStatusSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %28)
  %29 = getelementptr inbounds i8, ptr %4, i64 8
  %30 = getelementptr inbounds i8, ptr %4, i64 32
  %31 = getelementptr inbounds i8, ptr %4, i64 56
  %32 = getelementptr inbounds i8, ptr %4, i64 80
  %33 = getelementptr inbounds i8, ptr %4, i64 104
  %34 = getelementptr inbounds i8, ptr %4, i64 128
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #6
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  %35 = getelementptr inbounds i8, ptr %4, i64 4
  %36 = load i32, ptr %35, align 4, !tbaa !44
  %37 = load i32, ptr %14, align 4, !tbaa !43
  %38 = icmp slt i32 %36, %37
  br i1 %38, label %39, label %44

39:                                               ; preds = %7
  %40 = sext i32 %37 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  store double 0.000000e+00, ptr %9, align 8, !tbaa !46
  invoke void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %40, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %41 unwind label %42

41:                                               ; preds = %39
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %44

42:                                               ; preds = %39
  %43 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %319

44:                                               ; preds = %41, %7
  %45 = load i32, ptr %1, align 8, !tbaa !5
  %46 = icmp sgt i32 %45, 0
  br i1 %46, label %.lr.ph455, label %.preheader396

.lr.ph455:                                        ; preds = %44
  %47 = getelementptr inbounds i8, ptr %1, i64 144
  %48 = getelementptr inbounds i8, ptr %1, i64 192
  %49 = getelementptr inbounds i8, ptr %1, i64 216
  br label %54

.preheader396:                                    ; preds = %.loopexit397, %44
  %.0316.lcssa = phi i32 [ 0, %44 ], [ %spec.select, %.loopexit397 ]
  %.lcssa = phi i32 [ %45, %44 ], [ %144, %.loopexit397 ]
  %50 = load i32, ptr %14, align 4, !tbaa !43
  %51 = icmp sgt i32 %50, 0
  br i1 %51, label %.lr.ph465, label %._crit_edge

.lr.ph465:                                        ; preds = %.preheader396
  %52 = getelementptr inbounds i8, ptr %1, i64 80
  %53 = getelementptr inbounds i8, ptr %1, i64 104
  br label %147

54:                                               ; preds = %.lr.ph455, %.loopexit397
  %indvars.iv506 = phi i64 [ 0, %.lr.ph455 ], [ %indvars.iv.next507.pre-phi, %.loopexit397 ]
  %.0316454 = phi i32 [ 0, %.lr.ph455 ], [ %spec.select, %.loopexit397 ]
  %55 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv506) #6
  %56 = load i32, ptr %55, align 4, !tbaa !47
  %57 = icmp eq i32 %56, 0
  br i1 %57, label %58, label %63

58:                                               ; preds = %54
  %59 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv506) #6
  store i8 1, ptr %59, align 1, !tbaa !48
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %indvars.iv506) #6
  %61 = load double, ptr %60, align 8, !tbaa !46
  %62 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv506) #6
  store double %61, ptr %62, align 8, !tbaa !46
  br label %.critedge

63:                                               ; preds = %54
  %64 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv506) #6
  %65 = load i32, ptr %64, align 4, !tbaa !47
  %66 = icmp eq i32 %65, -1
  br i1 %66, label %67, label %74

67:                                               ; preds = %63
  %68 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv506) #6
  store i8 0, ptr %68, align 1, !tbaa !48
  %69 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %indvars.iv506) #6
  %70 = load double, ptr %69, align 8, !tbaa !46
  %71 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv506) #6
  store double %70, ptr %71, align 8, !tbaa !46
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv506) #6
  %73 = load double, ptr %72, align 8, !tbaa !46
  br label %.critedge

74:                                               ; preds = %63
  %75 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv506) #6
  %76 = load i32, ptr %75, align 4, !tbaa !47
  %77 = icmp eq i32 %76, -2
  br i1 %77, label %78, label %85

78:                                               ; preds = %74
  %79 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv506) #6
  store i8 2, ptr %79, align 1, !tbaa !48
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %indvars.iv506) #6
  %81 = load double, ptr %80, align 8, !tbaa !46
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv506) #6
  store double %81, ptr %82, align 8, !tbaa !46
  %83 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv506) #6
  %84 = load double, ptr %83, align 8, !tbaa !46
  br label %.critedge

85:                                               ; preds = %74
  %86 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv506) #6
  %87 = load i32, ptr %86, align 4, !tbaa !47
  %88 = icmp eq i32 %87, -3
  br i1 %88, label %89, label %96

89:                                               ; preds = %85
  %90 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv506) #6
  store i8 3, ptr %90, align 1, !tbaa !48
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %indvars.iv506) #6
  %92 = load double, ptr %91, align 8, !tbaa !46
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv506) #6
  store double %92, ptr %93, align 8, !tbaa !46
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv506) #6
  %95 = load double, ptr %94, align 8, !tbaa !46
  br label %.critedge

96:                                               ; preds = %85
  %97 = trunc nuw nsw i64 %indvars.iv506 to i32
  %98 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv506) #6
  %99 = load i32, ptr %98, align 4, !tbaa !47
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 5, ptr noundef nonnull @.str.92, i32 noundef %97, i32 noundef %99)
          to label %102 unwind label %100

100:                                              ; preds = %109, %102, %96
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %319

102:                                              ; preds = %96
  %103 = getelementptr inbounds i8, ptr %1, i64 32
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %103, i64 noundef %indvars.iv506) #6
  %105 = load double, ptr %104, align 8, !tbaa !46
  %106 = getelementptr inbounds i8, ptr %1, i64 56
  %107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %106, i64 noundef %indvars.iv506) #6
  %108 = load double, ptr %107, align 8, !tbaa !46
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 5, ptr noundef nonnull @.str.93, double noundef %105, double noundef %108)
          to label %109 unwind label %100

109:                                              ; preds = %102
  %110 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %indvars.iv506) #6
  %111 = load i32, ptr %110, align 4, !tbaa !47
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %indvars.iv506) #6
  %113 = load double, ptr %112, align 8, !tbaa !46
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv506) #6
  %115 = load double, ptr %114, align 8, !tbaa !46
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 5, ptr noundef nonnull @.str.94, i32 noundef %97, i32 noundef %97, i32 noundef %111, i32 noundef %97, double noundef %113, i32 noundef %97, double noundef %115)
          to label %116 unwind label %100

116:                                              ; preds = %109
  call void @__assert_fail(ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.52, i32 noundef 1158, ptr noundef nonnull @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

.critedge:                                        ; preds = %58, %67, %78, %89
  %.sink = phi double [ 0.000000e+00, %58 ], [ %73, %67 ], [ %84, %78 ], [ %95, %89 ]
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv506) #6
  store double %.sink, ptr %117, align 8, !tbaa !46
  br i1 %38, label %118, label %.critedge..loopexit397_crit_edge

.critedge..loopexit397_crit_edge:                 ; preds = %.critedge
  %.pre518 = add nuw nsw i64 %indvars.iv506, 1
  br label %.loopexit397

118:                                              ; preds = %.critedge
  %119 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %indvars.iv506) #6
  %120 = load i32, ptr %119, align 4, !tbaa !47
  %121 = add nuw nsw i64 %indvars.iv506, 1
  %122 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %121) #6
  %123 = load i32, ptr %122, align 4, !tbaa !47
  %124 = icmp slt i32 %120, %123
  br i1 %124, label %.lr.ph.preheader, label %.loopexit397

.lr.ph.preheader:                                 ; preds = %118
  %125 = sext i32 %120 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ %125, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv) #6
  %127 = load i32, ptr %126, align 4, !tbaa !47
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %indvars.iv506) #6
  %129 = load double, ptr %128, align 8, !tbaa !46
  %130 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %indvars.iv) #6
  %131 = load double, ptr %130, align 8, !tbaa !46
  %132 = sext i32 %127 to i64
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %132) #6
  %134 = load double, ptr %133, align 8, !tbaa !46
  %135 = call double @llvm.fmuladd.f64(double %129, double %131, double %134)
  store double %135, ptr %133, align 8, !tbaa !46
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %136 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %121) #6
  %137 = load i32, ptr %136, align 4, !tbaa !47
  %138 = sext i32 %137 to i64
  %139 = icmp slt i64 %indvars.iv.next, %138
  br i1 %139, label %.lr.ph, label %.loopexit397, !llvm.loop !50

.loopexit397:                                     ; preds = %.lr.ph, %.critedge..loopexit397_crit_edge, %118
  %indvars.iv.next507.pre-phi = phi i64 [ %.pre518, %.critedge..loopexit397_crit_edge ], [ %121, %118 ], [ %121, %.lr.ph ]
  %140 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv506) #6
  %141 = load i8, ptr %140, align 1, !tbaa !48
  %142 = icmp eq i8 %141, 1
  %143 = zext i1 %142 to i32
  %spec.select = add nuw nsw i32 %.0316454, %143
  %144 = load i32, ptr %1, align 8, !tbaa !5
  %145 = sext i32 %144 to i64
  %146 = icmp slt i64 %indvars.iv.next507.pre-phi, %145
  br i1 %146, label %54, label %.preheader396, !llvm.loop !52

147:                                              ; preds = %.lr.ph465, %275
  %indvars.iv509 = phi i64 [ 0, %.lr.ph465 ], [ %indvars.iv.next510, %275 ]
  %.4320464 = phi i32 [ %.0316.lcssa, %.lr.ph465 ], [ %spec.select366, %275 ]
  %.0331463 = phi i32 [ 0, %.lr.ph465 ], [ %.1332377, %275 ]
  %.0339460 = phi i32 [ 0, %.lr.ph465 ], [ %.3342376, %275 ]
  %.0344459 = phi i32 [ 0, %.lr.ph465 ], [ %.3347375, %275 ]
  %.0349458 = phi i32 [ 0, %.lr.ph465 ], [ %.2351374, %275 ]
  %.0353457 = phi i32 [ %.lcssa, %.lr.ph465 ], [ %.2355373, %275 ]
  %148 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %indvars.iv509) #6
  %149 = load double, ptr %148, align 8, !tbaa !46
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv509) #6
  %151 = load double, ptr %150, align 8, !tbaa !46
  %152 = fcmp oeq double %149, 0xFFF0000000000000
  %153 = fcmp oeq double %151, 0x7FF0000000000000
  %or.cond = select i1 %152, i1 %153, i1 false
  br i1 %or.cond, label %.thread, label %159

.thread:                                          ; preds = %147
  %154 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv509) #6
  store i8 1, ptr %154, align 1, !tbaa !48
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv509) #6
  %156 = load double, ptr %155, align 8, !tbaa !46
  %157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %indvars.iv509) #6
  store double %156, ptr %157, align 8, !tbaa !46
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %indvars.iv509) #6
  store double 0.000000e+00, ptr %158, align 8, !tbaa !46
  br label %275

159:                                              ; preds = %147
  %160 = fcmp one double %149, 0xFFF0000000000000
  %161 = fcmp one double %151, 0x7FF0000000000000
  %or.cond6 = select i1 %160, i1 %161, i1 false
  %162 = fcmp olt double %149, %151
  %or.cond365 = select i1 %or.cond6, i1 %162, i1 false
  br i1 %or.cond365, label %163, label %201

163:                                              ; preds = %159
  %164 = add nsw i32 %.0349458, 1
  %165 = sext i32 %.0353457 to i64
  %166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %165) #6
  %167 = load double, ptr %166, align 8, !tbaa !46
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %165) #6
  %169 = load double, ptr %168, align 8, !tbaa !46
  %170 = sext i32 %.0331463 to i64
  %171 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %170) #6
  %172 = load i32, ptr %171, align 4, !tbaa !47
  %173 = icmp eq i32 %172, 0
  br i1 %173, label %174, label %176

174:                                              ; preds = %163
  %175 = add nsw i32 %.0344459, 1
  br label %.thread391

176:                                              ; preds = %163
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %165) #6
  %178 = load i32, ptr %177, align 4, !tbaa !47
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %182

180:                                              ; preds = %176
  %181 = add nsw i32 %.0339460, 1
  br label %.thread391

182:                                              ; preds = %176
  %183 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %165) #6
  %184 = load i32, ptr %183, align 4, !tbaa !47
  %185 = icmp eq i32 %184, -1
  br i1 %185, label %.thread391, label %186

186:                                              ; preds = %182
  %187 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %165) #6
  %188 = load i32, ptr %187, align 4, !tbaa !47
  %189 = icmp eq i32 %188, -2
  br i1 %189, label %190, label %195

190:                                              ; preds = %186
  %191 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %165) #6
  %192 = load i32, ptr %191, align 4, !tbaa !47
  %193 = icmp eq i32 %192, -2
  br i1 %193, label %.thread391, label %194

194:                                              ; preds = %190
  call void @__assert_fail(ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.52, i32 noundef 1219, ptr noundef nonnull @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

195:                                              ; preds = %186
  %196 = trunc nuw nsw i64 %indvars.iv509 to i32
  %197 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %165) #6
  %198 = load i32, ptr %197, align 4, !tbaa !47
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 5, ptr noundef nonnull @.str.98, i32 noundef %196, i32 noundef %.0331463, i32 noundef %.0353457, i32 noundef %198)
          to label %.thread384 unwind label %199

199:                                              ; preds = %195
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %319

201:                                              ; preds = %159
  %202 = sext i32 %.0331463 to i64
  %203 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %202) #6
  %204 = load i32, ptr %203, align 4, !tbaa !47
  %205 = icmp eq i32 %204, 0
  br i1 %205, label %206, label %213

206:                                              ; preds = %201
  %207 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv509) #6
  store i8 1, ptr %207, align 1, !tbaa !48
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %202) #6
  %209 = load double, ptr %208, align 8, !tbaa !46
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %202) #6
  %211 = load double, ptr %210, align 8, !tbaa !46
  %212 = fsub double %209, %211
  br label %.thread378

213:                                              ; preds = %201
  %214 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %202) #6
  %215 = load i32, ptr %214, align 4, !tbaa !47
  %216 = icmp eq i32 %215, -1
  br i1 %216, label %218, label %217

217:                                              ; preds = %213
  call void @__assert_fail(ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.52, i32 noundef 1244, ptr noundef nonnull @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

218:                                              ; preds = %213
  %219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %202) #6
  %220 = load double, ptr %219, align 8, !tbaa !46
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %202) #6
  %222 = load double, ptr %221, align 8, !tbaa !46
  %223 = fsub double %220, %222
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %202) #6
  %225 = load double, ptr %224, align 8, !tbaa !46
  %226 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %202) #6
  %227 = load i8, ptr %226, align 1, !tbaa !53
  %228 = icmp eq i8 %227, 62
  br i1 %228, label %229, label %231

229:                                              ; preds = %218
  %230 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv509) #6
  store i8 0, ptr %230, align 1, !tbaa !48
  br label %.thread378

231:                                              ; preds = %218
  %232 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %202) #6
  %233 = load i8, ptr %232, align 1, !tbaa !53
  %234 = icmp eq i8 %233, 60
  br i1 %234, label %235, label %237

235:                                              ; preds = %231
  %236 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv509) #6
  store i8 2, ptr %236, align 1, !tbaa !48
  br label %.thread378

237:                                              ; preds = %231
  %238 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %202) #6
  %239 = load i8, ptr %238, align 1, !tbaa !53
  %240 = icmp eq i8 %239, 61
  br i1 %240, label %241, label %245

241:                                              ; preds = %237
  %242 = fcmp oge double %225, 0.000000e+00
  %243 = select i1 %242, i8 0, i8 2
  %244 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv509) #6
  store i8 %243, ptr %244, align 1, !tbaa !48
  br label %.thread378

245:                                              ; preds = %237
  %246 = trunc nuw nsw i64 %indvars.iv509 to i32
  %247 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %202) #6
  %248 = load i8, ptr %247, align 1, !tbaa !53
  %249 = sext i8 %248 to i32
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 5, ptr noundef nonnull @.str.100, i32 noundef %246, i32 noundef %.0331463, i32 noundef %249)
          to label %.thread384 unwind label %250

250:                                              ; preds = %245
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %319

.thread378:                                       ; preds = %206, %229, %235, %241
  %.sink543 = phi double [ %212, %206 ], [ %223, %229 ], [ %223, %235 ], [ %223, %241 ]
  %.sink541 = phi double [ 0.000000e+00, %206 ], [ %225, %229 ], [ %225, %235 ], [ %225, %241 ]
  %252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %indvars.iv509) #6
  store double %.sink543, ptr %252, align 8, !tbaa !46
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %indvars.iv509) #6
  store double %.sink541, ptr %253, align 8, !tbaa !46
  %254 = add nsw i32 %.0331463, 1
  br label %275

.thread391:                                       ; preds = %190, %182, %174, %180
  %.sink548 = phi i8 [ 1, %174 ], [ 1, %180 ], [ 0, %182 ], [ 2, %190 ]
  %.sink545 = phi double [ 0.000000e+00, %174 ], [ 0.000000e+00, %180 ], [ %169, %182 ], [ %169, %190 ]
  %.1345.ph = phi i32 [ %175, %174 ], [ %.0344459, %180 ], [ %.0344459, %182 ], [ %.0344459, %190 ]
  %.1340.ph = phi i32 [ %.0339460, %174 ], [ %181, %180 ], [ %.0339460, %182 ], [ %.0339460, %190 ]
  %255 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv509) #6
  store i8 %.sink548, ptr %255, align 1, !tbaa !48
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %indvars.iv509) #6
  store double %167, ptr %256, align 8, !tbaa !46
  %257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %indvars.iv509) #6
  store double %.sink545, ptr %257, align 8, !tbaa !46
  %258 = add nsw i32 %.0353457, 1
  %259 = add nsw i32 %.0331463, 1
  br label %275

.thread384:                                       ; preds = %195, %245
  %.0338461494 = phi i32 [ %196, %195 ], [ %246, %245 ]
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %indvars.iv509) #6
  %261 = load double, ptr %260, align 8, !tbaa !46
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv509) #6
  %263 = load double, ptr %262, align 8, !tbaa !46
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 5, ptr noundef nonnull @.str.93, double noundef %261, double noundef %263)
          to label %264 unwind label %273

264:                                              ; preds = %.thread384
  %265 = sext i32 %.0331463 to i64
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %265) #6
  %267 = load i32, ptr %266, align 4, !tbaa !47
  %268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %30, i64 noundef %265) #6
  %269 = load double, ptr %268, align 8, !tbaa !46
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %265) #6
  %271 = load double, ptr %270, align 8, !tbaa !46
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 5, ptr noundef nonnull @.str.101, i32 noundef %.0338461494, i32 noundef %.0331463, i32 noundef %267, i32 noundef %.0331463, double noundef %269, i32 noundef %.0331463, double noundef %271)
          to label %272 unwind label %273

272:                                              ; preds = %264
  call void @__assert_fail(ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.52, i32 noundef 1297, ptr noundef nonnull @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

273:                                              ; preds = %264, %.thread384
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %319

275:                                              ; preds = %.thread391, %.thread378, %.thread
  %.1332377 = phi i32 [ %.0331463, %.thread ], [ %254, %.thread378 ], [ %259, %.thread391 ]
  %.3342376 = phi i32 [ %.0339460, %.thread ], [ %.0339460, %.thread378 ], [ %.1340.ph, %.thread391 ]
  %.3347375 = phi i32 [ %.0344459, %.thread ], [ %.0344459, %.thread378 ], [ %.1345.ph, %.thread391 ]
  %.2351374 = phi i32 [ %.0349458, %.thread ], [ %.0349458, %.thread378 ], [ %164, %.thread391 ]
  %.2355373 = phi i32 [ %.0353457, %.thread ], [ %.0353457, %.thread378 ], [ %258, %.thread391 ]
  %276 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorI16HighsBasisStatusSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %indvars.iv509) #6
  %277 = load i8, ptr %276, align 1, !tbaa !48
  %278 = icmp eq i8 %277, 1
  %279 = zext i1 %278 to i32
  %spec.select366 = add nsw i32 %.4320464, %279
  %indvars.iv.next510 = add nuw nsw i64 %indvars.iv509, 1
  %280 = load i32, ptr %14, align 4, !tbaa !43
  %281 = sext i32 %280 to i64
  %282 = icmp slt i64 %indvars.iv.next510, %281
  br i1 %282, label %147, label %._crit_edge, !llvm.loop !54

._crit_edge:                                      ; preds = %275, %.preheader396
  %.0353.lcssa = phi i32 [ %.lcssa, %.preheader396 ], [ %.2355373, %275 ]
  %.0349.lcssa = phi i32 [ 0, %.preheader396 ], [ %.2351374, %275 ]
  %.0344.lcssa = phi i32 [ 0, %.preheader396 ], [ %.3347375, %275 ]
  %.0339.lcssa = phi i32 [ 0, %.preheader396 ], [ %.3342376, %275 ]
  %.0331.lcssa = phi i32 [ 0, %.preheader396 ], [ %.1332377, %275 ]
  %.4320.lcssa = phi i32 [ %.0316.lcssa, %.preheader396 ], [ %spec.select366, %275 ]
  %.lcssa399 = phi i32 [ %50, %.preheader396 ], [ %280, %275 ]
  %283 = icmp eq i32 %.4320.lcssa, %.lcssa399
  br i1 %283, label %285, label %284

284:                                              ; preds = %._crit_edge
  call void @__assert_fail(ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.52, i32 noundef 1305, ptr noundef nonnull @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

285:                                              ; preds = %._crit_edge
  %286 = load i32, ptr %35, align 4, !tbaa !44
  %287 = icmp eq i32 %.0331.lcssa, %286
  br i1 %287, label %289, label %288

288:                                              ; preds = %285
  call void @__assert_fail(ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.52, i32 noundef 1306, ptr noundef nonnull @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

289:                                              ; preds = %285
  %290 = load i32, ptr %4, align 8, !tbaa !55
  %291 = icmp eq i32 %.0353.lcssa, %290
  br i1 %291, label %293, label %292

292:                                              ; preds = %289
  call void @__assert_fail(ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.52, i32 noundef 1307, ptr noundef nonnull @__PRETTY_FUNCTION__._Z36ipxBasicSolutionToHighsBasicSolutionRK15HighsLogOptionsRK7HighsLpRKSt6vectorIdSaIdEERKS5_IcSaIcEERK11IpxSolutionR10HighsBasisR13HighsSolution) #7
  unreachable

293:                                              ; preds = %289
  %294 = getelementptr inbounds i8, ptr %1, i64 240
  %295 = load i32, ptr %294, align 8, !tbaa !56
  %296 = icmp eq i32 %295, -1
  br i1 %296, label %.preheader395, label %.loopexit

.preheader395:                                    ; preds = %293
  %297 = load i32, ptr %1, align 8, !tbaa !5
  %298 = icmp sgt i32 %297, 0
  br i1 %298, label %.lr.ph474, label %.preheader

.preheader.loopexit:                              ; preds = %.lr.ph474
  %.pre = load i32, ptr %14, align 4, !tbaa !43
  br label %.preheader

.preheader:                                       ; preds = %.preheader.loopexit, %.preheader395
  %299 = phi i32 [ %.pre, %.preheader.loopexit ], [ %.4320.lcssa, %.preheader395 ]
  %300 = icmp sgt i32 %299, 0
  br i1 %300, label %.lr.ph476, label %.loopexit

.lr.ph474:                                        ; preds = %.preheader395, %.lr.ph474
  %indvars.iv512 = phi i64 [ %indvars.iv.next513, %.lr.ph474 ], [ 0, %.preheader395 ]
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv512) #6
  %302 = load double, ptr %301, align 8, !tbaa !46
  %303 = fneg double %302
  store double %303, ptr %301, align 8, !tbaa !46
  %indvars.iv.next513 = add nuw nsw i64 %indvars.iv512, 1
  %304 = load i32, ptr %1, align 8, !tbaa !5
  %305 = sext i32 %304 to i64
  %306 = icmp slt i64 %indvars.iv.next513, %305
  br i1 %306, label %.lr.ph474, label %.preheader.loopexit, !llvm.loop !57

.lr.ph476:                                        ; preds = %.preheader, %.lr.ph476
  %indvars.iv515 = phi i64 [ %indvars.iv.next516, %.lr.ph476 ], [ 0, %.preheader ]
  %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %indvars.iv515) #6
  %308 = load double, ptr %307, align 8, !tbaa !46
  %309 = fneg double %308
  store double %309, ptr %307, align 8, !tbaa !46
  %indvars.iv.next516 = add nuw nsw i64 %indvars.iv515, 1
  %310 = load i32, ptr %14, align 4, !tbaa !43
  %311 = sext i32 %310 to i64
  %312 = icmp slt i64 %indvars.iv.next516, %311
  br i1 %312, label %.lr.ph476, label %.loopexit, !llvm.loop !58

.loopexit:                                        ; preds = %.lr.ph476, %.preheader, %293
  %.not = icmp eq i32 %.0349.lcssa, 0
  br i1 %.not, label %316, label %313

313:                                              ; preds = %.loopexit
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %0, i32 noundef 1, ptr noundef nonnull @.str.106, i32 noundef %.0349.lcssa, i32 noundef %.0344.lcssa, i32 noundef %.0339.lcssa)
          to label %316 unwind label %314

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

316:                                              ; preds = %313, %.loopexit
  store i8 1, ptr %6, align 8, !tbaa !59
  %317 = getelementptr inbounds i8, ptr %6, i64 1
  store i8 1, ptr %317, align 1, !tbaa !61
  store i8 1, ptr %5, align 8, !tbaa !62
  %318 = getelementptr inbounds i8, ptr %5, i64 2
  store i8 1, ptr %318, align 2, !tbaa !68
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  ret i32 0

319:                                              ; preds = %100, %199, %250, %273, %314, %42
  %.pn361.pn.pn = phi { ptr, i32 } [ %43, %42 ], [ %101, %100 ], [ %315, %314 ], [ %274, %273 ], [ %200, %199 ], [ %251, %250 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  resume { ptr, i32 } %.pn361.pn.pn
}

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }
attributes #7 = { 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, !7, i64 4}
!45 = !{!"_ZTS11IpxSolution", !7, i64 0, !7, i64 4, !10, i64 8, !10, i64 32, !10, i64 56, !10, i64 80, !17, i64 104, !17, i64 128}
!46 = !{!22, !22, i64 0}
!47 = !{!7, !7, i64 0}
!48 = !{!49, !49, i64 0}
!49 = !{!"_ZTS16HighsBasisStatus", !8, i64 0}
!50 = distinct !{!50, !51}
!51 = !{!"llvm.loop.mustprogress"}
!52 = distinct !{!52, !51}
!53 = !{!8, !8, i64 0}
!54 = distinct !{!54, !51}
!55 = !{!45, !7, i64 0}
!56 = !{!6, !21, i64 240}
!57 = distinct !{!57, !51}
!58 = distinct !{!58, !51}
!59 = !{!60, !41, i64 0}
!60 = !{!"_ZTS13HighsSolution", !41, i64 0, !41, i64 1, !10, i64 8, !10, i64 32, !10, i64 56, !10, i64 80}
!61 = !{!60, !41, i64 1}
!62 = !{!63, !41, i64 0}
!63 = !{!"_ZTS10HighsBasis", !41, i64 0, !41, i64 1, !41, i64 2, !41, i64 3, !7, i64 4, !7, i64 8, !23, i64 16, !64, i64 48, !64, i64 72}
!64 = !{!"_ZTSSt6vectorI16HighsBasisStatusSaIS0_EE", !65, i64 0}
!65 = !{!"_ZTSSt12_Vector_baseI16HighsBasisStatusSaIS0_EE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE12_Vector_implE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseI16HighsBasisStatusSaIS0_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!68 = !{!63, !41, i64 2}


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