; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/src (optimization)

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

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::xquadraticconstraints" = type { i64, %"struct.alglib_impl::ae_obj_array", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_obj_array" = type { i64, i64, i8, ptr, ptr, ptr, ptr, %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::xconicconstraints" = type { i64, %"struct.alglib_impl::ae_obj_array" }
%"struct.alglib_impl::dynamiccrs" = type { i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::dynamiccrsqconstraints" = type { %"struct.alglib_impl::ae_obj_array", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_smart_ptr" = type { ptr, ptr, i8, i8, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::presolveinfo" = type { i64, i64, i64, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::xquadraticconstraints", %"struct.alglib_impl::xconicconstraints", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::xquadraticconstraints", %"struct.alglib_impl::xconicconstraints", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::presolverstack", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::presolvebuffers" }
%"struct.alglib_impl::presolverstack" = type { i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::presolvebuffers" = type { %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::dynamiccrsqconstraint" }
%"struct.alglib_impl::niset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::dynamiccrsqconstraint" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::dynamiccrs", double, double, i8 }
%"struct.alglib_impl::xquadraticconstraint" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", double, double, i8 }

@.str.212 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.814 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.815 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.820 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.821 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.822 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.823 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.824 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.825 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.826 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.827 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.828 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.829 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.830 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.831 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.832 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.833 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.834 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.835 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.836 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.837 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.838 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.839 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.840 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.841 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.842 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.843 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.844 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.845 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.846 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.847 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.848 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.849 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.850 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.851 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.852 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.853 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.854 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.855 = external hidden unnamed_addr constant [37 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 noundef ptr @_ZN11alglib_impl9ae_mallocEmPNS_8ae_stateE(i64 noundef, ptr noundef) #1

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

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

declare void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #1

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

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) #1

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #1

declare void @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef, ...) #1

declare noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef) #1

declare void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) #1

declare void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl22sparsecreatecrsinplaceEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #4

declare void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #1

declare void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl26_xquadraticconstraint_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #1

declare void @_ZN11alglib_impl19ae_smart_ptr_assignEPNS_12ae_smart_ptrEPvbblPFvS2_PKvPNS_8ae_stateEbEPFvS2_E(ptr noundef, ptr noundef, i1 noundef zeroext, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl31_xquadraticconstraint_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #1

declare void @_ZN11alglib_impl29_xquadraticconstraint_destroyEPv(ptr noundef) #1

declare noundef i64 @_ZN11alglib_impl28ae_obj_array_append_transferEPNS_12ae_obj_arrayEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef, ptr noundef) #4

declare void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #1

declare void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef, ptr noundef) #4

declare void @_ZN11alglib_impl25sparsecopytransposecrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, i1 noundef zeroext, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl27_xquadraticconstraints_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #1

declare void @_ZN11alglib_impl23_xconicconstraints_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl21presolvenonescaleuserEPKNS_9ae_vectorES2_S2_S2_S2_PKNS_12sparsematrixEbblS5_S2_S2_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEbPNS_12presolveinfoEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) #4

declare noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL31lpqppresolve_presolverstackinitEllllPNS_14presolverstackEPNS_8ae_stateE(i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL24lpqppresolve_copyexpandhEPKNS_12sparsematrixEbPS0_PNS_8ae_stateE(ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL46lpqppresolve_scaleshiftobjectiveandconstraintsEPKNS_9ae_vectorES2_lPS0_S3_S3_PNS_12sparsematrixEbS5_S3_S3_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEPNS_14presolverstackEPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl10presolveqpEPKNS_9ae_vectorES2_S2_S2_S2_PKNS_12sparsematrixEbblS5_S2_S2_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEbPNS_12presolveinfoEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i1 noundef zeroext %6, i1 noundef zeroext %7, i64 noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, i64 noundef %12, ptr noundef %13, ptr noundef %14, i1 noundef zeroext %15, ptr noundef %16, ptr noundef %17) #4 {
  %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 i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca i64, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i64, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i8, align 1
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %"struct.alglib_impl::ae_frame", align 8
  %38 = alloca i8, align 1
  %39 = alloca %"struct.alglib_impl::ae_vector", align 8
  %40 = alloca %"struct.alglib_impl::ae_vector", align 8
  %41 = alloca %"struct.alglib_impl::ae_vector", align 8
  %42 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %43 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %44 = alloca %"struct.alglib_impl::xquadraticconstraints", align 8
  %45 = alloca %"struct.alglib_impl::xconicconstraints", align 8
  %46 = alloca %"struct.alglib_impl::dynamiccrs", align 8
  %47 = alloca %"struct.alglib_impl::dynamiccrs", align 8
  %48 = alloca %"struct.alglib_impl::dynamiccrs", align 8
  %49 = alloca %"struct.alglib_impl::dynamiccrsqconstraints", align 8
  %50 = alloca %"struct.alglib_impl::ae_vector", align 8
  %51 = alloca %"struct.alglib_impl::ae_vector", align 8
  %52 = alloca %"struct.alglib_impl::ae_vector", align 8
  %53 = alloca %"struct.alglib_impl::ae_vector", align 8
  %54 = alloca %"struct.alglib_impl::ae_vector", align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca double, align 8
  %78 = alloca i64, align 8
  %79 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %80 = alloca ptr, align 8
  %81 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  %82 = alloca ptr, align 8
  %83 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  %84 = alloca i32, align 4
  store ptr %0, ptr %19, align 8, !tbaa !5
  store ptr %1, ptr %20, align 8, !tbaa !5
  store ptr %2, ptr %21, align 8, !tbaa !5
  store ptr %3, ptr %22, align 8, !tbaa !5
  store ptr %4, ptr %23, align 8, !tbaa !5
  store ptr %5, ptr %24, align 8, !tbaa !5
  %85 = zext i1 %6 to i8
  store i8 %85, ptr %25, align 1, !tbaa !9
  %86 = zext i1 %7 to i8
  store i8 %86, ptr %26, align 1, !tbaa !9
  store i64 %8, ptr %27, align 8, !tbaa !11
  store ptr %9, ptr %28, align 8, !tbaa !5
  store ptr %10, ptr %29, align 8, !tbaa !5
  store ptr %11, ptr %30, align 8, !tbaa !5
  store i64 %12, ptr %31, align 8, !tbaa !11
  store ptr %13, ptr %32, align 8, !tbaa !5
  store ptr %14, ptr %33, align 8, !tbaa !5
  %87 = zext i1 %15 to i8
  store i8 %87, ptr %34, align 1, !tbaa !9
  store ptr %16, ptr %35, align 8, !tbaa !5
  store ptr %17, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 368, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 368, ptr %43) #6
  call void @llvm.lifetime.start.p0(i64 208, ptr %44) #6
  call void @llvm.lifetime.start.p0(i64 144, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 280, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 280, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 280, ptr %48) #6
  call void @llvm.lifetime.start.p0(i64 200, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %50) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %51) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %52) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %54) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 368, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #6
  call void @llvm.lifetime.start.p0(i64 80, ptr %81) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #6
  call void @llvm.lifetime.start.p0(i64 80, ptr %83) #6
  %88 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %88, ptr noundef %37)
  call void @llvm.memset.p0.i64(ptr align 8 %39, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %40, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %41, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %42, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %43, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %44, i8 0, i64 208, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %45, i8 0, i64 144, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %46, i8 0, i64 280, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %47, i8 0, i64 280, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %48, i8 0, i64 280, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %49, i8 0, i64 200, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %50, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %51, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %54, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %79, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %81, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %83, i8 0, i64 80, i1 false)
  %89 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %39, i64 noundef 0, i64 noundef 1, ptr noundef %89, i1 noundef zeroext true)
  %90 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %40, i64 noundef 0, i64 noundef 1, ptr noundef %90, i1 noundef zeroext true)
  %91 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %41, i64 noundef 0, i64 noundef 2, ptr noundef %91, i1 noundef zeroext true)
  %92 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %42, ptr noundef %92, i1 noundef zeroext true)
  %93 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %43, ptr noundef %93, i1 noundef zeroext true)
  %94 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl27_xquadraticconstraints_initEPvPNS_8ae_stateEb(ptr noundef %44, ptr noundef %94, i1 noundef zeroext true)
  %95 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl23_xconicconstraints_initEPvPNS_8ae_stateEb(ptr noundef %45, ptr noundef %95, i1 noundef zeroext true)
  %96 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef %46, ptr noundef %96, i1 noundef zeroext true)
  %97 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef %47, ptr noundef %97, i1 noundef zeroext true)
  %98 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef %48, ptr noundef %98, i1 noundef zeroext true)
  %99 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl28_dynamiccrsqconstraints_initEPvPNS_8ae_stateEb(ptr noundef %49, ptr noundef %99, i1 noundef zeroext true)
  %100 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %50, i64 noundef 0, i64 noundef 3, ptr noundef %100, i1 noundef zeroext true)
  %101 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %51, i64 noundef 0, i64 noundef 3, ptr noundef %101, i1 noundef zeroext true)
  %102 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %52, i64 noundef 0, i64 noundef 3, ptr noundef %102, i1 noundef zeroext true)
  %103 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %53, i64 noundef 0, i64 noundef 3, ptr noundef %103, i1 noundef zeroext true)
  %104 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %54, i64 noundef 0, i64 noundef 3, ptr noundef %104, i1 noundef zeroext true)
  %105 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %79, ptr noundef %105, i1 noundef zeroext true)
  %106 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef %81, ptr noundef %80, ptr noundef %106, i1 noundef zeroext true)
  %107 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef %83, ptr noundef %82, ptr noundef %107, i1 noundef zeroext true)
  %108 = load i64, ptr %31, align 8, !tbaa !11
  %109 = icmp eq i64 %108, 0
  br i1 %109, label %114, label %110

110:                                              ; preds = %18
  %111 = load ptr, ptr %28, align 8, !tbaa !5
  %112 = load ptr, ptr %36, align 8, !tbaa !5
  %113 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %111, ptr noundef %112)
  br label %114

114:                                              ; preds = %110, %18
  %115 = phi i1 [ true, %18 ], [ %113, %110 ]
  %116 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %115, ptr noundef @.str.820, ptr noundef %116)
  %117 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %123

119:                                              ; preds = %114
  %120 = load ptr, ptr %24, align 8, !tbaa !5
  %121 = load ptr, ptr %36, align 8, !tbaa !5
  %122 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %120, ptr noundef %121)
  br label %123

123:                                              ; preds = %119, %114
  %124 = phi i1 [ true, %114 ], [ %122, %119 ]
  %125 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %124, ptr noundef @.str.821, ptr noundef %125)
  %126 = load ptr, ptr %32, align 8, !tbaa !5
  %127 = load ptr, ptr %36, align 8, !tbaa !5
  %128 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %126, ptr noundef %127)
  store i64 %128, ptr %61, align 8, !tbaa !11
  %129 = load ptr, ptr %33, align 8, !tbaa !5
  %130 = load ptr, ptr %36, align 8, !tbaa !5
  %131 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %129, ptr noundef %130)
  store i64 %131, ptr %62, align 8, !tbaa !11
  %132 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %133 = trunc i8 %132 to i1
  br i1 %133, label %141, label %134

134:                                              ; preds = %123
  %135 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.822)
  br i1 %135, label %136, label %139

136:                                              ; preds = %134
  %137 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %138 = trunc i8 %137 to i1
  br i1 %138, label %139, label %141

139:                                              ; preds = %136, %134
  %140 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.823)
  br label %141

141:                                              ; preds = %139, %136, %123
  %142 = phi i1 [ true, %136 ], [ true, %123 ], [ %140, %139 ]
  %143 = zext i1 %142 to i8
  store i8 %143, ptr %34, align 1, !tbaa !9
  %144 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %145 = trunc i8 %144 to i1
  br i1 %145, label %146, label %174

146:                                              ; preds = %141
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.612)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  %147 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %148 = trunc i8 %147 to i1
  br i1 %148, label %149, label %150

149:                                              ; preds = %146
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.824)
  br label %151

150:                                              ; preds = %146
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.825)
  br label %151

151:                                              ; preds = %150, %149
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.826)
  %152 = load i64, ptr %27, align 8, !tbaa !11
  %153 = trunc i64 %152 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.827, i32 noundef %153)
  %154 = load i64, ptr %31, align 8, !tbaa !11
  %155 = trunc i64 %154 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.828, i32 noundef %155)
  %156 = load i64, ptr %31, align 8, !tbaa !11
  %157 = icmp ne i64 %156, 0
  br i1 %157, label %158, label %169

158:                                              ; preds = %151
  %159 = load ptr, ptr %28, align 8, !tbaa !5
  %160 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %159, i32 0, i32 2
  %161 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %160, i32 0, i32 4
  %162 = load ptr, ptr %161, align 8, !tbaa !15
  %163 = load ptr, ptr %28, align 8, !tbaa !5
  %164 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %163, i32 0, i32 6
  %165 = load i64, ptr %164, align 8, !tbaa !16
  %166 = getelementptr inbounds i64, ptr %162, i64 %165
  %167 = load i64, ptr %166, align 8, !tbaa !11
  %168 = trunc i64 %167 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.829, i32 noundef %168)
  br label %169

169:                                              ; preds = %158, %151
  %170 = load i64, ptr %61, align 8, !tbaa !11
  %171 = trunc i64 %170 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.830, i32 noundef %171)
  %172 = load i64, ptr %62, align 8, !tbaa !11
  %173 = trunc i64 %172 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.831, i32 noundef %173)
  br label %174

174:                                              ; preds = %169, %141
  %175 = load i64, ptr %31, align 8, !tbaa !11
  %176 = load i64, ptr %61, align 8, !tbaa !11
  %177 = add nsw i64 %175, %176
  %178 = load i64, ptr %62, align 8, !tbaa !11
  %179 = add nsw i64 %177, %178
  %180 = icmp eq i64 %179, 0
  br i1 %180, label %181, label %204

181:                                              ; preds = %174
  %182 = load ptr, ptr %19, align 8, !tbaa !5
  %183 = load ptr, ptr %20, align 8, !tbaa !5
  %184 = load ptr, ptr %21, align 8, !tbaa !5
  %185 = load ptr, ptr %22, align 8, !tbaa !5
  %186 = load ptr, ptr %23, align 8, !tbaa !5
  %187 = load ptr, ptr %24, align 8, !tbaa !5
  %188 = load i8, ptr %25, align 1, !tbaa !9, !range !13, !noundef !14
  %189 = trunc i8 %188 to i1
  %190 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %191 = trunc i8 %190 to i1
  %192 = load i64, ptr %27, align 8, !tbaa !11
  %193 = load ptr, ptr %28, align 8, !tbaa !5
  %194 = load ptr, ptr %29, align 8, !tbaa !5
  %195 = load ptr, ptr %30, align 8, !tbaa !5
  %196 = load i64, ptr %31, align 8, !tbaa !11
  %197 = load ptr, ptr %32, align 8, !tbaa !5
  %198 = load ptr, ptr %33, align 8, !tbaa !5
  %199 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %200 = trunc i8 %199 to i1
  %201 = load ptr, ptr %35, align 8, !tbaa !5
  %202 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl21presolvenonescaleuserEPKNS_9ae_vectorES2_S2_S2_S2_PKNS_12sparsematrixEbblS5_S2_S2_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEbPNS_12presolveinfoEPNS_8ae_stateE(ptr noundef %182, ptr noundef %183, ptr noundef %184, ptr noundef %185, ptr noundef %186, ptr noundef %187, i1 noundef zeroext %189, i1 noundef zeroext %191, i64 noundef %192, ptr noundef %193, ptr noundef %194, ptr noundef %195, i64 noundef %196, ptr noundef %197, ptr noundef %198, i1 noundef zeroext %200, ptr noundef %201, ptr noundef %202)
  %203 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %203)
  store i32 1, ptr %84, align 4
  br label %1629

204:                                              ; preds = %174
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %205

205:                                              ; preds = %253, %204
  %206 = load i64, ptr %55, align 8, !tbaa !11
  %207 = load i64, ptr %27, align 8, !tbaa !11
  %208 = sub nsw i64 %207, 1
  %209 = icmp sle i64 %206, %208
  br i1 %209, label %210, label %256

210:                                              ; preds = %205
  %211 = load ptr, ptr %22, align 8, !tbaa !5
  %212 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %211, i32 0, i32 4
  %213 = load ptr, ptr %212, align 8, !tbaa !15
  %214 = load i64, ptr %55, align 8, !tbaa !11
  %215 = getelementptr inbounds double, ptr %213, i64 %214
  %216 = load double, ptr %215, align 8, !tbaa !20
  %217 = load ptr, ptr %36, align 8, !tbaa !5
  %218 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %216, ptr noundef %217)
  br i1 %218, label %219, label %252

219:                                              ; preds = %210
  %220 = load ptr, ptr %23, align 8, !tbaa !5
  %221 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %220, i32 0, i32 4
  %222 = load ptr, ptr %221, align 8, !tbaa !15
  %223 = load i64, ptr %55, align 8, !tbaa !11
  %224 = getelementptr inbounds double, ptr %222, i64 %223
  %225 = load double, ptr %224, align 8, !tbaa !20
  %226 = load ptr, ptr %36, align 8, !tbaa !5
  %227 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %225, ptr noundef %226)
  br i1 %227, label %228, label %252

228:                                              ; preds = %219
  %229 = load ptr, ptr %22, align 8, !tbaa !5
  %230 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %229, i32 0, i32 4
  %231 = load ptr, ptr %230, align 8, !tbaa !15
  %232 = load i64, ptr %55, align 8, !tbaa !11
  %233 = getelementptr inbounds double, ptr %231, i64 %232
  %234 = load double, ptr %233, align 8, !tbaa !20
  %235 = load ptr, ptr %23, align 8, !tbaa !5
  %236 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %235, i32 0, i32 4
  %237 = load ptr, ptr %236, align 8, !tbaa !15
  %238 = load i64, ptr %55, align 8, !tbaa !11
  %239 = getelementptr inbounds double, ptr %237, i64 %238
  %240 = load double, ptr %239, align 8, !tbaa !20
  %241 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %234, double noundef %240)
  br i1 %241, label %242, label %252

242:                                              ; preds = %228
  %243 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %244 = trunc i8 %243 to i1
  br i1 %244, label %245, label %248

245:                                              ; preds = %242
  %246 = load i64, ptr %55, align 8, !tbaa !11
  %247 = trunc i64 %246 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.814, i32 noundef %247)
  br label %248

248:                                              ; preds = %245, %242
  %249 = load ptr, ptr %35, align 8, !tbaa !5
  %250 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %249, i32 0, i32 16
  store i64 -3, ptr %250, align 8, !tbaa !22
  %251 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %251)
  store i32 1, ptr %84, align 4
  br label %1629

252:                                              ; preds = %228, %219, %210
  br label %253

253:                                              ; preds = %252
  %254 = load i64, ptr %55, align 8, !tbaa !11
  %255 = add nsw i64 %254, 1
  store i64 %255, ptr %55, align 8, !tbaa !11
  br label %205, !llvm.loop !33

256:                                              ; preds = %205
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %257

257:                                              ; preds = %305, %256
  %258 = load i64, ptr %55, align 8, !tbaa !11
  %259 = load i64, ptr %31, align 8, !tbaa !11
  %260 = sub nsw i64 %259, 1
  %261 = icmp sle i64 %258, %260
  br i1 %261, label %262, label %308

262:                                              ; preds = %257
  %263 = load ptr, ptr %29, align 8, !tbaa !5
  %264 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %263, i32 0, i32 4
  %265 = load ptr, ptr %264, align 8, !tbaa !15
  %266 = load i64, ptr %55, align 8, !tbaa !11
  %267 = getelementptr inbounds double, ptr %265, i64 %266
  %268 = load double, ptr %267, align 8, !tbaa !20
  %269 = load ptr, ptr %36, align 8, !tbaa !5
  %270 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %268, ptr noundef %269)
  br i1 %270, label %271, label %304

271:                                              ; preds = %262
  %272 = load ptr, ptr %30, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %272, i32 0, i32 4
  %274 = load ptr, ptr %273, align 8, !tbaa !15
  %275 = load i64, ptr %55, align 8, !tbaa !11
  %276 = getelementptr inbounds double, ptr %274, i64 %275
  %277 = load double, ptr %276, align 8, !tbaa !20
  %278 = load ptr, ptr %36, align 8, !tbaa !5
  %279 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %277, ptr noundef %278)
  br i1 %279, label %280, label %304

280:                                              ; preds = %271
  %281 = load ptr, ptr %29, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %281, i32 0, i32 4
  %283 = load ptr, ptr %282, align 8, !tbaa !15
  %284 = load i64, ptr %55, align 8, !tbaa !11
  %285 = getelementptr inbounds double, ptr %283, i64 %284
  %286 = load double, ptr %285, align 8, !tbaa !20
  %287 = load ptr, ptr %30, align 8, !tbaa !5
  %288 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %287, i32 0, i32 4
  %289 = load ptr, ptr %288, align 8, !tbaa !15
  %290 = load i64, ptr %55, align 8, !tbaa !11
  %291 = getelementptr inbounds double, ptr %289, i64 %290
  %292 = load double, ptr %291, align 8, !tbaa !20
  %293 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %286, double noundef %292)
  br i1 %293, label %294, label %304

294:                                              ; preds = %280
  %295 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %296 = trunc i8 %295 to i1
  br i1 %296, label %297, label %300

297:                                              ; preds = %294
  %298 = load i64, ptr %55, align 8, !tbaa !11
  %299 = trunc i64 %298 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.815, i32 noundef %299)
  br label %300

300:                                              ; preds = %297, %294
  %301 = load ptr, ptr %35, align 8, !tbaa !5
  %302 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %301, i32 0, i32 16
  store i64 -3, ptr %302, align 8, !tbaa !22
  %303 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %303)
  store i32 1, ptr %84, align 4
  br label %1629

304:                                              ; preds = %280, %271, %262
  br label %305

305:                                              ; preds = %304
  %306 = load i64, ptr %55, align 8, !tbaa !11
  %307 = add nsw i64 %306, 1
  store i64 %307, ptr %55, align 8, !tbaa !11
  br label %257, !llvm.loop !35

308:                                              ; preds = %257
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %309

309:                                              ; preds = %349, %308
  %310 = load i64, ptr %55, align 8, !tbaa !11
  %311 = load i64, ptr %61, align 8, !tbaa !11
  %312 = sub nsw i64 %311, 1
  %313 = icmp sle i64 %310, %312
  br i1 %313, label %314, label %352

314:                                              ; preds = %309
  %315 = load ptr, ptr %32, align 8, !tbaa !5
  %316 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraints", ptr %315, i32 0, i32 1
  %317 = load i64, ptr %55, align 8, !tbaa !11
  %318 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %316, i64 noundef %317, ptr noundef %83, ptr noundef %318)
  %319 = load ptr, ptr %82, align 8, !tbaa !5
  %320 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraint", ptr %319, i32 0, i32 4
  %321 = load double, ptr %320, align 8, !tbaa !36
  %322 = load ptr, ptr %36, align 8, !tbaa !5
  %323 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %321, ptr noundef %322)
  br i1 %323, label %324, label %348

324:                                              ; preds = %314
  %325 = load ptr, ptr %82, align 8, !tbaa !5
  %326 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraint", ptr %325, i32 0, i32 5
  %327 = load double, ptr %326, align 8, !tbaa !38
  %328 = load ptr, ptr %36, align 8, !tbaa !5
  %329 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %327, ptr noundef %328)
  br i1 %329, label %330, label %348

330:                                              ; preds = %324
  %331 = load ptr, ptr %82, align 8, !tbaa !5
  %332 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraint", ptr %331, i32 0, i32 4
  %333 = load double, ptr %332, align 8, !tbaa !36
  %334 = load ptr, ptr %82, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraint", ptr %334, i32 0, i32 5
  %336 = load double, ptr %335, align 8, !tbaa !38
  %337 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %333, double noundef %336)
  br i1 %337, label %338, label %348

338:                                              ; preds = %330
  %339 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %340 = trunc i8 %339 to i1
  br i1 %340, label %341, label %344

341:                                              ; preds = %338
  %342 = load i64, ptr %55, align 8, !tbaa !11
  %343 = trunc i64 %342 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.832, i32 noundef %343)
  br label %344

344:                                              ; preds = %341, %338
  %345 = load ptr, ptr %35, align 8, !tbaa !5
  %346 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %345, i32 0, i32 16
  store i64 -3, ptr %346, align 8, !tbaa !22
  %347 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %347)
  store i32 1, ptr %84, align 4
  br label %1629

348:                                              ; preds = %330, %324, %314
  br label %349

349:                                              ; preds = %348
  %350 = load i64, ptr %55, align 8, !tbaa !11
  %351 = add nsw i64 %350, 1
  store i64 %351, ptr %55, align 8, !tbaa !11
  br label %309, !llvm.loop !39

352:                                              ; preds = %309
  %353 = load i64, ptr %27, align 8, !tbaa !11
  %354 = load ptr, ptr %21, align 8, !tbaa !5
  %355 = load ptr, ptr %35, align 8, !tbaa !5
  %356 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %355, i32 0, i32 8
  %357 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %353, ptr noundef %354, ptr noundef %356, ptr noundef %357)
  %358 = load i64, ptr %27, align 8, !tbaa !11
  %359 = load ptr, ptr %22, align 8, !tbaa !5
  %360 = load ptr, ptr %35, align 8, !tbaa !5
  %361 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %360, i32 0, i32 9
  %362 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %358, ptr noundef %359, ptr noundef %361, ptr noundef %362)
  %363 = load i64, ptr %27, align 8, !tbaa !11
  %364 = load ptr, ptr %23, align 8, !tbaa !5
  %365 = load ptr, ptr %35, align 8, !tbaa !5
  %366 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %365, i32 0, i32 10
  %367 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %363, ptr noundef %364, ptr noundef %366, ptr noundef %367)
  %368 = load i64, ptr %31, align 8, !tbaa !11
  %369 = icmp sgt i64 %368, 0
  br i1 %369, label %370, label %375

370:                                              ; preds = %352
  %371 = load ptr, ptr %28, align 8, !tbaa !5
  %372 = load ptr, ptr %35, align 8, !tbaa !5
  %373 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %372, i32 0, i32 13
  %374 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %371, ptr noundef %373, ptr noundef %374)
  br label %375

375:                                              ; preds = %370, %352
  %376 = load ptr, ptr %32, align 8, !tbaa !5
  %377 = load ptr, ptr %35, align 8, !tbaa !5
  %378 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %377, i32 0, i32 14
  %379 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %376, ptr noundef %378, ptr noundef %379)
  %380 = load ptr, ptr %33, align 8, !tbaa !5
  %381 = load ptr, ptr %35, align 8, !tbaa !5
  %382 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %381, i32 0, i32 15
  %383 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %380, ptr noundef %382, ptr noundef %383)
  %384 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %385 = trunc i8 %384 to i1
  %386 = load ptr, ptr %35, align 8, !tbaa !5
  %387 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %386, i32 0, i32 11
  %388 = zext i1 %385 to i8
  store i8 %388, ptr %387, align 8, !tbaa !40
  %389 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %390 = trunc i8 %389 to i1
  br i1 %390, label %391, label %398

391:                                              ; preds = %375
  %392 = load ptr, ptr %24, align 8, !tbaa !5
  %393 = load i8, ptr %25, align 1, !tbaa !9, !range !13, !noundef !14
  %394 = trunc i8 %393 to i1
  %395 = load ptr, ptr %35, align 8, !tbaa !5
  %396 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %395, i32 0, i32 12
  %397 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL24lpqppresolve_copyexpandhEPKNS_12sparsematrixEbPS0_PNS_8ae_stateE(ptr noundef %392, i1 noundef zeroext %394, ptr noundef %396, ptr noundef %397)
  br label %398

398:                                              ; preds = %391, %375
  store i64 0, ptr %64, align 8, !tbaa !11
  store i64 0, ptr %65, align 8, !tbaa !11
  store i64 0, ptr %66, align 8, !tbaa !11
  store i64 0, ptr %67, align 8, !tbaa !11
  store i64 0, ptr %68, align 8, !tbaa !11
  store i64 0, ptr %69, align 8, !tbaa !11
  store i64 0, ptr %70, align 8, !tbaa !11
  store i64 0, ptr %71, align 8, !tbaa !11
  store i64 0, ptr %72, align 8, !tbaa !11
  store i64 0, ptr %73, align 8, !tbaa !11
  store i64 0, ptr %74, align 8, !tbaa !11
  store i64 0, ptr %75, align 8, !tbaa !11
  store i64 0, ptr %76, align 8, !tbaa !11
  %399 = load i64, ptr %27, align 8, !tbaa !11
  %400 = add nsw i64 1000, %399
  %401 = load i64, ptr %31, align 8, !tbaa !11
  %402 = add nsw i64 %400, %401
  %403 = sitofp i64 %402 to double
  %404 = load ptr, ptr %36, align 8, !tbaa !5
  %405 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 5.000000e-16, double noundef 7.500000e-01, ptr noundef %404)
  %406 = call double @llvm.fmuladd.f64(double %403, double 5.000000e-16, double %405)
  store double %406, ptr %77, align 8, !tbaa !20
  %407 = load i64, ptr %27, align 8, !tbaa !11
  %408 = load i64, ptr %31, align 8, !tbaa !11
  %409 = load ptr, ptr %32, align 8, !tbaa !5
  %410 = load ptr, ptr %36, align 8, !tbaa !5
  %411 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %409, ptr noundef %410)
  %412 = load ptr, ptr %33, align 8, !tbaa !5
  %413 = load ptr, ptr %36, align 8, !tbaa !5
  %414 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %412, ptr noundef %413)
  %415 = load ptr, ptr %35, align 8, !tbaa !5
  %416 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %415, i32 0, i32 35
  %417 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL31lpqppresolve_presolverstackinitEllllPNS_14presolverstackEPNS_8ae_stateE(i64 noundef %407, i64 noundef %408, i64 noundef %411, i64 noundef %414, ptr noundef %416, ptr noundef %417)
  %418 = load ptr, ptr %35, align 8, !tbaa !5
  %419 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %418, i32 0, i32 16
  store i64 0, ptr %419, align 8, !tbaa !22
  %420 = load i64, ptr %27, align 8, !tbaa !11
  %421 = load ptr, ptr %21, align 8, !tbaa !5
  %422 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %420, ptr noundef %421, ptr noundef %50, ptr noundef %422)
  %423 = load i64, ptr %27, align 8, !tbaa !11
  %424 = load ptr, ptr %22, align 8, !tbaa !5
  %425 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %423, ptr noundef %424, ptr noundef %51, ptr noundef %425)
  %426 = load i64, ptr %27, align 8, !tbaa !11
  %427 = load ptr, ptr %23, align 8, !tbaa !5
  %428 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %426, ptr noundef %427, ptr noundef %52, ptr noundef %428)
  %429 = load i64, ptr %31, align 8, !tbaa !11
  %430 = icmp sgt i64 %429, 0
  br i1 %430, label %431, label %440

431:                                              ; preds = %398
  %432 = load ptr, ptr %28, align 8, !tbaa !5
  %433 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %432, ptr noundef %42, ptr noundef %433)
  %434 = load i64, ptr %31, align 8, !tbaa !11
  %435 = load ptr, ptr %29, align 8, !tbaa !5
  %436 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %434, ptr noundef %435, ptr noundef %53, ptr noundef %436)
  %437 = load i64, ptr %31, align 8, !tbaa !11
  %438 = load ptr, ptr %30, align 8, !tbaa !5
  %439 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %437, ptr noundef %438, ptr noundef %54, ptr noundef %439)
  br label %440

440:                                              ; preds = %431, %398
  %441 = load ptr, ptr %32, align 8, !tbaa !5
  %442 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %441, ptr noundef %44, ptr noundef %442)
  %443 = load ptr, ptr %33, align 8, !tbaa !5
  %444 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %443, ptr noundef %45, ptr noundef %444)
  %445 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %446 = trunc i8 %445 to i1
  br i1 %446, label %447, label %451

447:                                              ; preds = %440
  %448 = load ptr, ptr %35, align 8, !tbaa !5
  %449 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %448, i32 0, i32 12
  %450 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %449, ptr noundef %79, ptr noundef %450)
  br label %451

451:                                              ; preds = %447, %440
  %452 = load ptr, ptr %19, align 8, !tbaa !5
  %453 = load ptr, ptr %20, align 8, !tbaa !5
  %454 = load i64, ptr %27, align 8, !tbaa !11
  %455 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %456 = trunc i8 %455 to i1
  %457 = load i64, ptr %31, align 8, !tbaa !11
  %458 = load ptr, ptr %35, align 8, !tbaa !5
  %459 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %458, i32 0, i32 35
  %460 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL46lpqppresolve_scaleshiftobjectiveandconstraintsEPKNS_9ae_vectorES2_lPS0_S3_S3_PNS_12sparsematrixEbS5_S3_S3_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEPNS_14presolverstackEPNS_8ae_stateE(ptr noundef %452, ptr noundef %453, i64 noundef %454, ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %79, i1 noundef zeroext %456, ptr noundef %42, ptr noundef %53, ptr noundef %54, i64 noundef %457, ptr noundef %44, ptr noundef %45, ptr noundef %459, ptr noundef %460)
  %461 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %466

463:                                              ; preds = %451
  %464 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef %79, ptr noundef %46, ptr noundef %464)
  %465 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL39lpqppresolve_dyncrsdropoffdiagonalzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef %46, ptr noundef %465)
  br label %466

466:                                              ; preds = %463, %451
  %467 = load i64, ptr %31, align 8, !tbaa !11
  %468 = icmp sgt i64 %467, 0
  br i1 %468, label %469, label %475

469:                                              ; preds = %466
  %470 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl25sparsecopytransposecrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %42, ptr noundef %43, ptr noundef %470)
  %471 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef %42, ptr noundef %47, ptr noundef %471)
  %472 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef %43, ptr noundef %48, ptr noundef %472)
  %473 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsdropzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef %47, ptr noundef %473)
  %474 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsdropzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef %48, ptr noundef %474)
  br label %480

475:                                              ; preds = %466
  %476 = load i64, ptr %27, align 8, !tbaa !11
  %477 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsinitemptyEPNS_10dynamiccrsEllPNS_8ae_stateE(ptr noundef %47, i64 noundef 0, i64 noundef %476, ptr noundef %477)
  %478 = load i64, ptr %27, align 8, !tbaa !11
  %479 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsinitemptyEPNS_10dynamiccrsEllPNS_8ae_stateE(ptr noundef %48, i64 noundef %478, i64 noundef 0, ptr noundef %479)
  br label %480

480:                                              ; preds = %475, %469
  %481 = load i64, ptr %27, align 8, !tbaa !11
  %482 = load ptr, ptr %35, align 8, !tbaa !5
  %483 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %482, i32 0, i32 17
  %484 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %481, i1 noundef zeroext false, ptr noundef %483, ptr noundef %484)
  %485 = load i64, ptr %27, align 8, !tbaa !11
  %486 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %485, i1 noundef zeroext false, ptr noundef %39, ptr noundef %486)
  %487 = load i64, ptr %31, align 8, !tbaa !11
  %488 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %487, i1 noundef zeroext false, ptr noundef %40, ptr noundef %488)
  %489 = load i64, ptr %27, align 8, !tbaa !11
  %490 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %489, i64 noundef 0, ptr noundef %41, ptr noundef %490)
  %491 = load ptr, ptr %35, align 8, !tbaa !5
  %492 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %491, i32 0, i32 43
  %493 = load i64, ptr %27, align 8, !tbaa !11
  %494 = load i64, ptr %31, align 8, !tbaa !11
  %495 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL32lpqppresolve_presolvebuffersinitEPNS_15presolvebuffersEllPNS_8ae_stateE(ptr noundef %492, i64 noundef %493, i64 noundef %494, ptr noundef %495)
  %496 = load i64, ptr %62, align 8, !tbaa !11
  %497 = icmp eq i64 %496, 0
  %498 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %497, ptr noundef @.str.833, ptr noundef %498)
  %499 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lpqppresolve_dynqcinitfromxqcEPNS_21xquadraticconstraintsEPNS_22dynamiccrsqconstraintsEPNS_8ae_stateE(ptr noundef %44, ptr noundef %49, ptr noundef %499)
  %500 = load i64, ptr %61, align 8, !tbaa !11
  %501 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraints", ptr %49, i32 0, i32 1
  %502 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %500, i1 noundef zeroext false, ptr noundef %501, ptr noundef %502)
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %503

503:                                              ; preds = %546, %480
  %504 = load i64, ptr %55, align 8, !tbaa !11
  %505 = load i64, ptr %61, align 8, !tbaa !11
  %506 = sub nsw i64 %505, 1
  %507 = icmp sle i64 %504, %506
  br i1 %507, label %508, label %549

508:                                              ; preds = %503
  %509 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraints", ptr %49, i32 0, i32 0
  %510 = load i64, ptr %55, align 8, !tbaa !11
  %511 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %509, i64 noundef %510, ptr noundef %81, ptr noundef %511)
  store i64 0, ptr %57, align 8, !tbaa !11
  br label %512

512:                                              ; preds = %542, %508
  %513 = load i64, ptr %57, align 8, !tbaa !11
  %514 = load ptr, ptr %80, align 8, !tbaa !5
  %515 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraint", ptr %514, i32 0, i32 0
  %516 = load i64, ptr %515, align 8, !tbaa !41
  %517 = sub nsw i64 %516, 1
  %518 = icmp sle i64 %513, %517
  br i1 %518, label %519, label %545

519:                                              ; preds = %512
  %520 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %521 = load ptr, ptr %520, align 8, !tbaa !15
  %522 = load ptr, ptr %80, align 8, !tbaa !5
  %523 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraint", ptr %522, i32 0, i32 1
  %524 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %523, i32 0, i32 4
  %525 = load ptr, ptr %524, align 8, !tbaa !15
  %526 = load i64, ptr %57, align 8, !tbaa !11
  %527 = getelementptr inbounds i64, ptr %525, i64 %526
  %528 = load i64, ptr %527, align 8, !tbaa !11
  %529 = getelementptr inbounds i64, ptr %521, i64 %528
  %530 = load i64, ptr %529, align 8, !tbaa !11
  %531 = add nsw i64 %530, 1
  %532 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %533 = load ptr, ptr %532, align 8, !tbaa !15
  %534 = load ptr, ptr %80, align 8, !tbaa !5
  %535 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraint", ptr %534, i32 0, i32 1
  %536 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %535, i32 0, i32 4
  %537 = load ptr, ptr %536, align 8, !tbaa !15
  %538 = load i64, ptr %57, align 8, !tbaa !11
  %539 = getelementptr inbounds i64, ptr %537, i64 %538
  %540 = load i64, ptr %539, align 8, !tbaa !11
  %541 = getelementptr inbounds i64, ptr %533, i64 %540
  store i64 %531, ptr %541, align 8, !tbaa !11
  br label %542

542:                                              ; preds = %519
  %543 = load i64, ptr %57, align 8, !tbaa !11
  %544 = add nsw i64 %543, 1
  store i64 %544, ptr %57, align 8, !tbaa !11
  br label %512, !llvm.loop !42

545:                                              ; preds = %512
  br label %546

546:                                              ; preds = %545
  %547 = load i64, ptr %55, align 8, !tbaa !11
  %548 = add nsw i64 %547, 1
  store i64 %548, ptr %55, align 8, !tbaa !11
  br label %503, !llvm.loop !43

549:                                              ; preds = %503
  store i64 0, ptr %78, align 8, !tbaa !11
  store i8 1, ptr %38, align 1, !tbaa !9
  br label %550

550:                                              ; preds = %659, %549
  %551 = load i8, ptr %38, align 1, !tbaa !9, !range !13, !noundef !14
  %552 = trunc i8 %551 to i1
  br i1 %552, label %553, label %662

553:                                              ; preds = %550
  store i8 0, ptr %38, align 1, !tbaa !9
  %554 = load ptr, ptr %35, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %554, i32 0, i32 17
  %556 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %557 = trunc i8 %556 to i1
  %558 = load i64, ptr %27, align 8, !tbaa !11
  %559 = load i64, ptr %31, align 8, !tbaa !11
  %560 = load double, ptr %77, align 8, !tbaa !20
  %561 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %562 = trunc i8 %561 to i1
  %563 = load ptr, ptr %35, align 8, !tbaa !5
  %564 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %563, i32 0, i32 43
  %565 = load ptr, ptr %35, align 8, !tbaa !5
  %566 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %565, i32 0, i32 35
  %567 = load ptr, ptr %35, align 8, !tbaa !5
  %568 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %567, i32 0, i32 16
  %569 = load ptr, ptr %36, align 8, !tbaa !5
  %570 = call noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_dropemptycolEPNS_9ae_vectorES1_S1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPKS0_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %39, ptr noundef %555, ptr noundef %46, i1 noundef zeroext %557, i64 noundef %558, ptr noundef %47, ptr noundef %48, ptr noundef %53, ptr noundef %54, i64 noundef %559, ptr noundef %41, double noundef %560, i1 noundef zeroext %562, ptr noundef %564, ptr noundef %566, ptr noundef %568, ptr noundef %38, ptr noundef %64, ptr noundef %569)
  br i1 %570, label %573, label %571

571:                                              ; preds = %553
  %572 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %572)
  store i32 1, ptr %84, align 4
  br label %1629

573:                                              ; preds = %553
  %574 = load i64, ptr %27, align 8, !tbaa !11
  %575 = load i64, ptr %31, align 8, !tbaa !11
  %576 = load double, ptr %77, align 8, !tbaa !20
  %577 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %578 = trunc i8 %577 to i1
  %579 = load ptr, ptr %35, align 8, !tbaa !5
  %580 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %579, i32 0, i32 43
  %581 = load ptr, ptr %35, align 8, !tbaa !5
  %582 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %581, i32 0, i32 35
  %583 = load ptr, ptr %35, align 8, !tbaa !5
  %584 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %583, i32 0, i32 16
  %585 = load ptr, ptr %36, align 8, !tbaa !5
  %586 = call noundef zeroext i1 @_ZN11alglib_implL38lpqppresolve_dropclearlynonbindingrowsElPNS_9ae_vectorEPNS_10dynamiccrsES3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_SA_PNS_8ae_stateE(i64 noundef %574, ptr noundef %40, ptr noundef %47, ptr noundef %48, ptr noundef %53, ptr noundef %54, i64 noundef %575, ptr noundef %49, ptr noundef %41, double noundef %576, i1 noundef zeroext %578, ptr noundef %580, ptr noundef %582, ptr noundef %584, ptr noundef %38, ptr noundef %65, ptr noundef %66, ptr noundef %68, ptr noundef %69, ptr noundef %585)
  br i1 %586, label %589, label %587

587:                                              ; preds = %573
  %588 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %588)
  store i32 1, ptr %84, align 4
  br label %1629

589:                                              ; preds = %573
  %590 = load i64, ptr %27, align 8, !tbaa !11
  %591 = load i64, ptr %31, align 8, !tbaa !11
  %592 = load double, ptr %77, align 8, !tbaa !20
  %593 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %594 = trunc i8 %593 to i1
  %595 = load ptr, ptr %35, align 8, !tbaa !5
  %596 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %595, i32 0, i32 43
  %597 = load ptr, ptr %35, align 8, !tbaa !5
  %598 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %597, i32 0, i32 35
  %599 = load ptr, ptr %35, align 8, !tbaa !5
  %600 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %599, i32 0, i32 16
  %601 = load ptr, ptr %36, align 8, !tbaa !5
  %602 = call noundef zeroext i1 @_ZN11alglib_implL29lpqppresolve_singletonrowtobcEPNS_9ae_vectorES1_S1_lPNS_10dynamiccrsES3_S1_S1_S1_ldbPNS_15presolvebuffersEPNS_14presolverstackEPlPbS8_PNS_8ae_stateE(ptr noundef %51, ptr noundef %52, ptr noundef %39, i64 noundef %590, ptr noundef %47, ptr noundef %48, ptr noundef %53, ptr noundef %54, ptr noundef %40, i64 noundef %591, double noundef %592, i1 noundef zeroext %594, ptr noundef %596, ptr noundef %598, ptr noundef %600, ptr noundef %38, ptr noundef %72, ptr noundef %601)
  br i1 %602, label %605, label %603

603:                                              ; preds = %589
  %604 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %604)
  store i32 1, ptr %84, align 4
  br label %1629

605:                                              ; preds = %589
  %606 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %607 = trunc i8 %606 to i1
  %608 = load i64, ptr %27, align 8, !tbaa !11
  %609 = load i64, ptr %31, align 8, !tbaa !11
  %610 = load double, ptr %77, align 8, !tbaa !20
  %611 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %612 = trunc i8 %611 to i1
  %613 = load ptr, ptr %35, align 8, !tbaa !5
  %614 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %613, i32 0, i32 43
  %615 = load ptr, ptr %35, align 8, !tbaa !5
  %616 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %615, i32 0, i32 35
  %617 = load ptr, ptr %35, align 8, !tbaa !5
  %618 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %617, i32 0, i32 16
  %619 = load ptr, ptr %36, align 8, !tbaa !5
  %620 = call noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_doubletonrowEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %39, ptr noundef %46, i1 noundef zeroext %607, i64 noundef %608, ptr noundef %47, ptr noundef %48, ptr noundef %53, ptr noundef %54, ptr noundef %40, i64 noundef %609, ptr noundef %49, ptr noundef %41, double noundef %610, i1 noundef zeroext %612, ptr noundef %614, ptr noundef %616, ptr noundef %618, ptr noundef %38, ptr noundef %73, ptr noundef %619)
  br i1 %620, label %623, label %621

621:                                              ; preds = %605
  %622 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %622)
  store i32 1, ptr %84, align 4
  br label %1629

623:                                              ; preds = %605
  %624 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %625 = trunc i8 %624 to i1
  %626 = load i64, ptr %27, align 8, !tbaa !11
  %627 = load i64, ptr %31, align 8, !tbaa !11
  %628 = load double, ptr %77, align 8, !tbaa !20
  %629 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %630 = trunc i8 %629 to i1
  %631 = load ptr, ptr %35, align 8, !tbaa !5
  %632 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %631, i32 0, i32 43
  %633 = load ptr, ptr %35, align 8, !tbaa !5
  %634 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %633, i32 0, i32 35
  %635 = load ptr, ptr %35, align 8, !tbaa !5
  %636 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %635, i32 0, i32 16
  %637 = load ptr, ptr %36, align 8, !tbaa !5
  %638 = call noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_fixvariablesEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %39, ptr noundef %46, i1 noundef zeroext %625, i64 noundef %626, ptr noundef %47, ptr noundef %48, ptr noundef %53, ptr noundef %54, i64 noundef %627, ptr noundef %49, ptr noundef %41, double noundef %628, i1 noundef zeroext %630, ptr noundef %632, ptr noundef %634, ptr noundef %636, ptr noundef %38, ptr noundef %71, ptr noundef %637)
  br i1 %638, label %641, label %639

639:                                              ; preds = %623
  %640 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %640)
  store i32 1, ptr %84, align 4
  br label %1629

641:                                              ; preds = %623
  %642 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %643 = trunc i8 %642 to i1
  %644 = load i64, ptr %27, align 8, !tbaa !11
  %645 = load i64, ptr %31, align 8, !tbaa !11
  %646 = load double, ptr %77, align 8, !tbaa !20
  %647 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %648 = trunc i8 %647 to i1
  %649 = load ptr, ptr %35, align 8, !tbaa !5
  %650 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %649, i32 0, i32 43
  %651 = load ptr, ptr %35, align 8, !tbaa !5
  %652 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %651, i32 0, i32 35
  %653 = load ptr, ptr %35, align 8, !tbaa !5
  %654 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %653, i32 0, i32 16
  %655 = load ptr, ptr %36, align 8, !tbaa !5
  %656 = call noundef zeroext i1 @_ZN11alglib_implL26lpqppresolve_singletoncolsEPNS_9ae_vectorEPKS0_S3_S1_PNS_10dynamiccrsEblS5_S5_S1_S1_S1_lS1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_PNS_8ae_stateE(ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %39, ptr noundef %46, i1 noundef zeroext %643, i64 noundef %644, ptr noundef %47, ptr noundef %48, ptr noundef %53, ptr noundef %54, ptr noundef %40, i64 noundef %645, ptr noundef %41, double noundef %646, i1 noundef zeroext %648, ptr noundef %650, ptr noundef %652, ptr noundef %654, ptr noundef %38, ptr noundef %74, ptr noundef %75, ptr noundef %76, ptr noundef %655)
  br i1 %656, label %659, label %657

657:                                              ; preds = %641
  %658 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %658)
  store i32 1, ptr %84, align 4
  br label %1629

659:                                              ; preds = %641
  %660 = load i64, ptr %78, align 8, !tbaa !11
  %661 = add nsw i64 %660, 1
  store i64 %661, ptr %78, align 8, !tbaa !11
  br label %550, !llvm.loop !44

662:                                              ; preds = %550
  %663 = load i64, ptr %31, align 8, !tbaa !11
  %664 = icmp sgt i64 %663, 0
  br i1 %664, label %665, label %720

665:                                              ; preds = %662
  store i64 0, ptr %59, align 8, !tbaa !11
  store i64 0, ptr %57, align 8, !tbaa !11
  br label %666

666:                                              ; preds = %687, %665
  %667 = load i64, ptr %57, align 8, !tbaa !11
  %668 = load i64, ptr %31, align 8, !tbaa !11
  %669 = sub nsw i64 %668, 1
  %670 = icmp sle i64 %667, %669
  br i1 %670, label %671, label %690

671:                                              ; preds = %666
  %672 = load i64, ptr %59, align 8, !tbaa !11
  %673 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %47, i32 0, i32 4
  %674 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %673, i32 0, i32 4
  %675 = load ptr, ptr %674, align 8, !tbaa !15
  %676 = load i64, ptr %57, align 8, !tbaa !11
  %677 = getelementptr inbounds i64, ptr %675, i64 %676
  %678 = load i64, ptr %677, align 8, !tbaa !11
  %679 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %47, i32 0, i32 3
  %680 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %679, i32 0, i32 4
  %681 = load ptr, ptr %680, align 8, !tbaa !15
  %682 = load i64, ptr %57, align 8, !tbaa !11
  %683 = getelementptr inbounds i64, ptr %681, i64 %682
  %684 = load i64, ptr %683, align 8, !tbaa !11
  %685 = sub nsw i64 %678, %684
  %686 = add nsw i64 %672, %685
  store i64 %686, ptr %59, align 8, !tbaa !11
  br label %687

687:                                              ; preds = %671
  %688 = load i64, ptr %57, align 8, !tbaa !11
  %689 = add nsw i64 %688, 1
  store i64 %689, ptr %57, align 8, !tbaa !11
  br label %666, !llvm.loop !45

690:                                              ; preds = %666
  store i64 0, ptr %60, align 8, !tbaa !11
  store i64 0, ptr %57, align 8, !tbaa !11
  br label %691

691:                                              ; preds = %712, %690
  %692 = load i64, ptr %57, align 8, !tbaa !11
  %693 = load i64, ptr %27, align 8, !tbaa !11
  %694 = sub nsw i64 %693, 1
  %695 = icmp sle i64 %692, %694
  br i1 %695, label %696, label %715

696:                                              ; preds = %691
  %697 = load i64, ptr %60, align 8, !tbaa !11
  %698 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %48, i32 0, i32 4
  %699 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %698, i32 0, i32 4
  %700 = load ptr, ptr %699, align 8, !tbaa !15
  %701 = load i64, ptr %57, align 8, !tbaa !11
  %702 = getelementptr inbounds i64, ptr %700, i64 %701
  %703 = load i64, ptr %702, align 8, !tbaa !11
  %704 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %48, i32 0, i32 3
  %705 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %704, i32 0, i32 4
  %706 = load ptr, ptr %705, align 8, !tbaa !15
  %707 = load i64, ptr %57, align 8, !tbaa !11
  %708 = getelementptr inbounds i64, ptr %706, i64 %707
  %709 = load i64, ptr %708, align 8, !tbaa !11
  %710 = sub nsw i64 %703, %709
  %711 = add nsw i64 %697, %710
  store i64 %711, ptr %60, align 8, !tbaa !11
  br label %712

712:                                              ; preds = %696
  %713 = load i64, ptr %57, align 8, !tbaa !11
  %714 = add nsw i64 %713, 1
  store i64 %714, ptr %57, align 8, !tbaa !11
  br label %691, !llvm.loop !46

715:                                              ; preds = %691
  %716 = load i64, ptr %59, align 8, !tbaa !11
  %717 = load i64, ptr %60, align 8, !tbaa !11
  %718 = icmp eq i64 %716, %717
  %719 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %718, ptr noundef @.str.834, ptr noundef %719)
  br label %720

720:                                              ; preds = %715, %662
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %721

721:                                              ; preds = %788, %720
  %722 = load i64, ptr %55, align 8, !tbaa !11
  %723 = load i64, ptr %61, align 8, !tbaa !11
  %724 = sub nsw i64 %723, 1
  %725 = icmp sle i64 %722, %724
  br i1 %725, label %726, label %791

726:                                              ; preds = %721
  %727 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraints", ptr %49, i32 0, i32 1
  %728 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %727, i32 0, i32 4
  %729 = load ptr, ptr %728, align 8, !tbaa !15
  %730 = load i64, ptr %55, align 8, !tbaa !11
  %731 = getelementptr inbounds i8, ptr %729, i64 %730
  %732 = load i8, ptr %731, align 1, !tbaa !9, !range !13, !noundef !14
  %733 = trunc i8 %732 to i1
  br i1 %733, label %734, label %735

734:                                              ; preds = %726
  br label %788

735:                                              ; preds = %726
  %736 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraints", ptr %49, i32 0, i32 0
  %737 = load i64, ptr %55, align 8, !tbaa !11
  %738 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %736, i64 noundef %737, ptr noundef %81, ptr noundef %738)
  store i64 0, ptr %57, align 8, !tbaa !11
  br label %739

739:                                              ; preds = %784, %735
  %740 = load i64, ptr %57, align 8, !tbaa !11
  %741 = load ptr, ptr %80, align 8, !tbaa !5
  %742 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraint", ptr %741, i32 0, i32 0
  %743 = load i64, ptr %742, align 8, !tbaa !41
  %744 = sub nsw i64 %743, 1
  %745 = icmp sle i64 %740, %744
  br i1 %745, label %746, label %787

746:                                              ; preds = %739
  %747 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %748 = load ptr, ptr %747, align 8, !tbaa !15
  %749 = load ptr, ptr %80, align 8, !tbaa !5
  %750 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraint", ptr %749, i32 0, i32 1
  %751 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %750, i32 0, i32 4
  %752 = load ptr, ptr %751, align 8, !tbaa !15
  %753 = load i64, ptr %57, align 8, !tbaa !11
  %754 = getelementptr inbounds i64, ptr %752, i64 %753
  %755 = load i64, ptr %754, align 8, !tbaa !11
  %756 = getelementptr inbounds i8, ptr %748, i64 %755
  %757 = load i8, ptr %756, align 1, !tbaa !9, !range !13, !noundef !14
  %758 = trunc i8 %757 to i1
  br i1 %758, label %759, label %761

759:                                              ; preds = %746
  %760 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.835, ptr noundef %760)
  br label %761

761:                                              ; preds = %759, %746
  %762 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %763 = load ptr, ptr %762, align 8, !tbaa !15
  %764 = load ptr, ptr %80, align 8, !tbaa !5
  %765 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraint", ptr %764, i32 0, i32 1
  %766 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %765, i32 0, i32 4
  %767 = load ptr, ptr %766, align 8, !tbaa !15
  %768 = load i64, ptr %57, align 8, !tbaa !11
  %769 = getelementptr inbounds i64, ptr %767, i64 %768
  %770 = load i64, ptr %769, align 8, !tbaa !11
  %771 = getelementptr inbounds i64, ptr %763, i64 %770
  %772 = load i64, ptr %771, align 8, !tbaa !11
  %773 = sub nsw i64 %772, 1
  %774 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %775 = load ptr, ptr %774, align 8, !tbaa !15
  %776 = load ptr, ptr %80, align 8, !tbaa !5
  %777 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraint", ptr %776, i32 0, i32 1
  %778 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %777, i32 0, i32 4
  %779 = load ptr, ptr %778, align 8, !tbaa !15
  %780 = load i64, ptr %57, align 8, !tbaa !11
  %781 = getelementptr inbounds i64, ptr %779, i64 %780
  %782 = load i64, ptr %781, align 8, !tbaa !11
  %783 = getelementptr inbounds i64, ptr %775, i64 %782
  store i64 %773, ptr %783, align 8, !tbaa !11
  br label %784

784:                                              ; preds = %761
  %785 = load i64, ptr %57, align 8, !tbaa !11
  %786 = add nsw i64 %785, 1
  store i64 %786, ptr %57, align 8, !tbaa !11
  br label %739, !llvm.loop !47

787:                                              ; preds = %739
  br label %788

788:                                              ; preds = %787, %734
  %789 = load i64, ptr %55, align 8, !tbaa !11
  %790 = add nsw i64 %789, 1
  store i64 %790, ptr %55, align 8, !tbaa !11
  br label %721, !llvm.loop !48

791:                                              ; preds = %721
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %792

792:                                              ; preds = %807, %791
  %793 = load i64, ptr %55, align 8, !tbaa !11
  %794 = load i64, ptr %27, align 8, !tbaa !11
  %795 = sub nsw i64 %794, 1
  %796 = icmp sle i64 %793, %795
  br i1 %796, label %797, label %810

797:                                              ; preds = %792
  %798 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %799 = load ptr, ptr %798, align 8, !tbaa !15
  %800 = load i64, ptr %55, align 8, !tbaa !11
  %801 = getelementptr inbounds i64, ptr %799, i64 %800
  %802 = load i64, ptr %801, align 8, !tbaa !11
  %803 = icmp ne i64 %802, 0
  br i1 %803, label %804, label %806

804:                                              ; preds = %797
  %805 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.836, ptr noundef %805)
  br label %806

806:                                              ; preds = %804, %797
  br label %807

807:                                              ; preds = %806
  %808 = load i64, ptr %55, align 8, !tbaa !11
  %809 = add nsw i64 %808, 1
  store i64 %809, ptr %55, align 8, !tbaa !11
  br label %792, !llvm.loop !49

810:                                              ; preds = %792
  %811 = load i64, ptr %27, align 8, !tbaa !11
  %812 = load ptr, ptr %35, align 8, !tbaa !5
  %813 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %812, i32 0, i32 1
  store i64 %811, ptr %813, align 8, !tbaa !50
  %814 = load ptr, ptr %35, align 8, !tbaa !5
  %815 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %814, i32 0, i32 0
  store i64 0, ptr %815, align 8, !tbaa !51
  %816 = load i64, ptr %27, align 8, !tbaa !11
  %817 = load ptr, ptr %35, align 8, !tbaa !5
  %818 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %817, i32 0, i32 27
  %819 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %816, i64 noundef -1, ptr noundef %818, ptr noundef %819)
  %820 = load i64, ptr %27, align 8, !tbaa !11
  %821 = load ptr, ptr %35, align 8, !tbaa !5
  %822 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %821, i32 0, i32 31
  %823 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %820, i64 noundef -1, ptr noundef %822, ptr noundef %823)
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %824

824:                                              ; preds = %862, %810
  %825 = load i64, ptr %55, align 8, !tbaa !11
  %826 = load i64, ptr %27, align 8, !tbaa !11
  %827 = sub nsw i64 %826, 1
  %828 = icmp sle i64 %825, %827
  br i1 %828, label %829, label %865

829:                                              ; preds = %824
  %830 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %831 = load ptr, ptr %830, align 8, !tbaa !15
  %832 = load i64, ptr %55, align 8, !tbaa !11
  %833 = getelementptr inbounds i8, ptr %831, i64 %832
  %834 = load i8, ptr %833, align 1, !tbaa !9, !range !13, !noundef !14
  %835 = trunc i8 %834 to i1
  br i1 %835, label %861, label %836

836:                                              ; preds = %829
  %837 = load i64, ptr %55, align 8, !tbaa !11
  %838 = load ptr, ptr %35, align 8, !tbaa !5
  %839 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %838, i32 0, i32 31
  %840 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %839, i32 0, i32 4
  %841 = load ptr, ptr %840, align 8, !tbaa !15
  %842 = load ptr, ptr %35, align 8, !tbaa !5
  %843 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %842, i32 0, i32 0
  %844 = load i64, ptr %843, align 8, !tbaa !51
  %845 = getelementptr inbounds i64, ptr %841, i64 %844
  store i64 %837, ptr %845, align 8, !tbaa !11
  %846 = load ptr, ptr %35, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %846, i32 0, i32 0
  %848 = load i64, ptr %847, align 8, !tbaa !51
  %849 = load ptr, ptr %35, align 8, !tbaa !5
  %850 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %849, i32 0, i32 27
  %851 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %850, i32 0, i32 4
  %852 = load ptr, ptr %851, align 8, !tbaa !15
  %853 = load i64, ptr %55, align 8, !tbaa !11
  %854 = getelementptr inbounds i64, ptr %852, i64 %853
  store i64 %848, ptr %854, align 8, !tbaa !11
  %855 = load ptr, ptr %35, align 8, !tbaa !5
  %856 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %855, i32 0, i32 0
  %857 = load i64, ptr %856, align 8, !tbaa !51
  %858 = add nsw i64 %857, 1
  %859 = load ptr, ptr %35, align 8, !tbaa !5
  %860 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %859, i32 0, i32 0
  store i64 %858, ptr %860, align 8, !tbaa !51
  br label %861

861:                                              ; preds = %836, %829
  br label %862

862:                                              ; preds = %861
  %863 = load i64, ptr %55, align 8, !tbaa !11
  %864 = add nsw i64 %863, 1
  store i64 %864, ptr %55, align 8, !tbaa !11
  br label %824, !llvm.loop !52

865:                                              ; preds = %824
  %866 = load ptr, ptr %35, align 8, !tbaa !5
  %867 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %866, i32 0, i32 0
  %868 = load i64, ptr %867, align 8, !tbaa !51
  %869 = load ptr, ptr %35, align 8, !tbaa !5
  %870 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %869, i32 0, i32 19
  %871 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %868, ptr noundef %870, ptr noundef %871)
  %872 = load ptr, ptr %35, align 8, !tbaa !5
  %873 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %872, i32 0, i32 0
  %874 = load i64, ptr %873, align 8, !tbaa !51
  %875 = load ptr, ptr %35, align 8, !tbaa !5
  %876 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %875, i32 0, i32 20
  %877 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %874, ptr noundef %876, ptr noundef %877)
  %878 = load ptr, ptr %35, align 8, !tbaa !5
  %879 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %878, i32 0, i32 0
  %880 = load i64, ptr %879, align 8, !tbaa !51
  %881 = load ptr, ptr %35, align 8, !tbaa !5
  %882 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %881, i32 0, i32 18
  %883 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %880, ptr noundef %882, ptr noundef %883)
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %884

884:                                              ; preds = %943, %865
  %885 = load i64, ptr %55, align 8, !tbaa !11
  %886 = load ptr, ptr %35, align 8, !tbaa !5
  %887 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %886, i32 0, i32 0
  %888 = load i64, ptr %887, align 8, !tbaa !51
  %889 = sub nsw i64 %888, 1
  %890 = icmp sle i64 %885, %889
  br i1 %890, label %891, label %946

891:                                              ; preds = %884
  %892 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %50, i32 0, i32 4
  %893 = load ptr, ptr %892, align 8, !tbaa !15
  %894 = load ptr, ptr %35, align 8, !tbaa !5
  %895 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %894, i32 0, i32 31
  %896 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %895, i32 0, i32 4
  %897 = load ptr, ptr %896, align 8, !tbaa !15
  %898 = load i64, ptr %55, align 8, !tbaa !11
  %899 = getelementptr inbounds i64, ptr %897, i64 %898
  %900 = load i64, ptr %899, align 8, !tbaa !11
  %901 = getelementptr inbounds double, ptr %893, i64 %900
  %902 = load double, ptr %901, align 8, !tbaa !20
  %903 = load ptr, ptr %35, align 8, !tbaa !5
  %904 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %903, i32 0, i32 18
  %905 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %904, i32 0, i32 4
  %906 = load ptr, ptr %905, align 8, !tbaa !15
  %907 = load i64, ptr %55, align 8, !tbaa !11
  %908 = getelementptr inbounds double, ptr %906, i64 %907
  store double %902, ptr %908, align 8, !tbaa !20
  %909 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %51, i32 0, i32 4
  %910 = load ptr, ptr %909, align 8, !tbaa !15
  %911 = load ptr, ptr %35, align 8, !tbaa !5
  %912 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %911, i32 0, i32 31
  %913 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %912, i32 0, i32 4
  %914 = load ptr, ptr %913, align 8, !tbaa !15
  %915 = load i64, ptr %55, align 8, !tbaa !11
  %916 = getelementptr inbounds i64, ptr %914, i64 %915
  %917 = load i64, ptr %916, align 8, !tbaa !11
  %918 = getelementptr inbounds double, ptr %910, i64 %917
  %919 = load double, ptr %918, align 8, !tbaa !20
  %920 = load ptr, ptr %35, align 8, !tbaa !5
  %921 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %920, i32 0, i32 19
  %922 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %921, i32 0, i32 4
  %923 = load ptr, ptr %922, align 8, !tbaa !15
  %924 = load i64, ptr %55, align 8, !tbaa !11
  %925 = getelementptr inbounds double, ptr %923, i64 %924
  store double %919, ptr %925, align 8, !tbaa !20
  %926 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %52, i32 0, i32 4
  %927 = load ptr, ptr %926, align 8, !tbaa !15
  %928 = load ptr, ptr %35, align 8, !tbaa !5
  %929 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %928, i32 0, i32 31
  %930 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %929, i32 0, i32 4
  %931 = load ptr, ptr %930, align 8, !tbaa !15
  %932 = load i64, ptr %55, align 8, !tbaa !11
  %933 = getelementptr inbounds i64, ptr %931, i64 %932
  %934 = load i64, ptr %933, align 8, !tbaa !11
  %935 = getelementptr inbounds double, ptr %927, i64 %934
  %936 = load double, ptr %935, align 8, !tbaa !20
  %937 = load ptr, ptr %35, align 8, !tbaa !5
  %938 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %937, i32 0, i32 20
  %939 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %938, i32 0, i32 4
  %940 = load ptr, ptr %939, align 8, !tbaa !15
  %941 = load i64, ptr %55, align 8, !tbaa !11
  %942 = getelementptr inbounds double, ptr %940, i64 %941
  store double %936, ptr %942, align 8, !tbaa !20
  br label %943

943:                                              ; preds = %891
  %944 = load i64, ptr %55, align 8, !tbaa !11
  %945 = add nsw i64 %944, 1
  store i64 %945, ptr %55, align 8, !tbaa !11
  br label %884, !llvm.loop !53

946:                                              ; preds = %884
  %947 = load i8, ptr %26, align 1, !tbaa !9, !range !13, !noundef !14
  %948 = trunc i8 %947 to i1
  br i1 %948, label %949, label %1095

949:                                              ; preds = %946
  %950 = load ptr, ptr %35, align 8, !tbaa !5
  %951 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %950, i32 0, i32 0
  %952 = load i64, ptr %951, align 8, !tbaa !51
  %953 = load ptr, ptr %35, align 8, !tbaa !5
  %954 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %953, i32 0, i32 21
  %955 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %954, i32 0, i32 7
  store i64 %952, ptr %955, align 8, !tbaa !54
  %956 = load ptr, ptr %35, align 8, !tbaa !5
  %957 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %956, i32 0, i32 0
  %958 = load i64, ptr %957, align 8, !tbaa !51
  %959 = load ptr, ptr %35, align 8, !tbaa !5
  %960 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %959, i32 0, i32 21
  %961 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %960, i32 0, i32 6
  store i64 %958, ptr %961, align 8, !tbaa !55
  %962 = load ptr, ptr %35, align 8, !tbaa !5
  %963 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %962, i32 0, i32 0
  %964 = load i64, ptr %963, align 8, !tbaa !51
  %965 = add nsw i64 %964, 1
  %966 = load ptr, ptr %35, align 8, !tbaa !5
  %967 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %966, i32 0, i32 21
  %968 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %967, i32 0, i32 2
  %969 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %965, ptr noundef %968, ptr noundef %969)
  %970 = load ptr, ptr %35, align 8, !tbaa !5
  %971 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %970, i32 0, i32 21
  %972 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %971, i32 0, i32 2
  %973 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %972, i32 0, i32 4
  %974 = load ptr, ptr %973, align 8, !tbaa !15
  %975 = getelementptr inbounds i64, ptr %974, i64 0
  store i64 0, ptr %975, align 8, !tbaa !11
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %976

976:                                              ; preds = %1088, %949
  %977 = load i64, ptr %55, align 8, !tbaa !11
  %978 = load ptr, ptr %35, align 8, !tbaa !5
  %979 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %978, i32 0, i32 0
  %980 = load i64, ptr %979, align 8, !tbaa !51
  %981 = sub nsw i64 %980, 1
  %982 = icmp sle i64 %977, %981
  br i1 %982, label %983, label %1091

983:                                              ; preds = %976
  %984 = load ptr, ptr %35, align 8, !tbaa !5
  %985 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %984, i32 0, i32 21
  %986 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %985, i32 0, i32 2
  %987 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %986, i32 0, i32 4
  %988 = load ptr, ptr %987, align 8, !tbaa !15
  %989 = load i64, ptr %55, align 8, !tbaa !11
  %990 = getelementptr inbounds i64, ptr %988, i64 %989
  %991 = load i64, ptr %990, align 8, !tbaa !11
  store i64 %991, ptr %63, align 8, !tbaa !11
  %992 = load i64, ptr %63, align 8, !tbaa !11
  %993 = load i64, ptr %27, align 8, !tbaa !11
  %994 = add nsw i64 %992, %993
  %995 = load ptr, ptr %35, align 8, !tbaa !5
  %996 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %995, i32 0, i32 21
  %997 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %996, i32 0, i32 1
  %998 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %994, ptr noundef %997, ptr noundef %998)
  %999 = load i64, ptr %63, align 8, !tbaa !11
  %1000 = load i64, ptr %27, align 8, !tbaa !11
  %1001 = add nsw i64 %999, %1000
  %1002 = load ptr, ptr %35, align 8, !tbaa !5
  %1003 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1002, i32 0, i32 21
  %1004 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1003, i32 0, i32 0
  %1005 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1001, ptr noundef %1004, ptr noundef %1005)
  %1006 = load ptr, ptr %35, align 8, !tbaa !5
  %1007 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1006, i32 0, i32 31
  %1008 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1007, i32 0, i32 4
  %1009 = load ptr, ptr %1008, align 8, !tbaa !15
  %1010 = load i64, ptr %55, align 8, !tbaa !11
  %1011 = getelementptr inbounds i64, ptr %1009, i64 %1010
  %1012 = load i64, ptr %1011, align 8, !tbaa !11
  store i64 %1012, ptr %56, align 8, !tbaa !11
  %1013 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %46, i32 0, i32 3
  %1014 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1013, i32 0, i32 4
  %1015 = load ptr, ptr %1014, align 8, !tbaa !15
  %1016 = load i64, ptr %56, align 8, !tbaa !11
  %1017 = getelementptr inbounds i64, ptr %1015, i64 %1016
  %1018 = load i64, ptr %1017, align 8, !tbaa !11
  store i64 %1018, ptr %59, align 8, !tbaa !11
  %1019 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %46, i32 0, i32 4
  %1020 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1019, i32 0, i32 4
  %1021 = load ptr, ptr %1020, align 8, !tbaa !15
  %1022 = load i64, ptr %56, align 8, !tbaa !11
  %1023 = getelementptr inbounds i64, ptr %1021, i64 %1022
  %1024 = load i64, ptr %1023, align 8, !tbaa !11
  %1025 = sub nsw i64 %1024, 1
  store i64 %1025, ptr %60, align 8, !tbaa !11
  %1026 = load i64, ptr %59, align 8, !tbaa !11
  store i64 %1026, ptr %58, align 8, !tbaa !11
  br label %1027

1027:                                             ; preds = %1075, %983
  %1028 = load i64, ptr %58, align 8, !tbaa !11
  %1029 = load i64, ptr %60, align 8, !tbaa !11
  %1030 = icmp sle i64 %1028, %1029
  br i1 %1030, label %1031, label %1078

1031:                                             ; preds = %1027
  %1032 = load ptr, ptr %35, align 8, !tbaa !5
  %1033 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1032, i32 0, i32 27
  %1034 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1033, i32 0, i32 4
  %1035 = load ptr, ptr %1034, align 8, !tbaa !15
  %1036 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %46, i32 0, i32 5
  %1037 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1036, i32 0, i32 4
  %1038 = load ptr, ptr %1037, align 8, !tbaa !15
  %1039 = load i64, ptr %58, align 8, !tbaa !11
  %1040 = getelementptr inbounds i64, ptr %1038, i64 %1039
  %1041 = load i64, ptr %1040, align 8, !tbaa !11
  %1042 = getelementptr inbounds i64, ptr %1035, i64 %1041
  %1043 = load i64, ptr %1042, align 8, !tbaa !11
  store i64 %1043, ptr %57, align 8, !tbaa !11
  %1044 = load i64, ptr %57, align 8, !tbaa !11
  %1045 = icmp slt i64 %1044, 0
  br i1 %1045, label %1050, label %1046

1046:                                             ; preds = %1031
  %1047 = load i64, ptr %57, align 8, !tbaa !11
  %1048 = load i64, ptr %55, align 8, !tbaa !11
  %1049 = icmp sgt i64 %1047, %1048
  br i1 %1049, label %1050, label %1051

1050:                                             ; preds = %1046, %1031
  br label %1075

1051:                                             ; preds = %1046
  %1052 = load i64, ptr %57, align 8, !tbaa !11
  %1053 = load ptr, ptr %35, align 8, !tbaa !5
  %1054 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1053, i32 0, i32 21
  %1055 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1054, i32 0, i32 1
  %1056 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1055, i32 0, i32 4
  %1057 = load ptr, ptr %1056, align 8, !tbaa !15
  %1058 = load i64, ptr %63, align 8, !tbaa !11
  %1059 = getelementptr inbounds i64, ptr %1057, i64 %1058
  store i64 %1052, ptr %1059, align 8, !tbaa !11
  %1060 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %46, i32 0, i32 6
  %1061 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1060, i32 0, i32 4
  %1062 = load ptr, ptr %1061, align 8, !tbaa !15
  %1063 = load i64, ptr %58, align 8, !tbaa !11
  %1064 = getelementptr inbounds double, ptr %1062, i64 %1063
  %1065 = load double, ptr %1064, align 8, !tbaa !20
  %1066 = load ptr, ptr %35, align 8, !tbaa !5
  %1067 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1066, i32 0, i32 21
  %1068 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1067, i32 0, i32 0
  %1069 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1068, i32 0, i32 4
  %1070 = load ptr, ptr %1069, align 8, !tbaa !15
  %1071 = load i64, ptr %63, align 8, !tbaa !11
  %1072 = getelementptr inbounds double, ptr %1070, i64 %1071
  store double %1065, ptr %1072, align 8, !tbaa !20
  %1073 = load i64, ptr %63, align 8, !tbaa !11
  %1074 = add nsw i64 %1073, 1
  store i64 %1074, ptr %63, align 8, !tbaa !11
  br label %1075

1075:                                             ; preds = %1051, %1050
  %1076 = load i64, ptr %58, align 8, !tbaa !11
  %1077 = add nsw i64 %1076, 1
  store i64 %1077, ptr %58, align 8, !tbaa !11
  br label %1027, !llvm.loop !56

1078:                                             ; preds = %1027
  %1079 = load i64, ptr %63, align 8, !tbaa !11
  %1080 = load ptr, ptr %35, align 8, !tbaa !5
  %1081 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1080, i32 0, i32 21
  %1082 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1081, i32 0, i32 2
  %1083 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1082, i32 0, i32 4
  %1084 = load ptr, ptr %1083, align 8, !tbaa !15
  %1085 = load i64, ptr %55, align 8, !tbaa !11
  %1086 = add nsw i64 %1085, 1
  %1087 = getelementptr inbounds i64, ptr %1084, i64 %1086
  store i64 %1079, ptr %1087, align 8, !tbaa !11
  br label %1088

1088:                                             ; preds = %1078
  %1089 = load i64, ptr %55, align 8, !tbaa !11
  %1090 = add nsw i64 %1089, 1
  store i64 %1090, ptr %55, align 8, !tbaa !11
  br label %976, !llvm.loop !57

1091:                                             ; preds = %976
  %1092 = load ptr, ptr %35, align 8, !tbaa !5
  %1093 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1092, i32 0, i32 21
  %1094 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl22sparsecreatecrsinplaceEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %1093, ptr noundef %1094)
  br label %1095

1095:                                             ; preds = %1091, %946
  %1096 = load i64, ptr %31, align 8, !tbaa !11
  %1097 = load ptr, ptr %35, align 8, !tbaa !5
  %1098 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1097, i32 0, i32 5
  store i64 %1096, ptr %1098, align 8, !tbaa !58
  %1099 = load ptr, ptr %35, align 8, !tbaa !5
  %1100 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1099, i32 0, i32 4
  store i64 0, ptr %1100, align 8, !tbaa !59
  %1101 = load i64, ptr %31, align 8, !tbaa !11
  %1102 = load ptr, ptr %35, align 8, !tbaa !5
  %1103 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1102, i32 0, i32 28
  %1104 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1101, i64 noundef -1, ptr noundef %1103, ptr noundef %1104)
  %1105 = load i64, ptr %31, align 8, !tbaa !11
  %1106 = load ptr, ptr %35, align 8, !tbaa !5
  %1107 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1106, i32 0, i32 32
  %1108 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1105, i64 noundef -1, ptr noundef %1107, ptr noundef %1108)
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %1109

1109:                                             ; preds = %1147, %1095
  %1110 = load i64, ptr %55, align 8, !tbaa !11
  %1111 = load i64, ptr %31, align 8, !tbaa !11
  %1112 = sub nsw i64 %1111, 1
  %1113 = icmp sle i64 %1110, %1112
  br i1 %1113, label %1114, label %1150

1114:                                             ; preds = %1109
  %1115 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %40, i32 0, i32 4
  %1116 = load ptr, ptr %1115, align 8, !tbaa !15
  %1117 = load i64, ptr %55, align 8, !tbaa !11
  %1118 = getelementptr inbounds i8, ptr %1116, i64 %1117
  %1119 = load i8, ptr %1118, align 1, !tbaa !9, !range !13, !noundef !14
  %1120 = trunc i8 %1119 to i1
  br i1 %1120, label %1146, label %1121

1121:                                             ; preds = %1114
  %1122 = load i64, ptr %55, align 8, !tbaa !11
  %1123 = load ptr, ptr %35, align 8, !tbaa !5
  %1124 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1123, i32 0, i32 32
  %1125 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1124, i32 0, i32 4
  %1126 = load ptr, ptr %1125, align 8, !tbaa !15
  %1127 = load ptr, ptr %35, align 8, !tbaa !5
  %1128 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1127, i32 0, i32 4
  %1129 = load i64, ptr %1128, align 8, !tbaa !59
  %1130 = getelementptr inbounds i64, ptr %1126, i64 %1129
  store i64 %1122, ptr %1130, align 8, !tbaa !11
  %1131 = load ptr, ptr %35, align 8, !tbaa !5
  %1132 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1131, i32 0, i32 4
  %1133 = load i64, ptr %1132, align 8, !tbaa !59
  %1134 = load ptr, ptr %35, align 8, !tbaa !5
  %1135 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1134, i32 0, i32 28
  %1136 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1135, i32 0, i32 4
  %1137 = load ptr, ptr %1136, align 8, !tbaa !15
  %1138 = load i64, ptr %55, align 8, !tbaa !11
  %1139 = getelementptr inbounds i64, ptr %1137, i64 %1138
  store i64 %1133, ptr %1139, align 8, !tbaa !11
  %1140 = load ptr, ptr %35, align 8, !tbaa !5
  %1141 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1140, i32 0, i32 4
  %1142 = load i64, ptr %1141, align 8, !tbaa !59
  %1143 = add nsw i64 %1142, 1
  %1144 = load ptr, ptr %35, align 8, !tbaa !5
  %1145 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1144, i32 0, i32 4
  store i64 %1143, ptr %1145, align 8, !tbaa !59
  br label %1146

1146:                                             ; preds = %1121, %1114
  br label %1147

1147:                                             ; preds = %1146
  %1148 = load i64, ptr %55, align 8, !tbaa !11
  %1149 = add nsw i64 %1148, 1
  store i64 %1149, ptr %55, align 8, !tbaa !11
  br label %1109, !llvm.loop !60

1150:                                             ; preds = %1109
  %1151 = load ptr, ptr %35, align 8, !tbaa !5
  %1152 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1151, i32 0, i32 4
  %1153 = load i64, ptr %1152, align 8, !tbaa !59
  %1154 = load ptr, ptr %35, align 8, !tbaa !5
  %1155 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1154, i32 0, i32 23
  %1156 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1153, ptr noundef %1155, ptr noundef %1156)
  %1157 = load ptr, ptr %35, align 8, !tbaa !5
  %1158 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1157, i32 0, i32 4
  %1159 = load i64, ptr %1158, align 8, !tbaa !59
  %1160 = load ptr, ptr %35, align 8, !tbaa !5
  %1161 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1160, i32 0, i32 24
  %1162 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1159, ptr noundef %1161, ptr noundef %1162)
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %1163

1163:                                             ; preds = %1205, %1150
  %1164 = load i64, ptr %55, align 8, !tbaa !11
  %1165 = load ptr, ptr %35, align 8, !tbaa !5
  %1166 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1165, i32 0, i32 4
  %1167 = load i64, ptr %1166, align 8, !tbaa !59
  %1168 = sub nsw i64 %1167, 1
  %1169 = icmp sle i64 %1164, %1168
  br i1 %1169, label %1170, label %1208

1170:                                             ; preds = %1163
  %1171 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %53, i32 0, i32 4
  %1172 = load ptr, ptr %1171, align 8, !tbaa !15
  %1173 = load ptr, ptr %35, align 8, !tbaa !5
  %1174 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1173, i32 0, i32 32
  %1175 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1174, i32 0, i32 4
  %1176 = load ptr, ptr %1175, align 8, !tbaa !15
  %1177 = load i64, ptr %55, align 8, !tbaa !11
  %1178 = getelementptr inbounds i64, ptr %1176, i64 %1177
  %1179 = load i64, ptr %1178, align 8, !tbaa !11
  %1180 = getelementptr inbounds double, ptr %1172, i64 %1179
  %1181 = load double, ptr %1180, align 8, !tbaa !20
  %1182 = load ptr, ptr %35, align 8, !tbaa !5
  %1183 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1182, i32 0, i32 23
  %1184 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1183, i32 0, i32 4
  %1185 = load ptr, ptr %1184, align 8, !tbaa !15
  %1186 = load i64, ptr %55, align 8, !tbaa !11
  %1187 = getelementptr inbounds double, ptr %1185, i64 %1186
  store double %1181, ptr %1187, align 8, !tbaa !20
  %1188 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %54, i32 0, i32 4
  %1189 = load ptr, ptr %1188, align 8, !tbaa !15
  %1190 = load ptr, ptr %35, align 8, !tbaa !5
  %1191 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1190, i32 0, i32 32
  %1192 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1191, i32 0, i32 4
  %1193 = load ptr, ptr %1192, align 8, !tbaa !15
  %1194 = load i64, ptr %55, align 8, !tbaa !11
  %1195 = getelementptr inbounds i64, ptr %1193, i64 %1194
  %1196 = load i64, ptr %1195, align 8, !tbaa !11
  %1197 = getelementptr inbounds double, ptr %1189, i64 %1196
  %1198 = load double, ptr %1197, align 8, !tbaa !20
  %1199 = load ptr, ptr %35, align 8, !tbaa !5
  %1200 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1199, i32 0, i32 24
  %1201 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1200, i32 0, i32 4
  %1202 = load ptr, ptr %1201, align 8, !tbaa !15
  %1203 = load i64, ptr %55, align 8, !tbaa !11
  %1204 = getelementptr inbounds double, ptr %1202, i64 %1203
  store double %1198, ptr %1204, align 8, !tbaa !20
  br label %1205

1205:                                             ; preds = %1170
  %1206 = load i64, ptr %55, align 8, !tbaa !11
  %1207 = add nsw i64 %1206, 1
  store i64 %1207, ptr %55, align 8, !tbaa !11
  br label %1163, !llvm.loop !61

1208:                                             ; preds = %1163
  %1209 = load ptr, ptr %35, align 8, !tbaa !5
  %1210 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1209, i32 0, i32 22
  %1211 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1210, i32 0, i32 6
  store i64 0, ptr %1211, align 8, !tbaa !62
  %1212 = load ptr, ptr %35, align 8, !tbaa !5
  %1213 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1212, i32 0, i32 0
  %1214 = load i64, ptr %1213, align 8, !tbaa !51
  %1215 = load ptr, ptr %35, align 8, !tbaa !5
  %1216 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1215, i32 0, i32 22
  %1217 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1216, i32 0, i32 7
  store i64 %1214, ptr %1217, align 8, !tbaa !63
  %1218 = load ptr, ptr %35, align 8, !tbaa !5
  %1219 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1218, i32 0, i32 4
  %1220 = load i64, ptr %1219, align 8, !tbaa !59
  %1221 = add nsw i64 %1220, 1
  %1222 = load ptr, ptr %35, align 8, !tbaa !5
  %1223 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1222, i32 0, i32 22
  %1224 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1223, i32 0, i32 2
  %1225 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1221, ptr noundef %1224, ptr noundef %1225)
  %1226 = load ptr, ptr %35, align 8, !tbaa !5
  %1227 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1226, i32 0, i32 22
  %1228 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1227, i32 0, i32 2
  %1229 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1228, i32 0, i32 4
  %1230 = load ptr, ptr %1229, align 8, !tbaa !15
  %1231 = getelementptr inbounds i64, ptr %1230, i64 0
  store i64 0, ptr %1231, align 8, !tbaa !11
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %1232

1232:                                             ; preds = %1351, %1208
  %1233 = load i64, ptr %55, align 8, !tbaa !11
  %1234 = load i64, ptr %31, align 8, !tbaa !11
  %1235 = sub nsw i64 %1234, 1
  %1236 = icmp sle i64 %1233, %1235
  br i1 %1236, label %1237, label %1354

1237:                                             ; preds = %1232
  %1238 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %40, i32 0, i32 4
  %1239 = load ptr, ptr %1238, align 8, !tbaa !15
  %1240 = load i64, ptr %55, align 8, !tbaa !11
  %1241 = getelementptr inbounds i8, ptr %1239, i64 %1240
  %1242 = load i8, ptr %1241, align 1, !tbaa !9, !range !13, !noundef !14
  %1243 = trunc i8 %1242 to i1
  br i1 %1243, label %1350, label %1244

1244:                                             ; preds = %1237
  %1245 = load ptr, ptr %35, align 8, !tbaa !5
  %1246 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1245, i32 0, i32 22
  %1247 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1246, i32 0, i32 2
  %1248 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1247, i32 0, i32 4
  %1249 = load ptr, ptr %1248, align 8, !tbaa !15
  %1250 = load ptr, ptr %35, align 8, !tbaa !5
  %1251 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1250, i32 0, i32 22
  %1252 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1251, i32 0, i32 6
  %1253 = load i64, ptr %1252, align 8, !tbaa !62
  %1254 = getelementptr inbounds i64, ptr %1249, i64 %1253
  %1255 = load i64, ptr %1254, align 8, !tbaa !11
  store i64 %1255, ptr %63, align 8, !tbaa !11
  %1256 = load i64, ptr %63, align 8, !tbaa !11
  %1257 = load i64, ptr %27, align 8, !tbaa !11
  %1258 = add nsw i64 %1256, %1257
  %1259 = load ptr, ptr %35, align 8, !tbaa !5
  %1260 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1259, i32 0, i32 22
  %1261 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1260, i32 0, i32 1
  %1262 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1258, ptr noundef %1261, ptr noundef %1262)
  %1263 = load i64, ptr %63, align 8, !tbaa !11
  %1264 = load i64, ptr %27, align 8, !tbaa !11
  %1265 = add nsw i64 %1263, %1264
  %1266 = load ptr, ptr %35, align 8, !tbaa !5
  %1267 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1266, i32 0, i32 22
  %1268 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1267, i32 0, i32 0
  %1269 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1265, ptr noundef %1268, ptr noundef %1269)
  %1270 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %47, i32 0, i32 3
  %1271 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1270, i32 0, i32 4
  %1272 = load ptr, ptr %1271, align 8, !tbaa !15
  %1273 = load i64, ptr %55, align 8, !tbaa !11
  %1274 = getelementptr inbounds i64, ptr %1272, i64 %1273
  %1275 = load i64, ptr %1274, align 8, !tbaa !11
  store i64 %1275, ptr %59, align 8, !tbaa !11
  %1276 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %47, i32 0, i32 4
  %1277 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1276, i32 0, i32 4
  %1278 = load ptr, ptr %1277, align 8, !tbaa !15
  %1279 = load i64, ptr %55, align 8, !tbaa !11
  %1280 = getelementptr inbounds i64, ptr %1278, i64 %1279
  %1281 = load i64, ptr %1280, align 8, !tbaa !11
  %1282 = sub nsw i64 %1281, 1
  store i64 %1282, ptr %60, align 8, !tbaa !11
  %1283 = load i64, ptr %59, align 8, !tbaa !11
  store i64 %1283, ptr %58, align 8, !tbaa !11
  br label %1284

1284:                                             ; preds = %1327, %1244
  %1285 = load i64, ptr %58, align 8, !tbaa !11
  %1286 = load i64, ptr %60, align 8, !tbaa !11
  %1287 = icmp sle i64 %1285, %1286
  br i1 %1287, label %1288, label %1330

1288:                                             ; preds = %1284
  %1289 = load ptr, ptr %35, align 8, !tbaa !5
  %1290 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1289, i32 0, i32 27
  %1291 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1290, i32 0, i32 4
  %1292 = load ptr, ptr %1291, align 8, !tbaa !15
  %1293 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %47, i32 0, i32 5
  %1294 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1293, i32 0, i32 4
  %1295 = load ptr, ptr %1294, align 8, !tbaa !15
  %1296 = load i64, ptr %58, align 8, !tbaa !11
  %1297 = getelementptr inbounds i64, ptr %1295, i64 %1296
  %1298 = load i64, ptr %1297, align 8, !tbaa !11
  %1299 = getelementptr inbounds i64, ptr %1292, i64 %1298
  %1300 = load i64, ptr %1299, align 8, !tbaa !11
  store i64 %1300, ptr %57, align 8, !tbaa !11
  %1301 = load i64, ptr %57, align 8, !tbaa !11
  %1302 = icmp sge i64 %1301, 0
  %1303 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1302, ptr noundef @.str.837, ptr noundef %1303)
  %1304 = load i64, ptr %57, align 8, !tbaa !11
  %1305 = load ptr, ptr %35, align 8, !tbaa !5
  %1306 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1305, i32 0, i32 22
  %1307 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1306, i32 0, i32 1
  %1308 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1307, i32 0, i32 4
  %1309 = load ptr, ptr %1308, align 8, !tbaa !15
  %1310 = load i64, ptr %63, align 8, !tbaa !11
  %1311 = getelementptr inbounds i64, ptr %1309, i64 %1310
  store i64 %1304, ptr %1311, align 8, !tbaa !11
  %1312 = getelementptr inbounds %"struct.alglib_impl::dynamiccrs", ptr %47, i32 0, i32 6
  %1313 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1312, i32 0, i32 4
  %1314 = load ptr, ptr %1313, align 8, !tbaa !15
  %1315 = load i64, ptr %58, align 8, !tbaa !11
  %1316 = getelementptr inbounds double, ptr %1314, i64 %1315
  %1317 = load double, ptr %1316, align 8, !tbaa !20
  %1318 = load ptr, ptr %35, align 8, !tbaa !5
  %1319 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1318, i32 0, i32 22
  %1320 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1319, i32 0, i32 0
  %1321 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1320, i32 0, i32 4
  %1322 = load ptr, ptr %1321, align 8, !tbaa !15
  %1323 = load i64, ptr %63, align 8, !tbaa !11
  %1324 = getelementptr inbounds double, ptr %1322, i64 %1323
  store double %1317, ptr %1324, align 8, !tbaa !20
  %1325 = load i64, ptr %63, align 8, !tbaa !11
  %1326 = add nsw i64 %1325, 1
  store i64 %1326, ptr %63, align 8, !tbaa !11
  br label %1327

1327:                                             ; preds = %1288
  %1328 = load i64, ptr %58, align 8, !tbaa !11
  %1329 = add nsw i64 %1328, 1
  store i64 %1329, ptr %58, align 8, !tbaa !11
  br label %1284, !llvm.loop !64

1330:                                             ; preds = %1284
  %1331 = load ptr, ptr %35, align 8, !tbaa !5
  %1332 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1331, i32 0, i32 22
  %1333 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1332, i32 0, i32 6
  %1334 = load i64, ptr %1333, align 8, !tbaa !62
  %1335 = add nsw i64 %1334, 1
  %1336 = load ptr, ptr %35, align 8, !tbaa !5
  %1337 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1336, i32 0, i32 22
  %1338 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1337, i32 0, i32 6
  store i64 %1335, ptr %1338, align 8, !tbaa !62
  %1339 = load i64, ptr %63, align 8, !tbaa !11
  %1340 = load ptr, ptr %35, align 8, !tbaa !5
  %1341 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1340, i32 0, i32 22
  %1342 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1341, i32 0, i32 2
  %1343 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1342, i32 0, i32 4
  %1344 = load ptr, ptr %1343, align 8, !tbaa !15
  %1345 = load ptr, ptr %35, align 8, !tbaa !5
  %1346 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1345, i32 0, i32 22
  %1347 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1346, i32 0, i32 6
  %1348 = load i64, ptr %1347, align 8, !tbaa !62
  %1349 = getelementptr inbounds i64, ptr %1344, i64 %1348
  store i64 %1339, ptr %1349, align 8, !tbaa !11
  br label %1350

1350:                                             ; preds = %1330, %1237
  br label %1351

1351:                                             ; preds = %1350
  %1352 = load i64, ptr %55, align 8, !tbaa !11
  %1353 = add nsw i64 %1352, 1
  store i64 %1353, ptr %55, align 8, !tbaa !11
  br label %1232, !llvm.loop !65

1354:                                             ; preds = %1232
  %1355 = load ptr, ptr %35, align 8, !tbaa !5
  %1356 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1355, i32 0, i32 22
  %1357 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1356, i32 0, i32 6
  %1358 = load i64, ptr %1357, align 8, !tbaa !62
  %1359 = load ptr, ptr %35, align 8, !tbaa !5
  %1360 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1359, i32 0, i32 4
  %1361 = load i64, ptr %1360, align 8, !tbaa !59
  %1362 = icmp eq i64 %1358, %1361
  %1363 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1362, ptr noundef @.str.838, ptr noundef %1363)
  %1364 = load ptr, ptr %35, align 8, !tbaa !5
  %1365 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1364, i32 0, i32 22
  %1366 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl22sparsecreatecrsinplaceEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %1365, ptr noundef %1366)
  %1367 = load i64, ptr %27, align 8, !tbaa !11
  %1368 = load ptr, ptr %35, align 8, !tbaa !5
  %1369 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1368, i32 0, i32 25
  %1370 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraints", ptr %1369, i32 0, i32 0
  store i64 %1367, ptr %1370, align 8, !tbaa !66
  %1371 = load ptr, ptr %35, align 8, !tbaa !5
  %1372 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1371, i32 0, i32 25
  %1373 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraints", ptr %1372, i32 0, i32 1
  call void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef %1373)
  %1374 = load i64, ptr %61, align 8, !tbaa !11
  %1375 = load ptr, ptr %35, align 8, !tbaa !5
  %1376 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1375, i32 0, i32 2
  store i64 %1374, ptr %1376, align 8, !tbaa !67
  %1377 = load ptr, ptr %35, align 8, !tbaa !5
  %1378 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1377, i32 0, i32 6
  store i64 0, ptr %1378, align 8, !tbaa !68
  %1379 = load i64, ptr %61, align 8, !tbaa !11
  %1380 = load ptr, ptr %35, align 8, !tbaa !5
  %1381 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1380, i32 0, i32 29
  %1382 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1379, i64 noundef -1, ptr noundef %1381, ptr noundef %1382)
  %1383 = load i64, ptr %61, align 8, !tbaa !11
  %1384 = load ptr, ptr %35, align 8, !tbaa !5
  %1385 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1384, i32 0, i32 33
  %1386 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1383, i64 noundef -1, ptr noundef %1385, ptr noundef %1386)
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %1387

1387:                                             ; preds = %1447, %1354
  %1388 = load i64, ptr %55, align 8, !tbaa !11
  %1389 = load i64, ptr %61, align 8, !tbaa !11
  %1390 = sub nsw i64 %1389, 1
  %1391 = icmp sle i64 %1388, %1390
  br i1 %1391, label %1392, label %1450

1392:                                             ; preds = %1387
  %1393 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraints", ptr %49, i32 0, i32 1
  %1394 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1393, i32 0, i32 4
  %1395 = load ptr, ptr %1394, align 8, !tbaa !15
  %1396 = load i64, ptr %55, align 8, !tbaa !11
  %1397 = getelementptr inbounds i8, ptr %1395, i64 %1396
  %1398 = load i8, ptr %1397, align 1, !tbaa !9, !range !13, !noundef !14
  %1399 = trunc i8 %1398 to i1
  br i1 %1399, label %1446, label %1400

1400:                                             ; preds = %1392
  %1401 = load i64, ptr %55, align 8, !tbaa !11
  %1402 = load ptr, ptr %35, align 8, !tbaa !5
  %1403 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1402, i32 0, i32 33
  %1404 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1403, i32 0, i32 4
  %1405 = load ptr, ptr %1404, align 8, !tbaa !15
  %1406 = load ptr, ptr %35, align 8, !tbaa !5
  %1407 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1406, i32 0, i32 6
  %1408 = load i64, ptr %1407, align 8, !tbaa !68
  %1409 = getelementptr inbounds i64, ptr %1405, i64 %1408
  store i64 %1401, ptr %1409, align 8, !tbaa !11
  %1410 = load ptr, ptr %35, align 8, !tbaa !5
  %1411 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1410, i32 0, i32 6
  %1412 = load i64, ptr %1411, align 8, !tbaa !68
  %1413 = load ptr, ptr %35, align 8, !tbaa !5
  %1414 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1413, i32 0, i32 29
  %1415 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1414, i32 0, i32 4
  %1416 = load ptr, ptr %1415, align 8, !tbaa !15
  %1417 = load i64, ptr %55, align 8, !tbaa !11
  %1418 = getelementptr inbounds i64, ptr %1416, i64 %1417
  store i64 %1412, ptr %1418, align 8, !tbaa !11
  %1419 = load ptr, ptr %35, align 8, !tbaa !5
  %1420 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1419, i32 0, i32 6
  %1421 = load i64, ptr %1420, align 8, !tbaa !68
  %1422 = add nsw i64 %1421, 1
  %1423 = load ptr, ptr %35, align 8, !tbaa !5
  %1424 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1423, i32 0, i32 6
  store i64 %1422, ptr %1424, align 8, !tbaa !68
  %1425 = getelementptr inbounds %"struct.alglib_impl::dynamiccrsqconstraints", ptr %49, i32 0, i32 0
  %1426 = load i64, ptr %55, align 8, !tbaa !11
  %1427 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %1425, i64 noundef %1426, ptr noundef %81, ptr noundef %1427)
  %1428 = load ptr, ptr %36, align 8, !tbaa !5
  %1429 = call noundef ptr @_ZN11alglib_impl9ae_mallocEmPNS_8ae_stateE(i64 noundef 528, ptr noundef %1428)
  store ptr %1429, ptr %82, align 8, !tbaa !5
  %1430 = load ptr, ptr %82, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 8 %1430, i8 0, i64 528, i1 false)
  %1431 = load ptr, ptr %82, align 8, !tbaa !5
  %1432 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl26_xquadraticconstraint_initEPvPNS_8ae_stateEb(ptr noundef %1431, ptr noundef %1432, i1 noundef zeroext false)
  %1433 = load ptr, ptr %82, align 8, !tbaa !5
  call void @_ZN11alglib_impl19ae_smart_ptr_assignEPNS_12ae_smart_ptrEPvbblPFvS2_PKvPNS_8ae_stateEbEPFvS2_E(ptr noundef %83, ptr noundef %1433, i1 noundef zeroext true, i1 noundef zeroext true, i64 noundef 528, ptr noundef @_ZN11alglib_impl31_xquadraticconstraint_init_copyEPvPKvPNS_8ae_stateEb, ptr noundef @_ZN11alglib_impl29_xquadraticconstraint_destroyEPv)
  %1434 = load ptr, ptr %80, align 8, !tbaa !5
  %1435 = load ptr, ptr %35, align 8, !tbaa !5
  %1436 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1435, i32 0, i32 27
  %1437 = load ptr, ptr %35, align 8, !tbaa !5
  %1438 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1437, i32 0, i32 31
  %1439 = load ptr, ptr %82, align 8, !tbaa !5
  %1440 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL27lpqppresolve_dynqcpermtoxqcEPNS_21dynamiccrsqconstraintEPKNS_9ae_vectorES4_PNS_20xquadraticconstraintEPNS_8ae_stateE(ptr noundef %1434, ptr noundef %1436, ptr noundef %1438, ptr noundef %1439, ptr noundef %1440)
  %1441 = load ptr, ptr %35, align 8, !tbaa !5
  %1442 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1441, i32 0, i32 25
  %1443 = getelementptr inbounds %"struct.alglib_impl::xquadraticconstraints", ptr %1442, i32 0, i32 1
  %1444 = load ptr, ptr %36, align 8, !tbaa !5
  %1445 = call noundef i64 @_ZN11alglib_impl28ae_obj_array_append_transferEPNS_12ae_obj_arrayEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %1443, ptr noundef %83, ptr noundef %1444)
  br label %1446

1446:                                             ; preds = %1400, %1392
  br label %1447

1447:                                             ; preds = %1446
  %1448 = load i64, ptr %55, align 8, !tbaa !11
  %1449 = add nsw i64 %1448, 1
  store i64 %1449, ptr %55, align 8, !tbaa !11
  br label %1387, !llvm.loop !69

1450:                                             ; preds = %1387
  %1451 = load ptr, ptr %35, align 8, !tbaa !5
  %1452 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1451, i32 0, i32 3
  store i64 0, ptr %1452, align 8, !tbaa !70
  %1453 = load ptr, ptr %35, align 8, !tbaa !5
  %1454 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1453, i32 0, i32 7
  store i64 0, ptr %1454, align 8, !tbaa !71
  %1455 = load i64, ptr %27, align 8, !tbaa !11
  %1456 = load ptr, ptr %35, align 8, !tbaa !5
  %1457 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1456, i32 0, i32 26
  %1458 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xccinitElPNS_17xconicconstraintsEPNS_8ae_stateE(i64 noundef %1455, ptr noundef %1457, ptr noundef %1458)
  %1459 = load i64, ptr %27, align 8, !tbaa !11
  %1460 = load i64, ptr %31, align 8, !tbaa !11
  %1461 = add nsw i64 %1459, %1460
  %1462 = load ptr, ptr %35, align 8, !tbaa !5
  %1463 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1462, i32 0, i32 30
  %1464 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1461, i64 noundef -1, ptr noundef %1463, ptr noundef %1464)
  %1465 = load i64, ptr %27, align 8, !tbaa !11
  %1466 = load i64, ptr %31, align 8, !tbaa !11
  %1467 = add nsw i64 %1465, %1466
  %1468 = load ptr, ptr %35, align 8, !tbaa !5
  %1469 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1468, i32 0, i32 34
  %1470 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1467, i64 noundef -1, ptr noundef %1469, ptr noundef %1470)
  store i64 0, ptr %63, align 8, !tbaa !11
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %1471

1471:                                             ; preds = %1494, %1450
  %1472 = load i64, ptr %55, align 8, !tbaa !11
  %1473 = load i64, ptr %27, align 8, !tbaa !11
  %1474 = sub nsw i64 %1473, 1
  %1475 = icmp sle i64 %1472, %1474
  br i1 %1475, label %1476, label %1497

1476:                                             ; preds = %1471
  %1477 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %1478 = load ptr, ptr %1477, align 8, !tbaa !15
  %1479 = load i64, ptr %55, align 8, !tbaa !11
  %1480 = getelementptr inbounds i8, ptr %1478, i64 %1479
  %1481 = load i8, ptr %1480, align 1, !tbaa !9, !range !13, !noundef !14
  %1482 = trunc i8 %1481 to i1
  br i1 %1482, label %1493, label %1483

1483:                                             ; preds = %1476
  %1484 = load i64, ptr %63, align 8, !tbaa !11
  %1485 = load ptr, ptr %35, align 8, !tbaa !5
  %1486 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1485, i32 0, i32 30
  %1487 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1486, i32 0, i32 4
  %1488 = load ptr, ptr %1487, align 8, !tbaa !15
  %1489 = load i64, ptr %55, align 8, !tbaa !11
  %1490 = getelementptr inbounds i64, ptr %1488, i64 %1489
  store i64 %1484, ptr %1490, align 8, !tbaa !11
  %1491 = load i64, ptr %63, align 8, !tbaa !11
  %1492 = add nsw i64 %1491, 1
  store i64 %1492, ptr %63, align 8, !tbaa !11
  br label %1493

1493:                                             ; preds = %1483, %1476
  br label %1494

1494:                                             ; preds = %1493
  %1495 = load i64, ptr %55, align 8, !tbaa !11
  %1496 = add nsw i64 %1495, 1
  store i64 %1496, ptr %55, align 8, !tbaa !11
  br label %1471, !llvm.loop !72

1497:                                             ; preds = %1471
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %1498

1498:                                             ; preds = %1523, %1497
  %1499 = load i64, ptr %55, align 8, !tbaa !11
  %1500 = load i64, ptr %31, align 8, !tbaa !11
  %1501 = sub nsw i64 %1500, 1
  %1502 = icmp sle i64 %1499, %1501
  br i1 %1502, label %1503, label %1526

1503:                                             ; preds = %1498
  %1504 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %40, i32 0, i32 4
  %1505 = load ptr, ptr %1504, align 8, !tbaa !15
  %1506 = load i64, ptr %55, align 8, !tbaa !11
  %1507 = getelementptr inbounds i8, ptr %1505, i64 %1506
  %1508 = load i8, ptr %1507, align 1, !tbaa !9, !range !13, !noundef !14
  %1509 = trunc i8 %1508 to i1
  br i1 %1509, label %1522, label %1510

1510:                                             ; preds = %1503
  %1511 = load i64, ptr %63, align 8, !tbaa !11
  %1512 = load ptr, ptr %35, align 8, !tbaa !5
  %1513 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1512, i32 0, i32 30
  %1514 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1513, i32 0, i32 4
  %1515 = load ptr, ptr %1514, align 8, !tbaa !15
  %1516 = load i64, ptr %27, align 8, !tbaa !11
  %1517 = load i64, ptr %55, align 8, !tbaa !11
  %1518 = add nsw i64 %1516, %1517
  %1519 = getelementptr inbounds i64, ptr %1515, i64 %1518
  store i64 %1511, ptr %1519, align 8, !tbaa !11
  %1520 = load i64, ptr %63, align 8, !tbaa !11
  %1521 = add nsw i64 %1520, 1
  store i64 %1521, ptr %63, align 8, !tbaa !11
  br label %1522

1522:                                             ; preds = %1510, %1503
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load i64, ptr %55, align 8, !tbaa !11
  %1525 = add nsw i64 %1524, 1
  store i64 %1525, ptr %55, align 8, !tbaa !11
  br label %1498, !llvm.loop !73

1526:                                             ; preds = %1498
  %1527 = load i64, ptr %63, align 8, !tbaa !11
  %1528 = load ptr, ptr %35, align 8, !tbaa !5
  %1529 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1528, i32 0, i32 0
  %1530 = load i64, ptr %1529, align 8, !tbaa !51
  %1531 = load ptr, ptr %35, align 8, !tbaa !5
  %1532 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1531, i32 0, i32 4
  %1533 = load i64, ptr %1532, align 8, !tbaa !59
  %1534 = add nsw i64 %1530, %1533
  %1535 = icmp eq i64 %1527, %1534
  %1536 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1535, ptr noundef @.str.839, ptr noundef %1536)
  store i64 0, ptr %55, align 8, !tbaa !11
  br label %1537

1537:                                             ; preds = %1568, %1526
  %1538 = load i64, ptr %55, align 8, !tbaa !11
  %1539 = load i64, ptr %27, align 8, !tbaa !11
  %1540 = load i64, ptr %31, align 8, !tbaa !11
  %1541 = add nsw i64 %1539, %1540
  %1542 = sub nsw i64 %1541, 1
  %1543 = icmp sle i64 %1538, %1542
  br i1 %1543, label %1544, label %1571

1544:                                             ; preds = %1537
  %1545 = load ptr, ptr %35, align 8, !tbaa !5
  %1546 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1545, i32 0, i32 30
  %1547 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1546, i32 0, i32 4
  %1548 = load ptr, ptr %1547, align 8, !tbaa !15
  %1549 = load i64, ptr %55, align 8, !tbaa !11
  %1550 = getelementptr inbounds i64, ptr %1548, i64 %1549
  %1551 = load i64, ptr %1550, align 8, !tbaa !11
  %1552 = icmp sge i64 %1551, 0
  br i1 %1552, label %1553, label %1567

1553:                                             ; preds = %1544
  %1554 = load i64, ptr %55, align 8, !tbaa !11
  %1555 = load ptr, ptr %35, align 8, !tbaa !5
  %1556 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1555, i32 0, i32 34
  %1557 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1556, i32 0, i32 4
  %1558 = load ptr, ptr %1557, align 8, !tbaa !15
  %1559 = load ptr, ptr %35, align 8, !tbaa !5
  %1560 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1559, i32 0, i32 30
  %1561 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1560, i32 0, i32 4
  %1562 = load ptr, ptr %1561, align 8, !tbaa !15
  %1563 = load i64, ptr %55, align 8, !tbaa !11
  %1564 = getelementptr inbounds i64, ptr %1562, i64 %1563
  %1565 = load i64, ptr %1564, align 8, !tbaa !11
  %1566 = getelementptr inbounds i64, ptr %1558, i64 %1565
  store i64 %1554, ptr %1566, align 8, !tbaa !11
  br label %1567

1567:                                             ; preds = %1553, %1544
  br label %1568

1568:                                             ; preds = %1567
  %1569 = load i64, ptr %55, align 8, !tbaa !11
  %1570 = add nsw i64 %1569, 1
  store i64 %1570, ptr %55, align 8, !tbaa !11
  br label %1537, !llvm.loop !74

1571:                                             ; preds = %1537
  %1572 = load i8, ptr %34, align 1, !tbaa !9, !range !13, !noundef !14
  %1573 = trunc i8 %1572 to i1
  br i1 %1573, label %1574, label %1627

1574:                                             ; preds = %1571
  %1575 = load i64, ptr %78, align 8, !tbaa !11
  %1576 = trunc i64 %1575 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.840, i32 noundef %1576)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.841)
  %1577 = load i64, ptr %71, align 8, !tbaa !11
  %1578 = trunc i64 %1577 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.842, i32 noundef %1578)
  %1579 = load i64, ptr %64, align 8, !tbaa !11
  %1580 = trunc i64 %1579 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.843, i32 noundef %1580)
  %1581 = load i64, ptr %65, align 8, !tbaa !11
  %1582 = trunc i64 %1581 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.844, i32 noundef %1582)
  %1583 = load i64, ptr %66, align 8, !tbaa !11
  %1584 = trunc i64 %1583 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.845, i32 noundef %1584)
  %1585 = load i64, ptr %68, align 8, !tbaa !11
  %1586 = trunc i64 %1585 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.846, i32 noundef %1586)
  %1587 = load i64, ptr %69, align 8, !tbaa !11
  %1588 = trunc i64 %1587 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.847, i32 noundef %1588)
  %1589 = load i64, ptr %72, align 8, !tbaa !11
  %1590 = trunc i64 %1589 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.848, i32 noundef %1590)
  %1591 = load i64, ptr %73, align 8, !tbaa !11
  %1592 = trunc i64 %1591 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.849, i32 noundef %1592)
  %1593 = load i64, ptr %74, align 8, !tbaa !11
  %1594 = trunc i64 %1593 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.850, i32 noundef %1594)
  %1595 = load i64, ptr %75, align 8, !tbaa !11
  %1596 = trunc i64 %1595 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.851, i32 noundef %1596)
  %1597 = load i64, ptr %76, align 8, !tbaa !11
  %1598 = trunc i64 %1597 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.852, i32 noundef %1598)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.853)
  %1599 = load ptr, ptr %35, align 8, !tbaa !5
  %1600 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1599, i32 0, i32 0
  %1601 = load i64, ptr %1600, align 8, !tbaa !51
  %1602 = trunc i64 %1601 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.827, i32 noundef %1602)
  %1603 = load ptr, ptr %35, align 8, !tbaa !5
  %1604 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1603, i32 0, i32 4
  %1605 = load i64, ptr %1604, align 8, !tbaa !59
  %1606 = trunc i64 %1605 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.854, i32 noundef %1606)
  %1607 = load ptr, ptr %35, align 8, !tbaa !5
  %1608 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1607, i32 0, i32 6
  %1609 = load i64, ptr %1608, align 8, !tbaa !68
  %1610 = trunc i64 %1609 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.830, i32 noundef %1610)
  %1611 = load i64, ptr %31, align 8, !tbaa !11
  %1612 = icmp ne i64 %1611, 0
  br i1 %1612, label %1613, label %1626

1613:                                             ; preds = %1574
  %1614 = load ptr, ptr %35, align 8, !tbaa !5
  %1615 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1614, i32 0, i32 22
  %1616 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1615, i32 0, i32 2
  %1617 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1616, i32 0, i32 4
  %1618 = load ptr, ptr %1617, align 8, !tbaa !15
  %1619 = load ptr, ptr %35, align 8, !tbaa !5
  %1620 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %1619, i32 0, i32 22
  %1621 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1620, i32 0, i32 6
  %1622 = load i64, ptr %1621, align 8, !tbaa !62
  %1623 = getelementptr inbounds i64, ptr %1618, i64 %1622
  %1624 = load i64, ptr %1623, align 8, !tbaa !11
  %1625 = trunc i64 %1624 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.855, i32 noundef %1625)
  br label %1626

1626:                                             ; preds = %1613, %1574
  br label %1627

1627:                                             ; preds = %1626, %1571
  %1628 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1628)
  store i32 0, ptr %84, align 4
  br label %1629

1629:                                             ; preds = %1627, %657, %639, %621, %603, %587, %571, %344, %300, %248, %181
  call void @llvm.lifetime.end.p0(i64 80, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 80, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 368, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 200, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 280, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 280, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 280, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 144, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 208, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 368, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 368, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  %1630 = load i32, ptr %84, align 4
  switch i32 %1630, label %1632 [
    i32 0, label %1631
    i32 1, label %1631
  ]

1631:                                             ; preds = %1629, %1629
  ret void

1632:                                             ; preds = %1629
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28_dynamiccrsqconstraints_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL39lpqppresolve_dyncrsdropoffdiagonalzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef, ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL28lpqppresolve_dyncrsdropzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef, ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL28lpqppresolve_dyncrsinitemptyEPNS_10dynamiccrsEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL32lpqppresolve_presolvebuffersinitEPNS_15presolvebuffersEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL29lpqppresolve_dynqcinitfromxqcEPNS_21xquadraticconstraintsEPNS_22dynamiccrsqconstraintsEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_dropemptycolEPNS_9ae_vectorES1_S1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPKS0_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL38lpqppresolve_dropclearlynonbindingrowsElPNS_9ae_vectorEPNS_10dynamiccrsES3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_SA_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL29lpqppresolve_singletonrowtobcEPNS_9ae_vectorES1_S1_lPNS_10dynamiccrsES3_S1_S1_S1_ldbPNS_15presolvebuffersEPNS_14presolverstackEPlPbS8_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_doubletonrowEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_fixvariablesEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL26lpqppresolve_singletoncolsEPNS_9ae_vectorEPKS0_S3_S1_PNS_10dynamiccrsEblS5_S5_S1_S1_S1_lS1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL27lpqppresolve_dynqcpermtoxqcEPNS_21dynamiccrsqconstraintEPKNS_9ae_vectorES4_PNS_20xquadraticconstraintEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

declare void @_ZN11alglib_impl7xccinitElPNS_17xconicconstraintsEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !12, i64 328}
!17 = !{!"_ZTSN11alglib_impl12sparsematrixE", !18, i64 0, !18, i64 64, !18, i64 128, !18, i64 192, !18, i64 256, !12, i64 320, !12, i64 328, !12, i64 336, !12, i64 344, !12, i64 352, !12, i64 360}
!18 = !{!"_ZTSN11alglib_impl9ae_vectorE", !12, i64 0, !12, i64 8, !10, i64 16, !19, i64 24, !7, i64 56}
!19 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!20 = !{!21, !21, i64 0}
!21 = !{!"double", !7, i64 0}
!22 = !{!23, !12, i64 1352}
!23 = !{!"_ZTSN11alglib_impl12presolveinfoE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !18, i64 64, !18, i64 128, !18, i64 192, !10, i64 256, !17, i64 264, !17, i64 632, !24, i64 1000, !27, i64 1208, !12, i64 1352, !18, i64 1360, !18, i64 1424, !18, i64 1488, !18, i64 1552, !17, i64 1616, !17, i64 1984, !18, i64 2352, !18, i64 2416, !24, i64 2480, !27, i64 2688, !18, i64 2832, !18, i64 2896, !18, i64 2960, !18, i64 3024, !18, i64 3088, !18, i64 3152, !18, i64 3216, !18, i64 3280, !28, i64 3344, !18, i64 4240, !18, i64 4304, !18, i64 4368, !18, i64 4432, !18, i64 4496, !18, i64 4560, !18, i64 4624, !29, i64 4688}
!24 = !{!"_ZTSN11alglib_impl21xquadraticconstraintsE", !12, i64 0, !25, i64 8, !18, i64 144}
!25 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !12, i64 0, !12, i64 8, !10, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !26, i64 56, !19, i64 104}
!26 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !19, i64 8, !10, i64 40}
!27 = !{!"_ZTSN11alglib_impl17xconicconstraintsE", !12, i64 0, !25, i64 8}
!28 = !{!"_ZTSN11alglib_impl14presolverstackE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !18, i64 40, !18, i64 104, !18, i64 168, !18, i64 232, !18, i64 296, !12, i64 360, !12, i64 368, !12, i64 376, !18, i64 384, !18, i64 448, !18, i64 512, !18, i64 576, !18, i64 640, !18, i64 704, !18, i64 768, !18, i64 832}
!29 = !{!"_ZTSN11alglib_impl15presolvebuffersE", !30, i64 0, !30, i64 152, !30, i64 304, !30, i64 456, !18, i64 608, !18, i64 672, !18, i64 736, !18, i64 800, !31, i64 864}
!30 = !{!"_ZTSN11alglib_impl5nisetE", !12, i64 0, !12, i64 8, !18, i64 16, !18, i64 80, !12, i64 144}
!31 = !{!"_ZTSN11alglib_impl21dynamiccrsqconstraintE", !12, i64 0, !18, i64 8, !18, i64 72, !32, i64 136, !21, i64 416, !21, i64 424, !10, i64 432}
!32 = !{!"_ZTSN11alglib_impl10dynamiccrsE", !12, i64 0, !12, i64 8, !12, i64 16, !18, i64 24, !18, i64 88, !18, i64 152, !18, i64 216}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = distinct !{!35, !34}
!36 = !{!37, !21, i64 504}
!37 = !{!"_ZTSN11alglib_impl20xquadraticconstraintE", !12, i64 0, !18, i64 8, !18, i64 72, !17, i64 136, !21, i64 504, !21, i64 512, !10, i64 520}
!38 = !{!37, !21, i64 512}
!39 = distinct !{!39, !34}
!40 = !{!23, !10, i64 256}
!41 = !{!31, !12, i64 0}
!42 = distinct !{!42, !34}
!43 = distinct !{!43, !34}
!44 = distinct !{!44, !34}
!45 = distinct !{!45, !34}
!46 = distinct !{!46, !34}
!47 = distinct !{!47, !34}
!48 = distinct !{!48, !34}
!49 = distinct !{!49, !34}
!50 = !{!23, !12, i64 8}
!51 = !{!23, !12, i64 0}
!52 = distinct !{!52, !34}
!53 = distinct !{!53, !34}
!54 = !{!23, !12, i64 1952}
!55 = !{!23, !12, i64 1944}
!56 = distinct !{!56, !34}
!57 = distinct !{!57, !34}
!58 = !{!23, !12, i64 40}
!59 = !{!23, !12, i64 32}
!60 = distinct !{!60, !34}
!61 = distinct !{!61, !34}
!62 = !{!23, !12, i64 2312}
!63 = !{!23, !12, i64 2320}
!64 = distinct !{!64, !34}
!65 = distinct !{!65, !34}
!66 = !{!23, !12, i64 2480}
!67 = !{!23, !12, i64 16}
!68 = !{!23, !12, i64 48}
!69 = distinct !{!69, !34}
!70 = !{!23, !12, i64 24}
!71 = !{!23, !12, i64 56}
!72 = distinct !{!72, !34}
!73 = distinct !{!73, !34}
!74 = distinct !{!74, !34}


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

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::xquadraticconstraints" = type { i64, %"struct.alglib_impl::ae_obj_array", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_obj_array" = type { i64, i64, i8, ptr, ptr, ptr, ptr, %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::xconicconstraints" = type { i64, %"struct.alglib_impl::ae_obj_array" }
%"struct.alglib_impl::dynamiccrs" = type { i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::dynamiccrsqconstraints" = type { %"struct.alglib_impl::ae_obj_array", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_smart_ptr" = type { ptr, ptr, i8, i8, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }

@.str.212 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.814 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.815 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.820 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.821 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.822 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.823 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.824 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.825 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.826 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.827 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.828 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.829 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.830 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.831 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.832 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.833 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.834 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.835 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.836 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.837 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.838 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.839 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.840 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.841 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.842 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.843 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.844 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.845 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.846 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.847 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.848 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.849 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.850 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.851 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.852 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.853 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.854 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.855 = external hidden unnamed_addr constant [37 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 noundef ptr @_ZN11alglib_impl9ae_mallocEmPNS_8ae_stateE(i64 noundef, ptr noundef) local_unnamed_addr #1

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

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

declare void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef, ...) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl22sparsecreatecrsinplaceEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

declare void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl26_xquadraticconstraint_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

declare void @_ZN11alglib_impl19ae_smart_ptr_assignEPNS_12ae_smart_ptrEPvbblPFvS2_PKvPNS_8ae_stateEbEPFvS2_E(ptr noundef, ptr noundef, i1 noundef zeroext, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl31_xquadraticconstraint_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #1

declare void @_ZN11alglib_impl29_xquadraticconstraint_destroyEPv(ptr noundef) #1

declare noundef i64 @_ZN11alglib_impl28ae_obj_array_append_transferEPNS_12ae_obj_arrayEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

declare void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN11alglib_impl25sparsecopytransposecrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl27_xquadraticconstraints_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

declare void @_ZN11alglib_impl23_xconicconstraints_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl21presolvenonescaleuserEPKNS_9ae_vectorES2_S2_S2_S2_PKNS_12sparsematrixEbblS5_S2_S2_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEbPNS_12presolveinfoEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #4

declare noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL31lpqppresolve_presolverstackinitEllllPNS_14presolverstackEPNS_8ae_stateE(i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL24lpqppresolve_copyexpandhEPKNS_12sparsematrixEbPS0_PNS_8ae_stateE(ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL46lpqppresolve_scaleshiftobjectiveandconstraintsEPKNS_9ae_vectorES2_lPS0_S3_S3_PNS_12sparsematrixEbS5_S3_S3_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEPNS_14presolverstackEPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl10presolveqpEPKNS_9ae_vectorES2_S2_S2_S2_PKNS_12sparsematrixEbblS5_S2_S2_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEbPNS_12presolveinfoEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i1 noundef zeroext %6, i1 noundef zeroext %7, i64 noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, i64 noundef %12, ptr noundef %13, ptr noundef %14, i1 noundef zeroext %15, ptr noundef %16, ptr noundef %17) local_unnamed_addr #4 {
  %19 = alloca %"struct.alglib_impl::ae_frame", align 8
  %20 = alloca i8, align 1
  %21 = alloca %"struct.alglib_impl::ae_vector", align 8
  %22 = alloca %"struct.alglib_impl::ae_vector", align 8
  %23 = alloca %"struct.alglib_impl::ae_vector", align 8
  %24 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %25 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %26 = alloca %"struct.alglib_impl::xquadraticconstraints", align 8
  %27 = alloca %"struct.alglib_impl::xconicconstraints", align 8
  %28 = alloca %"struct.alglib_impl::dynamiccrs", align 8
  %29 = alloca %"struct.alglib_impl::dynamiccrs", align 8
  %30 = alloca %"struct.alglib_impl::dynamiccrs", align 8
  %31 = alloca %"struct.alglib_impl::dynamiccrsqconstraints", align 8
  %32 = alloca %"struct.alglib_impl::ae_vector", align 8
  %33 = alloca %"struct.alglib_impl::ae_vector", align 8
  %34 = alloca %"struct.alglib_impl::ae_vector", align 8
  %35 = alloca %"struct.alglib_impl::ae_vector", align 8
  %36 = alloca %"struct.alglib_impl::ae_vector", align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %49 = alloca ptr, align 8
  %50 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  %51 = alloca ptr, align 8
  %52 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  %53 = zext i1 %7 to i8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 208, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 280, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 280, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 280, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %52) #7
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %17, ptr noundef nonnull %19)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %21, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %22, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %23, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %24, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %25, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %26, i8 0, i64 208, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(144) %27, i8 0, i64 144, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(280) %28, i8 0, i64 280, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(280) %29, i8 0, i64 280, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(280) %30, i8 0, i64 280, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(200) %31, i8 0, i64 200, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %32, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %33, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %34, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %35, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %36, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %48, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %50, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %52, i8 0, i64 80, i1 false)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %21, i64 noundef 0, i64 noundef 1, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %22, i64 noundef 0, i64 noundef 1, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %23, i64 noundef 0, i64 noundef 2, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %24, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %25, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl27_xquadraticconstraints_initEPvPNS_8ae_stateEb(ptr noundef nonnull %26, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl23_xconicconstraints_initEPvPNS_8ae_stateEb(ptr noundef nonnull %27, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef nonnull %28, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef nonnull %29, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef nonnull %30, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl28_dynamiccrsqconstraints_initEPvPNS_8ae_stateEb(ptr noundef nonnull %31, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %32, i64 noundef 0, i64 noundef 3, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %33, i64 noundef 0, i64 noundef 3, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %34, i64 noundef 0, i64 noundef 3, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %35, i64 noundef 0, i64 noundef 3, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %36, i64 noundef 0, i64 noundef 3, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %48, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef nonnull %50, ptr noundef nonnull %49, ptr noundef %17, i1 noundef zeroext true)
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef nonnull %52, ptr noundef nonnull %51, ptr noundef %17, i1 noundef zeroext true)
  %54 = icmp eq i64 %12, 0
  br i1 %54, label %57, label %55

55:                                               ; preds = %18
  %56 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %9, ptr noundef %17)
  br label %57

57:                                               ; preds = %55, %18
  %58 = phi i1 [ true, %18 ], [ %56, %55 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %58, ptr noundef nonnull @.str.820, ptr noundef %17)
  br i1 %7, label %59, label %61

59:                                               ; preds = %57
  %60 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %5, ptr noundef %17)
  br label %61

61:                                               ; preds = %59, %57
  %62 = phi i1 [ true, %57 ], [ %60, %59 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %62, ptr noundef nonnull @.str.821, ptr noundef %17)
  %63 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %13, ptr noundef %17)
  %64 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %14, ptr noundef %17)
  br i1 %15, label %.thread, label %65

65:                                               ; preds = %61
  %66 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.822)
  %.not626 = xor i1 %66, true
  %brmerge = or i1 %.not626, %7
  br i1 %brmerge, label %67, label %.thread

67:                                               ; preds = %65
  %68 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.823)
  br i1 %68, label %.thread, label %82

.thread:                                          ; preds = %65, %61, %67
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.612)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  %.str.824..str.825 = select i1 %7, ptr @.str.824, ptr @.str.825
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull %.str.824..str.825)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.826)
  %69 = trunc i64 %8 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.827, i32 noundef %69)
  %70 = trunc i64 %12 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.828, i32 noundef %70)
  br i1 %54, label %79, label %71

71:                                               ; preds = %.thread
  %72 = getelementptr inbounds i8, ptr %9, i64 184
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = getelementptr inbounds i8, ptr %9, i64 328
  %75 = load i64, ptr %74, align 8, !tbaa !8
  %76 = getelementptr inbounds i64, ptr %73, i64 %75
  %77 = load i64, ptr %76, align 8, !tbaa !15
  %78 = trunc i64 %77 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.829, i32 noundef %78)
  br label %79

79:                                               ; preds = %71, %.thread
  %80 = trunc i64 %63 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.830, i32 noundef %80)
  %81 = trunc i64 %64 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.831, i32 noundef %81)
  br label %82

82:                                               ; preds = %79, %67
  %83 = phi i1 [ true, %79 ], [ false, %67 ]
  %84 = add nsw i64 %63, %12
  %85 = sub i64 0, %64
  %86 = icmp eq i64 %84, %85
  br i1 %86, label %89, label %.preheader633

.preheader633:                                    ; preds = %82
  %.not602.not644 = icmp sgt i64 %8, 0
  br i1 %.not602.not644, label %.lr.ph, label %.preheader632

.lr.ph:                                           ; preds = %.preheader633
  %87 = getelementptr inbounds i8, ptr %3, i64 56
  %88 = getelementptr inbounds i8, ptr %4, i64 56
  br label %92

89:                                               ; preds = %82
  call void @_ZN11alglib_impl21presolvenonescaleuserEPKNS_9ae_vectorES2_S2_S2_S2_PKNS_12sparsematrixEbblS5_S2_S2_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEbPNS_12presolveinfoEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i1 noundef zeroext %6, i1 noundef zeroext %7, i64 noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, i64 noundef %12, ptr noundef %13, ptr noundef %14, i1 noundef zeroext %83, ptr noundef %16, ptr noundef %17)
  br label %.loopexit787

.preheader632:                                    ; preds = %115, %.preheader633
  %.not603.not646 = icmp sgt i64 %12, 0
  br i1 %.not603.not646, label %.lr.ph648, label %.preheader631

.lr.ph648:                                        ; preds = %.preheader632
  %90 = getelementptr inbounds i8, ptr %10, i64 56
  %91 = getelementptr inbounds i8, ptr %11, i64 56
  br label %118

92:                                               ; preds = %.lr.ph, %115
  %.0580645 = phi i64 [ 0, %.lr.ph ], [ %116, %115 ]
  %93 = load ptr, ptr %87, align 8, !tbaa !5
  %94 = getelementptr inbounds double, ptr %93, i64 %.0580645
  %95 = load double, ptr %94, align 8, !tbaa !16
  %96 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %95, ptr noundef %17)
  br i1 %96, label %97, label %115

97:                                               ; preds = %92
  %98 = load ptr, ptr %88, align 8, !tbaa !5
  %99 = getelementptr inbounds double, ptr %98, i64 %.0580645
  %100 = load double, ptr %99, align 8, !tbaa !16
  %101 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %100, ptr noundef %17)
  br i1 %101, label %102, label %115

102:                                              ; preds = %97
  %103 = load ptr, ptr %87, align 8, !tbaa !5
  %104 = getelementptr inbounds double, ptr %103, i64 %.0580645
  %105 = load double, ptr %104, align 8, !tbaa !16
  %106 = load ptr, ptr %88, align 8, !tbaa !5
  %107 = getelementptr inbounds double, ptr %106, i64 %.0580645
  %108 = load double, ptr %107, align 8, !tbaa !16
  %109 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %105, double noundef %108)
  br i1 %109, label %110, label %115

110:                                              ; preds = %102
  br i1 %83, label %111, label %113

111:                                              ; preds = %110
  %112 = trunc i64 %.0580645 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.814, i32 noundef %112)
  br label %113

113:                                              ; preds = %111, %110
  %114 = getelementptr inbounds i8, ptr %16, i64 1352
  store i64 -3, ptr %114, align 8, !tbaa !18
  br label %.loopexit787

115:                                              ; preds = %92, %97, %102
  %116 = add nuw nsw i64 %.0580645, 1
  %exitcond.not = icmp eq i64 %116, %8
  br i1 %exitcond.not, label %.preheader632, label %92, !llvm.loop !29

.preheader631:                                    ; preds = %141, %.preheader632
  %.not604.not649 = icmp sgt i64 %63, 0
  br i1 %.not604.not649, label %.lr.ph651, label %._crit_edge

.lr.ph651:                                        ; preds = %.preheader631
  %117 = getelementptr inbounds i8, ptr %13, i64 8
  br label %143

118:                                              ; preds = %.lr.ph648, %141
  %.1647 = phi i64 [ 0, %.lr.ph648 ], [ %142, %141 ]
  %119 = load ptr, ptr %90, align 8, !tbaa !5
  %120 = getelementptr inbounds double, ptr %119, i64 %.1647
  %121 = load double, ptr %120, align 8, !tbaa !16
  %122 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %121, ptr noundef %17)
  br i1 %122, label %123, label %141

123:                                              ; preds = %118
  %124 = load ptr, ptr %91, align 8, !tbaa !5
  %125 = getelementptr inbounds double, ptr %124, i64 %.1647
  %126 = load double, ptr %125, align 8, !tbaa !16
  %127 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %126, ptr noundef %17)
  br i1 %127, label %128, label %141

128:                                              ; preds = %123
  %129 = load ptr, ptr %90, align 8, !tbaa !5
  %130 = getelementptr inbounds double, ptr %129, i64 %.1647
  %131 = load double, ptr %130, align 8, !tbaa !16
  %132 = load ptr, ptr %91, align 8, !tbaa !5
  %133 = getelementptr inbounds double, ptr %132, i64 %.1647
  %134 = load double, ptr %133, align 8, !tbaa !16
  %135 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %131, double noundef %134)
  br i1 %135, label %136, label %141

136:                                              ; preds = %128
  br i1 %83, label %137, label %139

137:                                              ; preds = %136
  %138 = trunc i64 %.1647 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.815, i32 noundef %138)
  br label %139

139:                                              ; preds = %137, %136
  %140 = getelementptr inbounds i8, ptr %16, i64 1352
  store i64 -3, ptr %140, align 8, !tbaa !18
  br label %.loopexit787

141:                                              ; preds = %118, %123, %128
  %142 = add nuw nsw i64 %.1647, 1
  %exitcond760.not = icmp eq i64 %142, %12
  br i1 %exitcond760.not, label %.preheader631, label %118, !llvm.loop !31

143:                                              ; preds = %.lr.ph651, %165
  %.2650 = phi i64 [ 0, %.lr.ph651 ], [ %166, %165 ]
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef nonnull %117, i64 noundef %.2650, ptr noundef nonnull %52, ptr noundef %17)
  %144 = load ptr, ptr %51, align 8, !tbaa !32
  %145 = getelementptr inbounds i8, ptr %144, i64 504
  %146 = load double, ptr %145, align 8, !tbaa !33
  %147 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %146, ptr noundef %17)
  br i1 %147, label %148, label %165

148:                                              ; preds = %143
  %149 = load ptr, ptr %51, align 8, !tbaa !32
  %150 = getelementptr inbounds i8, ptr %149, i64 512
  %151 = load double, ptr %150, align 8, !tbaa !35
  %152 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %151, ptr noundef %17)
  br i1 %152, label %153, label %165

153:                                              ; preds = %148
  %154 = load ptr, ptr %51, align 8, !tbaa !32
  %155 = getelementptr inbounds i8, ptr %154, i64 504
  %156 = load double, ptr %155, align 8, !tbaa !33
  %157 = getelementptr inbounds i8, ptr %154, i64 512
  %158 = load double, ptr %157, align 8, !tbaa !35
  %159 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %156, double noundef %158)
  br i1 %159, label %160, label %165

160:                                              ; preds = %153
  br i1 %83, label %161, label %163

161:                                              ; preds = %160
  %162 = trunc i64 %.2650 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.832, i32 noundef %162)
  br label %163

163:                                              ; preds = %161, %160
  %164 = getelementptr inbounds i8, ptr %16, i64 1352
  store i64 -3, ptr %164, align 8, !tbaa !18
  br label %.loopexit787

165:                                              ; preds = %143, %148, %153
  %166 = add nuw nsw i64 %.2650, 1
  %exitcond761.not = icmp eq i64 %166, %63
  br i1 %exitcond761.not, label %._crit_edge, label %143, !llvm.loop !36

._crit_edge:                                      ; preds = %165, %.preheader631
  %167 = getelementptr inbounds i8, ptr %16, i64 64
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef %2, ptr noundef nonnull %167, ptr noundef %17)
  %168 = getelementptr inbounds i8, ptr %16, i64 128
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef %3, ptr noundef nonnull %168, ptr noundef %17)
  %169 = getelementptr inbounds i8, ptr %16, i64 192
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef %4, ptr noundef nonnull %169, ptr noundef %17)
  br i1 %.not603.not646, label %170, label %172

170:                                              ; preds = %._crit_edge
  %171 = getelementptr inbounds i8, ptr %16, i64 632
  call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %9, ptr noundef nonnull %171, ptr noundef %17)
  br label %172

172:                                              ; preds = %170, %._crit_edge
  %173 = getelementptr inbounds i8, ptr %16, i64 1000
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %13, ptr noundef nonnull %173, ptr noundef %17)
  %174 = getelementptr inbounds i8, ptr %16, i64 1208
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %14, ptr noundef nonnull %174, ptr noundef %17)
  %175 = getelementptr inbounds i8, ptr %16, i64 256
  store i8 %53, ptr %175, align 8, !tbaa !37
  br i1 %7, label %176, label %178

176:                                              ; preds = %172
  %177 = getelementptr inbounds i8, ptr %16, i64 264
  call void @_ZN11alglib_implL24lpqppresolve_copyexpandhEPKNS_12sparsematrixEbPS0_PNS_8ae_stateE(ptr noundef %5, i1 noundef zeroext %6, ptr noundef nonnull %177, ptr noundef %17)
  br label %178

178:                                              ; preds = %176, %172
  store i64 0, ptr %37, align 8, !tbaa !15
  store i64 0, ptr %38, align 8, !tbaa !15
  store i64 0, ptr %39, align 8, !tbaa !15
  store i64 0, ptr %40, align 8, !tbaa !15
  store i64 0, ptr %41, align 8, !tbaa !15
  store i64 0, ptr %42, align 8, !tbaa !15
  store i64 0, ptr %43, align 8, !tbaa !15
  store i64 0, ptr %44, align 8, !tbaa !15
  store i64 0, ptr %45, align 8, !tbaa !15
  store i64 0, ptr %46, align 8, !tbaa !15
  store i64 0, ptr %47, align 8, !tbaa !15
  %179 = add i64 %12, %8
  %180 = add i64 %179, 1000
  %181 = sitofp i64 %180 to double
  %182 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 5.000000e-16, double noundef 7.500000e-01, ptr noundef %17)
  %183 = call double @llvm.fmuladd.f64(double %181, double 5.000000e-16, double %182)
  %184 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %13, ptr noundef %17)
  %185 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %14, ptr noundef %17)
  %186 = getelementptr inbounds i8, ptr %16, i64 3344
  call void @_ZN11alglib_implL31lpqppresolve_presolverstackinitEllllPNS_14presolverstackEPNS_8ae_stateE(i64 noundef %8, i64 noundef %12, i64 noundef %184, i64 noundef %185, ptr noundef nonnull %186, ptr noundef %17)
  %187 = getelementptr inbounds i8, ptr %16, i64 1352
  store i64 0, ptr %187, align 8, !tbaa !18
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef %2, ptr noundef nonnull %32, ptr noundef %17)
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef %3, ptr noundef nonnull %33, ptr noundef %17)
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef %4, ptr noundef nonnull %34, ptr noundef %17)
  br i1 %.not603.not646, label %188, label %189

188:                                              ; preds = %178
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %9, ptr noundef nonnull %24, ptr noundef %17)
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %12, ptr noundef %10, ptr noundef nonnull %35, ptr noundef %17)
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %12, ptr noundef %11, ptr noundef nonnull %36, ptr noundef %17)
  br label %189

189:                                              ; preds = %188, %178
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %13, ptr noundef nonnull %26, ptr noundef %17)
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %14, ptr noundef nonnull %27, ptr noundef %17)
  br i1 %7, label %190, label %.critedge

190:                                              ; preds = %189
  %191 = getelementptr inbounds i8, ptr %16, i64 264
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %191, ptr noundef nonnull %48, ptr noundef %17)
  call void @_ZN11alglib_implL46lpqppresolve_scaleshiftobjectiveandconstraintsEPKNS_9ae_vectorES2_lPS0_S3_S3_PNS_12sparsematrixEbS5_S3_S3_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEPNS_14presolverstackEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i64 noundef %8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %48, i1 noundef zeroext true, ptr noundef nonnull %24, ptr noundef nonnull %35, ptr noundef nonnull %36, i64 noundef %12, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %186, ptr noundef %17)
  call void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef nonnull %48, ptr noundef nonnull %28, ptr noundef %17)
  call void @_ZN11alglib_implL39lpqppresolve_dyncrsdropoffdiagonalzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef nonnull %28, ptr noundef %17)
  br label %192

.critedge:                                        ; preds = %189
  call void @_ZN11alglib_implL46lpqppresolve_scaleshiftobjectiveandconstraintsEPKNS_9ae_vectorES2_lPS0_S3_S3_PNS_12sparsematrixEbS5_S3_S3_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEPNS_14presolverstackEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i64 noundef %8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %48, i1 noundef zeroext false, ptr noundef nonnull %24, ptr noundef nonnull %35, ptr noundef nonnull %36, i64 noundef %12, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %186, ptr noundef %17)
  br label %192

192:                                              ; preds = %.critedge, %190
  br i1 %.not603.not646, label %193, label %194

193:                                              ; preds = %192
  call void @_ZN11alglib_impl25sparsecopytransposecrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef %17)
  call void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef nonnull %24, ptr noundef nonnull %29, ptr noundef %17)
  call void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef nonnull %25, ptr noundef nonnull %30, ptr noundef %17)
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsdropzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef nonnull %29, ptr noundef %17)
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsdropzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef nonnull %30, ptr noundef %17)
  br label %195

194:                                              ; preds = %192
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsinitemptyEPNS_10dynamiccrsEllPNS_8ae_stateE(ptr noundef nonnull %29, i64 noundef 0, i64 noundef %8, ptr noundef %17)
  call void @_ZN11alglib_implL28lpqppresolve_dyncrsinitemptyEPNS_10dynamiccrsEllPNS_8ae_stateE(ptr noundef nonnull %30, i64 noundef %8, i64 noundef 0, ptr noundef %17)
  br label %195

195:                                              ; preds = %194, %193
  %196 = getelementptr inbounds i8, ptr %16, i64 1360
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %8, i1 noundef zeroext false, ptr noundef nonnull %196, ptr noundef %17)
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %8, i1 noundef zeroext false, ptr noundef nonnull %21, ptr noundef %17)
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %12, i1 noundef zeroext false, ptr noundef nonnull %22, ptr noundef %17)
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %8, i64 noundef 0, ptr noundef nonnull %23, ptr noundef %17)
  %197 = getelementptr inbounds i8, ptr %16, i64 4688
  call void @_ZN11alglib_implL32lpqppresolve_presolvebuffersinitEPNS_15presolvebuffersEllPNS_8ae_stateE(ptr noundef nonnull %197, i64 noundef %8, i64 noundef %12, ptr noundef %17)
  %198 = icmp eq i64 %64, 0
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %198, ptr noundef nonnull @.str.833, ptr noundef %17)
  call void @_ZN11alglib_implL29lpqppresolve_dynqcinitfromxqcEPNS_21xquadraticconstraintsEPNS_22dynamiccrsqconstraintsEPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef nonnull %31, ptr noundef %17)
  %199 = getelementptr inbounds i8, ptr %31, i64 136
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %63, i1 noundef zeroext false, ptr noundef nonnull %199, ptr noundef %17)
  br i1 %.not604.not649, label %.lr.ph660, label %.lr.ph664.preheader

.lr.ph660:                                        ; preds = %195
  %200 = getelementptr inbounds i8, ptr %23, i64 56
  br label %201

201:                                              ; preds = %.lr.ph660, %._crit_edge656
  %.3658 = phi i64 [ 0, %.lr.ph660 ], [ %215, %._crit_edge656 ]
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef nonnull %31, i64 noundef %.3658, ptr noundef nonnull %50, ptr noundef %17)
  %202 = load ptr, ptr %49, align 8, !tbaa !32
  %203 = load i64, ptr %202, align 8, !tbaa !38
  %.not625.not652 = icmp sgt i64 %203, 0
  br i1 %.not625.not652, label %.lr.ph655, label %._crit_edge656

.lr.ph655:                                        ; preds = %201
  %204 = getelementptr inbounds i8, ptr %202, i64 64
  br label %205

205:                                              ; preds = %.lr.ph655, %205
  %.0581653 = phi i64 [ 0, %.lr.ph655 ], [ %213, %205 ]
  %206 = load ptr, ptr %200, align 8, !tbaa !5
  %207 = load ptr, ptr %204, align 8, !tbaa !5
  %208 = getelementptr inbounds i64, ptr %207, i64 %.0581653
  %209 = load i64, ptr %208, align 8, !tbaa !15
  %210 = getelementptr inbounds i64, ptr %206, i64 %209
  %211 = load i64, ptr %210, align 8, !tbaa !15
  %212 = add nsw i64 %211, 1
  store i64 %212, ptr %210, align 8, !tbaa !15
  %213 = add nuw nsw i64 %.0581653, 1
  %214 = load i64, ptr %202, align 8, !tbaa !38
  %.not625.not = icmp slt i64 %213, %214
  br i1 %.not625.not, label %205, label %._crit_edge656, !llvm.loop !39

._crit_edge656:                                   ; preds = %205, %201
  %215 = add nuw nsw i64 %.3658, 1
  %exitcond762.not = icmp eq i64 %215, %63
  br i1 %exitcond762.not, label %.lr.ph664.preheader, label %201, !llvm.loop !40

.lr.ph664.preheader:                              ; preds = %._crit_edge656, %195
  br label %.lr.ph664

.lr.ph664:                                        ; preds = %.lr.ph664.preheader, %227
  %.0662 = phi i32 [ %228, %227 ], [ 0, %.lr.ph664.preheader ]
  store i8 0, ptr %20, align 1, !tbaa !41
  %216 = call noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_dropemptycolEPNS_9ae_vectorES1_S1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPKS0_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %21, ptr noundef nonnull %196, ptr noundef nonnull %28, i1 noundef zeroext %7, i64 noundef %8, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %35, ptr noundef nonnull %36, i64 noundef %12, ptr noundef nonnull %23, double noundef %183, i1 noundef zeroext %83, ptr noundef nonnull %197, ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %20, ptr noundef nonnull %37, ptr noundef %17)
  br i1 %216, label %217, label %.loopexit787

217:                                              ; preds = %.lr.ph664
  %218 = call noundef zeroext i1 @_ZN11alglib_implL38lpqppresolve_dropclearlynonbindingrowsElPNS_9ae_vectorEPNS_10dynamiccrsES3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_SA_PNS_8ae_stateE(i64 noundef %8, ptr noundef nonnull %22, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %35, ptr noundef nonnull %36, i64 noundef %12, ptr noundef nonnull %31, ptr noundef nonnull %23, double noundef %183, i1 noundef zeroext %83, ptr noundef nonnull %197, ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %20, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef %17)
  br i1 %218, label %219, label %.loopexit787

219:                                              ; preds = %217
  %220 = call noundef zeroext i1 @_ZN11alglib_implL29lpqppresolve_singletonrowtobcEPNS_9ae_vectorES1_S1_lPNS_10dynamiccrsES3_S1_S1_S1_ldbPNS_15presolvebuffersEPNS_14presolverstackEPlPbS8_PNS_8ae_stateE(ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %21, i64 noundef %8, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %22, i64 noundef %12, double noundef %183, i1 noundef zeroext %83, ptr noundef nonnull %197, ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %20, ptr noundef nonnull %43, ptr noundef %17)
  br i1 %220, label %221, label %.loopexit787

221:                                              ; preds = %219
  %222 = call noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_doubletonrowEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %21, ptr noundef nonnull %28, i1 noundef zeroext %7, i64 noundef %8, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %22, i64 noundef %12, ptr noundef nonnull %31, ptr noundef nonnull %23, double noundef %183, i1 noundef zeroext %83, ptr noundef nonnull %197, ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %20, ptr noundef nonnull %44, ptr noundef %17)
  br i1 %222, label %223, label %.loopexit787

223:                                              ; preds = %221
  %224 = call noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_fixvariablesEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %21, ptr noundef nonnull %28, i1 noundef zeroext %7, i64 noundef %8, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %35, ptr noundef nonnull %36, i64 noundef %12, ptr noundef nonnull %31, ptr noundef nonnull %23, double noundef %183, i1 noundef zeroext %83, ptr noundef nonnull %197, ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %20, ptr noundef nonnull %42, ptr noundef %17)
  br i1 %224, label %225, label %.loopexit787

225:                                              ; preds = %223
  %226 = call noundef zeroext i1 @_ZN11alglib_implL26lpqppresolve_singletoncolsEPNS_9ae_vectorEPKS0_S3_S1_PNS_10dynamiccrsEblS5_S5_S1_S1_S1_lS1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_PNS_8ae_stateE(ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %21, ptr noundef nonnull %28, i1 noundef zeroext %7, i64 noundef %8, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %22, i64 noundef %12, ptr noundef nonnull %23, double noundef %183, i1 noundef zeroext %83, ptr noundef nonnull %197, ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %20, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef %17)
  br i1 %226, label %227, label %.loopexit787

227:                                              ; preds = %225
  %228 = add i32 %.0662, 1
  %229 = load i8, ptr %20, align 1, !tbaa !41, !range !42, !noundef !43
  %230 = trunc nuw i8 %229 to i1
  br i1 %230, label %.lr.ph664, label %._crit_edge665, !llvm.loop !44

._crit_edge665:                                   ; preds = %227
  br i1 %.not603.not646, label %.preheader630, label %274

.preheader630:                                    ; preds = %._crit_edge665
  %231 = getelementptr inbounds i8, ptr %29, i64 144
  %232 = load ptr, ptr %231, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %29, i64 80
  %234 = load ptr, ptr %233, align 8, !tbaa !5
  %min.iters.check = icmp ult i64 %12, 4
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

scalar.ph.preheader:                              ; preds = %middle.block, %.preheader630
  %.1582667.ph = phi i64 [ 0, %.preheader630 ], [ %n.vec, %middle.block ]
  %.0594666.ph = phi i64 [ 0, %.preheader630 ], [ %244, %middle.block ]
  br label %scalar.ph

vector.ph:                                        ; preds = %.preheader630
  %n.vec = and i64 %12, 9223372036854775804
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.phi = phi <2 x i64> [ zeroinitializer, %vector.ph ], [ %241, %vector.body ]
  %vec.phi794 = phi <2 x i64> [ zeroinitializer, %vector.ph ], [ %242, %vector.body ]
  %235 = getelementptr inbounds i64, ptr %232, i64 %index
  %236 = getelementptr inbounds i8, ptr %235, i64 16
  %wide.load = load <2 x i64>, ptr %235, align 8, !tbaa !15
  %wide.load795 = load <2 x i64>, ptr %236, align 8, !tbaa !15
  %237 = getelementptr inbounds i64, ptr %234, i64 %index
  %238 = getelementptr inbounds i8, ptr %237, i64 16
  %wide.load796 = load <2 x i64>, ptr %237, align 8, !tbaa !15
  %wide.load797 = load <2 x i64>, ptr %238, align 8, !tbaa !15
  %239 = add <2 x i64> %wide.load, %vec.phi
  %240 = add <2 x i64> %wide.load795, %vec.phi794
  %241 = sub <2 x i64> %239, %wide.load796
  %242 = sub <2 x i64> %240, %wide.load797
  %index.next = add nuw i64 %index, 4
  %243 = icmp eq i64 %index.next, %n.vec
  br i1 %243, label %middle.block, label %vector.body, !llvm.loop !45

middle.block:                                     ; preds = %vector.body
  %bin.rdx = add <2 x i64> %242, %241
  %244 = call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %bin.rdx)
  %cmp.n = icmp eq i64 %n.vec, %12
  br i1 %cmp.n, label %.preheader629, label %scalar.ph.preheader

.preheader629:                                    ; preds = %scalar.ph, %middle.block
  %.lcssa789 = phi i64 [ %244, %middle.block ], [ %264, %scalar.ph ]
  br i1 %.not602.not644, label %.lr.ph671, label %._crit_edge672

.lr.ph671:                                        ; preds = %.preheader629
  %245 = getelementptr inbounds i8, ptr %30, i64 144
  %246 = load ptr, ptr %245, align 8, !tbaa !5
  %247 = getelementptr inbounds i8, ptr %30, i64 80
  %248 = load ptr, ptr %247, align 8, !tbaa !5
  %min.iters.check800 = icmp ult i64 %8, 4
  br i1 %min.iters.check800, label %scalar.ph799.preheader, label %vector.ph801

scalar.ph799.preheader:                           ; preds = %middle.block798, %.lr.ph671
  %.2583670.ph = phi i64 [ 0, %.lr.ph671 ], [ %n.vec803, %middle.block798 ]
  %.0595669.ph = phi i64 [ 0, %.lr.ph671 ], [ %258, %middle.block798 ]
  br label %scalar.ph799

vector.ph801:                                     ; preds = %.lr.ph671
  %n.vec803 = and i64 %8, 9223372036854775804
  br label %vector.body805

vector.body805:                                   ; preds = %vector.body805, %vector.ph801
  %index806 = phi i64 [ 0, %vector.ph801 ], [ %index.next813, %vector.body805 ]
  %vec.phi807 = phi <2 x i64> [ zeroinitializer, %vector.ph801 ], [ %255, %vector.body805 ]
  %vec.phi808 = phi <2 x i64> [ zeroinitializer, %vector.ph801 ], [ %256, %vector.body805 ]
  %249 = getelementptr inbounds i64, ptr %246, i64 %index806
  %250 = getelementptr inbounds i8, ptr %249, i64 16
  %wide.load809 = load <2 x i64>, ptr %249, align 8, !tbaa !15
  %wide.load810 = load <2 x i64>, ptr %250, align 8, !tbaa !15
  %251 = getelementptr inbounds i64, ptr %248, i64 %index806
  %252 = getelementptr inbounds i8, ptr %251, i64 16
  %wide.load811 = load <2 x i64>, ptr %251, align 8, !tbaa !15
  %wide.load812 = load <2 x i64>, ptr %252, align 8, !tbaa !15
  %253 = add <2 x i64> %wide.load809, %vec.phi807
  %254 = add <2 x i64> %wide.load810, %vec.phi808
  %255 = sub <2 x i64> %253, %wide.load811
  %256 = sub <2 x i64> %254, %wide.load812
  %index.next813 = add nuw i64 %index806, 4
  %257 = icmp eq i64 %index.next813, %n.vec803
  br i1 %257, label %middle.block798, label %vector.body805, !llvm.loop !48

middle.block798:                                  ; preds = %vector.body805
  %bin.rdx814 = add <2 x i64> %256, %255
  %258 = call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %bin.rdx814)
  %cmp.n815 = icmp eq i64 %n.vec803, %8
  br i1 %cmp.n815, label %._crit_edge672, label %scalar.ph799.preheader

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.1582667 = phi i64 [ %265, %scalar.ph ], [ %.1582667.ph, %scalar.ph.preheader ]
  %.0594666 = phi i64 [ %264, %scalar.ph ], [ %.0594666.ph, %scalar.ph.preheader ]
  %259 = getelementptr inbounds i64, ptr %232, i64 %.1582667
  %260 = load i64, ptr %259, align 8, !tbaa !15
  %261 = getelementptr inbounds i64, ptr %234, i64 %.1582667
  %262 = load i64, ptr %261, align 8, !tbaa !15
  %263 = add i64 %260, %.0594666
  %264 = sub i64 %263, %262
  %265 = add nuw nsw i64 %.1582667, 1
  %exitcond763.not = icmp eq i64 %265, %12
  br i1 %exitcond763.not, label %.preheader629, label %scalar.ph, !llvm.loop !49

scalar.ph799:                                     ; preds = %scalar.ph799.preheader, %scalar.ph799
  %.2583670 = phi i64 [ %272, %scalar.ph799 ], [ %.2583670.ph, %scalar.ph799.preheader ]
  %.0595669 = phi i64 [ %271, %scalar.ph799 ], [ %.0595669.ph, %scalar.ph799.preheader ]
  %266 = getelementptr inbounds i64, ptr %246, i64 %.2583670
  %267 = load i64, ptr %266, align 8, !tbaa !15
  %268 = getelementptr inbounds i64, ptr %248, i64 %.2583670
  %269 = load i64, ptr %268, align 8, !tbaa !15
  %270 = add i64 %267, %.0595669
  %271 = sub i64 %270, %269
  %272 = add nuw nsw i64 %.2583670, 1
  %exitcond764.not = icmp eq i64 %272, %8
  br i1 %exitcond764.not, label %._crit_edge672, label %scalar.ph799, !llvm.loop !50

._crit_edge672:                                   ; preds = %scalar.ph799, %middle.block798, %.preheader629
  %.0595.lcssa = phi i64 [ 0, %.preheader629 ], [ %258, %middle.block798 ], [ %271, %scalar.ph799 ]
  %273 = icmp eq i64 %.lcssa789, %.0595.lcssa
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %273, ptr noundef nonnull @.str.834, ptr noundef %17)
  br label %274

274:                                              ; preds = %._crit_edge672, %._crit_edge665
  br i1 %.not604.not649, label %.lr.ph681, label %.preheader628

.lr.ph681:                                        ; preds = %274
  %275 = getelementptr inbounds i8, ptr %31, i64 192
  %276 = getelementptr inbounds i8, ptr %21, i64 56
  %277 = getelementptr inbounds i8, ptr %23, i64 56
  br label %279

.preheader628:                                    ; preds = %.loopexit, %274
  br i1 %.not602.not644, label %.lr.ph684, label %._crit_edge685

.lr.ph684:                                        ; preds = %.preheader628
  %278 = getelementptr inbounds i8, ptr %23, i64 56
  br label %307

279:                                              ; preds = %.lr.ph681, %.loopexit
  %.4679 = phi i64 [ 0, %.lr.ph681 ], [ %306, %.loopexit ]
  %280 = load ptr, ptr %275, align 8, !tbaa !5
  %281 = getelementptr inbounds i8, ptr %280, i64 %.4679
  %282 = load i8, ptr %281, align 1, !tbaa !41, !range !42, !noundef !43
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %.loopexit, label %284

284:                                              ; preds = %279
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef nonnull %31, i64 noundef %.4679, ptr noundef nonnull %50, ptr noundef %17)
  %285 = load ptr, ptr %49, align 8, !tbaa !32
  %286 = load i64, ptr %285, align 8, !tbaa !38
  %.not624.not674 = icmp sgt i64 %286, 0
  br i1 %.not624.not674, label %.lr.ph677, label %.loopexit

.lr.ph677:                                        ; preds = %284, %297
  %287 = phi ptr [ %298, %297 ], [ %285, %284 ]
  %.3584675 = phi i64 [ %304, %297 ], [ 0, %284 ]
  %288 = load ptr, ptr %276, align 8, !tbaa !5
  %289 = getelementptr inbounds i8, ptr %287, i64 64
  %290 = load ptr, ptr %289, align 8, !tbaa !5
  %291 = getelementptr inbounds i64, ptr %290, i64 %.3584675
  %292 = load i64, ptr %291, align 8, !tbaa !15
  %293 = getelementptr inbounds i8, ptr %288, i64 %292
  %294 = load i8, ptr %293, align 1, !tbaa !41, !range !42, !noundef !43
  %295 = trunc nuw i8 %294 to i1
  br i1 %295, label %296, label %297

296:                                              ; preds = %.lr.ph677
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.835, ptr noundef %17)
  %.pre = load ptr, ptr %49, align 8, !tbaa !32
  %.phi.trans.insert = getelementptr inbounds i8, ptr %.pre, i64 64
  %.pre778 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !5
  %.phi.trans.insert779 = getelementptr inbounds i64, ptr %.pre778, i64 %.3584675
  %.pre780 = load i64, ptr %.phi.trans.insert779, align 8, !tbaa !15
  br label %297

297:                                              ; preds = %296, %.lr.ph677
  %298 = phi ptr [ %.pre, %296 ], [ %287, %.lr.ph677 ]
  %299 = phi i64 [ %.pre780, %296 ], [ %292, %.lr.ph677 ]
  %300 = load ptr, ptr %277, align 8, !tbaa !5
  %301 = getelementptr inbounds i64, ptr %300, i64 %299
  %302 = load i64, ptr %301, align 8, !tbaa !15
  %303 = add nsw i64 %302, -1
  store i64 %303, ptr %301, align 8, !tbaa !15
  %304 = add nuw nsw i64 %.3584675, 1
  %305 = load i64, ptr %298, align 8, !tbaa !38
  %.not624.not = icmp slt i64 %304, %305
  br i1 %.not624.not, label %.lr.ph677, label %.loopexit, !llvm.loop !51

.loopexit:                                        ; preds = %297, %284, %279
  %306 = add nuw nsw i64 %.4679, 1
  %exitcond765.not = icmp eq i64 %306, %63
  br i1 %exitcond765.not, label %.preheader628, label %279, !llvm.loop !52

307:                                              ; preds = %.lr.ph684, %312
  %.5683 = phi i64 [ 0, %.lr.ph684 ], [ %313, %312 ]
  %308 = load ptr, ptr %278, align 8, !tbaa !5
  %309 = getelementptr inbounds i64, ptr %308, i64 %.5683
  %310 = load i64, ptr %309, align 8, !tbaa !15
  %.not623 = icmp eq i64 %310, 0
  br i1 %.not623, label %312, label %311

311:                                              ; preds = %307
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.836, ptr noundef %17)
  br label %312

312:                                              ; preds = %307, %311
  %313 = add nuw nsw i64 %.5683, 1
  %exitcond766.not = icmp eq i64 %313, %8
  br i1 %exitcond766.not, label %._crit_edge685, label %307, !llvm.loop !53

._crit_edge685:                                   ; preds = %312, %.preheader628
  %314 = getelementptr inbounds i8, ptr %16, i64 8
  store i64 %8, ptr %314, align 8, !tbaa !54
  store i64 0, ptr %16, align 8, !tbaa !55
  %315 = getelementptr inbounds i8, ptr %16, i64 2832
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %8, i64 noundef -1, ptr noundef nonnull %315, ptr noundef %17)
  %316 = getelementptr inbounds i8, ptr %16, i64 3088
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %8, i64 noundef -1, ptr noundef nonnull %316, ptr noundef %17)
  br i1 %.not602.not644, label %.lr.ph689, label %._crit_edge690

.lr.ph689:                                        ; preds = %._crit_edge685
  %317 = getelementptr inbounds i8, ptr %21, i64 56
  %318 = getelementptr inbounds i8, ptr %16, i64 3144
  %319 = getelementptr inbounds i8, ptr %16, i64 2888
  br label %320

320:                                              ; preds = %.lr.ph689, %333
  %.6687 = phi i64 [ 0, %.lr.ph689 ], [ %334, %333 ]
  %321 = load ptr, ptr %317, align 8, !tbaa !5
  %322 = getelementptr inbounds i8, ptr %321, i64 %.6687
  %323 = load i8, ptr %322, align 1, !tbaa !41, !range !42, !noundef !43
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %333, label %325

325:                                              ; preds = %320
  %326 = load ptr, ptr %318, align 8, !tbaa !5
  %327 = load i64, ptr %16, align 8, !tbaa !55
  %328 = getelementptr inbounds i64, ptr %326, i64 %327
  store i64 %.6687, ptr %328, align 8, !tbaa !15
  %329 = load i64, ptr %16, align 8, !tbaa !55
  %330 = load ptr, ptr %319, align 8, !tbaa !5
  %331 = getelementptr inbounds i64, ptr %330, i64 %.6687
  store i64 %329, ptr %331, align 8, !tbaa !15
  %332 = add nsw i64 %329, 1
  store i64 %332, ptr %16, align 8, !tbaa !55
  br label %333

333:                                              ; preds = %320, %325
  %334 = add nuw nsw i64 %.6687, 1
  %exitcond767.not = icmp eq i64 %334, %8
  br i1 %exitcond767.not, label %._crit_edge690, label %320, !llvm.loop !56

._crit_edge690:                                   ; preds = %333, %._crit_edge685
  %335 = load i64, ptr %16, align 8, !tbaa !55
  %336 = getelementptr inbounds i8, ptr %16, i64 1488
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %335, ptr noundef nonnull %336, ptr noundef %17)
  %337 = load i64, ptr %16, align 8, !tbaa !55
  %338 = getelementptr inbounds i8, ptr %16, i64 1552
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %337, ptr noundef nonnull %338, ptr noundef %17)
  %339 = load i64, ptr %16, align 8, !tbaa !55
  %340 = getelementptr inbounds i8, ptr %16, i64 1424
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %339, ptr noundef nonnull %340, ptr noundef %17)
  %341 = load i64, ptr %16, align 8, !tbaa !55
  %.not611.not691 = icmp sgt i64 %341, 0
  br i1 %.not611.not691, label %.lr.ph694, label %._crit_edge695

.lr.ph694:                                        ; preds = %._crit_edge690
  %342 = getelementptr inbounds i8, ptr %32, i64 56
  %343 = getelementptr inbounds i8, ptr %16, i64 3144
  %344 = getelementptr inbounds i8, ptr %16, i64 1480
  %345 = getelementptr inbounds i8, ptr %33, i64 56
  %346 = getelementptr inbounds i8, ptr %16, i64 1544
  %347 = getelementptr inbounds i8, ptr %34, i64 56
  %348 = getelementptr inbounds i8, ptr %16, i64 1608
  br label %349

349:                                              ; preds = %.lr.ph694, %349
  %.7692 = phi i64 [ 0, %.lr.ph694 ], [ %374, %349 ]
  %350 = load ptr, ptr %342, align 8, !tbaa !5
  %351 = load ptr, ptr %343, align 8, !tbaa !5
  %352 = getelementptr inbounds i64, ptr %351, i64 %.7692
  %353 = load i64, ptr %352, align 8, !tbaa !15
  %354 = getelementptr inbounds double, ptr %350, i64 %353
  %355 = load double, ptr %354, align 8, !tbaa !16
  %356 = load ptr, ptr %344, align 8, !tbaa !5
  %357 = getelementptr inbounds double, ptr %356, i64 %.7692
  store double %355, ptr %357, align 8, !tbaa !16
  %358 = load ptr, ptr %345, align 8, !tbaa !5
  %359 = load ptr, ptr %343, align 8, !tbaa !5
  %360 = getelementptr inbounds i64, ptr %359, i64 %.7692
  %361 = load i64, ptr %360, align 8, !tbaa !15
  %362 = getelementptr inbounds double, ptr %358, i64 %361
  %363 = load double, ptr %362, align 8, !tbaa !16
  %364 = load ptr, ptr %346, align 8, !tbaa !5
  %365 = getelementptr inbounds double, ptr %364, i64 %.7692
  store double %363, ptr %365, align 8, !tbaa !16
  %366 = load ptr, ptr %347, align 8, !tbaa !5
  %367 = load ptr, ptr %343, align 8, !tbaa !5
  %368 = getelementptr inbounds i64, ptr %367, i64 %.7692
  %369 = load i64, ptr %368, align 8, !tbaa !15
  %370 = getelementptr inbounds double, ptr %366, i64 %369
  %371 = load double, ptr %370, align 8, !tbaa !16
  %372 = load ptr, ptr %348, align 8, !tbaa !5
  %373 = getelementptr inbounds double, ptr %372, i64 %.7692
  store double %371, ptr %373, align 8, !tbaa !16
  %374 = add nuw nsw i64 %.7692, 1
  %exitcond768.not = icmp eq i64 %374, %341
  br i1 %exitcond768.not, label %._crit_edge695, label %349, !llvm.loop !57

._crit_edge695:                                   ; preds = %349, %._crit_edge690
  br i1 %7, label %375, label %428

375:                                              ; preds = %._crit_edge695
  %376 = getelementptr inbounds i8, ptr %16, i64 1616
  %377 = getelementptr inbounds i8, ptr %16, i64 1952
  store i64 %341, ptr %377, align 8, !tbaa !58
  %378 = getelementptr inbounds i8, ptr %16, i64 1944
  store i64 %341, ptr %378, align 8, !tbaa !59
  %379 = add nsw i64 %341, 1
  %380 = getelementptr inbounds i8, ptr %16, i64 1744
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %379, ptr noundef nonnull %380, ptr noundef %17)
  %381 = getelementptr inbounds i8, ptr %16, i64 1800
  %382 = load ptr, ptr %381, align 8, !tbaa !5
  store i64 0, ptr %382, align 8, !tbaa !15
  %383 = load i64, ptr %16, align 8, !tbaa !55
  %.not612.not704 = icmp sgt i64 %383, 0
  br i1 %.not612.not704, label %.lr.ph707, label %._crit_edge708

.lr.ph707:                                        ; preds = %375
  %384 = getelementptr inbounds i8, ptr %16, i64 1680
  %385 = getelementptr inbounds i8, ptr %16, i64 3144
  %386 = getelementptr inbounds i8, ptr %28, i64 80
  %387 = getelementptr inbounds i8, ptr %28, i64 144
  %388 = getelementptr inbounds i8, ptr %16, i64 2888
  %389 = getelementptr inbounds i8, ptr %28, i64 208
  %390 = getelementptr inbounds i8, ptr %16, i64 1736
  %391 = getelementptr inbounds i8, ptr %28, i64 272
  %392 = getelementptr inbounds i8, ptr %16, i64 1672
  br label %393

393:                                              ; preds = %.lr.ph707, %._crit_edge702
  %.8705 = phi i64 [ 0, %.lr.ph707 ], [ %425, %._crit_edge702 ]
  %394 = load ptr, ptr %381, align 8, !tbaa !5
  %395 = getelementptr inbounds i64, ptr %394, i64 %.8705
  %396 = load i64, ptr %395, align 8, !tbaa !15
  %397 = add nsw i64 %396, %8
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %397, ptr noundef nonnull %384, ptr noundef %17)
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %397, ptr noundef nonnull %376, ptr noundef %17)
  %398 = load ptr, ptr %385, align 8, !tbaa !5
  %399 = getelementptr inbounds i64, ptr %398, i64 %.8705
  %400 = load i64, ptr %399, align 8, !tbaa !15
  %401 = load ptr, ptr %386, align 8, !tbaa !5
  %402 = getelementptr inbounds i64, ptr %401, i64 %400
  %403 = load i64, ptr %402, align 8, !tbaa !15
  %404 = load ptr, ptr %387, align 8, !tbaa !5
  %405 = getelementptr inbounds i64, ptr %404, i64 %400
  %406 = load i64, ptr %405, align 8, !tbaa !15
  %.not622.not697 = icmp slt i64 %403, %406
  br i1 %.not622.not697, label %.lr.ph701, label %._crit_edge702

.lr.ph701:                                        ; preds = %393, %422
  %.0585699 = phi i64 [ %.1586, %422 ], [ %396, %393 ]
  %.0592698 = phi i64 [ %423, %422 ], [ %403, %393 ]
  %407 = load ptr, ptr %388, align 8, !tbaa !5
  %408 = load ptr, ptr %389, align 8, !tbaa !5
  %409 = getelementptr inbounds i64, ptr %408, i64 %.0592698
  %410 = load i64, ptr %409, align 8, !tbaa !15
  %411 = getelementptr inbounds i64, ptr %407, i64 %410
  %412 = load i64, ptr %411, align 8, !tbaa !15
  %or.cond = icmp ugt i64 %412, %.8705
  br i1 %or.cond, label %422, label %413

413:                                              ; preds = %.lr.ph701
  %414 = load ptr, ptr %390, align 8, !tbaa !5
  %415 = getelementptr inbounds i64, ptr %414, i64 %.0585699
  store i64 %412, ptr %415, align 8, !tbaa !15
  %416 = load ptr, ptr %391, align 8, !tbaa !5
  %417 = getelementptr inbounds double, ptr %416, i64 %.0592698
  %418 = load double, ptr %417, align 8, !tbaa !16
  %419 = load ptr, ptr %392, align 8, !tbaa !5
  %420 = getelementptr inbounds double, ptr %419, i64 %.0585699
  store double %418, ptr %420, align 8, !tbaa !16
  %421 = add nsw i64 %.0585699, 1
  br label %422

422:                                              ; preds = %.lr.ph701, %413
  %.1586 = phi i64 [ %.0585699, %.lr.ph701 ], [ %421, %413 ]
  %423 = add nsw i64 %.0592698, 1
  %exitcond769.not = icmp eq i64 %423, %406
  br i1 %exitcond769.not, label %._crit_edge702, label %.lr.ph701, !llvm.loop !60

._crit_edge702:                                   ; preds = %422, %393
  %.0585.lcssa = phi i64 [ %396, %393 ], [ %.1586, %422 ]
  %424 = load ptr, ptr %381, align 8, !tbaa !5
  %425 = add nuw nsw i64 %.8705, 1
  %426 = getelementptr inbounds i64, ptr %424, i64 %425
  store i64 %.0585.lcssa, ptr %426, align 8, !tbaa !15
  %427 = load i64, ptr %16, align 8, !tbaa !55
  %.not612.not = icmp slt i64 %425, %427
  br i1 %.not612.not, label %393, label %._crit_edge708, !llvm.loop !61

._crit_edge708:                                   ; preds = %._crit_edge702, %375
  call void @_ZN11alglib_impl22sparsecreatecrsinplaceEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %376, ptr noundef %17)
  br label %428

428:                                              ; preds = %._crit_edge708, %._crit_edge695
  %429 = getelementptr inbounds i8, ptr %16, i64 40
  store i64 %12, ptr %429, align 8, !tbaa !62
  %430 = getelementptr inbounds i8, ptr %16, i64 32
  store i64 0, ptr %430, align 8, !tbaa !63
  %431 = getelementptr inbounds i8, ptr %16, i64 2896
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %12, i64 noundef -1, ptr noundef nonnull %431, ptr noundef %17)
  %432 = getelementptr inbounds i8, ptr %16, i64 3152
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %12, i64 noundef -1, ptr noundef nonnull %432, ptr noundef %17)
  br i1 %.not603.not646, label %.lr.ph712, label %._crit_edge713

.lr.ph712:                                        ; preds = %428
  %433 = getelementptr inbounds i8, ptr %22, i64 56
  %434 = getelementptr inbounds i8, ptr %16, i64 3208
  %435 = getelementptr inbounds i8, ptr %16, i64 2952
  br label %436

436:                                              ; preds = %.lr.ph712, %449
  %.9710 = phi i64 [ 0, %.lr.ph712 ], [ %450, %449 ]
  %437 = load ptr, ptr %433, align 8, !tbaa !5
  %438 = getelementptr inbounds i8, ptr %437, i64 %.9710
  %439 = load i8, ptr %438, align 1, !tbaa !41, !range !42, !noundef !43
  %440 = trunc nuw i8 %439 to i1
  br i1 %440, label %449, label %441

441:                                              ; preds = %436
  %442 = load ptr, ptr %434, align 8, !tbaa !5
  %443 = load i64, ptr %430, align 8, !tbaa !63
  %444 = getelementptr inbounds i64, ptr %442, i64 %443
  store i64 %.9710, ptr %444, align 8, !tbaa !15
  %445 = load i64, ptr %430, align 8, !tbaa !63
  %446 = load ptr, ptr %435, align 8, !tbaa !5
  %447 = getelementptr inbounds i64, ptr %446, i64 %.9710
  store i64 %445, ptr %447, align 8, !tbaa !15
  %448 = add nsw i64 %445, 1
  store i64 %448, ptr %430, align 8, !tbaa !63
  br label %449

449:                                              ; preds = %436, %441
  %450 = add nuw nsw i64 %.9710, 1
  %exitcond770.not = icmp eq i64 %450, %12
  br i1 %exitcond770.not, label %._crit_edge713, label %436, !llvm.loop !64

._crit_edge713:                                   ; preds = %449, %428
  %451 = load i64, ptr %430, align 8, !tbaa !63
  %452 = getelementptr inbounds i8, ptr %16, i64 2352
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %451, ptr noundef nonnull %452, ptr noundef %17)
  %453 = load i64, ptr %430, align 8, !tbaa !63
  %454 = getelementptr inbounds i8, ptr %16, i64 2416
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %453, ptr noundef nonnull %454, ptr noundef %17)
  %455 = load i64, ptr %430, align 8, !tbaa !63
  %.not614.not714 = icmp sgt i64 %455, 0
  br i1 %.not614.not714, label %.lr.ph717, label %._crit_edge718

.lr.ph717:                                        ; preds = %._crit_edge713
  %456 = getelementptr inbounds i8, ptr %35, i64 56
  %457 = getelementptr inbounds i8, ptr %16, i64 3208
  %458 = getelementptr inbounds i8, ptr %16, i64 2408
  %459 = getelementptr inbounds i8, ptr %36, i64 56
  %460 = getelementptr inbounds i8, ptr %16, i64 2472
  br label %461

461:                                              ; preds = %.lr.ph717, %461
  %.10715 = phi i64 [ 0, %.lr.ph717 ], [ %478, %461 ]
  %462 = load ptr, ptr %456, align 8, !tbaa !5
  %463 = load ptr, ptr %457, align 8, !tbaa !5
  %464 = getelementptr inbounds i64, ptr %463, i64 %.10715
  %465 = load i64, ptr %464, align 8, !tbaa !15
  %466 = getelementptr inbounds double, ptr %462, i64 %465
  %467 = load double, ptr %466, align 8, !tbaa !16
  %468 = load ptr, ptr %458, align 8, !tbaa !5
  %469 = getelementptr inbounds double, ptr %468, i64 %.10715
  store double %467, ptr %469, align 8, !tbaa !16
  %470 = load ptr, ptr %459, align 8, !tbaa !5
  %471 = load ptr, ptr %457, align 8, !tbaa !5
  %472 = getelementptr inbounds i64, ptr %471, i64 %.10715
  %473 = load i64, ptr %472, align 8, !tbaa !15
  %474 = getelementptr inbounds double, ptr %470, i64 %473
  %475 = load double, ptr %474, align 8, !tbaa !16
  %476 = load ptr, ptr %460, align 8, !tbaa !5
  %477 = getelementptr inbounds double, ptr %476, i64 %.10715
  store double %475, ptr %477, align 8, !tbaa !16
  %478 = add nuw nsw i64 %.10715, 1
  %exitcond771.not = icmp eq i64 %478, %455
  br i1 %exitcond771.not, label %._crit_edge718, label %461, !llvm.loop !65

._crit_edge718:                                   ; preds = %461, %._crit_edge713
  %479 = getelementptr inbounds i8, ptr %16, i64 1984
  %480 = getelementptr inbounds i8, ptr %16, i64 2312
  store i64 0, ptr %480, align 8, !tbaa !66
  %481 = load i64, ptr %16, align 8, !tbaa !55
  %482 = getelementptr inbounds i8, ptr %16, i64 2320
  store i64 %481, ptr %482, align 8, !tbaa !67
  %483 = add nsw i64 %455, 1
  %484 = getelementptr inbounds i8, ptr %16, i64 2112
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %483, ptr noundef nonnull %484, ptr noundef %17)
  %485 = getelementptr inbounds i8, ptr %16, i64 2168
  %486 = load ptr, ptr %485, align 8, !tbaa !5
  store i64 0, ptr %486, align 8, !tbaa !15
  br i1 %.not603.not646, label %.lr.ph730, label %._crit_edge731

.lr.ph730:                                        ; preds = %._crit_edge718
  %487 = getelementptr inbounds i8, ptr %22, i64 56
  %488 = getelementptr inbounds i8, ptr %16, i64 2048
  %489 = getelementptr inbounds i8, ptr %29, i64 80
  %490 = getelementptr inbounds i8, ptr %29, i64 144
  %491 = getelementptr inbounds i8, ptr %16, i64 2888
  %492 = getelementptr inbounds i8, ptr %29, i64 208
  %493 = getelementptr inbounds i8, ptr %16, i64 2104
  %494 = getelementptr inbounds i8, ptr %29, i64 272
  %495 = getelementptr inbounds i8, ptr %16, i64 2040
  br label %496

496:                                              ; preds = %.lr.ph730, %533
  %.11728 = phi i64 [ 0, %.lr.ph730 ], [ %534, %533 ]
  %497 = load ptr, ptr %487, align 8, !tbaa !5
  %498 = getelementptr inbounds i8, ptr %497, i64 %.11728
  %499 = load i8, ptr %498, align 1, !tbaa !41, !range !42, !noundef !43
  %500 = trunc nuw i8 %499 to i1
  br i1 %500, label %533, label %501

501:                                              ; preds = %496
  %502 = load ptr, ptr %485, align 8, !tbaa !5
  %503 = load i64, ptr %480, align 8, !tbaa !66
  %504 = getelementptr inbounds i64, ptr %502, i64 %503
  %505 = load i64, ptr %504, align 8, !tbaa !15
  %506 = add nsw i64 %505, %8
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %506, ptr noundef nonnull %488, ptr noundef %17)
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %506, ptr noundef nonnull %479, ptr noundef %17)
  %507 = load ptr, ptr %489, align 8, !tbaa !5
  %508 = getelementptr inbounds i64, ptr %507, i64 %.11728
  %509 = load i64, ptr %508, align 8, !tbaa !15
  %510 = load ptr, ptr %490, align 8, !tbaa !5
  %511 = getelementptr inbounds i64, ptr %510, i64 %.11728
  %512 = load i64, ptr %511, align 8, !tbaa !15
  %.not621.not720 = icmp slt i64 %509, %512
  br i1 %.not621.not720, label %.lr.ph724, label %._crit_edge725

.lr.ph724:                                        ; preds = %501, %.lr.ph724
  %.2587722 = phi i64 [ %527, %.lr.ph724 ], [ %505, %501 ]
  %.1593721 = phi i64 [ %528, %.lr.ph724 ], [ %509, %501 ]
  %513 = load ptr, ptr %491, align 8, !tbaa !5
  %514 = load ptr, ptr %492, align 8, !tbaa !5
  %515 = getelementptr inbounds i64, ptr %514, i64 %.1593721
  %516 = load i64, ptr %515, align 8, !tbaa !15
  %517 = getelementptr inbounds i64, ptr %513, i64 %516
  %518 = load i64, ptr %517, align 8, !tbaa !15
  %519 = icmp sgt i64 %518, -1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %519, ptr noundef nonnull @.str.837, ptr noundef %17)
  %520 = load ptr, ptr %493, align 8, !tbaa !5
  %521 = getelementptr inbounds i64, ptr %520, i64 %.2587722
  store i64 %518, ptr %521, align 8, !tbaa !15
  %522 = load ptr, ptr %494, align 8, !tbaa !5
  %523 = getelementptr inbounds double, ptr %522, i64 %.1593721
  %524 = load double, ptr %523, align 8, !tbaa !16
  %525 = load ptr, ptr %495, align 8, !tbaa !5
  %526 = getelementptr inbounds double, ptr %525, i64 %.2587722
  store double %524, ptr %526, align 8, !tbaa !16
  %527 = add nsw i64 %.2587722, 1
  %528 = add i64 %.1593721, 1
  %exitcond772.not = icmp eq i64 %528, %512
  br i1 %exitcond772.not, label %._crit_edge725, label %.lr.ph724, !llvm.loop !68

._crit_edge725:                                   ; preds = %.lr.ph724, %501
  %.2587.lcssa = phi i64 [ %505, %501 ], [ %527, %.lr.ph724 ]
  %529 = load i64, ptr %480, align 8, !tbaa !66
  %530 = add nsw i64 %529, 1
  store i64 %530, ptr %480, align 8, !tbaa !66
  %531 = load ptr, ptr %485, align 8, !tbaa !5
  %532 = getelementptr inbounds i64, ptr %531, i64 %530
  store i64 %.2587.lcssa, ptr %532, align 8, !tbaa !15
  br label %533

533:                                              ; preds = %496, %._crit_edge725
  %534 = add nuw nsw i64 %.11728, 1
  %exitcond773.not = icmp eq i64 %534, %12
  br i1 %exitcond773.not, label %._crit_edge731, label %496, !llvm.loop !69

._crit_edge731:                                   ; preds = %533, %._crit_edge718
  %535 = load i64, ptr %480, align 8, !tbaa !66
  %536 = load i64, ptr %430, align 8, !tbaa !63
  %537 = icmp eq i64 %535, %536
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %537, ptr noundef nonnull @.str.838, ptr noundef %17)
  call void @_ZN11alglib_impl22sparsecreatecrsinplaceEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %479, ptr noundef %17)
  %538 = getelementptr inbounds i8, ptr %16, i64 2480
  store i64 %8, ptr %538, align 8, !tbaa !70
  %539 = getelementptr inbounds i8, ptr %16, i64 2488
  call void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef nonnull %539)
  %540 = getelementptr inbounds i8, ptr %16, i64 16
  store i64 %63, ptr %540, align 8, !tbaa !71
  %541 = getelementptr inbounds i8, ptr %16, i64 48
  store i64 0, ptr %541, align 8, !tbaa !72
  %542 = getelementptr inbounds i8, ptr %16, i64 2960
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %63, i64 noundef -1, ptr noundef nonnull %542, ptr noundef %17)
  %543 = getelementptr inbounds i8, ptr %16, i64 3216
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %63, i64 noundef -1, ptr noundef nonnull %543, ptr noundef %17)
  br i1 %.not604.not649, label %.lr.ph735, label %._crit_edge736

.lr.ph735:                                        ; preds = %._crit_edge731
  %544 = getelementptr inbounds i8, ptr %31, i64 192
  %545 = getelementptr inbounds i8, ptr %16, i64 3272
  %546 = getelementptr inbounds i8, ptr %16, i64 3016
  br label %547

547:                                              ; preds = %.lr.ph735, %565
  %.12733 = phi i64 [ 0, %.lr.ph735 ], [ %566, %565 ]
  %548 = load ptr, ptr %544, align 8, !tbaa !5
  %549 = getelementptr inbounds i8, ptr %548, i64 %.12733
  %550 = load i8, ptr %549, align 1, !tbaa !41, !range !42, !noundef !43
  %551 = trunc nuw i8 %550 to i1
  br i1 %551, label %565, label %552

552:                                              ; preds = %547
  %553 = load ptr, ptr %545, align 8, !tbaa !5
  %554 = load i64, ptr %541, align 8, !tbaa !72
  %555 = getelementptr inbounds i64, ptr %553, i64 %554
  store i64 %.12733, ptr %555, align 8, !tbaa !15
  %556 = load i64, ptr %541, align 8, !tbaa !72
  %557 = load ptr, ptr %546, align 8, !tbaa !5
  %558 = getelementptr inbounds i64, ptr %557, i64 %.12733
  store i64 %556, ptr %558, align 8, !tbaa !15
  %559 = add nsw i64 %556, 1
  store i64 %559, ptr %541, align 8, !tbaa !72
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef nonnull %31, i64 noundef %.12733, ptr noundef nonnull %50, ptr noundef %17)
  %560 = call noundef ptr @_ZN11alglib_impl9ae_mallocEmPNS_8ae_stateE(i64 noundef 528, ptr noundef %17)
  store ptr %560, ptr %51, align 8, !tbaa !32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(528) %560, i8 0, i64 528, i1 false)
  call void @_ZN11alglib_impl26_xquadraticconstraint_initEPvPNS_8ae_stateEb(ptr noundef %560, ptr noundef %17, i1 noundef zeroext false)
  %561 = load ptr, ptr %51, align 8, !tbaa !32
  call void @_ZN11alglib_impl19ae_smart_ptr_assignEPNS_12ae_smart_ptrEPvbblPFvS2_PKvPNS_8ae_stateEbEPFvS2_E(ptr noundef nonnull %52, ptr noundef %561, i1 noundef zeroext true, i1 noundef zeroext true, i64 noundef 528, ptr noundef nonnull @_ZN11alglib_impl31_xquadraticconstraint_init_copyEPvPKvPNS_8ae_stateEb, ptr noundef nonnull @_ZN11alglib_impl29_xquadraticconstraint_destroyEPv)
  %562 = load ptr, ptr %49, align 8, !tbaa !32
  %563 = load ptr, ptr %51, align 8, !tbaa !32
  call void @_ZN11alglib_implL27lpqppresolve_dynqcpermtoxqcEPNS_21dynamiccrsqconstraintEPKNS_9ae_vectorES4_PNS_20xquadraticconstraintEPNS_8ae_stateE(ptr noundef %562, ptr noundef nonnull %315, ptr noundef nonnull %316, ptr noundef %563, ptr noundef %17)
  %564 = call noundef i64 @_ZN11alglib_impl28ae_obj_array_append_transferEPNS_12ae_obj_arrayEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef nonnull %539, ptr noundef nonnull %52, ptr noundef %17)
  br label %565

565:                                              ; preds = %547, %552
  %566 = add nuw nsw i64 %.12733, 1
  %exitcond774.not = icmp eq i64 %566, %63
  br i1 %exitcond774.not, label %._crit_edge736, label %547, !llvm.loop !73

._crit_edge736:                                   ; preds = %565, %._crit_edge731
  %567 = getelementptr inbounds i8, ptr %16, i64 24
  store i64 0, ptr %567, align 8, !tbaa !74
  %568 = getelementptr inbounds i8, ptr %16, i64 56
  store i64 0, ptr %568, align 8, !tbaa !75
  %569 = getelementptr inbounds i8, ptr %16, i64 2688
  call void @_ZN11alglib_impl7xccinitElPNS_17xconicconstraintsEPNS_8ae_stateE(i64 noundef %8, ptr noundef nonnull %569, ptr noundef %17)
  %570 = getelementptr inbounds i8, ptr %16, i64 3024
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %179, i64 noundef -1, ptr noundef nonnull %570, ptr noundef %17)
  %571 = getelementptr inbounds i8, ptr %16, i64 3280
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %179, i64 noundef -1, ptr noundef nonnull %571, ptr noundef %17)
  br i1 %.not602.not644, label %.lr.ph741, label %.preheader

.lr.ph741:                                        ; preds = %._crit_edge736
  %572 = getelementptr inbounds i8, ptr %21, i64 56
  %573 = getelementptr inbounds i8, ptr %16, i64 3080
  %xtraiter = and i64 %8, 1
  %574 = icmp eq i64 %8, 1
  br i1 %574, label %.preheader.loopexit.unr-lcssa, label %.lr.ph741.new

.lr.ph741.new:                                    ; preds = %.lr.ph741
  %unroll_iter = and i64 %8, 9223372036854775806
  br label %586

.preheader.loopexit.unr-lcssa:                    ; preds = %605, %.lr.ph741
  %.4589.lcssa.ph = phi i64 [ poison, %.lr.ph741 ], [ %.4589.1, %605 ]
  %.13739.unr = phi i64 [ 0, %.lr.ph741 ], [ %606, %605 ]
  %.3588738.unr = phi i64 [ 0, %.lr.ph741 ], [ %.4589.1, %605 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.preheader, label %.epil.preheader

.epil.preheader:                                  ; preds = %.preheader.loopexit.unr-lcssa
  %575 = load ptr, ptr %572, align 8, !tbaa !5
  %576 = getelementptr inbounds i8, ptr %575, i64 %.13739.unr
  %577 = load i8, ptr %576, align 1, !tbaa !41, !range !42, !noundef !43
  %578 = trunc nuw i8 %577 to i1
  br i1 %578, label %.preheader, label %579

579:                                              ; preds = %.epil.preheader
  %580 = load ptr, ptr %573, align 8, !tbaa !5
  %581 = getelementptr inbounds i64, ptr %580, i64 %.13739.unr
  store i64 %.3588738.unr, ptr %581, align 8, !tbaa !15
  %582 = add nsw i64 %.3588738.unr, 1
  br label %.preheader

.preheader:                                       ; preds = %.preheader.loopexit.unr-lcssa, %579, %.epil.preheader, %._crit_edge736
  %.3588.lcssa = phi i64 [ 0, %._crit_edge736 ], [ %.4589.lcssa.ph, %.preheader.loopexit.unr-lcssa ], [ %.3588738.unr, %.epil.preheader ], [ %582, %579 ]
  br i1 %.not603.not646, label %.lr.ph746, label %._crit_edge747

.lr.ph746:                                        ; preds = %.preheader
  %583 = getelementptr inbounds i8, ptr %22, i64 56
  %584 = getelementptr inbounds i8, ptr %16, i64 3080
  %xtraiter829 = and i64 %12, 1
  %585 = icmp eq i64 %12, 1
  br i1 %585, label %._crit_edge747.loopexit.unr-lcssa, label %.lr.ph746.new

.lr.ph746.new:                                    ; preds = %.lr.ph746
  %unroll_iter832 = and i64 %12, 9223372036854775806
  br label %607

586:                                              ; preds = %605, %.lr.ph741.new
  %.13739 = phi i64 [ 0, %.lr.ph741.new ], [ %606, %605 ]
  %.3588738 = phi i64 [ 0, %.lr.ph741.new ], [ %.4589.1, %605 ]
  %niter = phi i64 [ 0, %.lr.ph741.new ], [ %niter.next.1, %605 ]
  %587 = load ptr, ptr %572, align 8, !tbaa !5
  %588 = getelementptr inbounds i8, ptr %587, i64 %.13739
  %589 = load i8, ptr %588, align 1, !tbaa !41, !range !42, !noundef !43
  %590 = trunc nuw i8 %589 to i1
  br i1 %590, label %595, label %591

591:                                              ; preds = %586
  %592 = load ptr, ptr %573, align 8, !tbaa !5
  %593 = getelementptr inbounds i64, ptr %592, i64 %.13739
  store i64 %.3588738, ptr %593, align 8, !tbaa !15
  %594 = add nsw i64 %.3588738, 1
  br label %595

595:                                              ; preds = %586, %591
  %.4589 = phi i64 [ %.3588738, %586 ], [ %594, %591 ]
  %596 = or disjoint i64 %.13739, 1
  %597 = load ptr, ptr %572, align 8, !tbaa !5
  %598 = getelementptr inbounds i8, ptr %597, i64 %596
  %599 = load i8, ptr %598, align 1, !tbaa !41, !range !42, !noundef !43
  %600 = trunc nuw i8 %599 to i1
  br i1 %600, label %605, label %601

601:                                              ; preds = %595
  %602 = load ptr, ptr %573, align 8, !tbaa !5
  %603 = getelementptr inbounds i64, ptr %602, i64 %596
  store i64 %.4589, ptr %603, align 8, !tbaa !15
  %604 = add nsw i64 %.4589, 1
  br label %605

605:                                              ; preds = %601, %595
  %.4589.1 = phi i64 [ %.4589, %595 ], [ %604, %601 ]
  %606 = add nuw nsw i64 %.13739, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.preheader.loopexit.unr-lcssa, label %586, !llvm.loop !76

607:                                              ; preds = %628, %.lr.ph746.new
  %.14745 = phi i64 [ 0, %.lr.ph746.new ], [ %629, %628 ]
  %.5590744 = phi i64 [ %.3588.lcssa, %.lr.ph746.new ], [ %.6591.1, %628 ]
  %niter833 = phi i64 [ 0, %.lr.ph746.new ], [ %niter833.next.1, %628 ]
  %608 = load ptr, ptr %583, align 8, !tbaa !5
  %609 = getelementptr inbounds i8, ptr %608, i64 %.14745
  %610 = load i8, ptr %609, align 1, !tbaa !41, !range !42, !noundef !43
  %611 = trunc nuw i8 %610 to i1
  br i1 %611, label %617, label %612

612:                                              ; preds = %607
  %613 = load ptr, ptr %584, align 8, !tbaa !5
  %614 = getelementptr i64, ptr %613, i64 %.14745
  %615 = getelementptr i64, ptr %614, i64 %8
  store i64 %.5590744, ptr %615, align 8, !tbaa !15
  %616 = add nsw i64 %.5590744, 1
  br label %617

617:                                              ; preds = %607, %612
  %.6591 = phi i64 [ %.5590744, %607 ], [ %616, %612 ]
  %618 = or disjoint i64 %.14745, 1
  %619 = load ptr, ptr %583, align 8, !tbaa !5
  %620 = getelementptr inbounds i8, ptr %619, i64 %618
  %621 = load i8, ptr %620, align 1, !tbaa !41, !range !42, !noundef !43
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %628, label %623

623:                                              ; preds = %617
  %624 = load ptr, ptr %584, align 8, !tbaa !5
  %625 = getelementptr i64, ptr %624, i64 %618
  %626 = getelementptr i64, ptr %625, i64 %8
  store i64 %.6591, ptr %626, align 8, !tbaa !15
  %627 = add nsw i64 %.6591, 1
  br label %628

628:                                              ; preds = %623, %617
  %.6591.1 = phi i64 [ %.6591, %617 ], [ %627, %623 ]
  %629 = add nuw nsw i64 %.14745, 2
  %niter833.next.1 = add i64 %niter833, 2
  %niter833.ncmp.1 = icmp eq i64 %niter833.next.1, %unroll_iter832
  br i1 %niter833.ncmp.1, label %._crit_edge747.loopexit.unr-lcssa, label %607, !llvm.loop !77

._crit_edge747.loopexit.unr-lcssa:                ; preds = %628, %.lr.ph746
  %.6591.lcssa.ph = phi i64 [ poison, %.lr.ph746 ], [ %.6591.1, %628 ]
  %.14745.unr = phi i64 [ 0, %.lr.ph746 ], [ %629, %628 ]
  %.5590744.unr = phi i64 [ %.3588.lcssa, %.lr.ph746 ], [ %.6591.1, %628 ]
  %lcmp.mod830.not = icmp eq i64 %xtraiter829, 0
  br i1 %lcmp.mod830.not, label %._crit_edge747, label %.epil.preheader828

.epil.preheader828:                               ; preds = %._crit_edge747.loopexit.unr-lcssa
  %630 = load ptr, ptr %583, align 8, !tbaa !5
  %631 = getelementptr inbounds i8, ptr %630, i64 %.14745.unr
  %632 = load i8, ptr %631, align 1, !tbaa !41, !range !42, !noundef !43
  %633 = trunc nuw i8 %632 to i1
  br i1 %633, label %._crit_edge747, label %634

634:                                              ; preds = %.epil.preheader828
  %635 = load ptr, ptr %584, align 8, !tbaa !5
  %636 = getelementptr i64, ptr %635, i64 %.14745.unr
  %637 = getelementptr i64, ptr %636, i64 %8
  store i64 %.5590744.unr, ptr %637, align 8, !tbaa !15
  %638 = add nsw i64 %.5590744.unr, 1
  br label %._crit_edge747

._crit_edge747:                                   ; preds = %._crit_edge747.loopexit.unr-lcssa, %634, %.epil.preheader828, %.preheader
  %.5590.lcssa = phi i64 [ %.3588.lcssa, %.preheader ], [ %.6591.lcssa.ph, %._crit_edge747.loopexit.unr-lcssa ], [ %.5590744.unr, %.epil.preheader828 ], [ %638, %634 ]
  %639 = load i64, ptr %16, align 8, !tbaa !55
  %640 = load i64, ptr %430, align 8, !tbaa !63
  %641 = add nsw i64 %640, %639
  %642 = icmp eq i64 %.5590.lcssa, %641
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %642, ptr noundef nonnull @.str.839, ptr noundef %17)
  %.not619.not749 = icmp sgt i64 %179, 0
  br i1 %.not619.not749, label %.lr.ph752, label %._crit_edge753

.lr.ph752:                                        ; preds = %._crit_edge747
  %643 = getelementptr inbounds i8, ptr %16, i64 3080
  %644 = getelementptr inbounds i8, ptr %16, i64 3336
  %645 = add i64 %12, %8
  %xtraiter835 = and i64 %179, 1
  %646 = icmp eq i64 %645, 1
  br i1 %646, label %._crit_edge753.loopexit.unr-lcssa, label %.lr.ph752.new

.lr.ph752.new:                                    ; preds = %.lr.ph752
  %unroll_iter837 = and i64 %179, 9223372036854775806
  br label %647

647:                                              ; preds = %664, %.lr.ph752.new
  %.15750 = phi i64 [ 0, %.lr.ph752.new ], [ %665, %664 ]
  %niter838 = phi i64 [ 0, %.lr.ph752.new ], [ %niter838.next.1, %664 ]
  %648 = load ptr, ptr %643, align 8, !tbaa !5
  %649 = getelementptr inbounds i64, ptr %648, i64 %.15750
  %650 = load i64, ptr %649, align 8, !tbaa !15
  %651 = icmp sgt i64 %650, -1
  br i1 %651, label %652, label %655

652:                                              ; preds = %647
  %653 = load ptr, ptr %644, align 8, !tbaa !5
  %654 = getelementptr inbounds i64, ptr %653, i64 %650
  store i64 %.15750, ptr %654, align 8, !tbaa !15
  br label %655

655:                                              ; preds = %647, %652
  %656 = or disjoint i64 %.15750, 1
  %657 = load ptr, ptr %643, align 8, !tbaa !5
  %658 = getelementptr inbounds i64, ptr %657, i64 %656
  %659 = load i64, ptr %658, align 8, !tbaa !15
  %660 = icmp sgt i64 %659, -1
  br i1 %660, label %661, label %664

661:                                              ; preds = %655
  %662 = load ptr, ptr %644, align 8, !tbaa !5
  %663 = getelementptr inbounds i64, ptr %662, i64 %659
  store i64 %656, ptr %663, align 8, !tbaa !15
  br label %664

664:                                              ; preds = %661, %655
  %665 = add nuw nsw i64 %.15750, 2
  %niter838.next.1 = add i64 %niter838, 2
  %niter838.ncmp.1 = icmp eq i64 %niter838.next.1, %unroll_iter837
  br i1 %niter838.ncmp.1, label %._crit_edge753.loopexit.unr-lcssa, label %647, !llvm.loop !78

._crit_edge753.loopexit.unr-lcssa:                ; preds = %664, %.lr.ph752
  %.15750.unr = phi i64 [ 0, %.lr.ph752 ], [ %665, %664 ]
  %lcmp.mod836.not = icmp eq i64 %xtraiter835, 0
  br i1 %lcmp.mod836.not, label %._crit_edge753, label %.epil.preheader834

.epil.preheader834:                               ; preds = %._crit_edge753.loopexit.unr-lcssa
  %666 = load ptr, ptr %643, align 8, !tbaa !5
  %667 = getelementptr inbounds i64, ptr %666, i64 %.15750.unr
  %668 = load i64, ptr %667, align 8, !tbaa !15
  %669 = icmp sgt i64 %668, -1
  br i1 %669, label %670, label %._crit_edge753

670:                                              ; preds = %.epil.preheader834
  %671 = load ptr, ptr %644, align 8, !tbaa !5
  %672 = getelementptr inbounds i64, ptr %671, i64 %668
  store i64 %.15750.unr, ptr %672, align 8, !tbaa !15
  br label %._crit_edge753

._crit_edge753:                                   ; preds = %._crit_edge753.loopexit.unr-lcssa, %670, %.epil.preheader834, %._crit_edge747
  br i1 %83, label %673, label %.loopexit787

673:                                              ; preds = %._crit_edge753
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.840, i32 noundef %228)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.841)
  %674 = load i64, ptr %42, align 8, !tbaa !15
  %675 = trunc i64 %674 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.842, i32 noundef %675)
  %676 = load i64, ptr %37, align 8, !tbaa !15
  %677 = trunc i64 %676 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.843, i32 noundef %677)
  %678 = load i64, ptr %38, align 8, !tbaa !15
  %679 = trunc i64 %678 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.844, i32 noundef %679)
  %680 = load i64, ptr %39, align 8, !tbaa !15
  %681 = trunc i64 %680 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.845, i32 noundef %681)
  %682 = load i64, ptr %40, align 8, !tbaa !15
  %683 = trunc i64 %682 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.846, i32 noundef %683)
  %684 = load i64, ptr %41, align 8, !tbaa !15
  %685 = trunc i64 %684 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.847, i32 noundef %685)
  %686 = load i64, ptr %43, align 8, !tbaa !15
  %687 = trunc i64 %686 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.848, i32 noundef %687)
  %688 = load i64, ptr %44, align 8, !tbaa !15
  %689 = trunc i64 %688 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.849, i32 noundef %689)
  %690 = load i64, ptr %45, align 8, !tbaa !15
  %691 = trunc i64 %690 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.850, i32 noundef %691)
  %692 = load i64, ptr %46, align 8, !tbaa !15
  %693 = trunc i64 %692 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.851, i32 noundef %693)
  %694 = load i64, ptr %47, align 8, !tbaa !15
  %695 = trunc i64 %694 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.852, i32 noundef %695)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.853)
  %696 = load i64, ptr %16, align 8, !tbaa !55
  %697 = trunc i64 %696 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.827, i32 noundef %697)
  %698 = load i64, ptr %430, align 8, !tbaa !63
  %699 = trunc i64 %698 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.854, i32 noundef %699)
  %700 = load i64, ptr %541, align 8, !tbaa !72
  %701 = trunc i64 %700 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.830, i32 noundef %701)
  br i1 %54, label %.loopexit787, label %702

702:                                              ; preds = %673
  %703 = load ptr, ptr %485, align 8, !tbaa !5
  %704 = load i64, ptr %480, align 8, !tbaa !66
  %705 = getelementptr inbounds i64, ptr %703, i64 %704
  %706 = load i64, ptr %705, align 8, !tbaa !15
  %707 = trunc i64 %706 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.855, i32 noundef %707)
  br label %.loopexit787

.loopexit787:                                     ; preds = %225, %223, %221, %219, %217, %.lr.ph664, %._crit_edge753, %702, %673, %163, %139, %113, %89
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %17)
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 280, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 280, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 280, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 208, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  ret void
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl16_dynamiccrs_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28_dynamiccrsqconstraints_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL36lpqppresolve_dyncrsinitfromsparsecrsEPKNS_12sparsematrixEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL39lpqppresolve_dyncrsdropoffdiagonalzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL28lpqppresolve_dyncrsdropzerosEPNS_10dynamiccrsEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL28lpqppresolve_dyncrsinitemptyEPNS_10dynamiccrsEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL32lpqppresolve_presolvebuffersinitEPNS_15presolvebuffersEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL29lpqppresolve_dynqcinitfromxqcEPNS_21xquadraticconstraintsEPNS_22dynamiccrsqconstraintsEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_dropemptycolEPNS_9ae_vectorES1_S1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPKS0_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL38lpqppresolve_dropclearlynonbindingrowsElPNS_9ae_vectorEPNS_10dynamiccrsES3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_SA_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL29lpqppresolve_singletonrowtobcEPNS_9ae_vectorES1_S1_lPNS_10dynamiccrsES3_S1_S1_S1_ldbPNS_15presolvebuffersEPNS_14presolverstackEPlPbS8_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_doubletonrowEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL25lpqppresolve_fixvariablesEPNS_9ae_vectorES1_S1_S1_PNS_10dynamiccrsEblS3_S3_S1_S1_lPNS_22dynamiccrsqconstraintsES1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL26lpqppresolve_singletoncolsEPNS_9ae_vectorEPKS0_S3_S1_PNS_10dynamiccrsEblS5_S5_S1_S1_S1_lS1_dbPNS_15presolvebuffersEPNS_14presolverstackEPlPbSA_SA_SA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, double noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL27lpqppresolve_dynqcpermtoxqcEPNS_21dynamiccrsqconstraintEPKNS_9ae_vectorES4_PNS_20xquadraticconstraintEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN11alglib_impl7xccinitElPNS_17xconicconstraintsEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.vector.reduce.add.v2i64(<2 x i64>) #6

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !11, i64 328}
!9 = !{!"_ZTSN11alglib_impl12sparsematrixE", !10, i64 0, !10, i64 64, !10, i64 128, !10, i64 192, !10, i64 256, !11, i64 320, !11, i64 328, !11, i64 336, !11, i64 344, !11, i64 352, !11, i64 360}
!10 = !{!"_ZTSN11alglib_impl9ae_vectorE", !11, i64 0, !11, i64 8, !12, i64 16, !13, i64 24, !6, i64 56}
!11 = !{!"long", !6, i64 0}
!12 = !{!"bool", !6, i64 0}
!13 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!14 = !{!"any pointer", !6, i64 0}
!15 = !{!11, !11, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"double", !6, i64 0}
!18 = !{!19, !11, i64 1352}
!19 = !{!"_ZTSN11alglib_impl12presolveinfoE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !10, i64 64, !10, i64 128, !10, i64 192, !12, i64 256, !9, i64 264, !9, i64 632, !20, i64 1000, !23, i64 1208, !11, i64 1352, !10, i64 1360, !10, i64 1424, !10, i64 1488, !10, i64 1552, !9, i64 1616, !9, i64 1984, !10, i64 2352, !10, i64 2416, !20, i64 2480, !23, i64 2688, !10, i64 2832, !10, i64 2896, !10, i64 2960, !10, i64 3024, !10, i64 3088, !10, i64 3152, !10, i64 3216, !10, i64 3280, !24, i64 3344, !10, i64 4240, !10, i64 4304, !10, i64 4368, !10, i64 4432, !10, i64 4496, !10, i64 4560, !10, i64 4624, !25, i64 4688}
!20 = !{!"_ZTSN11alglib_impl21xquadraticconstraintsE", !11, i64 0, !21, i64 8, !10, i64 144}
!21 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !11, i64 0, !11, i64 8, !12, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !22, i64 56, !13, i64 104}
!22 = !{!"_ZTSN11alglib_impl7ae_lockE", !14, i64 0, !13, i64 8, !12, i64 40}
!23 = !{!"_ZTSN11alglib_impl17xconicconstraintsE", !11, i64 0, !21, i64 8}
!24 = !{!"_ZTSN11alglib_impl14presolverstackE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !10, i64 40, !10, i64 104, !10, i64 168, !10, i64 232, !10, i64 296, !11, i64 360, !11, i64 368, !11, i64 376, !10, i64 384, !10, i64 448, !10, i64 512, !10, i64 576, !10, i64 640, !10, i64 704, !10, i64 768, !10, i64 832}
!25 = !{!"_ZTSN11alglib_impl15presolvebuffersE", !26, i64 0, !26, i64 152, !26, i64 304, !26, i64 456, !10, i64 608, !10, i64 672, !10, i64 736, !10, i64 800, !27, i64 864}
!26 = !{!"_ZTSN11alglib_impl5nisetE", !11, i64 0, !11, i64 8, !10, i64 16, !10, i64 80, !11, i64 144}
!27 = !{!"_ZTSN11alglib_impl21dynamiccrsqconstraintE", !11, i64 0, !10, i64 8, !10, i64 72, !28, i64 136, !17, i64 416, !17, i64 424, !12, i64 432}
!28 = !{!"_ZTSN11alglib_impl10dynamiccrsE", !11, i64 0, !11, i64 8, !11, i64 16, !10, i64 24, !10, i64 88, !10, i64 152, !10, i64 216}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}
!32 = !{!14, !14, i64 0}
!33 = !{!34, !17, i64 504}
!34 = !{!"_ZTSN11alglib_impl20xquadraticconstraintE", !11, i64 0, !10, i64 8, !10, i64 72, !9, i64 136, !17, i64 504, !17, i64 512, !12, i64 520}
!35 = !{!34, !17, i64 512}
!36 = distinct !{!36, !30}
!37 = !{!19, !12, i64 256}
!38 = !{!27, !11, i64 0}
!39 = distinct !{!39, !30}
!40 = distinct !{!40, !30}
!41 = !{!12, !12, i64 0}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = distinct !{!44, !30}
!45 = distinct !{!45, !30, !46, !47}
!46 = !{!"llvm.loop.isvectorized", i32 1}
!47 = !{!"llvm.loop.unroll.runtime.disable"}
!48 = distinct !{!48, !30, !46, !47}
!49 = distinct !{!49, !30, !47, !46}
!50 = distinct !{!50, !30, !47, !46}
!51 = distinct !{!51, !30}
!52 = distinct !{!52, !30}
!53 = distinct !{!53, !30}
!54 = !{!19, !11, i64 8}
!55 = !{!19, !11, i64 0}
!56 = distinct !{!56, !30}
!57 = distinct !{!57, !30}
!58 = !{!19, !11, i64 1952}
!59 = !{!19, !11, i64 1944}
!60 = distinct !{!60, !30}
!61 = distinct !{!61, !30}
!62 = !{!19, !11, i64 40}
!63 = !{!19, !11, i64 32}
!64 = distinct !{!64, !30}
!65 = distinct !{!65, !30}
!66 = !{!19, !11, i64 2312}
!67 = !{!19, !11, i64 2320}
!68 = distinct !{!68, !30}
!69 = distinct !{!69, !30}
!70 = !{!19, !11, i64 2480}
!71 = !{!19, !11, i64 16}
!72 = !{!19, !11, i64 48}
!73 = distinct !{!73, !30}
!74 = !{!19, !11, i64 24}
!75 = !{!19, !11, i64 56}
!76 = distinct !{!76, !30}
!77 = distinct !{!77, !30}
!78 = distinct !{!78, !30}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass