; LLVM IR from ERGO-Code/HiGHS :: src/ipm (IpxWrapper)

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

%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.5" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.60" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.HighsLp = type { i32, i32, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %class.HighsSparseMatrix, i32, double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.18", %struct.HighsNameHash, %struct.HighsNameHash, i32, i32, %struct.HighsScale, i8, i8, i32, i8, %struct.HighsLpMods }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HighsSparseMatrix = type { i32, i32, i32, %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsNameHash = type { %"class.std::unordered_map" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%struct.HighsScale = type { i32, i8, i32, i32, double, %"class.std::vector.8", %"class.std::vector.8" }
%struct.HighsLpMods = type { %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.18", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8" }

@.str.52 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [42 x i8], align 1
@__PRETTY_FUNCTION__._Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE = external hidden unnamed_addr constant [256 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [42 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE(ptr noundef nonnull align 8 dereferenceable(920) %0, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %11) #3 personality ptr @__gxx_personality_v0 {
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %"class.std::vector.3", align 8
  %26 = alloca %"class.std::vector.3", align 8
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i8, align 1
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca double, align 8
  %36 = alloca i8, align 1
  %37 = alloca %"class.std::vector.3", align 8
  %38 = alloca i32, align 4
  %39 = alloca %"class.std::allocator.5", align 1
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %"class.std::vector.3", align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::allocator.5", align 1
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca double, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.60", align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %65 = alloca double, align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  store ptr %0, ptr %13, align 8, !tbaa !5
  store ptr %1, ptr %14, align 8, !tbaa !5
  store ptr %2, ptr %15, align 8, !tbaa !5
  store ptr %3, ptr %16, align 8, !tbaa !5
  store ptr %4, ptr %17, align 8, !tbaa !5
  store ptr %5, ptr %18, align 8, !tbaa !5
  store ptr %6, ptr %19, align 8, !tbaa !5
  store ptr %7, ptr %20, align 8, !tbaa !5
  store ptr %8, ptr %21, align 8, !tbaa !5
  store ptr %9, ptr %22, align 8, !tbaa !5
  store ptr %10, ptr %23, align 8, !tbaa !5
  store ptr %11, ptr %24, align 8, !tbaa !5
  %67 = load ptr, ptr %13, align 8, !tbaa !5
  %68 = getelementptr inbounds %class.HighsLp, ptr %67, i32 0, i32 0
  %69 = load i32, ptr %68, align 8, !tbaa !9
  %70 = load ptr, ptr %14, align 8, !tbaa !5
  store i32 %69, ptr %70, align 4, !tbaa !44
  %71 = load ptr, ptr %13, align 8, !tbaa !5
  %72 = getelementptr inbounds %class.HighsLp, ptr %71, i32 0, i32 1
  %73 = load i32, ptr %72, align 4, !tbaa !45
  %74 = load ptr, ptr %15, align 8, !tbaa !5
  store i32 %73, ptr %74, align 4, !tbaa !44
  %75 = load ptr, ptr %13, align 8, !tbaa !5
  %76 = getelementptr inbounds %class.HighsLp, ptr %75, i32 0, i32 5
  %77 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #4
  %78 = trunc i64 %77 to i32
  %79 = load ptr, ptr %15, align 8, !tbaa !5
  %80 = load i32, ptr %79, align 4, !tbaa !44
  %81 = icmp eq i32 %78, %80
  br i1 %81, label %82, label %83

82:                                               ; preds = %12
  br label %85

83:                                               ; preds = %12
  call void @__assert_fail(ptr noundef @.str.63, ptr noundef @.str.52, i32 noundef 407, ptr noundef @__PRETTY_FUNCTION__._Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE) #5
  unreachable

84:                                               ; No predecessors!
  br label %85

85:                                               ; preds = %84, %82
  %86 = load ptr, ptr %13, align 8, !tbaa !5
  %87 = getelementptr inbounds %class.HighsLp, ptr %86, i32 0, i32 6
  %88 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #4
  %89 = trunc i64 %88 to i32
  %90 = load ptr, ptr %15, align 8, !tbaa !5
  %91 = load i32, ptr %90, align 4, !tbaa !44
  %92 = icmp eq i32 %89, %91
  br i1 %92, label %93, label %94

93:                                               ; preds = %85
  br label %96

94:                                               ; preds = %85
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.52, i32 noundef 408, ptr noundef @__PRETTY_FUNCTION__._Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE) #5
  unreachable

95:                                               ; No predecessors!
  br label %96

96:                                               ; preds = %95, %93
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #4
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #4
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  store i32 0, ptr %27, align 4, !tbaa !44
  br label %97

97:                                               ; preds = %159, %96
  %98 = load i32, ptr %27, align 4, !tbaa !44
  %99 = load ptr, ptr %15, align 8, !tbaa !5
  %100 = load i32, ptr %99, align 4, !tbaa !44
  %101 = icmp slt i32 %98, %100
  br i1 %101, label %103, label %102

102:                                              ; preds = %97
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %162

103:                                              ; preds = %97
  %104 = load ptr, ptr %13, align 8, !tbaa !5
  %105 = getelementptr inbounds %class.HighsLp, ptr %104, i32 0, i32 5
  %106 = load i32, ptr %27, align 4, !tbaa !44
  %107 = sext i32 %106 to i64
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %105, i64 noundef %107) #4
  %109 = load double, ptr %108, align 8, !tbaa !46
  %110 = load ptr, ptr %13, align 8, !tbaa !5
  %111 = getelementptr inbounds %class.HighsLp, ptr %110, i32 0, i32 6
  %112 = load i32, ptr %27, align 4, !tbaa !44
  %113 = sext i32 %112 to i64
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %113) #4
  %115 = load double, ptr %114, align 8, !tbaa !46
  %116 = fcmp olt double %109, %115
  br i1 %116, label %117, label %139

117:                                              ; preds = %103
  %118 = load ptr, ptr %13, align 8, !tbaa !5
  %119 = getelementptr inbounds %class.HighsLp, ptr %118, i32 0, i32 5
  %120 = load i32, ptr %27, align 4, !tbaa !44
  %121 = sext i32 %120 to i64
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef %121) #4
  %123 = load double, ptr %122, align 8, !tbaa !46
  %124 = fcmp ogt double %123, 0xFFF0000000000000
  br i1 %124, label %125, label %139

125:                                              ; preds = %117
  %126 = load ptr, ptr %13, align 8, !tbaa !5
  %127 = getelementptr inbounds %class.HighsLp, ptr %126, i32 0, i32 6
  %128 = load i32, ptr %27, align 4, !tbaa !44
  %129 = sext i32 %128 to i64
  %130 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %127, i64 noundef %129) #4
  %131 = load double, ptr %130, align 8, !tbaa !46
  %132 = fcmp olt double %131, 0x7FF0000000000000
  br i1 %132, label %133, label %139

133:                                              ; preds = %125
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %134 unwind label %135

134:                                              ; preds = %133
  br label %158

135:                                              ; preds = %155, %133
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %28, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %794

139:                                              ; preds = %125, %117, %103
  %140 = load ptr, ptr %13, align 8, !tbaa !5
  %141 = getelementptr inbounds %class.HighsLp, ptr %140, i32 0, i32 5
  %142 = load i32, ptr %27, align 4, !tbaa !44
  %143 = sext i32 %142 to i64
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %143) #4
  %145 = load double, ptr %144, align 8, !tbaa !46
  %146 = fcmp ole double %145, 0xFFF0000000000000
  br i1 %146, label %147, label %157

147:                                              ; preds = %139
  %148 = load ptr, ptr %13, align 8, !tbaa !5
  %149 = getelementptr inbounds %class.HighsLp, ptr %148, i32 0, i32 6
  %150 = load i32, ptr %27, align 4, !tbaa !44
  %151 = sext i32 %150 to i64
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %151) #4
  %153 = load double, ptr %152, align 8, !tbaa !46
  %154 = fcmp oge double %153, 0x7FF0000000000000
  br i1 %154, label %155, label %157

155:                                              ; preds = %147
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %156 unwind label %135

156:                                              ; preds = %155
  br label %157

157:                                              ; preds = %156, %147, %139
  br label %158

158:                                              ; preds = %157, %134
  br label %159

159:                                              ; preds = %158
  %160 = load i32, ptr %27, align 4, !tbaa !44
  %161 = add nsw i32 %160, 1
  store i32 %161, ptr %27, align 4, !tbaa !44
  br label %97, !llvm.loop !47

162:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  %163 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #4
  %164 = trunc i64 %163 to i32
  store i32 %164, ptr %30, align 4, !tbaa !44
  %165 = load ptr, ptr %23, align 8, !tbaa !5
  %166 = load ptr, ptr %15, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !44
  %168 = sext i32 %167 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %168)
          to label %169 unwind label %181

169:                                              ; preds = %162
  %170 = load ptr, ptr %24, align 8, !tbaa !5
  %171 = load ptr, ptr %15, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !44
  %173 = sext i32 %172 to i64
  invoke void @_ZNSt6vectorIcSaIcEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %173)
          to label %174 unwind label %181

174:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  store i32 0, ptr %31, align 4, !tbaa !44
  br label %175

175:                                              ; preds = %310, %174
  %176 = load i32, ptr %31, align 4, !tbaa !44
  %177 = load ptr, ptr %15, align 8, !tbaa !5
  %178 = load i32, ptr %177, align 4, !tbaa !44
  %179 = icmp slt i32 %176, %178
  br i1 %179, label %185, label %180

180:                                              ; preds = %175
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  br label %314

181:                                              ; preds = %169, %162
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %28, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %29, align 4
  br label %793

185:                                              ; preds = %175
  %186 = load ptr, ptr %13, align 8, !tbaa !5
  %187 = getelementptr inbounds %class.HighsLp, ptr %186, i32 0, i32 5
  %188 = load i32, ptr %31, align 4, !tbaa !44
  %189 = sext i32 %188 to i64
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %189) #4
  %191 = load double, ptr %190, align 8, !tbaa !46
  %192 = fcmp ogt double %191, 0xFFF0000000000000
  br i1 %192, label %193, label %219

193:                                              ; preds = %185
  %194 = load ptr, ptr %13, align 8, !tbaa !5
  %195 = getelementptr inbounds %class.HighsLp, ptr %194, i32 0, i32 6
  %196 = load i32, ptr %31, align 4, !tbaa !44
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef %197) #4
  %199 = load double, ptr %198, align 8, !tbaa !46
  %200 = fcmp oge double %199, 0x7FF0000000000000
  br i1 %200, label %201, label %219

201:                                              ; preds = %193
  %202 = load ptr, ptr %23, align 8, !tbaa !5
  %203 = load ptr, ptr %13, align 8, !tbaa !5
  %204 = getelementptr inbounds %class.HighsLp, ptr %203, i32 0, i32 5
  %205 = load i32, ptr %31, align 4, !tbaa !44
  %206 = sext i32 %205 to i64
  %207 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %206) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %202, ptr noundef nonnull align 8 dereferenceable(8) %207)
          to label %208 unwind label %211

208:                                              ; preds = %201
  %209 = load ptr, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #4
  store i8 62, ptr %32, align 1, !tbaa !49
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %209, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %210 unwind label %215

210:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #4
  br label %309

211:                                              ; preds = %263, %235, %201
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %28, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %29, align 4
  br label %313

215:                                              ; preds = %208
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %28, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #4
  br label %313

219:                                              ; preds = %193, %185
  %220 = load ptr, ptr %13, align 8, !tbaa !5
  %221 = getelementptr inbounds %class.HighsLp, ptr %220, i32 0, i32 5
  %222 = load i32, ptr %31, align 4, !tbaa !44
  %223 = sext i32 %222 to i64
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %223) #4
  %225 = load double, ptr %224, align 8, !tbaa !46
  %226 = fcmp ole double %225, 0xFFF0000000000000
  br i1 %226, label %227, label %249

227:                                              ; preds = %219
  %228 = load ptr, ptr %13, align 8, !tbaa !5
  %229 = getelementptr inbounds %class.HighsLp, ptr %228, i32 0, i32 6
  %230 = load i32, ptr %31, align 4, !tbaa !44
  %231 = sext i32 %230 to i64
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %229, i64 noundef %231) #4
  %233 = load double, ptr %232, align 8, !tbaa !46
  %234 = fcmp olt double %233, 0x7FF0000000000000
  br i1 %234, label %235, label %249

235:                                              ; preds = %227
  %236 = load ptr, ptr %23, align 8, !tbaa !5
  %237 = load ptr, ptr %13, align 8, !tbaa !5
  %238 = getelementptr inbounds %class.HighsLp, ptr %237, i32 0, i32 6
  %239 = load i32, ptr %31, align 4, !tbaa !44
  %240 = sext i32 %239 to i64
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %240) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %236, ptr noundef nonnull align 8 dereferenceable(8) %241)
          to label %242 unwind label %211

242:                                              ; preds = %235
  %243 = load ptr, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #4
  store i8 60, ptr %33, align 1, !tbaa !49
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %243, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %244 unwind label %245

244:                                              ; preds = %242
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #4
  br label %308

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

249:                                              ; preds = %227, %219
  %250 = load ptr, ptr %13, align 8, !tbaa !5
  %251 = getelementptr inbounds %class.HighsLp, ptr %250, i32 0, i32 5
  %252 = load i32, ptr %31, align 4, !tbaa !44
  %253 = sext i32 %252 to i64
  %254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %251, i64 noundef %253) #4
  %255 = load double, ptr %254, align 8, !tbaa !46
  %256 = load ptr, ptr %13, align 8, !tbaa !5
  %257 = getelementptr inbounds %class.HighsLp, ptr %256, i32 0, i32 6
  %258 = load i32, ptr %31, align 4, !tbaa !44
  %259 = sext i32 %258 to i64
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %257, i64 noundef %259) #4
  %261 = load double, ptr %260, align 8, !tbaa !46
  %262 = fcmp oeq double %255, %261
  br i1 %262, label %263, label %277

263:                                              ; preds = %249
  %264 = load ptr, ptr %23, align 8, !tbaa !5
  %265 = load ptr, ptr %13, align 8, !tbaa !5
  %266 = getelementptr inbounds %class.HighsLp, ptr %265, i32 0, i32 6
  %267 = load i32, ptr %31, align 4, !tbaa !44
  %268 = sext i32 %267 to i64
  %269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %266, i64 noundef %268) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %264, ptr noundef nonnull align 8 dereferenceable(8) %269)
          to label %270 unwind label %211

270:                                              ; preds = %263
  %271 = load ptr, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #4
  store i8 61, ptr %34, align 1, !tbaa !49
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %271, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %272 unwind label %273

272:                                              ; preds = %270
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  br label %307

273:                                              ; preds = %270
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %28, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  br label %313

277:                                              ; preds = %249
  %278 = load ptr, ptr %13, align 8, !tbaa !5
  %279 = getelementptr inbounds %class.HighsLp, ptr %278, i32 0, i32 5
  %280 = load i32, ptr %31, align 4, !tbaa !44
  %281 = sext i32 %280 to i64
  %282 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %279, i64 noundef %281) #4
  %283 = load double, ptr %282, align 8, !tbaa !46
  %284 = fcmp ogt double %283, 0xFFF0000000000000
  br i1 %284, label %285, label %306

285:                                              ; preds = %277
  %286 = load ptr, ptr %13, align 8, !tbaa !5
  %287 = getelementptr inbounds %class.HighsLp, ptr %286, i32 0, i32 6
  %288 = load i32, ptr %31, align 4, !tbaa !44
  %289 = sext i32 %288 to i64
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %289) #4
  %291 = load double, ptr %290, align 8, !tbaa !46
  %292 = fcmp olt double %291, 0x7FF0000000000000
  br i1 %292, label %293, label %306

293:                                              ; preds = %285
  %294 = load ptr, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  store double 0.000000e+00, ptr %35, align 8, !tbaa !46
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %294, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %295 unwind label %298

295:                                              ; preds = %293
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  %296 = load ptr, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #4
  store i8 61, ptr %36, align 1, !tbaa !49
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %296, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %297 unwind label %302

297:                                              ; preds = %295
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  br label %306

298:                                              ; preds = %293
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %28, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  br label %313

302:                                              ; preds = %295
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %28, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  br label %313

306:                                              ; preds = %297, %285, %277
  br label %307

307:                                              ; preds = %306, %272
  br label %308

308:                                              ; preds = %307, %244
  br label %309

309:                                              ; preds = %308, %210
  br label %310

310:                                              ; preds = %309
  %311 = load i32, ptr %31, align 4, !tbaa !44
  %312 = add nsw i32 %311, 1
  store i32 %312, ptr %31, align 4, !tbaa !44
  br label %175, !llvm.loop !50

313:                                              ; preds = %302, %298, %273, %245, %215, %211
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  br label %793

314:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #4
  %315 = load ptr, ptr %13, align 8, !tbaa !5
  %316 = getelementptr inbounds %class.HighsLp, ptr %315, i32 0, i32 1
  %317 = load i32, ptr %316, align 4, !tbaa !45
  %318 = sext i32 %317 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  store i32 -1, ptr %38, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %318, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %319 unwind label %330

319:                                              ; preds = %314
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  %320 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  %321 = icmp ugt i64 %320, 0
  br i1 %321, label %322, label %356

322:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  store i32 0, ptr %40, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  store i32 0, ptr %41, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  store i32 0, ptr %42, align 4, !tbaa !44
  br label %323

323:                                              ; preds = %352, %322
  %324 = load i32, ptr %42, align 4, !tbaa !44
  %325 = load ptr, ptr %13, align 8, !tbaa !5
  %326 = getelementptr inbounds %class.HighsLp, ptr %325, i32 0, i32 1
  %327 = load i32, ptr %326, align 4, !tbaa !45
  %328 = icmp slt i32 %324, %327
  br i1 %328, label %334, label %329

329:                                              ; preds = %323
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  br label %355

330:                                              ; preds = %314
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %28, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %29, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  br label %792

334:                                              ; preds = %323
  %335 = load i32, ptr %41, align 4, !tbaa !44
  %336 = sext i32 %335 to i64
  %337 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %336) #4
  %338 = load i32, ptr %337, align 4, !tbaa !44
  %339 = load i32, ptr %42, align 4, !tbaa !44
  %340 = icmp eq i32 %338, %339
  br i1 %340, label %341, label %344

341:                                              ; preds = %334
  %342 = load i32, ptr %41, align 4, !tbaa !44
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr %41, align 4, !tbaa !44
  br label %352

344:                                              ; preds = %334
  %345 = load i32, ptr %40, align 4, !tbaa !44
  %346 = load i32, ptr %42, align 4, !tbaa !44
  %347 = sext i32 %346 to i64
  %348 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %347) #4
  store i32 %345, ptr %348, align 4, !tbaa !44
  %349 = load i32, ptr %40, align 4, !tbaa !44
  %350 = add nsw i32 %349, 1
  store i32 %350, ptr %40, align 4, !tbaa !44
  br label %351

351:                                              ; preds = %344
  br label %352

352:                                              ; preds = %351, %341
  %353 = load i32, ptr %42, align 4, !tbaa !44
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr %42, align 4, !tbaa !44
  br label %323, !llvm.loop !51

355:                                              ; preds = %329
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  br label %373

356:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  store i32 0, ptr %43, align 4, !tbaa !44
  br label %357

357:                                              ; preds = %369, %356
  %358 = load i32, ptr %43, align 4, !tbaa !44
  %359 = load ptr, ptr %13, align 8, !tbaa !5
  %360 = getelementptr inbounds %class.HighsLp, ptr %359, i32 0, i32 1
  %361 = load i32, ptr %360, align 4, !tbaa !45
  %362 = icmp slt i32 %358, %361
  br i1 %362, label %364, label %363

363:                                              ; preds = %357
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  br label %372

364:                                              ; preds = %357
  %365 = load i32, ptr %43, align 4, !tbaa !44
  %366 = load i32, ptr %43, align 4, !tbaa !44
  %367 = sext i32 %366 to i64
  %368 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %367) #4
  store i32 %365, ptr %368, align 4, !tbaa !44
  br label %369

369:                                              ; preds = %364
  %370 = load i32, ptr %43, align 4, !tbaa !44
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr %43, align 4, !tbaa !44
  br label %357, !llvm.loop !52

372:                                              ; preds = %363
  br label %373

373:                                              ; preds = %372, %355
  %374 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  %375 = load ptr, ptr %15, align 8, !tbaa !5
  %376 = load i32, ptr %375, align 4, !tbaa !44
  %377 = sext i32 %376 to i64
  %378 = sub i64 %377, %374
  %379 = trunc i64 %378 to i32
  store i32 %379, ptr %375, align 4, !tbaa !44
  %380 = load i32, ptr %30, align 4, !tbaa !44
  %381 = load ptr, ptr %14, align 8, !tbaa !5
  %382 = load i32, ptr %381, align 4, !tbaa !44
  %383 = add nsw i32 %382, %380
  store i32 %383, ptr %381, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #4
  %384 = load ptr, ptr %14, align 8, !tbaa !5
  %385 = load i32, ptr %384, align 4, !tbaa !44
  %386 = sext i32 %385 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  store i32 0, ptr %45, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %386, ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %387 unwind label %395

387:                                              ; preds = %373
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  store i32 0, ptr %47, align 4, !tbaa !44
  br label %388

388:                                              ; preds = %453, %387
  %389 = load i32, ptr %47, align 4, !tbaa !44
  %390 = load ptr, ptr %13, align 8, !tbaa !5
  %391 = getelementptr inbounds %class.HighsLp, ptr %390, i32 0, i32 0
  %392 = load i32, ptr %391, align 8, !tbaa !9
  %393 = icmp slt i32 %389, %392
  br i1 %393, label %399, label %394

394:                                              ; preds = %388
  store i32 14, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  br label %456

395:                                              ; preds = %373
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %28, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %29, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  br label %791

399:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  %400 = load ptr, ptr %13, align 8, !tbaa !5
  %401 = getelementptr inbounds %class.HighsLp, ptr %400, i32 0, i32 7
  %402 = getelementptr inbounds %class.HighsSparseMatrix, ptr %401, i32 0, i32 3
  %403 = load i32, ptr %47, align 4, !tbaa !44
  %404 = sext i32 %403 to i64
  %405 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef %404) #4
  %406 = load i32, ptr %405, align 4, !tbaa !44
  store i32 %406, ptr %49, align 4, !tbaa !44
  br label %407

407:                                              ; preds = %449, %399
  %408 = load i32, ptr %49, align 4, !tbaa !44
  %409 = load ptr, ptr %13, align 8, !tbaa !5
  %410 = getelementptr inbounds %class.HighsLp, ptr %409, i32 0, i32 7
  %411 = getelementptr inbounds %class.HighsSparseMatrix, ptr %410, i32 0, i32 3
  %412 = load i32, ptr %47, align 4, !tbaa !44
  %413 = add nsw i32 %412, 1
  %414 = sext i32 %413 to i64
  %415 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %411, i64 noundef %414) #4
  %416 = load i32, ptr %415, align 4, !tbaa !44
  %417 = icmp slt i32 %408, %416
  br i1 %417, label %419, label %418

418:                                              ; preds = %407
  store i32 17, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  br label %452

419:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  %420 = load ptr, ptr %13, align 8, !tbaa !5
  %421 = getelementptr inbounds %class.HighsLp, ptr %420, i32 0, i32 7
  %422 = getelementptr inbounds %class.HighsSparseMatrix, ptr %421, i32 0, i32 5
  %423 = load i32, ptr %49, align 4, !tbaa !44
  %424 = sext i32 %423 to i64
  %425 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef %424) #4
  %426 = load i32, ptr %425, align 4, !tbaa !44
  store i32 %426, ptr %50, align 4, !tbaa !44
  %427 = load ptr, ptr %13, align 8, !tbaa !5
  %428 = getelementptr inbounds %class.HighsLp, ptr %427, i32 0, i32 5
  %429 = load i32, ptr %50, align 4, !tbaa !44
  %430 = sext i32 %429 to i64
  %431 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %430) #4
  %432 = load double, ptr %431, align 8, !tbaa !46
  %433 = fcmp ogt double %432, 0xFFF0000000000000
  br i1 %433, label %442, label %434

434:                                              ; preds = %419
  %435 = load ptr, ptr %13, align 8, !tbaa !5
  %436 = getelementptr inbounds %class.HighsLp, ptr %435, i32 0, i32 6
  %437 = load i32, ptr %50, align 4, !tbaa !44
  %438 = sext i32 %437 to i64
  %439 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %436, i64 noundef %438) #4
  %440 = load double, ptr %439, align 8, !tbaa !46
  %441 = fcmp olt double %440, 0x7FF0000000000000
  br i1 %441, label %442, label %448

442:                                              ; preds = %434, %419
  %443 = load i32, ptr %47, align 4, !tbaa !44
  %444 = sext i32 %443 to i64
  %445 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %444) #4
  %446 = load i32, ptr %445, align 4, !tbaa !44
  %447 = add nsw i32 %446, 1
  store i32 %447, ptr %445, align 4, !tbaa !44
  br label %448

448:                                              ; preds = %442, %434
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr %49, align 4, !tbaa !44
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr %49, align 4, !tbaa !44
  br label %407, !llvm.loop !53

452:                                              ; preds = %418
  br label %453

453:                                              ; preds = %452
  %454 = load i32, ptr %47, align 4, !tbaa !44
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr %47, align 4, !tbaa !44
  br label %388, !llvm.loop !54

456:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  %457 = load ptr, ptr %13, align 8, !tbaa !5
  %458 = getelementptr inbounds %class.HighsLp, ptr %457, i32 0, i32 7
  %459 = getelementptr inbounds %class.HighsSparseMatrix, ptr %458, i32 0, i32 5
  %460 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %459) #4
  %461 = trunc i64 %460 to i32
  store i32 %461, ptr %51, align 4, !tbaa !44
  %462 = load ptr, ptr %20, align 8, !tbaa !5
  %463 = load ptr, ptr %14, align 8, !tbaa !5
  %464 = load i32, ptr %463, align 4, !tbaa !44
  %465 = add nsw i32 %464, 1
  %466 = sext i32 %465 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %462, i64 noundef %466)
          to label %467 unwind label %489

467:                                              ; preds = %456
  %468 = load ptr, ptr %21, align 8, !tbaa !5
  %469 = load i32, ptr %51, align 4, !tbaa !44
  %470 = load i32, ptr %30, align 4, !tbaa !44
  %471 = add nsw i32 %469, %470
  %472 = sext i32 %471 to i64
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %472)
          to label %473 unwind label %489

473:                                              ; preds = %467
  %474 = load ptr, ptr %22, align 8, !tbaa !5
  %475 = load i32, ptr %51, align 4, !tbaa !44
  %476 = load i32, ptr %30, align 4, !tbaa !44
  %477 = add nsw i32 %475, %476
  %478 = sext i32 %477 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %474, i64 noundef %478)
          to label %479 unwind label %489

479:                                              ; preds = %473
  %480 = load ptr, ptr %20, align 8, !tbaa !5
  %481 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %480, i64 noundef 0) #4
  store i32 0, ptr %481, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  store i32 0, ptr %52, align 4, !tbaa !44
  br label %482

482:                                              ; preds = %509, %479
  %483 = load i32, ptr %52, align 4, !tbaa !44
  %484 = load ptr, ptr %13, align 8, !tbaa !5
  %485 = getelementptr inbounds %class.HighsLp, ptr %484, i32 0, i32 0
  %486 = load i32, ptr %485, align 8, !tbaa !9
  %487 = icmp slt i32 %483, %486
  br i1 %487, label %493, label %488

488:                                              ; preds = %482
  store i32 20, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  br label %512

489:                                              ; preds = %733, %626, %621, %473, %467, %456
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %28, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %29, align 4
  br label %790

493:                                              ; preds = %482
  %494 = load ptr, ptr %20, align 8, !tbaa !5
  %495 = load i32, ptr %52, align 4, !tbaa !44
  %496 = sext i32 %495 to i64
  %497 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %494, i64 noundef %496) #4
  %498 = load i32, ptr %497, align 4, !tbaa !44
  %499 = load i32, ptr %52, align 4, !tbaa !44
  %500 = sext i32 %499 to i64
  %501 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %500) #4
  %502 = load i32, ptr %501, align 4, !tbaa !44
  %503 = add nsw i32 %498, %502
  %504 = load ptr, ptr %20, align 8, !tbaa !5
  %505 = load i32, ptr %52, align 4, !tbaa !44
  %506 = add nsw i32 %505, 1
  %507 = sext i32 %506 to i64
  %508 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %504, i64 noundef %507) #4
  store i32 %503, ptr %508, align 4, !tbaa !44
  br label %509

509:                                              ; preds = %493
  %510 = load i32, ptr %52, align 4, !tbaa !44
  %511 = add nsw i32 %510, 1
  store i32 %511, ptr %52, align 4, !tbaa !44
  br label %482, !llvm.loop !55

512:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  %513 = load ptr, ptr %13, align 8, !tbaa !5
  %514 = getelementptr inbounds %class.HighsLp, ptr %513, i32 0, i32 0
  %515 = load i32, ptr %514, align 8, !tbaa !9
  store i32 %515, ptr %53, align 4, !tbaa !44
  br label %516

516:                                              ; preds = %534, %512
  %517 = load i32, ptr %53, align 4, !tbaa !44
  %518 = load ptr, ptr %14, align 8, !tbaa !5
  %519 = load i32, ptr %518, align 4, !tbaa !44
  %520 = icmp slt i32 %517, %519
  br i1 %520, label %522, label %521

521:                                              ; preds = %516
  store i32 23, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  br label %537

522:                                              ; preds = %516
  %523 = load ptr, ptr %20, align 8, !tbaa !5
  %524 = load i32, ptr %53, align 4, !tbaa !44
  %525 = sext i32 %524 to i64
  %526 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %523, i64 noundef %525) #4
  %527 = load i32, ptr %526, align 4, !tbaa !44
  %528 = add nsw i32 %527, 1
  %529 = load ptr, ptr %20, align 8, !tbaa !5
  %530 = load i32, ptr %53, align 4, !tbaa !44
  %531 = add nsw i32 %530, 1
  %532 = sext i32 %531 to i64
  %533 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %529, i64 noundef %532) #4
  store i32 %528, ptr %533, align 4, !tbaa !44
  br label %534

534:                                              ; preds = %522
  %535 = load i32, ptr %53, align 4, !tbaa !44
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr %53, align 4, !tbaa !44
  br label %516, !llvm.loop !56

537:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  store i32 0, ptr %54, align 4, !tbaa !44
  br label %538

538:                                              ; preds = %591, %537
  %539 = load i32, ptr %54, align 4, !tbaa !44
  %540 = load i32, ptr %51, align 4, !tbaa !44
  %541 = icmp slt i32 %539, %540
  br i1 %541, label %543, label %542

542:                                              ; preds = %538
  store i32 26, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  br label %594

543:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  %544 = load ptr, ptr %13, align 8, !tbaa !5
  %545 = getelementptr inbounds %class.HighsLp, ptr %544, i32 0, i32 7
  %546 = getelementptr inbounds %class.HighsSparseMatrix, ptr %545, i32 0, i32 5
  %547 = load i32, ptr %54, align 4, !tbaa !44
  %548 = sext i32 %547 to i64
  %549 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %546, i64 noundef %548) #4
  %550 = load i32, ptr %549, align 4, !tbaa !44
  store i32 %550, ptr %55, align 4, !tbaa !44
  %551 = load ptr, ptr %13, align 8, !tbaa !5
  %552 = getelementptr inbounds %class.HighsLp, ptr %551, i32 0, i32 5
  %553 = load i32, ptr %55, align 4, !tbaa !44
  %554 = sext i32 %553 to i64
  %555 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %552, i64 noundef %554) #4
  %556 = load double, ptr %555, align 8, !tbaa !46
  %557 = fcmp ogt double %556, 0xFFF0000000000000
  br i1 %557, label %566, label %558

558:                                              ; preds = %543
  %559 = load ptr, ptr %13, align 8, !tbaa !5
  %560 = getelementptr inbounds %class.HighsLp, ptr %559, i32 0, i32 6
  %561 = load i32, ptr %55, align 4, !tbaa !44
  %562 = sext i32 %561 to i64
  %563 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %560, i64 noundef %562) #4
  %564 = load double, ptr %563, align 8, !tbaa !46
  %565 = fcmp olt double %564, 0x7FF0000000000000
  br i1 %565, label %566, label %590

566:                                              ; preds = %558, %543
  %567 = load ptr, ptr %21, align 8, !tbaa !5
  %568 = load ptr, ptr %13, align 8, !tbaa !5
  %569 = getelementptr inbounds %class.HighsLp, ptr %568, i32 0, i32 7
  %570 = getelementptr inbounds %class.HighsSparseMatrix, ptr %569, i32 0, i32 5
  %571 = load i32, ptr %54, align 4, !tbaa !44
  %572 = sext i32 %571 to i64
  %573 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %570, i64 noundef %572) #4
  %574 = load i32, ptr %573, align 4, !tbaa !44
  %575 = sext i32 %574 to i64
  %576 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %575) #4
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %567, ptr noundef nonnull align 4 dereferenceable(4) %576)
          to label %577 unwind label %586

577:                                              ; preds = %566
  %578 = load ptr, ptr %22, align 8, !tbaa !5
  %579 = load ptr, ptr %13, align 8, !tbaa !5
  %580 = getelementptr inbounds %class.HighsLp, ptr %579, i32 0, i32 7
  %581 = getelementptr inbounds %class.HighsSparseMatrix, ptr %580, i32 0, i32 6
  %582 = load i32, ptr %54, align 4, !tbaa !44
  %583 = sext i32 %582 to i64
  %584 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %581, i64 noundef %583) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %578, ptr noundef nonnull align 8 dereferenceable(8) %584)
          to label %585 unwind label %586

585:                                              ; preds = %577
  br label %590

586:                                              ; preds = %577, %566
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %28, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  br label %790

590:                                              ; preds = %585, %558
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  br label %591

591:                                              ; preds = %590
  %592 = load i32, ptr %54, align 4, !tbaa !44
  %593 = add nsw i32 %592, 1
  store i32 %593, ptr %54, align 4, !tbaa !44
  br label %538, !llvm.loop !57

594:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  store i32 0, ptr %56, align 4, !tbaa !44
  br label %595

595:                                              ; preds = %609, %594
  %596 = load i32, ptr %56, align 4, !tbaa !44
  %597 = load i32, ptr %30, align 4, !tbaa !44
  %598 = icmp slt i32 %596, %597
  br i1 %598, label %600, label %599

599:                                              ; preds = %595
  store i32 29, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  br label %621

600:                                              ; preds = %595
  %601 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  %602 = load i32, ptr %56, align 4, !tbaa !44
  %603 = sext i32 %602 to i64
  %604 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %603) #4
  %605 = load i32, ptr %604, align 4, !tbaa !44
  store i32 %605, ptr %57, align 4, !tbaa !44
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %601, ptr noundef nonnull align 4 dereferenceable(4) %57)
          to label %606 unwind label %612

606:                                              ; preds = %600
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  %607 = load ptr, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #4
  store double -1.000000e+00, ptr %58, align 8, !tbaa !46
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %607, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %608 unwind label %616

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

609:                                              ; preds = %608
  %610 = load i32, ptr %56, align 4, !tbaa !44
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr %56, align 4, !tbaa !44
  br label %595, !llvm.loop !58

612:                                              ; preds = %600
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %28, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  br label %620

616:                                              ; preds = %606
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %28, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  br label %620

620:                                              ; preds = %616, %612
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  br label %790

621:                                              ; preds = %599
  %622 = load ptr, ptr %18, align 8, !tbaa !5
  %623 = load ptr, ptr %14, align 8, !tbaa !5
  %624 = load i32, ptr %623, align 4, !tbaa !44
  %625 = sext i32 %624 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %622, i64 noundef %625)
          to label %626 unwind label %489

626:                                              ; preds = %621
  %627 = load ptr, ptr %19, align 8, !tbaa !5
  %628 = load ptr, ptr %14, align 8, !tbaa !5
  %629 = load i32, ptr %628, align 4, !tbaa !44
  %630 = sext i32 %629 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %627, i64 noundef %630)
          to label %631 unwind label %489

631:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  store i32 0, ptr %59, align 4, !tbaa !44
  br label %632

632:                                              ; preds = %688, %631
  %633 = load i32, ptr %59, align 4, !tbaa !44
  %634 = load ptr, ptr %13, align 8, !tbaa !5
  %635 = getelementptr inbounds %class.HighsLp, ptr %634, i32 0, i32 0
  %636 = load i32, ptr %635, align 8, !tbaa !9
  %637 = icmp slt i32 %633, %636
  br i1 %637, label %639, label %638

638:                                              ; preds = %632
  store i32 32, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  br label %691

639:                                              ; preds = %632
  %640 = load ptr, ptr %13, align 8, !tbaa !5
  %641 = getelementptr inbounds %class.HighsLp, ptr %640, i32 0, i32 3
  %642 = load i32, ptr %59, align 4, !tbaa !44
  %643 = sext i32 %642 to i64
  %644 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %641, i64 noundef %643) #4
  %645 = load double, ptr %644, align 8, !tbaa !46
  %646 = fcmp ole double %645, 0xFFF0000000000000
  br i1 %646, label %647, label %652

647:                                              ; preds = %639
  %648 = load ptr, ptr %18, align 8, !tbaa !5
  %649 = load i32, ptr %59, align 4, !tbaa !44
  %650 = sext i32 %649 to i64
  %651 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %648, i64 noundef %650) #4
  store double 0xFFF0000000000000, ptr %651, align 8, !tbaa !46
  br label %663

652:                                              ; preds = %639
  %653 = load ptr, ptr %13, align 8, !tbaa !5
  %654 = getelementptr inbounds %class.HighsLp, ptr %653, i32 0, i32 3
  %655 = load i32, ptr %59, align 4, !tbaa !44
  %656 = sext i32 %655 to i64
  %657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %654, i64 noundef %656) #4
  %658 = load double, ptr %657, align 8, !tbaa !46
  %659 = load ptr, ptr %18, align 8, !tbaa !5
  %660 = load i32, ptr %59, align 4, !tbaa !44
  %661 = sext i32 %660 to i64
  %662 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %659, i64 noundef %661) #4
  store double %658, ptr %662, align 8, !tbaa !46
  br label %663

663:                                              ; preds = %652, %647
  %664 = load ptr, ptr %13, align 8, !tbaa !5
  %665 = getelementptr inbounds %class.HighsLp, ptr %664, i32 0, i32 4
  %666 = load i32, ptr %59, align 4, !tbaa !44
  %667 = sext i32 %666 to i64
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %665, i64 noundef %667) #4
  %669 = load double, ptr %668, align 8, !tbaa !46
  %670 = fcmp oge double %669, 0x7FF0000000000000
  br i1 %670, label %671, label %676

671:                                              ; preds = %663
  %672 = load ptr, ptr %19, align 8, !tbaa !5
  %673 = load i32, ptr %59, align 4, !tbaa !44
  %674 = sext i32 %673 to i64
  %675 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %672, i64 noundef %674) #4
  store double 0x7FF0000000000000, ptr %675, align 8, !tbaa !46
  br label %687

676:                                              ; preds = %663
  %677 = load ptr, ptr %13, align 8, !tbaa !5
  %678 = getelementptr inbounds %class.HighsLp, ptr %677, i32 0, i32 4
  %679 = load i32, ptr %59, align 4, !tbaa !44
  %680 = sext i32 %679 to i64
  %681 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %678, i64 noundef %680) #4
  %682 = load double, ptr %681, align 8, !tbaa !46
  %683 = load ptr, ptr %19, align 8, !tbaa !5
  %684 = load i32, ptr %59, align 4, !tbaa !44
  %685 = sext i32 %684 to i64
  %686 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %683, i64 noundef %685) #4
  store double %682, ptr %686, align 8, !tbaa !46
  br label %687

687:                                              ; preds = %676, %671
  br label %688

688:                                              ; preds = %687
  %689 = load i32, ptr %59, align 4, !tbaa !44
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr %59, align 4, !tbaa !44
  br label %632, !llvm.loop !59

691:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  store i32 0, ptr %60, align 4, !tbaa !44
  br label %692

692:                                              ; preds = %730, %691
  %693 = load i32, ptr %60, align 4, !tbaa !44
  %694 = load i32, ptr %30, align 4, !tbaa !44
  %695 = icmp slt i32 %693, %694
  br i1 %695, label %697, label %696

696:                                              ; preds = %692
  store i32 35, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  br label %733

697:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  %698 = load i32, ptr %60, align 4, !tbaa !44
  %699 = sext i32 %698 to i64
  %700 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %699) #4
  %701 = load i32, ptr %700, align 4, !tbaa !44
  store i32 %701, ptr %61, align 4, !tbaa !44
  %702 = load ptr, ptr %13, align 8, !tbaa !5
  %703 = getelementptr inbounds %class.HighsLp, ptr %702, i32 0, i32 5
  %704 = load i32, ptr %61, align 4, !tbaa !44
  %705 = sext i32 %704 to i64
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %703, i64 noundef %705) #4
  %707 = load double, ptr %706, align 8, !tbaa !46
  %708 = load ptr, ptr %18, align 8, !tbaa !5
  %709 = load ptr, ptr %13, align 8, !tbaa !5
  %710 = getelementptr inbounds %class.HighsLp, ptr %709, i32 0, i32 0
  %711 = load i32, ptr %710, align 8, !tbaa !9
  %712 = load i32, ptr %60, align 4, !tbaa !44
  %713 = add nsw i32 %711, %712
  %714 = sext i32 %713 to i64
  %715 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %708, i64 noundef %714) #4
  store double %707, ptr %715, align 8, !tbaa !46
  %716 = load ptr, ptr %13, align 8, !tbaa !5
  %717 = getelementptr inbounds %class.HighsLp, ptr %716, i32 0, i32 6
  %718 = load i32, ptr %61, align 4, !tbaa !44
  %719 = sext i32 %718 to i64
  %720 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %717, i64 noundef %719) #4
  %721 = load double, ptr %720, align 8, !tbaa !46
  %722 = load ptr, ptr %19, align 8, !tbaa !5
  %723 = load ptr, ptr %13, align 8, !tbaa !5
  %724 = getelementptr inbounds %class.HighsLp, ptr %723, i32 0, i32 0
  %725 = load i32, ptr %724, align 8, !tbaa !9
  %726 = load i32, ptr %60, align 4, !tbaa !44
  %727 = add nsw i32 %725, %726
  %728 = sext i32 %727 to i64
  %729 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %722, i64 noundef %728) #4
  store double %721, ptr %729, align 8, !tbaa !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  br label %730

730:                                              ; preds = %697
  %731 = load i32, ptr %60, align 4, !tbaa !44
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr %60, align 4, !tbaa !44
  br label %692, !llvm.loop !60

733:                                              ; preds = %696
  %734 = load ptr, ptr %13, align 8, !tbaa !5
  %735 = getelementptr inbounds %class.HighsLp, ptr %734, i32 0, i32 8
  %736 = load i32, ptr %735, align 8, !tbaa !61
  %737 = sitofp i32 %736 to double
  %738 = load ptr, ptr %13, align 8, !tbaa !5
  %739 = getelementptr inbounds %class.HighsLp, ptr %738, i32 0, i32 9
  %740 = load double, ptr %739, align 8, !tbaa !62
  %741 = fmul double %737, %740
  %742 = load ptr, ptr %16, align 8, !tbaa !5
  store double %741, ptr %742, align 8, !tbaa !46
  %743 = load ptr, ptr %17, align 8, !tbaa !5
  %744 = load ptr, ptr %14, align 8, !tbaa !5
  %745 = load i32, ptr %744, align 4, !tbaa !44
  %746 = sext i32 %745 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %743, i64 noundef %746)
          to label %747 unwind label %489

747:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  store i32 0, ptr %62, align 4, !tbaa !44
  br label %748

748:                                              ; preds = %771, %747
  %749 = load i32, ptr %62, align 4, !tbaa !44
  %750 = load ptr, ptr %13, align 8, !tbaa !5
  %751 = getelementptr inbounds %class.HighsLp, ptr %750, i32 0, i32 0
  %752 = load i32, ptr %751, align 8, !tbaa !9
  %753 = icmp slt i32 %749, %752
  br i1 %753, label %755, label %754

754:                                              ; preds = %748
  store i32 38, ptr %48, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  br label %774

755:                                              ; preds = %748
  %756 = load ptr, ptr %13, align 8, !tbaa !5
  %757 = getelementptr inbounds %class.HighsLp, ptr %756, i32 0, i32 8
  %758 = load i32, ptr %757, align 8, !tbaa !61
  %759 = sitofp i32 %758 to double
  %760 = load ptr, ptr %13, align 8, !tbaa !5
  %761 = getelementptr inbounds %class.HighsLp, ptr %760, i32 0, i32 2
  %762 = load i32, ptr %62, align 4, !tbaa !44
  %763 = sext i32 %762 to i64
  %764 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %761, i64 noundef %763) #4
  %765 = load double, ptr %764, align 8, !tbaa !46
  %766 = fmul double %759, %765
  %767 = load ptr, ptr %17, align 8, !tbaa !5
  %768 = load i32, ptr %62, align 4, !tbaa !44
  %769 = sext i32 %768 to i64
  %770 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %767, i64 noundef %769) #4
  store double %766, ptr %770, align 8, !tbaa !46
  br label %771

771:                                              ; preds = %755
  %772 = load i32, ptr %62, align 4, !tbaa !44
  %773 = add nsw i32 %772, 1
  store i32 %773, ptr %62, align 4, !tbaa !44
  br label %748, !llvm.loop !63

774:                                              ; preds = %754
  %775 = load ptr, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #4
  %776 = load ptr, ptr %17, align 8, !tbaa !5
  %777 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %776) #4
  %778 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %64, i32 0, i32 0
  store ptr %777, ptr %778, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #4
  %779 = load i32, ptr %30, align 4, !tbaa !44
  %780 = sext i32 %779 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #4
  store double 0.000000e+00, ptr %65, align 8, !tbaa !46
  %781 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.60", ptr %63, i32 0, i32 0
  %782 = load ptr, ptr %781, align 8
  %783 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEmRS4_(ptr noundef nonnull align 8 dereferenceable(24) %775, ptr %782, i64 noundef %780, ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %784 unwind label %786

784:                                              ; preds = %774
  %785 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %66, i32 0, i32 0
  store ptr %783, ptr %785, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #4
  ret void

786:                                              ; preds = %774
  %787 = landingpad { ptr, i32 }
          cleanup
  %788 = extractvalue { ptr, i32 } %787, 0
  store ptr %788, ptr %28, align 8
  %789 = extractvalue { ptr, i32 } %787, 1
  store i32 %789, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  br label %790

790:                                              ; preds = %786, %620, %586, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #4
  br label %791

791:                                              ; preds = %790, %395
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #4
  br label %792

792:                                              ; preds = %791, %330
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #4
  br label %793

793:                                              ; preds = %792, %313, %181
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  br label %794

794:                                              ; preds = %793, %135
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #4
  br label %795

795:                                              ; preds = %794
  %796 = load ptr, ptr %28, align 8
  %797 = load i32, ptr %29, align 4
  %798 = insertvalue { ptr, i32 } poison, ptr %796, 0
  %799 = insertvalue { ptr, i32 } %798, i32 %797, 1
  resume { ptr, i32 } %799
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.5" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.60" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str.52 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [42 x i8], align 1
@__PRETTY_FUNCTION__._Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE = external hidden unnamed_addr constant [256 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [42 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE(ptr noundef nonnull align 8 dereferenceable(920) %0, ptr nocapture noundef nonnull align 4 dereferenceable(4) %1, ptr nocapture noundef nonnull align 4 dereferenceable(4) %2, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %11) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %13 = alloca %"class.std::vector.3", align 8
  %14 = alloca %"class.std::vector.3", align 8
  %15 = alloca i32, align 4
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca double, align 8
  %20 = alloca i8, align 1
  %21 = alloca %"class.std::vector.3", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::allocator.5", align 1
  %24 = alloca %"class.std::vector.3", align 8
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::allocator.5", align 1
  %27 = alloca i32, align 4
  %28 = alloca double, align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.60", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %31 = alloca double, align 8
  %32 = load i32, ptr %0, align 8, !tbaa !5
  store i32 %32, ptr %1, align 4, !tbaa !43
  %33 = getelementptr inbounds i8, ptr %0, i64 4
  %34 = load i32, ptr %33, align 4, !tbaa !44
  store i32 %34, ptr %2, align 4, !tbaa !43
  %35 = getelementptr inbounds i8, ptr %0, i64 80
  %36 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #4
  %37 = trunc i64 %36 to i32
  %38 = load i32, ptr %2, align 4, !tbaa !43
  %39 = icmp eq i32 %38, %37
  br i1 %39, label %41, label %40

40:                                               ; preds = %12
  tail call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.52, i32 noundef 407, ptr noundef nonnull @__PRETTY_FUNCTION__._Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE) #5
  unreachable

41:                                               ; preds = %12
  %42 = getelementptr inbounds i8, ptr %0, i64 104
  %43 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %42) #4
  %44 = trunc i64 %43 to i32
  %45 = load i32, ptr %2, align 4, !tbaa !43
  %46 = icmp eq i32 %45, %44
  br i1 %46, label %48, label %47

47:                                               ; preds = %41
  tail call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.52, i32 noundef 408, ptr noundef nonnull @__PRETTY_FUNCTION__._Z13fillInIpxDataRK7HighsLpRiS2_RdRSt6vectorIdSaIdEES7_S7_RS4_IiSaIiEESA_S7_S7_RS4_IcSaIcEE) #5
  unreachable

48:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #4
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #4
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #4
  store i32 0, ptr %15, align 4, !tbaa !43
  %49 = load i32, ptr %2, align 4, !tbaa !43
  %50 = icmp sgt i32 %49, 0
  br i1 %50, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %90, %48
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  %51 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  %52 = trunc i64 %51 to i32
  %53 = load i32, ptr %2, align 4, !tbaa !43
  %54 = sext i32 %53 to i64
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %54)
          to label %95 unwind label %102

.lr.ph:                                           ; preds = %48, %90
  %storemerge236 = phi i32 [ %92, %90 ], [ 0, %48 ]
  %55 = sext i32 %storemerge236 to i64
  %56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %55) #4
  %57 = load double, ptr %56, align 8, !tbaa !45
  %58 = load i32, ptr %15, align 4, !tbaa !43
  %59 = sext i32 %58 to i64
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %59) #4
  %61 = load double, ptr %60, align 8, !tbaa !45
  %62 = fcmp olt double %57, %61
  br i1 %62, label %63, label %77

63:                                               ; preds = %.lr.ph
  %64 = load i32, ptr %15, align 4, !tbaa !43
  %65 = sext i32 %64 to i64
  %66 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %65) #4
  %67 = load double, ptr %66, align 8, !tbaa !45
  %68 = fcmp ueq double %67, 0xFFF0000000000000
  br i1 %68, label %77, label %69

69:                                               ; preds = %63
  %70 = load i32, ptr %15, align 4, !tbaa !43
  %71 = sext i32 %70 to i64
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %71) #4
  %73 = load double, ptr %72, align 8, !tbaa !45
  %74 = fcmp ueq double %73, 0x7FF0000000000000
  br i1 %74, label %77, label %.invoke

75:                                               ; preds = %.invoke
  %76 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  br label %375

77:                                               ; preds = %69, %63, %.lr.ph
  %78 = load i32, ptr %15, align 4, !tbaa !43
  %79 = sext i32 %78 to i64
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %79) #4
  %81 = load double, ptr %80, align 8, !tbaa !45
  %82 = fcmp oeq double %81, 0xFFF0000000000000
  br i1 %82, label %83, label %90

83:                                               ; preds = %77
  %84 = load i32, ptr %15, align 4, !tbaa !43
  %85 = sext i32 %84 to i64
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %85) #4
  %87 = load double, ptr %86, align 8, !tbaa !45
  %88 = fcmp oeq double %87, 0x7FF0000000000000
  br i1 %88, label %.invoke, label %90

.invoke:                                          ; preds = %69, %83
  %89 = phi ptr [ %14, %83 ], [ %13, %69 ]
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %90 unwind label %75

90:                                               ; preds = %.invoke, %83, %77
  %91 = load i32, ptr %15, align 4, !tbaa !43
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr %15, align 4, !tbaa !43
  %93 = load i32, ptr %2, align 4, !tbaa !43
  %94 = icmp slt i32 %92, %93
  br i1 %94, label %.lr.ph, label %._crit_edge, !llvm.loop !46

95:                                               ; preds = %._crit_edge
  %96 = load i32, ptr %2, align 4, !tbaa !43
  %97 = sext i32 %96 to i64
  invoke void @_ZNSt6vectorIcSaIcEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %97)
          to label %.preheader234 unwind label %102

.preheader234:                                    ; preds = %95
  %98 = load i32, ptr %2, align 4, !tbaa !43
  %99 = icmp sgt i32 %98, 0
  br i1 %99, label %.lr.ph238, label %._crit_edge239

._crit_edge239:                                   ; preds = %160, %.preheader234
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #4
  %100 = load i32, ptr %33, align 4, !tbaa !44
  %101 = sext i32 %100 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #4
  store i32 -1, ptr %22, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %101, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %164 unwind label %168

102:                                              ; preds = %95, %._crit_edge
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %375

.lr.ph238:                                        ; preds = %.preheader234, %160
  %indvars.iv = phi i64 [ %indvars.iv.next, %160 ], [ 0, %.preheader234 ]
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %indvars.iv) #4
  %105 = load double, ptr %104, align 8, !tbaa !45
  %106 = fcmp ueq double %105, 0xFFF0000000000000
  br i1 %106, label %119, label %107

107:                                              ; preds = %.lr.ph238
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv) #4
  %109 = load double, ptr %108, align 8, !tbaa !45
  %110 = fcmp oeq double %109, 0x7FF0000000000000
  br i1 %110, label %111, label %119

111:                                              ; preds = %107
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %indvars.iv) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %113 unwind label %115

113:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #4
  store i8 62, ptr %16, align 1, !tbaa !48
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %114 unwind label %117

114:                                              ; preds = %113
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #4
  br label %160

115:                                              ; preds = %139, %127, %111
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %375

117:                                              ; preds = %113
  %118 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #4
  br label %375

119:                                              ; preds = %107, %.lr.ph238
  %120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %indvars.iv) #4
  %121 = load double, ptr %120, align 8, !tbaa !45
  %122 = fcmp oeq double %121, 0xFFF0000000000000
  br i1 %122, label %123, label %133

123:                                              ; preds = %119
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv) #4
  %125 = load double, ptr %124, align 8, !tbaa !45
  %126 = fcmp ueq double %125, 0x7FF0000000000000
  br i1 %126, label %133, label %127

127:                                              ; preds = %123
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(8) %128)
          to label %129 unwind label %115

129:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #4
  store i8 60, ptr %17, align 1, !tbaa !48
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %130 unwind label %131

130:                                              ; preds = %129
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #4
  br label %160

131:                                              ; preds = %129
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #4
  br label %375

133:                                              ; preds = %123, %119
  %134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %indvars.iv) #4
  %135 = load double, ptr %134, align 8, !tbaa !45
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv) #4
  %137 = load double, ptr %136, align 8, !tbaa !45
  %138 = fcmp oeq double %135, %137
  br i1 %138, label %139, label %145

139:                                              ; preds = %133
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %141 unwind label %115

141:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #4
  store i8 61, ptr %18, align 1, !tbaa !48
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %142 unwind label %143

142:                                              ; preds = %141
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  br label %160

143:                                              ; preds = %141
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  br label %375

145:                                              ; preds = %133
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %indvars.iv) #4
  %147 = load double, ptr %146, align 8, !tbaa !45
  %148 = fcmp ueq double %147, 0xFFF0000000000000
  br i1 %148, label %160, label %149

149:                                              ; preds = %145
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %indvars.iv) #4
  %151 = load double, ptr %150, align 8, !tbaa !45
  %152 = fcmp ueq double %151, 0x7FF0000000000000
  br i1 %152, label %160, label %153

153:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  store double 0.000000e+00, ptr %19, align 8, !tbaa !45
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %154 unwind label %156

154:                                              ; preds = %153
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #4
  store i8 61, ptr %20, align 1, !tbaa !48
  invoke void @_ZNSt6vectorIcSaIcEE9push_backEOc(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %155 unwind label %158

155:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #4
  br label %160

156:                                              ; preds = %153
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  br label %375

158:                                              ; preds = %154
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #4
  br label %375

160:                                              ; preds = %114, %142, %155, %149, %145, %130
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %161 = load i32, ptr %2, align 4, !tbaa !43
  %162 = sext i32 %161 to i64
  %163 = icmp slt i64 %indvars.iv.next, %162
  br i1 %163, label %.lr.ph238, label %._crit_edge239, !llvm.loop !49

164:                                              ; preds = %._crit_edge239
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  %165 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  %.not = icmp eq i64 %165, 0
  %166 = load i32, ptr %33, align 4, !tbaa !44
  %167 = icmp sgt i32 %166, 0
  br i1 %.not, label %.preheader230, label %.preheader232

.preheader232:                                    ; preds = %164
  br i1 %167, label %.lr.ph243, label %.loopexit231

.preheader230:                                    ; preds = %164
  br i1 %167, label %.lr.ph245, label %.loopexit231

168:                                              ; preds = %._crit_edge239
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  br label %374

.lr.ph243:                                        ; preds = %.preheader232, %180
  %indvars.iv274 = phi i64 [ %indvars.iv.next275, %180 ], [ 0, %.preheader232 ]
  %.0203242 = phi i32 [ %.1204, %180 ], [ 0, %.preheader232 ]
  %.0205241 = phi i32 [ %.1206, %180 ], [ 0, %.preheader232 ]
  %170 = sext i32 %.0205241 to i64
  %171 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %170) #4
  %172 = load i32, ptr %171, align 4, !tbaa !43
  %173 = zext i32 %172 to i64
  %174 = icmp eq i64 %indvars.iv274, %173
  br i1 %174, label %175, label %177

175:                                              ; preds = %.lr.ph243
  %176 = add nsw i32 %.0205241, 1
  br label %180

177:                                              ; preds = %.lr.ph243
  %178 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv274) #4
  store i32 %.0203242, ptr %178, align 4, !tbaa !43
  %179 = add nsw i32 %.0203242, 1
  br label %180

180:                                              ; preds = %177, %175
  %.1206 = phi i32 [ %176, %175 ], [ %.0205241, %177 ]
  %.1204 = phi i32 [ %.0203242, %175 ], [ %179, %177 ]
  %indvars.iv.next275 = add nuw nsw i64 %indvars.iv274, 1
  %181 = load i32, ptr %33, align 4, !tbaa !44
  %182 = sext i32 %181 to i64
  %183 = icmp slt i64 %indvars.iv.next275, %182
  br i1 %183, label %.lr.ph243, label %.loopexit231, !llvm.loop !50

.lr.ph245:                                        ; preds = %.preheader230, %.lr.ph245
  %indvars.iv277 = phi i64 [ %indvars.iv.next278, %.lr.ph245 ], [ 0, %.preheader230 ]
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv277) #4
  %185 = trunc nuw nsw i64 %indvars.iv277 to i32
  store i32 %185, ptr %184, align 4, !tbaa !43
  %indvars.iv.next278 = add nuw nsw i64 %indvars.iv277, 1
  %186 = load i32, ptr %33, align 4, !tbaa !44
  %187 = sext i32 %186 to i64
  %188 = icmp slt i64 %indvars.iv.next278, %187
  br i1 %188, label %.lr.ph245, label %.loopexit231, !llvm.loop !51

.loopexit231:                                     ; preds = %180, %.lr.ph245, %.preheader232, %.preheader230
  %189 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  %190 = load i32, ptr %2, align 4, !tbaa !43
  %191 = trunc i64 %189 to i32
  %192 = sub i32 %190, %191
  store i32 %192, ptr %2, align 4, !tbaa !43
  %193 = load i32, ptr %1, align 4, !tbaa !43
  %194 = add nsw i32 %193, %52
  store i32 %194, ptr %1, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #4
  %195 = sext i32 %194 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #4
  store i32 0, ptr %25, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %195, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %196 unwind label %210

196:                                              ; preds = %.loopexit231
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #4
  %197 = load i32, ptr %0, align 8, !tbaa !5
  %198 = icmp sgt i32 %197, 0
  br i1 %198, label %.lr.ph251, label %._crit_edge252

.lr.ph251:                                        ; preds = %196
  %199 = getelementptr inbounds i8, ptr %0, i64 144
  %200 = getelementptr inbounds i8, ptr %0, i64 192
  br label %212

.loopexit:                                        ; preds = %233, %212
  %201 = load i32, ptr %0, align 8, !tbaa !5
  %202 = sext i32 %201 to i64
  %203 = icmp slt i64 %indvars.iv.next284, %202
  br i1 %203, label %212, label %._crit_edge252, !llvm.loop !52

._crit_edge252:                                   ; preds = %.loopexit, %196
  %204 = getelementptr inbounds i8, ptr %0, i64 192
  %205 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #4
  %206 = trunc i64 %205 to i32
  %207 = load i32, ptr %1, align 4, !tbaa !43
  %208 = add nsw i32 %207, 1
  %209 = sext i32 %208 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %209)
          to label %238 unwind label %249

210:                                              ; preds = %.loopexit231
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #4
  br label %373

212:                                              ; preds = %.lr.ph251, %.loopexit
  %indvars.iv283 = phi i64 [ 0, %.lr.ph251 ], [ %indvars.iv.next284, %.loopexit ]
  %213 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %199, i64 noundef %indvars.iv283) #4
  %214 = load i32, ptr %213, align 4, !tbaa !43
  %indvars.iv.next284 = add nuw nsw i64 %indvars.iv283, 1
  %215 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %199, i64 noundef %indvars.iv.next284) #4
  %216 = load i32, ptr %215, align 4, !tbaa !43
  %217 = icmp slt i32 %214, %216
  br i1 %217, label %.lr.ph248.preheader, label %.loopexit

.lr.ph248.preheader:                              ; preds = %212
  %218 = sext i32 %214 to i64
  br label %.lr.ph248

.lr.ph248:                                        ; preds = %.lr.ph248.preheader, %233
  %indvars.iv280 = phi i64 [ %218, %.lr.ph248.preheader ], [ %indvars.iv.next281, %233 ]
  %219 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %200, i64 noundef %indvars.iv280) #4
  %220 = load i32, ptr %219, align 4, !tbaa !43
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %221) #4
  %223 = load double, ptr %222, align 8, !tbaa !45
  %224 = fcmp ueq double %223, 0xFFF0000000000000
  br i1 %224, label %225, label %229

225:                                              ; preds = %.lr.ph248
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %221) #4
  %227 = load double, ptr %226, align 8, !tbaa !45
  %228 = fcmp ueq double %227, 0x7FF0000000000000
  br i1 %228, label %233, label %229

229:                                              ; preds = %225, %.lr.ph248
  %230 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv283) #4
  %231 = load i32, ptr %230, align 4, !tbaa !43
  %232 = add nsw i32 %231, 1
  store i32 %232, ptr %230, align 4, !tbaa !43
  br label %233

233:                                              ; preds = %229, %225
  %indvars.iv.next281 = add nsw i64 %indvars.iv280, 1
  %234 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %199, i64 noundef %indvars.iv.next284) #4
  %235 = load i32, ptr %234, align 4, !tbaa !43
  %236 = sext i32 %235 to i64
  %237 = icmp slt i64 %indvars.iv.next281, %236
  br i1 %237, label %.lr.ph248, label %.loopexit, !llvm.loop !53

238:                                              ; preds = %._crit_edge252
  %239 = add i64 %205, %51
  %sext = shl i64 %239, 32
  %240 = ashr exact i64 %sext, 32
  invoke void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %240)
          to label %241 unwind label %249

241:                                              ; preds = %238
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %240)
          to label %242 unwind label %249

242:                                              ; preds = %241
  %243 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef 0) #4
  store i32 0, ptr %243, align 4, !tbaa !43
  %244 = load i32, ptr %0, align 8, !tbaa !5
  %245 = icmp sgt i32 %244, 0
  br i1 %245, label %.lr.ph255, label %.preheader229

.preheader229:                                    ; preds = %.lr.ph255, %242
  %.lcssa = phi i32 [ %244, %242 ], [ %257, %.lr.ph255 ]
  %246 = load i32, ptr %1, align 4, !tbaa !43
  %247 = icmp slt i32 %.lcssa, %246
  br i1 %247, label %.lr.ph257.preheader, label %.preheader228

.lr.ph257.preheader:                              ; preds = %.preheader229
  %248 = sext i32 %.lcssa to i64
  br label %.lr.ph257

249:                                              ; preds = %._crit_edge267, %301, %._crit_edge262, %241, %238, %._crit_edge252
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %372

.lr.ph255:                                        ; preds = %242, %.lr.ph255
  %indvars.iv286 = phi i64 [ %indvars.iv.next287, %.lr.ph255 ], [ 0, %242 ]
  %251 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv286) #4
  %252 = load i32, ptr %251, align 4, !tbaa !43
  %253 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %indvars.iv286) #4
  %254 = load i32, ptr %253, align 4, !tbaa !43
  %255 = add nsw i32 %254, %252
  %indvars.iv.next287 = add nuw nsw i64 %indvars.iv286, 1
  %256 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv.next287) #4
  store i32 %255, ptr %256, align 4, !tbaa !43
  %257 = load i32, ptr %0, align 8, !tbaa !5
  %258 = sext i32 %257 to i64
  %259 = icmp slt i64 %indvars.iv.next287, %258
  br i1 %259, label %.lr.ph255, label %.preheader229, !llvm.loop !54

.preheader228:                                    ; preds = %.lr.ph257, %.preheader229
  %260 = icmp sgt i32 %206, 0
  br i1 %260, label %.lr.ph259, label %.preheader227

.lr.ph259:                                        ; preds = %.preheader228
  %261 = getelementptr inbounds i8, ptr %0, i64 216
  %wide.trip.count = and i64 %205, 2147483647
  br label %270

.lr.ph257:                                        ; preds = %.lr.ph257.preheader, %.lr.ph257
  %indvars.iv289 = phi i64 [ %248, %.lr.ph257.preheader ], [ %indvars.iv.next290, %.lr.ph257 ]
  %262 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv289) #4
  %263 = load i32, ptr %262, align 4, !tbaa !43
  %264 = add nsw i32 %263, 1
  %indvars.iv.next290 = add nsw i64 %indvars.iv289, 1
  %265 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv.next290) #4
  store i32 %264, ptr %265, align 4, !tbaa !43
  %266 = load i32, ptr %1, align 4, !tbaa !43
  %267 = sext i32 %266 to i64
  %268 = icmp slt i64 %indvars.iv.next290, %267
  br i1 %268, label %.lr.ph257, label %.preheader228, !llvm.loop !55

.preheader227:                                    ; preds = %290, %.preheader228
  %269 = icmp sgt i32 %52, 0
  br i1 %269, label %.lr.ph261.preheader, label %._crit_edge262

.lr.ph261.preheader:                              ; preds = %.preheader227
  %wide.trip.count298 = and i64 %51, 2147483647
  br label %.lr.ph261

270:                                              ; preds = %.lr.ph259, %290
  %indvars.iv292 = phi i64 [ 0, %.lr.ph259 ], [ %indvars.iv.next293, %290 ]
  %271 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %indvars.iv292) #4
  %272 = load i32, ptr %271, align 4, !tbaa !43
  %273 = sext i32 %272 to i64
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %273) #4
  %275 = load double, ptr %274, align 8, !tbaa !45
  %276 = fcmp ueq double %275, 0xFFF0000000000000
  br i1 %276, label %277, label %281

277:                                              ; preds = %270
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %273) #4
  %279 = load double, ptr %278, align 8, !tbaa !45
  %280 = fcmp ueq double %279, 0x7FF0000000000000
  br i1 %280, label %290, label %281

281:                                              ; preds = %277, %270
  %282 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %indvars.iv292) #4
  %283 = load i32, ptr %282, align 4, !tbaa !43
  %284 = sext i32 %283 to i64
  %285 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %284) #4
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(4) %285)
          to label %286 unwind label %288

286:                                              ; preds = %281
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %261, i64 noundef %indvars.iv292) #4
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(8) %287)
          to label %290 unwind label %288

288:                                              ; preds = %286, %281
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %372

290:                                              ; preds = %286, %277
  %indvars.iv.next293 = add nuw nsw i64 %indvars.iv292, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next293, %wide.trip.count
  br i1 %exitcond.not, label %.preheader227, label %270, !llvm.loop !56

._crit_edge262:                                   ; preds = %296, %.preheader227
  %291 = load i32, ptr %1, align 4, !tbaa !43
  %292 = sext i32 %291 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %292)
          to label %301 unwind label %249

.lr.ph261:                                        ; preds = %.lr.ph261.preheader, %296
  %indvars.iv295 = phi i64 [ 0, %.lr.ph261.preheader ], [ %indvars.iv.next296, %296 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #4
  %293 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %indvars.iv295) #4
  %294 = load i32, ptr %293, align 4, !tbaa !43
  store i32 %294, ptr %27, align 4, !tbaa !43
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %295 unwind label %297

295:                                              ; preds = %.lr.ph261
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  store double -1.000000e+00, ptr %28, align 8, !tbaa !45
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %296 unwind label %299

296:                                              ; preds = %295
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  %indvars.iv.next296 = add nuw nsw i64 %indvars.iv295, 1
  %exitcond299.not = icmp eq i64 %indvars.iv.next296, %wide.trip.count298
  br i1 %exitcond299.not, label %._crit_edge262, label %.lr.ph261, !llvm.loop !57

297:                                              ; preds = %.lr.ph261
  %298 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  br label %372

299:                                              ; preds = %295
  %300 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  br label %372

301:                                              ; preds = %._crit_edge262
  %302 = load i32, ptr %1, align 4, !tbaa !43
  %303 = sext i32 %302 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %303)
          to label %.preheader226 unwind label %249

.preheader226:                                    ; preds = %301
  %304 = load i32, ptr %0, align 8, !tbaa !5
  %305 = icmp sgt i32 %304, 0
  br i1 %305, label %.lr.ph264, label %.preheader225

.lr.ph264:                                        ; preds = %.preheader226
  %306 = getelementptr inbounds i8, ptr %0, i64 32
  %307 = getelementptr inbounds i8, ptr %0, i64 56
  br label %308

.preheader225:                                    ; preds = %323, %.preheader226
  br i1 %269, label %.lr.ph266.preheader, label %._crit_edge267

.lr.ph266.preheader:                              ; preds = %.preheader225
  %wide.trip.count306 = and i64 %51, 2147483647
  br label %.lr.ph266

308:                                              ; preds = %.lr.ph264, %323
  %indvars.iv300 = phi i64 [ 0, %.lr.ph264 ], [ %indvars.iv.next301, %323 ]
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %306, i64 noundef %indvars.iv300) #4
  %310 = load double, ptr %309, align 8, !tbaa !45
  %311 = fcmp oeq double %310, 0xFFF0000000000000
  br i1 %311, label %315, label %312

312:                                              ; preds = %308
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %306, i64 noundef %indvars.iv300) #4
  %314 = load double, ptr %313, align 8, !tbaa !45
  br label %315

315:                                              ; preds = %308, %312
  %.sink = phi double [ %314, %312 ], [ 0xFFF0000000000000, %308 ]
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv300) #4
  store double %.sink, ptr %316, align 8, !tbaa !45
  %317 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %indvars.iv300) #4
  %318 = load double, ptr %317, align 8, !tbaa !45
  %319 = fcmp oeq double %318, 0x7FF0000000000000
  br i1 %319, label %323, label %320

320:                                              ; preds = %315
  %321 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %indvars.iv300) #4
  %322 = load double, ptr %321, align 8, !tbaa !45
  br label %323

323:                                              ; preds = %315, %320
  %.sink314 = phi double [ %322, %320 ], [ 0x7FF0000000000000, %315 ]
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv300) #4
  store double %.sink314, ptr %324, align 8, !tbaa !45
  %indvars.iv.next301 = add nuw nsw i64 %indvars.iv300, 1
  %325 = load i32, ptr %0, align 8, !tbaa !5
  %326 = sext i32 %325 to i64
  %327 = icmp slt i64 %indvars.iv.next301, %326
  br i1 %327, label %308, label %.preheader225, !llvm.loop !58

._crit_edge267:                                   ; preds = %.lr.ph266, %.preheader225
  %328 = getelementptr inbounds i8, ptr %0, i64 240
  %329 = load i32, ptr %328, align 8, !tbaa !59
  %330 = sitofp i32 %329 to double
  %331 = getelementptr inbounds i8, ptr %0, i64 248
  %332 = load double, ptr %331, align 8, !tbaa !60
  %333 = fmul double %332, %330
  store double %333, ptr %3, align 8, !tbaa !45
  %334 = load i32, ptr %1, align 4, !tbaa !43
  %335 = sext i32 %334 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %335)
          to label %.preheader unwind label %249

.preheader:                                       ; preds = %._crit_edge267
  %336 = load i32, ptr %0, align 8, !tbaa !5
  %337 = icmp sgt i32 %336, 0
  br i1 %337, label %.lr.ph269, label %._crit_edge270

.lr.ph269:                                        ; preds = %.preheader
  %338 = getelementptr inbounds i8, ptr %0, i64 8
  br label %359

.lr.ph266:                                        ; preds = %.lr.ph266.preheader, %.lr.ph266
  %indvars.iv303 = phi i64 [ 0, %.lr.ph266.preheader ], [ %indvars.iv.next304, %.lr.ph266 ]
  %339 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %indvars.iv303) #4
  %340 = load i32, ptr %339, align 4, !tbaa !43
  %341 = sext i32 %340 to i64
  %342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %341) #4
  %343 = load double, ptr %342, align 8, !tbaa !45
  %344 = load i32, ptr %0, align 8, !tbaa !5
  %345 = trunc nuw nsw i64 %indvars.iv303 to i32
  %346 = add nsw i32 %344, %345
  %347 = sext i32 %346 to i64
  %348 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %347) #4
  store double %343, ptr %348, align 8, !tbaa !45
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %341) #4
  %350 = load double, ptr %349, align 8, !tbaa !45
  %351 = load i32, ptr %0, align 8, !tbaa !5
  %352 = add nsw i32 %351, %345
  %353 = sext i32 %352 to i64
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %353) #4
  store double %350, ptr %354, align 8, !tbaa !45
  %indvars.iv.next304 = add nuw nsw i64 %indvars.iv303, 1
  %exitcond307.not = icmp eq i64 %indvars.iv.next304, %wide.trip.count306
  br i1 %exitcond307.not, label %._crit_edge267, label %.lr.ph266, !llvm.loop !61

._crit_edge270:                                   ; preds = %359, %.preheader
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #4
  %355 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #4
  store ptr %355, ptr %30, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #4
  %sext214 = shl i64 %51, 32
  %356 = ashr exact i64 %sext214, 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #4
  store double 0.000000e+00, ptr %31, align 8, !tbaa !45
  %357 = load ptr, ptr %29, align 8
  %358 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEmRS4_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr %357, i64 noundef %356, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %369 unwind label %370

359:                                              ; preds = %.lr.ph269, %359
  %indvars.iv308 = phi i64 [ 0, %.lr.ph269 ], [ %indvars.iv.next309, %359 ]
  %360 = load i32, ptr %328, align 8, !tbaa !59
  %361 = sitofp i32 %360 to double
  %362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %338, i64 noundef %indvars.iv308) #4
  %363 = load double, ptr %362, align 8, !tbaa !45
  %364 = fmul double %363, %361
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %indvars.iv308) #4
  store double %364, ptr %365, align 8, !tbaa !45
  %indvars.iv.next309 = add nuw nsw i64 %indvars.iv308, 1
  %366 = load i32, ptr %0, align 8, !tbaa !5
  %367 = sext i32 %366 to i64
  %368 = icmp slt i64 %indvars.iv.next309, %367
  br i1 %368, label %359, label %._crit_edge270, !llvm.loop !62

369:                                              ; preds = %._crit_edge270
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #4
  ret void

370:                                              ; preds = %._crit_edge270
  %371 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #4
  br label %372

372:                                              ; preds = %297, %299, %370, %288, %249
  %.pn216 = phi { ptr, i32 } [ %289, %288 ], [ %371, %370 ], [ %250, %249 ], [ %300, %299 ], [ %298, %297 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #4
  br label %373

373:                                              ; preds = %372, %210
  %.pn216.pn = phi { ptr, i32 } [ %.pn216, %372 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #4
  br label %374

374:                                              ; preds = %373, %168
  %.pn216.pn.pn = phi { ptr, i32 } [ %.pn216.pn, %373 ], [ %169, %168 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #4
  br label %375

375:                                              ; preds = %102, %374, %158, %156, %143, %131, %117, %115, %75
  %.pn223 = phi { ptr, i32 } [ %76, %75 ], [ %.pn216.pn.pn, %374 ], [ %103, %102 ], [ %118, %117 ], [ %116, %115 ], [ %132, %131 ], [ %144, %143 ], [ %159, %158 ], [ %157, %156 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #4
  resume { ptr, i32 } %.pn223
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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