; LLVM IR from ERGO-Code/HiGHS :: src/simplex (HSimplexNlaDebug)

; 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.HVectorBase = type { i32, i32, %"class.std::vector", %"class.std::vector.10", double, %"class.std::vector.15", %"class.std::vector", ptr, i8, i32, %"class.std::vector", %"class.std::vector.10" }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsRandom = type { i64 }
%"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::allocator" = type { i8 }
%class.HSimplexNla = type { ptr, ptr, ptr, ptr, ptr, ptr, %class.HFactor, i8, double, %struct.ProductFormUpdate, %struct.SimplexIterate }
%class.HFactor = type { double, double, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.15", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector", %"class.std::vector", %"class.std::vector.3", double }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%struct.ProductFormUpdate = type { i8, i32, i32, %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10" }
%struct.SimplexIterate = type { i8, %struct.SimplexBasis, %struct.InvertibleRepresentation, %"class.std::vector.10" }
%struct.SimplexBasis = type { %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", i64, i32, i32, %"class.std::__cxx11::basic_string" }
%struct.InvertibleRepresentation = type { %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector.10" }
%struct.HighsOptionsStruct = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i32, i8, i8, i32, i32, double, i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, double, double, double, double, double, double, double, double, double, double, double, i8, i8, i8, i8, i32, double, i8, i8, %"class.std::__cxx11::basic_string", double, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i8, i8, %"class.std::__cxx11::basic_string", i8, i32, %struct.HighsLogOptions }
%class.HighsLp = type { i32, i32, %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.10", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.22", %"class.std::vector.22", %"class.std::vector.27", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10" }
%"class.std::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = 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.27" = type { %"struct.std::_Vector_base.28" }
%"struct.std::_Vector_base.28" = 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.10", %"class.std::vector.10" }
%struct.HighsLpMods = type { %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.27", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector.10" }

@.str.53 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [82 x i8], align 1
@__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi = external hidden unnamed_addr constant [88 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [60 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef %1, i32 noundef %2) #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i8, align 1
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %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 i8, align 1
  %20 = alloca %class.HVectorBase, align 8
  %21 = alloca %class.HVectorBase, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca %class.HVectorBase, align 8
  %25 = alloca double, align 8
  %26 = alloca i8, align 1
  %27 = alloca i8, align 1
  %28 = alloca %class.HighsRandom, align 8
  %29 = alloca i32, align 4
  %30 = alloca double, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i8, align 1
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca i8, align 1
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i8, align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %class.HVectorBase, align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca double, align 8
  %56 = alloca i32, align 4
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca i8, align 1
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i8, align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %class.HVectorBase, align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca double, align 8
  %76 = alloca i32, align 4
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca double, align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  %83 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %84 = load i32, ptr %7, align 4, !tbaa !9
  %85 = icmp sge i32 %84, 0
  br i1 %85, label %86, label %88

86:                                               ; preds = %3
  %87 = load i32, ptr %7, align 4, !tbaa !9
  br label %93

88:                                               ; preds = %3
  %89 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 3
  %90 = load ptr, ptr %89, align 8, !tbaa !11
  %91 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %90, i32 0, i32 24
  %92 = load i32, ptr %91, align 4, !tbaa !50
  br label %93

93:                                               ; preds = %88, %86
  %94 = phi i32 [ %87, %86 ], [ %92, %88 ]
  store i32 %94, ptr %8, align 4, !tbaa !9
  %95 = load i32, ptr %8, align 4, !tbaa !9
  %96 = icmp slt i32 %95, 2
  br i1 %96, label %97, label %98

97:                                               ; preds = %93
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %882

98:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  %99 = load i32, ptr %7, align 4, !tbaa !9
  %100 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 3
  %101 = load ptr, ptr %100, align 8, !tbaa !11
  %102 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %101, i32 0, i32 24
  %103 = load i32, ptr %102, align 4, !tbaa !50
  %104 = icmp sgt i32 %99, %103
  %105 = zext i1 %104 to i8
  store i8 %105, ptr %10, align 1, !tbaa !52
  %106 = load i8, ptr %10, align 1, !tbaa !52, !range !53, !noundef !54
  %107 = trunc i8 %106 to i1
  br i1 %107, label %108, label %112

108:                                              ; preds = %98
  %109 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 3
  %110 = load ptr, ptr %109, align 8, !tbaa !11
  %111 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %110, i32 0, i32 130
  call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %111, i32 noundef 1, ptr noundef @.str.53)
  br label %112

112:                                              ; preds = %108, %98
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 -1, ptr %11, align 4, !tbaa !55
  store i32 0, ptr %11, align 4, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %113 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 0
  %114 = load ptr, ptr %113, align 8, !tbaa !57
  %115 = getelementptr inbounds %class.HighsLp, ptr %114, i32 0, i32 1
  %116 = load i32, ptr %115, align 4, !tbaa !58
  store i32 %116, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %117 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 0
  %118 = load ptr, ptr %117, align 8, !tbaa !57
  %119 = getelementptr inbounds %class.HighsLp, ptr %118, i32 0, i32 0
  %120 = load i32, ptr %119, align 8, !tbaa !79
  store i32 %120, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %121 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 0
  %122 = load ptr, ptr %121, align 8, !tbaa !57
  %123 = getelementptr inbounds %class.HighsLp, ptr %122, i32 0, i32 7
  %124 = getelementptr inbounds %class.HighsSparseMatrix, ptr %123, i32 0, i32 3
  store ptr %124, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %125 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 0
  %126 = load ptr, ptr %125, align 8, !tbaa !57
  %127 = getelementptr inbounds %class.HighsLp, ptr %126, i32 0, i32 7
  %128 = getelementptr inbounds %class.HighsSparseMatrix, ptr %127, i32 0, i32 5
  store ptr %128, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %129 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 0
  %130 = load ptr, ptr %129, align 8, !tbaa !57
  %131 = getelementptr inbounds %class.HighsLp, ptr %130, i32 0, i32 7
  %132 = getelementptr inbounds %class.HighsSparseMatrix, ptr %131, i32 0, i32 6
  store ptr %132, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %133 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 2
  %134 = load ptr, ptr %133, align 8, !tbaa !80
  store ptr %134, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %135 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 3
  %136 = load ptr, ptr %135, align 8, !tbaa !11
  store ptr %136, ptr %18, align 8, !tbaa !5
  %137 = load i32, ptr %12, align 4, !tbaa !9
  %138 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 0
  %139 = load ptr, ptr %138, align 8, !tbaa !57
  %140 = getelementptr inbounds %class.HighsLp, ptr %139, i32 0, i32 7
  %141 = getelementptr inbounds %class.HighsSparseMatrix, ptr %140, i32 0, i32 2
  %142 = load i32, ptr %141, align 8, !tbaa !81
  %143 = icmp eq i32 %137, %142
  br i1 %143, label %144, label %145

144:                                              ; preds = %112
  br label %147

145:                                              ; preds = %112
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str.55, i32 noundef 52, ptr noundef @__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi) #9
  unreachable

146:                                              ; No predecessors!
  br label %147

147:                                              ; preds = %146, %144
  %148 = load i32, ptr %13, align 4, !tbaa !9
  %149 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 0
  %150 = load ptr, ptr %149, align 8, !tbaa !57
  %151 = getelementptr inbounds %class.HighsLp, ptr %150, i32 0, i32 7
  %152 = getelementptr inbounds %class.HighsSparseMatrix, ptr %151, i32 0, i32 1
  %153 = load i32, ptr %152, align 4, !tbaa !82
  %154 = icmp eq i32 %148, %153
  br i1 %154, label %155, label %156

155:                                              ; preds = %147
  br label %158

156:                                              ; preds = %147
  call void @__assert_fail(ptr noundef @.str.56, ptr noundef @.str.55, i32 noundef 53, ptr noundef @__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi) #9
  unreachable

157:                                              ; No predecessors!
  br label %158

158:                                              ; preds = %157, %155
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #8
  %159 = load ptr, ptr %18, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %159, i32 0, i32 55
  %161 = load i32, ptr %160, align 8, !tbaa !83
  %162 = icmp ne i32 %161, 0
  %163 = zext i1 %162 to i8
  store i8 %163, ptr %19, align 1, !tbaa !52
  %164 = load ptr, ptr %18, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %164, i32 0, i32 130
  %166 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #8
  call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %165, i32 noundef 1, ptr noundef @.str.57, ptr noundef %166)
  call void @llvm.lifetime.start.p0(i64 176, ptr %20) #8
  call void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176) %20) #8
  call void @llvm.lifetime.start.p0(i64 176, ptr %21) #8
  call void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176) %21) #8
  %167 = load i32, ptr %12, align 4, !tbaa !9
  invoke void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176) %20, i32 noundef %167)
          to label %168 unwind label %192

168:                                              ; preds = %158
  %169 = load i32, ptr %12, align 4, !tbaa !9
  invoke void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176) %21, i32 noundef %169)
          to label %170 unwind label %192

170:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 176, ptr %24) #8
  call void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176) %24) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  store double 1.000000e+00, ptr %25, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #8
  store i8 1, ptr %26, align 1, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #8
  %171 = load ptr, ptr %18, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %171, i32 0, i32 55
  %173 = load i32, ptr %172, align 8, !tbaa !83
  %174 = icmp sgt i32 %173, 1
  br i1 %174, label %175, label %178

175:                                              ; preds = %170
  %176 = load i32, ptr %12, align 4, !tbaa !9
  %177 = icmp slt i32 %176, 20
  br label %178

178:                                              ; preds = %175, %170
  %179 = phi i1 [ false, %170 ], [ %177, %175 ]
  %180 = zext i1 %179 to i8
  store i8 %180, ptr %27, align 1, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  invoke void @_ZN11HighsRandomC2Ej(ptr noundef nonnull align 8 dereferenceable(8) %28, i32 noundef 1)
          to label %181 unwind label %196

181:                                              ; preds = %178
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %20)
          to label %182 unwind label %196

182:                                              ; preds = %181
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %21)
          to label %183 unwind label %196

183:                                              ; preds = %182
  %184 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 1
  store i32 -1, ptr %184, align 4, !tbaa !85
  %185 = load i8, ptr %27, align 1, !tbaa !52, !range !53, !noundef !54
  %186 = trunc i8 %185 to i1
  br i1 %186, label %187, label %200

187:                                              ; preds = %183
  %188 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 3
  %189 = load ptr, ptr %188, align 8, !tbaa !11
  %190 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %189, i32 0, i32 130
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %190, i32 noundef 1, ptr noundef @.str.58)
          to label %191 unwind label %196

191:                                              ; preds = %187
  br label %200

192:                                              ; preds = %168, %158
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %22, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %23, align 4
  br label %881

196:                                              ; preds = %319, %317, %315, %310, %187, %182, %181, %178
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %22, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %23, align 4
  br label %330

200:                                              ; preds = %191, %183
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  store i32 0, ptr %29, align 4, !tbaa !9
  br label %201

201:                                              ; preds = %303, %200
  %202 = load i32, ptr %29, align 4, !tbaa !9
  %203 = load i32, ptr %12, align 4, !tbaa !9
  %204 = icmp slt i32 %202, %203
  br i1 %204, label %206, label %205

205:                                              ; preds = %201
  store i32 2, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %307

206:                                              ; preds = %201
  %207 = load i32, ptr %29, align 4, !tbaa !9
  %208 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 2
  %209 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 1
  %210 = load i32, ptr %209, align 4, !tbaa !85
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr %209, align 4, !tbaa !85
  %212 = sext i32 %210 to i64
  %213 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %208, i64 noundef %212) #8
  store i32 %207, ptr %213, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %214 = invoke noundef double @_ZN11HighsRandom8fractionEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %215 unwind label %234

215:                                              ; preds = %206
  store double %214, ptr %30, align 8, !tbaa !84
  %216 = load double, ptr %30, align 8, !tbaa !84
  %217 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %218 = load i32, ptr %29, align 4, !tbaa !9
  %219 = sext i32 %218 to i64
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef %219) #8
  store double %216, ptr %220, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %221 = load ptr, ptr %17, align 8, !tbaa !5
  %222 = load i32, ptr %29, align 4, !tbaa !9
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds i32, ptr %221, i64 %223
  %225 = load i32, ptr %224, align 4, !tbaa !9
  store i32 %225, ptr %31, align 4, !tbaa !9
  %226 = load i8, ptr %27, align 1, !tbaa !52, !range !53, !noundef !54
  %227 = trunc i8 %226 to i1
  br i1 %227, label %228, label %242

228:                                              ; preds = %215
  %229 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 3
  %230 = load ptr, ptr %229, align 8, !tbaa !11
  %231 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %230, i32 0, i32 130
  %232 = load i32, ptr %31, align 4, !tbaa !9
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %231, i32 noundef 1, ptr noundef @.str.59, i32 noundef %232)
          to label %233 unwind label %238

233:                                              ; preds = %228
  br label %242

234:                                              ; preds = %206
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %22, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %23, align 4
  br label %306

238:                                              ; preds = %228
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %22, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %306

242:                                              ; preds = %233, %215
  %243 = load i32, ptr %31, align 4, !tbaa !9
  %244 = load i32, ptr %13, align 4, !tbaa !9
  %245 = icmp slt i32 %243, %244
  br i1 %245, label %246, label %284

246:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %247 = load ptr, ptr %14, align 8, !tbaa !5
  %248 = load i32, ptr %31, align 4, !tbaa !9
  %249 = sext i32 %248 to i64
  %250 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef %249) #8
  %251 = load i32, ptr %250, align 4, !tbaa !9
  store i32 %251, ptr %32, align 4, !tbaa !9
  br label %252

252:                                              ; preds = %280, %246
  %253 = load i32, ptr %32, align 4, !tbaa !9
  %254 = load ptr, ptr %14, align 8, !tbaa !5
  %255 = load i32, ptr %31, align 4, !tbaa !9
  %256 = add nsw i32 %255, 1
  %257 = sext i32 %256 to i64
  %258 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %254, i64 noundef %257) #8
  %259 = load i32, ptr %258, align 4, !tbaa !9
  %260 = icmp slt i32 %253, %259
  br i1 %260, label %262, label %261

261:                                              ; preds = %252
  store i32 5, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %283

262:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %263 = load ptr, ptr %15, align 8, !tbaa !5
  %264 = load i32, ptr %32, align 4, !tbaa !9
  %265 = sext i32 %264 to i64
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %263, i64 noundef %265) #8
  %267 = load i32, ptr %266, align 4, !tbaa !9
  store i32 %267, ptr %33, align 4, !tbaa !9
  %268 = load double, ptr %30, align 8, !tbaa !84
  %269 = load ptr, ptr %16, align 8, !tbaa !5
  %270 = load i32, ptr %32, align 4, !tbaa !9
  %271 = sext i32 %270 to i64
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %269, i64 noundef %271) #8
  %273 = load double, ptr %272, align 8, !tbaa !84
  %274 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 3
  %275 = load i32, ptr %33, align 4, !tbaa !9
  %276 = sext i32 %275 to i64
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %274, i64 noundef %276) #8
  %278 = load double, ptr %277, align 8, !tbaa !84
  %279 = call double @llvm.fmuladd.f64(double %268, double %273, double %278)
  store double %279, ptr %277, align 8, !tbaa !84
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %280

280:                                              ; preds = %262
  %281 = load i32, ptr %32, align 4, !tbaa !9
  %282 = add nsw i32 %281, 1
  store i32 %282, ptr %32, align 4, !tbaa !9
  br label %252, !llvm.loop !86

283:                                              ; preds = %261
  br label %302

284:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %285 = load i32, ptr %31, align 4, !tbaa !9
  %286 = load i32, ptr %13, align 4, !tbaa !9
  %287 = sub nsw i32 %285, %286
  store i32 %287, ptr %34, align 4, !tbaa !9
  %288 = load i32, ptr %34, align 4, !tbaa !9
  %289 = load i32, ptr %12, align 4, !tbaa !9
  %290 = icmp slt i32 %288, %289
  br i1 %290, label %291, label %292

291:                                              ; preds = %284
  br label %294

292:                                              ; preds = %284
  call void @__assert_fail(ptr noundef @.str.60, ptr noundef @.str.55, i32 noundef 93, ptr noundef @__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi) #9
  unreachable

293:                                              ; No predecessors!
  br label %294

294:                                              ; preds = %293, %291
  %295 = load double, ptr %30, align 8, !tbaa !84
  %296 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 3
  %297 = load i32, ptr %34, align 4, !tbaa !9
  %298 = sext i32 %297 to i64
  %299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %296, i64 noundef %298) #8
  %300 = load double, ptr %299, align 8, !tbaa !84
  %301 = fadd double %300, %295
  store double %301, ptr %299, align 8, !tbaa !84
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %302

302:                                              ; preds = %294, %283
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %303

303:                                              ; preds = %302
  %304 = load i32, ptr %29, align 4, !tbaa !9
  %305 = add nsw i32 %304, 1
  store i32 %305, ptr %29, align 4, !tbaa !9
  br label %201, !llvm.loop !88

306:                                              ; preds = %238, %234
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %330

307:                                              ; preds = %205
  %308 = load i8, ptr %27, align 1, !tbaa !52, !range !53, !noundef !54
  %309 = trunc i8 %308 to i1
  br i1 %309, label %310, label %315

310:                                              ; preds = %307
  %311 = getelementptr inbounds %class.HSimplexNla, ptr %83, i32 0, i32 3
  %312 = load ptr, ptr %311, align 8, !tbaa !11
  %313 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %312, i32 0, i32 130
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %313, i32 noundef 1, ptr noundef @.str.61)
          to label %314 unwind label %196

314:                                              ; preds = %310
  br label %315

315:                                              ; preds = %314, %307
  %316 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZN11HVectorBaseIdEaSERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %24, ptr noundef nonnull align 8 dereferenceable(176) %21)
          to label %317 unwind label %196

317:                                              ; preds = %315
  %318 = load double, ptr %25, align 8, !tbaa !84
  invoke void @_ZNK11HSimplexNla5ftranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef nonnull align 8 dereferenceable(176) %21, double noundef %318, ptr noundef null)
          to label %319 unwind label %196

319:                                              ; preds = %317
  %320 = load i8, ptr %10, align 1, !tbaa !52, !range !53, !noundef !54
  %321 = trunc i8 %320 to i1
  %322 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorEbRK11HVectorBaseIdES3_RS1_b(ptr noundef nonnull align 8 dereferenceable(2864) %83, i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(176) %20, ptr noundef nonnull align 8 dereferenceable(176) %21, ptr noundef nonnull align 8 dereferenceable(176) %24, i1 noundef zeroext %321)
          to label %323 unwind label %196

323:                                              ; preds = %319
  store i32 %322, ptr %11, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  store i8 1, ptr %35, align 1, !tbaa !52
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %21)
          to label %324 unwind label %331

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store i32 0, ptr %36, align 4, !tbaa !9
  br label %325

325:                                              ; preds = %407, %324
  %326 = load i32, ptr %36, align 4, !tbaa !9
  %327 = load i32, ptr %12, align 4, !tbaa !9
  %328 = icmp slt i32 %326, %327
  br i1 %328, label %335, label %329

329:                                              ; preds = %325
  store i32 8, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %410

330:                                              ; preds = %306, %196
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %880

331:                                              ; preds = %414, %412, %410, %323
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %22, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %23, align 4
  br label %879

335:                                              ; preds = %325
  %336 = load i32, ptr %36, align 4, !tbaa !9
  %337 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 2
  %338 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 1
  %339 = load i32, ptr %338, align 4, !tbaa !85
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr %338, align 4, !tbaa !85
  %341 = sext i32 %339 to i64
  %342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %341) #8
  store i32 %336, ptr %342, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %343 = load ptr, ptr %17, align 8, !tbaa !5
  %344 = load i32, ptr %36, align 4, !tbaa !9
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds i32, ptr %343, i64 %345
  %347 = load i32, ptr %346, align 4, !tbaa !9
  store i32 %347, ptr %37, align 4, !tbaa !9
  %348 = load i32, ptr %37, align 4, !tbaa !9
  %349 = load i32, ptr %13, align 4, !tbaa !9
  %350 = icmp slt i32 %348, %349
  br i1 %350, label %351, label %392

351:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %352 = load ptr, ptr %14, align 8, !tbaa !5
  %353 = load i32, ptr %37, align 4, !tbaa !9
  %354 = sext i32 %353 to i64
  %355 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %352, i64 noundef %354) #8
  %356 = load i32, ptr %355, align 4, !tbaa !9
  store i32 %356, ptr %38, align 4, !tbaa !9
  br label %357

357:                                              ; preds = %388, %351
  %358 = load i32, ptr %38, align 4, !tbaa !9
  %359 = load ptr, ptr %14, align 8, !tbaa !5
  %360 = load i32, ptr %37, align 4, !tbaa !9
  %361 = add nsw i32 %360, 1
  %362 = sext i32 %361 to i64
  %363 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %359, i64 noundef %362) #8
  %364 = load i32, ptr %363, align 4, !tbaa !9
  %365 = icmp slt i32 %358, %364
  br i1 %365, label %367, label %366

366:                                              ; preds = %357
  store i32 11, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %391

367:                                              ; preds = %357
  %368 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %369 = load ptr, ptr %15, align 8, !tbaa !5
  %370 = load i32, ptr %38, align 4, !tbaa !9
  %371 = sext i32 %370 to i64
  %372 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %369, i64 noundef %371) #8
  %373 = load i32, ptr %372, align 4, !tbaa !9
  %374 = sext i32 %373 to i64
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %368, i64 noundef %374) #8
  %376 = load double, ptr %375, align 8, !tbaa !84
  %377 = load ptr, ptr %16, align 8, !tbaa !5
  %378 = load i32, ptr %38, align 4, !tbaa !9
  %379 = sext i32 %378 to i64
  %380 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef %379) #8
  %381 = load double, ptr %380, align 8, !tbaa !84
  %382 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 3
  %383 = load i32, ptr %36, align 4, !tbaa !9
  %384 = sext i32 %383 to i64
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %382, i64 noundef %384) #8
  %386 = load double, ptr %385, align 8, !tbaa !84
  %387 = call double @llvm.fmuladd.f64(double %376, double %381, double %386)
  store double %387, ptr %385, align 8, !tbaa !84
  br label %388

388:                                              ; preds = %367
  %389 = load i32, ptr %38, align 4, !tbaa !9
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %38, align 4, !tbaa !9
  br label %357, !llvm.loop !89

391:                                              ; preds = %366
  br label %406

392:                                              ; preds = %335
  %393 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %394 = load i32, ptr %37, align 4, !tbaa !9
  %395 = load i32, ptr %13, align 4, !tbaa !9
  %396 = sub nsw i32 %394, %395
  %397 = sext i32 %396 to i64
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %393, i64 noundef %397) #8
  %399 = load double, ptr %398, align 8, !tbaa !84
  %400 = getelementptr inbounds %class.HVectorBase, ptr %21, i32 0, i32 3
  %401 = load i32, ptr %36, align 4, !tbaa !9
  %402 = sext i32 %401 to i64
  %403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %400, i64 noundef %402) #8
  %404 = load double, ptr %403, align 8, !tbaa !84
  %405 = fadd double %404, %399
  store double %405, ptr %403, align 8, !tbaa !84
  br label %406

406:                                              ; preds = %392, %391
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %407

407:                                              ; preds = %406
  %408 = load i32, ptr %36, align 4, !tbaa !9
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %36, align 4, !tbaa !9
  br label %325, !llvm.loop !90

410:                                              ; preds = %329
  %411 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZN11HVectorBaseIdEaSERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %24, ptr noundef nonnull align 8 dereferenceable(176) %21)
          to label %412 unwind label %331

412:                                              ; preds = %410
  %413 = load double, ptr %25, align 8, !tbaa !84
  invoke void @_ZNK11HSimplexNla5btranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef nonnull align 8 dereferenceable(176) %21, double noundef %413, ptr noundef null)
          to label %414 unwind label %331

414:                                              ; preds = %412
  %415 = load i8, ptr %10, align 1, !tbaa !52, !range !53, !noundef !54
  %416 = trunc i8 %415 to i1
  %417 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorEbRK11HVectorBaseIdES3_RS1_b(ptr noundef nonnull align 8 dereferenceable(2864) %83, i1 noundef zeroext true, ptr noundef nonnull align 8 dereferenceable(176) %20, ptr noundef nonnull align 8 dereferenceable(176) %21, ptr noundef nonnull align 8 dereferenceable(176) %24, i1 noundef zeroext %416)
          to label %418 unwind label %331

418:                                              ; preds = %414
  store i32 %417, ptr %11, align 4, !tbaa !55
  %419 = load i32, ptr %8, align 4, !tbaa !9
  %420 = icmp slt i32 %419, 3
  br i1 %420, label %421, label %423

421:                                              ; preds = %418
  %422 = load i32, ptr %11, align 4, !tbaa !55
  store i32 %422, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %878

423:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  store double 0.000000e+00, ptr %25, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  store double 0.000000e+00, ptr %40, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  store double 0.000000e+00, ptr %41, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #8
  store i8 1, ptr %42, align 1, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  store i32 -1, ptr %43, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  store i32 0, ptr %44, align 4, !tbaa !9
  br label %424

424:                                              ; preds = %605, %423
  %425 = load i32, ptr %44, align 4, !tbaa !9
  %426 = load i32, ptr %12, align 4, !tbaa !9
  %427 = icmp slt i32 %425, %426
  br i1 %427, label %429, label %428

428:                                              ; preds = %424
  store i32 14, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %617

429:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %430 = load ptr, ptr %17, align 8, !tbaa !5
  %431 = load i32, ptr %44, align 4, !tbaa !9
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds i32, ptr %430, i64 %432
  %434 = load i32, ptr %433, align 4, !tbaa !9
  store i32 %434, ptr %45, align 4, !tbaa !9
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %20)
          to label %435 unwind label %456

435:                                              ; preds = %429
  %436 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 8
  store i8 1, ptr %436, align 8, !tbaa !91
  %437 = load i32, ptr %45, align 4, !tbaa !9
  %438 = load i32, ptr %13, align 4, !tbaa !9
  %439 = icmp slt i32 %437, %438
  br i1 %439, label %440, label %486

440:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %441 = load ptr, ptr %14, align 8, !tbaa !5
  %442 = load i32, ptr %45, align 4, !tbaa !9
  %443 = sext i32 %442 to i64
  %444 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %441, i64 noundef %443) #8
  %445 = load i32, ptr %444, align 4, !tbaa !9
  store i32 %445, ptr %46, align 4, !tbaa !9
  br label %446

446:                                              ; preds = %482, %440
  %447 = load i32, ptr %46, align 4, !tbaa !9
  %448 = load ptr, ptr %14, align 8, !tbaa !5
  %449 = load i32, ptr %45, align 4, !tbaa !9
  %450 = add nsw i32 %449, 1
  %451 = sext i32 %450 to i64
  %452 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %448, i64 noundef %451) #8
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = icmp slt i32 %447, %453
  br i1 %454, label %460, label %455

455:                                              ; preds = %446
  store i32 17, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %485

456:                                              ; preds = %429
  %457 = landingpad { ptr, i32 }
          cleanup
  %458 = extractvalue { ptr, i32 } %457, 0
  store ptr %458, ptr %22, align 8
  %459 = extractvalue { ptr, i32 } %457, 1
  store i32 %459, ptr %23, align 4
  br label %616

460:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %461 = load ptr, ptr %15, align 8, !tbaa !5
  %462 = load i32, ptr %46, align 4, !tbaa !9
  %463 = sext i32 %462 to i64
  %464 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %461, i64 noundef %463) #8
  %465 = load i32, ptr %464, align 4, !tbaa !9
  store i32 %465, ptr %47, align 4, !tbaa !9
  %466 = load ptr, ptr %16, align 8, !tbaa !5
  %467 = load i32, ptr %46, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %466, i64 noundef %468) #8
  %470 = load double, ptr %469, align 8, !tbaa !84
  %471 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %472 = load i32, ptr %47, align 4, !tbaa !9
  %473 = sext i32 %472 to i64
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %471, i64 noundef %473) #8
  store double %470, ptr %474, align 8, !tbaa !84
  %475 = load i32, ptr %47, align 4, !tbaa !9
  %476 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 2
  %477 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 1
  %478 = load i32, ptr %477, align 4, !tbaa !85
  %479 = add nsw i32 %478, 1
  store i32 %479, ptr %477, align 4, !tbaa !85
  %480 = sext i32 %478 to i64
  %481 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %476, i64 noundef %480) #8
  store i32 %475, ptr %481, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %482

482:                                              ; preds = %460
  %483 = load i32, ptr %46, align 4, !tbaa !9
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr %46, align 4, !tbaa !9
  br label %446, !llvm.loop !92

485:                                              ; preds = %455
  br label %501

486:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %487 = load i32, ptr %45, align 4, !tbaa !9
  %488 = load i32, ptr %13, align 4, !tbaa !9
  %489 = sub nsw i32 %487, %488
  store i32 %489, ptr %48, align 4, !tbaa !9
  %490 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %491 = load i32, ptr %48, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %490, i64 noundef %492) #8
  store double 1.000000e+00, ptr %493, align 8, !tbaa !84
  %494 = load i32, ptr %48, align 4, !tbaa !9
  %495 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 2
  %496 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 1
  %497 = load i32, ptr %496, align 4, !tbaa !85
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr %496, align 4, !tbaa !85
  %499 = sext i32 %497 to i64
  %500 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %495, i64 noundef %499) #8
  store i32 %494, ptr %500, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %501

501:                                              ; preds = %486, %485
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #8
  %502 = load i8, ptr %19, align 1, !tbaa !52, !range !53, !noundef !54
  %503 = trunc i8 %502 to i1
  br i1 %503, label %504, label %508

504:                                              ; preds = %501
  %505 = load i32, ptr %44, align 4, !tbaa !9
  %506 = load i32, ptr %43, align 4, !tbaa !9
  %507 = icmp eq i32 %505, %506
  br label %508

508:                                              ; preds = %504, %501
  %509 = phi i1 [ false, %501 ], [ %507, %504 ]
  %510 = zext i1 %509 to i8
  store i8 %510, ptr %49, align 1, !tbaa !52
  %511 = load i8, ptr %49, align 1, !tbaa !52, !range !53, !noundef !54
  %512 = trunc i8 %511 to i1
  br i1 %512, label %513, label %525

513:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %514 unwind label %516

514:                                              ; preds = %513
  invoke void @_ZNK11HSimplexNla11reportArrayENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK11HVectorBaseIdEb(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef %50, ptr noundef %20, i1 noundef zeroext true)
          to label %515 unwind label %520

515:                                              ; preds = %514
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #8
  br label %525

516:                                              ; preds = %513
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %22, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %23, align 4
  br label %524

520:                                              ; preds = %514
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %22, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %524

524:                                              ; preds = %520, %516
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #8
  br label %615

525:                                              ; preds = %515, %508
  call void @llvm.lifetime.start.p0(i64 176, ptr %52) #8
  invoke void @_ZN11HVectorBaseIdEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %52, ptr noundef nonnull align 8 dereferenceable(176) %20)
          to label %526 unwind label %534

526:                                              ; preds = %525
  %527 = load double, ptr %25, align 8, !tbaa !84
  invoke void @_ZNK11HSimplexNla5ftranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef nonnull align 8 dereferenceable(176) %20, double noundef %527, ptr noundef null)
          to label %528 unwind label %538

528:                                              ; preds = %526
  %529 = load i8, ptr %49, align 1, !tbaa !52, !range !53, !noundef !54
  %530 = trunc i8 %529 to i1
  br i1 %530, label %531, label %551

531:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.63, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %532 unwind label %542

532:                                              ; preds = %531
  invoke void @_ZNK11HSimplexNla11reportArrayENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK11HVectorBaseIdEb(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef %53, ptr noundef %20, i1 noundef zeroext true)
          to label %533 unwind label %546

533:                                              ; preds = %532
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  br label %551

534:                                              ; preds = %525
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %22, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %23, align 4
  br label %614

538:                                              ; preds = %526
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %22, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %23, align 4
  br label %613

542:                                              ; preds = %531
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %22, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %23, align 4
  br label %550

546:                                              ; preds = %532
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %22, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %550

550:                                              ; preds = %546, %542
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  br label %613

551:                                              ; preds = %533, %528
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  store double 0.000000e+00, ptr %55, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  store i32 0, ptr %56, align 4, !tbaa !9
  br label %552

552:                                              ; preds = %575, %551
  %553 = load i32, ptr %56, align 4, !tbaa !9
  %554 = load i32, ptr %12, align 4, !tbaa !9
  %555 = icmp slt i32 %553, %554
  br i1 %555, label %557, label %556

556:                                              ; preds = %552
  store i32 20, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %582

557:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %558 = load i32, ptr %56, align 4, !tbaa !9
  %559 = load i32, ptr %44, align 4, !tbaa !9
  %560 = icmp eq i32 %558, %559
  %561 = zext i1 %560 to i64
  %562 = select i1 %560, i32 1, i32 0
  %563 = sitofp i32 %562 to double
  store double %563, ptr %57, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %564 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %565 = load i32, ptr %56, align 4, !tbaa !9
  %566 = sext i32 %565 to i64
  %567 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %564, i64 noundef %566) #8
  %568 = load double, ptr %567, align 8, !tbaa !84
  %569 = load double, ptr %57, align 8, !tbaa !84
  %570 = fsub double %568, %569
  %571 = call double @llvm.fabs.f64(double %570)
  store double %571, ptr %58, align 8, !tbaa !84
  %572 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %573 unwind label %578

573:                                              ; preds = %557
  %574 = load double, ptr %572, align 8, !tbaa !84
  store double %574, ptr %55, align 8, !tbaa !84
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %575

575:                                              ; preds = %573
  %576 = load i32, ptr %56, align 4, !tbaa !9
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr %56, align 4, !tbaa !9
  br label %552, !llvm.loop !93

578:                                              ; preds = %557
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %22, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %612

582:                                              ; preds = %556
  %583 = load i8, ptr %49, align 1, !tbaa !52, !range !53, !noundef !54
  %584 = trunc i8 %583 to i1
  br i1 %584, label %585, label %596

585:                                              ; preds = %582
  %586 = load ptr, ptr %18, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %586, i32 0, i32 130
  %588 = load i32, ptr %44, align 4, !tbaa !9
  %589 = load i32, ptr %45, align 4, !tbaa !9
  %590 = load double, ptr %55, align 8, !tbaa !84
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %587, i32 noundef 1, ptr noundef @.str.64, i32 noundef %588, i32 noundef %589, double noundef %590)
          to label %591 unwind label %592

591:                                              ; preds = %585
  br label %596

592:                                              ; preds = %596, %585
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %22, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %23, align 4
  br label %612

596:                                              ; preds = %591, %582
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %598 unwind label %592

598:                                              ; preds = %596
  %599 = load double, ptr %597, align 8, !tbaa !84
  store double %599, ptr %40, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %600 = invoke noundef double @_ZNK11HSimplexNla24debugInvertResidualErrorEbRK11HVectorBaseIdERS1_(ptr noundef nonnull align 8 dereferenceable(2864) %83, i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(176) %20, ptr noundef nonnull align 8 dereferenceable(176) %52)
          to label %601 unwind label %608

601:                                              ; preds = %598
  store double %600, ptr %59, align 8, !tbaa !84
  %602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %603 unwind label %608

603:                                              ; preds = %601
  %604 = load double, ptr %602, align 8, !tbaa !84
  store double %604, ptr %41, align 8, !tbaa !84
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %52) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %605

605:                                              ; preds = %603
  %606 = load i32, ptr %44, align 4, !tbaa !9
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr %44, align 4, !tbaa !9
  br label %424, !llvm.loop !94

608:                                              ; preds = %601, %598
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %22, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  br label %612

612:                                              ; preds = %608, %592, %578
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %613

613:                                              ; preds = %612, %550, %538
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %52) #8
  br label %614

614:                                              ; preds = %613, %534
  call void @llvm.lifetime.end.p0(i64 176, ptr %52) #8
  br label %615

615:                                              ; preds = %614, %524
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  br label %616

616:                                              ; preds = %615, %456
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %639

617:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %618 unwind label %630

618:                                              ; preds = %617
  %619 = load double, ptr %40, align 8, !tbaa !84
  %620 = load double, ptr %41, align 8, !tbaa !84
  %621 = load i8, ptr %10, align 1, !tbaa !52, !range !53, !noundef !54
  %622 = trunc i8 %621 to i1
  %623 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbddb(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef %60, i1 noundef zeroext false, double noundef %619, double noundef %620, i1 noundef zeroext %622)
          to label %624 unwind label %634

624:                                              ; preds = %618
  store i32 %623, ptr %11, align 4, !tbaa !55
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #8
  store i8 1, ptr %62, align 1, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  store i32 -2, ptr %63, align 4, !tbaa !9
  store double 0.000000e+00, ptr %40, align 8, !tbaa !84
  store double 0.000000e+00, ptr %41, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #8
  store i32 0, ptr %64, align 4, !tbaa !9
  br label %625

625:                                              ; preds = %846, %624
  %626 = load i32, ptr %64, align 4, !tbaa !9
  %627 = load i32, ptr %12, align 4, !tbaa !9
  %628 = icmp slt i32 %626, %627
  br i1 %628, label %640, label %629

629:                                              ; preds = %625
  store i32 23, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %858

630:                                              ; preds = %617
  %631 = landingpad { ptr, i32 }
          cleanup
  %632 = extractvalue { ptr, i32 } %631, 0
  store ptr %632, ptr %22, align 8
  %633 = extractvalue { ptr, i32 } %631, 1
  store i32 %633, ptr %23, align 4
  br label %638

634:                                              ; preds = %618
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %22, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %638

638:                                              ; preds = %634, %630
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  br label %639

639:                                              ; preds = %638, %616
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %877

640:                                              ; preds = %625
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %20)
          to label %641 unwind label %648

641:                                              ; preds = %640
  %642 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 8
  store i8 1, ptr %642, align 8, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  store i32 0, ptr %65, align 4, !tbaa !9
  br label %643

643:                                              ; preds = %714, %641
  %644 = load i32, ptr %65, align 4, !tbaa !9
  %645 = load i32, ptr %12, align 4, !tbaa !9
  %646 = icmp slt i32 %644, %645
  br i1 %646, label %652, label %647

647:                                              ; preds = %643
  store i32 26, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %717

648:                                              ; preds = %640
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %22, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %23, align 4
  br label %857

652:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  %653 = load ptr, ptr %17, align 8, !tbaa !5
  %654 = load i32, ptr %65, align 4, !tbaa !9
  %655 = sext i32 %654 to i64
  %656 = getelementptr inbounds i32, ptr %653, i64 %655
  %657 = load i32, ptr %656, align 4, !tbaa !9
  store i32 %657, ptr %66, align 4, !tbaa !9
  %658 = load i32, ptr %66, align 4, !tbaa !9
  %659 = load i32, ptr %13, align 4, !tbaa !9
  %660 = icmp slt i32 %658, %659
  br i1 %660, label %661, label %701

661:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %662 = load ptr, ptr %14, align 8, !tbaa !5
  %663 = load i32, ptr %66, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %662, i64 noundef %664) #8
  %666 = load i32, ptr %665, align 4, !tbaa !9
  store i32 %666, ptr %67, align 4, !tbaa !9
  br label %667

667:                                              ; preds = %696, %661
  %668 = load i32, ptr %67, align 4, !tbaa !9
  %669 = load ptr, ptr %14, align 8, !tbaa !5
  %670 = load i32, ptr %66, align 4, !tbaa !9
  %671 = add nsw i32 %670, 1
  %672 = sext i32 %671 to i64
  %673 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %669, i64 noundef %672) #8
  %674 = load i32, ptr %673, align 4, !tbaa !9
  %675 = icmp slt i32 %668, %674
  br i1 %675, label %677, label %676

676:                                              ; preds = %667
  store i32 29, ptr %9, align 4
  br label %699

677:                                              ; preds = %667
  %678 = load ptr, ptr %15, align 8, !tbaa !5
  %679 = load i32, ptr %67, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %678, i64 noundef %680) #8
  %682 = load i32, ptr %681, align 4, !tbaa !9
  %683 = load i32, ptr %64, align 4, !tbaa !9
  %684 = icmp eq i32 %682, %683
  br i1 %684, label %685, label %695

685:                                              ; preds = %677
  %686 = load ptr, ptr %16, align 8, !tbaa !5
  %687 = load i32, ptr %67, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %686, i64 noundef %688) #8
  %690 = load double, ptr %689, align 8, !tbaa !84
  %691 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %692 = load i32, ptr %65, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %691, i64 noundef %693) #8
  store double %690, ptr %694, align 8, !tbaa !84
  store i32 29, ptr %9, align 4
  br label %699

695:                                              ; preds = %677
  br label %696

696:                                              ; preds = %695
  %697 = load i32, ptr %67, align 4, !tbaa !9
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr %67, align 4, !tbaa !9
  br label %667, !llvm.loop !95

699:                                              ; preds = %685, %676
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %700

700:                                              ; preds = %699
  br label %713

701:                                              ; preds = %652
  %702 = load i32, ptr %66, align 4, !tbaa !9
  %703 = load i32, ptr %13, align 4, !tbaa !9
  %704 = load i32, ptr %64, align 4, !tbaa !9
  %705 = add nsw i32 %703, %704
  %706 = icmp eq i32 %702, %705
  br i1 %706, label %707, label %712

707:                                              ; preds = %701
  %708 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %709 = load i32, ptr %65, align 4, !tbaa !9
  %710 = sext i32 %709 to i64
  %711 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %708, i64 noundef %710) #8
  store double 1.000000e+00, ptr %711, align 8, !tbaa !84
  br label %712

712:                                              ; preds = %707, %701
  br label %713

713:                                              ; preds = %712, %700
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %714

714:                                              ; preds = %713
  %715 = load i32, ptr %65, align 4, !tbaa !9
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr %65, align 4, !tbaa !9
  br label %643, !llvm.loop !96

717:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  store i32 0, ptr %68, align 4, !tbaa !9
  br label %718

718:                                              ; preds = %739, %717
  %719 = load i32, ptr %68, align 4, !tbaa !9
  %720 = load i32, ptr %12, align 4, !tbaa !9
  %721 = icmp slt i32 %719, %720
  br i1 %721, label %723, label %722

722:                                              ; preds = %718
  store i32 32, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %742

723:                                              ; preds = %718
  %724 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %725 = load i32, ptr %68, align 4, !tbaa !9
  %726 = sext i32 %725 to i64
  %727 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %724, i64 noundef %726) #8
  %728 = load double, ptr %727, align 8, !tbaa !84
  %729 = fcmp une double %728, 0.000000e+00
  br i1 %729, label %730, label %738

730:                                              ; preds = %723
  %731 = load i32, ptr %68, align 4, !tbaa !9
  %732 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 2
  %733 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 1
  %734 = load i32, ptr %733, align 4, !tbaa !85
  %735 = add nsw i32 %734, 1
  store i32 %735, ptr %733, align 4, !tbaa !85
  %736 = sext i32 %734 to i64
  %737 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %732, i64 noundef %736) #8
  store i32 %731, ptr %737, align 4, !tbaa !9
  br label %738

738:                                              ; preds = %730, %723
  br label %739

739:                                              ; preds = %738
  %740 = load i32, ptr %68, align 4, !tbaa !9
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr %68, align 4, !tbaa !9
  br label %718, !llvm.loop !97

742:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #8
  %743 = load i8, ptr %19, align 1, !tbaa !52, !range !53, !noundef !54
  %744 = trunc i8 %743 to i1
  br i1 %744, label %745, label %749

745:                                              ; preds = %742
  %746 = load i32, ptr %64, align 4, !tbaa !9
  %747 = load i32, ptr %63, align 4, !tbaa !9
  %748 = icmp eq i32 %746, %747
  br label %749

749:                                              ; preds = %745, %742
  %750 = phi i1 [ false, %742 ], [ %748, %745 ]
  %751 = zext i1 %750 to i8
  store i8 %751, ptr %69, align 1, !tbaa !52
  %752 = load i8, ptr %69, align 1, !tbaa !52, !range !53, !noundef !54
  %753 = trunc i8 %752 to i1
  br i1 %753, label %754, label %766

754:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.66, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %755 unwind label %757

755:                                              ; preds = %754
  invoke void @_ZNK11HSimplexNla11reportArrayENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK11HVectorBaseIdEb(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef %70, ptr noundef %20, i1 noundef zeroext true)
          to label %756 unwind label %761

756:                                              ; preds = %755
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  br label %766

757:                                              ; preds = %754
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %22, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %23, align 4
  br label %765

761:                                              ; preds = %755
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %22, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %765

765:                                              ; preds = %761, %757
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  br label %856

766:                                              ; preds = %756, %749
  call void @llvm.lifetime.start.p0(i64 176, ptr %72) #8
  invoke void @_ZN11HVectorBaseIdEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %72, ptr noundef nonnull align 8 dereferenceable(176) %20)
          to label %767 unwind label %775

767:                                              ; preds = %766
  %768 = load double, ptr %25, align 8, !tbaa !84
  invoke void @_ZNK11HSimplexNla5btranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef nonnull align 8 dereferenceable(176) %20, double noundef %768, ptr noundef null)
          to label %769 unwind label %779

769:                                              ; preds = %767
  %770 = load i8, ptr %69, align 1, !tbaa !52, !range !53, !noundef !54
  %771 = trunc i8 %770 to i1
  br i1 %771, label %772, label %792

772:                                              ; preds = %769
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.67, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %773 unwind label %783

773:                                              ; preds = %772
  invoke void @_ZNK11HSimplexNla11reportArrayENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK11HVectorBaseIdEb(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef %73, ptr noundef %20, i1 noundef zeroext true)
          to label %774 unwind label %787

774:                                              ; preds = %773
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #8
  br label %792

775:                                              ; preds = %766
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %22, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %23, align 4
  br label %855

779:                                              ; preds = %767
  %780 = landingpad { ptr, i32 }
          cleanup
  %781 = extractvalue { ptr, i32 } %780, 0
  store ptr %781, ptr %22, align 8
  %782 = extractvalue { ptr, i32 } %780, 1
  store i32 %782, ptr %23, align 4
  br label %854

783:                                              ; preds = %772
  %784 = landingpad { ptr, i32 }
          cleanup
  %785 = extractvalue { ptr, i32 } %784, 0
  store ptr %785, ptr %22, align 8
  %786 = extractvalue { ptr, i32 } %784, 1
  store i32 %786, ptr %23, align 4
  br label %791

787:                                              ; preds = %773
  %788 = landingpad { ptr, i32 }
          cleanup
  %789 = extractvalue { ptr, i32 } %788, 0
  store ptr %789, ptr %22, align 8
  %790 = extractvalue { ptr, i32 } %788, 1
  store i32 %790, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %791

791:                                              ; preds = %787, %783
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #8
  br label %854

792:                                              ; preds = %774, %769
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  store double 0.000000e+00, ptr %75, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %793

793:                                              ; preds = %817, %792
  %794 = load i32, ptr %76, align 4, !tbaa !9
  %795 = load i32, ptr %12, align 4, !tbaa !9
  %796 = icmp slt i32 %794, %795
  br i1 %796, label %798, label %797

797:                                              ; preds = %793
  store i32 35, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %824

798:                                              ; preds = %793
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #8
  %799 = getelementptr inbounds %class.HVectorBase, ptr %20, i32 0, i32 3
  %800 = load i32, ptr %76, align 4, !tbaa !9
  %801 = sext i32 %800 to i64
  %802 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %799, i64 noundef %801) #8
  %803 = load double, ptr %802, align 8, !tbaa !84
  store double %803, ptr %77, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  %804 = load i32, ptr %76, align 4, !tbaa !9
  %805 = load i32, ptr %64, align 4, !tbaa !9
  %806 = icmp eq i32 %804, %805
  %807 = zext i1 %806 to i64
  %808 = select i1 %806, i32 1, i32 0
  %809 = sitofp i32 %808 to double
  store double %809, ptr %78, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  %810 = load double, ptr %77, align 8, !tbaa !84
  %811 = load double, ptr %78, align 8, !tbaa !84
  %812 = fsub double %810, %811
  %813 = call double @llvm.fabs.f64(double %812)
  store double %813, ptr %79, align 8, !tbaa !84
  %814 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %815 unwind label %820

815:                                              ; preds = %798
  %816 = load double, ptr %814, align 8, !tbaa !84
  store double %816, ptr %75, align 8, !tbaa !84
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %817

817:                                              ; preds = %815
  %818 = load i32, ptr %76, align 4, !tbaa !9
  %819 = add nsw i32 %818, 1
  store i32 %819, ptr %76, align 4, !tbaa !9
  br label %793, !llvm.loop !98

820:                                              ; preds = %798
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %22, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %853

824:                                              ; preds = %797
  %825 = load i8, ptr %69, align 1, !tbaa !52, !range !53, !noundef !54
  %826 = trunc i8 %825 to i1
  br i1 %826, label %827, label %837

827:                                              ; preds = %824
  %828 = load ptr, ptr %18, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.HighsOptionsStruct, ptr %828, i32 0, i32 130
  %830 = load i32, ptr %64, align 4, !tbaa !9
  %831 = load double, ptr %75, align 8, !tbaa !84
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %829, i32 noundef 1, ptr noundef @.str.68, i32 noundef %830, double noundef %831)
          to label %832 unwind label %833

832:                                              ; preds = %827
  br label %837

833:                                              ; preds = %837, %827
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %22, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %23, align 4
  br label %853

837:                                              ; preds = %832, %824
  %838 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %839 unwind label %833

839:                                              ; preds = %837
  %840 = load double, ptr %838, align 8, !tbaa !84
  store double %840, ptr %40, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %841 = invoke noundef double @_ZNK11HSimplexNla24debugInvertResidualErrorEbRK11HVectorBaseIdERS1_(ptr noundef nonnull align 8 dereferenceable(2864) %83, i1 noundef zeroext true, ptr noundef nonnull align 8 dereferenceable(176) %20, ptr noundef nonnull align 8 dereferenceable(176) %72)
          to label %842 unwind label %849

842:                                              ; preds = %839
  store double %841, ptr %80, align 8, !tbaa !84
  %843 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %844 unwind label %849

844:                                              ; preds = %842
  %845 = load double, ptr %843, align 8, !tbaa !84
  store double %845, ptr %41, align 8, !tbaa !84
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %72) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  br label %846

846:                                              ; preds = %844
  %847 = load i32, ptr %64, align 4, !tbaa !9
  %848 = add nsw i32 %847, 1
  store i32 %848, ptr %64, align 4, !tbaa !9
  br label %625, !llvm.loop !99

849:                                              ; preds = %842, %839
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %22, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  br label %853

853:                                              ; preds = %849, %833, %820
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  br label %854

854:                                              ; preds = %853, %791, %779
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %72) #8
  br label %855

855:                                              ; preds = %854, %775
  call void @llvm.lifetime.end.p0(i64 176, ptr %72) #8
  br label %856

856:                                              ; preds = %855, %765
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  br label %857

857:                                              ; preds = %856, %648
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %876

858:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %859 unwind label %867

859:                                              ; preds = %858
  %860 = load double, ptr %40, align 8, !tbaa !84
  %861 = load double, ptr %41, align 8, !tbaa !84
  %862 = load i8, ptr %10, align 1, !tbaa !52, !range !53, !noundef !54
  %863 = trunc i8 %862 to i1
  %864 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbddb(ptr noundef nonnull align 8 dereferenceable(2864) %83, ptr noundef %81, i1 noundef zeroext true, double noundef %860, double noundef %861, i1 noundef zeroext %863)
          to label %865 unwind label %871

865:                                              ; preds = %859
  store i32 %864, ptr %11, align 4, !tbaa !55
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  %866 = load i32, ptr %11, align 4, !tbaa !55
  store i32 %866, ptr %4, align 4
  store i32 1, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %878

867:                                              ; preds = %858
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %22, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %23, align 4
  br label %875

871:                                              ; preds = %859
  %872 = landingpad { ptr, i32 }
          cleanup
  %873 = extractvalue { ptr, i32 } %872, 0
  store ptr %873, ptr %22, align 8
  %874 = extractvalue { ptr, i32 } %872, 1
  store i32 %874, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %875

875:                                              ; preds = %871, %867
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #8
  br label %876

876:                                              ; preds = %875, %857
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  br label %877

877:                                              ; preds = %876, %639
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %879

878:                                              ; preds = %865, %421
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %24) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %24) #8
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %21) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %21) #8
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %20) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  br label %882

879:                                              ; preds = %877, %331
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  br label %880

880:                                              ; preds = %879, %330
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %24) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %24) #8
  br label %881

881:                                              ; preds = %880, %192
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %21) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %21) #8
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %20) #8
  call void @llvm.lifetime.end.p0(i64 176, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %884

882:                                              ; preds = %878, %97
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  %883 = load i32, ptr %4, align 4
  ret i32 %883

884:                                              ; preds = %881
  %885 = load ptr, ptr %22, align 8
  %886 = load i32, ptr %23, align 4
  %887 = insertvalue { ptr, i32 } poison, ptr %885, 0
  %888 = insertvalue { ptr, i32 } %887, i32 %886, 1
  resume { ptr, i32 } %888
}

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #5 align 2

declare void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #3

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

declare void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176)) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11HighsRandom8fractionEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 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) #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(176) ptr @_ZN11HVectorBaseIdEaSERKS0_(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176)) #7 align 2

declare void @_ZNK11HSimplexNla5ftranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864), ptr noundef nonnull align 8 dereferenceable(176), double noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorEbRK11HVectorBaseIdES3_RS1_b(ptr noundef nonnull align 8 dereferenceable(2864), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) #2 align 2

declare void @_ZNK11HSimplexNla5btranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864), ptr noundef nonnull align 8 dereferenceable(176), double noundef, ptr noundef) #3

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

declare void @_ZNK11HSimplexNla11reportArrayENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK11HVectorBaseIdEb(ptr noundef nonnull align 8 dereferenceable(2864), ptr noundef, ptr noundef, i1 noundef zeroext) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11HVectorBaseIdEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK11HSimplexNla24debugInvertResidualErrorEbRK11HVectorBaseIdERS1_(ptr noundef nonnull align 8 dereferenceable(2864), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbddb(ptr noundef nonnull align 8 dereferenceable(2864), ptr noundef, i1 noundef zeroext, double noundef, double noundef, i1 noundef zeroext) #2 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 24}
!12 = !{!"_ZTS11HSimplexNla", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !13, i64 48, !20, i64 1960, !14, i64 1968, !43, i64 1976, !44, i64 2112}
!13 = !{!"_ZTS7HFactor", !14, i64 0, !14, i64 8, !10, i64 16, !15, i64 24, !15, i64 48, !15, i64 72, !19, i64 96, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !14, i64 216, !20, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !14, i64 264, !14, i64 272, !10, i64 280, !14, i64 288, !25, i64 296, !31, i64 304, !20, i64 400, !20, i64 401, !10, i64 404, !10, i64 408, !6, i64 416, !10, i64 424, !15, i64 432, !34, i64 456, !15, i64 480, !15, i64 504, !15, i64 528, !34, i64 552, !15, i64 576, !15, i64 600, !15, i64 624, !15, i64 648, !15, i64 672, !15, i64 696, !15, i64 720, !34, i64 744, !34, i64 768, !15, i64 792, !15, i64 816, !15, i64 840, !15, i64 864, !15, i64 888, !15, i64 912, !38, i64 936, !34, i64 960, !15, i64 984, !15, i64 1008, !15, i64 1032, !15, i64 1056, !15, i64 1080, !15, i64 1104, !15, i64 1128, !15, i64 1152, !15, i64 1176, !15, i64 1200, !34, i64 1224, !15, i64 1248, !15, i64 1272, !34, i64 1296, !15, i64 1320, !15, i64 1344, !34, i64 1368, !10, i64 1392, !10, i64 1396, !15, i64 1400, !15, i64 1424, !15, i64 1448, !34, i64 1472, !15, i64 1496, !15, i64 1520, !15, i64 1544, !15, i64 1568, !34, i64 1592, !34, i64 1616, !15, i64 1640, !15, i64 1664, !15, i64 1688, !34, i64 1712, !42, i64 1736}
!14 = !{!"double", !7, i64 0}
!15 = !{!"_ZTSSt6vectorIiSaIiEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTS12RefactorInfo", !20, i64 0, !15, i64 8, !15, i64 32, !21, i64 56, !14, i64 80}
!20 = !{!"bool", !7, i64 0}
!21 = !{!"_ZTSSt6vectorIaSaIaEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !27, i64 0}
!27 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !29, i64 0}
!29 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !30, i64 0}
!30 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !6, i64 0}
!31 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !32, i64 48, !6, i64 80, !20, i64 88}
!32 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !33, i64 0, !6, i64 24}
!33 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!34 = !{!"_ZTSSt6vectorIdSaIdEE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!"_ZTSSt6vectorIcSaIcEE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!42 = !{!"_ZTS11HVectorBaseIdE", !10, i64 0, !10, i64 4, !15, i64 8, !34, i64 32, !14, i64 56, !38, i64 64, !15, i64 88, !6, i64 112, !20, i64 120, !10, i64 124, !15, i64 128, !34, i64 152}
!43 = !{!"_ZTS17ProductFormUpdate", !20, i64 0, !10, i64 4, !10, i64 8, !15, i64 16, !34, i64 40, !15, i64 64, !15, i64 88, !34, i64 112}
!44 = !{!"_ZTS14SimplexIterate", !20, i64 0, !45, i64 8, !49, i64 128, !34, i64 728}
!45 = !{!"_ZTS12SimplexBasis", !15, i64 0, !21, i64 24, !21, i64 48, !46, i64 72, !10, i64 80, !10, i64 84, !47, i64 88}
!46 = !{!"long", !7, i64 0}
!47 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !48, i64 0, !46, i64 8, !7, i64 16}
!48 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!49 = !{!"_ZTS24InvertibleRepresentation", !15, i64 0, !15, i64 24, !15, i64 48, !15, i64 72, !34, i64 96, !15, i64 120, !15, i64 144, !34, i64 168, !15, i64 192, !15, i64 216, !34, i64 240, !15, i64 264, !15, i64 288, !15, i64 312, !34, i64 336, !15, i64 360, !15, i64 384, !15, i64 408, !15, i64 432, !34, i64 456, !15, i64 480, !15, i64 504, !34, i64 528, !15, i64 552, !34, i64 576}
!50 = !{!51, !10, i64 348}
!51 = !{!"_ZTS18HighsOptionsStruct", !47, i64 8, !47, i64 40, !47, i64 72, !47, i64 104, !14, i64 136, !47, i64 144, !47, i64 176, !10, i64 208, !47, i64 216, !14, i64 248, !14, i64 256, !14, i64 264, !14, i64 272, !14, i64 280, !14, i64 288, !14, i64 296, !14, i64 304, !14, i64 312, !14, i64 320, !14, i64 328, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !47, i64 392, !20, i64 424, !20, i64 425, !20, i64 426, !10, i64 428, !10, i64 432, !47, i64 440, !20, i64 472, !20, i64 473, !20, i64 474, !10, i64 476, !20, i64 480, !20, i64 481, !10, i64 484, !10, i64 488, !14, i64 496, !10, i64 504, !10, i64 508, !10, i64 512, !20, i64 516, !10, i64 520, !20, i64 524, !20, i64 525, !20, i64 526, !20, i64 527, !20, i64 528, !20, i64 529, !20, i64 530, !10, i64 532, !10, i64 536, !10, i64 540, !10, i64 544, !10, i64 548, !10, i64 552, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !10, i64 588, !20, i64 592, !20, i64 593, !20, i64 594, !20, i64 595, !14, i64 600, !14, i64 608, !14, i64 616, !14, i64 624, !14, i64 632, !14, i64 640, !14, i64 648, !14, i64 656, !14, i64 664, !14, i64 672, !14, i64 680, !20, i64 688, !20, i64 689, !20, i64 690, !20, i64 691, !10, i64 692, !14, i64 696, !20, i64 704, !20, i64 705, !47, i64 712, !14, i64 744, !10, i64 752, !10, i64 756, !20, i64 760, !20, i64 761, !20, i64 762, !20, i64 763, !10, i64 764, !10, i64 768, !10, i64 772, !10, i64 776, !10, i64 780, !10, i64 784, !10, i64 788, !10, i64 792, !10, i64 796, !10, i64 800, !10, i64 804, !14, i64 808, !14, i64 816, !14, i64 824, !14, i64 832, !14, i64 840, !20, i64 848, !20, i64 849, !47, i64 856, !20, i64 888, !10, i64 892, !31, i64 896}
!52 = !{!20, !20, i64 0}
!53 = !{i8 0, i8 2}
!54 = !{}
!55 = !{!56, !56, i64 0}
!56 = !{!"_ZTS16HighsDebugStatus", !7, i64 0}
!57 = !{!12, !6, i64 0}
!58 = !{!59, !10, i64 4}
!59 = !{!"_ZTS7HighsLp", !10, i64 0, !10, i64 4, !34, i64 8, !34, i64 32, !34, i64 56, !34, i64 80, !34, i64 104, !60, i64 128, !62, i64 240, !14, i64 248, !47, i64 256, !47, i64 288, !10, i64 320, !10, i64 324, !63, i64 328, !63, i64 352, !67, i64 376, !71, i64 400, !71, i64 456, !10, i64 512, !10, i64 516, !77, i64 520, !20, i64 592, !20, i64 593, !10, i64 596, !20, i64 600, !78, i64 608}
!60 = !{!"_ZTS17HighsSparseMatrix", !61, i64 0, !10, i64 4, !10, i64 8, !15, i64 16, !15, i64 40, !15, i64 64, !34, i64 88}
!61 = !{!"_ZTS12MatrixFormat", !7, i64 0}
!62 = !{!"_ZTS8ObjSense", !7, i64 0}
!63 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !64, i64 0}
!64 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!67 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !68, i64 0}
!68 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!71 = !{!"_ZTS13HighsNameHash", !72, i64 0}
!72 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !73, i64 0}
!73 = !{!"_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, !46, i64 8, !74, i64 16, !46, i64 24, !75, i64 32, !6, i64 48}
!74 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!75 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !76, i64 0, !46, i64 8}
!76 = !{!"float", !7, i64 0}
!77 = !{!"_ZTS10HighsScale", !10, i64 0, !20, i64 4, !10, i64 8, !10, i64 12, !14, i64 16, !34, i64 24, !34, i64 48}
!78 = !{!"_ZTS11HighsLpMods", !15, i64 0, !15, i64 24, !34, i64 48, !34, i64 72, !67, i64 96, !15, i64 120, !34, i64 144, !15, i64 168, !34, i64 192, !15, i64 216, !34, i64 240, !34, i64 264, !34, i64 288}
!79 = !{!59, !10, i64 0}
!80 = !{!12, !6, i64 16}
!81 = !{!59, !10, i64 136}
!82 = !{!59, !10, i64 132}
!83 = !{!51, !10, i64 520}
!84 = !{!14, !14, i64 0}
!85 = !{!42, !10, i64 4}
!86 = distinct !{!86, !87}
!87 = !{!"llvm.loop.mustprogress"}
!88 = distinct !{!88, !87}
!89 = distinct !{!89, !87}
!90 = distinct !{!90, !87}
!91 = !{!42, !20, i64 120}
!92 = distinct !{!92, !87}
!93 = distinct !{!93, !87}
!94 = distinct !{!94, !87}
!95 = distinct !{!95, !87}
!96 = distinct !{!96, !87}
!97 = distinct !{!97, !87}
!98 = distinct !{!98, !87}
!99 = distinct !{!99, !87}


; 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.HVectorBase = type { i32, i32, %"class.std::vector", %"class.std::vector.10", double, %"class.std::vector.15", %"class.std::vector", ptr, i8, i32, %"class.std::vector", %"class.std::vector.10" }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsRandom = type { i64 }
%"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::allocator" = type { i8 }

@.str.53 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [82 x i8], align 1
@__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi = external hidden unnamed_addr constant [88 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [8 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef %1, i32 noundef %2) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %class.HVectorBase, align 8
  %5 = alloca %class.HVectorBase, align 8
  %6 = alloca %class.HVectorBase, align 8
  %7 = alloca %class.HighsRandom, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca %class.HVectorBase, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %class.HVectorBase, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = icmp sgt i32 %2, -1
  br i1 %23, label %29, label %24

24:                                               ; preds = %3
  %25 = getelementptr inbounds i8, ptr %0, i64 24
  %26 = load ptr, ptr %25, align 8, !tbaa !5
  %27 = getelementptr inbounds i8, ptr %26, i64 348
  %28 = load i32, ptr %27, align 4, !tbaa !48
  br label %29

29:                                               ; preds = %3, %24
  %30 = phi i32 [ %28, %24 ], [ %2, %3 ]
  %31 = icmp slt i32 %30, 2
  br i1 %31, label %361, label %32

32:                                               ; preds = %29
  %33 = getelementptr inbounds i8, ptr %0, i64 24
  %34 = load ptr, ptr %33, align 8, !tbaa !5
  %35 = getelementptr inbounds i8, ptr %34, i64 348
  %36 = load i32, ptr %35, align 4, !tbaa !48
  %37 = icmp slt i32 %36, %2
  br i1 %37, label %38, label %40

38:                                               ; preds = %32
  %39 = getelementptr inbounds i8, ptr %34, i64 896
  tail call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %39, i32 noundef 1, ptr noundef nonnull @.str.53)
  %.pre = load ptr, ptr %33, align 8, !tbaa !5
  br label %40

40:                                               ; preds = %38, %32
  %41 = phi ptr [ %.pre, %38 ], [ %34, %32 ]
  %42 = load ptr, ptr %0, align 8, !tbaa !50
  %43 = getelementptr inbounds i8, ptr %42, i64 4
  %44 = load i32, ptr %43, align 4, !tbaa !51
  %45 = load i32, ptr %42, align 8, !tbaa !72
  %46 = getelementptr inbounds i8, ptr %42, i64 144
  %47 = getelementptr inbounds i8, ptr %42, i64 192
  %48 = getelementptr inbounds i8, ptr %42, i64 216
  %49 = getelementptr inbounds i8, ptr %0, i64 16
  %50 = load ptr, ptr %49, align 8, !tbaa !73
  %51 = getelementptr inbounds i8, ptr %42, i64 136
  %52 = load i32, ptr %51, align 8, !tbaa !74
  %53 = icmp eq i32 %44, %52
  br i1 %53, label %55, label %54

54:                                               ; preds = %40
  tail call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.55, i32 noundef 52, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi) #8
  unreachable

55:                                               ; preds = %40
  %56 = getelementptr inbounds i8, ptr %42, i64 132
  %57 = load i32, ptr %56, align 4, !tbaa !75
  %58 = icmp eq i32 %45, %57
  br i1 %58, label %60, label %59

59:                                               ; preds = %55
  tail call void @__assert_fail(ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.55, i32 noundef 53, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi) #8
  unreachable

60:                                               ; preds = %55
  %61 = getelementptr inbounds i8, ptr %41, i64 520
  %62 = getelementptr inbounds i8, ptr %41, i64 896
  %63 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  tail call void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %62, i32 noundef 1, ptr noundef nonnull @.str.57, ptr noundef %63)
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %4) #9
  call void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176) %4) #9
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %5) #9
  call void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176) %5) #9
  invoke void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176) %4, i32 noundef %44)
          to label %64 unwind label %77

64:                                               ; preds = %60
  invoke void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176) %5, i32 noundef %44)
          to label %65 unwind label %77

65:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %6) #9
  call void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176) %6) #9
  %66 = load i32, ptr %61, align 8, !tbaa !76
  %67 = icmp sgt i32 %66, 1
  %68 = icmp slt i32 %44, 20
  %69 = and i1 %68, %67
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  invoke void @_ZN11HighsRandomC2Ej(ptr noundef nonnull align 8 dereferenceable(8) %7, i32 noundef 1)
          to label %70 unwind label %79

70:                                               ; preds = %65
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %4)
          to label %71 unwind label %79

71:                                               ; preds = %70
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %5)
          to label %72 unwind label %79

72:                                               ; preds = %71
  %73 = getelementptr inbounds i8, ptr %4, i64 4
  store i32 -1, ptr %73, align 4, !tbaa !77
  br i1 %69, label %74, label %81

74:                                               ; preds = %72
  %75 = load ptr, ptr %33, align 8, !tbaa !5
  %76 = getelementptr inbounds i8, ptr %75, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %76, i32 noundef 1, ptr noundef nonnull @.str.58)
          to label %81 unwind label %79

77:                                               ; preds = %64, %60
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %360

79:                                               ; preds = %144, %143, %141, %138, %74, %71, %70, %65
  %80 = landingpad { ptr, i32 }
          cleanup
  br label %152

81:                                               ; preds = %74, %72
  %82 = icmp sgt i32 %44, 0
  br i1 %82, label %.lr.ph244, label %._crit_edge

.lr.ph244:                                        ; preds = %81
  %83 = getelementptr inbounds i8, ptr %5, i64 8
  %84 = getelementptr inbounds i8, ptr %5, i64 4
  %85 = getelementptr inbounds i8, ptr %4, i64 32
  %86 = getelementptr inbounds i8, ptr %5, i64 32
  %wide.trip.count = zext nneg i32 %44 to i64
  br label %87

._crit_edge:                                      ; preds = %.loopexit241, %81
  br i1 %69, label %138, label %141

87:                                               ; preds = %.lr.ph244, %.loopexit241
  %indvars.iv281 = phi i64 [ 0, %.lr.ph244 ], [ %indvars.iv.next282, %.loopexit241 ]
  %88 = load i32, ptr %84, align 4, !tbaa !77
  %89 = add nsw i32 %88, 1
  store i32 %89, ptr %84, align 4, !tbaa !77
  %90 = sext i32 %88 to i64
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %83, i64 noundef %90) #9
  %92 = trunc nuw nsw i64 %indvars.iv281 to i32
  store i32 %92, ptr %91, align 4, !tbaa !78
  %93 = invoke noundef double @_ZN11HighsRandom8fractionEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %94 unwind label %101

94:                                               ; preds = %87
  %95 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef %indvars.iv281) #9
  store double %93, ptr %95, align 8, !tbaa !79
  %96 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv281
  %97 = load i32, ptr %96, align 4, !tbaa !78
  br i1 %69, label %98, label %105

98:                                               ; preds = %94
  %99 = load ptr, ptr %33, align 8, !tbaa !5
  %100 = getelementptr inbounds i8, ptr %99, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %100, i32 noundef 1, ptr noundef nonnull @.str.59, i32 noundef %97)
          to label %105 unwind label %103

101:                                              ; preds = %87
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %152

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

105:                                              ; preds = %98, %94
  %106 = icmp slt i32 %97, %45
  br i1 %106, label %107, label %129

107:                                              ; preds = %105
  %108 = sext i32 %97 to i64
  %109 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %108) #9
  %110 = load i32, ptr %109, align 4, !tbaa !78
  %111 = add nsw i32 %97, 1
  %112 = sext i32 %111 to i64
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %112) #9
  %114 = load i32, ptr %113, align 4, !tbaa !78
  %115 = icmp slt i32 %110, %114
  br i1 %115, label %.lr.ph.preheader, label %.loopexit241

.lr.ph.preheader:                                 ; preds = %107
  %116 = sext i32 %110 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ %116, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %indvars.iv) #9
  %118 = load i32, ptr %117, align 4, !tbaa !78
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv) #9
  %120 = load double, ptr %119, align 8, !tbaa !79
  %121 = sext i32 %118 to i64
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %121) #9
  %123 = load double, ptr %122, align 8, !tbaa !79
  %124 = call double @llvm.fmuladd.f64(double %93, double %120, double %123)
  store double %124, ptr %122, align 8, !tbaa !79
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %125 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %112) #9
  %126 = load i32, ptr %125, align 4, !tbaa !78
  %127 = sext i32 %126 to i64
  %128 = icmp slt i64 %indvars.iv.next, %127
  br i1 %128, label %.lr.ph, label %.loopexit241, !llvm.loop !80

129:                                              ; preds = %105
  %130 = sub nsw i32 %97, %45
  %131 = icmp slt i32 %130, %44
  br i1 %131, label %133, label %132

132:                                              ; preds = %129
  call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.55, i32 noundef 93, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi) #8
  unreachable

133:                                              ; preds = %129
  %134 = sext i32 %130 to i64
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %134) #9
  %136 = load double, ptr %135, align 8, !tbaa !79
  %137 = fadd double %93, %136
  store double %137, ptr %135, align 8, !tbaa !79
  br label %.loopexit241

.loopexit241:                                     ; preds = %.lr.ph, %107, %133
  %indvars.iv.next282 = add nuw nsw i64 %indvars.iv281, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next282, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %87, !llvm.loop !82

138:                                              ; preds = %._crit_edge
  %139 = load ptr, ptr %33, align 8, !tbaa !5
  %140 = getelementptr inbounds i8, ptr %139, i64 896
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %140, i32 noundef 1, ptr noundef nonnull @.str.61)
          to label %141 unwind label %79

141:                                              ; preds = %138, %._crit_edge
  %142 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZN11HVectorBaseIdEaSERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(176) %5)
          to label %143 unwind label %79

143:                                              ; preds = %141
  invoke void @_ZNK11HSimplexNla5ftranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef nonnull align 8 dereferenceable(176) %5, double noundef 1.000000e+00, ptr noundef null)
          to label %144 unwind label %79

144:                                              ; preds = %143
  %145 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorEbRK11HVectorBaseIdES3_RS1_b(ptr noundef nonnull align 8 dereferenceable(2864) %0, i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(176) %4, ptr noundef nonnull align 8 dereferenceable(176) %5, ptr noundef nonnull align 8 dereferenceable(176) %6, i1 noundef zeroext %37)
          to label %146 unwind label %79

146:                                              ; preds = %144
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %5)
          to label %.preheader240 unwind label %153

.preheader240:                                    ; preds = %146
  br i1 %82, label %.lr.ph249, label %._crit_edge250

.lr.ph249:                                        ; preds = %.preheader240
  %147 = getelementptr inbounds i8, ptr %5, i64 8
  %148 = getelementptr inbounds i8, ptr %5, i64 4
  %149 = getelementptr inbounds i8, ptr %4, i64 32
  %150 = getelementptr inbounds i8, ptr %5, i64 32
  %wide.trip.count290 = zext nneg i32 %44 to i64
  br label %155

._crit_edge250:                                   ; preds = %.loopexit239, %.preheader240
  %151 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZN11HVectorBaseIdEaSERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %6, ptr noundef nonnull align 8 dereferenceable(176) %5)
          to label %196 unwind label %153

152:                                              ; preds = %101, %103, %79
  %.pn233.pn = phi { ptr, i32 } [ %80, %79 ], [ %104, %103 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  br label %359

153:                                              ; preds = %197, %196, %._crit_edge250, %146
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %359

155:                                              ; preds = %.lr.ph249, %.loopexit239
  %indvars.iv287 = phi i64 [ 0, %.lr.ph249 ], [ %indvars.iv.next288, %.loopexit239 ]
  %156 = load i32, ptr %148, align 4, !tbaa !77
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr %148, align 4, !tbaa !77
  %158 = sext i32 %156 to i64
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %147, i64 noundef %158) #9
  %160 = trunc nuw nsw i64 %indvars.iv287 to i32
  store i32 %160, ptr %159, align 4, !tbaa !78
  %161 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv287
  %162 = load i32, ptr %161, align 4, !tbaa !78
  %163 = icmp slt i32 %162, %45
  br i1 %163, label %164, label %188

164:                                              ; preds = %155
  %165 = sext i32 %162 to i64
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %165) #9
  %167 = load i32, ptr %166, align 4, !tbaa !78
  %168 = add nsw i32 %162, 1
  %169 = sext i32 %168 to i64
  %170 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %169) #9
  %171 = load i32, ptr %170, align 4, !tbaa !78
  %172 = icmp slt i32 %167, %171
  br i1 %172, label %.lr.ph247.preheader, label %.loopexit239

.lr.ph247.preheader:                              ; preds = %164
  %173 = sext i32 %167 to i64
  br label %.lr.ph247

.lr.ph247:                                        ; preds = %.lr.ph247.preheader, %.lr.ph247
  %indvars.iv284 = phi i64 [ %173, %.lr.ph247.preheader ], [ %indvars.iv.next285, %.lr.ph247 ]
  %174 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %indvars.iv284) #9
  %175 = load i32, ptr %174, align 4, !tbaa !78
  %176 = sext i32 %175 to i64
  %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %176) #9
  %178 = load double, ptr %177, align 8, !tbaa !79
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv284) #9
  %180 = load double, ptr %179, align 8, !tbaa !79
  %181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %150, i64 noundef %indvars.iv287) #9
  %182 = load double, ptr %181, align 8, !tbaa !79
  %183 = call double @llvm.fmuladd.f64(double %178, double %180, double %182)
  store double %183, ptr %181, align 8, !tbaa !79
  %indvars.iv.next285 = add nsw i64 %indvars.iv284, 1
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %169) #9
  %185 = load i32, ptr %184, align 4, !tbaa !78
  %186 = sext i32 %185 to i64
  %187 = icmp slt i64 %indvars.iv.next285, %186
  br i1 %187, label %.lr.ph247, label %.loopexit239, !llvm.loop !83

188:                                              ; preds = %155
  %189 = sub nsw i32 %162, %45
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %190) #9
  %192 = load double, ptr %191, align 8, !tbaa !79
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %150, i64 noundef %indvars.iv287) #9
  %194 = load double, ptr %193, align 8, !tbaa !79
  %195 = fadd double %192, %194
  store double %195, ptr %193, align 8, !tbaa !79
  br label %.loopexit239

.loopexit239:                                     ; preds = %.lr.ph247, %164, %188
  %indvars.iv.next288 = add nuw nsw i64 %indvars.iv287, 1
  %exitcond291.not = icmp eq i64 %indvars.iv.next288, %wide.trip.count290
  br i1 %exitcond291.not, label %._crit_edge250, label %155, !llvm.loop !84

196:                                              ; preds = %._crit_edge250
  invoke void @_ZNK11HSimplexNla5btranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef nonnull align 8 dereferenceable(176) %5, double noundef 1.000000e+00, ptr noundef null)
          to label %197 unwind label %153

197:                                              ; preds = %196
  %198 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorEbRK11HVectorBaseIdES3_RS1_b(ptr noundef nonnull align 8 dereferenceable(2864) %0, i1 noundef zeroext true, ptr noundef nonnull align 8 dereferenceable(176) %4, ptr noundef nonnull align 8 dereferenceable(176) %5, ptr noundef nonnull align 8 dereferenceable(176) %6, i1 noundef zeroext %37)
          to label %199 unwind label %153

199:                                              ; preds = %197
  %200 = icmp eq i32 %30, 2
  br i1 %200, label %358, label %201

201:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  store double 0.000000e+00, ptr %9, align 8, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  store double 0.000000e+00, ptr %10, align 8, !tbaa !79
  br i1 %82, label %.lr.ph260, label %._crit_edge261

.lr.ph260:                                        ; preds = %201
  %202 = getelementptr inbounds i8, ptr %4, i64 120
  %203 = getelementptr inbounds i8, ptr %4, i64 32
  %204 = getelementptr inbounds i8, ptr %4, i64 8
  %wide.trip.count303 = zext nneg i32 %44 to i64
  br label %205

._crit_edge261:                                   ; preds = %260, %201
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %267 unwind label %275

205:                                              ; preds = %.lr.ph260, %260
  %indvars.iv300 = phi i64 [ 0, %.lr.ph260 ], [ %indvars.iv.next301, %260 ]
  %206 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv300
  %207 = load i32, ptr %206, align 4, !tbaa !78
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %4)
          to label %208 unwind label %220

208:                                              ; preds = %205
  store i8 1, ptr %202, align 8, !tbaa !85
  %209 = icmp slt i32 %207, %45
  br i1 %209, label %210, label %236

210:                                              ; preds = %208
  %211 = sext i32 %207 to i64
  %212 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %211) #9
  %213 = load i32, ptr %212, align 4, !tbaa !78
  %214 = add nsw i32 %207, 1
  %215 = sext i32 %214 to i64
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %215) #9
  %217 = load i32, ptr %216, align 4, !tbaa !78
  %218 = icmp slt i32 %213, %217
  br i1 %218, label %.lr.ph253.preheader, label %.loopexit238

.lr.ph253.preheader:                              ; preds = %210
  %219 = sext i32 %213 to i64
  br label %.lr.ph253

220:                                              ; preds = %205
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %357

.lr.ph253:                                        ; preds = %.lr.ph253.preheader, %.lr.ph253
  %indvars.iv292 = phi i64 [ %219, %.lr.ph253.preheader ], [ %indvars.iv.next293, %.lr.ph253 ]
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %indvars.iv292) #9
  %223 = load i32, ptr %222, align 4, !tbaa !78
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv292) #9
  %225 = load double, ptr %224, align 8, !tbaa !79
  %226 = sext i32 %223 to i64
  %227 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %203, i64 noundef %226) #9
  store double %225, ptr %227, align 8, !tbaa !79
  %228 = load i32, ptr %73, align 4, !tbaa !77
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr %73, align 4, !tbaa !77
  %230 = sext i32 %228 to i64
  %231 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %230) #9
  store i32 %223, ptr %231, align 4, !tbaa !78
  %indvars.iv.next293 = add nsw i64 %indvars.iv292, 1
  %232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %215) #9
  %233 = load i32, ptr %232, align 4, !tbaa !78
  %234 = sext i32 %233 to i64
  %235 = icmp slt i64 %indvars.iv.next293, %234
  br i1 %235, label %.lr.ph253, label %.loopexit238, !llvm.loop !86

236:                                              ; preds = %208
  %237 = sub nsw i32 %207, %45
  %238 = sext i32 %237 to i64
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %203, i64 noundef %238) #9
  store double 1.000000e+00, ptr %239, align 8, !tbaa !79
  %240 = load i32, ptr %73, align 4, !tbaa !77
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr %73, align 4, !tbaa !77
  %242 = sext i32 %240 to i64
  %243 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %242) #9
  store i32 %237, ptr %243, align 4, !tbaa !78
  br label %.loopexit238

.loopexit238:                                     ; preds = %.lr.ph253, %210, %236
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %11) #9
  invoke void @_ZN11HVectorBaseIdEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %11, ptr noundef nonnull align 8 dereferenceable(176) %4)
          to label %244 unwind label %245

244:                                              ; preds = %.loopexit238
  invoke void @_ZNK11HSimplexNla5ftranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef nonnull align 8 dereferenceable(176) %4, double noundef 0.000000e+00, ptr noundef null)
          to label %.lr.ph256.preheader unwind label %247

245:                                              ; preds = %.loopexit238
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %266

247:                                              ; preds = %244
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %265

.lr.ph256.preheader:                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  store double 0.000000e+00, ptr %12, align 8, !tbaa !79
  br label %.lr.ph256

.lr.ph256:                                        ; preds = %.lr.ph256.preheader, %.lr.ph256
  %indvars.iv295 = phi i64 [ 0, %.lr.ph256.preheader ], [ %indvars.iv.next296, %.lr.ph256 ]
  %249 = icmp eq i64 %indvars.iv295, %indvars.iv300
  %250 = uitofp i1 %249 to double
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %203, i64 noundef %indvars.iv295) #9
  %252 = load double, ptr %251, align 8, !tbaa !79
  %253 = fsub double %252, %250
  %254 = call double @llvm.fabs.f64(double %253)
  store double %254, ptr %13, align 8, !tbaa !79
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %12)
  %256 = load double, ptr %255, align 8, !tbaa !79
  store double %256, ptr %12, align 8, !tbaa !79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  %indvars.iv.next296 = add nuw nsw i64 %indvars.iv295, 1
  %exitcond299.not = icmp eq i64 %indvars.iv.next296, %wide.trip.count303
  br i1 %exitcond299.not, label %._crit_edge257, label %.lr.ph256, !llvm.loop !87

._crit_edge257:                                   ; preds = %.lr.ph256
  %257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %258 = load double, ptr %257, align 8, !tbaa !79
  store double %258, ptr %9, align 8, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  %259 = invoke noundef double @_ZNK11HSimplexNla24debugInvertResidualErrorEbRK11HVectorBaseIdERS1_(ptr noundef nonnull align 8 dereferenceable(2864) %0, i1 noundef zeroext false, ptr noundef nonnull align 8 dereferenceable(176) %4, ptr noundef nonnull align 8 dereferenceable(176) %11)
          to label %260 unwind label %263

260:                                              ; preds = %._crit_edge257
  store double %259, ptr %14, align 8, !tbaa !79
  %261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %10)
  %262 = load double, ptr %261, align 8, !tbaa !79
  store double %262, ptr %10, align 8, !tbaa !79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %11) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %11) #9
  %indvars.iv.next301 = add nuw nsw i64 %indvars.iv300, 1
  %exitcond304.not = icmp eq i64 %indvars.iv.next301, %wide.trip.count303
  br i1 %exitcond304.not, label %._crit_edge261, label %205, !llvm.loop !88

263:                                              ; preds = %._crit_edge257
  %264 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %265

265:                                              ; preds = %263, %247
  %.pn226 = phi { ptr, i32 } [ %264, %263 ], [ %248, %247 ]
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %11) #9
  br label %266

266:                                              ; preds = %265, %245
  %.pn226.pn = phi { ptr, i32 } [ %.pn226, %265 ], [ %246, %245 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %11) #9
  br label %357

267:                                              ; preds = %._crit_edge261
  %268 = load double, ptr %9, align 8, !tbaa !79
  %269 = load double, ptr %10, align 8, !tbaa !79
  %270 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbddb(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef nonnull %15, i1 noundef zeroext false, double noundef %268, double noundef %269, i1 noundef zeroext %37)
          to label %271 unwind label %277

271:                                              ; preds = %267
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  store double 0.000000e+00, ptr %9, align 8, !tbaa !79
  store double 0.000000e+00, ptr %10, align 8, !tbaa !79
  br i1 %82, label %.lr.ph277, label %._crit_edge278

.lr.ph277:                                        ; preds = %271
  %272 = getelementptr inbounds i8, ptr %4, i64 120
  %273 = getelementptr inbounds i8, ptr %4, i64 32
  %274 = getelementptr inbounds i8, ptr %4, i64 8
  %wide.trip.count326 = zext nneg i32 %44 to i64
  br label %280

._crit_edge278:                                   ; preds = %340, %271
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %347 unwind label %352

275:                                              ; preds = %._crit_edge261
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %279

277:                                              ; preds = %267
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %279

279:                                              ; preds = %277, %275
  %.pn = phi { ptr, i32 } [ %278, %277 ], [ %276, %275 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  br label %357

280:                                              ; preds = %.lr.ph277, %340
  %indvars.iv323 = phi i64 [ 0, %.lr.ph277 ], [ %indvars.iv.next324, %340 ]
  invoke void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176) %4)
          to label %.lr.ph267 unwind label %283

.lr.ph267:                                        ; preds = %280
  store i8 1, ptr %272, align 8, !tbaa !85
  %281 = trunc i64 %indvars.iv323 to i32
  %282 = add i32 %45, %281
  br label %285

283:                                              ; preds = %280
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %357

285:                                              ; preds = %.lr.ph267, %.loopexit
  %indvars.iv308 = phi i64 [ 0, %.lr.ph267 ], [ %indvars.iv.next309, %.loopexit ]
  %286 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv308
  %287 = load i32, ptr %286, align 4, !tbaa !78
  %288 = icmp slt i32 %287, %45
  br i1 %288, label %289, label %311

289:                                              ; preds = %285
  %290 = sext i32 %287 to i64
  %291 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %290) #9
  %292 = load i32, ptr %291, align 4, !tbaa !78
  %293 = add nsw i32 %287, 1
  %294 = sext i32 %293 to i64
  %295 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %294) #9
  %296 = load i32, ptr %295, align 4, !tbaa !78
  %297 = icmp slt i32 %292, %296
  br i1 %297, label %.lr.ph264.preheader, label %.loopexit

.lr.ph264.preheader:                              ; preds = %289
  %298 = sext i32 %292 to i64
  br label %.lr.ph264

299:                                              ; preds = %.lr.ph264
  %indvars.iv.next306 = add nsw i64 %indvars.iv305, 1
  %300 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %294) #9
  %301 = load i32, ptr %300, align 4, !tbaa !78
  %302 = sext i32 %301 to i64
  %303 = icmp slt i64 %indvars.iv.next306, %302
  br i1 %303, label %.lr.ph264, label %.loopexit, !llvm.loop !89

.lr.ph264:                                        ; preds = %.lr.ph264.preheader, %299
  %indvars.iv305 = phi i64 [ %298, %.lr.ph264.preheader ], [ %indvars.iv.next306, %299 ]
  %304 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %indvars.iv305) #9
  %305 = load i32, ptr %304, align 4, !tbaa !78
  %306 = zext i32 %305 to i64
  %307 = icmp eq i64 %indvars.iv323, %306
  br i1 %307, label %308, label %299

308:                                              ; preds = %.lr.ph264
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %indvars.iv305) #9
  %310 = load double, ptr %309, align 8, !tbaa !79
  br label %.loopexit.sink.split

311:                                              ; preds = %285
  %312 = icmp eq i32 %287, %282
  br i1 %312, label %.loopexit.sink.split, label %.loopexit

.loopexit.sink.split:                             ; preds = %311, %308
  %.sink = phi double [ %310, %308 ], [ 1.000000e+00, %311 ]
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %indvars.iv308) #9
  store double %.sink, ptr %313, align 8, !tbaa !79
  br label %.loopexit

.loopexit:                                        ; preds = %299, %.loopexit.sink.split, %289, %311
  %indvars.iv.next309 = add nuw nsw i64 %indvars.iv308, 1
  %exitcond312.not = icmp eq i64 %indvars.iv.next309, %wide.trip.count326
  br i1 %exitcond312.not, label %.lr.ph269, label %285, !llvm.loop !90

.lr.ph269:                                        ; preds = %.loopexit, %323
  %indvars.iv313 = phi i64 [ %indvars.iv.next314, %323 ], [ 0, %.loopexit ]
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %indvars.iv313) #9
  %315 = load double, ptr %314, align 8, !tbaa !79
  %316 = fcmp une double %315, 0.000000e+00
  br i1 %316, label %317, label %323

317:                                              ; preds = %.lr.ph269
  %318 = load i32, ptr %73, align 4, !tbaa !77
  %319 = add nsw i32 %318, 1
  store i32 %319, ptr %73, align 4, !tbaa !77
  %320 = sext i32 %318 to i64
  %321 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %274, i64 noundef %320) #9
  %322 = trunc nuw nsw i64 %indvars.iv313 to i32
  store i32 %322, ptr %321, align 4, !tbaa !78
  br label %323

323:                                              ; preds = %.lr.ph269, %317
  %indvars.iv.next314 = add nuw nsw i64 %indvars.iv313, 1
  %exitcond317.not = icmp eq i64 %indvars.iv.next314, %wide.trip.count326
  br i1 %exitcond317.not, label %._crit_edge270, label %.lr.ph269, !llvm.loop !91

._crit_edge270:                                   ; preds = %323
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %17) #9
  invoke void @_ZN11HVectorBaseIdEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(176) %17, ptr noundef nonnull align 8 dereferenceable(176) %4)
          to label %324 unwind label %325

324:                                              ; preds = %._crit_edge270
  invoke void @_ZNK11HSimplexNla5btranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef nonnull align 8 dereferenceable(176) %4, double noundef 0.000000e+00, ptr noundef null)
          to label %.lr.ph273.preheader unwind label %327

325:                                              ; preds = %._crit_edge270
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %346

327:                                              ; preds = %324
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %345

.lr.ph273.preheader:                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  store double 0.000000e+00, ptr %18, align 8, !tbaa !79
  br label %.lr.ph273

.lr.ph273:                                        ; preds = %.lr.ph273.preheader, %.lr.ph273
  %indvars.iv318 = phi i64 [ 0, %.lr.ph273.preheader ], [ %indvars.iv.next319, %.lr.ph273 ]
  %329 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %indvars.iv318) #9
  %330 = load double, ptr %329, align 8, !tbaa !79
  %331 = icmp eq i64 %indvars.iv318, %indvars.iv323
  %332 = uitofp i1 %331 to double
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  %333 = fsub double %330, %332
  %334 = call double @llvm.fabs.f64(double %333)
  store double %334, ptr %19, align 8, !tbaa !79
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %18)
  %336 = load double, ptr %335, align 8, !tbaa !79
  store double %336, ptr %18, align 8, !tbaa !79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  %indvars.iv.next319 = add nuw nsw i64 %indvars.iv318, 1
  %exitcond322.not = icmp eq i64 %indvars.iv.next319, %wide.trip.count326
  br i1 %exitcond322.not, label %._crit_edge274, label %.lr.ph273, !llvm.loop !92

._crit_edge274:                                   ; preds = %.lr.ph273
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %338 = load double, ptr %337, align 8, !tbaa !79
  store double %338, ptr %9, align 8, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  %339 = invoke noundef double @_ZNK11HSimplexNla24debugInvertResidualErrorEbRK11HVectorBaseIdERS1_(ptr noundef nonnull align 8 dereferenceable(2864) %0, i1 noundef zeroext true, ptr noundef nonnull align 8 dereferenceable(176) %4, ptr noundef nonnull align 8 dereferenceable(176) %17)
          to label %340 unwind label %343

340:                                              ; preds = %._crit_edge274
  store double %339, ptr %20, align 8, !tbaa !79
  %341 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %10)
  %342 = load double, ptr %341, align 8, !tbaa !79
  store double %342, ptr %10, align 8, !tbaa !79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %17) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %17) #9
  %indvars.iv.next324 = add nuw nsw i64 %indvars.iv323, 1
  %exitcond327.not = icmp eq i64 %indvars.iv.next324, %wide.trip.count326
  br i1 %exitcond327.not, label %._crit_edge278, label %280, !llvm.loop !93

343:                                              ; preds = %._crit_edge274
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %345

345:                                              ; preds = %343, %327
  %.pn221 = phi { ptr, i32 } [ %344, %343 ], [ %328, %327 ]
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %17) #9
  br label %346

346:                                              ; preds = %345, %325
  %.pn221.pn = phi { ptr, i32 } [ %.pn221, %345 ], [ %326, %325 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %17) #9
  br label %357

347:                                              ; preds = %._crit_edge278
  %348 = load double, ptr %9, align 8, !tbaa !79
  %349 = load double, ptr %10, align 8, !tbaa !79
  %350 = invoke noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbddb(ptr noundef nonnull align 8 dereferenceable(2864) %0, ptr noundef nonnull %21, i1 noundef zeroext true, double noundef %348, double noundef %349, i1 noundef zeroext %37)
          to label %351 unwind label %354

351:                                              ; preds = %347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %358

352:                                              ; preds = %._crit_edge278
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %356

354:                                              ; preds = %347
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %356

356:                                              ; preds = %354, %352
  %.pn219 = phi { ptr, i32 } [ %355, %354 ], [ %353, %352 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #9
  br label %357

357:                                              ; preds = %356, %346, %283, %279, %266, %220
  %.pn226.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn, %279 ], [ %.pn226.pn, %266 ], [ %221, %220 ], [ %.pn219, %356 ], [ %.pn221.pn, %346 ], [ %284, %283 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %359

358:                                              ; preds = %199, %351
  %.0 = phi i32 [ %350, %351 ], [ %198, %199 ]
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %6) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %6) #9
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %5) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %5) #9
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %4) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %4) #9
  br label %361

359:                                              ; preds = %153, %357, %152
  %.pn233.pn.pn = phi { ptr, i32 } [ %.pn233.pn, %152 ], [ %.pn226.pn.pn.pn.pn, %357 ], [ %154, %153 ]
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %6) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %6) #9
  br label %360

360:                                              ; preds = %359, %77
  %.pn233.pn.pn.pn = phi { ptr, i32 } [ %.pn233.pn.pn, %359 ], [ %78, %77 ]
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %5) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %5) #9
  call void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176) %4) #9
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %4) #9
  resume { ptr, i32 } %.pn233.pn.pn.pn

361:                                              ; preds = %29, %358
  %.1 = phi i32 [ %.0, %358 ], [ -1, %29 ]
  ret i32 %.1
}

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN11HVectorBaseIdEC2Ev(ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #5 align 2

declare void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) local_unnamed_addr #3

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

declare void @_ZN11HVectorBaseIdE5clearEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11HighsRandom8fractionEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 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 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 nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(176) ptr @_ZN11HVectorBaseIdEaSERKS0_(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #7 align 2

declare void @_ZNK11HSimplexNla5ftranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864), ptr noundef nonnull align 8 dereferenceable(176), double noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorEbRK11HVectorBaseIdES3_RS1_b(ptr noundef nonnull align 8 dereferenceable(2864), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) local_unnamed_addr #2 align 2

declare void @_ZNK11HSimplexNla5btranER11HVectorBaseIdEdP15HighsTimerClock(ptr noundef nonnull align 8 dereferenceable(2864), ptr noundef nonnull align 8 dereferenceable(176), double noundef, ptr noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11HVectorBaseIdEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK11HSimplexNla24debugInvertResidualErrorEbRK11HVectorBaseIdERS1_(ptr noundef nonnull align 8 dereferenceable(2864), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN11HVectorBaseIdED2Ev(ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK11HSimplexNla30debugReportInvertSolutionErrorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbddb(ptr noundef nonnull align 8 dereferenceable(2864), ptr noundef, i1 noundef zeroext, double noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #2 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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 #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { noreturn nounwind }
attributes #9 = { 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 24}
!6 = !{!"_ZTS11HSimplexNla", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !10, i64 48, !18, i64 1960, !11, i64 1968, !41, i64 1976, !42, i64 2112}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS7HFactor", !11, i64 0, !11, i64 8, !12, i64 16, !13, i64 24, !13, i64 48, !13, i64 72, !17, i64 96, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 204, !12, i64 208, !11, i64 216, !18, i64 224, !7, i64 232, !7, i64 240, !7, i64 248, !7, i64 256, !11, i64 264, !11, i64 272, !12, i64 280, !11, i64 288, !23, i64 296, !29, i64 304, !18, i64 400, !18, i64 401, !12, i64 404, !12, i64 408, !7, i64 416, !12, i64 424, !13, i64 432, !32, i64 456, !13, i64 480, !13, i64 504, !13, i64 528, !32, i64 552, !13, i64 576, !13, i64 600, !13, i64 624, !13, i64 648, !13, i64 672, !13, i64 696, !13, i64 720, !32, i64 744, !32, i64 768, !13, i64 792, !13, i64 816, !13, i64 840, !13, i64 864, !13, i64 888, !13, i64 912, !36, i64 936, !32, i64 960, !13, i64 984, !13, i64 1008, !13, i64 1032, !13, i64 1056, !13, i64 1080, !13, i64 1104, !13, i64 1128, !13, i64 1152, !13, i64 1176, !13, i64 1200, !32, i64 1224, !13, i64 1248, !13, i64 1272, !32, i64 1296, !13, i64 1320, !13, i64 1344, !32, i64 1368, !12, i64 1392, !12, i64 1396, !13, i64 1400, !13, i64 1424, !13, i64 1448, !32, i64 1472, !13, i64 1496, !13, i64 1520, !13, i64 1544, !13, i64 1568, !32, i64 1592, !32, i64 1616, !13, i64 1640, !13, i64 1664, !13, i64 1688, !32, i64 1712, !40, i64 1736}
!11 = !{!"double", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTSSt6vectorIiSaIiEE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!17 = !{!"_ZTS12RefactorInfo", !18, i64 0, !13, i64 8, !13, i64 32, !19, i64 56, !11, i64 80}
!18 = !{!"bool", !8, i64 0}
!19 = !{!"_ZTSSt6vectorIaSaIaEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!23 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !27, i64 0}
!27 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !28, i64 0}
!28 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !7, i64 0}
!29 = !{!"_ZTS15HighsLogOptions", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !30, i64 48, !7, i64 80, !18, i64 88}
!30 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !31, i64 0, !7, i64 24}
!31 = !{!"_ZTSSt14_Function_base", !8, i64 0, !7, i64 16}
!32 = !{!"_ZTSSt6vectorIdSaIdEE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!36 = !{!"_ZTSSt6vectorIcSaIcEE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!40 = !{!"_ZTS11HVectorBaseIdE", !12, i64 0, !12, i64 4, !13, i64 8, !32, i64 32, !11, i64 56, !36, i64 64, !13, i64 88, !7, i64 112, !18, i64 120, !12, i64 124, !13, i64 128, !32, i64 152}
!41 = !{!"_ZTS17ProductFormUpdate", !18, i64 0, !12, i64 4, !12, i64 8, !13, i64 16, !32, i64 40, !13, i64 64, !13, i64 88, !32, i64 112}
!42 = !{!"_ZTS14SimplexIterate", !18, i64 0, !43, i64 8, !47, i64 128, !32, i64 728}
!43 = !{!"_ZTS12SimplexBasis", !13, i64 0, !19, i64 24, !19, i64 48, !44, i64 72, !12, i64 80, !12, i64 84, !45, i64 88}
!44 = !{!"long", !8, i64 0}
!45 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !46, i64 0, !44, i64 8, !8, i64 16}
!46 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!47 = !{!"_ZTS24InvertibleRepresentation", !13, i64 0, !13, i64 24, !13, i64 48, !13, i64 72, !32, i64 96, !13, i64 120, !13, i64 144, !32, i64 168, !13, i64 192, !13, i64 216, !32, i64 240, !13, i64 264, !13, i64 288, !13, i64 312, !32, i64 336, !13, i64 360, !13, i64 384, !13, i64 408, !13, i64 432, !32, i64 456, !13, i64 480, !13, i64 504, !32, i64 528, !13, i64 552, !32, i64 576}
!48 = !{!49, !12, i64 348}
!49 = !{!"_ZTS18HighsOptionsStruct", !45, i64 8, !45, i64 40, !45, i64 72, !45, i64 104, !11, i64 136, !45, i64 144, !45, i64 176, !12, i64 208, !45, i64 216, !11, i64 248, !11, i64 256, !11, i64 264, !11, i64 272, !11, i64 280, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312, !11, i64 320, !11, i64 328, !12, i64 336, !12, i64 340, !12, i64 344, !12, i64 348, !12, i64 352, !12, i64 356, !12, i64 360, !12, i64 364, !12, i64 368, !12, i64 372, !12, i64 376, !12, i64 380, !12, i64 384, !12, i64 388, !45, i64 392, !18, i64 424, !18, i64 425, !18, i64 426, !12, i64 428, !12, i64 432, !45, i64 440, !18, i64 472, !18, i64 473, !18, i64 474, !12, i64 476, !18, i64 480, !18, i64 481, !12, i64 484, !12, i64 488, !11, i64 496, !12, i64 504, !12, i64 508, !12, i64 512, !18, i64 516, !12, i64 520, !18, i64 524, !18, i64 525, !18, i64 526, !18, i64 527, !18, i64 528, !18, i64 529, !18, i64 530, !12, i64 532, !12, i64 536, !12, i64 540, !12, i64 544, !12, i64 548, !12, i64 552, !12, i64 556, !12, i64 560, !12, i64 564, !12, i64 568, !12, i64 572, !12, i64 576, !12, i64 580, !12, i64 584, !12, i64 588, !18, i64 592, !18, i64 593, !18, i64 594, !18, i64 595, !11, i64 600, !11, i64 608, !11, i64 616, !11, i64 624, !11, i64 632, !11, i64 640, !11, i64 648, !11, i64 656, !11, i64 664, !11, i64 672, !11, i64 680, !18, i64 688, !18, i64 689, !18, i64 690, !18, i64 691, !12, i64 692, !11, i64 696, !18, i64 704, !18, i64 705, !45, i64 712, !11, i64 744, !12, i64 752, !12, i64 756, !18, i64 760, !18, i64 761, !18, i64 762, !18, i64 763, !12, i64 764, !12, i64 768, !12, i64 772, !12, i64 776, !12, i64 780, !12, i64 784, !12, i64 788, !12, i64 792, !12, i64 796, !12, i64 800, !12, i64 804, !11, i64 808, !11, i64 816, !11, i64 824, !11, i64 832, !11, i64 840, !18, i64 848, !18, i64 849, !45, i64 856, !18, i64 888, !12, i64 892, !29, i64 896}
!50 = !{!6, !7, i64 0}
!51 = !{!52, !12, i64 4}
!52 = !{!"_ZTS7HighsLp", !12, i64 0, !12, i64 4, !32, i64 8, !32, i64 32, !32, i64 56, !32, i64 80, !32, i64 104, !53, i64 128, !55, i64 240, !11, i64 248, !45, i64 256, !45, i64 288, !12, i64 320, !12, i64 324, !56, i64 328, !56, i64 352, !60, i64 376, !64, i64 400, !64, i64 456, !12, i64 512, !12, i64 516, !70, i64 520, !18, i64 592, !18, i64 593, !12, i64 596, !18, i64 600, !71, i64 608}
!53 = !{!"_ZTS17HighsSparseMatrix", !54, i64 0, !12, i64 4, !12, i64 8, !13, i64 16, !13, i64 40, !13, i64 64, !32, i64 88}
!54 = !{!"_ZTS12MatrixFormat", !8, i64 0}
!55 = !{!"_ZTS8ObjSense", !8, i64 0}
!56 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!60 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!64 = !{!"_ZTS13HighsNameHash", !65, i64 0}
!65 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !66, i64 0}
!66 = !{!"_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", !7, i64 0, !44, i64 8, !67, i64 16, !44, i64 24, !68, i64 32, !7, i64 48}
!67 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !7, i64 0}
!68 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !69, i64 0, !44, i64 8}
!69 = !{!"float", !8, i64 0}
!70 = !{!"_ZTS10HighsScale", !12, i64 0, !18, i64 4, !12, i64 8, !12, i64 12, !11, i64 16, !32, i64 24, !32, i64 48}
!71 = !{!"_ZTS11HighsLpMods", !13, i64 0, !13, i64 24, !32, i64 48, !32, i64 72, !60, i64 96, !13, i64 120, !32, i64 144, !13, i64 168, !32, i64 192, !13, i64 216, !32, i64 240, !32, i64 264, !32, i64 288}
!72 = !{!52, !12, i64 0}
!73 = !{!6, !7, i64 16}
!74 = !{!52, !12, i64 136}
!75 = !{!52, !12, i64 132}
!76 = !{!49, !12, i64 520}
!77 = !{!40, !12, i64 4}
!78 = !{!12, !12, i64 0}
!79 = !{!11, !11, i64 0}
!80 = distinct !{!80, !81}
!81 = !{!"llvm.loop.mustprogress"}
!82 = distinct !{!82, !81}
!83 = distinct !{!83, !81}
!84 = distinct !{!84, !81}
!85 = !{!40, !18, i64 120}
!86 = distinct !{!86, !81}
!87 = distinct !{!87, !81}
!88 = distinct !{!88, !81}
!89 = distinct !{!89, !81}
!90 = distinct !{!90, !81}
!91 = distinct !{!91, !81}
!92 = distinct !{!92, !81}
!93 = distinct !{!93, !81}


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