; LLVM IR from ERGO-Code/HiGHS :: examples (call_highs_from_c)

; 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"

@.str.2 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@__const.full_api.col_cost = external hidden unnamed_addr constant [2 x double], align 16
@__const.full_api.col_lower = external hidden unnamed_addr constant [2 x double], align 16
@__const.full_api.col_upper = external hidden unnamed_addr constant [2 x double], align 16
@__const.full_api.row_lower = external hidden unnamed_addr constant [3 x double], align 16
@__const.full_api.row_upper = external hidden unnamed_addr constant [3 x double], align 16
@__const.full_api.a_start = external hidden unnamed_addr constant [2 x i32], align 4
@__const.full_api.a_index = external hidden unnamed_addr constant [5 x i32], align 16
@__PRETTY_FUNCTION__.full_api = external hidden unnamed_addr constant [16 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.full_api.ar_start = external hidden unnamed_addr constant [3 x i32], align 4
@__const.full_api.ar_index = external hidden unnamed_addr constant [5 x i32], align 16
@.str.55 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [34 x i8], align 1
@__const.full_api.integrality = external hidden unnamed_addr constant [2 x i32], align 4
@.str.65 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [20 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: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #3

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

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

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #6

declare ptr @Highs_create() #5

declare i32 @Highs_run(ptr noundef) #5

declare i32 @Highs_getModelStatus(ptr noundef) #5

declare i32 @Highs_getDoubleInfoValue(ptr noundef, ptr noundef, ptr noundef) #5

; Function Attrs: nounwind uwtable
define dso_local void @full_api() #7 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca double, align 8
  %6 = alloca [2 x double], align 16
  %7 = alloca [2 x double], align 16
  %8 = alloca [2 x double], align 16
  %9 = alloca [3 x double], align 16
  %10 = alloca [3 x double], align 16
  %11 = alloca i32, align 4
  %12 = alloca [2 x i32], align 4
  %13 = alloca [5 x i32], align 16
  %14 = alloca [5 x double], align 16
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca double, align 8
  %18 = alloca i32, align 4
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca [3 x i32], align 4
  %39 = alloca [5 x i32], align 16
  %40 = alloca [5 x double], align 16
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca double, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca [2 x i32], align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = call ptr @Highs_version()
  %52 = call i32 (ptr, ...) @printf(ptr noundef @.str.33, ptr noundef %51)
  %53 = call i32 @Highs_versionMajor()
  %54 = call i32 (ptr, ...) @printf(ptr noundef @.str.34, i32 noundef %53)
  %55 = call i32 @Highs_versionMinor()
  %56 = call i32 (ptr, ...) @printf(ptr noundef @.str.35, i32 noundef %55)
  %57 = call i32 @Highs_versionPatch()
  %58 = call i32 (ptr, ...) @printf(ptr noundef @.str.36, i32 noundef %57)
  %59 = call ptr @Highs_githash()
  %60 = call i32 (ptr, ...) @printf(ptr noundef @.str.37, ptr noundef %59)
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #8
  store i32 2, ptr %1, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #8
  store i32 3, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #8
  store i32 5, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #8
  store i32 1, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  store double 3.000000e+00, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %6, ptr align 16 @__const.full_api.col_cost, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const.full_api.col_lower, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const.full_api.col_upper, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %9, ptr align 16 @__const.full_api.row_lower, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %10, ptr align 16 @__const.full_api.row_upper, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 1, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %12, ptr align 4 @__const.full_api.a_start, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 20, ptr %13) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %13, ptr align 16 @__const.full_api.a_index, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %14) #8
  call void @llvm.memset.p0.i64(ptr align 16 %14, i8 0, i64 40, i1 false)
  %61 = getelementptr inbounds [5 x double], ptr %14, i32 0, i32 0
  store double 1.000000e+00, ptr %61, align 16
  %62 = getelementptr inbounds [5 x double], ptr %14, i32 0, i32 1
  store double 3.000000e+00, ptr %62, align 8
  %63 = getelementptr inbounds [5 x double], ptr %14, i32 0, i32 2
  store double 1.000000e+00, ptr %63, align 16
  %64 = getelementptr inbounds [5 x double], ptr %14, i32 0, i32 3
  store double 2.000000e+00, ptr %64, align 8
  %65 = getelementptr inbounds [5 x double], ptr %14, i32 0, i32 4
  store double 2.000000e+00, ptr %65, align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %66 = call ptr @Highs_create()
  store ptr %66, ptr %23, align 8, !tbaa !11
  %67 = load ptr, ptr %23, align 8, !tbaa !11
  %68 = load i32, ptr %4, align 4, !tbaa !5
  %69 = getelementptr inbounds [2 x double], ptr %6, i64 0, i64 0
  %70 = getelementptr inbounds [2 x double], ptr %7, i64 0, i64 0
  %71 = getelementptr inbounds [2 x double], ptr %8, i64 0, i64 0
  %72 = getelementptr inbounds [3 x double], ptr %9, i64 0, i64 0
  %73 = getelementptr inbounds [3 x double], ptr %10, i64 0, i64 0
  %74 = getelementptr inbounds [2 x i32], ptr %12, i64 0, i64 0
  %75 = getelementptr inbounds [5 x i32], ptr %13, i64 0, i64 0
  %76 = getelementptr inbounds [5 x double], ptr %14, i64 0, i64 0
  %77 = call i32 @Highs_passLp(ptr noundef %67, i32 noundef 2, i32 noundef 3, i32 noundef 5, i32 noundef 1, i32 noundef %68, double noundef 3.000000e+00, ptr noundef %69, ptr noundef %70, ptr noundef %71, ptr noundef %72, ptr noundef %73, ptr noundef %74, ptr noundef %75, ptr noundef %76)
  store i32 %77, ptr %15, align 4, !tbaa !5
  %78 = load i32, ptr %15, align 4, !tbaa !5
  %79 = icmp eq i32 %78, 0
  br i1 %79, label %80, label %81

80:                                               ; preds = %0
  br label %82

81:                                               ; preds = %0
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.21, i32 noundef 380, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

82:                                               ; preds = %80
  %83 = load ptr, ptr %23, align 8, !tbaa !11
  %84 = call i32 @Highs_run(ptr noundef %83)
  store i32 %84, ptr %15, align 4, !tbaa !5
  %85 = load i32, ptr %15, align 4, !tbaa !5
  %86 = icmp eq i32 %85, 0
  br i1 %86, label %87, label %88

87:                                               ; preds = %82
  br label %89

88:                                               ; preds = %82
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.21, i32 noundef 385, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

89:                                               ; preds = %87
  %90 = load ptr, ptr %23, align 8, !tbaa !11
  %91 = call i32 @Highs_getModelStatus(ptr noundef %90)
  store i32 %91, ptr %16, align 4, !tbaa !5
  %92 = load i32, ptr %16, align 4, !tbaa !5
  %93 = icmp eq i32 %92, 7
  br i1 %93, label %94, label %95

94:                                               ; preds = %89
  br label %96

95:                                               ; preds = %89
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 388, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

96:                                               ; preds = %94
  %97 = load i32, ptr %15, align 4, !tbaa !5
  %98 = load i32, ptr %16, align 4, !tbaa !5
  %99 = call i32 (ptr, ...) @printf(ptr noundef @.str.38, i32 noundef %97, i32 noundef %98)
  %100 = load ptr, ptr %23, align 8, !tbaa !11
  %101 = call i32 @Highs_getDoubleInfoValue(ptr noundef %100, ptr noundef @.str.5, ptr noundef %17)
  %102 = load ptr, ptr %23, align 8, !tbaa !11
  %103 = call i32 @Highs_getIntInfoValue(ptr noundef %102, ptr noundef @.str.2, ptr noundef %18)
  %104 = load ptr, ptr %23, align 8, !tbaa !11
  %105 = call i32 @Highs_getIntInfoValue(ptr noundef %104, ptr noundef @.str.39, ptr noundef %20)
  %106 = load ptr, ptr %23, align 8, !tbaa !11
  %107 = call i32 @Highs_getIntInfoValue(ptr noundef %106, ptr noundef @.str.40, ptr noundef %21)
  %108 = load ptr, ptr %23, align 8, !tbaa !11
  %109 = call i32 @Highs_getIntInfoValue(ptr noundef %108, ptr noundef @.str.41, ptr noundef %22)
  %110 = load i32, ptr %20, align 4, !tbaa !5
  %111 = icmp eq i32 %110, 2
  br i1 %111, label %112, label %113

112:                                              ; preds = %96
  br label %114

113:                                              ; preds = %96
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 405, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

114:                                              ; preds = %112
  %115 = load i32, ptr %21, align 4, !tbaa !5
  %116 = icmp eq i32 %115, 2
  br i1 %116, label %117, label %118

117:                                              ; preds = %114
  br label %119

118:                                              ; preds = %114
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 406, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

119:                                              ; preds = %117
  %120 = load i32, ptr %22, align 4, !tbaa !5
  %121 = icmp eq i32 %120, 1
  br i1 %121, label %122, label %123

122:                                              ; preds = %119
  br label %124

123:                                              ; preds = %119
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 408, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

124:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %125 = call noalias ptr @malloc(i64 noundef 16) #10
  store ptr %125, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %126 = call noalias ptr @malloc(i64 noundef 16) #10
  store ptr %126, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %127 = call noalias ptr @malloc(i64 noundef 24) #10
  store ptr %127, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %128 = call noalias ptr @malloc(i64 noundef 24) #10
  store ptr %128, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %129 = call noalias ptr @malloc(i64 noundef 8) #10
  store ptr %129, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %130 = call noalias ptr @malloc(i64 noundef 12) #10
  store ptr %130, ptr %29, align 8, !tbaa !11
  %131 = load ptr, ptr %23, align 8, !tbaa !11
  %132 = load ptr, ptr %24, align 8, !tbaa !11
  %133 = load ptr, ptr %25, align 8, !tbaa !11
  %134 = load ptr, ptr %26, align 8, !tbaa !11
  %135 = load ptr, ptr %27, align 8, !tbaa !11
  %136 = call i32 @Highs_getSolution(ptr noundef %131, ptr noundef %132, ptr noundef %133, ptr noundef %134, ptr noundef %135)
  %137 = load ptr, ptr %23, align 8, !tbaa !11
  %138 = load ptr, ptr %28, align 8, !tbaa !11
  %139 = load ptr, ptr %29, align 8, !tbaa !11
  %140 = call i32 @Highs_getBasis(ptr noundef %137, ptr noundef %138, ptr noundef %139)
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %141

141:                                              ; preds = %163, %124
  %142 = load i32, ptr %30, align 4, !tbaa !5
  %143 = icmp slt i32 %142, 2
  br i1 %143, label %145, label %144

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

145:                                              ; preds = %141
  %146 = load i32, ptr %30, align 4, !tbaa !5
  %147 = load ptr, ptr %24, align 8, !tbaa !11
  %148 = load i32, ptr %30, align 4, !tbaa !5
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds double, ptr %147, i64 %149
  %151 = load double, ptr %150, align 8, !tbaa !9
  %152 = load ptr, ptr %25, align 8, !tbaa !11
  %153 = load i32, ptr %30, align 4, !tbaa !5
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds double, ptr %152, i64 %154
  %156 = load double, ptr %155, align 8, !tbaa !9
  %157 = load ptr, ptr %28, align 8, !tbaa !11
  %158 = load i32, ptr %30, align 4, !tbaa !5
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds i32, ptr %157, i64 %159
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call i32 (ptr, ...) @printf(ptr noundef @.str.45, i32 noundef %146, double noundef %151, double noundef %156, i32 noundef %161)
  br label %163

163:                                              ; preds = %145
  %164 = load i32, ptr %30, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr %30, align 4, !tbaa !5
  br label %141, !llvm.loop !13

166:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %167

167:                                              ; preds = %189, %166
  %168 = load i32, ptr %31, align 4, !tbaa !5
  %169 = icmp slt i32 %168, 3
  br i1 %169, label %171, label %170

170:                                              ; preds = %167
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %192

171:                                              ; preds = %167
  %172 = load i32, ptr %31, align 4, !tbaa !5
  %173 = load ptr, ptr %26, align 8, !tbaa !11
  %174 = load i32, ptr %31, align 4, !tbaa !5
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds double, ptr %173, i64 %175
  %177 = load double, ptr %176, align 8, !tbaa !9
  %178 = load ptr, ptr %27, align 8, !tbaa !11
  %179 = load i32, ptr %31, align 4, !tbaa !5
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds double, ptr %178, i64 %180
  %182 = load double, ptr %181, align 8, !tbaa !9
  %183 = load ptr, ptr %29, align 8, !tbaa !11
  %184 = load i32, ptr %31, align 4, !tbaa !5
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds i32, ptr %183, i64 %185
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call i32 (ptr, ...) @printf(ptr noundef @.str.46, i32 noundef %172, double noundef %177, double noundef %182, i32 noundef %187)
  br label %189

189:                                              ; preds = %171
  %190 = load i32, ptr %31, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr %31, align 4, !tbaa !5
  br label %167, !llvm.loop !15

192:                                              ; preds = %170
  %193 = load double, ptr %17, align 8, !tbaa !9
  %194 = load i32, ptr %18, align 4, !tbaa !5
  %195 = call i32 (ptr, ...) @printf(ptr noundef @.str.47, double noundef %193, i32 noundef %194)
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %196 = load ptr, ptr %23, align 8, !tbaa !11
  %197 = call i32 @Highs_getObjectiveSense(ptr noundef %196, ptr noundef %32)
  store i32 %197, ptr %15, align 4, !tbaa !5
  %198 = load i32, ptr %15, align 4, !tbaa !5
  %199 = icmp eq i32 %198, 0
  br i1 %199, label %200, label %201

200:                                              ; preds = %192
  br label %202

201:                                              ; preds = %192
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 441, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

202:                                              ; preds = %200
  %203 = load i32, ptr %32, align 4, !tbaa !5
  %204 = call i32 (ptr, ...) @printf(ptr noundef @.str.49, i32 noundef %203)
  %205 = load i32, ptr %32, align 4, !tbaa !5
  %206 = load i32, ptr %4, align 4, !tbaa !5
  %207 = icmp eq i32 %205, %206
  br i1 %207, label %208, label %209

208:                                              ; preds = %202
  br label %210

209:                                              ; preds = %202
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 444, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

210:                                              ; preds = %208
  %211 = load ptr, ptr %23, align 8, !tbaa !11
  %212 = call i32 @Highs_changeObjectiveSense(ptr noundef %211, i32 noundef -1)
  %213 = load ptr, ptr %23, align 8, !tbaa !11
  %214 = call i32 @Highs_run(ptr noundef %213)
  store i32 %214, ptr %15, align 4, !tbaa !5
  %215 = load i32, ptr %15, align 4, !tbaa !5
  %216 = icmp eq i32 %215, 0
  br i1 %216, label %217, label %218

217:                                              ; preds = %210
  br label %219

218:                                              ; preds = %210
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.21, i32 noundef 452, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

219:                                              ; preds = %217
  %220 = load ptr, ptr %23, align 8, !tbaa !11
  %221 = call i32 @Highs_getModelStatus(ptr noundef %220)
  store i32 %221, ptr %16, align 4, !tbaa !5
  %222 = load i32, ptr %16, align 4, !tbaa !5
  %223 = icmp eq i32 %222, 7
  br i1 %223, label %224, label %225

224:                                              ; preds = %219
  br label %226

225:                                              ; preds = %219
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 455, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

226:                                              ; preds = %224
  %227 = load i32, ptr %15, align 4, !tbaa !5
  %228 = load i32, ptr %16, align 4, !tbaa !5
  %229 = call i32 (ptr, ...) @printf(ptr noundef @.str.38, i32 noundef %227, i32 noundef %228)
  %230 = load ptr, ptr %23, align 8, !tbaa !11
  %231 = call i32 @Highs_getDoubleInfoValue(ptr noundef %230, ptr noundef @.str.5, ptr noundef %17)
  %232 = load ptr, ptr %23, align 8, !tbaa !11
  %233 = call i32 @Highs_getIntInfoValue(ptr noundef %232, ptr noundef @.str.2, ptr noundef %18)
  %234 = load ptr, ptr %23, align 8, !tbaa !11
  %235 = call i32 @Highs_getIntInfoValue(ptr noundef %234, ptr noundef @.str.39, ptr noundef %20)
  %236 = load ptr, ptr %23, align 8, !tbaa !11
  %237 = call i32 @Highs_getIntInfoValue(ptr noundef %236, ptr noundef @.str.40, ptr noundef %21)
  %238 = load ptr, ptr %23, align 8, !tbaa !11
  %239 = call i32 @Highs_getIntInfoValue(ptr noundef %238, ptr noundef @.str.41, ptr noundef %22)
  %240 = load i32, ptr %20, align 4, !tbaa !5
  %241 = icmp eq i32 %240, 2
  br i1 %241, label %242, label %243

242:                                              ; preds = %226
  br label %244

243:                                              ; preds = %226
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 472, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

244:                                              ; preds = %242
  %245 = load i32, ptr %21, align 4, !tbaa !5
  %246 = icmp eq i32 %245, 2
  br i1 %246, label %247, label %248

247:                                              ; preds = %244
  br label %249

248:                                              ; preds = %244
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

249:                                              ; preds = %247
  %250 = load i32, ptr %22, align 4, !tbaa !5
  %251 = icmp eq i32 %250, 1
  br i1 %251, label %252, label %253

252:                                              ; preds = %249
  br label %254

253:                                              ; preds = %249
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 475, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

254:                                              ; preds = %252
  %255 = load ptr, ptr %23, align 8, !tbaa !11
  %256 = load ptr, ptr %24, align 8, !tbaa !11
  %257 = load ptr, ptr %25, align 8, !tbaa !11
  %258 = load ptr, ptr %26, align 8, !tbaa !11
  %259 = load ptr, ptr %27, align 8, !tbaa !11
  %260 = call i32 @Highs_getSolution(ptr noundef %255, ptr noundef %256, ptr noundef %257, ptr noundef %258, ptr noundef %259)
  %261 = load ptr, ptr %23, align 8, !tbaa !11
  %262 = load ptr, ptr %28, align 8, !tbaa !11
  %263 = load ptr, ptr %29, align 8, !tbaa !11
  %264 = call i32 @Highs_getBasis(ptr noundef %261, ptr noundef %262, ptr noundef %263)
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !5
  br label %265

265:                                              ; preds = %287, %254
  %266 = load i32, ptr %33, align 4, !tbaa !5
  %267 = icmp slt i32 %266, 2
  br i1 %267, label %269, label %268

268:                                              ; preds = %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %290

269:                                              ; preds = %265
  %270 = load i32, ptr %33, align 4, !tbaa !5
  %271 = load ptr, ptr %24, align 8, !tbaa !11
  %272 = load i32, ptr %33, align 4, !tbaa !5
  %273 = sext i32 %272 to i64
  %274 = getelementptr inbounds double, ptr %271, i64 %273
  %275 = load double, ptr %274, align 8, !tbaa !9
  %276 = load ptr, ptr %25, align 8, !tbaa !11
  %277 = load i32, ptr %33, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds double, ptr %276, i64 %278
  %280 = load double, ptr %279, align 8, !tbaa !9
  %281 = load ptr, ptr %28, align 8, !tbaa !11
  %282 = load i32, ptr %33, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds i32, ptr %281, i64 %283
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call i32 (ptr, ...) @printf(ptr noundef @.str.45, i32 noundef %270, double noundef %275, double noundef %280, i32 noundef %285)
  br label %287

287:                                              ; preds = %269
  %288 = load i32, ptr %33, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr %33, align 4, !tbaa !5
  br label %265, !llvm.loop !16

290:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  store i32 0, ptr %34, align 4, !tbaa !5
  br label %291

291:                                              ; preds = %313, %290
  %292 = load i32, ptr %34, align 4, !tbaa !5
  %293 = icmp slt i32 %292, 3
  br i1 %293, label %295, label %294

294:                                              ; preds = %291
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %316

295:                                              ; preds = %291
  %296 = load i32, ptr %34, align 4, !tbaa !5
  %297 = load ptr, ptr %26, align 8, !tbaa !11
  %298 = load i32, ptr %34, align 4, !tbaa !5
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds double, ptr %297, i64 %299
  %301 = load double, ptr %300, align 8, !tbaa !9
  %302 = load ptr, ptr %27, align 8, !tbaa !11
  %303 = load i32, ptr %34, align 4, !tbaa !5
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds double, ptr %302, i64 %304
  %306 = load double, ptr %305, align 8, !tbaa !9
  %307 = load ptr, ptr %29, align 8, !tbaa !11
  %308 = load i32, ptr %34, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds i32, ptr %307, i64 %309
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call i32 (ptr, ...) @printf(ptr noundef @.str.46, i32 noundef %296, double noundef %301, double noundef %306, i32 noundef %311)
  br label %313

313:                                              ; preds = %295
  %314 = load i32, ptr %34, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr %34, align 4, !tbaa !5
  br label %291, !llvm.loop !17

316:                                              ; preds = %294
  %317 = load double, ptr %17, align 8, !tbaa !9
  %318 = load i32, ptr %18, align 4, !tbaa !5
  %319 = call i32 (ptr, ...) @printf(ptr noundef @.str.47, double noundef %317, i32 noundef %318)
  %320 = load ptr, ptr %23, align 8, !tbaa !11
  %321 = call i32 @Highs_clearModel(ptr noundef %320)
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %322 = load ptr, ptr %23, align 8, !tbaa !11
  %323 = call i32 @Highs_getNumCol(ptr noundef %322)
  store i32 %323, ptr %35, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %324 = load ptr, ptr %23, align 8, !tbaa !11
  %325 = call i32 @Highs_getNumRow(ptr noundef %324)
  store i32 %325, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %326 = load ptr, ptr %23, align 8, !tbaa !11
  %327 = call i32 @Highs_getNumNz(ptr noundef %326)
  store i32 %327, ptr %37, align 4, !tbaa !5
  %328 = load i32, ptr %35, align 4, !tbaa !5
  %329 = icmp eq i32 %328, 0
  br i1 %329, label %330, label %331

330:                                              ; preds = %316
  br label %332

331:                                              ; preds = %316
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 505, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

332:                                              ; preds = %330
  %333 = load i32, ptr %36, align 4, !tbaa !5
  %334 = icmp eq i32 %333, 0
  br i1 %334, label %335, label %336

335:                                              ; preds = %332
  br label %337

336:                                              ; preds = %332
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 506, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

337:                                              ; preds = %335
  %338 = load i32, ptr %37, align 4, !tbaa !5
  %339 = icmp eq i32 %338, 0
  br i1 %339, label %340, label %341

340:                                              ; preds = %337
  br label %342

341:                                              ; preds = %337
  call void @__assert_fail(ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 507, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

342:                                              ; preds = %340
  %343 = load i32, ptr %35, align 4, !tbaa !5
  %344 = load i32, ptr %36, align 4, !tbaa !5
  %345 = load i32, ptr %37, align 4, !tbaa !5
  %346 = call i32 (ptr, ...) @printf(ptr noundef @.str.54, i32 noundef %343, i32 noundef %344, i32 noundef %345)
  call void @llvm.lifetime.start.p0(i64 12, ptr %38) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %38, ptr align 4 @__const.full_api.ar_start, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 20, ptr %39) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %39, ptr align 16 @__const.full_api.ar_index, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %40) #8
  call void @llvm.memset.p0.i64(ptr align 16 %40, i8 0, i64 40, i1 false)
  %347 = getelementptr inbounds [5 x double], ptr %40, i32 0, i32 0
  store double 1.000000e+00, ptr %347, align 16
  %348 = getelementptr inbounds [5 x double], ptr %40, i32 0, i32 1
  store double 1.000000e+00, ptr %348, align 8
  %349 = getelementptr inbounds [5 x double], ptr %40, i32 0, i32 2
  store double 2.000000e+00, ptr %349, align 16
  %350 = getelementptr inbounds [5 x double], ptr %40, i32 0, i32 3
  store double 3.000000e+00, ptr %350, align 8
  %351 = getelementptr inbounds [5 x double], ptr %40, i32 0, i32 4
  store double 2.000000e+00, ptr %351, align 16
  %352 = load ptr, ptr %23, align 8, !tbaa !11
  %353 = getelementptr inbounds [2 x double], ptr %6, i64 0, i64 0
  %354 = getelementptr inbounds [2 x double], ptr %7, i64 0, i64 0
  %355 = getelementptr inbounds [2 x double], ptr %8, i64 0, i64 0
  %356 = call i32 @Highs_addCols(ptr noundef %352, i32 noundef 2, ptr noundef %353, ptr noundef %354, ptr noundef %355, i32 noundef 0, ptr noundef null, ptr noundef null, ptr noundef null)
  store i32 %356, ptr %15, align 4, !tbaa !5
  %357 = load i32, ptr %15, align 4, !tbaa !5
  %358 = icmp eq i32 %357, 0
  br i1 %358, label %359, label %360

359:                                              ; preds = %342
  br label %361

360:                                              ; preds = %342
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 521, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

361:                                              ; preds = %359
  %362 = load ptr, ptr %23, align 8, !tbaa !11
  %363 = getelementptr inbounds [3 x double], ptr %9, i64 0, i64 0
  %364 = getelementptr inbounds [3 x double], ptr %10, i64 0, i64 0
  %365 = getelementptr inbounds [3 x i32], ptr %38, i64 0, i64 0
  %366 = getelementptr inbounds [5 x i32], ptr %39, i64 0, i64 0
  %367 = getelementptr inbounds [5 x double], ptr %40, i64 0, i64 0
  %368 = call i32 @Highs_addRows(ptr noundef %362, i32 noundef 3, ptr noundef %363, ptr noundef %364, i32 noundef 5, ptr noundef %365, ptr noundef %366, ptr noundef %367)
  store i32 %368, ptr %15, align 4, !tbaa !5
  %369 = load i32, ptr %15, align 4, !tbaa !5
  %370 = icmp eq i32 %369, 0
  br i1 %370, label %371, label %372

371:                                              ; preds = %361
  br label %373

372:                                              ; preds = %361
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 525, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

373:                                              ; preds = %371
  %374 = load ptr, ptr %23, align 8, !tbaa !11
  %375 = call i32 @Highs_changeObjectiveSense(ptr noundef %374, i32 noundef -1)
  %376 = load ptr, ptr %23, align 8, !tbaa !11
  %377 = call i32 @Highs_changeObjectiveOffset(ptr noundef %376, double noundef 3.000000e+00)
  %378 = load ptr, ptr %23, align 8, !tbaa !11
  %379 = call i32 @Highs_getObjectiveSense(ptr noundef %378, ptr noundef %32)
  store i32 %379, ptr %15, align 4, !tbaa !5
  %380 = load i32, ptr %15, align 4, !tbaa !5
  %381 = icmp eq i32 %380, 0
  br i1 %381, label %382, label %383

382:                                              ; preds = %373
  br label %384

383:                                              ; preds = %373
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 534, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

384:                                              ; preds = %382
  %385 = load i32, ptr %32, align 4, !tbaa !5
  %386 = call i32 (ptr, ...) @printf(ptr noundef @.str.49, i32 noundef %385)
  %387 = load i32, ptr %32, align 4, !tbaa !5
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %390

389:                                              ; preds = %384
  br label %391

390:                                              ; preds = %384
  call void @__assert_fail(ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 537, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

391:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store ptr @.str.56, ptr %42, align 8, !tbaa !11
  %392 = load ptr, ptr %23, align 8, !tbaa !11
  %393 = load ptr, ptr %42, align 8, !tbaa !11
  %394 = call i32 @Highs_getOptionType(ptr noundef %392, ptr noundef %393, ptr noundef %41)
  store i32 %394, ptr %15, align 4, !tbaa !5
  %395 = load ptr, ptr %42, align 8, !tbaa !11
  %396 = load i32, ptr %41, align 4, !tbaa !5
  %397 = call i32 (ptr, ...) @printf(ptr noundef @.str.57, ptr noundef %395, i32 noundef %396)
  %398 = load i32, ptr %15, align 4, !tbaa !5
  %399 = icmp eq i32 %398, 0
  br i1 %399, label %400, label %401

400:                                              ; preds = %391
  br label %402

401:                                              ; preds = %391
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.21, i32 noundef 547, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

402:                                              ; preds = %400
  %403 = load i32, ptr %41, align 4, !tbaa !5
  %404 = icmp eq i32 %403, 2
  br i1 %404, label %405, label %406

405:                                              ; preds = %402
  br label %407

406:                                              ; preds = %402
  call void @__assert_fail(ptr noundef @.str.58, ptr noundef @.str.21, i32 noundef 548, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

407:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %408 = load ptr, ptr %23, align 8, !tbaa !11
  %409 = call i32 @Highs_getDoubleOptionValue(ptr noundef %408, ptr noundef @.str.56, ptr noundef %43)
  %410 = load double, ptr %43, align 8, !tbaa !9
  %411 = call i32 (ptr, ...) @printf(ptr noundef @.str.59, double noundef %410)
  store double 0x3EB0C6F7A0B5ED8D, ptr %43, align 8, !tbaa !9
  %412 = load ptr, ptr %23, align 8, !tbaa !11
  %413 = load double, ptr %43, align 8, !tbaa !9
  %414 = call i32 @Highs_setDoubleOptionValue(ptr noundef %412, ptr noundef @.str.56, double noundef %413)
  %415 = load ptr, ptr %23, align 8, !tbaa !11
  %416 = call i32 @Highs_setBoolOptionValue(ptr noundef %415, ptr noundef @.str.60, i32 noundef 0)
  %417 = call i32 (ptr, ...) @printf(ptr noundef @.str.61)
  %418 = load ptr, ptr %23, align 8, !tbaa !11
  %419 = call i32 @Highs_run(ptr noundef %418)
  store i32 %419, ptr %15, align 4, !tbaa !5
  %420 = call i32 (ptr, ...) @printf(ptr noundef @.str.62)
  %421 = load ptr, ptr %23, align 8, !tbaa !11
  %422 = call i32 @Highs_setBoolOptionValue(ptr noundef %421, ptr noundef @.str.60, i32 noundef 1)
  %423 = load i32, ptr %15, align 4, !tbaa !5
  %424 = icmp eq i32 %423, 0
  br i1 %424, label %425, label %426

425:                                              ; preds = %407
  br label %427

426:                                              ; preds = %407
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 567, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

427:                                              ; preds = %425
  %428 = load ptr, ptr %23, align 8, !tbaa !11
  %429 = call i32 @Highs_getModelStatus(ptr noundef %428)
  store i32 %429, ptr %16, align 4, !tbaa !5
  %430 = load i32, ptr %16, align 4, !tbaa !5
  %431 = icmp eq i32 %430, 7
  br i1 %431, label %432, label %433

432:                                              ; preds = %427
  br label %434

433:                                              ; preds = %427
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 570, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

434:                                              ; preds = %432
  %435 = load i32, ptr %15, align 4, !tbaa !5
  %436 = load i32, ptr %16, align 4, !tbaa !5
  %437 = call i32 (ptr, ...) @printf(ptr noundef @.str.23, i32 noundef %435, i32 noundef %436)
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  store ptr @.str.5, ptr %45, align 8, !tbaa !11
  %438 = load ptr, ptr %23, align 8, !tbaa !11
  %439 = load ptr, ptr %45, align 8, !tbaa !11
  %440 = call i32 @Highs_getInfoType(ptr noundef %438, ptr noundef %439, ptr noundef %44)
  store i32 %440, ptr %15, align 4, !tbaa !5
  %441 = load ptr, ptr %45, align 8, !tbaa !11
  %442 = load i32, ptr %44, align 4, !tbaa !5
  %443 = call i32 (ptr, ...) @printf(ptr noundef @.str.63, ptr noundef %441, i32 noundef %442)
  %444 = load i32, ptr %15, align 4, !tbaa !5
  %445 = icmp eq i32 %444, 0
  br i1 %445, label %446, label %447

446:                                              ; preds = %434
  br label %448

447:                                              ; preds = %434
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.21, i32 noundef 581, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

448:                                              ; preds = %446
  %449 = load i32, ptr %44, align 4, !tbaa !5
  %450 = icmp eq i32 %449, 2
  br i1 %450, label %451, label %452

451:                                              ; preds = %448
  br label %453

452:                                              ; preds = %448
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.21, i32 noundef 582, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

453:                                              ; preds = %451
  %454 = load ptr, ptr %23, align 8, !tbaa !11
  %455 = call i32 @Highs_getDoubleInfoValue(ptr noundef %454, ptr noundef @.str.5, ptr noundef %17)
  %456 = load ptr, ptr %23, align 8, !tbaa !11
  %457 = call i32 @Highs_getIntInfoValue(ptr noundef %456, ptr noundef @.str.2, ptr noundef %18)
  %458 = load ptr, ptr %23, align 8, !tbaa !11
  %459 = call i32 @Highs_getIntInfoValue(ptr noundef %458, ptr noundef @.str.39, ptr noundef %20)
  %460 = load ptr, ptr %23, align 8, !tbaa !11
  %461 = call i32 @Highs_getIntInfoValue(ptr noundef %460, ptr noundef @.str.40, ptr noundef %21)
  %462 = load ptr, ptr %23, align 8, !tbaa !11
  %463 = call i32 @Highs_getIntInfoValue(ptr noundef %462, ptr noundef @.str.41, ptr noundef %22)
  %464 = load i32, ptr %20, align 4, !tbaa !5
  %465 = icmp eq i32 %464, 2
  br i1 %465, label %466, label %467

466:                                              ; preds = %453
  br label %468

467:                                              ; preds = %453
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 594, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

468:                                              ; preds = %466
  %469 = load i32, ptr %21, align 4, !tbaa !5
  %470 = icmp eq i32 %469, 2
  br i1 %470, label %471, label %472

471:                                              ; preds = %468
  br label %473

472:                                              ; preds = %468
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 595, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

473:                                              ; preds = %471
  %474 = load i32, ptr %22, align 4, !tbaa !5
  %475 = icmp eq i32 %474, 1
  br i1 %475, label %476, label %477

476:                                              ; preds = %473
  br label %478

477:                                              ; preds = %473
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 597, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

478:                                              ; preds = %476
  %479 = load ptr, ptr %23, align 8, !tbaa !11
  %480 = load ptr, ptr %24, align 8, !tbaa !11
  %481 = load ptr, ptr %25, align 8, !tbaa !11
  %482 = load ptr, ptr %26, align 8, !tbaa !11
  %483 = load ptr, ptr %27, align 8, !tbaa !11
  %484 = call i32 @Highs_getSolution(ptr noundef %479, ptr noundef %480, ptr noundef %481, ptr noundef %482, ptr noundef %483)
  %485 = load ptr, ptr %23, align 8, !tbaa !11
  %486 = load ptr, ptr %28, align 8, !tbaa !11
  %487 = load ptr, ptr %29, align 8, !tbaa !11
  %488 = call i32 @Highs_getBasis(ptr noundef %485, ptr noundef %486, ptr noundef %487)
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  store i32 0, ptr %46, align 4, !tbaa !5
  br label %489

489:                                              ; preds = %511, %478
  %490 = load i32, ptr %46, align 4, !tbaa !5
  %491 = icmp slt i32 %490, 2
  br i1 %491, label %493, label %492

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

493:                                              ; preds = %489
  %494 = load i32, ptr %46, align 4, !tbaa !5
  %495 = load ptr, ptr %24, align 8, !tbaa !11
  %496 = load i32, ptr %46, align 4, !tbaa !5
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds double, ptr %495, i64 %497
  %499 = load double, ptr %498, align 8, !tbaa !9
  %500 = load ptr, ptr %25, align 8, !tbaa !11
  %501 = load i32, ptr %46, align 4, !tbaa !5
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds double, ptr %500, i64 %502
  %504 = load double, ptr %503, align 8, !tbaa !9
  %505 = load ptr, ptr %28, align 8, !tbaa !11
  %506 = load i32, ptr %46, align 4, !tbaa !5
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds i32, ptr %505, i64 %507
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call i32 (ptr, ...) @printf(ptr noundef @.str.45, i32 noundef %494, double noundef %499, double noundef %504, i32 noundef %509)
  br label %511

511:                                              ; preds = %493
  %512 = load i32, ptr %46, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr %46, align 4, !tbaa !5
  br label %489, !llvm.loop !18

514:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store i32 0, ptr %47, align 4, !tbaa !5
  br label %515

515:                                              ; preds = %537, %514
  %516 = load i32, ptr %47, align 4, !tbaa !5
  %517 = icmp slt i32 %516, 3
  br i1 %517, label %519, label %518

518:                                              ; preds = %515
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %540

519:                                              ; preds = %515
  %520 = load i32, ptr %47, align 4, !tbaa !5
  %521 = load ptr, ptr %26, align 8, !tbaa !11
  %522 = load i32, ptr %47, align 4, !tbaa !5
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds double, ptr %521, i64 %523
  %525 = load double, ptr %524, align 8, !tbaa !9
  %526 = load ptr, ptr %27, align 8, !tbaa !11
  %527 = load i32, ptr %47, align 4, !tbaa !5
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds double, ptr %526, i64 %528
  %530 = load double, ptr %529, align 8, !tbaa !9
  %531 = load ptr, ptr %29, align 8, !tbaa !11
  %532 = load i32, ptr %47, align 4, !tbaa !5
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds i32, ptr %531, i64 %533
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call i32 (ptr, ...) @printf(ptr noundef @.str.46, i32 noundef %520, double noundef %525, double noundef %530, i32 noundef %535)
  br label %537

537:                                              ; preds = %519
  %538 = load i32, ptr %47, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr %47, align 4, !tbaa !5
  br label %515, !llvm.loop !19

540:                                              ; preds = %518
  %541 = load double, ptr %17, align 8, !tbaa !9
  %542 = load i32, ptr %18, align 4, !tbaa !5
  %543 = call i32 (ptr, ...) @printf(ptr noundef @.str.47, double noundef %541, i32 noundef %542)
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %48, ptr align 4 @__const.full_api.integrality, i64 8, i1 false)
  %544 = load ptr, ptr %23, align 8, !tbaa !11
  %545 = getelementptr inbounds [2 x i32], ptr %48, i64 0, i64 0
  %546 = call i32 @Highs_changeColsIntegralityByRange(ptr noundef %544, i32 noundef 0, i32 noundef 1, ptr noundef %545)
  %547 = load ptr, ptr %23, align 8, !tbaa !11
  %548 = call i32 @Highs_setBoolOptionValue(ptr noundef %547, ptr noundef @.str.60, i32 noundef 0)
  %549 = load ptr, ptr %23, align 8, !tbaa !11
  %550 = call i32 @Highs_run(ptr noundef %549)
  store i32 %550, ptr %15, align 4, !tbaa !5
  %551 = load ptr, ptr %23, align 8, !tbaa !11
  %552 = call i32 @Highs_setBoolOptionValue(ptr noundef %551, ptr noundef @.str.60, i32 noundef 1)
  %553 = load i32, ptr %15, align 4, !tbaa !5
  %554 = icmp eq i32 %553, 0
  br i1 %554, label %555, label %556

555:                                              ; preds = %540
  br label %557

556:                                              ; preds = %540
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.21, i32 noundef 629, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

557:                                              ; preds = %555
  %558 = load ptr, ptr %23, align 8, !tbaa !11
  %559 = call i32 @Highs_getModelStatus(ptr noundef %558)
  store i32 %559, ptr %16, align 4, !tbaa !5
  %560 = load i32, ptr %16, align 4, !tbaa !5
  %561 = icmp eq i32 %560, 7
  br i1 %561, label %562, label %563

562:                                              ; preds = %557
  br label %564

563:                                              ; preds = %557
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 632, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

564:                                              ; preds = %562
  %565 = load i32, ptr %15, align 4, !tbaa !5
  %566 = load i32, ptr %16, align 4, !tbaa !5
  %567 = call i32 (ptr, ...) @printf(ptr noundef @.str.23, i32 noundef %565, i32 noundef %566)
  %568 = load ptr, ptr %23, align 8, !tbaa !11
  %569 = call i32 @Highs_getDoubleInfoValue(ptr noundef %568, ptr noundef @.str.5, ptr noundef %17)
  %570 = load ptr, ptr %23, align 8, !tbaa !11
  %571 = call i32 @Highs_getIntInfoValue(ptr noundef %570, ptr noundef @.str.2, ptr noundef %18)
  %572 = load ptr, ptr %23, align 8, !tbaa !11
  %573 = call i32 @Highs_getInt64InfoValue(ptr noundef %572, ptr noundef @.str.6, ptr noundef %19)
  %574 = load ptr, ptr %23, align 8, !tbaa !11
  %575 = call i32 @Highs_getIntInfoValue(ptr noundef %574, ptr noundef @.str.39, ptr noundef %20)
  %576 = load ptr, ptr %23, align 8, !tbaa !11
  %577 = call i32 @Highs_getIntInfoValue(ptr noundef %576, ptr noundef @.str.40, ptr noundef %21)
  %578 = load ptr, ptr %23, align 8, !tbaa !11
  %579 = call i32 @Highs_getIntInfoValue(ptr noundef %578, ptr noundef @.str.41, ptr noundef %22)
  %580 = load i32, ptr %20, align 4, !tbaa !5
  %581 = icmp eq i32 %580, 2
  br i1 %581, label %582, label %583

582:                                              ; preds = %564
  br label %584

583:                                              ; preds = %564
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 650, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

584:                                              ; preds = %582
  %585 = load i32, ptr %21, align 4, !tbaa !5
  %586 = icmp eq i32 %585, 0
  br i1 %586, label %587, label %588

587:                                              ; preds = %584
  br label %589

588:                                              ; preds = %584
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 652, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

589:                                              ; preds = %587
  %590 = load i32, ptr %22, align 4, !tbaa !5
  %591 = icmp eq i32 %590, 0
  br i1 %591, label %592, label %593

592:                                              ; preds = %589
  br label %594

593:                                              ; preds = %589
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 654, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

594:                                              ; preds = %592
  %595 = load i64, ptr %19, align 8, !tbaa !20
  %596 = icmp eq i64 %595, 1
  br i1 %596, label %597, label %598

597:                                              ; preds = %594
  br label %599

598:                                              ; preds = %594
  call void @__assert_fail(ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 655, ptr noundef @__PRETTY_FUNCTION__.full_api) #9
  unreachable

599:                                              ; preds = %597
  %600 = load ptr, ptr %23, align 8, !tbaa !11
  %601 = load ptr, ptr %24, align 8, !tbaa !11
  %602 = load ptr, ptr %25, align 8, !tbaa !11
  %603 = load ptr, ptr %26, align 8, !tbaa !11
  %604 = load ptr, ptr %27, align 8, !tbaa !11
  %605 = call i32 @Highs_getSolution(ptr noundef %600, ptr noundef %601, ptr noundef %602, ptr noundef %603, ptr noundef %604)
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  store i32 0, ptr %49, align 4, !tbaa !5
  br label %606

606:                                              ; preds = %618, %599
  %607 = load i32, ptr %49, align 4, !tbaa !5
  %608 = icmp slt i32 %607, 2
  br i1 %608, label %610, label %609

609:                                              ; preds = %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %621

610:                                              ; preds = %606
  %611 = load i32, ptr %49, align 4, !tbaa !5
  %612 = load ptr, ptr %24, align 8, !tbaa !11
  %613 = load i32, ptr %49, align 4, !tbaa !5
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds double, ptr %612, i64 %614
  %616 = load double, ptr %615, align 8, !tbaa !9
  %617 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef %611, double noundef %616)
  br label %618

618:                                              ; preds = %610
  %619 = load i32, ptr %49, align 4, !tbaa !5
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr %49, align 4, !tbaa !5
  br label %606, !llvm.loop !22

621:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  store i32 0, ptr %50, align 4, !tbaa !5
  br label %622

622:                                              ; preds = %634, %621
  %623 = load i32, ptr %50, align 4, !tbaa !5
  %624 = icmp slt i32 %623, 3
  br i1 %624, label %626, label %625

625:                                              ; preds = %622
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %637

626:                                              ; preds = %622
  %627 = load i32, ptr %50, align 4, !tbaa !5
  %628 = load ptr, ptr %26, align 8, !tbaa !11
  %629 = load i32, ptr %50, align 4, !tbaa !5
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds double, ptr %628, i64 %630
  %632 = load double, ptr %631, align 8, !tbaa !9
  %633 = call i32 (ptr, ...) @printf(ptr noundef @.str.28, i32 noundef %627, double noundef %632)
  br label %634

634:                                              ; preds = %626
  %635 = load i32, ptr %50, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %50, align 4, !tbaa !5
  br label %622, !llvm.loop !23

637:                                              ; preds = %625
  %638 = load double, ptr %17, align 8, !tbaa !9
  %639 = load i32, ptr %18, align 4, !tbaa !5
  %640 = call i32 (ptr, ...) @printf(ptr noundef @.str.47, double noundef %638, i32 noundef %639)
  %641 = load ptr, ptr %24, align 8, !tbaa !11
  call void @free(ptr noundef %641) #8
  %642 = load ptr, ptr %25, align 8, !tbaa !11
  call void @free(ptr noundef %642) #8
  %643 = load ptr, ptr %26, align 8, !tbaa !11
  call void @free(ptr noundef %643) #8
  %644 = load ptr, ptr %27, align 8, !tbaa !11
  call void @free(ptr noundef %644) #8
  %645 = load ptr, ptr %28, align 8, !tbaa !11
  call void @free(ptr noundef %645) #8
  %646 = load ptr, ptr %29, align 8, !tbaa !11
  call void @free(ptr noundef %646) #8
  %647 = load ptr, ptr %23, align 8, !tbaa !11
  call void @Highs_destroy(ptr noundef %647)
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 20, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 20, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #8
  ret void
}

declare ptr @Highs_version() #5

declare i32 @Highs_versionMajor() #5

declare i32 @Highs_versionMinor() #5

declare i32 @Highs_versionPatch() #5

declare ptr @Highs_githash() #5

declare i32 @Highs_passLp(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_getIntInfoValue(ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_getSolution(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_getBasis(ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_getObjectiveSense(ptr noundef, ptr noundef) #5

declare i32 @Highs_changeObjectiveSense(ptr noundef, i32 noundef) #5

declare i32 @Highs_clearModel(ptr noundef) #5

declare i32 @Highs_getNumCol(ptr noundef) #5

declare i32 @Highs_getNumRow(ptr noundef) #5

declare i32 @Highs_getNumNz(ptr noundef) #5

declare i32 @Highs_addCols(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_addRows(ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_changeObjectiveOffset(ptr noundef, double noundef) #5

declare i32 @Highs_getOptionType(ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_getDoubleOptionValue(ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_setDoubleOptionValue(ptr noundef, ptr noundef, double noundef) #5

declare i32 @Highs_setBoolOptionValue(ptr noundef, ptr noundef, i32 noundef) #5

declare i32 @Highs_getInfoType(ptr noundef, ptr noundef, ptr noundef) #5

declare i32 @Highs_changeColsIntegralityByRange(ptr noundef, i32 noundef, i32 noundef, ptr noundef) #5

declare i32 @Highs_getInt64InfoValue(ptr noundef, ptr noundef, ptr noundef) #5

declare void @Highs_destroy(ptr noundef) #5

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = !{!21, !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}


; 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"

@.str.2 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@__const.full_api.col_cost = external hidden unnamed_addr constant [2 x double], align 16
@__const.full_api.col_lower = external hidden unnamed_addr constant [2 x double], align 16
@__const.full_api.col_upper = external hidden unnamed_addr constant [2 x double], align 16
@__const.full_api.row_lower = external hidden unnamed_addr constant [3 x double], align 16
@__const.full_api.row_upper = external hidden unnamed_addr constant [3 x double], align 16
@__const.full_api.a_start = external hidden unnamed_addr constant [2 x i32], align 4
@__const.full_api.a_index = external hidden unnamed_addr constant [5 x i32], align 16
@__PRETTY_FUNCTION__.full_api = external hidden unnamed_addr constant [16 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.full_api.ar_start = external hidden unnamed_addr constant [3 x i32], align 4
@__const.full_api.ar_index = external hidden unnamed_addr constant [5 x i32], align 16
@.str.55 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [34 x i8], align 1
@__const.full_api.integrality = external hidden unnamed_addr constant [2 x i32], align 4
@.str.65 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [20 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 nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #2

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

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

; 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 willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #5

declare ptr @Highs_create() local_unnamed_addr #6

declare i32 @Highs_run(ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getModelStatus(ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getDoubleInfoValue(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: nounwind uwtable
define dso_local void @full_api() local_unnamed_addr #7 {
  %1 = alloca [2 x double], align 16
  %2 = alloca [2 x double], align 16
  %3 = alloca [2 x double], align 16
  %4 = alloca [3 x double], align 16
  %5 = alloca [3 x double], align 16
  %6 = alloca [2 x i32], align 8
  %7 = alloca [5 x i32], align 16
  %8 = alloca [5 x double], align 16
  %9 = alloca double, align 8
  %10 = alloca i32, align 4
  %11 = alloca i64, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca [3 x i32], align 4
  %17 = alloca [5 x i32], align 16
  %18 = alloca [5 x double], align 16
  %19 = alloca i32, align 4
  %20 = alloca double, align 8
  %21 = alloca i32, align 4
  %22 = alloca [2 x i32], align 8
  %23 = tail call ptr @Highs_version() #8
  %24 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.33, ptr noundef %23)
  %25 = tail call i32 @Highs_versionMajor() #8
  %26 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34, i32 noundef %25)
  %27 = tail call i32 @Highs_versionMinor() #8
  %28 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.35, i32 noundef %27)
  %29 = tail call i32 @Highs_versionPatch() #8
  %30 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.36, i32 noundef %29)
  %31 = tail call ptr @Highs_githash() #8
  %32 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.37, ptr noundef %31)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %1, ptr noundef nonnull align 16 dereferenceable(16) @__const.full_api.col_cost, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %2, ptr noundef nonnull align 16 dereferenceable(16) @__const.full_api.col_lower, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, ptr noundef nonnull align 16 dereferenceable(16) @__const.full_api.col_upper, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %4, ptr noundef nonnull align 16 dereferenceable(24) @__const.full_api.row_lower, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %5, ptr noundef nonnull align 16 dereferenceable(24) @__const.full_api.row_upper, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  %33 = load i64, ptr @__const.full_api.a_start, align 4
  store i64 %33, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %7) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %7, ptr noundef nonnull align 16 dereferenceable(20) @__const.full_api.a_index, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #8
  store <2 x double> <double 1.000000e+00, double 3.000000e+00>, ptr %8, align 16
  %34 = getelementptr inbounds i8, ptr %8, i64 16
  store <2 x double> <double 1.000000e+00, double 2.000000e+00>, ptr %34, align 16
  %35 = getelementptr inbounds i8, ptr %8, i64 32
  store double 2.000000e+00, ptr %35, align 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #8
  %36 = tail call ptr @Highs_create() #8
  %37 = call i32 @Highs_passLp(ptr noundef %36, i32 noundef 2, i32 noundef 3, i32 noundef 5, i32 noundef 1, i32 noundef 1, double noundef 3.000000e+00, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8) #8
  %38 = icmp eq i32 %37, 0
  br i1 %38, label %40, label %39

39:                                               ; preds = %0
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21, i32 noundef 380, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

40:                                               ; preds = %0
  %41 = call i32 @Highs_run(ptr noundef %36) #8
  %42 = icmp eq i32 %41, 0
  br i1 %42, label %44, label %43

43:                                               ; preds = %40
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21, i32 noundef 385, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

44:                                               ; preds = %40
  %45 = call i32 @Highs_getModelStatus(ptr noundef %36) #8
  %46 = icmp eq i32 %45, 7
  br i1 %46, label %48, label %47

47:                                               ; preds = %44
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 388, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

48:                                               ; preds = %44
  %49 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.38, i32 noundef 0, i32 noundef 7)
  %50 = call i32 @Highs_getDoubleInfoValue(ptr noundef %36, ptr noundef nonnull @.str.5, ptr noundef nonnull %9) #8
  %51 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.2, ptr noundef nonnull %10) #8
  %52 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.39, ptr noundef nonnull %12) #8
  %53 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.40, ptr noundef nonnull %13) #8
  %54 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.41, ptr noundef nonnull %14) #8
  %55 = load i32, ptr %12, align 4, !tbaa !5
  %56 = icmp eq i32 %55, 2
  br i1 %56, label %58, label %57

57:                                               ; preds = %48
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 405, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

58:                                               ; preds = %48
  %59 = load i32, ptr %13, align 4, !tbaa !5
  %60 = icmp eq i32 %59, 2
  br i1 %60, label %62, label %61

61:                                               ; preds = %58
  call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 406, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

62:                                               ; preds = %58
  %63 = load i32, ptr %14, align 4, !tbaa !5
  %64 = icmp eq i32 %63, 1
  br i1 %64, label %.preheader204.preheader, label %65

65:                                               ; preds = %62
  call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 408, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

.preheader204.preheader:                          ; preds = %62
  %66 = call noalias dereferenceable_or_null(16) ptr @malloc(i64 noundef 16) #10
  %67 = call noalias dereferenceable_or_null(16) ptr @malloc(i64 noundef 16) #10
  %68 = call noalias dereferenceable_or_null(24) ptr @malloc(i64 noundef 24) #10
  %69 = call noalias dereferenceable_or_null(24) ptr @malloc(i64 noundef 24) #10
  %70 = call noalias dereferenceable_or_null(8) ptr @malloc(i64 noundef 8) #10
  %71 = call noalias dereferenceable_or_null(12) ptr @malloc(i64 noundef 12) #10
  %72 = call i32 @Highs_getSolution(ptr noundef %36, ptr noundef %66, ptr noundef %67, ptr noundef %68, ptr noundef %69) #8
  %73 = call i32 @Highs_getBasis(ptr noundef %36, ptr noundef %70, ptr noundef %71) #8
  %74 = load double, ptr %66, align 8, !tbaa !9
  %75 = load double, ptr %67, align 8, !tbaa !9
  %76 = load i32, ptr %70, align 4, !tbaa !5
  %77 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.45, i32 noundef 0, double noundef %74, double noundef %75, i32 noundef %76)
  %78 = getelementptr inbounds i8, ptr %66, i64 8
  %79 = load double, ptr %78, align 8, !tbaa !9
  %80 = getelementptr inbounds i8, ptr %67, i64 8
  %81 = load double, ptr %80, align 8, !tbaa !9
  %82 = getelementptr inbounds i8, ptr %70, i64 4
  %83 = load i32, ptr %82, align 4, !tbaa !5
  %84 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.45, i32 noundef 1, double noundef %79, double noundef %81, i32 noundef %83)
  %85 = load double, ptr %68, align 8, !tbaa !9
  %86 = load double, ptr %69, align 8, !tbaa !9
  %87 = load i32, ptr %71, align 4, !tbaa !5
  %88 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 0, double noundef %85, double noundef %86, i32 noundef %87)
  %89 = getelementptr inbounds i8, ptr %68, i64 8
  %90 = load double, ptr %89, align 8, !tbaa !9
  %91 = getelementptr inbounds i8, ptr %69, i64 8
  %92 = load double, ptr %91, align 8, !tbaa !9
  %93 = getelementptr inbounds i8, ptr %71, i64 4
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 1, double noundef %90, double noundef %92, i32 noundef %94)
  %96 = getelementptr inbounds i8, ptr %68, i64 16
  %97 = load double, ptr %96, align 8, !tbaa !9
  %98 = getelementptr inbounds i8, ptr %69, i64 16
  %99 = load double, ptr %98, align 8, !tbaa !9
  %100 = getelementptr inbounds i8, ptr %71, i64 8
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 2, double noundef %97, double noundef %99, i32 noundef %101)
  %103 = load double, ptr %9, align 8, !tbaa !9
  %104 = load i32, ptr %10, align 4, !tbaa !5
  %105 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47, double noundef %103, i32 noundef %104)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #8
  %106 = call i32 @Highs_getObjectiveSense(ptr noundef %36, ptr noundef nonnull %15) #8
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %109, label %108

108:                                              ; preds = %.preheader204.preheader
  call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 441, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

109:                                              ; preds = %.preheader204.preheader
  %110 = load i32, ptr %15, align 4, !tbaa !5
  %111 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.49, i32 noundef %110)
  %112 = load i32, ptr %15, align 4, !tbaa !5
  %113 = icmp eq i32 %112, 1
  br i1 %113, label %115, label %114

114:                                              ; preds = %109
  call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 444, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

115:                                              ; preds = %109
  %116 = call i32 @Highs_changeObjectiveSense(ptr noundef %36, i32 noundef -1) #8
  %117 = call i32 @Highs_run(ptr noundef %36) #8
  %118 = icmp eq i32 %117, 0
  br i1 %118, label %120, label %119

119:                                              ; preds = %115
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21, i32 noundef 452, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

120:                                              ; preds = %115
  %121 = call i32 @Highs_getModelStatus(ptr noundef %36) #8
  %122 = icmp eq i32 %121, 7
  br i1 %122, label %124, label %123

123:                                              ; preds = %120
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 455, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

124:                                              ; preds = %120
  %125 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.38, i32 noundef 0, i32 noundef 7)
  %126 = call i32 @Highs_getDoubleInfoValue(ptr noundef %36, ptr noundef nonnull @.str.5, ptr noundef nonnull %9) #8
  %127 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.2, ptr noundef nonnull %10) #8
  %128 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.39, ptr noundef nonnull %12) #8
  %129 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.40, ptr noundef nonnull %13) #8
  %130 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.41, ptr noundef nonnull %14) #8
  %131 = load i32, ptr %12, align 4, !tbaa !5
  %132 = icmp eq i32 %131, 2
  br i1 %132, label %134, label %133

133:                                              ; preds = %124
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 472, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

134:                                              ; preds = %124
  %135 = load i32, ptr %13, align 4, !tbaa !5
  %136 = icmp eq i32 %135, 2
  br i1 %136, label %138, label %137

137:                                              ; preds = %134
  call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

138:                                              ; preds = %134
  %139 = load i32, ptr %14, align 4, !tbaa !5
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %.preheader203.preheader, label %141

141:                                              ; preds = %138
  call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 475, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

.preheader203.preheader:                          ; preds = %138
  %142 = call i32 @Highs_getSolution(ptr noundef %36, ptr noundef nonnull %66, ptr noundef nonnull %67, ptr noundef nonnull %68, ptr noundef nonnull %69) #8
  %143 = call i32 @Highs_getBasis(ptr noundef %36, ptr noundef nonnull %70, ptr noundef nonnull %71) #8
  %144 = load double, ptr %66, align 8, !tbaa !9
  %145 = load double, ptr %67, align 8, !tbaa !9
  %146 = load i32, ptr %70, align 4, !tbaa !5
  %147 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.45, i32 noundef 0, double noundef %144, double noundef %145, i32 noundef %146)
  %148 = load double, ptr %78, align 8, !tbaa !9
  %149 = load double, ptr %80, align 8, !tbaa !9
  %150 = load i32, ptr %82, align 4, !tbaa !5
  %151 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.45, i32 noundef 1, double noundef %148, double noundef %149, i32 noundef %150)
  %152 = load double, ptr %68, align 8, !tbaa !9
  %153 = load double, ptr %69, align 8, !tbaa !9
  %154 = load i32, ptr %71, align 4, !tbaa !5
  %155 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 0, double noundef %152, double noundef %153, i32 noundef %154)
  %156 = load double, ptr %89, align 8, !tbaa !9
  %157 = load double, ptr %91, align 8, !tbaa !9
  %158 = load i32, ptr %93, align 4, !tbaa !5
  %159 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 1, double noundef %156, double noundef %157, i32 noundef %158)
  %160 = load double, ptr %96, align 8, !tbaa !9
  %161 = load double, ptr %98, align 8, !tbaa !9
  %162 = load i32, ptr %100, align 4, !tbaa !5
  %163 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 2, double noundef %160, double noundef %161, i32 noundef %162)
  %164 = load double, ptr %9, align 8, !tbaa !9
  %165 = load i32, ptr %10, align 4, !tbaa !5
  %166 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47, double noundef %164, i32 noundef %165)
  %167 = call i32 @Highs_clearModel(ptr noundef %36) #8
  %168 = call i32 @Highs_getNumCol(ptr noundef %36) #8
  %169 = call i32 @Highs_getNumRow(ptr noundef %36) #8
  %170 = call i32 @Highs_getNumNz(ptr noundef %36) #8
  %171 = icmp eq i32 %168, 0
  br i1 %171, label %173, label %172

172:                                              ; preds = %.preheader203.preheader
  call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 505, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

173:                                              ; preds = %.preheader203.preheader
  %174 = icmp eq i32 %169, 0
  br i1 %174, label %176, label %175

175:                                              ; preds = %173
  call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 506, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

176:                                              ; preds = %173
  %177 = icmp eq i32 %170, 0
  br i1 %177, label %179, label %178

178:                                              ; preds = %176
  call void @__assert_fail(ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 507, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

179:                                              ; preds = %176
  %180 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.54, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %16) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %16, ptr noundef nonnull align 4 dereferenceable(12) @__const.full_api.ar_start, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %17) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %17, ptr noundef nonnull align 16 dereferenceable(20) @__const.full_api.ar_index, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #8
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %18, align 16
  %181 = getelementptr inbounds i8, ptr %18, i64 16
  store <2 x double> <double 2.000000e+00, double 3.000000e+00>, ptr %181, align 16
  %182 = getelementptr inbounds i8, ptr %18, i64 32
  store double 2.000000e+00, ptr %182, align 16
  %183 = call i32 @Highs_addCols(ptr noundef %36, i32 noundef 2, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, i32 noundef 0, ptr noundef null, ptr noundef null, ptr noundef null) #8
  %184 = icmp eq i32 %183, 0
  br i1 %184, label %186, label %185

185:                                              ; preds = %179
  call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 521, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

186:                                              ; preds = %179
  %187 = call i32 @Highs_addRows(ptr noundef %36, i32 noundef 3, ptr noundef nonnull %4, ptr noundef nonnull %5, i32 noundef 5, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %18) #8
  %188 = icmp eq i32 %187, 0
  br i1 %188, label %190, label %189

189:                                              ; preds = %186
  call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 525, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

190:                                              ; preds = %186
  %191 = call i32 @Highs_changeObjectiveSense(ptr noundef %36, i32 noundef -1) #8
  %192 = call i32 @Highs_changeObjectiveOffset(ptr noundef %36, double noundef 3.000000e+00) #8
  %193 = call i32 @Highs_getObjectiveSense(ptr noundef %36, ptr noundef nonnull %15) #8
  %194 = icmp eq i32 %193, 0
  br i1 %194, label %196, label %195

195:                                              ; preds = %190
  call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 534, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

196:                                              ; preds = %190
  %197 = load i32, ptr %15, align 4, !tbaa !5
  %198 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.49, i32 noundef %197)
  %199 = load i32, ptr %15, align 4, !tbaa !5
  %200 = icmp eq i32 %199, -1
  br i1 %200, label %202, label %201

201:                                              ; preds = %196
  call void @__assert_fail(ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 537, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

202:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #8
  %203 = call i32 @Highs_getOptionType(ptr noundef %36, ptr noundef nonnull @.str.56, ptr noundef nonnull %19) #8
  %204 = load i32, ptr %19, align 4, !tbaa !5
  %205 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.57, ptr noundef nonnull @.str.56, i32 noundef %204)
  %206 = icmp eq i32 %203, 0
  br i1 %206, label %208, label %207

207:                                              ; preds = %202
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21, i32 noundef 547, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

208:                                              ; preds = %202
  %209 = load i32, ptr %19, align 4, !tbaa !5
  %210 = icmp eq i32 %209, 2
  br i1 %210, label %212, label %211

211:                                              ; preds = %208
  call void @__assert_fail(ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.21, i32 noundef 548, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

212:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  %213 = call i32 @Highs_getDoubleOptionValue(ptr noundef %36, ptr noundef nonnull @.str.56, ptr noundef nonnull %20) #8
  %214 = load double, ptr %20, align 8, !tbaa !9
  %215 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.59, double noundef %214)
  store double 0x3EB0C6F7A0B5ED8D, ptr %20, align 8, !tbaa !9
  %216 = call i32 @Highs_setDoubleOptionValue(ptr noundef %36, ptr noundef nonnull @.str.56, double noundef 0x3EB0C6F7A0B5ED8D) #8
  %217 = call i32 @Highs_setBoolOptionValue(ptr noundef %36, ptr noundef nonnull @.str.60, i32 noundef 0) #8
  %218 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.61)
  %219 = call i32 @Highs_run(ptr noundef %36) #8
  %220 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.62)
  %221 = call i32 @Highs_setBoolOptionValue(ptr noundef %36, ptr noundef nonnull @.str.60, i32 noundef 1) #8
  %222 = icmp eq i32 %219, 0
  br i1 %222, label %224, label %223

223:                                              ; preds = %212
  call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 567, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

224:                                              ; preds = %212
  %225 = call i32 @Highs_getModelStatus(ptr noundef %36) #8
  %226 = icmp eq i32 %225, 7
  br i1 %226, label %228, label %227

227:                                              ; preds = %224
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 570, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

228:                                              ; preds = %224
  %229 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.23, i32 noundef 0, i32 noundef 7)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #8
  %230 = call i32 @Highs_getInfoType(ptr noundef %36, ptr noundef nonnull @.str.5, ptr noundef nonnull %21) #8
  %231 = load i32, ptr %21, align 4, !tbaa !5
  %232 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.63, ptr noundef nonnull @.str.5, i32 noundef %231)
  %233 = icmp eq i32 %230, 0
  br i1 %233, label %235, label %234

234:                                              ; preds = %228
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21, i32 noundef 581, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

235:                                              ; preds = %228
  %236 = load i32, ptr %21, align 4, !tbaa !5
  %237 = icmp eq i32 %236, 2
  br i1 %237, label %239, label %238

238:                                              ; preds = %235
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.21, i32 noundef 582, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

239:                                              ; preds = %235
  %240 = call i32 @Highs_getDoubleInfoValue(ptr noundef %36, ptr noundef nonnull @.str.5, ptr noundef nonnull %9) #8
  %241 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.2, ptr noundef nonnull %10) #8
  %242 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.39, ptr noundef nonnull %12) #8
  %243 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.40, ptr noundef nonnull %13) #8
  %244 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.41, ptr noundef nonnull %14) #8
  %245 = load i32, ptr %12, align 4, !tbaa !5
  %246 = icmp eq i32 %245, 2
  br i1 %246, label %248, label %247

247:                                              ; preds = %239
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 594, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

248:                                              ; preds = %239
  %249 = load i32, ptr %13, align 4, !tbaa !5
  %250 = icmp eq i32 %249, 2
  br i1 %250, label %252, label %251

251:                                              ; preds = %248
  call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 595, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

252:                                              ; preds = %248
  %253 = load i32, ptr %14, align 4, !tbaa !5
  %254 = icmp eq i32 %253, 1
  br i1 %254, label %.preheader202.preheader, label %255

255:                                              ; preds = %252
  call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 597, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

.preheader202.preheader:                          ; preds = %252
  %256 = call i32 @Highs_getSolution(ptr noundef %36, ptr noundef nonnull %66, ptr noundef nonnull %67, ptr noundef nonnull %68, ptr noundef nonnull %69) #8
  %257 = call i32 @Highs_getBasis(ptr noundef %36, ptr noundef nonnull %70, ptr noundef nonnull %71) #8
  %258 = load double, ptr %66, align 8, !tbaa !9
  %259 = load double, ptr %67, align 8, !tbaa !9
  %260 = load i32, ptr %70, align 4, !tbaa !5
  %261 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.45, i32 noundef 0, double noundef %258, double noundef %259, i32 noundef %260)
  %262 = load double, ptr %78, align 8, !tbaa !9
  %263 = load double, ptr %80, align 8, !tbaa !9
  %264 = load i32, ptr %82, align 4, !tbaa !5
  %265 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.45, i32 noundef 1, double noundef %262, double noundef %263, i32 noundef %264)
  %266 = load double, ptr %68, align 8, !tbaa !9
  %267 = load double, ptr %69, align 8, !tbaa !9
  %268 = load i32, ptr %71, align 4, !tbaa !5
  %269 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 0, double noundef %266, double noundef %267, i32 noundef %268)
  %270 = load double, ptr %89, align 8, !tbaa !9
  %271 = load double, ptr %91, align 8, !tbaa !9
  %272 = load i32, ptr %93, align 4, !tbaa !5
  %273 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 1, double noundef %270, double noundef %271, i32 noundef %272)
  %274 = load double, ptr %96, align 8, !tbaa !9
  %275 = load double, ptr %98, align 8, !tbaa !9
  %276 = load i32, ptr %100, align 4, !tbaa !5
  %277 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46, i32 noundef 2, double noundef %274, double noundef %275, i32 noundef %276)
  %278 = load double, ptr %9, align 8, !tbaa !9
  %279 = load i32, ptr %10, align 4, !tbaa !5
  %280 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47, double noundef %278, i32 noundef %279)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  %281 = load i64, ptr @__const.full_api.integrality, align 4
  store i64 %281, ptr %22, align 8
  %282 = call i32 @Highs_changeColsIntegralityByRange(ptr noundef %36, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %22) #8
  %283 = call i32 @Highs_setBoolOptionValue(ptr noundef %36, ptr noundef nonnull @.str.60, i32 noundef 0) #8
  %284 = call i32 @Highs_run(ptr noundef %36) #8
  %285 = call i32 @Highs_setBoolOptionValue(ptr noundef %36, ptr noundef nonnull @.str.60, i32 noundef 1) #8
  %286 = icmp eq i32 %284, 0
  br i1 %286, label %288, label %287

287:                                              ; preds = %.preheader202.preheader
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21, i32 noundef 629, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

288:                                              ; preds = %.preheader202.preheader
  %289 = call i32 @Highs_getModelStatus(ptr noundef %36) #8
  %290 = icmp eq i32 %289, 7
  br i1 %290, label %292, label %291

291:                                              ; preds = %288
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 632, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

292:                                              ; preds = %288
  %293 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.23, i32 noundef 0, i32 noundef 7)
  %294 = call i32 @Highs_getDoubleInfoValue(ptr noundef %36, ptr noundef nonnull @.str.5, ptr noundef nonnull %9) #8
  %295 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.2, ptr noundef nonnull %10) #8
  %296 = call i32 @Highs_getInt64InfoValue(ptr noundef %36, ptr noundef nonnull @.str.6, ptr noundef nonnull %11) #8
  %297 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.39, ptr noundef nonnull %12) #8
  %298 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.40, ptr noundef nonnull %13) #8
  %299 = call i32 @Highs_getIntInfoValue(ptr noundef %36, ptr noundef nonnull @.str.41, ptr noundef nonnull %14) #8
  %300 = load i32, ptr %12, align 4, !tbaa !5
  %301 = icmp eq i32 %300, 2
  br i1 %301, label %303, label %302

302:                                              ; preds = %292
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 650, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

303:                                              ; preds = %292
  %304 = load i32, ptr %13, align 4, !tbaa !5
  %305 = icmp eq i32 %304, 0
  br i1 %305, label %307, label %306

306:                                              ; preds = %303
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.21, i32 noundef 652, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

307:                                              ; preds = %303
  %308 = load i32, ptr %14, align 4, !tbaa !5
  %309 = icmp eq i32 %308, 0
  br i1 %309, label %311, label %310

310:                                              ; preds = %307
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.21, i32 noundef 654, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

311:                                              ; preds = %307
  %312 = load i64, ptr %11, align 8, !tbaa !11
  %313 = icmp eq i64 %312, 1
  br i1 %313, label %.preheader.preheader, label %314

314:                                              ; preds = %311
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.21, i32 noundef 655, ptr noundef nonnull @__PRETTY_FUNCTION__.full_api) #9
  unreachable

.preheader.preheader:                             ; preds = %311
  %315 = call i32 @Highs_getSolution(ptr noundef %36, ptr noundef nonnull %66, ptr noundef nonnull %67, ptr noundef nonnull %68, ptr noundef nonnull %69) #8
  %316 = load double, ptr %66, align 8, !tbaa !9
  %317 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 0, double noundef %316)
  %318 = load double, ptr %78, align 8, !tbaa !9
  %319 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 1, double noundef %318)
  %320 = load double, ptr %68, align 8, !tbaa !9
  %321 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.28, i32 noundef 0, double noundef %320)
  %322 = load double, ptr %89, align 8, !tbaa !9
  %323 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.28, i32 noundef 1, double noundef %322)
  %324 = load double, ptr %96, align 8, !tbaa !9
  %325 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.28, i32 noundef 2, double noundef %324)
  %326 = load double, ptr %9, align 8, !tbaa !9
  %327 = load i32, ptr %10, align 4, !tbaa !5
  %328 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47, double noundef %326, i32 noundef %327)
  call void @free(ptr noundef nonnull %66) #8
  call void @free(ptr noundef nonnull %67) #8
  call void @free(ptr noundef nonnull %68) #8
  call void @free(ptr noundef nonnull %69) #8
  call void @free(ptr noundef nonnull %70) #8
  call void @free(ptr noundef nonnull %71) #8
  call void @Highs_destroy(ptr noundef %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1) #8
  ret void
}

declare ptr @Highs_version() local_unnamed_addr #6

declare i32 @Highs_versionMajor() local_unnamed_addr #6

declare i32 @Highs_versionMinor() local_unnamed_addr #6

declare i32 @Highs_versionPatch() local_unnamed_addr #6

declare ptr @Highs_githash() local_unnamed_addr #6

declare i32 @Highs_passLp(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getIntInfoValue(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getSolution(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getBasis(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getObjectiveSense(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_changeObjectiveSense(ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @Highs_clearModel(ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getNumCol(ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getNumRow(ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getNumNz(ptr noundef) local_unnamed_addr #6

declare i32 @Highs_addCols(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_addRows(ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_changeObjectiveOffset(ptr noundef, double noundef) local_unnamed_addr #6

declare i32 @Highs_getOptionType(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getDoubleOptionValue(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_setDoubleOptionValue(ptr noundef, ptr noundef, double noundef) local_unnamed_addr #6

declare i32 @Highs_setBoolOptionValue(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @Highs_getInfoType(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_changeColsIntegralityByRange(ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #6

declare i32 @Highs_getInt64InfoValue(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare void @Highs_destroy(ptr noundef) local_unnamed_addr #6

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind 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 }
attributes #10 = { nounwind allocsize(0) }

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,LoopSimplifyPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass