; 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_smart_ptr" = type { ptr, ptr, i8, i8, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }
%"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::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::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::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::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::xconicconstraint" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8 }

@.str.804 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.805 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.806 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.807 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.808 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.809 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.810 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.811 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.812 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.813 = external hidden unnamed_addr constant [34 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.816 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.817 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.818 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.819 = external hidden unnamed_addr constant [49 x i8], align 1

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

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

; 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) #2

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #2

declare void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZN11alglib_impl14isfinitevectorEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #2

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

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

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local 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 %15, ptr noundef %16, ptr noundef %17) #3 {
  %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 i64, align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  %41 = 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
  %42 = zext i1 %6 to i8
  store i8 %42, ptr %25, align 1, !tbaa !9
  %43 = zext i1 %7 to i8
  store i8 %43, 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
  %44 = zext i1 %15 to i8
  store i8 %44, 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) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr %40) #4
  %45 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %45, ptr noundef %37)
  call void @llvm.memset.p0.i64(ptr align 8 %40, i8 0, i64 80, i1 false)
  %46 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef %40, ptr noundef %39, ptr noundef %46, i1 noundef zeroext true)
  %47 = load ptr, ptr %22, align 8, !tbaa !5
  %48 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %47, i32 0, i32 0
  %49 = load i64, ptr %48, align 8, !tbaa !13
  %50 = load i64, ptr %27, align 8, !tbaa !11
  %51 = icmp sge i64 %49, %50
  %52 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %51, ptr noundef @.str.804, ptr noundef %52)
  %53 = load ptr, ptr %23, align 8, !tbaa !5
  %54 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %53, i32 0, i32 0
  %55 = load i64, ptr %54, align 8, !tbaa !13
  %56 = load i64, ptr %27, align 8, !tbaa !11
  %57 = icmp sge i64 %55, %56
  %58 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %57, ptr noundef @.str.805, ptr noundef %58)
  %59 = load ptr, ptr %19, align 8, !tbaa !5
  %60 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %59, i32 0, i32 0
  %61 = load i64, ptr %60, align 8, !tbaa !13
  %62 = load i64, ptr %27, align 8, !tbaa !11
  %63 = icmp sge i64 %61, %62
  %64 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %63, ptr noundef @.str.806, ptr noundef %64)
  %65 = load ptr, ptr %19, align 8, !tbaa !5
  %66 = load i64, ptr %27, align 8, !tbaa !11
  %67 = load ptr, ptr %36, align 8, !tbaa !5
  %68 = call noundef zeroext i1 @_ZN11alglib_impl14isfinitevectorEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %65, i64 noundef %66, ptr noundef %67)
  %69 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %68, ptr noundef @.str.807, ptr noundef %69)
  %70 = load ptr, ptr %21, align 8, !tbaa !5
  %71 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %70, i32 0, i32 0
  %72 = load i64, ptr %71, align 8, !tbaa !13
  %73 = load i64, ptr %27, align 8, !tbaa !11
  %74 = icmp sge i64 %72, %73
  %75 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %74, ptr noundef @.str.808, ptr noundef %75)
  %76 = load ptr, ptr %21, align 8, !tbaa !5
  %77 = load i64, ptr %27, align 8, !tbaa !11
  %78 = load ptr, ptr %36, align 8, !tbaa !5
  %79 = call noundef zeroext i1 @_ZN11alglib_impl14isfinitevectorEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %76, i64 noundef %77, ptr noundef %78)
  %80 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %79, ptr noundef @.str.809, ptr noundef %80)
  %81 = load i64, ptr %31, align 8, !tbaa !11
  %82 = icmp sge i64 %81, 0
  %83 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %82, ptr noundef @.str.810, ptr noundef %83)
  %84 = load i64, ptr %31, align 8, !tbaa !11
  %85 = icmp eq i64 %84, 0
  br i1 %85, label %90, label %86

86:                                               ; preds = %18
  %87 = load ptr, ptr %28, align 8, !tbaa !5
  %88 = load ptr, ptr %36, align 8, !tbaa !5
  %89 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %87, ptr noundef %88)
  br label %90

90:                                               ; preds = %86, %18
  %91 = phi i1 [ true, %18 ], [ %89, %86 ]
  %92 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %91, ptr noundef @.str.811, ptr noundef %92)
  %93 = load i64, ptr %31, align 8, !tbaa !11
  %94 = icmp eq i64 %93, 0
  br i1 %94, label %101, label %95

95:                                               ; preds = %90
  %96 = load ptr, ptr %28, align 8, !tbaa !5
  %97 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %96, i32 0, i32 6
  %98 = load i64, ptr %97, align 8, !tbaa !16
  %99 = load i64, ptr %31, align 8, !tbaa !11
  %100 = icmp eq i64 %98, %99
  br label %101

101:                                              ; preds = %95, %90
  %102 = phi i1 [ true, %90 ], [ %100, %95 ]
  %103 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %102, ptr noundef @.str.812, ptr noundef %103)
  %104 = load i64, ptr %31, align 8, !tbaa !11
  %105 = icmp eq i64 %104, 0
  br i1 %105, label %112, label %106

106:                                              ; preds = %101
  %107 = load ptr, ptr %28, align 8, !tbaa !5
  %108 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %107, i32 0, i32 7
  %109 = load i64, ptr %108, align 8, !tbaa !18
  %110 = load i64, ptr %27, align 8, !tbaa !11
  %111 = icmp eq i64 %109, %110
  br label %112

112:                                              ; preds = %106, %101
  %113 = phi i1 [ true, %101 ], [ %111, %106 ]
  %114 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %113, ptr noundef @.str.813, ptr noundef %114)
  %115 = load i8, ptr %26, align 1, !tbaa !9, !range !19, !noundef !20
  %116 = trunc i8 %115 to i1
  br i1 %116, label %117, label %121

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

121:                                              ; preds = %117, %112
  %122 = phi i1 [ true, %112 ], [ %120, %117 ]
  %123 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %122, ptr noundef @.str.811, ptr noundef %123)
  store i64 0, ptr %38, align 8, !tbaa !11
  br label %124

124:                                              ; preds = %172, %121
  %125 = load i64, ptr %38, align 8, !tbaa !11
  %126 = load i64, ptr %27, align 8, !tbaa !11
  %127 = sub nsw i64 %126, 1
  %128 = icmp sle i64 %125, %127
  br i1 %128, label %129, label %175

129:                                              ; preds = %124
  %130 = load ptr, ptr %22, align 8, !tbaa !5
  %131 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %130, i32 0, i32 4
  %132 = load ptr, ptr %131, align 8, !tbaa !21
  %133 = load i64, ptr %38, align 8, !tbaa !11
  %134 = getelementptr inbounds double, ptr %132, i64 %133
  %135 = load double, ptr %134, align 8, !tbaa !22
  %136 = load ptr, ptr %36, align 8, !tbaa !5
  %137 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %135, ptr noundef %136)
  br i1 %137, label %138, label %171

138:                                              ; preds = %129
  %139 = load ptr, ptr %23, align 8, !tbaa !5
  %140 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %139, i32 0, i32 4
  %141 = load ptr, ptr %140, align 8, !tbaa !21
  %142 = load i64, ptr %38, align 8, !tbaa !11
  %143 = getelementptr inbounds double, ptr %141, i64 %142
  %144 = load double, ptr %143, align 8, !tbaa !22
  %145 = load ptr, ptr %36, align 8, !tbaa !5
  %146 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %144, ptr noundef %145)
  br i1 %146, label %147, label %171

147:                                              ; preds = %138
  %148 = load ptr, ptr %22, align 8, !tbaa !5
  %149 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %148, i32 0, i32 4
  %150 = load ptr, ptr %149, align 8, !tbaa !21
  %151 = load i64, ptr %38, align 8, !tbaa !11
  %152 = getelementptr inbounds double, ptr %150, i64 %151
  %153 = load double, ptr %152, align 8, !tbaa !22
  %154 = load ptr, ptr %23, align 8, !tbaa !5
  %155 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %154, i32 0, i32 4
  %156 = load ptr, ptr %155, align 8, !tbaa !21
  %157 = load i64, ptr %38, align 8, !tbaa !11
  %158 = getelementptr inbounds double, ptr %156, i64 %157
  %159 = load double, ptr %158, align 8, !tbaa !22
  %160 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %153, double noundef %159)
  br i1 %160, label %161, label %171

161:                                              ; preds = %147
  %162 = load i8, ptr %34, align 1, !tbaa !9, !range !19, !noundef !20
  %163 = trunc i8 %162 to i1
  br i1 %163, label %164, label %167

164:                                              ; preds = %161
  %165 = load i64, ptr %38, align 8, !tbaa !11
  %166 = trunc i64 %165 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.814, i32 noundef %166)
  br label %167

167:                                              ; preds = %164, %161
  %168 = load ptr, ptr %35, align 8, !tbaa !5
  %169 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %168, i32 0, i32 16
  store i64 -3, ptr %169, align 8, !tbaa !24
  %170 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %170)
  store i32 1, ptr %41, align 4
  br label %635

171:                                              ; preds = %147, %138, %129
  br label %172

172:                                              ; preds = %171
  %173 = load i64, ptr %38, align 8, !tbaa !11
  %174 = add nsw i64 %173, 1
  store i64 %174, ptr %38, align 8, !tbaa !11
  br label %124, !llvm.loop !35

175:                                              ; preds = %124
  store i64 0, ptr %38, align 8, !tbaa !11
  br label %176

176:                                              ; preds = %224, %175
  %177 = load i64, ptr %38, align 8, !tbaa !11
  %178 = load i64, ptr %31, align 8, !tbaa !11
  %179 = sub nsw i64 %178, 1
  %180 = icmp sle i64 %177, %179
  br i1 %180, label %181, label %227

181:                                              ; preds = %176
  %182 = load ptr, ptr %29, align 8, !tbaa !5
  %183 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %182, i32 0, i32 4
  %184 = load ptr, ptr %183, align 8, !tbaa !21
  %185 = load i64, ptr %38, align 8, !tbaa !11
  %186 = getelementptr inbounds double, ptr %184, i64 %185
  %187 = load double, ptr %186, align 8, !tbaa !22
  %188 = load ptr, ptr %36, align 8, !tbaa !5
  %189 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %187, ptr noundef %188)
  br i1 %189, label %190, label %223

190:                                              ; preds = %181
  %191 = load ptr, ptr %30, align 8, !tbaa !5
  %192 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %191, i32 0, i32 4
  %193 = load ptr, ptr %192, align 8, !tbaa !21
  %194 = load i64, ptr %38, align 8, !tbaa !11
  %195 = getelementptr inbounds double, ptr %193, i64 %194
  %196 = load double, ptr %195, align 8, !tbaa !22
  %197 = load ptr, ptr %36, align 8, !tbaa !5
  %198 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %196, ptr noundef %197)
  br i1 %198, label %199, label %223

199:                                              ; preds = %190
  %200 = load ptr, ptr %29, align 8, !tbaa !5
  %201 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %200, i32 0, i32 4
  %202 = load ptr, ptr %201, align 8, !tbaa !21
  %203 = load i64, ptr %38, align 8, !tbaa !11
  %204 = getelementptr inbounds double, ptr %202, i64 %203
  %205 = load double, ptr %204, align 8, !tbaa !22
  %206 = load ptr, ptr %30, align 8, !tbaa !5
  %207 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %206, i32 0, i32 4
  %208 = load ptr, ptr %207, align 8, !tbaa !21
  %209 = load i64, ptr %38, align 8, !tbaa !11
  %210 = getelementptr inbounds double, ptr %208, i64 %209
  %211 = load double, ptr %210, align 8, !tbaa !22
  %212 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %205, double noundef %211)
  br i1 %212, label %213, label %223

213:                                              ; preds = %199
  %214 = load i8, ptr %34, align 1, !tbaa !9, !range !19, !noundef !20
  %215 = trunc i8 %214 to i1
  br i1 %215, label %216, label %219

216:                                              ; preds = %213
  %217 = load i64, ptr %38, align 8, !tbaa !11
  %218 = trunc i64 %217 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.815, i32 noundef %218)
  br label %219

219:                                              ; preds = %216, %213
  %220 = load ptr, ptr %35, align 8, !tbaa !5
  %221 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %220, i32 0, i32 16
  store i64 -3, ptr %221, align 8, !tbaa !24
  %222 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %222)
  store i32 1, ptr %41, align 4
  br label %635

223:                                              ; preds = %199, %190, %181
  br label %224

224:                                              ; preds = %223
  %225 = load i64, ptr %38, align 8, !tbaa !11
  %226 = add nsw i64 %225, 1
  store i64 %226, ptr %38, align 8, !tbaa !11
  br label %176, !llvm.loop !37

227:                                              ; preds = %176
  store i64 0, ptr %38, align 8, !tbaa !11
  br label %228

228:                                              ; preds = %245, %227
  %229 = load i64, ptr %38, align 8, !tbaa !11
  %230 = load ptr, ptr %33, align 8, !tbaa !5
  %231 = load ptr, ptr %36, align 8, !tbaa !5
  %232 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %230, ptr noundef %231)
  %233 = sub nsw i64 %232, 1
  %234 = icmp sle i64 %229, %233
  br i1 %234, label %235, label %248

235:                                              ; preds = %228
  %236 = load ptr, ptr %33, align 8, !tbaa !5
  %237 = getelementptr inbounds %"struct.alglib_impl::xconicconstraints", ptr %236, i32 0, i32 1
  %238 = load i64, ptr %38, align 8, !tbaa !11
  %239 = 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 %237, i64 noundef %238, ptr noundef %40, ptr noundef %239)
  %240 = load ptr, ptr %39, align 8, !tbaa !5
  %241 = getelementptr inbounds %"struct.alglib_impl::xconicconstraint", ptr %240, i32 0, i32 0
  %242 = load i64, ptr %241, align 8, !tbaa !38
  %243 = icmp sge i64 %242, 0
  %244 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %243, ptr noundef @.str.816, ptr noundef %244)
  br label %245

245:                                              ; preds = %235
  %246 = load i64, ptr %38, align 8, !tbaa !11
  %247 = add nsw i64 %246, 1
  store i64 %247, ptr %38, align 8, !tbaa !11
  br label %228, !llvm.loop !40

248:                                              ; preds = %228
  %249 = load ptr, ptr %35, align 8, !tbaa !5
  %250 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %249, i32 0, i32 8
  %251 = load i64, ptr %27, align 8, !tbaa !11
  %252 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %250, i64 noundef %251, ptr noundef %252)
  %253 = load ptr, ptr %35, align 8, !tbaa !5
  %254 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %253, i32 0, i32 9
  %255 = load i64, ptr %27, align 8, !tbaa !11
  %256 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %254, i64 noundef %255, ptr noundef %256)
  %257 = load ptr, ptr %35, align 8, !tbaa !5
  %258 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %257, i32 0, i32 10
  %259 = load i64, ptr %27, align 8, !tbaa !11
  %260 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %258, i64 noundef %259, ptr noundef %260)
  %261 = load i64, ptr %27, align 8, !tbaa !11
  %262 = load i64, ptr %31, align 8, !tbaa !11
  %263 = load ptr, ptr %32, align 8, !tbaa !5
  %264 = load ptr, ptr %36, align 8, !tbaa !5
  %265 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %263, ptr noundef %264)
  %266 = load ptr, ptr %33, align 8, !tbaa !5
  %267 = load ptr, ptr %36, align 8, !tbaa !5
  %268 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %266, ptr noundef %267)
  %269 = load ptr, ptr %35, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %269, i32 0, i32 35
  %271 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL31lpqppresolve_presolverstackinitEllllPNS_14presolverstackEPNS_8ae_stateE(i64 noundef %261, i64 noundef %262, i64 noundef %265, i64 noundef %268, ptr noundef %270, ptr noundef %271)
  %272 = load ptr, ptr %35, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %272, i32 0, i32 16
  store i64 0, ptr %273, align 8, !tbaa !24
  %274 = load i64, ptr %27, align 8, !tbaa !11
  %275 = load ptr, ptr %35, align 8, !tbaa !5
  %276 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %275, i32 0, i32 0
  store i64 %274, ptr %276, align 8, !tbaa !41
  %277 = load i64, ptr %27, align 8, !tbaa !11
  %278 = load ptr, ptr %35, align 8, !tbaa !5
  %279 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %278, i32 0, i32 1
  store i64 %277, ptr %279, align 8, !tbaa !42
  %280 = load i64, ptr %31, align 8, !tbaa !11
  %281 = load ptr, ptr %35, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %281, i32 0, i32 4
  store i64 %280, ptr %282, align 8, !tbaa !43
  %283 = load i64, ptr %31, align 8, !tbaa !11
  %284 = load ptr, ptr %35, align 8, !tbaa !5
  %285 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %284, i32 0, i32 5
  store i64 %283, ptr %285, align 8, !tbaa !44
  %286 = load ptr, ptr %32, align 8, !tbaa !5
  %287 = load ptr, ptr %36, align 8, !tbaa !5
  %288 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %286, ptr noundef %287)
  %289 = load ptr, ptr %35, align 8, !tbaa !5
  %290 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %289, i32 0, i32 2
  store i64 %288, ptr %290, align 8, !tbaa !45
  %291 = load ptr, ptr %35, align 8, !tbaa !5
  %292 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %291, i32 0, i32 2
  %293 = load i64, ptr %292, align 8, !tbaa !45
  %294 = load ptr, ptr %35, align 8, !tbaa !5
  %295 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %294, i32 0, i32 6
  store i64 %293, ptr %295, align 8, !tbaa !46
  %296 = load ptr, ptr %33, align 8, !tbaa !5
  %297 = load ptr, ptr %36, align 8, !tbaa !5
  %298 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %296, ptr noundef %297)
  %299 = load ptr, ptr %35, align 8, !tbaa !5
  %300 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %299, i32 0, i32 3
  store i64 %298, ptr %300, align 8, !tbaa !47
  %301 = load ptr, ptr %35, align 8, !tbaa !5
  %302 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %301, i32 0, i32 3
  %303 = load i64, ptr %302, align 8, !tbaa !47
  %304 = load ptr, ptr %35, align 8, !tbaa !5
  %305 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %304, i32 0, i32 7
  store i64 %303, ptr %305, align 8, !tbaa !48
  %306 = load i64, ptr %27, align 8, !tbaa !11
  %307 = load ptr, ptr %35, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %307, i32 0, i32 17
  %309 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl10bsetallocvElbPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %306, i1 noundef zeroext false, ptr noundef %308, ptr noundef %309)
  %310 = load i64, ptr %27, align 8, !tbaa !11
  %311 = load ptr, ptr %35, align 8, !tbaa !5
  %312 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %311, i32 0, i32 27
  %313 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %310, ptr noundef %312, ptr noundef %313)
  %314 = load i64, ptr %27, align 8, !tbaa !11
  %315 = load ptr, ptr %35, align 8, !tbaa !5
  %316 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %315, i32 0, i32 31
  %317 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %314, ptr noundef %316, ptr noundef %317)
  store i64 0, ptr %38, align 8, !tbaa !11
  br label %318

318:                                              ; preds = %422, %248
  %319 = load i64, ptr %38, align 8, !tbaa !11
  %320 = load i64, ptr %27, align 8, !tbaa !11
  %321 = sub nsw i64 %320, 1
  %322 = icmp sle i64 %319, %321
  br i1 %322, label %323, label %425

323:                                              ; preds = %318
  %324 = load ptr, ptr %19, align 8, !tbaa !5
  %325 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %324, i32 0, i32 4
  %326 = load ptr, ptr %325, align 8, !tbaa !21
  %327 = load i64, ptr %38, align 8, !tbaa !11
  %328 = getelementptr inbounds double, ptr %326, i64 %327
  %329 = load double, ptr %328, align 8, !tbaa !22
  %330 = fcmp ogt double %329, 0.000000e+00
  %331 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %330, ptr noundef @.str.817, ptr noundef %331)
  %332 = load ptr, ptr %22, align 8, !tbaa !5
  %333 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %332, i32 0, i32 4
  %334 = load ptr, ptr %333, align 8, !tbaa !21
  %335 = load i64, ptr %38, align 8, !tbaa !11
  %336 = getelementptr inbounds double, ptr %334, i64 %335
  %337 = load double, ptr %336, align 8, !tbaa !22
  %338 = load ptr, ptr %36, align 8, !tbaa !5
  %339 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %337, ptr noundef %338)
  br i1 %339, label %349, label %340

340:                                              ; preds = %323
  %341 = load ptr, ptr %22, align 8, !tbaa !5
  %342 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %341, i32 0, i32 4
  %343 = load ptr, ptr %342, align 8, !tbaa !21
  %344 = load i64, ptr %38, align 8, !tbaa !11
  %345 = getelementptr inbounds double, ptr %343, i64 %344
  %346 = load double, ptr %345, align 8, !tbaa !22
  %347 = load ptr, ptr %36, align 8, !tbaa !5
  %348 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef %346, ptr noundef %347)
  br label %349

349:                                              ; preds = %340, %323
  %350 = phi i1 [ true, %323 ], [ %348, %340 ]
  %351 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %350, ptr noundef @.str.818, ptr noundef %351)
  %352 = load ptr, ptr %23, align 8, !tbaa !5
  %353 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %352, i32 0, i32 4
  %354 = load ptr, ptr %353, align 8, !tbaa !21
  %355 = load i64, ptr %38, align 8, !tbaa !11
  %356 = getelementptr inbounds double, ptr %354, i64 %355
  %357 = load double, ptr %356, align 8, !tbaa !22
  %358 = load ptr, ptr %36, align 8, !tbaa !5
  %359 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %357, ptr noundef %358)
  br i1 %359, label %369, label %360

360:                                              ; preds = %349
  %361 = load ptr, ptr %23, align 8, !tbaa !5
  %362 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %361, i32 0, i32 4
  %363 = load ptr, ptr %362, align 8, !tbaa !21
  %364 = load i64, ptr %38, align 8, !tbaa !11
  %365 = getelementptr inbounds double, ptr %363, i64 %364
  %366 = load double, ptr %365, align 8, !tbaa !22
  %367 = load ptr, ptr %36, align 8, !tbaa !5
  %368 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef %366, ptr noundef %367)
  br label %369

369:                                              ; preds = %360, %349
  %370 = phi i1 [ true, %349 ], [ %368, %360 ]
  %371 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %370, ptr noundef @.str.819, ptr noundef %371)
  %372 = load ptr, ptr %21, align 8, !tbaa !5
  %373 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %372, i32 0, i32 4
  %374 = load ptr, ptr %373, align 8, !tbaa !21
  %375 = load i64, ptr %38, align 8, !tbaa !11
  %376 = getelementptr inbounds double, ptr %374, i64 %375
  %377 = load double, ptr %376, align 8, !tbaa !22
  %378 = load ptr, ptr %35, align 8, !tbaa !5
  %379 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %378, i32 0, i32 8
  %380 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %379, i32 0, i32 4
  %381 = load ptr, ptr %380, align 8, !tbaa !21
  %382 = load i64, ptr %38, align 8, !tbaa !11
  %383 = getelementptr inbounds double, ptr %381, i64 %382
  store double %377, ptr %383, align 8, !tbaa !22
  %384 = load ptr, ptr %22, align 8, !tbaa !5
  %385 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %384, i32 0, i32 4
  %386 = load ptr, ptr %385, align 8, !tbaa !21
  %387 = load i64, ptr %38, align 8, !tbaa !11
  %388 = getelementptr inbounds double, ptr %386, i64 %387
  %389 = load double, ptr %388, align 8, !tbaa !22
  %390 = load ptr, ptr %35, align 8, !tbaa !5
  %391 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %390, i32 0, i32 9
  %392 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %391, i32 0, i32 4
  %393 = load ptr, ptr %392, align 8, !tbaa !21
  %394 = load i64, ptr %38, align 8, !tbaa !11
  %395 = getelementptr inbounds double, ptr %393, i64 %394
  store double %389, ptr %395, align 8, !tbaa !22
  %396 = load ptr, ptr %23, align 8, !tbaa !5
  %397 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %396, i32 0, i32 4
  %398 = load ptr, ptr %397, align 8, !tbaa !21
  %399 = load i64, ptr %38, align 8, !tbaa !11
  %400 = getelementptr inbounds double, ptr %398, i64 %399
  %401 = load double, ptr %400, align 8, !tbaa !22
  %402 = load ptr, ptr %35, align 8, !tbaa !5
  %403 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %402, i32 0, i32 10
  %404 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %403, i32 0, i32 4
  %405 = load ptr, ptr %404, align 8, !tbaa !21
  %406 = load i64, ptr %38, align 8, !tbaa !11
  %407 = getelementptr inbounds double, ptr %405, i64 %406
  store double %401, ptr %407, align 8, !tbaa !22
  %408 = load i64, ptr %38, align 8, !tbaa !11
  %409 = load ptr, ptr %35, align 8, !tbaa !5
  %410 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %409, i32 0, i32 27
  %411 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %410, i32 0, i32 4
  %412 = load ptr, ptr %411, align 8, !tbaa !21
  %413 = load i64, ptr %38, align 8, !tbaa !11
  %414 = getelementptr inbounds i64, ptr %412, i64 %413
  store i64 %408, ptr %414, align 8, !tbaa !11
  %415 = load i64, ptr %38, align 8, !tbaa !11
  %416 = load ptr, ptr %35, align 8, !tbaa !5
  %417 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %416, i32 0, i32 31
  %418 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %417, i32 0, i32 4
  %419 = load ptr, ptr %418, align 8, !tbaa !21
  %420 = load i64, ptr %38, align 8, !tbaa !11
  %421 = getelementptr inbounds i64, ptr %419, i64 %420
  store i64 %415, ptr %421, align 8, !tbaa !11
  br label %422

422:                                              ; preds = %369
  %423 = load i64, ptr %38, align 8, !tbaa !11
  %424 = add nsw i64 %423, 1
  store i64 %424, ptr %38, align 8, !tbaa !11
  br label %318, !llvm.loop !49

425:                                              ; preds = %318
  %426 = load i8, ptr %26, align 1, !tbaa !9, !range !19, !noundef !20
  %427 = trunc i8 %426 to i1
  %428 = load ptr, ptr %35, align 8, !tbaa !5
  %429 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %428, i32 0, i32 11
  %430 = zext i1 %427 to i8
  store i8 %430, ptr %429, align 8, !tbaa !50
  %431 = load i8, ptr %26, align 1, !tbaa !9, !range !19, !noundef !20
  %432 = trunc i8 %431 to i1
  br i1 %432, label %433, label %445

433:                                              ; preds = %425
  %434 = load ptr, ptr %24, align 8, !tbaa !5
  %435 = load i8, ptr %25, align 1, !tbaa !9, !range !19, !noundef !20
  %436 = trunc i8 %435 to i1
  %437 = load ptr, ptr %35, align 8, !tbaa !5
  %438 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %437, i32 0, i32 12
  %439 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_implL24lpqppresolve_copyexpandhEPKNS_12sparsematrixEbPS0_PNS_8ae_stateE(ptr noundef %434, i1 noundef zeroext %436, ptr noundef %438, ptr noundef %439)
  %440 = load ptr, ptr %35, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %440, i32 0, i32 12
  %442 = load ptr, ptr %35, align 8, !tbaa !5
  %443 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %442, i32 0, i32 21
  %444 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %441, ptr noundef %443, ptr noundef %444)
  br label %445

445:                                              ; preds = %433, %425
  %446 = load i64, ptr %31, align 8, !tbaa !11
  %447 = load ptr, ptr %35, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %447, i32 0, i32 28
  %449 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %446, ptr noundef %448, ptr noundef %449)
  %450 = load i64, ptr %31, align 8, !tbaa !11
  %451 = load ptr, ptr %35, align 8, !tbaa !5
  %452 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %451, i32 0, i32 32
  %453 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %450, ptr noundef %452, ptr noundef %453)
  store i64 0, ptr %38, align 8, !tbaa !11
  br label %454

454:                                              ; preds = %474, %445
  %455 = load i64, ptr %38, align 8, !tbaa !11
  %456 = load i64, ptr %31, align 8, !tbaa !11
  %457 = sub nsw i64 %456, 1
  %458 = icmp sle i64 %455, %457
  br i1 %458, label %459, label %477

459:                                              ; preds = %454
  %460 = load i64, ptr %38, align 8, !tbaa !11
  %461 = load ptr, ptr %35, align 8, !tbaa !5
  %462 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %461, i32 0, i32 28
  %463 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %462, i32 0, i32 4
  %464 = load ptr, ptr %463, align 8, !tbaa !21
  %465 = load i64, ptr %38, align 8, !tbaa !11
  %466 = getelementptr inbounds i64, ptr %464, i64 %465
  store i64 %460, ptr %466, align 8, !tbaa !11
  %467 = load i64, ptr %38, align 8, !tbaa !11
  %468 = load ptr, ptr %35, align 8, !tbaa !5
  %469 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %468, i32 0, i32 32
  %470 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %469, i32 0, i32 4
  %471 = load ptr, ptr %470, align 8, !tbaa !21
  %472 = load i64, ptr %38, align 8, !tbaa !11
  %473 = getelementptr inbounds i64, ptr %471, i64 %472
  store i64 %467, ptr %473, align 8, !tbaa !11
  br label %474

474:                                              ; preds = %459
  %475 = load i64, ptr %38, align 8, !tbaa !11
  %476 = add nsw i64 %475, 1
  store i64 %476, ptr %38, align 8, !tbaa !11
  br label %454, !llvm.loop !51

477:                                              ; preds = %454
  %478 = load ptr, ptr %35, align 8, !tbaa !5
  %479 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %478, i32 0, i32 6
  %480 = load i64, ptr %479, align 8, !tbaa !46
  %481 = load ptr, ptr %35, align 8, !tbaa !5
  %482 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %481, i32 0, i32 29
  %483 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %480, ptr noundef %482, ptr noundef %483)
  %484 = load ptr, ptr %35, align 8, !tbaa !5
  %485 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %484, i32 0, i32 6
  %486 = load i64, ptr %485, align 8, !tbaa !46
  %487 = load ptr, ptr %35, align 8, !tbaa !5
  %488 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %487, i32 0, i32 33
  %489 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %486, ptr noundef %488, ptr noundef %489)
  store i64 0, ptr %38, align 8, !tbaa !11
  br label %490

490:                                              ; preds = %512, %477
  %491 = load i64, ptr %38, align 8, !tbaa !11
  %492 = load ptr, ptr %35, align 8, !tbaa !5
  %493 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %492, i32 0, i32 6
  %494 = load i64, ptr %493, align 8, !tbaa !46
  %495 = sub nsw i64 %494, 1
  %496 = icmp sle i64 %491, %495
  br i1 %496, label %497, label %515

497:                                              ; preds = %490
  %498 = load i64, ptr %38, align 8, !tbaa !11
  %499 = load ptr, ptr %35, align 8, !tbaa !5
  %500 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %499, i32 0, i32 29
  %501 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %500, i32 0, i32 4
  %502 = load ptr, ptr %501, align 8, !tbaa !21
  %503 = load i64, ptr %38, align 8, !tbaa !11
  %504 = getelementptr inbounds i64, ptr %502, i64 %503
  store i64 %498, ptr %504, align 8, !tbaa !11
  %505 = load i64, ptr %38, align 8, !tbaa !11
  %506 = load ptr, ptr %35, align 8, !tbaa !5
  %507 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %506, i32 0, i32 33
  %508 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %507, i32 0, i32 4
  %509 = load ptr, ptr %508, align 8, !tbaa !21
  %510 = load i64, ptr %38, align 8, !tbaa !11
  %511 = getelementptr inbounds i64, ptr %509, i64 %510
  store i64 %505, ptr %511, align 8, !tbaa !11
  br label %512

512:                                              ; preds = %497
  %513 = load i64, ptr %38, align 8, !tbaa !11
  %514 = add nsw i64 %513, 1
  store i64 %514, ptr %38, align 8, !tbaa !11
  br label %490, !llvm.loop !52

515:                                              ; preds = %490
  %516 = load i64, ptr %27, align 8, !tbaa !11
  %517 = load i64, ptr %31, align 8, !tbaa !11
  %518 = add nsw i64 %516, %517
  %519 = load ptr, ptr %35, align 8, !tbaa !5
  %520 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %519, i32 0, i32 30
  %521 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %518, ptr noundef %520, ptr noundef %521)
  %522 = load i64, ptr %27, align 8, !tbaa !11
  %523 = load i64, ptr %31, align 8, !tbaa !11
  %524 = add nsw i64 %522, %523
  %525 = load ptr, ptr %35, align 8, !tbaa !5
  %526 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %525, i32 0, i32 34
  %527 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %524, ptr noundef %526, ptr noundef %527)
  store i64 0, ptr %38, align 8, !tbaa !11
  br label %528

528:                                              ; preds = %550, %515
  %529 = load i64, ptr %38, align 8, !tbaa !11
  %530 = load i64, ptr %27, align 8, !tbaa !11
  %531 = load i64, ptr %31, align 8, !tbaa !11
  %532 = add nsw i64 %530, %531
  %533 = sub nsw i64 %532, 1
  %534 = icmp sle i64 %529, %533
  br i1 %534, label %535, label %553

535:                                              ; preds = %528
  %536 = load i64, ptr %38, align 8, !tbaa !11
  %537 = load ptr, ptr %35, align 8, !tbaa !5
  %538 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %537, i32 0, i32 30
  %539 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %538, i32 0, i32 4
  %540 = load ptr, ptr %539, align 8, !tbaa !21
  %541 = load i64, ptr %38, align 8, !tbaa !11
  %542 = getelementptr inbounds i64, ptr %540, i64 %541
  store i64 %536, ptr %542, align 8, !tbaa !11
  %543 = load i64, ptr %38, align 8, !tbaa !11
  %544 = load ptr, ptr %35, align 8, !tbaa !5
  %545 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %544, i32 0, i32 34
  %546 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %545, i32 0, i32 4
  %547 = load ptr, ptr %546, align 8, !tbaa !21
  %548 = load i64, ptr %38, align 8, !tbaa !11
  %549 = getelementptr inbounds i64, ptr %547, i64 %548
  store i64 %543, ptr %549, align 8, !tbaa !11
  br label %550

550:                                              ; preds = %535
  %551 = load i64, ptr %38, align 8, !tbaa !11
  %552 = add nsw i64 %551, 1
  store i64 %552, ptr %38, align 8, !tbaa !11
  br label %528, !llvm.loop !53

553:                                              ; preds = %528
  %554 = load ptr, ptr %28, align 8, !tbaa !5
  %555 = load ptr, ptr %35, align 8, !tbaa !5
  %556 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %555, i32 0, i32 13
  %557 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %554, ptr noundef %556, ptr noundef %557)
  %558 = load ptr, ptr %32, align 8, !tbaa !5
  %559 = load ptr, ptr %35, align 8, !tbaa !5
  %560 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %559, i32 0, i32 14
  %561 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %558, ptr noundef %560, ptr noundef %561)
  %562 = load ptr, ptr %33, align 8, !tbaa !5
  %563 = load ptr, ptr %35, align 8, !tbaa !5
  %564 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %563, i32 0, i32 15
  %565 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %562, ptr noundef %564, ptr noundef %565)
  %566 = load i64, ptr %27, align 8, !tbaa !11
  %567 = load ptr, ptr %21, align 8, !tbaa !5
  %568 = load ptr, ptr %35, align 8, !tbaa !5
  %569 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %568, i32 0, i32 18
  %570 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %566, ptr noundef %567, ptr noundef %569, ptr noundef %570)
  %571 = load i64, ptr %27, align 8, !tbaa !11
  %572 = load ptr, ptr %22, align 8, !tbaa !5
  %573 = load ptr, ptr %35, align 8, !tbaa !5
  %574 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %573, i32 0, i32 19
  %575 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %571, ptr noundef %572, ptr noundef %574, ptr noundef %575)
  %576 = load i64, ptr %27, align 8, !tbaa !11
  %577 = load ptr, ptr %23, align 8, !tbaa !5
  %578 = load ptr, ptr %35, align 8, !tbaa !5
  %579 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %578, i32 0, i32 20
  %580 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %576, ptr noundef %577, ptr noundef %579, ptr noundef %580)
  %581 = load i64, ptr %31, align 8, !tbaa !11
  %582 = icmp sgt i64 %581, 0
  br i1 %582, label %583, label %598

583:                                              ; preds = %553
  %584 = load i64, ptr %31, align 8, !tbaa !11
  %585 = load ptr, ptr %29, align 8, !tbaa !5
  %586 = load ptr, ptr %35, align 8, !tbaa !5
  %587 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %586, i32 0, i32 23
  %588 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %584, ptr noundef %585, ptr noundef %587, ptr noundef %588)
  %589 = load i64, ptr %31, align 8, !tbaa !11
  %590 = load ptr, ptr %30, align 8, !tbaa !5
  %591 = load ptr, ptr %35, align 8, !tbaa !5
  %592 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %591, i32 0, i32 24
  %593 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %589, ptr noundef %590, ptr noundef %592, ptr noundef %593)
  %594 = load ptr, ptr %28, align 8, !tbaa !5
  %595 = load ptr, ptr %35, align 8, !tbaa !5
  %596 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %595, i32 0, i32 22
  %597 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %594, ptr noundef %596, ptr noundef %597)
  br label %598

598:                                              ; preds = %583, %553
  %599 = load ptr, ptr %32, align 8, !tbaa !5
  %600 = load ptr, ptr %35, align 8, !tbaa !5
  %601 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %600, i32 0, i32 25
  %602 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %599, ptr noundef %601, ptr noundef %602)
  %603 = load ptr, ptr %33, align 8, !tbaa !5
  %604 = load ptr, ptr %35, align 8, !tbaa !5
  %605 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %604, i32 0, i32 26
  %606 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %603, ptr noundef %605, ptr noundef %606)
  %607 = load ptr, ptr %19, align 8, !tbaa !5
  %608 = load ptr, ptr %20, align 8, !tbaa !5
  %609 = load i64, ptr %27, align 8, !tbaa !11
  %610 = load ptr, ptr %35, align 8, !tbaa !5
  %611 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %610, i32 0, i32 18
  %612 = load ptr, ptr %35, align 8, !tbaa !5
  %613 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %612, i32 0, i32 19
  %614 = load ptr, ptr %35, align 8, !tbaa !5
  %615 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %614, i32 0, i32 20
  %616 = load ptr, ptr %35, align 8, !tbaa !5
  %617 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %616, i32 0, i32 21
  %618 = load i8, ptr %26, align 1, !tbaa !9, !range !19, !noundef !20
  %619 = trunc i8 %618 to i1
  %620 = load ptr, ptr %35, align 8, !tbaa !5
  %621 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %620, i32 0, i32 22
  %622 = load ptr, ptr %35, align 8, !tbaa !5
  %623 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %622, i32 0, i32 23
  %624 = load ptr, ptr %35, align 8, !tbaa !5
  %625 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %624, i32 0, i32 24
  %626 = load i64, ptr %31, align 8, !tbaa !11
  %627 = load ptr, ptr %35, align 8, !tbaa !5
  %628 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %627, i32 0, i32 25
  %629 = load ptr, ptr %35, align 8, !tbaa !5
  %630 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %629, i32 0, i32 26
  %631 = load ptr, ptr %35, align 8, !tbaa !5
  %632 = getelementptr inbounds %"struct.alglib_impl::presolveinfo", ptr %631, i32 0, i32 35
  %633 = 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 %607, ptr noundef %608, i64 noundef %609, ptr noundef %611, ptr noundef %613, ptr noundef %615, ptr noundef %617, i1 noundef zeroext %619, ptr noundef %621, ptr noundef %623, ptr noundef %625, i64 noundef %626, ptr noundef %628, ptr noundef %630, ptr noundef %632, ptr noundef %633)
  %634 = load ptr, ptr %36, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %634)
  store i32 0, ptr %41, align 4
  br label %635

635:                                              ; preds = %598, %219, %167
  call void @llvm.lifetime.end.p0(i64 80, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #4
  %636 = load i32, ptr %41, align 4
  switch i32 %636, label %638 [
    i32 0, label %637
    i32 1, label %637
  ]

637:                                              ; preds = %635, %635
  ret void

638:                                              ; preds = %635
  unreachable
}

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

; 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) #3

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

; 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) #3

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

!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 = !{!14, !12, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !12, i64 0, !12, i64 8, !10, i64 16, !15, i64 24, !7, i64 56}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!16 = !{!17, !12, i64 328}
!17 = !{!"_ZTSN11alglib_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !12, i64 320, !12, i64 328, !12, i64 336, !12, i64 344, !12, i64 352, !12, i64 360}
!18 = !{!17, !12, i64 336}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = !{!7, !7, i64 0}
!22 = !{!23, !23, i64 0}
!23 = !{!"double", !7, i64 0}
!24 = !{!25, !12, i64 1352}
!25 = !{!"_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, !14, i64 64, !14, i64 128, !14, i64 192, !10, i64 256, !17, i64 264, !17, i64 632, !26, i64 1000, !29, i64 1208, !12, i64 1352, !14, i64 1360, !14, i64 1424, !14, i64 1488, !14, i64 1552, !17, i64 1616, !17, i64 1984, !14, i64 2352, !14, i64 2416, !26, i64 2480, !29, i64 2688, !14, i64 2832, !14, i64 2896, !14, i64 2960, !14, i64 3024, !14, i64 3088, !14, i64 3152, !14, i64 3216, !14, i64 3280, !30, i64 3344, !14, i64 4240, !14, i64 4304, !14, i64 4368, !14, i64 4432, !14, i64 4496, !14, i64 4560, !14, i64 4624, !31, i64 4688}
!26 = !{!"_ZTSN11alglib_impl21xquadraticconstraintsE", !12, i64 0, !27, i64 8, !14, i64 144}
!27 = !{!"_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, !28, i64 56, !15, i64 104}
!28 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !15, i64 8, !10, i64 40}
!29 = !{!"_ZTSN11alglib_impl17xconicconstraintsE", !12, i64 0, !27, i64 8}
!30 = !{!"_ZTSN11alglib_impl14presolverstackE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !14, i64 40, !14, i64 104, !14, i64 168, !14, i64 232, !14, i64 296, !12, i64 360, !12, i64 368, !12, i64 376, !14, i64 384, !14, i64 448, !14, i64 512, !14, i64 576, !14, i64 640, !14, i64 704, !14, i64 768, !14, i64 832}
!31 = !{!"_ZTSN11alglib_impl15presolvebuffersE", !32, i64 0, !32, i64 152, !32, i64 304, !32, i64 456, !14, i64 608, !14, i64 672, !14, i64 736, !14, i64 800, !33, i64 864}
!32 = !{!"_ZTSN11alglib_impl5nisetE", !12, i64 0, !12, i64 8, !14, i64 16, !14, i64 80, !12, i64 144}
!33 = !{!"_ZTSN11alglib_impl21dynamiccrsqconstraintE", !12, i64 0, !14, i64 8, !14, i64 72, !34, i64 136, !23, i64 416, !23, i64 424, !10, i64 432}
!34 = !{!"_ZTSN11alglib_impl10dynamiccrsE", !12, i64 0, !12, i64 8, !12, i64 16, !14, i64 24, !14, i64 88, !14, i64 152, !14, i64 216}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = distinct !{!37, !36}
!38 = !{!39, !12, i64 0}
!39 = !{!"_ZTSN11alglib_impl16xconicconstraintE", !12, i64 0, !12, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !10, i64 208}
!40 = distinct !{!40, !36}
!41 = !{!25, !12, i64 0}
!42 = !{!25, !12, i64 8}
!43 = !{!25, !12, i64 32}
!44 = !{!25, !12, i64 40}
!45 = !{!25, !12, i64 16}
!46 = !{!25, !12, i64 48}
!47 = !{!25, !12, i64 24}
!48 = !{!25, !12, i64 56}
!49 = distinct !{!49, !36}
!50 = !{!25, !10, i64 256}
!51 = distinct !{!51, !36}
!52 = distinct !{!52, !36}
!53 = distinct !{!53, !36}


; 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_smart_ptr" = type { ptr, ptr, i8, i8, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }

@.str.804 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.805 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.806 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.807 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.808 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.809 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.810 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.811 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.812 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.813 = external hidden unnamed_addr constant [34 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.816 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.817 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.818 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.819 = external hidden unnamed_addr constant [49 x i8], align 1

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

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

; 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 #2

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN11alglib_impl14isfinitevectorEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

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

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

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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 #2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local 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 %15, ptr noundef %16, ptr noundef %17) local_unnamed_addr #3 {
  %19 = alloca %"struct.alglib_impl::ae_frame", align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  %22 = zext i1 %7 to i8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %21) #4
  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(80) %21, i8 0, i64 80, i1 false)
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef %17, i1 noundef zeroext true)
  %23 = load i64, ptr %3, align 8, !tbaa !5
  %24 = icmp sge i64 %23, %8
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %24, ptr noundef nonnull @.str.804, ptr noundef %17)
  %25 = load i64, ptr %4, align 8, !tbaa !5
  %26 = icmp sge i64 %25, %8
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %26, ptr noundef nonnull @.str.805, ptr noundef %17)
  %27 = load i64, ptr %0, align 8, !tbaa !5
  %28 = icmp sge i64 %27, %8
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %28, ptr noundef nonnull @.str.806, ptr noundef %17)
  %29 = call noundef zeroext i1 @_ZN11alglib_impl14isfinitevectorEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %0, i64 noundef %8, ptr noundef %17)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %29, ptr noundef nonnull @.str.807, ptr noundef %17)
  %30 = load i64, ptr %2, align 8, !tbaa !5
  %31 = icmp sge i64 %30, %8
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %31, ptr noundef nonnull @.str.808, ptr noundef %17)
  %32 = call noundef zeroext i1 @_ZN11alglib_impl14isfinitevectorEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %2, i64 noundef %8, ptr noundef %17)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %32, ptr noundef nonnull @.str.809, ptr noundef %17)
  %33 = icmp sgt i64 %12, -1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %33, ptr noundef nonnull @.str.810, ptr noundef %17)
  %34 = icmp eq i64 %12, 0
  br i1 %34, label %.thread, label %35

.thread:                                          ; preds = %18
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.811, ptr noundef %17)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.812, ptr noundef %17)
  br label %43

35:                                               ; preds = %18
  %36 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %9, ptr noundef %17)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %36, ptr noundef nonnull @.str.811, ptr noundef %17)
  %37 = getelementptr inbounds i8, ptr %9, i64 328
  %38 = load i64, ptr %37, align 8, !tbaa !13
  %39 = icmp eq i64 %38, %12
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %39, ptr noundef nonnull @.str.812, ptr noundef %17)
  %40 = getelementptr inbounds i8, ptr %9, i64 336
  %41 = load i64, ptr %40, align 8, !tbaa !15
  %42 = icmp eq i64 %41, %8
  br label %43

43:                                               ; preds = %.thread, %35
  %44 = phi i1 [ %42, %35 ], [ true, %.thread ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %44, ptr noundef nonnull @.str.813, ptr noundef %17)
  br i1 %7, label %45, label %47

45:                                               ; preds = %43
  %46 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %5, ptr noundef %17)
  br label %47

47:                                               ; preds = %45, %43
  %48 = phi i1 [ true, %43 ], [ %46, %45 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %48, ptr noundef nonnull @.str.811, ptr noundef %17)
  %.not.not293 = icmp sgt i64 %8, 0
  br i1 %.not.not293, label %.lr.ph, label %.preheader290

.lr.ph:                                           ; preds = %47
  %49 = getelementptr inbounds i8, ptr %3, i64 56
  %50 = getelementptr inbounds i8, ptr %4, i64 56
  br label %53

.preheader290:                                    ; preds = %76, %47
  %.not.not282295 = icmp sgt i64 %12, 0
  br i1 %.not.not282295, label %.lr.ph297, label %.preheader

.lr.ph297:                                        ; preds = %.preheader290
  %51 = getelementptr inbounds i8, ptr %10, i64 56
  %52 = getelementptr inbounds i8, ptr %11, i64 56
  br label %80

53:                                               ; preds = %.lr.ph, %76
  %.0294 = phi i64 [ 0, %.lr.ph ], [ %77, %76 ]
  %54 = load ptr, ptr %49, align 8, !tbaa !16
  %55 = getelementptr inbounds double, ptr %54, i64 %.0294
  %56 = load double, ptr %55, align 8, !tbaa !17
  %57 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %56, ptr noundef %17)
  br i1 %57, label %58, label %76

58:                                               ; preds = %53
  %59 = load ptr, ptr %50, align 8, !tbaa !16
  %60 = getelementptr inbounds double, ptr %59, i64 %.0294
  %61 = load double, ptr %60, align 8, !tbaa !17
  %62 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %61, ptr noundef %17)
  br i1 %62, label %63, label %76

63:                                               ; preds = %58
  %64 = load ptr, ptr %49, align 8, !tbaa !16
  %65 = getelementptr inbounds double, ptr %64, i64 %.0294
  %66 = load double, ptr %65, align 8, !tbaa !17
  %67 = load ptr, ptr %50, align 8, !tbaa !16
  %68 = getelementptr inbounds double, ptr %67, i64 %.0294
  %69 = load double, ptr %68, align 8, !tbaa !17
  %70 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %66, double noundef %69)
  br i1 %70, label %71, label %76

71:                                               ; preds = %63
  br i1 %15, label %72, label %74

72:                                               ; preds = %71
  %73 = trunc i64 %.0294 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.814, i32 noundef %73)
  br label %74

74:                                               ; preds = %72, %71
  %75 = getelementptr inbounds i8, ptr %16, i64 1352
  store i64 -3, ptr %75, align 8, !tbaa !19
  br label %264

76:                                               ; preds = %53, %58, %63
  %77 = add nuw nsw i64 %.0294, 1
  %exitcond.not = icmp eq i64 %77, %8
  br i1 %exitcond.not, label %.preheader290, label %53, !llvm.loop !30

.preheader:                                       ; preds = %103, %.preheader290
  %78 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %14, ptr noundef %17)
  %.not.not283298 = icmp sgt i64 %78, 0
  br i1 %.not.not283298, label %.lr.ph300, label %._crit_edge

.lr.ph300:                                        ; preds = %.preheader
  %79 = getelementptr inbounds i8, ptr %14, i64 8
  br label %105

80:                                               ; preds = %.lr.ph297, %103
  %.1296 = phi i64 [ 0, %.lr.ph297 ], [ %104, %103 ]
  %81 = load ptr, ptr %51, align 8, !tbaa !16
  %82 = getelementptr inbounds double, ptr %81, i64 %.1296
  %83 = load double, ptr %82, align 8, !tbaa !17
  %84 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %83, ptr noundef %17)
  br i1 %84, label %85, label %103

85:                                               ; preds = %80
  %86 = load ptr, ptr %52, align 8, !tbaa !16
  %87 = getelementptr inbounds double, ptr %86, i64 %.1296
  %88 = load double, ptr %87, align 8, !tbaa !17
  %89 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %88, ptr noundef %17)
  br i1 %89, label %90, label %103

90:                                               ; preds = %85
  %91 = load ptr, ptr %51, align 8, !tbaa !16
  %92 = getelementptr inbounds double, ptr %91, i64 %.1296
  %93 = load double, ptr %92, align 8, !tbaa !17
  %94 = load ptr, ptr %52, align 8, !tbaa !16
  %95 = getelementptr inbounds double, ptr %94, i64 %.1296
  %96 = load double, ptr %95, align 8, !tbaa !17
  %97 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %93, double noundef %96)
  br i1 %97, label %98, label %103

98:                                               ; preds = %90
  br i1 %15, label %99, label %101

99:                                               ; preds = %98
  %100 = trunc i64 %.1296 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.815, i32 noundef %100)
  br label %101

101:                                              ; preds = %99, %98
  %102 = getelementptr inbounds i8, ptr %16, i64 1352
  store i64 -3, ptr %102, align 8, !tbaa !19
  br label %264

103:                                              ; preds = %80, %85, %90
  %104 = add nuw nsw i64 %.1296, 1
  %exitcond323.not = icmp eq i64 %104, %12
  br i1 %exitcond323.not, label %.preheader, label %80, !llvm.loop !32

105:                                              ; preds = %.lr.ph300, %105
  %.2299 = phi i64 [ 0, %.lr.ph300 ], [ %109, %105 ]
  call void @_ZN11alglib_impl16ae_obj_array_getEPNS_12ae_obj_arrayElPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef nonnull %79, i64 noundef %.2299, ptr noundef nonnull %21, ptr noundef %17)
  %106 = load ptr, ptr %20, align 8, !tbaa !33
  %107 = load i64, ptr %106, align 8, !tbaa !34
  %108 = icmp sgt i64 %107, -1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %108, ptr noundef nonnull @.str.816, ptr noundef %17)
  %109 = add nuw nsw i64 %.2299, 1
  %110 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %14, ptr noundef %17)
  %.not.not283 = icmp slt i64 %109, %110
  br i1 %.not.not283, label %105, label %._crit_edge, !llvm.loop !36

._crit_edge:                                      ; preds = %105, %.preheader
  %111 = getelementptr inbounds i8, ptr %16, i64 64
  call void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %111, i64 noundef %8, ptr noundef %17)
  %112 = getelementptr inbounds i8, ptr %16, i64 128
  call void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %112, i64 noundef %8, ptr noundef %17)
  %113 = getelementptr inbounds i8, ptr %16, i64 192
  call void @_ZN11alglib_impl13rvectorgrowtoEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %113, i64 noundef %8, ptr noundef %17)
  %114 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %13, ptr noundef %17)
  %115 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %14, ptr noundef %17)
  %116 = getelementptr inbounds i8, ptr %16, i64 3344
  call void @_ZN11alglib_implL31lpqppresolve_presolverstackinitEllllPNS_14presolverstackEPNS_8ae_stateE(i64 noundef %8, i64 noundef %12, i64 noundef %114, i64 noundef %115, ptr noundef nonnull %116, ptr noundef %17)
  %117 = getelementptr inbounds i8, ptr %16, i64 1352
  store i64 0, ptr %117, align 8, !tbaa !19
  store i64 %8, ptr %16, align 8, !tbaa !37
  %118 = getelementptr inbounds i8, ptr %16, i64 8
  store i64 %8, ptr %118, align 8, !tbaa !38
  %119 = getelementptr inbounds i8, ptr %16, i64 32
  store i64 %12, ptr %119, align 8, !tbaa !39
  %120 = getelementptr inbounds i8, ptr %16, i64 40
  store i64 %12, ptr %120, align 8, !tbaa !40
  %121 = call noundef i64 @_ZN11alglib_impl11xqcgetcountEPKNS_21xquadraticconstraintsEPNS_8ae_stateE(ptr noundef %13, ptr noundef %17)
  %122 = getelementptr inbounds i8, ptr %16, i64 16
  store i64 %121, ptr %122, align 8, !tbaa !41
  %123 = getelementptr inbounds i8, ptr %16, i64 48
  store i64 %121, ptr %123, align 8, !tbaa !42
  %124 = call noundef i64 @_ZN11alglib_impl11xccgetcountEPKNS_17xconicconstraintsEPNS_8ae_stateE(ptr noundef %14, ptr noundef %17)
  %125 = getelementptr inbounds i8, ptr %16, i64 24
  store i64 %124, ptr %125, align 8, !tbaa !43
  %126 = getelementptr inbounds i8, ptr %16, i64 56
  store i64 %124, ptr %126, align 8, !tbaa !44
  %127 = 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 %127, ptr noundef %17)
  %128 = getelementptr inbounds i8, ptr %16, i64 2832
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %8, ptr noundef nonnull %128, ptr noundef %17)
  %129 = getelementptr inbounds i8, ptr %16, i64 3088
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %8, ptr noundef nonnull %129, ptr noundef %17)
  br i1 %.not.not293, label %.lr.ph304, label %._crit_edge305

.lr.ph304:                                        ; preds = %._crit_edge
  %130 = getelementptr inbounds i8, ptr %0, i64 56
  %131 = getelementptr inbounds i8, ptr %3, i64 56
  %132 = getelementptr inbounds i8, ptr %4, i64 56
  %133 = getelementptr inbounds i8, ptr %2, i64 56
  %134 = getelementptr inbounds i8, ptr %16, i64 120
  %135 = getelementptr inbounds i8, ptr %16, i64 184
  %136 = getelementptr inbounds i8, ptr %16, i64 248
  %137 = getelementptr inbounds i8, ptr %16, i64 2888
  %138 = getelementptr inbounds i8, ptr %16, i64 3144
  br label %139

139:                                              ; preds = %.lr.ph304, %164
  %.3302 = phi i64 [ 0, %.lr.ph304 ], [ %185, %164 ]
  %140 = load ptr, ptr %130, align 8, !tbaa !16
  %141 = getelementptr inbounds double, ptr %140, i64 %.3302
  %142 = load double, ptr %141, align 8, !tbaa !17
  %143 = fcmp ogt double %142, 0.000000e+00
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %143, ptr noundef nonnull @.str.817, ptr noundef %17)
  %144 = load ptr, ptr %131, align 8, !tbaa !16
  %145 = getelementptr inbounds double, ptr %144, i64 %.3302
  %146 = load double, ptr %145, align 8, !tbaa !17
  %147 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %146, ptr noundef %17)
  br i1 %147, label %153, label %148

148:                                              ; preds = %139
  %149 = load ptr, ptr %131, align 8, !tbaa !16
  %150 = getelementptr inbounds double, ptr %149, i64 %.3302
  %151 = load double, ptr %150, align 8, !tbaa !17
  %152 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef %151, ptr noundef %17)
  br label %153

153:                                              ; preds = %148, %139
  %154 = phi i1 [ true, %139 ], [ %152, %148 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %154, ptr noundef nonnull @.str.818, ptr noundef %17)
  %155 = load ptr, ptr %132, align 8, !tbaa !16
  %156 = getelementptr inbounds double, ptr %155, i64 %.3302
  %157 = load double, ptr %156, align 8, !tbaa !17
  %158 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %157, ptr noundef %17)
  br i1 %158, label %164, label %159

159:                                              ; preds = %153
  %160 = load ptr, ptr %132, align 8, !tbaa !16
  %161 = getelementptr inbounds double, ptr %160, i64 %.3302
  %162 = load double, ptr %161, align 8, !tbaa !17
  %163 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef %162, ptr noundef %17)
  br label %164

164:                                              ; preds = %159, %153
  %165 = phi i1 [ true, %153 ], [ %163, %159 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %165, ptr noundef nonnull @.str.819, ptr noundef %17)
  %166 = load ptr, ptr %133, align 8, !tbaa !16
  %167 = getelementptr inbounds double, ptr %166, i64 %.3302
  %168 = load double, ptr %167, align 8, !tbaa !17
  %169 = load ptr, ptr %134, align 8, !tbaa !16
  %170 = getelementptr inbounds double, ptr %169, i64 %.3302
  store double %168, ptr %170, align 8, !tbaa !17
  %171 = load ptr, ptr %131, align 8, !tbaa !16
  %172 = getelementptr inbounds double, ptr %171, i64 %.3302
  %173 = load double, ptr %172, align 8, !tbaa !17
  %174 = load ptr, ptr %135, align 8, !tbaa !16
  %175 = getelementptr inbounds double, ptr %174, i64 %.3302
  store double %173, ptr %175, align 8, !tbaa !17
  %176 = load ptr, ptr %132, align 8, !tbaa !16
  %177 = getelementptr inbounds double, ptr %176, i64 %.3302
  %178 = load double, ptr %177, align 8, !tbaa !17
  %179 = load ptr, ptr %136, align 8, !tbaa !16
  %180 = getelementptr inbounds double, ptr %179, i64 %.3302
  store double %178, ptr %180, align 8, !tbaa !17
  %181 = load ptr, ptr %137, align 8, !tbaa !16
  %182 = getelementptr inbounds i64, ptr %181, i64 %.3302
  store i64 %.3302, ptr %182, align 8, !tbaa !45
  %183 = load ptr, ptr %138, align 8, !tbaa !16
  %184 = getelementptr inbounds i64, ptr %183, i64 %.3302
  store i64 %.3302, ptr %184, align 8, !tbaa !45
  %185 = add nuw nsw i64 %.3302, 1
  %exitcond324.not = icmp eq i64 %185, %8
  br i1 %exitcond324.not, label %._crit_edge305, label %139, !llvm.loop !46

._crit_edge305:                                   ; preds = %164, %._crit_edge
  %186 = getelementptr inbounds i8, ptr %16, i64 256
  store i8 %22, ptr %186, align 8, !tbaa !47
  br i1 %7, label %187, label %190

187:                                              ; preds = %._crit_edge305
  %188 = 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 %188, ptr noundef %17)
  %189 = getelementptr inbounds i8, ptr %16, i64 1616
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %188, ptr noundef nonnull %189, ptr noundef %17)
  br label %190

190:                                              ; preds = %187, %._crit_edge305
  %191 = getelementptr inbounds i8, ptr %16, i64 2896
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %12, ptr noundef nonnull %191, ptr noundef %17)
  %192 = getelementptr inbounds i8, ptr %16, i64 3152
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %12, ptr noundef nonnull %192, ptr noundef %17)
  br i1 %.not.not282295, label %.lr.ph309, label %._crit_edge310

.lr.ph309:                                        ; preds = %190
  %193 = getelementptr inbounds i8, ptr %16, i64 2952
  %194 = getelementptr inbounds i8, ptr %16, i64 3208
  %xtraiter = and i64 %12, 1
  %195 = icmp eq i64 %12, 1
  br i1 %195, label %._crit_edge310.loopexit.unr-lcssa, label %.lr.ph309.new

.lr.ph309.new:                                    ; preds = %.lr.ph309
  %unroll_iter = and i64 %12, 9223372036854775806
  br label %196

196:                                              ; preds = %196, %.lr.ph309.new
  %.4307 = phi i64 [ 0, %.lr.ph309.new ], [ %206, %196 ]
  %niter = phi i64 [ 0, %.lr.ph309.new ], [ %niter.next.1, %196 ]
  %197 = load ptr, ptr %193, align 8, !tbaa !16
  %198 = getelementptr inbounds i64, ptr %197, i64 %.4307
  store i64 %.4307, ptr %198, align 8, !tbaa !45
  %199 = load ptr, ptr %194, align 8, !tbaa !16
  %200 = getelementptr inbounds i64, ptr %199, i64 %.4307
  store i64 %.4307, ptr %200, align 8, !tbaa !45
  %201 = or disjoint i64 %.4307, 1
  %202 = load ptr, ptr %193, align 8, !tbaa !16
  %203 = getelementptr inbounds i64, ptr %202, i64 %201
  store i64 %201, ptr %203, align 8, !tbaa !45
  %204 = load ptr, ptr %194, align 8, !tbaa !16
  %205 = getelementptr inbounds i64, ptr %204, i64 %201
  store i64 %201, ptr %205, align 8, !tbaa !45
  %206 = add nuw nsw i64 %.4307, 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 %._crit_edge310.loopexit.unr-lcssa, label %196, !llvm.loop !48

._crit_edge310.loopexit.unr-lcssa:                ; preds = %196, %.lr.ph309
  %.4307.unr = phi i64 [ 0, %.lr.ph309 ], [ %206, %196 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge310, label %._crit_edge310.loopexit.epilog-lcssa

._crit_edge310.loopexit.epilog-lcssa:             ; preds = %._crit_edge310.loopexit.unr-lcssa
  %207 = load ptr, ptr %193, align 8, !tbaa !16
  %208 = getelementptr inbounds i64, ptr %207, i64 %.4307.unr
  store i64 %.4307.unr, ptr %208, align 8, !tbaa !45
  %209 = load ptr, ptr %194, align 8, !tbaa !16
  %210 = getelementptr inbounds i64, ptr %209, i64 %.4307.unr
  store i64 %.4307.unr, ptr %210, align 8, !tbaa !45
  br label %._crit_edge310

._crit_edge310:                                   ; preds = %._crit_edge310.loopexit.epilog-lcssa, %._crit_edge310.loopexit.unr-lcssa, %190
  %211 = load i64, ptr %123, align 8, !tbaa !42
  %212 = getelementptr inbounds i8, ptr %16, i64 2960
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %211, ptr noundef nonnull %212, ptr noundef %17)
  %213 = load i64, ptr %123, align 8, !tbaa !42
  %214 = getelementptr inbounds i8, ptr %16, i64 3216
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %213, ptr noundef nonnull %214, ptr noundef %17)
  %215 = load i64, ptr %123, align 8, !tbaa !42
  %.not.not286311 = icmp sgt i64 %215, 0
  br i1 %.not.not286311, label %.lr.ph314, label %._crit_edge315

.lr.ph314:                                        ; preds = %._crit_edge310
  %216 = getelementptr inbounds i8, ptr %16, i64 3016
  %217 = getelementptr inbounds i8, ptr %16, i64 3272
  br label %218

218:                                              ; preds = %.lr.ph314, %218
  %.5312 = phi i64 [ 0, %.lr.ph314 ], [ %223, %218 ]
  %219 = load ptr, ptr %216, align 8, !tbaa !16
  %220 = getelementptr inbounds i64, ptr %219, i64 %.5312
  store i64 %.5312, ptr %220, align 8, !tbaa !45
  %221 = load ptr, ptr %217, align 8, !tbaa !16
  %222 = getelementptr inbounds i64, ptr %221, i64 %.5312
  store i64 %.5312, ptr %222, align 8, !tbaa !45
  %223 = add nuw nsw i64 %.5312, 1
  %224 = load i64, ptr %123, align 8, !tbaa !42
  %.not.not286 = icmp slt i64 %223, %224
  br i1 %.not.not286, label %218, label %._crit_edge315, !llvm.loop !49

._crit_edge315:                                   ; preds = %218, %._crit_edge310
  %225 = add nsw i64 %12, %8
  %226 = getelementptr inbounds i8, ptr %16, i64 3024
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %225, ptr noundef nonnull %226, ptr noundef %17)
  %227 = getelementptr inbounds i8, ptr %16, i64 3280
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %225, ptr noundef nonnull %227, ptr noundef %17)
  %.not.not287316 = icmp sgt i64 %225, 0
  br i1 %.not.not287316, label %.lr.ph319, label %._crit_edge320

.lr.ph319:                                        ; preds = %._crit_edge315
  %228 = getelementptr inbounds i8, ptr %16, i64 3080
  %229 = getelementptr inbounds i8, ptr %16, i64 3336
  %230 = add i64 %12, %8
  %xtraiter334 = and i64 %225, 1
  %231 = icmp eq i64 %230, 1
  br i1 %231, label %._crit_edge320.loopexit.unr-lcssa, label %.lr.ph319.new

.lr.ph319.new:                                    ; preds = %.lr.ph319
  %unroll_iter336 = and i64 %225, 9223372036854775806
  br label %232

232:                                              ; preds = %232, %.lr.ph319.new
  %.6317 = phi i64 [ 0, %.lr.ph319.new ], [ %242, %232 ]
  %niter337 = phi i64 [ 0, %.lr.ph319.new ], [ %niter337.next.1, %232 ]
  %233 = load ptr, ptr %228, align 8, !tbaa !16
  %234 = getelementptr inbounds i64, ptr %233, i64 %.6317
  store i64 %.6317, ptr %234, align 8, !tbaa !45
  %235 = load ptr, ptr %229, align 8, !tbaa !16
  %236 = getelementptr inbounds i64, ptr %235, i64 %.6317
  store i64 %.6317, ptr %236, align 8, !tbaa !45
  %237 = or disjoint i64 %.6317, 1
  %238 = load ptr, ptr %228, align 8, !tbaa !16
  %239 = getelementptr inbounds i64, ptr %238, i64 %237
  store i64 %237, ptr %239, align 8, !tbaa !45
  %240 = load ptr, ptr %229, align 8, !tbaa !16
  %241 = getelementptr inbounds i64, ptr %240, i64 %237
  store i64 %237, ptr %241, align 8, !tbaa !45
  %242 = add nuw nsw i64 %.6317, 2
  %niter337.next.1 = add i64 %niter337, 2
  %niter337.ncmp.1 = icmp eq i64 %niter337.next.1, %unroll_iter336
  br i1 %niter337.ncmp.1, label %._crit_edge320.loopexit.unr-lcssa, label %232, !llvm.loop !50

._crit_edge320.loopexit.unr-lcssa:                ; preds = %232, %.lr.ph319
  %.6317.unr = phi i64 [ 0, %.lr.ph319 ], [ %242, %232 ]
  %lcmp.mod335.not = icmp eq i64 %xtraiter334, 0
  br i1 %lcmp.mod335.not, label %._crit_edge320, label %._crit_edge320.loopexit.epilog-lcssa

._crit_edge320.loopexit.epilog-lcssa:             ; preds = %._crit_edge320.loopexit.unr-lcssa
  %243 = load ptr, ptr %228, align 8, !tbaa !16
  %244 = getelementptr inbounds i64, ptr %243, i64 %.6317.unr
  store i64 %.6317.unr, ptr %244, align 8, !tbaa !45
  %245 = load ptr, ptr %229, align 8, !tbaa !16
  %246 = getelementptr inbounds i64, ptr %245, i64 %.6317.unr
  store i64 %.6317.unr, ptr %246, align 8, !tbaa !45
  br label %._crit_edge320

._crit_edge320:                                   ; preds = %._crit_edge320.loopexit.epilog-lcssa, %._crit_edge320.loopexit.unr-lcssa, %._crit_edge315
  %247 = getelementptr inbounds i8, ptr %16, i64 632
  call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %9, ptr noundef nonnull %247, ptr noundef %17)
  %248 = getelementptr inbounds i8, ptr %16, i64 1000
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %13, ptr noundef nonnull %248, ptr noundef %17)
  %249 = getelementptr inbounds i8, ptr %16, i64 1208
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %14, ptr noundef nonnull %249, ptr noundef %17)
  %250 = getelementptr inbounds i8, ptr %16, i64 1424
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef nonnull %2, ptr noundef nonnull %250, ptr noundef %17)
  %251 = getelementptr inbounds i8, ptr %16, i64 1488
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %251, ptr noundef %17)
  %252 = getelementptr inbounds i8, ptr %16, i64 1552
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %8, ptr noundef nonnull %4, ptr noundef nonnull %252, ptr noundef %17)
  br i1 %.not.not282295, label %253, label %257

253:                                              ; preds = %._crit_edge320
  %254 = getelementptr inbounds i8, ptr %16, i64 2352
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %12, ptr noundef %10, ptr noundef nonnull %254, ptr noundef %17)
  %255 = getelementptr inbounds i8, ptr %16, i64 2416
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %12, ptr noundef %11, ptr noundef nonnull %255, ptr noundef %17)
  %256 = getelementptr inbounds i8, ptr %16, i64 1984
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %9, ptr noundef nonnull %256, ptr noundef %17)
  br label %257

257:                                              ; preds = %253, %._crit_edge320
  %258 = getelementptr inbounds i8, ptr %16, i64 2480
  call void @_ZN11alglib_impl7xqccopyEPNS_21xquadraticconstraintsES1_PNS_8ae_stateE(ptr noundef %13, ptr noundef nonnull %258, ptr noundef %17)
  %259 = getelementptr inbounds i8, ptr %16, i64 2688
  call void @_ZN11alglib_impl7xcccopyEPNS_17xconicconstraintsES1_PNS_8ae_stateE(ptr noundef %14, ptr noundef nonnull %259, ptr noundef %17)
  %260 = getelementptr inbounds i8, ptr %16, i64 1616
  %261 = getelementptr inbounds i8, ptr %16, i64 1984
  %262 = getelementptr inbounds i8, ptr %16, i64 2352
  %263 = getelementptr inbounds i8, ptr %16, i64 2416
  call void @_ZN11alglib_implL46lpqppresolve_scaleshiftobjectiveandconstraintsEPKNS_9ae_vectorES2_lPS0_S3_S3_PNS_12sparsematrixEbS5_S3_S3_lPNS_21xquadraticconstraintsEPNS_17xconicconstraintsEPNS_14presolverstackEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %8, ptr noundef nonnull %250, ptr noundef nonnull %251, ptr noundef nonnull %252, ptr noundef nonnull %260, i1 noundef zeroext %7, ptr noundef nonnull %261, ptr noundef nonnull %262, ptr noundef nonnull %263, i64 noundef %12, ptr noundef nonnull %258, ptr noundef nonnull %259, ptr noundef nonnull %116, ptr noundef %17)
  br label %264

264:                                              ; preds = %257, %101, %74
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %17)
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #4
  ret void
}

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

; 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 #3

; 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 #3

; 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 #3

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

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

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


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