; 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::gipmstate" = 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::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, i64, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, i8, i8, %"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", double, double, double, double, double, i64, %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", double, i64, %"struct.alglib_impl::nlpfilter", i8, i8, i8, i64, i64, %"struct.alglib_impl::stimer", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::gipmrhs", %"struct.alglib_impl::gipmcondensedsystem", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::rcommstate" }
%"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::nlpfilter" = type { double, i64, double, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::stimer" = type { i64, i64, i8 }
%"struct.alglib_impl::ae_nxpool" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_dyn_block", %"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::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::gipmrhs" = 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", %"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::gipmcondensedsystem" = 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", %"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::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" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::gipmvars" = type { 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", %"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::varsfuncjac" = type { i64, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }

@.str.208 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN11alglib_implL11gipm_initmuE = external hidden global double, align 8
@.str.707 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.708 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.709 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.710 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.711 = external hidden unnamed_addr constant [82 x i8], align 1
@_ZN11alglib_implL15gipm_initbigvalE = external hidden global double, align 8
@_ZN11alglib_implL18gipm_initbiggrowthE = external hidden global double, align 8
@_ZN11alglib_implL16gipm_relaxfactorE = external hidden global double, align 8
@.str.712 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.713 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.714 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.715 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.716 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.717 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.718 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.719 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.720 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.721 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.722 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.723 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.734 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZN11alglib_implL25gipm_checkpointacceptanceE = external hidden global double, align 8
@.str.740 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [108 x i8], align 1
@_ZN11alglib_implL14gipm_lambdamaxE = external hidden global double, align 8
@.str.742 = external hidden unnamed_addr constant [59 x i8], align 1
@_ZN11alglib_implL42gipm_firstiterationcheckpointstagnationepsE = external hidden global double, align 8
@_ZN11alglib_implL31gipm_maxcheckpointstagnationitsE = external hidden global i64, align 8
@.str.743 = external hidden unnamed_addr constant [56 x i8], align 1
@_ZN11alglib_implL22gipm_rhsstagnationtol1E = external hidden global double, align 8
@_ZN11alglib_implL22gipm_rhsstagnationtol2E = external hidden global double, align 8
@_ZN11alglib_implL24gipm_maxrhsstagnationitsE = external hidden global i64, align 8
@.str.744 = external hidden unnamed_addr constant [54 x i8], align 1
@_ZN11alglib_implL39gipm_maxsubsequentfailuresforweakgrowthE = external hidden global i64, align 8
@.str.745 = external hidden unnamed_addr constant [98 x i8], align 1
@_ZN11alglib_implL17gipm_lambdagrowthE = external hidden global double, align 8
@.str.746 = external hidden unnamed_addr constant [86 x i8], align 1
@_ZN11alglib_implL22gipm_lambdarapidgrowthE = external hidden global double, align 8
@_ZN11alglib_implL14gipm_maxrfsitsE = external hidden global i64, align 8
@.str.747 = external hidden unnamed_addr constant [76 x i8], align 1
@_ZN11alglib_implL11gipm_rhstolE = external hidden global double, align 8
@.str.748 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.754 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZN11alglib_implL14gipm_smallstepE = external hidden global double, align 8
@_ZN11alglib_implL19gipm_maxsmalltrialsE = external hidden global i64, align 8
@.str.755 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.756 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.757 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.758 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [58 x i8], align 1
@_ZN11alglib_implL10gipm_maxmuE = external hidden global double, align 8
@.str.764 = external hidden unnamed_addr constant [95 x i8], align 1
@_ZN11alglib_implL19gipm_lambdadecayaccE = external hidden global double, align 8
@.str.765 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [50 x i8], align 1
@_ZN11alglib_implL14gipm_maxbigvalE = external hidden global double, align 8
@_ZN11alglib_implL17gipm_maxbiggrowthE = external hidden global double, align 8
@.str.767 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [87 x i8], align 1
@_ZN11alglib_implL13gipm_vggrowthE = external hidden global double, align 8
@.str.769 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.773 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZN11alglib_implL18gipm_mudecaylinearE = external hidden global double, align 8
@_ZN11alglib_implL17gipm_mudecaypowerE = external hidden global double, align 8
@.str.774 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.775 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.776 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [27 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 nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

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

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

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

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

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

declare noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

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

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

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

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

declare void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef) #1

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

declare void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef) #1

declare noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl17vfjinitfromsparseEPKNS_9ae_vectorElS2_lPKNS_12sparsematrixEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl16nlpfisacceptableEPNS_9nlpfilterEddddPNS_8ae_stateE(ptr noundef, double noundef, double noundef, double noundef, double noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef, double noundef, double noundef, ptr noundef) #2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl19gipmgetinitprimdualEPNS_8ae_stateE(ptr noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl13gipmiterationEPNS_9gipmstateEbPNS_8ae_stateE(ptr noundef %0, i1 noundef zeroext %1, ptr noundef %2) #2 {
  %4 = alloca i1, align 1
  %5 = alloca ptr, align 8
  %6 = alloca i8, align 1
  %7 = alloca ptr, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca i8, align 1
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca i8, align 1
  %36 = alloca i8, align 1
  %37 = alloca i8, align 1
  %38 = alloca i8, align 1
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca i64, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca i8, align 1
  %54 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  %55 = zext i1 %1 to i8
  store i8 %55, ptr %6, align 1, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #4
  %56 = load ptr, ptr %5, align 8, !tbaa !5
  %57 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %56, i32 0, i32 60
  %58 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %57, i32 0, i32 0
  %59 = load i32, ptr %58, align 8, !tbaa !11
  %60 = icmp sge i32 %59, 0
  br i1 %60, label %61, label %391

61:                                               ; preds = %3
  %62 = load ptr, ptr %5, align 8, !tbaa !5
  %63 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %62, i32 0, i32 60
  %64 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %63, i32 0, i32 1
  %65 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %64, i32 0, i32 4
  %66 = load ptr, ptr %65, align 8, !tbaa !29
  %67 = getelementptr inbounds i64, ptr %66, i64 0
  %68 = load i64, ptr %67, align 8, !tbaa !30
  store i64 %68, ptr %8, align 8, !tbaa !30
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %69, i32 0, i32 60
  %71 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %70, i32 0, i32 1
  %72 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %71, i32 0, i32 4
  %73 = load ptr, ptr %72, align 8, !tbaa !29
  %74 = getelementptr inbounds i64, ptr %73, i64 1
  %75 = load i64, ptr %74, align 8, !tbaa !30
  store i64 %75, ptr %9, align 8, !tbaa !30
  %76 = load ptr, ptr %5, align 8, !tbaa !5
  %77 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %76, i32 0, i32 60
  %78 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %77, i32 0, i32 1
  %79 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %78, i32 0, i32 4
  %80 = load ptr, ptr %79, align 8, !tbaa !29
  %81 = getelementptr inbounds i64, ptr %80, i64 2
  %82 = load i64, ptr %81, align 8, !tbaa !30
  store i64 %82, ptr %10, align 8, !tbaa !30
  %83 = load ptr, ptr %5, align 8, !tbaa !5
  %84 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %83, i32 0, i32 60
  %85 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %84, i32 0, i32 1
  %86 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %85, i32 0, i32 4
  %87 = load ptr, ptr %86, align 8, !tbaa !29
  %88 = getelementptr inbounds i64, ptr %87, i64 3
  %89 = load i64, ptr %88, align 8, !tbaa !30
  store i64 %89, ptr %11, align 8, !tbaa !30
  %90 = load ptr, ptr %5, align 8, !tbaa !5
  %91 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %90, i32 0, i32 60
  %92 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %91, i32 0, i32 1
  %93 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %92, i32 0, i32 4
  %94 = load ptr, ptr %93, align 8, !tbaa !29
  %95 = getelementptr inbounds i64, ptr %94, i64 4
  %96 = load i64, ptr %95, align 8, !tbaa !30
  store i64 %96, ptr %12, align 8, !tbaa !30
  %97 = load ptr, ptr %5, align 8, !tbaa !5
  %98 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %97, i32 0, i32 60
  %99 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %98, i32 0, i32 1
  %100 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %99, i32 0, i32 4
  %101 = load ptr, ptr %100, align 8, !tbaa !29
  %102 = getelementptr inbounds i64, ptr %101, i64 5
  %103 = load i64, ptr %102, align 8, !tbaa !30
  store i64 %103, ptr %13, align 8, !tbaa !30
  %104 = load ptr, ptr %5, align 8, !tbaa !5
  %105 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %104, i32 0, i32 60
  %106 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %105, i32 0, i32 1
  %107 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %106, i32 0, i32 4
  %108 = load ptr, ptr %107, align 8, !tbaa !29
  %109 = getelementptr inbounds i64, ptr %108, i64 6
  %110 = load i64, ptr %109, align 8, !tbaa !30
  store i64 %110, ptr %14, align 8, !tbaa !30
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %111, i32 0, i32 60
  %113 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %112, i32 0, i32 1
  %114 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %113, i32 0, i32 4
  %115 = load ptr, ptr %114, align 8, !tbaa !29
  %116 = getelementptr inbounds i64, ptr %115, i64 7
  %117 = load i64, ptr %116, align 8, !tbaa !30
  store i64 %117, ptr %15, align 8, !tbaa !30
  %118 = load ptr, ptr %5, align 8, !tbaa !5
  %119 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %118, i32 0, i32 60
  %120 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %119, i32 0, i32 1
  %121 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %120, i32 0, i32 4
  %122 = load ptr, ptr %121, align 8, !tbaa !29
  %123 = getelementptr inbounds i64, ptr %122, i64 8
  %124 = load i64, ptr %123, align 8, !tbaa !30
  store i64 %124, ptr %16, align 8, !tbaa !30
  %125 = load ptr, ptr %5, align 8, !tbaa !5
  %126 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %125, i32 0, i32 60
  %127 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %126, i32 0, i32 1
  %128 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %127, i32 0, i32 4
  %129 = load ptr, ptr %128, align 8, !tbaa !29
  %130 = getelementptr inbounds i64, ptr %129, i64 9
  %131 = load i64, ptr %130, align 8, !tbaa !30
  store i64 %131, ptr %42, align 8, !tbaa !30
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %132, i32 0, i32 60
  %134 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %133, i32 0, i32 1
  %135 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %134, i32 0, i32 4
  %136 = load ptr, ptr %135, align 8, !tbaa !29
  %137 = getelementptr inbounds i64, ptr %136, i64 10
  %138 = load i64, ptr %137, align 8, !tbaa !30
  store i64 %138, ptr %48, align 8, !tbaa !30
  %139 = load ptr, ptr %5, align 8, !tbaa !5
  %140 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %139, i32 0, i32 60
  %141 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %140, i32 0, i32 1
  %142 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %141, i32 0, i32 4
  %143 = load ptr, ptr %142, align 8, !tbaa !29
  %144 = getelementptr inbounds i64, ptr %143, i64 11
  %145 = load i64, ptr %144, align 8, !tbaa !30
  store i64 %145, ptr %49, align 8, !tbaa !30
  %146 = load ptr, ptr %5, align 8, !tbaa !5
  %147 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %146, i32 0, i32 60
  %148 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %147, i32 0, i32 2
  %149 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %148, i32 0, i32 4
  %150 = load ptr, ptr %149, align 8, !tbaa !29
  %151 = getelementptr inbounds i8, ptr %150, i64 0
  %152 = load i8, ptr %151, align 1, !tbaa !9, !range !31, !noundef !32
  %153 = trunc i8 %152 to i1
  %154 = zext i1 %153 to i8
  store i8 %154, ptr %32, align 1, !tbaa !9
  %155 = load ptr, ptr %5, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %155, i32 0, i32 60
  %157 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %156, i32 0, i32 2
  %158 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %157, i32 0, i32 4
  %159 = load ptr, ptr %158, align 8, !tbaa !29
  %160 = getelementptr inbounds i8, ptr %159, i64 1
  %161 = load i8, ptr %160, align 1, !tbaa !9, !range !31, !noundef !32
  %162 = trunc i8 %161 to i1
  %163 = zext i1 %162 to i8
  store i8 %163, ptr %33, align 1, !tbaa !9
  %164 = load ptr, ptr %5, align 8, !tbaa !5
  %165 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %164, i32 0, i32 60
  %166 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %165, i32 0, i32 2
  %167 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %166, i32 0, i32 4
  %168 = load ptr, ptr %167, align 8, !tbaa !29
  %169 = getelementptr inbounds i8, ptr %168, i64 2
  %170 = load i8, ptr %169, align 1, !tbaa !9, !range !31, !noundef !32
  %171 = trunc i8 %170 to i1
  %172 = zext i1 %171 to i8
  store i8 %172, ptr %34, align 1, !tbaa !9
  %173 = load ptr, ptr %5, align 8, !tbaa !5
  %174 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %173, i32 0, i32 60
  %175 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %174, i32 0, i32 2
  %176 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %175, i32 0, i32 4
  %177 = load ptr, ptr %176, align 8, !tbaa !29
  %178 = getelementptr inbounds i8, ptr %177, i64 3
  %179 = load i8, ptr %178, align 1, !tbaa !9, !range !31, !noundef !32
  %180 = trunc i8 %179 to i1
  %181 = zext i1 %180 to i8
  store i8 %181, ptr %35, align 1, !tbaa !9
  %182 = load ptr, ptr %5, align 8, !tbaa !5
  %183 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %182, i32 0, i32 60
  %184 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %183, i32 0, i32 2
  %185 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %184, i32 0, i32 4
  %186 = load ptr, ptr %185, align 8, !tbaa !29
  %187 = getelementptr inbounds i8, ptr %186, i64 4
  %188 = load i8, ptr %187, align 1, !tbaa !9, !range !31, !noundef !32
  %189 = trunc i8 %188 to i1
  %190 = zext i1 %189 to i8
  store i8 %190, ptr %36, align 1, !tbaa !9
  %191 = load ptr, ptr %5, align 8, !tbaa !5
  %192 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %191, i32 0, i32 60
  %193 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %192, i32 0, i32 2
  %194 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %193, i32 0, i32 4
  %195 = load ptr, ptr %194, align 8, !tbaa !29
  %196 = getelementptr inbounds i8, ptr %195, i64 5
  %197 = load i8, ptr %196, align 1, !tbaa !9, !range !31, !noundef !32
  %198 = trunc i8 %197 to i1
  %199 = zext i1 %198 to i8
  store i8 %199, ptr %37, align 1, !tbaa !9
  %200 = load ptr, ptr %5, align 8, !tbaa !5
  %201 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %200, i32 0, i32 60
  %202 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %201, i32 0, i32 2
  %203 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %202, i32 0, i32 4
  %204 = load ptr, ptr %203, align 8, !tbaa !29
  %205 = getelementptr inbounds i8, ptr %204, i64 6
  %206 = load i8, ptr %205, align 1, !tbaa !9, !range !31, !noundef !32
  %207 = trunc i8 %206 to i1
  %208 = zext i1 %207 to i8
  store i8 %208, ptr %38, align 1, !tbaa !9
  %209 = load ptr, ptr %5, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %209, i32 0, i32 60
  %211 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %210, i32 0, i32 3
  %212 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %211, i32 0, i32 4
  %213 = load ptr, ptr %212, align 8, !tbaa !29
  %214 = getelementptr inbounds double, ptr %213, i64 0
  %215 = load double, ptr %214, align 8, !tbaa !33
  store double %215, ptr %17, align 8, !tbaa !33
  %216 = load ptr, ptr %5, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %216, i32 0, i32 60
  %218 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %217, i32 0, i32 3
  %219 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %218, i32 0, i32 4
  %220 = load ptr, ptr %219, align 8, !tbaa !29
  %221 = getelementptr inbounds double, ptr %220, i64 1
  %222 = load double, ptr %221, align 8, !tbaa !33
  store double %222, ptr %18, align 8, !tbaa !33
  %223 = load ptr, ptr %5, align 8, !tbaa !5
  %224 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %223, i32 0, i32 60
  %225 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %224, i32 0, i32 3
  %226 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %225, i32 0, i32 4
  %227 = load ptr, ptr %226, align 8, !tbaa !29
  %228 = getelementptr inbounds double, ptr %227, i64 2
  %229 = load double, ptr %228, align 8, !tbaa !33
  store double %229, ptr %19, align 8, !tbaa !33
  %230 = load ptr, ptr %5, align 8, !tbaa !5
  %231 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %230, i32 0, i32 60
  %232 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %231, i32 0, i32 3
  %233 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %232, i32 0, i32 4
  %234 = load ptr, ptr %233, align 8, !tbaa !29
  %235 = getelementptr inbounds double, ptr %234, i64 3
  %236 = load double, ptr %235, align 8, !tbaa !33
  store double %236, ptr %20, align 8, !tbaa !33
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  %238 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %237, i32 0, i32 60
  %239 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %238, i32 0, i32 3
  %240 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %239, i32 0, i32 4
  %241 = load ptr, ptr %240, align 8, !tbaa !29
  %242 = getelementptr inbounds double, ptr %241, i64 4
  %243 = load double, ptr %242, align 8, !tbaa !33
  store double %243, ptr %21, align 8, !tbaa !33
  %244 = load ptr, ptr %5, align 8, !tbaa !5
  %245 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %244, i32 0, i32 60
  %246 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %245, i32 0, i32 3
  %247 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %246, i32 0, i32 4
  %248 = load ptr, ptr %247, align 8, !tbaa !29
  %249 = getelementptr inbounds double, ptr %248, i64 5
  %250 = load double, ptr %249, align 8, !tbaa !33
  store double %250, ptr %22, align 8, !tbaa !33
  %251 = load ptr, ptr %5, align 8, !tbaa !5
  %252 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %251, i32 0, i32 60
  %253 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %252, i32 0, i32 3
  %254 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %253, i32 0, i32 4
  %255 = load ptr, ptr %254, align 8, !tbaa !29
  %256 = getelementptr inbounds double, ptr %255, i64 6
  %257 = load double, ptr %256, align 8, !tbaa !33
  store double %257, ptr %23, align 8, !tbaa !33
  %258 = load ptr, ptr %5, align 8, !tbaa !5
  %259 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %258, i32 0, i32 60
  %260 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %259, i32 0, i32 3
  %261 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %260, i32 0, i32 4
  %262 = load ptr, ptr %261, align 8, !tbaa !29
  %263 = getelementptr inbounds double, ptr %262, i64 7
  %264 = load double, ptr %263, align 8, !tbaa !33
  store double %264, ptr %24, align 8, !tbaa !33
  %265 = load ptr, ptr %5, align 8, !tbaa !5
  %266 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %265, i32 0, i32 60
  %267 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %266, i32 0, i32 3
  %268 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %267, i32 0, i32 4
  %269 = load ptr, ptr %268, align 8, !tbaa !29
  %270 = getelementptr inbounds double, ptr %269, i64 8
  %271 = load double, ptr %270, align 8, !tbaa !33
  store double %271, ptr %25, align 8, !tbaa !33
  %272 = load ptr, ptr %5, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %272, i32 0, i32 60
  %274 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %273, i32 0, i32 3
  %275 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %274, i32 0, i32 4
  %276 = load ptr, ptr %275, align 8, !tbaa !29
  %277 = getelementptr inbounds double, ptr %276, i64 9
  %278 = load double, ptr %277, align 8, !tbaa !33
  store double %278, ptr %26, align 8, !tbaa !33
  %279 = load ptr, ptr %5, align 8, !tbaa !5
  %280 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %279, i32 0, i32 60
  %281 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %280, i32 0, i32 3
  %282 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %281, i32 0, i32 4
  %283 = load ptr, ptr %282, align 8, !tbaa !29
  %284 = getelementptr inbounds double, ptr %283, i64 10
  %285 = load double, ptr %284, align 8, !tbaa !33
  store double %285, ptr %27, align 8, !tbaa !33
  %286 = load ptr, ptr %5, align 8, !tbaa !5
  %287 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %286, i32 0, i32 60
  %288 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %287, i32 0, i32 3
  %289 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %288, i32 0, i32 4
  %290 = load ptr, ptr %289, align 8, !tbaa !29
  %291 = getelementptr inbounds double, ptr %290, i64 11
  %292 = load double, ptr %291, align 8, !tbaa !33
  store double %292, ptr %28, align 8, !tbaa !33
  %293 = load ptr, ptr %5, align 8, !tbaa !5
  %294 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %293, i32 0, i32 60
  %295 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %294, i32 0, i32 3
  %296 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %295, i32 0, i32 4
  %297 = load ptr, ptr %296, align 8, !tbaa !29
  %298 = getelementptr inbounds double, ptr %297, i64 12
  %299 = load double, ptr %298, align 8, !tbaa !33
  store double %299, ptr %29, align 8, !tbaa !33
  %300 = load ptr, ptr %5, align 8, !tbaa !5
  %301 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %300, i32 0, i32 60
  %302 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %301, i32 0, i32 3
  %303 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %302, i32 0, i32 4
  %304 = load ptr, ptr %303, align 8, !tbaa !29
  %305 = getelementptr inbounds double, ptr %304, i64 13
  %306 = load double, ptr %305, align 8, !tbaa !33
  store double %306, ptr %30, align 8, !tbaa !33
  %307 = load ptr, ptr %5, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %307, i32 0, i32 60
  %309 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %308, i32 0, i32 3
  %310 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %309, i32 0, i32 4
  %311 = load ptr, ptr %310, align 8, !tbaa !29
  %312 = getelementptr inbounds double, ptr %311, i64 14
  %313 = load double, ptr %312, align 8, !tbaa !33
  store double %313, ptr %31, align 8, !tbaa !33
  %314 = load ptr, ptr %5, align 8, !tbaa !5
  %315 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %314, i32 0, i32 60
  %316 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %315, i32 0, i32 3
  %317 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %316, i32 0, i32 4
  %318 = load ptr, ptr %317, align 8, !tbaa !29
  %319 = getelementptr inbounds double, ptr %318, i64 15
  %320 = load double, ptr %319, align 8, !tbaa !33
  store double %320, ptr %39, align 8, !tbaa !33
  %321 = load ptr, ptr %5, align 8, !tbaa !5
  %322 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %321, i32 0, i32 60
  %323 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %322, i32 0, i32 3
  %324 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %323, i32 0, i32 4
  %325 = load ptr, ptr %324, align 8, !tbaa !29
  %326 = getelementptr inbounds double, ptr %325, i64 16
  %327 = load double, ptr %326, align 8, !tbaa !33
  store double %327, ptr %40, align 8, !tbaa !33
  %328 = load ptr, ptr %5, align 8, !tbaa !5
  %329 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %328, i32 0, i32 60
  %330 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %329, i32 0, i32 3
  %331 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %330, i32 0, i32 4
  %332 = load ptr, ptr %331, align 8, !tbaa !29
  %333 = getelementptr inbounds double, ptr %332, i64 17
  %334 = load double, ptr %333, align 8, !tbaa !33
  store double %334, ptr %41, align 8, !tbaa !33
  %335 = load ptr, ptr %5, align 8, !tbaa !5
  %336 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %335, i32 0, i32 60
  %337 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %336, i32 0, i32 3
  %338 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %337, i32 0, i32 4
  %339 = load ptr, ptr %338, align 8, !tbaa !29
  %340 = getelementptr inbounds double, ptr %339, i64 18
  %341 = load double, ptr %340, align 8, !tbaa !33
  store double %341, ptr %43, align 8, !tbaa !33
  %342 = load ptr, ptr %5, align 8, !tbaa !5
  %343 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %342, i32 0, i32 60
  %344 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %343, i32 0, i32 3
  %345 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %344, i32 0, i32 4
  %346 = load ptr, ptr %345, align 8, !tbaa !29
  %347 = getelementptr inbounds double, ptr %346, i64 19
  %348 = load double, ptr %347, align 8, !tbaa !33
  store double %348, ptr %44, align 8, !tbaa !33
  %349 = load ptr, ptr %5, align 8, !tbaa !5
  %350 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %349, i32 0, i32 60
  %351 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %350, i32 0, i32 3
  %352 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %351, i32 0, i32 4
  %353 = load ptr, ptr %352, align 8, !tbaa !29
  %354 = getelementptr inbounds double, ptr %353, i64 20
  %355 = load double, ptr %354, align 8, !tbaa !33
  store double %355, ptr %45, align 8, !tbaa !33
  %356 = load ptr, ptr %5, align 8, !tbaa !5
  %357 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %356, i32 0, i32 60
  %358 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %357, i32 0, i32 3
  %359 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %358, i32 0, i32 4
  %360 = load ptr, ptr %359, align 8, !tbaa !29
  %361 = getelementptr inbounds double, ptr %360, i64 21
  %362 = load double, ptr %361, align 8, !tbaa !33
  store double %362, ptr %46, align 8, !tbaa !33
  %363 = load ptr, ptr %5, align 8, !tbaa !5
  %364 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %363, i32 0, i32 60
  %365 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %364, i32 0, i32 3
  %366 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %365, i32 0, i32 4
  %367 = load ptr, ptr %366, align 8, !tbaa !29
  %368 = getelementptr inbounds double, ptr %367, i64 22
  %369 = load double, ptr %368, align 8, !tbaa !33
  store double %369, ptr %47, align 8, !tbaa !33
  %370 = load ptr, ptr %5, align 8, !tbaa !5
  %371 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %370, i32 0, i32 60
  %372 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %371, i32 0, i32 3
  %373 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %372, i32 0, i32 4
  %374 = load ptr, ptr %373, align 8, !tbaa !29
  %375 = getelementptr inbounds double, ptr %374, i64 23
  %376 = load double, ptr %375, align 8, !tbaa !33
  store double %376, ptr %50, align 8, !tbaa !33
  %377 = load ptr, ptr %5, align 8, !tbaa !5
  %378 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %377, i32 0, i32 60
  %379 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %378, i32 0, i32 3
  %380 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %379, i32 0, i32 4
  %381 = load ptr, ptr %380, align 8, !tbaa !29
  %382 = getelementptr inbounds double, ptr %381, i64 24
  %383 = load double, ptr %382, align 8, !tbaa !33
  store double %383, ptr %51, align 8, !tbaa !33
  %384 = load ptr, ptr %5, align 8, !tbaa !5
  %385 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %384, i32 0, i32 60
  %386 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %385, i32 0, i32 3
  %387 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %386, i32 0, i32 4
  %388 = load ptr, ptr %387, align 8, !tbaa !29
  %389 = getelementptr inbounds double, ptr %388, i64 25
  %390 = load double, ptr %389, align 8, !tbaa !33
  store double %390, ptr %52, align 8, !tbaa !33
  br label %392

391:                                              ; preds = %3
  store i64 359, ptr %8, align 8, !tbaa !30
  store i64 -58, ptr %9, align 8, !tbaa !30
  store i64 -919, ptr %10, align 8, !tbaa !30
  store i64 -909, ptr %11, align 8, !tbaa !30
  store i64 81, ptr %12, align 8, !tbaa !30
  store i64 255, ptr %13, align 8, !tbaa !30
  store i64 74, ptr %14, align 8, !tbaa !30
  store i64 -788, ptr %15, align 8, !tbaa !30
  store i64 809, ptr %16, align 8, !tbaa !30
  store i64 205, ptr %42, align 8, !tbaa !30
  store i64 -838, ptr %48, align 8, !tbaa !30
  store i64 939, ptr %49, align 8, !tbaa !30
  store i8 0, ptr %32, align 1, !tbaa !9
  store i8 1, ptr %33, align 1, !tbaa !9
  store i8 1, ptr %34, align 1, !tbaa !9
  store i8 0, ptr %35, align 1, !tbaa !9
  store i8 0, ptr %36, align 1, !tbaa !9
  store i8 0, ptr %37, align 1, !tbaa !9
  store i8 0, ptr %38, align 1, !tbaa !9
  store double 1.016000e+03, ptr %17, align 8, !tbaa !33
  store double -2.290000e+02, ptr %18, align 8, !tbaa !33
  store double -5.360000e+02, ptr %19, align 8, !tbaa !33
  store double 4.870000e+02, ptr %20, align 8, !tbaa !33
  store double -1.150000e+02, ptr %21, align 8, !tbaa !33
  store double 8.860000e+02, ptr %22, align 8, !tbaa !33
  store double 3.460000e+02, ptr %23, align 8, !tbaa !33
  store double -7.220000e+02, ptr %24, align 8, !tbaa !33
  store double -4.130000e+02, ptr %25, align 8, !tbaa !33
  store double -4.610000e+02, ptr %26, align 8, !tbaa !33
  store double 9.270000e+02, ptr %27, align 8, !tbaa !33
  store double 2.010000e+02, ptr %28, align 8, !tbaa !33
  store double 9.220000e+02, ptr %29, align 8, !tbaa !33
  store double -1.540000e+02, ptr %30, align 8, !tbaa !33
  store double 3.060000e+02, ptr %31, align 8, !tbaa !33
  store double -1.011000e+03, ptr %39, align 8, !tbaa !33
  store double 9.510000e+02, ptr %40, align 8, !tbaa !33
  store double -4.630000e+02, ptr %41, align 8, !tbaa !33
  store double 8.800000e+01, ptr %43, align 8, !tbaa !33
  store double -8.610000e+02, ptr %44, align 8, !tbaa !33
  store double -6.780000e+02, ptr %45, align 8, !tbaa !33
  store double -7.310000e+02, ptr %46, align 8, !tbaa !33
  store double -6.750000e+02, ptr %47, align 8, !tbaa !33
  store double -7.630000e+02, ptr %50, align 8, !tbaa !33
  store double -2.330000e+02, ptr %51, align 8, !tbaa !33
  store double -9.360000e+02, ptr %52, align 8, !tbaa !33
  br label %392

392:                                              ; preds = %391, %61
  %393 = load ptr, ptr %5, align 8, !tbaa !5
  %394 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %393, i32 0, i32 60
  %395 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %394, i32 0, i32 0
  %396 = load i32, ptr %395, align 8, !tbaa !11
  %397 = icmp eq i32 %396, 0
  br i1 %397, label %398, label %399

398:                                              ; preds = %392
  br label %854

399:                                              ; preds = %392
  %400 = load ptr, ptr %5, align 8, !tbaa !5
  %401 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %400, i32 0, i32 60
  %402 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %401, i32 0, i32 0
  %403 = load i32, ptr %402, align 8, !tbaa !11
  %404 = icmp eq i32 %403, 1
  br i1 %404, label %405, label %406

405:                                              ; preds = %399
  br label %1814

406:                                              ; preds = %399
  %407 = load ptr, ptr %5, align 8, !tbaa !5
  %408 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %407, i32 0, i32 60
  %409 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %408, i32 0, i32 0
  %410 = load i32, ptr %409, align 8, !tbaa !11
  %411 = icmp eq i32 %410, 2
  br i1 %411, label %412, label %413

412:                                              ; preds = %406
  br label %1976

413:                                              ; preds = %406
  %414 = load ptr, ptr %5, align 8, !tbaa !5
  %415 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %414, i32 0, i32 60
  %416 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %415, i32 0, i32 0
  %417 = load i32, ptr %416, align 8, !tbaa !11
  %418 = icmp eq i32 %417, 3
  br i1 %418, label %419, label %420

419:                                              ; preds = %413
  br label %2043

420:                                              ; preds = %413
  %421 = load ptr, ptr %5, align 8, !tbaa !5
  %422 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %421, i32 0, i32 60
  %423 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %422, i32 0, i32 0
  %424 = load i32, ptr %423, align 8, !tbaa !11
  %425 = icmp eq i32 %424, 4
  br i1 %425, label %426, label %427

426:                                              ; preds = %420
  br label %2294

427:                                              ; preds = %420
  %428 = load ptr, ptr %5, align 8, !tbaa !5
  %429 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %428, i32 0, i32 60
  %430 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %429, i32 0, i32 0
  %431 = load i32, ptr %430, align 8, !tbaa !11
  %432 = icmp eq i32 %431, 5
  br i1 %432, label %433, label %434

433:                                              ; preds = %427
  br label %2499

434:                                              ; preds = %427
  %435 = load ptr, ptr %5, align 8, !tbaa !5
  %436 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %435, i32 0, i32 0
  %437 = load i64, ptr %436, align 8, !tbaa !34
  store i64 %437, ptr %8, align 8, !tbaa !30
  %438 = load ptr, ptr %5, align 8, !tbaa !5
  %439 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %438, i32 0, i32 1
  %440 = load i64, ptr %439, align 8, !tbaa !35
  store i64 %440, ptr %10, align 8, !tbaa !30
  %441 = load ptr, ptr %5, align 8, !tbaa !5
  %442 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %441, i32 0, i32 2
  %443 = load i64, ptr %442, align 8, !tbaa !36
  store i64 %443, ptr %11, align 8, !tbaa !30
  %444 = load i64, ptr %10, align 8, !tbaa !30
  %445 = load i64, ptr %11, align 8, !tbaa !30
  %446 = add nsw i64 %444, %445
  store i64 %446, ptr %9, align 8, !tbaa !30
  %447 = load ptr, ptr %5, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %447, i32 0, i32 0
  %449 = load i64, ptr %448, align 8, !tbaa !34
  %450 = load ptr, ptr %5, align 8, !tbaa !5
  %451 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %450, i32 0, i32 1
  %452 = load i64, ptr %451, align 8, !tbaa !35
  %453 = add nsw i64 %449, %452
  store i64 %453, ptr %12, align 8, !tbaa !30
  %454 = load ptr, ptr %5, align 8, !tbaa !5
  %455 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %454, i32 0, i32 0
  %456 = load i64, ptr %455, align 8, !tbaa !34
  %457 = load ptr, ptr %5, align 8, !tbaa !5
  %458 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %457, i32 0, i32 1
  %459 = load i64, ptr %458, align 8, !tbaa !35
  %460 = add nsw i64 %456, %459
  %461 = load ptr, ptr %5, align 8, !tbaa !5
  %462 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %461, i32 0, i32 2
  %463 = load i64, ptr %462, align 8, !tbaa !36
  %464 = add nsw i64 %460, %463
  store i64 %464, ptr %13, align 8, !tbaa !30
  %465 = load ptr, ptr %5, align 8, !tbaa !5
  %466 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %465, i32 0, i32 49
  %467 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %466, ptr noundef %467)
  %468 = load ptr, ptr %5, align 8, !tbaa !5
  %469 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %468, i32 0, i32 50
  %470 = load i64, ptr %13, align 8, !tbaa !30
  %471 = load i64, ptr %9, align 8, !tbaa !30
  %472 = load ptr, ptr %7, align 8, !tbaa !5
  %473 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %470, i64 noundef %471, ptr noundef %472)
  %474 = add nsw i64 %473, 1
  %475 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl15ae_nxpool_allocEPNS_9ae_nxpoolElPNS_8ae_stateE(ptr noundef %469, i64 noundef %474, ptr noundef %475)
  %476 = load ptr, ptr %5, align 8, !tbaa !5
  %477 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %476, i32 0, i32 49
  %478 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %477, ptr noundef %478)
  %479 = load ptr, ptr %5, align 8, !tbaa !5
  %480 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %479, i32 0, i32 44
  %481 = load i8, ptr %480, align 8, !tbaa !37, !range !31, !noundef !32
  %482 = trunc i8 %481 to i1
  br i1 %482, label %483, label %492

483:                                              ; preds = %434
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.612)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.707)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  %484 = load i64, ptr %8, align 8, !tbaa !30
  %485 = trunc i64 %484 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.708, i32 noundef %485)
  %486 = load i64, ptr %10, align 8, !tbaa !30
  %487 = load i64, ptr %11, align 8, !tbaa !30
  %488 = add nsw i64 %486, %487
  %489 = trunc i64 %488 to i32
  %490 = load i64, ptr %11, align 8, !tbaa !30
  %491 = trunc i64 %490 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.709, i32 noundef %489, i32 noundef %491)
  br label %492

492:                                              ; preds = %483, %434
  %493 = load i64, ptr %8, align 8, !tbaa !30
  %494 = load ptr, ptr %5, align 8, !tbaa !5
  %495 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %494, i32 0, i32 23
  %496 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %493, double noundef 0.000000e+00, ptr noundef %495, ptr noundef %496)
  %497 = load i64, ptr %8, align 8, !tbaa !30
  %498 = load ptr, ptr %5, align 8, !tbaa !5
  %499 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %498, i32 0, i32 24
  %500 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %497, double noundef 0.000000e+00, ptr noundef %499, ptr noundef %500)
  %501 = load i64, ptr %10, align 8, !tbaa !30
  %502 = load ptr, ptr %5, align 8, !tbaa !5
  %503 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %502, i32 0, i32 25
  %504 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %501, double noundef 0.000000e+00, ptr noundef %503, ptr noundef %504)
  %505 = load i64, ptr %10, align 8, !tbaa !30
  %506 = load ptr, ptr %5, align 8, !tbaa !5
  %507 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %506, i32 0, i32 26
  %508 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %505, double noundef 0.000000e+00, ptr noundef %507, ptr noundef %508)
  store i64 0, ptr %14, align 8, !tbaa !30
  br label %509

509:                                              ; preds = %605, %492
  %510 = load i64, ptr %14, align 8, !tbaa !30
  %511 = load i64, ptr %12, align 8, !tbaa !30
  %512 = sub nsw i64 %511, 1
  %513 = icmp sle i64 %510, %512
  br i1 %513, label %514, label %608

514:                                              ; preds = %509
  %515 = load ptr, ptr %5, align 8, !tbaa !5
  %516 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %515, i32 0, i32 6
  %517 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %516, i32 0, i32 4
  %518 = load ptr, ptr %517, align 8, !tbaa !29
  %519 = load i64, ptr %14, align 8, !tbaa !30
  %520 = getelementptr inbounds i8, ptr %518, i64 %519
  %521 = load i8, ptr %520, align 1, !tbaa !9, !range !31, !noundef !32
  %522 = trunc i8 %521 to i1
  br i1 %522, label %523, label %559

523:                                              ; preds = %514
  %524 = load i64, ptr %14, align 8, !tbaa !30
  %525 = load i64, ptr %8, align 8, !tbaa !30
  %526 = icmp slt i64 %524, %525
  br i1 %526, label %527, label %534

527:                                              ; preds = %523
  %528 = load ptr, ptr %5, align 8, !tbaa !5
  %529 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %528, i32 0, i32 23
  %530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %529, i32 0, i32 4
  %531 = load ptr, ptr %530, align 8, !tbaa !29
  %532 = load i64, ptr %14, align 8, !tbaa !30
  %533 = getelementptr inbounds double, ptr %531, i64 %532
  store double 1.000000e+00, ptr %533, align 8, !tbaa !33
  br label %534

534:                                              ; preds = %527, %523
  %535 = load i64, ptr %14, align 8, !tbaa !30
  %536 = load i64, ptr %8, align 8, !tbaa !30
  %537 = icmp sge i64 %535, %536
  br i1 %537, label %538, label %558

538:                                              ; preds = %534
  %539 = load ptr, ptr %5, align 8, !tbaa !5
  %540 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %539, i32 0, i32 8
  %541 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %540, i32 0, i32 4
  %542 = load ptr, ptr %541, align 8, !tbaa !29
  %543 = load i64, ptr %14, align 8, !tbaa !30
  %544 = load i64, ptr %8, align 8, !tbaa !30
  %545 = sub nsw i64 %543, %544
  %546 = getelementptr inbounds i8, ptr %542, i64 %545
  %547 = load i8, ptr %546, align 1, !tbaa !9, !range !31, !noundef !32
  %548 = trunc i8 %547 to i1
  br i1 %548, label %558, label %549

549:                                              ; preds = %538
  %550 = load ptr, ptr %5, align 8, !tbaa !5
  %551 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %550, i32 0, i32 25
  %552 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %551, i32 0, i32 4
  %553 = load ptr, ptr %552, align 8, !tbaa !29
  %554 = load i64, ptr %14, align 8, !tbaa !30
  %555 = load i64, ptr %8, align 8, !tbaa !30
  %556 = sub nsw i64 %554, %555
  %557 = getelementptr inbounds double, ptr %553, i64 %556
  store double 1.000000e+00, ptr %557, align 8, !tbaa !33
  br label %558

558:                                              ; preds = %549, %538, %534
  br label %559

559:                                              ; preds = %558, %514
  %560 = load ptr, ptr %5, align 8, !tbaa !5
  %561 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %560, i32 0, i32 7
  %562 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %561, i32 0, i32 4
  %563 = load ptr, ptr %562, align 8, !tbaa !29
  %564 = load i64, ptr %14, align 8, !tbaa !30
  %565 = getelementptr inbounds i8, ptr %563, i64 %564
  %566 = load i8, ptr %565, align 1, !tbaa !9, !range !31, !noundef !32
  %567 = trunc i8 %566 to i1
  br i1 %567, label %568, label %604

568:                                              ; preds = %559
  %569 = load i64, ptr %14, align 8, !tbaa !30
  %570 = load i64, ptr %8, align 8, !tbaa !30
  %571 = icmp slt i64 %569, %570
  br i1 %571, label %572, label %579

572:                                              ; preds = %568
  %573 = load ptr, ptr %5, align 8, !tbaa !5
  %574 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %573, i32 0, i32 24
  %575 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %574, i32 0, i32 4
  %576 = load ptr, ptr %575, align 8, !tbaa !29
  %577 = load i64, ptr %14, align 8, !tbaa !30
  %578 = getelementptr inbounds double, ptr %576, i64 %577
  store double 1.000000e+00, ptr %578, align 8, !tbaa !33
  br label %579

579:                                              ; preds = %572, %568
  %580 = load i64, ptr %14, align 8, !tbaa !30
  %581 = load i64, ptr %8, align 8, !tbaa !30
  %582 = icmp sge i64 %580, %581
  br i1 %582, label %583, label %603

583:                                              ; preds = %579
  %584 = load ptr, ptr %5, align 8, !tbaa !5
  %585 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %584, i32 0, i32 8
  %586 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %585, i32 0, i32 4
  %587 = load ptr, ptr %586, align 8, !tbaa !29
  %588 = load i64, ptr %14, align 8, !tbaa !30
  %589 = load i64, ptr %8, align 8, !tbaa !30
  %590 = sub nsw i64 %588, %589
  %591 = getelementptr inbounds i8, ptr %587, i64 %590
  %592 = load i8, ptr %591, align 1, !tbaa !9, !range !31, !noundef !32
  %593 = trunc i8 %592 to i1
  br i1 %593, label %603, label %594

594:                                              ; preds = %583
  %595 = load ptr, ptr %5, align 8, !tbaa !5
  %596 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %595, i32 0, i32 26
  %597 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %596, i32 0, i32 4
  %598 = load ptr, ptr %597, align 8, !tbaa !29
  %599 = load i64, ptr %14, align 8, !tbaa !30
  %600 = load i64, ptr %8, align 8, !tbaa !30
  %601 = sub nsw i64 %599, %600
  %602 = getelementptr inbounds double, ptr %598, i64 %601
  store double 1.000000e+00, ptr %602, align 8, !tbaa !33
  br label %603

603:                                              ; preds = %594, %583, %579
  br label %604

604:                                              ; preds = %603, %559
  br label %605

605:                                              ; preds = %604
  %606 = load i64, ptr %14, align 8, !tbaa !30
  %607 = add nsw i64 %606, 1
  store i64 %607, ptr %14, align 8, !tbaa !30
  br label %509, !llvm.loop !38

608:                                              ; preds = %509
  %609 = load i64, ptr %12, align 8, !tbaa !30
  %610 = load ptr, ptr %7, align 8, !tbaa !5
  %611 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %610)
  %612 = fneg double %611
  %613 = load ptr, ptr %5, align 8, !tbaa !5
  %614 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %613, i32 0, i32 27
  %615 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %609, double noundef %612, ptr noundef %614, ptr noundef %615)
  %616 = load i64, ptr %13, align 8, !tbaa !30
  %617 = load ptr, ptr %7, align 8, !tbaa !5
  %618 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %617)
  %619 = load ptr, ptr %5, align 8, !tbaa !5
  %620 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %619, i32 0, i32 28
  %621 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %616, double noundef %618, ptr noundef %620, ptr noundef %621)
  store i64 0, ptr %14, align 8, !tbaa !30
  br label %622

622:                                              ; preds = %674, %608
  %623 = load i64, ptr %14, align 8, !tbaa !30
  %624 = load i64, ptr %12, align 8, !tbaa !30
  %625 = sub nsw i64 %624, 1
  %626 = icmp sle i64 %623, %625
  br i1 %626, label %627, label %677

627:                                              ; preds = %622
  %628 = load ptr, ptr %5, align 8, !tbaa !5
  %629 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %628, i32 0, i32 6
  %630 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %629, i32 0, i32 4
  %631 = load ptr, ptr %630, align 8, !tbaa !29
  %632 = load i64, ptr %14, align 8, !tbaa !30
  %633 = getelementptr inbounds i8, ptr %631, i64 %632
  %634 = load i8, ptr %633, align 1, !tbaa !9, !range !31, !noundef !32
  %635 = trunc i8 %634 to i1
  br i1 %635, label %636, label %650

636:                                              ; preds = %627
  %637 = load ptr, ptr %5, align 8, !tbaa !5
  %638 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %637, i32 0, i32 4
  %639 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %638, i32 0, i32 4
  %640 = load ptr, ptr %639, align 8, !tbaa !29
  %641 = load i64, ptr %14, align 8, !tbaa !30
  %642 = getelementptr inbounds double, ptr %640, i64 %641
  %643 = load double, ptr %642, align 8, !tbaa !33
  %644 = load ptr, ptr %5, align 8, !tbaa !5
  %645 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %644, i32 0, i32 27
  %646 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %645, i32 0, i32 4
  %647 = load ptr, ptr %646, align 8, !tbaa !29
  %648 = load i64, ptr %14, align 8, !tbaa !30
  %649 = getelementptr inbounds double, ptr %647, i64 %648
  store double %643, ptr %649, align 8, !tbaa !33
  br label %650

650:                                              ; preds = %636, %627
  %651 = load ptr, ptr %5, align 8, !tbaa !5
  %652 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %651, i32 0, i32 7
  %653 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %652, i32 0, i32 4
  %654 = load ptr, ptr %653, align 8, !tbaa !29
  %655 = load i64, ptr %14, align 8, !tbaa !30
  %656 = getelementptr inbounds i8, ptr %654, i64 %655
  %657 = load i8, ptr %656, align 1, !tbaa !9, !range !31, !noundef !32
  %658 = trunc i8 %657 to i1
  br i1 %658, label %659, label %673

659:                                              ; preds = %650
  %660 = load ptr, ptr %5, align 8, !tbaa !5
  %661 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %660, i32 0, i32 5
  %662 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %661, i32 0, i32 4
  %663 = load ptr, ptr %662, align 8, !tbaa !29
  %664 = load i64, ptr %14, align 8, !tbaa !30
  %665 = getelementptr inbounds double, ptr %663, i64 %664
  %666 = load double, ptr %665, align 8, !tbaa !33
  %667 = load ptr, ptr %5, align 8, !tbaa !5
  %668 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %667, i32 0, i32 28
  %669 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %668, i32 0, i32 4
  %670 = load ptr, ptr %669, align 8, !tbaa !29
  %671 = load i64, ptr %14, align 8, !tbaa !30
  %672 = getelementptr inbounds double, ptr %670, i64 %671
  store double %666, ptr %672, align 8, !tbaa !33
  br label %673

673:                                              ; preds = %659, %650
  br label %674

674:                                              ; preds = %673
  %675 = load i64, ptr %14, align 8, !tbaa !30
  %676 = add nsw i64 %675, 1
  store i64 %676, ptr %14, align 8, !tbaa !30
  br label %622, !llvm.loop !40

677:                                              ; preds = %622
  %678 = load i64, ptr %12, align 8, !tbaa !30
  store i64 %678, ptr %14, align 8, !tbaa !30
  br label %679

679:                                              ; preds = %698, %677
  %680 = load i64, ptr %14, align 8, !tbaa !30
  %681 = load i64, ptr %13, align 8, !tbaa !30
  %682 = sub nsw i64 %681, 1
  %683 = icmp sle i64 %680, %682
  br i1 %683, label %684, label %701

684:                                              ; preds = %679
  %685 = load ptr, ptr %5, align 8, !tbaa !5
  %686 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %685, i32 0, i32 5
  %687 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %686, i32 0, i32 4
  %688 = load ptr, ptr %687, align 8, !tbaa !29
  %689 = load i64, ptr %14, align 8, !tbaa !30
  %690 = getelementptr inbounds double, ptr %688, i64 %689
  %691 = load double, ptr %690, align 8, !tbaa !33
  %692 = load ptr, ptr %5, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %692, i32 0, i32 28
  %694 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %693, i32 0, i32 4
  %695 = load ptr, ptr %694, align 8, !tbaa !29
  %696 = load i64, ptr %14, align 8, !tbaa !30
  %697 = getelementptr inbounds double, ptr %695, i64 %696
  store double %691, ptr %697, align 8, !tbaa !33
  br label %698

698:                                              ; preds = %684
  %699 = load i64, ptr %14, align 8, !tbaa !30
  %700 = add nsw i64 %699, 1
  store i64 %700, ptr %14, align 8, !tbaa !30
  br label %679, !llvm.loop !41

701:                                              ; preds = %679
  %702 = load ptr, ptr %5, align 8, !tbaa !5
  %703 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL34gipm_safeboundsfromfinitetightenedEPNS_9gipmstateEPNS_8ae_stateE(ptr noundef %702, ptr noundef %703)
  %704 = load ptr, ptr %7, align 8, !tbaa !5
  %705 = call noundef double @_ZN11alglib_impl19gipmgetinitprimdualEPNS_8ae_stateE(ptr noundef %704)
  store double %705, ptr %28, align 8, !tbaa !33
  %706 = load ptr, ptr %5, align 8, !tbaa !5
  %707 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %706, i32 0, i32 37
  %708 = load i64, ptr %8, align 8, !tbaa !30
  %709 = load i64, ptr %10, align 8, !tbaa !30
  %710 = load i64, ptr %11, align 8, !tbaa !30
  %711 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef %707, i64 noundef %708, i64 noundef %709, i64 noundef %710, ptr noundef %711)
  %712 = load ptr, ptr %5, align 8, !tbaa !5
  %713 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %712, i32 0, i32 53
  %714 = load i64, ptr %8, align 8, !tbaa !30
  %715 = load i64, ptr %10, align 8, !tbaa !30
  %716 = load i64, ptr %11, align 8, !tbaa !30
  %717 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef %713, i64 noundef %714, i64 noundef %715, i64 noundef %716, ptr noundef %717)
  %718 = load ptr, ptr %5, align 8, !tbaa !5
  %719 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %718, i32 0, i32 54
  %720 = load i64, ptr %8, align 8, !tbaa !30
  %721 = load i64, ptr %10, align 8, !tbaa !30
  %722 = load i64, ptr %11, align 8, !tbaa !30
  %723 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef %719, i64 noundef %720, i64 noundef %721, i64 noundef %722, ptr noundef %723)
  store i64 0, ptr %14, align 8, !tbaa !30
  br label %724

724:                                              ; preds = %782, %701
  %725 = load i64, ptr %14, align 8, !tbaa !30
  %726 = load i64, ptr %8, align 8, !tbaa !30
  %727 = sub nsw i64 %726, 1
  %728 = icmp sle i64 %725, %727
  br i1 %728, label %729, label %785

729:                                              ; preds = %724
  %730 = load ptr, ptr %5, align 8, !tbaa !5
  %731 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %730, i32 0, i32 6
  %732 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %731, i32 0, i32 4
  %733 = load ptr, ptr %732, align 8, !tbaa !29
  %734 = load i64, ptr %14, align 8, !tbaa !30
  %735 = getelementptr inbounds i8, ptr %733, i64 %734
  %736 = load i8, ptr %735, align 1, !tbaa !9, !range !31, !noundef !32
  %737 = trunc i8 %736 to i1
  br i1 %737, label %738, label %755

738:                                              ; preds = %729
  %739 = load ptr, ptr %5, align 8, !tbaa !5
  %740 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %739, i32 0, i32 3
  %741 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %740, i32 0, i32 4
  %742 = load ptr, ptr %741, align 8, !tbaa !29
  %743 = load i64, ptr %14, align 8, !tbaa !30
  %744 = getelementptr inbounds double, ptr %742, i64 %743
  %745 = load double, ptr %744, align 8, !tbaa !33
  %746 = load ptr, ptr %5, align 8, !tbaa !5
  %747 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %746, i32 0, i32 4
  %748 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %747, i32 0, i32 4
  %749 = load ptr, ptr %748, align 8, !tbaa !29
  %750 = load i64, ptr %14, align 8, !tbaa !30
  %751 = getelementptr inbounds double, ptr %749, i64 %750
  %752 = load double, ptr %751, align 8, !tbaa !33
  %753 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %745, double noundef %752)
  %754 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %753, ptr noundef @.str.710, ptr noundef %754)
  br label %755

755:                                              ; preds = %738, %729
  %756 = load ptr, ptr %5, align 8, !tbaa !5
  %757 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %756, i32 0, i32 7
  %758 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %757, i32 0, i32 4
  %759 = load ptr, ptr %758, align 8, !tbaa !29
  %760 = load i64, ptr %14, align 8, !tbaa !30
  %761 = getelementptr inbounds i8, ptr %759, i64 %760
  %762 = load i8, ptr %761, align 1, !tbaa !9, !range !31, !noundef !32
  %763 = trunc i8 %762 to i1
  br i1 %763, label %764, label %781

764:                                              ; preds = %755
  %765 = load ptr, ptr %5, align 8, !tbaa !5
  %766 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %765, i32 0, i32 3
  %767 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %766, i32 0, i32 4
  %768 = load ptr, ptr %767, align 8, !tbaa !29
  %769 = load i64, ptr %14, align 8, !tbaa !30
  %770 = getelementptr inbounds double, ptr %768, i64 %769
  %771 = load double, ptr %770, align 8, !tbaa !33
  %772 = load ptr, ptr %5, align 8, !tbaa !5
  %773 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %772, i32 0, i32 5
  %774 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %773, i32 0, i32 4
  %775 = load ptr, ptr %774, align 8, !tbaa !29
  %776 = load i64, ptr %14, align 8, !tbaa !30
  %777 = getelementptr inbounds double, ptr %775, i64 %776
  %778 = load double, ptr %777, align 8, !tbaa !33
  %779 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %771, double noundef %778)
  %780 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %779, ptr noundef @.str.710, ptr noundef %780)
  br label %781

781:                                              ; preds = %764, %755
  br label %782

782:                                              ; preds = %781
  %783 = load i64, ptr %14, align 8, !tbaa !30
  %784 = add nsw i64 %783, 1
  store i64 %784, ptr %14, align 8, !tbaa !30
  br label %724, !llvm.loop !42

785:                                              ; preds = %724
  %786 = load i64, ptr %8, align 8, !tbaa !30
  %787 = load ptr, ptr %5, align 8, !tbaa !5
  %788 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %787, i32 0, i32 3
  %789 = load ptr, ptr %5, align 8, !tbaa !5
  %790 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %789, i32 0, i32 37
  %791 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %790, i32 0, i32 4
  %792 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %786, ptr noundef %788, ptr noundef %791, ptr noundef %792)
  %793 = load i64, ptr %8, align 8, !tbaa !30
  %794 = load ptr, ptr %5, align 8, !tbaa !5
  %795 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %794, i32 0, i32 29
  %796 = load ptr, ptr %5, align 8, !tbaa !5
  %797 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %796, i32 0, i32 37
  %798 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %797, i32 0, i32 4
  %799 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergemaxvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %793, ptr noundef %795, ptr noundef %798, ptr noundef %799)
  %800 = load i64, ptr %8, align 8, !tbaa !30
  %801 = load ptr, ptr %5, align 8, !tbaa !5
  %802 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %801, i32 0, i32 30
  %803 = load ptr, ptr %5, align 8, !tbaa !5
  %804 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %803, i32 0, i32 37
  %805 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %804, i32 0, i32 4
  %806 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergeminvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %800, ptr noundef %802, ptr noundef %805, ptr noundef %806)
  %807 = load i64, ptr %11, align 8, !tbaa !30
  %808 = load double, ptr %28, align 8, !tbaa !33
  %809 = load ptr, ptr %5, align 8, !tbaa !5
  %810 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %809, i32 0, i32 37
  %811 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %810, i32 0, i32 10
  %812 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %807, double noundef %808, ptr noundef %811, ptr noundef %812)
  %813 = load ptr, ptr %5, align 8, !tbaa !5
  %814 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %813, i32 0, i32 12
  store i64 1, ptr %814, align 8, !tbaa !43
  %815 = load ptr, ptr %5, align 8, !tbaa !5
  %816 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %815, i32 0, i32 20
  store i8 1, ptr %816, align 8, !tbaa !44
  %817 = load i64, ptr %13, align 8, !tbaa !30
  %818 = load ptr, ptr %5, align 8, !tbaa !5
  %819 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %818, i32 0, i32 15
  %820 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %817, ptr noundef %819, ptr noundef %820)
  %821 = load i64, ptr %8, align 8, !tbaa !30
  %822 = load ptr, ptr %5, align 8, !tbaa !5
  %823 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %822, i32 0, i32 37
  %824 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %823, i32 0, i32 4
  %825 = load ptr, ptr %5, align 8, !tbaa !5
  %826 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %825, i32 0, i32 15
  %827 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %821, ptr noundef %824, i64 noundef 0, ptr noundef %826, i64 noundef 0, ptr noundef %827)
  %828 = load i64, ptr %10, align 8, !tbaa !30
  %829 = load ptr, ptr %5, align 8, !tbaa !5
  %830 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %829, i32 0, i32 37
  %831 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %830, i32 0, i32 7
  %832 = load ptr, ptr %5, align 8, !tbaa !5
  %833 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %832, i32 0, i32 15
  %834 = load i64, ptr %8, align 8, !tbaa !30
  %835 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %828, ptr noundef %831, i64 noundef 0, ptr noundef %833, i64 noundef %834, ptr noundef %835)
  %836 = load i64, ptr %11, align 8, !tbaa !30
  %837 = load ptr, ptr %5, align 8, !tbaa !5
  %838 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %837, i32 0, i32 37
  %839 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %838, i32 0, i32 10
  %840 = load ptr, ptr %5, align 8, !tbaa !5
  %841 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %840, i32 0, i32 15
  %842 = load i64, ptr %8, align 8, !tbaa !30
  %843 = load i64, ptr %10, align 8, !tbaa !30
  %844 = add nsw i64 %842, %843
  %845 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %836, ptr noundef %839, i64 noundef 0, ptr noundef %841, i64 noundef %844, ptr noundef %845)
  %846 = load i64, ptr %9, align 8, !tbaa !30
  %847 = add nsw i64 1, %846
  %848 = load ptr, ptr %5, align 8, !tbaa !5
  %849 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %848, i32 0, i32 16
  %850 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %847, ptr noundef %849, ptr noundef %850)
  %851 = load ptr, ptr %5, align 8, !tbaa !5
  %852 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %851, i32 0, i32 60
  %853 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %852, i32 0, i32 0
  store i32 0, ptr %853, align 8, !tbaa !11
  br label %3064

854:                                              ; preds = %398
  %855 = load ptr, ptr %5, align 8, !tbaa !5
  %856 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %855, i32 0, i32 37
  %857 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %856, i32 0, i32 4
  %858 = load i64, ptr %8, align 8, !tbaa !30
  %859 = load ptr, ptr %5, align 8, !tbaa !5
  %860 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %859, i32 0, i32 16
  %861 = load i64, ptr %9, align 8, !tbaa !30
  %862 = add nsw i64 1, %861
  %863 = load ptr, ptr %5, align 8, !tbaa !5
  %864 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %863, i32 0, i32 17
  %865 = load ptr, ptr %5, align 8, !tbaa !5
  %866 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %865, i32 0, i32 39
  %867 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl17vfjinitfromsparseEPKNS_9ae_vectorElS2_lPKNS_12sparsematrixEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %857, i64 noundef %858, ptr noundef %860, i64 noundef %862, ptr noundef %864, ptr noundef %866, ptr noundef %867)
  store i64 0, ptr %14, align 8, !tbaa !30
  br label %868

868:                                              ; preds = %956, %854
  %869 = load i64, ptr %14, align 8, !tbaa !30
  %870 = load i64, ptr %8, align 8, !tbaa !30
  %871 = sub nsw i64 %870, 1
  %872 = icmp sle i64 %869, %871
  br i1 %872, label %873, label %959

873:                                              ; preds = %868
  %874 = load ptr, ptr %5, align 8, !tbaa !5
  %875 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %874, i32 0, i32 6
  %876 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %875, i32 0, i32 4
  %877 = load ptr, ptr %876, align 8, !tbaa !29
  %878 = load i64, ptr %14, align 8, !tbaa !30
  %879 = getelementptr inbounds i8, ptr %877, i64 %878
  %880 = load i8, ptr %879, align 1, !tbaa !9, !range !31, !noundef !32
  %881 = trunc i8 %880 to i1
  br i1 %881, label %882, label %914

882:                                              ; preds = %873
  %883 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !33
  %884 = load ptr, ptr %5, align 8, !tbaa !5
  %885 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %884, i32 0, i32 37
  %886 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %885, i32 0, i32 4
  %887 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %886, i32 0, i32 4
  %888 = load ptr, ptr %887, align 8, !tbaa !29
  %889 = load i64, ptr %14, align 8, !tbaa !30
  %890 = getelementptr inbounds double, ptr %888, i64 %889
  %891 = load double, ptr %890, align 8, !tbaa !33
  %892 = load ptr, ptr %5, align 8, !tbaa !5
  %893 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %892, i32 0, i32 4
  %894 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %893, i32 0, i32 4
  %895 = load ptr, ptr %894, align 8, !tbaa !29
  %896 = load i64, ptr %14, align 8, !tbaa !30
  %897 = getelementptr inbounds double, ptr %895, i64 %896
  %898 = load double, ptr %897, align 8, !tbaa !33
  %899 = fsub double %891, %898
  %900 = fdiv double %883, %899
  %901 = load ptr, ptr %7, align 8, !tbaa !5
  %902 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %901)
  %903 = fmul double 1.000000e+02, %902
  %904 = load double, ptr %28, align 8, !tbaa !33
  %905 = load ptr, ptr %7, align 8, !tbaa !5
  %906 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %900, double noundef %903, double noundef %904, ptr noundef %905)
  %907 = load ptr, ptr %5, align 8, !tbaa !5
  %908 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %907, i32 0, i32 37
  %909 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %908, i32 0, i32 5
  %910 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %909, i32 0, i32 4
  %911 = load ptr, ptr %910, align 8, !tbaa !29
  %912 = load i64, ptr %14, align 8, !tbaa !30
  %913 = getelementptr inbounds double, ptr %911, i64 %912
  store double %906, ptr %913, align 8, !tbaa !33
  br label %914

914:                                              ; preds = %882, %873
  %915 = load ptr, ptr %5, align 8, !tbaa !5
  %916 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %915, i32 0, i32 7
  %917 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %916, i32 0, i32 4
  %918 = load ptr, ptr %917, align 8, !tbaa !29
  %919 = load i64, ptr %14, align 8, !tbaa !30
  %920 = getelementptr inbounds i8, ptr %918, i64 %919
  %921 = load i8, ptr %920, align 1, !tbaa !9, !range !31, !noundef !32
  %922 = trunc i8 %921 to i1
  br i1 %922, label %923, label %955

923:                                              ; preds = %914
  %924 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !33
  %925 = load ptr, ptr %5, align 8, !tbaa !5
  %926 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %925, i32 0, i32 5
  %927 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %926, i32 0, i32 4
  %928 = load ptr, ptr %927, align 8, !tbaa !29
  %929 = load i64, ptr %14, align 8, !tbaa !30
  %930 = getelementptr inbounds double, ptr %928, i64 %929
  %931 = load double, ptr %930, align 8, !tbaa !33
  %932 = load ptr, ptr %5, align 8, !tbaa !5
  %933 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %932, i32 0, i32 37
  %934 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %933, i32 0, i32 4
  %935 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %934, i32 0, i32 4
  %936 = load ptr, ptr %935, align 8, !tbaa !29
  %937 = load i64, ptr %14, align 8, !tbaa !30
  %938 = getelementptr inbounds double, ptr %936, i64 %937
  %939 = load double, ptr %938, align 8, !tbaa !33
  %940 = fsub double %931, %939
  %941 = fdiv double %924, %940
  %942 = load ptr, ptr %7, align 8, !tbaa !5
  %943 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %942)
  %944 = fmul double 1.000000e+02, %943
  %945 = load double, ptr %28, align 8, !tbaa !33
  %946 = load ptr, ptr %7, align 8, !tbaa !5
  %947 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %941, double noundef %944, double noundef %945, ptr noundef %946)
  %948 = load ptr, ptr %5, align 8, !tbaa !5
  %949 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %948, i32 0, i32 37
  %950 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %949, i32 0, i32 6
  %951 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %950, i32 0, i32 4
  %952 = load ptr, ptr %951, align 8, !tbaa !29
  %953 = load i64, ptr %14, align 8, !tbaa !30
  %954 = getelementptr inbounds double, ptr %952, i64 %953
  store double %947, ptr %954, align 8, !tbaa !33
  br label %955

955:                                              ; preds = %923, %914
  br label %956

956:                                              ; preds = %955
  %957 = load i64, ptr %14, align 8, !tbaa !30
  %958 = add nsw i64 %957, 1
  store i64 %958, ptr %14, align 8, !tbaa !30
  br label %868, !llvm.loop !45

959:                                              ; preds = %868
  store i64 0, ptr %14, align 8, !tbaa !30
  br label %960

960:                                              ; preds = %1117, %959
  %961 = load i64, ptr %14, align 8, !tbaa !30
  %962 = load i64, ptr %10, align 8, !tbaa !30
  %963 = sub nsw i64 %962, 1
  %964 = icmp sle i64 %961, %963
  br i1 %964, label %965, label %1120

965:                                              ; preds = %960
  %966 = load ptr, ptr %5, align 8, !tbaa !5
  %967 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %966, i32 0, i32 8
  %968 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %967, i32 0, i32 4
  %969 = load ptr, ptr %968, align 8, !tbaa !29
  %970 = load i64, ptr %14, align 8, !tbaa !30
  %971 = getelementptr inbounds i8, ptr %969, i64 %970
  %972 = load i8, ptr %971, align 1, !tbaa !9, !range !31, !noundef !32
  %973 = trunc i8 %972 to i1
  br i1 %973, label %1116, label %974

974:                                              ; preds = %965
  %975 = load ptr, ptr %5, align 8, !tbaa !5
  %976 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %975, i32 0, i32 16
  %977 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %976, i32 0, i32 4
  %978 = load ptr, ptr %977, align 8, !tbaa !29
  %979 = load i64, ptr %14, align 8, !tbaa !30
  %980 = add nsw i64 1, %979
  %981 = getelementptr inbounds double, ptr %978, i64 %980
  %982 = load double, ptr %981, align 8, !tbaa !33
  %983 = load ptr, ptr %5, align 8, !tbaa !5
  %984 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %983, i32 0, i32 37
  %985 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %984, i32 0, i32 11
  %986 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %985, i32 0, i32 4
  %987 = load ptr, ptr %986, align 8, !tbaa !29
  %988 = load i64, ptr %14, align 8, !tbaa !30
  %989 = getelementptr inbounds double, ptr %987, i64 %988
  store double %982, ptr %989, align 8, !tbaa !33
  %990 = load ptr, ptr %5, align 8, !tbaa !5
  %991 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %990, i32 0, i32 6
  %992 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %991, i32 0, i32 4
  %993 = load ptr, ptr %992, align 8, !tbaa !29
  %994 = load i64, ptr %8, align 8, !tbaa !30
  %995 = load i64, ptr %14, align 8, !tbaa !30
  %996 = add nsw i64 %994, %995
  %997 = getelementptr inbounds i8, ptr %993, i64 %996
  %998 = load i8, ptr %997, align 1, !tbaa !9, !range !31, !noundef !32
  %999 = trunc i8 %998 to i1
  br i1 %999, label %1000, label %1052

1000:                                             ; preds = %974
  %1001 = load double, ptr %28, align 8, !tbaa !33
  %1002 = load ptr, ptr %5, align 8, !tbaa !5
  %1003 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1002, i32 0, i32 37
  %1004 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1003, i32 0, i32 11
  %1005 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1004, i32 0, i32 4
  %1006 = load ptr, ptr %1005, align 8, !tbaa !29
  %1007 = load i64, ptr %14, align 8, !tbaa !30
  %1008 = getelementptr inbounds double, ptr %1006, i64 %1007
  %1009 = load double, ptr %1008, align 8, !tbaa !33
  %1010 = load ptr, ptr %5, align 8, !tbaa !5
  %1011 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1010, i32 0, i32 4
  %1012 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1011, i32 0, i32 4
  %1013 = load ptr, ptr %1012, align 8, !tbaa !29
  %1014 = load i64, ptr %8, align 8, !tbaa !30
  %1015 = load i64, ptr %14, align 8, !tbaa !30
  %1016 = add nsw i64 %1014, %1015
  %1017 = getelementptr inbounds double, ptr %1013, i64 %1016
  %1018 = load double, ptr %1017, align 8, !tbaa !33
  %1019 = fsub double %1009, %1018
  %1020 = load ptr, ptr %7, align 8, !tbaa !5
  %1021 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1001, double noundef %1019, ptr noundef %1020)
  %1022 = load ptr, ptr %5, align 8, !tbaa !5
  %1023 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1022, i32 0, i32 37
  %1024 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1023, i32 0, i32 12
  %1025 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1024, i32 0, i32 4
  %1026 = load ptr, ptr %1025, align 8, !tbaa !29
  %1027 = load i64, ptr %14, align 8, !tbaa !30
  %1028 = getelementptr inbounds double, ptr %1026, i64 %1027
  store double %1021, ptr %1028, align 8, !tbaa !33
  %1029 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !33
  %1030 = load ptr, ptr %5, align 8, !tbaa !5
  %1031 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1030, i32 0, i32 37
  %1032 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1031, i32 0, i32 12
  %1033 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1032, i32 0, i32 4
  %1034 = load ptr, ptr %1033, align 8, !tbaa !29
  %1035 = load i64, ptr %14, align 8, !tbaa !30
  %1036 = getelementptr inbounds double, ptr %1034, i64 %1035
  %1037 = load double, ptr %1036, align 8, !tbaa !33
  %1038 = fdiv double %1029, %1037
  %1039 = load ptr, ptr %7, align 8, !tbaa !5
  %1040 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1039)
  %1041 = fmul double 1.000000e+02, %1040
  %1042 = load double, ptr %28, align 8, !tbaa !33
  %1043 = load ptr, ptr %7, align 8, !tbaa !5
  %1044 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1038, double noundef %1041, double noundef %1042, ptr noundef %1043)
  %1045 = load ptr, ptr %5, align 8, !tbaa !5
  %1046 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1045, i32 0, i32 37
  %1047 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1046, i32 0, i32 14
  %1048 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1047, i32 0, i32 4
  %1049 = load ptr, ptr %1048, align 8, !tbaa !29
  %1050 = load i64, ptr %14, align 8, !tbaa !30
  %1051 = getelementptr inbounds double, ptr %1049, i64 %1050
  store double %1044, ptr %1051, align 8, !tbaa !33
  br label %1052

1052:                                             ; preds = %1000, %974
  %1053 = load ptr, ptr %5, align 8, !tbaa !5
  %1054 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1053, i32 0, i32 7
  %1055 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1054, i32 0, i32 4
  %1056 = load ptr, ptr %1055, align 8, !tbaa !29
  %1057 = load i64, ptr %8, align 8, !tbaa !30
  %1058 = load i64, ptr %14, align 8, !tbaa !30
  %1059 = add nsw i64 %1057, %1058
  %1060 = getelementptr inbounds i8, ptr %1056, i64 %1059
  %1061 = load i8, ptr %1060, align 1, !tbaa !9, !range !31, !noundef !32
  %1062 = trunc i8 %1061 to i1
  br i1 %1062, label %1063, label %1115

1063:                                             ; preds = %1052
  %1064 = load double, ptr %28, align 8, !tbaa !33
  %1065 = load ptr, ptr %5, align 8, !tbaa !5
  %1066 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1065, i32 0, i32 5
  %1067 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1066, i32 0, i32 4
  %1068 = load ptr, ptr %1067, align 8, !tbaa !29
  %1069 = load i64, ptr %8, align 8, !tbaa !30
  %1070 = load i64, ptr %14, align 8, !tbaa !30
  %1071 = add nsw i64 %1069, %1070
  %1072 = getelementptr inbounds double, ptr %1068, i64 %1071
  %1073 = load double, ptr %1072, align 8, !tbaa !33
  %1074 = load ptr, ptr %5, align 8, !tbaa !5
  %1075 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1074, i32 0, i32 37
  %1076 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1075, i32 0, i32 11
  %1077 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1076, i32 0, i32 4
  %1078 = load ptr, ptr %1077, align 8, !tbaa !29
  %1079 = load i64, ptr %14, align 8, !tbaa !30
  %1080 = getelementptr inbounds double, ptr %1078, i64 %1079
  %1081 = load double, ptr %1080, align 8, !tbaa !33
  %1082 = fsub double %1073, %1081
  %1083 = load ptr, ptr %7, align 8, !tbaa !5
  %1084 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1064, double noundef %1082, ptr noundef %1083)
  %1085 = load ptr, ptr %5, align 8, !tbaa !5
  %1086 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1085, i32 0, i32 37
  %1087 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1086, i32 0, i32 13
  %1088 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1087, i32 0, i32 4
  %1089 = load ptr, ptr %1088, align 8, !tbaa !29
  %1090 = load i64, ptr %14, align 8, !tbaa !30
  %1091 = getelementptr inbounds double, ptr %1089, i64 %1090
  store double %1084, ptr %1091, align 8, !tbaa !33
  %1092 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !33
  %1093 = load ptr, ptr %5, align 8, !tbaa !5
  %1094 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1093, i32 0, i32 37
  %1095 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1094, i32 0, i32 13
  %1096 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1095, i32 0, i32 4
  %1097 = load ptr, ptr %1096, align 8, !tbaa !29
  %1098 = load i64, ptr %14, align 8, !tbaa !30
  %1099 = getelementptr inbounds double, ptr %1097, i64 %1098
  %1100 = load double, ptr %1099, align 8, !tbaa !33
  %1101 = fdiv double %1092, %1100
  %1102 = load ptr, ptr %7, align 8, !tbaa !5
  %1103 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1102)
  %1104 = fmul double 1.000000e+02, %1103
  %1105 = load double, ptr %28, align 8, !tbaa !33
  %1106 = load ptr, ptr %7, align 8, !tbaa !5
  %1107 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1101, double noundef %1104, double noundef %1105, ptr noundef %1106)
  %1108 = load ptr, ptr %5, align 8, !tbaa !5
  %1109 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1108, i32 0, i32 37
  %1110 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1109, i32 0, i32 15
  %1111 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1110, i32 0, i32 4
  %1112 = load ptr, ptr %1111, align 8, !tbaa !29
  %1113 = load i64, ptr %14, align 8, !tbaa !30
  %1114 = getelementptr inbounds double, ptr %1112, i64 %1113
  store double %1107, ptr %1114, align 8, !tbaa !33
  br label %1115

1115:                                             ; preds = %1063, %1052
  br label %1116

1116:                                             ; preds = %1115, %965
  br label %1117

1117:                                             ; preds = %1116
  %1118 = load i64, ptr %14, align 8, !tbaa !30
  %1119 = add nsw i64 %1118, 1
  store i64 %1119, ptr %14, align 8, !tbaa !30
  br label %960, !llvm.loop !46

1120:                                             ; preds = %960
  store i64 0, ptr %14, align 8, !tbaa !30
  br label %1121

1121:                                             ; preds = %1183, %1120
  %1122 = load i64, ptr %14, align 8, !tbaa !30
  %1123 = load i64, ptr %11, align 8, !tbaa !30
  %1124 = sub nsw i64 %1123, 1
  %1125 = icmp sle i64 %1122, %1124
  br i1 %1125, label %1126, label %1186

1126:                                             ; preds = %1121
  %1127 = load ptr, ptr %5, align 8, !tbaa !5
  %1128 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1127, i32 0, i32 16
  %1129 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1128, i32 0, i32 4
  %1130 = load ptr, ptr %1129, align 8, !tbaa !29
  %1131 = load i64, ptr %10, align 8, !tbaa !30
  %1132 = add nsw i64 1, %1131
  %1133 = load i64, ptr %14, align 8, !tbaa !30
  %1134 = add nsw i64 %1132, %1133
  %1135 = getelementptr inbounds double, ptr %1130, i64 %1134
  %1136 = load double, ptr %1135, align 8, !tbaa !33
  %1137 = load ptr, ptr %5, align 8, !tbaa !5
  %1138 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1137, i32 0, i32 28
  %1139 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1138, i32 0, i32 4
  %1140 = load ptr, ptr %1139, align 8, !tbaa !29
  %1141 = load i64, ptr %12, align 8, !tbaa !30
  %1142 = load i64, ptr %14, align 8, !tbaa !30
  %1143 = add nsw i64 %1141, %1142
  %1144 = getelementptr inbounds double, ptr %1140, i64 %1143
  %1145 = load double, ptr %1144, align 8, !tbaa !33
  %1146 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1136, double noundef %1145)
  %1147 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1146, ptr noundef @.str.711, ptr noundef %1147)
  %1148 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !33
  %1149 = load ptr, ptr %5, align 8, !tbaa !5
  %1150 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1149, i32 0, i32 28
  %1151 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1150, i32 0, i32 4
  %1152 = load ptr, ptr %1151, align 8, !tbaa !29
  %1153 = load i64, ptr %12, align 8, !tbaa !30
  %1154 = load i64, ptr %14, align 8, !tbaa !30
  %1155 = add nsw i64 %1153, %1154
  %1156 = getelementptr inbounds double, ptr %1152, i64 %1155
  %1157 = load double, ptr %1156, align 8, !tbaa !33
  %1158 = load ptr, ptr %5, align 8, !tbaa !5
  %1159 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1158, i32 0, i32 16
  %1160 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1159, i32 0, i32 4
  %1161 = load ptr, ptr %1160, align 8, !tbaa !29
  %1162 = load i64, ptr %10, align 8, !tbaa !30
  %1163 = add nsw i64 1, %1162
  %1164 = load i64, ptr %14, align 8, !tbaa !30
  %1165 = add nsw i64 %1163, %1164
  %1166 = getelementptr inbounds double, ptr %1161, i64 %1165
  %1167 = load double, ptr %1166, align 8, !tbaa !33
  %1168 = fsub double %1157, %1167
  %1169 = fdiv double %1148, %1168
  %1170 = load ptr, ptr %7, align 8, !tbaa !5
  %1171 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1170)
  %1172 = fmul double 1.000000e+02, %1171
  %1173 = load double, ptr %28, align 8, !tbaa !33
  %1174 = load ptr, ptr %7, align 8, !tbaa !5
  %1175 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1169, double noundef %1172, double noundef %1173, ptr noundef %1174)
  %1176 = load ptr, ptr %5, align 8, !tbaa !5
  %1177 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1176, i32 0, i32 37
  %1178 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1177, i32 0, i32 10
  %1179 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1178, i32 0, i32 4
  %1180 = load ptr, ptr %1179, align 8, !tbaa !29
  %1181 = load i64, ptr %14, align 8, !tbaa !30
  %1182 = getelementptr inbounds double, ptr %1180, i64 %1181
  store double %1175, ptr %1182, align 8, !tbaa !33
  br label %1183

1183:                                             ; preds = %1126
  %1184 = load i64, ptr %14, align 8, !tbaa !30
  %1185 = add nsw i64 %1184, 1
  store i64 %1185, ptr %14, align 8, !tbaa !30
  br label %1121, !llvm.loop !47

1186:                                             ; preds = %1121
  %1187 = load i64, ptr %8, align 8, !tbaa !30
  %1188 = load ptr, ptr %5, align 8, !tbaa !5
  %1189 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1188, i32 0, i32 37
  %1190 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1189, i32 0, i32 4
  %1191 = load ptr, ptr %7, align 8, !tbaa !5
  %1192 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1187, ptr noundef %1190, ptr noundef %1191)
  %1193 = load ptr, ptr %5, align 8, !tbaa !5
  %1194 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1193, i32 0, i32 31
  store double %1192, ptr %1194, align 8, !tbaa !48
  %1195 = load ptr, ptr %5, align 8, !tbaa !5
  %1196 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1195, i32 0, i32 16
  %1197 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1196, i32 0, i32 4
  %1198 = load ptr, ptr %1197, align 8, !tbaa !29
  %1199 = getelementptr inbounds double, ptr %1198, i64 0
  %1200 = load double, ptr %1199, align 8, !tbaa !33
  %1201 = load ptr, ptr %7, align 8, !tbaa !5
  %1202 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1200, ptr noundef %1201)
  %1203 = load ptr, ptr %5, align 8, !tbaa !5
  %1204 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1203, i32 0, i32 32
  store double %1202, ptr %1204, align 8, !tbaa !49
  %1205 = load double, ptr @_ZN11alglib_implL15gipm_initbigvalE, align 8, !tbaa !33
  store double %1205, ptr %40, align 8, !tbaa !33
  %1206 = load double, ptr @_ZN11alglib_implL18gipm_initbiggrowthE, align 8, !tbaa !33
  store double %1206, ptr %41, align 8, !tbaa !33
  %1207 = load ptr, ptr %5, align 8, !tbaa !5
  %1208 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1207, i32 0, i32 10
  %1209 = load double, ptr %1208, align 8, !tbaa !50
  %1210 = fmul double 1.000000e-04, %1209
  %1211 = load double, ptr @_ZN11alglib_implL16gipm_relaxfactorE, align 8, !tbaa !33
  %1212 = fadd double 1.000000e+00, %1211
  %1213 = fdiv double %1210, %1212
  %1214 = load ptr, ptr %7, align 8, !tbaa !5
  %1215 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1213, double noundef 5.000000e-14, ptr noundef %1214)
  store double %1215, ptr %39, align 8, !tbaa !33
  %1216 = load ptr, ptr %5, align 8, !tbaa !5
  %1217 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1216, i32 0, i32 34
  store double 0.000000e+00, ptr %1217, align 8, !tbaa !51
  %1218 = load ptr, ptr %5, align 8, !tbaa !5
  %1219 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1218, i32 0, i32 35
  store double 0.000000e+00, ptr %1219, align 8, !tbaa !52
  %1220 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !33
  %1221 = load ptr, ptr %5, align 8, !tbaa !5
  %1222 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1221, i32 0, i32 33
  store double %1220, ptr %1222, align 8, !tbaa !53
  %1223 = load ptr, ptr %5, align 8, !tbaa !5
  %1224 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1223, i32 0, i32 41
  store double 1.000000e+300, ptr %1224, align 8, !tbaa !54
  %1225 = load ptr, ptr %5, align 8, !tbaa !5
  %1226 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1225, i32 0, i32 37
  %1227 = load ptr, ptr %5, align 8, !tbaa !5
  %1228 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1227, i32 0, i32 38
  %1229 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef %1226, ptr noundef %1228, ptr noundef %1229)
  store i8 0, ptr %33, align 1, !tbaa !9
  store i8 0, ptr %34, align 1, !tbaa !9
  store i8 0, ptr %36, align 1, !tbaa !9
  %1230 = load ptr, ptr %5, align 8, !tbaa !5
  %1231 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1230, i32 0, i32 36
  store i64 0, ptr %1231, align 8, !tbaa !55
  store i8 1, ptr %32, align 1, !tbaa !9
  %1232 = load ptr, ptr %5, align 8, !tbaa !5
  %1233 = load ptr, ptr %5, align 8, !tbaa !5
  %1234 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1233, i32 0, i32 37
  %1235 = load ptr, ptr %5, align 8, !tbaa !5
  %1236 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1235, i32 0, i32 39
  %1237 = load ptr, ptr %5, align 8, !tbaa !5
  %1238 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1237, i32 0, i32 33
  %1239 = load double, ptr %1238, align 8, !tbaa !53
  %1240 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef %1232, ptr noundef %1234, ptr noundef %1236, double noundef %1239, ptr noundef %21, ptr noundef %23, ptr noundef %25, ptr noundef %1240)
  %1241 = load double, ptr %23, align 8, !tbaa !33
  %1242 = load double, ptr %25, align 8, !tbaa !33
  %1243 = fadd double %1241, %1242
  %1244 = fadd double %1243, 1.000000e+01
  %1245 = fmul double 1.000000e+01, %1244
  %1246 = load ptr, ptr %5, align 8, !tbaa !5
  %1247 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1246, i32 0, i32 43
  %1248 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl8nlpfinitEdPNS_9nlpfilterEPNS_8ae_stateE(double noundef %1245, ptr noundef %1247, ptr noundef %1248)
  %1249 = load ptr, ptr %7, align 8, !tbaa !5
  %1250 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %1249)
  store double %1250, ptr %50, align 8, !tbaa !33
  %1251 = load double, ptr %50, align 8, !tbaa !33
  store double %1251, ptr %51, align 8, !tbaa !33
  %1252 = load double, ptr %50, align 8, !tbaa !33
  store double %1252, ptr %52, align 8, !tbaa !33
  store double 1.000000e+00, ptr %27, align 8, !tbaa !33
  br label %1253

1253:                                             ; preds = %2943, %2819, %1186
  store i8 0, ptr %35, align 1, !tbaa !9
  store double 1.000000e+300, ptr %45, align 8, !tbaa !33
  store double 1.000000e+300, ptr %46, align 8, !tbaa !33
  store double 1.000000e+300, ptr %47, align 8, !tbaa !33
  %1254 = load ptr, ptr %5, align 8, !tbaa !5
  %1255 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1254, i32 0, i32 47
  %1256 = load i64, ptr %1255, align 8, !tbaa !56
  store i64 %1256, ptr %48, align 8, !tbaa !30
  %1257 = load ptr, ptr %5, align 8, !tbaa !5
  %1258 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1257, i32 0, i32 42
  store i64 0, ptr %1258, align 8, !tbaa !57
  br label %1259

1259:                                             ; preds = %2753, %2142, %1882, %1253
  %1260 = load i8, ptr %6, align 1, !tbaa !9, !range !31, !noundef !32
  %1261 = trunc i8 %1260 to i1
  br i1 %1261, label %1262, label %1263

1262:                                             ; preds = %1259
  br label %2760

1263:                                             ; preds = %1259
  %1264 = load ptr, ptr %5, align 8, !tbaa !5
  %1265 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1264, i32 0, i32 11
  %1266 = load i64, ptr %1265, align 8, !tbaa !58
  %1267 = icmp sgt i64 %1266, 0
  br i1 %1267, label %1268, label %1285

1268:                                             ; preds = %1263
  %1269 = load ptr, ptr %5, align 8, !tbaa !5
  %1270 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1269, i32 0, i32 47
  %1271 = load i64, ptr %1270, align 8, !tbaa !56
  %1272 = load ptr, ptr %5, align 8, !tbaa !5
  %1273 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1272, i32 0, i32 11
  %1274 = load i64, ptr %1273, align 8, !tbaa !58
  %1275 = icmp sge i64 %1271, %1274
  br i1 %1275, label %1276, label %1285

1276:                                             ; preds = %1268
  %1277 = load ptr, ptr %5, align 8, !tbaa !5
  %1278 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1277, i32 0, i32 44
  %1279 = load i8, ptr %1278, align 8, !tbaa !37, !range !31, !noundef !32
  %1280 = trunc i8 %1279 to i1
  br i1 %1280, label %1281, label %1282

1281:                                             ; preds = %1276
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.712)
  br label %1282

1282:                                             ; preds = %1281, %1276
  %1283 = load ptr, ptr %5, align 8, !tbaa !5
  %1284 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1283, i32 0, i32 48
  store i64 5, ptr %1284, align 8, !tbaa !59
  br label %2760

1285:                                             ; preds = %1268, %1263
  %1286 = load ptr, ptr %5, align 8, !tbaa !5
  %1287 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1286, i32 0, i32 44
  %1288 = load i8, ptr %1287, align 8, !tbaa !37, !range !31, !noundef !32
  %1289 = trunc i8 %1288 to i1
  br i1 %1289, label %1290, label %1324

1290:                                             ; preds = %1285
  %1291 = load ptr, ptr %5, align 8, !tbaa !5
  %1292 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1291, i32 0, i32 47
  %1293 = load i64, ptr %1292, align 8, !tbaa !56
  %1294 = trunc i64 %1293 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.713, i32 noundef %1294)
  %1295 = load ptr, ptr %5, align 8, !tbaa !5
  %1296 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1295, i32 0, i32 33
  %1297 = load double, ptr %1296, align 8, !tbaa !53
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.714, double noundef %1297)
  %1298 = load ptr, ptr %5, align 8, !tbaa !5
  %1299 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1298, i32 0, i32 34
  %1300 = load double, ptr %1299, align 8, !tbaa !51
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.715, double noundef %1300)
  %1301 = load ptr, ptr %5, align 8, !tbaa !5
  %1302 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1301, i32 0, i32 35
  %1303 = load double, ptr %1302, align 8, !tbaa !52
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.716, double noundef %1303)
  %1304 = load i64, ptr %8, align 8, !tbaa !30
  %1305 = load ptr, ptr %5, align 8, !tbaa !5
  %1306 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1305, i32 0, i32 37
  %1307 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1306, i32 0, i32 4
  %1308 = load ptr, ptr %7, align 8, !tbaa !5
  %1309 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1304, ptr noundef %1307, ptr noundef %1308)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.717, double noundef %1309)
  %1310 = load i64, ptr %10, align 8, !tbaa !30
  %1311 = load ptr, ptr %5, align 8, !tbaa !5
  %1312 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1311, i32 0, i32 37
  %1313 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1312, i32 0, i32 7
  %1314 = load ptr, ptr %7, align 8, !tbaa !5
  %1315 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1310, ptr noundef %1313, ptr noundef %1314)
  %1316 = load i64, ptr %11, align 8, !tbaa !30
  %1317 = load ptr, ptr %5, align 8, !tbaa !5
  %1318 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1317, i32 0, i32 37
  %1319 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1318, i32 0, i32 10
  %1320 = load ptr, ptr %7, align 8, !tbaa !5
  %1321 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1316, ptr noundef %1319, ptr noundef %1320)
  %1322 = load ptr, ptr %7, align 8, !tbaa !5
  %1323 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1315, double noundef %1321, ptr noundef %1322)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.718, double noundef %1323)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1324

1324:                                             ; preds = %1290, %1285
  %1325 = load ptr, ptr %5, align 8, !tbaa !5
  %1326 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1325, i32 0, i32 44
  %1327 = load i8, ptr %1326, align 8, !tbaa !37, !range !31, !noundef !32
  %1328 = trunc i8 %1327 to i1
  br i1 %1328, label %1329, label %1490

1329:                                             ; preds = %1324
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.719)
  %1330 = load ptr, ptr %5, align 8, !tbaa !5
  %1331 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1330, i32 0, i32 37
  %1332 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1331, i32 0, i32 4
  %1333 = load i64, ptr %8, align 8, !tbaa !30
  %1334 = load ptr, ptr %7, align 8, !tbaa !5
  %1335 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1332, i64 noundef %1333, ptr noundef %1334)
  %1336 = load i64, ptr %8, align 8, !tbaa !30
  %1337 = load ptr, ptr %5, align 8, !tbaa !5
  %1338 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1337, i32 0, i32 37
  %1339 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1338, i32 0, i32 4
  %1340 = load ptr, ptr %7, align 8, !tbaa !5
  %1341 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1336, ptr noundef %1339, ptr noundef %1340)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.720, double noundef %1335, double noundef %1341)
  %1342 = load ptr, ptr %5, align 8, !tbaa !5
  %1343 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1342, i32 0, i32 37
  %1344 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1343, i32 0, i32 11
  %1345 = load i64, ptr %10, align 8, !tbaa !30
  %1346 = load ptr, ptr %7, align 8, !tbaa !5
  %1347 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1344, i64 noundef %1345, ptr noundef %1346)
  %1348 = load i64, ptr %10, align 8, !tbaa !30
  %1349 = load ptr, ptr %5, align 8, !tbaa !5
  %1350 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1349, i32 0, i32 37
  %1351 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1350, i32 0, i32 11
  %1352 = load ptr, ptr %7, align 8, !tbaa !5
  %1353 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1348, ptr noundef %1351, ptr noundef %1352)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.721, double noundef %1347, double noundef %1353)
  %1354 = load ptr, ptr %5, align 8, !tbaa !5
  %1355 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1354, i32 0, i32 37
  %1356 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1355, i32 0, i32 12
  %1357 = load i64, ptr %10, align 8, !tbaa !30
  %1358 = load ptr, ptr %7, align 8, !tbaa !5
  %1359 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1356, i64 noundef %1357, ptr noundef %1358)
  %1360 = load i64, ptr %10, align 8, !tbaa !30
  %1361 = load ptr, ptr %5, align 8, !tbaa !5
  %1362 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1361, i32 0, i32 37
  %1363 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1362, i32 0, i32 12
  %1364 = load ptr, ptr %7, align 8, !tbaa !5
  %1365 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1360, ptr noundef %1363, ptr noundef %1364)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.722, double noundef %1359, double noundef %1365)
  %1366 = load ptr, ptr %5, align 8, !tbaa !5
  %1367 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1366, i32 0, i32 37
  %1368 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1367, i32 0, i32 13
  %1369 = load i64, ptr %10, align 8, !tbaa !30
  %1370 = load ptr, ptr %7, align 8, !tbaa !5
  %1371 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1368, i64 noundef %1369, ptr noundef %1370)
  %1372 = load i64, ptr %10, align 8, !tbaa !30
  %1373 = load ptr, ptr %5, align 8, !tbaa !5
  %1374 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1373, i32 0, i32 37
  %1375 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1374, i32 0, i32 13
  %1376 = load ptr, ptr %7, align 8, !tbaa !5
  %1377 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1372, ptr noundef %1375, ptr noundef %1376)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.723, double noundef %1371, double noundef %1377)
  %1378 = load ptr, ptr %5, align 8, !tbaa !5
  %1379 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1378, i32 0, i32 37
  %1380 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1379, i32 0, i32 5
  %1381 = load i64, ptr %8, align 8, !tbaa !30
  %1382 = load ptr, ptr %7, align 8, !tbaa !5
  %1383 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1380, i64 noundef %1381, ptr noundef %1382)
  %1384 = load i64, ptr %8, align 8, !tbaa !30
  %1385 = load ptr, ptr %5, align 8, !tbaa !5
  %1386 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1385, i32 0, i32 37
  %1387 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1386, i32 0, i32 5
  %1388 = load ptr, ptr %7, align 8, !tbaa !5
  %1389 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1384, ptr noundef %1387, ptr noundef %1388)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.724, double noundef %1383, double noundef %1389)
  %1390 = load ptr, ptr %5, align 8, !tbaa !5
  %1391 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1390, i32 0, i32 37
  %1392 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1391, i32 0, i32 6
  %1393 = load i64, ptr %8, align 8, !tbaa !30
  %1394 = load ptr, ptr %7, align 8, !tbaa !5
  %1395 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1392, i64 noundef %1393, ptr noundef %1394)
  %1396 = load i64, ptr %8, align 8, !tbaa !30
  %1397 = load ptr, ptr %5, align 8, !tbaa !5
  %1398 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1397, i32 0, i32 37
  %1399 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1398, i32 0, i32 6
  %1400 = load ptr, ptr %7, align 8, !tbaa !5
  %1401 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1396, ptr noundef %1399, ptr noundef %1400)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.725, double noundef %1395, double noundef %1401)
  %1402 = load ptr, ptr %5, align 8, !tbaa !5
  %1403 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1402, i32 0, i32 37
  %1404 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1403, i32 0, i32 7
  %1405 = load i64, ptr %10, align 8, !tbaa !30
  %1406 = load ptr, ptr %7, align 8, !tbaa !5
  %1407 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1404, i64 noundef %1405, ptr noundef %1406)
  %1408 = load i64, ptr %10, align 8, !tbaa !30
  %1409 = load ptr, ptr %5, align 8, !tbaa !5
  %1410 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1409, i32 0, i32 37
  %1411 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1410, i32 0, i32 7
  %1412 = load ptr, ptr %7, align 8, !tbaa !5
  %1413 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1408, ptr noundef %1411, ptr noundef %1412)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.726, double noundef %1407, double noundef %1413)
  %1414 = load ptr, ptr %5, align 8, !tbaa !5
  %1415 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1414, i32 0, i32 37
  %1416 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1415, i32 0, i32 8
  %1417 = load i64, ptr %10, align 8, !tbaa !30
  %1418 = load ptr, ptr %7, align 8, !tbaa !5
  %1419 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1416, i64 noundef %1417, ptr noundef %1418)
  %1420 = load i64, ptr %10, align 8, !tbaa !30
  %1421 = load ptr, ptr %5, align 8, !tbaa !5
  %1422 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1421, i32 0, i32 37
  %1423 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1422, i32 0, i32 8
  %1424 = load ptr, ptr %7, align 8, !tbaa !5
  %1425 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1420, ptr noundef %1423, ptr noundef %1424)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.727, double noundef %1419, double noundef %1425)
  %1426 = load ptr, ptr %5, align 8, !tbaa !5
  %1427 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1426, i32 0, i32 37
  %1428 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1427, i32 0, i32 9
  %1429 = load i64, ptr %10, align 8, !tbaa !30
  %1430 = load ptr, ptr %7, align 8, !tbaa !5
  %1431 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1428, i64 noundef %1429, ptr noundef %1430)
  %1432 = load i64, ptr %10, align 8, !tbaa !30
  %1433 = load ptr, ptr %5, align 8, !tbaa !5
  %1434 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1433, i32 0, i32 37
  %1435 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1434, i32 0, i32 9
  %1436 = load ptr, ptr %7, align 8, !tbaa !5
  %1437 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1432, ptr noundef %1435, ptr noundef %1436)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.728, double noundef %1431, double noundef %1437)
  %1438 = load ptr, ptr %5, align 8, !tbaa !5
  %1439 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1438, i32 0, i32 37
  %1440 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1439, i32 0, i32 10
  %1441 = load i64, ptr %11, align 8, !tbaa !30
  %1442 = load ptr, ptr %7, align 8, !tbaa !5
  %1443 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1440, i64 noundef %1441, ptr noundef %1442)
  %1444 = load i64, ptr %11, align 8, !tbaa !30
  %1445 = load ptr, ptr %5, align 8, !tbaa !5
  %1446 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1445, i32 0, i32 37
  %1447 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1446, i32 0, i32 10
  %1448 = load ptr, ptr %7, align 8, !tbaa !5
  %1449 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1444, ptr noundef %1447, ptr noundef %1448)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.729, double noundef %1443, double noundef %1449)
  %1450 = load ptr, ptr %5, align 8, !tbaa !5
  %1451 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1450, i32 0, i32 37
  %1452 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1451, i32 0, i32 14
  %1453 = load i64, ptr %10, align 8, !tbaa !30
  %1454 = load ptr, ptr %7, align 8, !tbaa !5
  %1455 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1452, i64 noundef %1453, ptr noundef %1454)
  %1456 = load i64, ptr %10, align 8, !tbaa !30
  %1457 = load ptr, ptr %5, align 8, !tbaa !5
  %1458 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1457, i32 0, i32 37
  %1459 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1458, i32 0, i32 14
  %1460 = load ptr, ptr %7, align 8, !tbaa !5
  %1461 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1456, ptr noundef %1459, ptr noundef %1460)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.730, double noundef %1455, double noundef %1461)
  %1462 = load ptr, ptr %5, align 8, !tbaa !5
  %1463 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1462, i32 0, i32 37
  %1464 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1463, i32 0, i32 15
  %1465 = load i64, ptr %10, align 8, !tbaa !30
  %1466 = load ptr, ptr %7, align 8, !tbaa !5
  %1467 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1464, i64 noundef %1465, ptr noundef %1466)
  %1468 = load i64, ptr %10, align 8, !tbaa !30
  %1469 = load ptr, ptr %5, align 8, !tbaa !5
  %1470 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1469, i32 0, i32 37
  %1471 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1470, i32 0, i32 15
  %1472 = load ptr, ptr %7, align 8, !tbaa !5
  %1473 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1468, ptr noundef %1471, ptr noundef %1472)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.731, double noundef %1467, double noundef %1473)
  %1474 = load ptr, ptr %5, align 8, !tbaa !5
  %1475 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1474, i32 0, i32 45
  %1476 = load i8, ptr %1475, align 1, !tbaa !60, !range !31, !noundef !32
  %1477 = trunc i8 %1476 to i1
  br i1 %1477, label %1478, label %1489

1478:                                             ; preds = %1329
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.732)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.733)
  %1479 = load ptr, ptr %5, align 8, !tbaa !5
  %1480 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1479, i32 0, i32 37
  %1481 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1480, i32 0, i32 4
  %1482 = load i64, ptr %8, align 8, !tbaa !30
  %1483 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1481, i64 noundef 0, i64 noundef %1482, ptr noundef %1483)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.734)
  %1484 = load ptr, ptr %5, align 8, !tbaa !5
  %1485 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1484, i32 0, i32 37
  %1486 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %1485, i32 0, i32 11
  %1487 = load i64, ptr %10, align 8, !tbaa !30
  %1488 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1486, i64 noundef 0, i64 noundef %1487, ptr noundef %1488)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1489

1489:                                             ; preds = %1478, %1329
  br label %1490

1490:                                             ; preds = %1489, %1324
  %1491 = load ptr, ptr %5, align 8, !tbaa !5
  %1492 = load ptr, ptr %5, align 8, !tbaa !5
  %1493 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1492, i32 0, i32 37
  %1494 = load ptr, ptr %5, align 8, !tbaa !5
  %1495 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1494, i32 0, i32 39
  %1496 = load ptr, ptr %5, align 8, !tbaa !5
  %1497 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1496, i32 0, i32 33
  %1498 = load double, ptr %1497, align 8, !tbaa !53
  %1499 = load ptr, ptr %5, align 8, !tbaa !5
  %1500 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1499, i32 0, i32 51
  %1501 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, double noundef %1498, ptr noundef %1500, ptr noundef %29, ptr noundef %30, ptr noundef %31, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %1501)
  %1502 = load i64, ptr %8, align 8, !tbaa !30
  %1503 = load ptr, ptr %5, align 8, !tbaa !5
  %1504 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1503, i32 0, i32 51
  %1505 = getelementptr inbounds %"struct.alglib_impl::gipmrhs", ptr %1504, i32 0, i32 0
  %1506 = load ptr, ptr %7, align 8, !tbaa !5
  %1507 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1502, ptr noundef %1505, ptr noundef %1506)
  %1508 = load ptr, ptr %7, align 8, !tbaa !5
  %1509 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1507, ptr noundef %1508)
  store double %1509, ptr %27, align 8, !tbaa !33
  %1510 = load double, ptr %29, align 8, !tbaa !33
  %1511 = load double, ptr %30, align 8, !tbaa !33
  %1512 = load double, ptr %31, align 8, !tbaa !33
  %1513 = load ptr, ptr %7, align 8, !tbaa !5
  %1514 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1510, double noundef %1511, double noundef %1512, ptr noundef %1513)
  store double %1514, ptr %43, align 8, !tbaa !33
  %1515 = load ptr, ptr %5, align 8, !tbaa !5
  %1516 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1515, i32 0, i32 44
  %1517 = load i8, ptr %1516, align 8, !tbaa !37, !range !31, !noundef !32
  %1518 = trunc i8 %1517 to i1
  br i1 %1518, label %1519, label %1524

1519:                                             ; preds = %1490
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.735)
  %1520 = load double, ptr %29, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.736, double noundef %1520)
  %1521 = load double, ptr %30, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.737, double noundef %1521)
  %1522 = load double, ptr %31, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.738, double noundef %1522)
  %1523 = load double, ptr %43, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.739, double noundef %1523)
  br label %1524

1524:                                             ; preds = %1519, %1490
  %1525 = load double, ptr %29, align 8, !tbaa !33
  %1526 = load double, ptr @_ZN11alglib_implL25gipm_checkpointacceptanceE, align 8, !tbaa !33
  %1527 = load double, ptr %45, align 8, !tbaa !33
  %1528 = fmul double %1526, %1527
  %1529 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1525, double noundef %1528)
  br i1 %1529, label %1542, label %1530

1530:                                             ; preds = %1524
  %1531 = load double, ptr %30, align 8, !tbaa !33
  %1532 = load double, ptr @_ZN11alglib_implL25gipm_checkpointacceptanceE, align 8, !tbaa !33
  %1533 = load double, ptr %46, align 8, !tbaa !33
  %1534 = fmul double %1532, %1533
  %1535 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1531, double noundef %1534)
  br i1 %1535, label %1542, label %1536

1536:                                             ; preds = %1530
  %1537 = load double, ptr %31, align 8, !tbaa !33
  %1538 = load double, ptr @_ZN11alglib_implL25gipm_checkpointacceptanceE, align 8, !tbaa !33
  %1539 = load double, ptr %47, align 8, !tbaa !33
  %1540 = fmul double %1538, %1539
  %1541 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1537, double noundef %1540)
  br i1 %1541, label %1542, label %1572

1542:                                             ; preds = %1536, %1530, %1524
  %1543 = load double, ptr %29, align 8, !tbaa !33
  %1544 = load double, ptr %45, align 8, !tbaa !33
  %1545 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1543, double noundef %1544)
  br i1 %1545, label %1554, label %1546

1546:                                             ; preds = %1542
  %1547 = load double, ptr %30, align 8, !tbaa !33
  %1548 = load double, ptr %46, align 8, !tbaa !33
  %1549 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1547, double noundef %1548)
  br i1 %1549, label %1554, label %1550

1550:                                             ; preds = %1546
  %1551 = load double, ptr %31, align 8, !tbaa !33
  %1552 = load double, ptr %47, align 8, !tbaa !33
  %1553 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1551, double noundef %1552)
  br label %1554

1554:                                             ; preds = %1550, %1546, %1542
  %1555 = phi i1 [ true, %1546 ], [ true, %1542 ], [ %1553, %1550 ]
  %1556 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1555, ptr noundef @.str.740, ptr noundef %1556)
  %1557 = load double, ptr %45, align 8, !tbaa !33
  %1558 = load double, ptr %29, align 8, !tbaa !33
  %1559 = load ptr, ptr %7, align 8, !tbaa !5
  %1560 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1557, double noundef %1558, ptr noundef %1559)
  store double %1560, ptr %45, align 8, !tbaa !33
  %1561 = load double, ptr %46, align 8, !tbaa !33
  %1562 = load double, ptr %30, align 8, !tbaa !33
  %1563 = load ptr, ptr %7, align 8, !tbaa !5
  %1564 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1561, double noundef %1562, ptr noundef %1563)
  store double %1564, ptr %46, align 8, !tbaa !33
  %1565 = load double, ptr %47, align 8, !tbaa !33
  %1566 = load double, ptr %31, align 8, !tbaa !33
  %1567 = load ptr, ptr %7, align 8, !tbaa !5
  %1568 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1565, double noundef %1566, ptr noundef %1567)
  store double %1568, ptr %47, align 8, !tbaa !33
  %1569 = load ptr, ptr %5, align 8, !tbaa !5
  %1570 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1569, i32 0, i32 47
  %1571 = load i64, ptr %1570, align 8, !tbaa !56
  store i64 %1571, ptr %48, align 8, !tbaa !30
  br label %1572

1572:                                             ; preds = %1554, %1536
  %1573 = load double, ptr %29, align 8, !tbaa !33
  %1574 = load double, ptr %17, align 8, !tbaa !33
  %1575 = fdiv double %1573, %1574
  %1576 = load double, ptr %30, align 8, !tbaa !33
  %1577 = load double, ptr %18, align 8, !tbaa !33
  %1578 = fdiv double %1576, %1577
  %1579 = load double, ptr %31, align 8, !tbaa !33
  %1580 = load double, ptr %19, align 8, !tbaa !33
  %1581 = fdiv double %1579, %1580
  %1582 = load ptr, ptr %7, align 8, !tbaa !5
  %1583 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1575, double noundef %1578, double noundef %1581, ptr noundef %1582)
  %1584 = load ptr, ptr %5, align 8, !tbaa !5
  %1585 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1584, i32 0, i32 10
  %1586 = load double, ptr %1585, align 8, !tbaa !50
  %1587 = fmul double 9.000000e-01, %1586
  %1588 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1583, double noundef %1587)
  br i1 %1588, label %1589, label %1605

1589:                                             ; preds = %1572
  %1590 = load ptr, ptr %5, align 8, !tbaa !5
  %1591 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1590, i32 0, i32 44
  %1592 = load i8, ptr %1591, align 8, !tbaa !37, !range !31, !noundef !32
  %1593 = trunc i8 %1592 to i1
  br i1 %1593, label %1594, label %1598

1594:                                             ; preds = %1589
  %1595 = load ptr, ptr %5, align 8, !tbaa !5
  %1596 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1595, i32 0, i32 10
  %1597 = load double, ptr %1596, align 8, !tbaa !50
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.741, double noundef %1597)
  br label %1598

1598:                                             ; preds = %1594, %1589
  %1599 = load ptr, ptr %5, align 8, !tbaa !5
  %1600 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1599, i32 0, i32 47
  %1601 = load i64, ptr %1600, align 8, !tbaa !56
  %1602 = add nsw i64 %1601, 1
  %1603 = load ptr, ptr %5, align 8, !tbaa !5
  %1604 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1603, i32 0, i32 47
  store i64 %1602, ptr %1604, align 8, !tbaa !56
  br label %2760

1605:                                             ; preds = %1572
  %1606 = load ptr, ptr %5, align 8, !tbaa !5
  %1607 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1606, i32 0, i32 34
  %1608 = load double, ptr %1607, align 8, !tbaa !51
  %1609 = load double, ptr @_ZN11alglib_implL14gipm_lambdamaxE, align 8, !tbaa !33
  %1610 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1608, double noundef %1609)
  br i1 %1610, label %1611, label %1628

1611:                                             ; preds = %1605
  %1612 = load ptr, ptr %5, align 8, !tbaa !5
  %1613 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1612, i32 0, i32 44
  %1614 = load i8, ptr %1613, align 8, !tbaa !37, !range !31, !noundef !32
  %1615 = trunc i8 %1614 to i1
  br i1 %1615, label %1616, label %1617

1616:                                             ; preds = %1611
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.742)
  br label %1617

1617:                                             ; preds = %1616, %1611
  %1618 = load ptr, ptr %5, align 8, !tbaa !5
  %1619 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1618, i32 0, i32 34
  store double 1.000000e+00, ptr %1619, align 8, !tbaa !51
  %1620 = load ptr, ptr %5, align 8, !tbaa !5
  %1621 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1620, i32 0, i32 35
  store double 1.000000e+00, ptr %1621, align 8, !tbaa !52
  %1622 = load ptr, ptr %5, align 8, !tbaa !5
  %1623 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1622, i32 0, i32 47
  %1624 = load i64, ptr %1623, align 8, !tbaa !56
  %1625 = add nsw i64 %1624, 1
  %1626 = load ptr, ptr %5, align 8, !tbaa !5
  %1627 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1626, i32 0, i32 47
  store i64 %1625, ptr %1627, align 8, !tbaa !56
  br label %2760

1628:                                             ; preds = %1605
  %1629 = load i8, ptr %32, align 1, !tbaa !9, !range !31, !noundef !32
  %1630 = trunc i8 %1629 to i1
  br i1 %1630, label %1631, label %1645

1631:                                             ; preds = %1628
  %1632 = load double, ptr %29, align 8, !tbaa !33
  %1633 = load double, ptr %17, align 8, !tbaa !33
  %1634 = fdiv double %1632, %1633
  %1635 = load double, ptr %30, align 8, !tbaa !33
  %1636 = load double, ptr %18, align 8, !tbaa !33
  %1637 = fdiv double %1635, %1636
  %1638 = load double, ptr %31, align 8, !tbaa !33
  %1639 = load double, ptr %19, align 8, !tbaa !33
  %1640 = fdiv double %1638, %1639
  %1641 = load ptr, ptr %7, align 8, !tbaa !5
  %1642 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1634, double noundef %1637, double noundef %1640, ptr noundef %1641)
  %1643 = load double, ptr @_ZN11alglib_implL42gipm_firstiterationcheckpointstagnationepsE, align 8, !tbaa !33
  %1644 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1642, double noundef %1643)
  br i1 %1644, label %1645, label %1669

1645:                                             ; preds = %1631, %1628
  %1646 = load ptr, ptr %5, align 8, !tbaa !5
  %1647 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1646, i32 0, i32 47
  %1648 = load i64, ptr %1647, align 8, !tbaa !56
  %1649 = load i64, ptr %48, align 8, !tbaa !30
  %1650 = load i64, ptr @_ZN11alglib_implL31gipm_maxcheckpointstagnationitsE, align 8, !tbaa !30
  %1651 = add nsw i64 %1649, %1650
  %1652 = icmp sgt i64 %1648, %1651
  br i1 %1652, label %1653, label %1668

1653:                                             ; preds = %1645
  %1654 = load ptr, ptr %5, align 8, !tbaa !5
  %1655 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1654, i32 0, i32 44
  %1656 = load i8, ptr %1655, align 8, !tbaa !37, !range !31, !noundef !32
  %1657 = trunc i8 %1656 to i1
  br i1 %1657, label %1658, label %1661

1658:                                             ; preds = %1653
  %1659 = load i64, ptr @_ZN11alglib_implL31gipm_maxcheckpointstagnationitsE, align 8, !tbaa !30
  %1660 = trunc i64 %1659 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.743, i32 noundef %1660)
  br label %1661

1661:                                             ; preds = %1658, %1653
  %1662 = load ptr, ptr %5, align 8, !tbaa !5
  %1663 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1662, i32 0, i32 47
  %1664 = load i64, ptr %1663, align 8, !tbaa !56
  %1665 = add nsw i64 %1664, 1
  %1666 = load ptr, ptr %5, align 8, !tbaa !5
  %1667 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1666, i32 0, i32 47
  store i64 %1665, ptr %1667, align 8, !tbaa !56
  br label %2760

1668:                                             ; preds = %1645
  br label %1669

1669:                                             ; preds = %1668, %1631
  %1670 = load i8, ptr %32, align 1, !tbaa !9, !range !31, !noundef !32
  %1671 = trunc i8 %1670 to i1
  br i1 %1671, label %1766, label %1672

1672:                                             ; preds = %1669
  %1673 = load ptr, ptr %5, align 8, !tbaa !5
  %1674 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1673, i32 0, i32 42
  %1675 = load i64, ptr %1674, align 8, !tbaa !57
  %1676 = add nsw i64 %1675, 1
  %1677 = load ptr, ptr %5, align 8, !tbaa !5
  %1678 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1677, i32 0, i32 42
  store i64 %1676, ptr %1678, align 8, !tbaa !57
  %1679 = load i8, ptr %32, align 1, !tbaa !9, !range !31, !noundef !32
  %1680 = trunc i8 %1679 to i1
  br i1 %1680, label %1681, label %1684

1681:                                             ; preds = %1672
  %1682 = load ptr, ptr %5, align 8, !tbaa !5
  %1683 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1682, i32 0, i32 42
  store i64 0, ptr %1683, align 8, !tbaa !57
  br label %1684

1684:                                             ; preds = %1681, %1672
  %1685 = load double, ptr %29, align 8, !tbaa !33
  %1686 = load double, ptr %50, align 8, !tbaa !33
  %1687 = fsub double %1685, %1686
  %1688 = load ptr, ptr %7, align 8, !tbaa !5
  %1689 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1687, ptr noundef %1688)
  %1690 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol1E, align 8, !tbaa !33
  %1691 = load double, ptr %50, align 8, !tbaa !33
  %1692 = fmul double %1690, %1691
  %1693 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol2E, align 8, !tbaa !33
  %1694 = load ptr, ptr %5, align 8, !tbaa !5
  %1695 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1694, i32 0, i32 10
  %1696 = load double, ptr %1695, align 8, !tbaa !50
  %1697 = fmul double %1693, %1696
  %1698 = load ptr, ptr %7, align 8, !tbaa !5
  %1699 = call noundef double @_ZN11alglib_impl8rmaxabs2EddPNS_8ae_stateE(double noundef %1692, double noundef %1697, ptr noundef %1698)
  %1700 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1689, double noundef %1699)
  br i1 %1700, label %1701, label %1704

1701:                                             ; preds = %1684
  %1702 = load ptr, ptr %5, align 8, !tbaa !5
  %1703 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1702, i32 0, i32 42
  store i64 0, ptr %1703, align 8, !tbaa !57
  br label %1704

1704:                                             ; preds = %1701, %1684
  %1705 = load double, ptr %30, align 8, !tbaa !33
  %1706 = load double, ptr %51, align 8, !tbaa !33
  %1707 = fsub double %1705, %1706
  %1708 = load ptr, ptr %7, align 8, !tbaa !5
  %1709 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1707, ptr noundef %1708)
  %1710 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol1E, align 8, !tbaa !33
  %1711 = load double, ptr %51, align 8, !tbaa !33
  %1712 = fmul double %1710, %1711
  %1713 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol2E, align 8, !tbaa !33
  %1714 = load ptr, ptr %5, align 8, !tbaa !5
  %1715 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1714, i32 0, i32 10
  %1716 = load double, ptr %1715, align 8, !tbaa !50
  %1717 = fmul double %1713, %1716
  %1718 = load ptr, ptr %7, align 8, !tbaa !5
  %1719 = call noundef double @_ZN11alglib_impl8rmaxabs2EddPNS_8ae_stateE(double noundef %1712, double noundef %1717, ptr noundef %1718)
  %1720 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1709, double noundef %1719)
  br i1 %1720, label %1721, label %1724

1721:                                             ; preds = %1704
  %1722 = load ptr, ptr %5, align 8, !tbaa !5
  %1723 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1722, i32 0, i32 42
  store i64 0, ptr %1723, align 8, !tbaa !57
  br label %1724

1724:                                             ; preds = %1721, %1704
  %1725 = load double, ptr %31, align 8, !tbaa !33
  %1726 = load double, ptr %52, align 8, !tbaa !33
  %1727 = fsub double %1725, %1726
  %1728 = load ptr, ptr %7, align 8, !tbaa !5
  %1729 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1727, ptr noundef %1728)
  %1730 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol1E, align 8, !tbaa !33
  %1731 = load double, ptr %52, align 8, !tbaa !33
  %1732 = fmul double %1730, %1731
  %1733 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol2E, align 8, !tbaa !33
  %1734 = load ptr, ptr %5, align 8, !tbaa !5
  %1735 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1734, i32 0, i32 10
  %1736 = load double, ptr %1735, align 8, !tbaa !50
  %1737 = fmul double %1733, %1736
  %1738 = load ptr, ptr %7, align 8, !tbaa !5
  %1739 = call noundef double @_ZN11alglib_impl8rmaxabs2EddPNS_8ae_stateE(double noundef %1732, double noundef %1737, ptr noundef %1738)
  %1740 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1729, double noundef %1739)
  br i1 %1740, label %1741, label %1744

1741:                                             ; preds = %1724
  %1742 = load ptr, ptr %5, align 8, !tbaa !5
  %1743 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1742, i32 0, i32 42
  store i64 0, ptr %1743, align 8, !tbaa !57
  br label %1744

1744:                                             ; preds = %1741, %1724
  %1745 = load ptr, ptr %5, align 8, !tbaa !5
  %1746 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1745, i32 0, i32 42
  %1747 = load i64, ptr %1746, align 8, !tbaa !57
  %1748 = load i64, ptr @_ZN11alglib_implL24gipm_maxrhsstagnationitsE, align 8, !tbaa !30
  %1749 = icmp sgt i64 %1747, %1748
  br i1 %1749, label %1750, label %1765

1750:                                             ; preds = %1744
  %1751 = load ptr, ptr %5, align 8, !tbaa !5
  %1752 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1751, i32 0, i32 44
  %1753 = load i8, ptr %1752, align 8, !tbaa !37, !range !31, !noundef !32
  %1754 = trunc i8 %1753 to i1
  br i1 %1754, label %1755, label %1758

1755:                                             ; preds = %1750
  %1756 = load i64, ptr @_ZN11alglib_implL24gipm_maxrhsstagnationitsE, align 8, !tbaa !30
  %1757 = trunc i64 %1756 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.744, i32 noundef %1757)
  br label %1758

1758:                                             ; preds = %1755, %1750
  %1759 = load ptr, ptr %5, align 8, !tbaa !5
  %1760 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1759, i32 0, i32 47
  %1761 = load i64, ptr %1760, align 8, !tbaa !56
  %1762 = add nsw i64 %1761, 1
  %1763 = load ptr, ptr %5, align 8, !tbaa !5
  %1764 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1763, i32 0, i32 47
  store i64 %1762, ptr %1764, align 8, !tbaa !56
  br label %2760

1765:                                             ; preds = %1744
  br label %1766

1766:                                             ; preds = %1765, %1669
  %1767 = load ptr, ptr %5, align 8, !tbaa !5
  %1768 = load ptr, ptr %5, align 8, !tbaa !5
  %1769 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1768, i32 0, i32 37
  %1770 = load ptr, ptr %5, align 8, !tbaa !5
  %1771 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1770, i32 0, i32 39
  %1772 = load ptr, ptr %5, align 8, !tbaa !5
  %1773 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1772, i32 0, i32 33
  %1774 = load double, ptr %1773, align 8, !tbaa !53
  %1775 = load ptr, ptr %5, align 8, !tbaa !5
  %1776 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1775, i32 0, i32 52
  %1777 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL16gipm_condenselhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef %1767, ptr noundef %1769, ptr noundef %1771, double noundef %1774, ptr noundef %1776, ptr noundef %1777)
  %1778 = load ptr, ptr %5, align 8, !tbaa !5
  %1779 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1778, i32 0, i32 12
  store i64 1001, ptr %1779, align 8, !tbaa !43
  %1780 = load ptr, ptr %5, align 8, !tbaa !5
  %1781 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1780, i32 0, i32 22
  store i8 0, ptr %1781, align 2, !tbaa !61
  %1782 = load i64, ptr %13, align 8, !tbaa !30
  %1783 = load ptr, ptr %5, align 8, !tbaa !5
  %1784 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1783, i32 0, i32 15
  %1785 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1782, ptr noundef %1784, ptr noundef %1785)
  %1786 = load i64, ptr %8, align 8, !tbaa !30
  %1787 = load ptr, ptr %5, align 8, !tbaa !5
  %1788 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1787, i32 0, i32 52
  %1789 = getelementptr inbounds %"struct.alglib_impl::gipmcondensedsystem", ptr %1788, i32 0, i32 15
  %1790 = load ptr, ptr %5, align 8, !tbaa !5
  %1791 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1790, i32 0, i32 15
  %1792 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %1786, ptr noundef %1789, i64 noundef 0, ptr noundef %1791, i64 noundef 0, ptr noundef %1792)
  %1793 = load i64, ptr %10, align 8, !tbaa !30
  %1794 = load ptr, ptr %5, align 8, !tbaa !5
  %1795 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1794, i32 0, i32 52
  %1796 = getelementptr inbounds %"struct.alglib_impl::gipmcondensedsystem", ptr %1795, i32 0, i32 16
  %1797 = load ptr, ptr %5, align 8, !tbaa !5
  %1798 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1797, i32 0, i32 15
  %1799 = load i64, ptr %8, align 8, !tbaa !30
  %1800 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %1793, ptr noundef %1796, i64 noundef 0, ptr noundef %1798, i64 noundef %1799, ptr noundef %1800)
  %1801 = load i64, ptr %11, align 8, !tbaa !30
  %1802 = load ptr, ptr %5, align 8, !tbaa !5
  %1803 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1802, i32 0, i32 52
  %1804 = getelementptr inbounds %"struct.alglib_impl::gipmcondensedsystem", ptr %1803, i32 0, i32 17
  %1805 = load ptr, ptr %5, align 8, !tbaa !5
  %1806 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1805, i32 0, i32 15
  %1807 = load i64, ptr %8, align 8, !tbaa !30
  %1808 = load i64, ptr %10, align 8, !tbaa !30
  %1809 = add nsw i64 %1807, %1808
  %1810 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %1801, ptr noundef %1804, i64 noundef 0, ptr noundef %1806, i64 noundef %1809, ptr noundef %1810)
  %1811 = load ptr, ptr %5, align 8, !tbaa !5
  %1812 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1811, i32 0, i32 60
  %1813 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1812, i32 0, i32 0
  store i32 1, ptr %1813, align 8, !tbaa !11
  br label %3064

1814:                                             ; preds = %405
  %1815 = load ptr, ptr %5, align 8, !tbaa !5
  %1816 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1815, i32 0, i32 22
  %1817 = load i8, ptr %1816, align 2, !tbaa !61, !range !31, !noundef !32
  %1818 = trunc i8 %1817 to i1
  br i1 %1818, label %1895, label %1819

1819:                                             ; preds = %1814
  %1820 = load ptr, ptr %5, align 8, !tbaa !5
  %1821 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1820, i32 0, i32 36
  %1822 = load i64, ptr %1821, align 8, !tbaa !55
  %1823 = load i64, ptr @_ZN11alglib_implL39gipm_maxsubsequentfailuresforweakgrowthE, align 8, !tbaa !30
  %1824 = icmp sle i64 %1822, %1823
  br i1 %1824, label %1825, label %1860

1825:                                             ; preds = %1819
  %1826 = load ptr, ptr %5, align 8, !tbaa !5
  %1827 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1826, i32 0, i32 44
  %1828 = load i8, ptr %1827, align 8, !tbaa !37, !range !31, !noundef !32
  %1829 = trunc i8 %1828 to i1
  br i1 %1829, label %1830, label %1831

1830:                                             ; preds = %1825
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.745)
  br label %1831

1831:                                             ; preds = %1830, %1825
  %1832 = load i8, ptr %36, align 1, !tbaa !9, !range !31, !noundef !32
  %1833 = trunc i8 %1832 to i1
  %1834 = load double, ptr @_ZN11alglib_implL17gipm_lambdagrowthE, align 8, !tbaa !33
  %1835 = load ptr, ptr %5, align 8, !tbaa !5
  %1836 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1835, i32 0, i32 34
  %1837 = load double, ptr %1836, align 8, !tbaa !51
  %1838 = load ptr, ptr %5, align 8, !tbaa !5
  %1839 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1838, i32 0, i32 33
  %1840 = load double, ptr %1839, align 8, !tbaa !53
  %1841 = load ptr, ptr %7, align 8, !tbaa !5
  %1842 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %1837, double noundef %1840, ptr noundef %1841)
  %1843 = fmul double %1834, %1842
  %1844 = load ptr, ptr %5, align 8, !tbaa !5
  %1845 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1844, i32 0, i32 34
  %1846 = load double, ptr %1845, align 8, !tbaa !51
  %1847 = fmul double 1.000000e+01, %1846
  %1848 = load ptr, ptr %5, align 8, !tbaa !5
  %1849 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1848, i32 0, i32 33
  %1850 = load double, ptr %1849, align 8, !tbaa !53
  %1851 = fmul double 1.000000e+01, %1850
  %1852 = load ptr, ptr %7, align 8, !tbaa !5
  %1853 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %1847, double noundef %1851, ptr noundef %1852)
  %1854 = load ptr, ptr %7, align 8, !tbaa !5
  %1855 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1833, double noundef %1843, double noundef %1853, ptr noundef %1854)
  %1856 = load ptr, ptr %5, align 8, !tbaa !5
  %1857 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1856, i32 0, i32 34
  store double %1855, ptr %1857, align 8, !tbaa !51
  %1858 = load ptr, ptr %5, align 8, !tbaa !5
  %1859 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1858, i32 0, i32 35
  store double 1.000000e+00, ptr %1859, align 8, !tbaa !52
  br label %1882

1860:                                             ; preds = %1819
  %1861 = load ptr, ptr %5, align 8, !tbaa !5
  %1862 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1861, i32 0, i32 44
  %1863 = load i8, ptr %1862, align 8, !tbaa !37, !range !31, !noundef !32
  %1864 = trunc i8 %1863 to i1
  br i1 %1864, label %1865, label %1866

1865:                                             ; preds = %1860
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.746)
  br label %1866

1866:                                             ; preds = %1865, %1860
  %1867 = load double, ptr @_ZN11alglib_implL22gipm_lambdarapidgrowthE, align 8, !tbaa !33
  %1868 = load ptr, ptr %5, align 8, !tbaa !5
  %1869 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1868, i32 0, i32 34
  %1870 = load double, ptr %1869, align 8, !tbaa !51
  %1871 = fmul double %1867, %1870
  %1872 = load ptr, ptr %5, align 8, !tbaa !5
  %1873 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1872, i32 0, i32 33
  %1874 = load double, ptr %1873, align 8, !tbaa !53
  %1875 = fmul double 1.000000e-03, %1874
  %1876 = load ptr, ptr %7, align 8, !tbaa !5
  %1877 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1871, double noundef %1875, ptr noundef %1876)
  %1878 = load ptr, ptr %5, align 8, !tbaa !5
  %1879 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1878, i32 0, i32 34
  store double %1877, ptr %1879, align 8, !tbaa !51
  %1880 = load ptr, ptr %5, align 8, !tbaa !5
  %1881 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1880, i32 0, i32 35
  store double 1.000000e+00, ptr %1881, align 8, !tbaa !52
  br label %1882

1882:                                             ; preds = %1866, %1831
  %1883 = load ptr, ptr %5, align 8, !tbaa !5
  %1884 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1883, i32 0, i32 47
  %1885 = load i64, ptr %1884, align 8, !tbaa !56
  %1886 = add nsw i64 %1885, 1
  %1887 = load ptr, ptr %5, align 8, !tbaa !5
  %1888 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1887, i32 0, i32 47
  store i64 %1886, ptr %1888, align 8, !tbaa !56
  %1889 = load ptr, ptr %5, align 8, !tbaa !5
  %1890 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1889, i32 0, i32 36
  %1891 = load i64, ptr %1890, align 8, !tbaa !55
  %1892 = add nsw i64 %1891, 1
  %1893 = load ptr, ptr %5, align 8, !tbaa !5
  %1894 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1893, i32 0, i32 36
  store i64 %1892, ptr %1894, align 8, !tbaa !55
  br label %1259

1895:                                             ; preds = %1814
  %1896 = load ptr, ptr %5, align 8, !tbaa !5
  %1897 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1896, i32 0, i32 36
  store i64 0, ptr %1897, align 8, !tbaa !55
  %1898 = load i8, ptr %36, align 1, !tbaa !9, !range !31, !noundef !32
  %1899 = trunc i8 %1898 to i1
  br i1 %1899, label %1905, label %1900

1900:                                             ; preds = %1895
  %1901 = load ptr, ptr %5, align 8, !tbaa !5
  %1902 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1901, i32 0, i32 34
  %1903 = load double, ptr %1902, align 8, !tbaa !51
  %1904 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1903, double noundef 0.000000e+00)
  br label %1905

1905:                                             ; preds = %1900, %1895
  %1906 = phi i1 [ true, %1895 ], [ %1904, %1900 ]
  %1907 = zext i1 %1906 to i8
  store i8 %1907, ptr %36, align 1, !tbaa !9
  store double 1.000000e+300, ptr %44, align 8, !tbaa !33
  %1908 = load ptr, ptr %5, align 8, !tbaa !5
  %1909 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1908, i32 0, i32 53
  %1910 = load i64, ptr %8, align 8, !tbaa !30
  %1911 = load i64, ptr %10, align 8, !tbaa !30
  %1912 = load i64, ptr %11, align 8, !tbaa !30
  %1913 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef %1909, i64 noundef %1910, i64 noundef %1911, i64 noundef %1912, ptr noundef %1913)
  store i64 0, ptr %15, align 8, !tbaa !30
  br label %1914

1914:                                             ; preds = %2124, %1905
  %1915 = load i64, ptr %15, align 8, !tbaa !30
  %1916 = load i64, ptr @_ZN11alglib_implL14gipm_maxrfsitsE, align 8, !tbaa !30
  %1917 = sub nsw i64 %1916, 1
  %1918 = icmp sgt i64 %1915, %1917
  br i1 %1918, label %1919, label %1920

1919:                                             ; preds = %1914
  br label %2127

1920:                                             ; preds = %1914
  %1921 = load ptr, ptr %5, align 8, !tbaa !5
  %1922 = load ptr, ptr %5, align 8, !tbaa !5
  %1923 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1922, i32 0, i32 37
  %1924 = load ptr, ptr %5, align 8, !tbaa !5
  %1925 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1924, i32 0, i32 39
  %1926 = load ptr, ptr %5, align 8, !tbaa !5
  %1927 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1926, i32 0, i32 33
  %1928 = load double, ptr %1927, align 8, !tbaa !53
  %1929 = load ptr, ptr %5, align 8, !tbaa !5
  %1930 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1929, i32 0, i32 51
  %1931 = load ptr, ptr %5, align 8, !tbaa !5
  %1932 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1931, i32 0, i32 52
  %1933 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL16gipm_condenserhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef %1921, ptr noundef %1923, ptr noundef %1925, double noundef %1928, ptr noundef %1930, ptr noundef %1932, ptr noundef %1933)
  %1934 = load ptr, ptr %5, align 8, !tbaa !5
  %1935 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1934, i32 0, i32 12
  store i64 1002, ptr %1935, align 8, !tbaa !43
  %1936 = load i64, ptr %8, align 8, !tbaa !30
  %1937 = load i64, ptr %9, align 8, !tbaa !30
  %1938 = add nsw i64 %1936, %1937
  %1939 = load ptr, ptr %5, align 8, !tbaa !5
  %1940 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1939, i32 0, i32 15
  %1941 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1938, ptr noundef %1940, ptr noundef %1941)
  %1942 = load i64, ptr %8, align 8, !tbaa !30
  %1943 = load ptr, ptr %5, align 8, !tbaa !5
  %1944 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1943, i32 0, i32 52
  %1945 = getelementptr inbounds %"struct.alglib_impl::gipmcondensedsystem", ptr %1944, i32 0, i32 12
  %1946 = load ptr, ptr %5, align 8, !tbaa !5
  %1947 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1946, i32 0, i32 15
  %1948 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %1942, ptr noundef %1945, i64 noundef 0, ptr noundef %1947, i64 noundef 0, ptr noundef %1948)
  %1949 = load i64, ptr %10, align 8, !tbaa !30
  %1950 = load ptr, ptr %5, align 8, !tbaa !5
  %1951 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1950, i32 0, i32 52
  %1952 = getelementptr inbounds %"struct.alglib_impl::gipmcondensedsystem", ptr %1951, i32 0, i32 13
  %1953 = load ptr, ptr %5, align 8, !tbaa !5
  %1954 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1953, i32 0, i32 15
  %1955 = load i64, ptr %8, align 8, !tbaa !30
  %1956 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %1949, ptr noundef %1952, i64 noundef 0, ptr noundef %1954, i64 noundef %1955, ptr noundef %1956)
  %1957 = load i64, ptr %11, align 8, !tbaa !30
  %1958 = load ptr, ptr %5, align 8, !tbaa !5
  %1959 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1958, i32 0, i32 52
  %1960 = getelementptr inbounds %"struct.alglib_impl::gipmcondensedsystem", ptr %1959, i32 0, i32 14
  %1961 = load ptr, ptr %5, align 8, !tbaa !5
  %1962 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1961, i32 0, i32 15
  %1963 = load i64, ptr %8, align 8, !tbaa !30
  %1964 = load i64, ptr %10, align 8, !tbaa !30
  %1965 = add nsw i64 %1963, %1964
  %1966 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %1957, ptr noundef %1960, i64 noundef 0, ptr noundef %1962, i64 noundef %1965, ptr noundef %1966)
  %1967 = load i64, ptr %8, align 8, !tbaa !30
  %1968 = load i64, ptr %9, align 8, !tbaa !30
  %1969 = add nsw i64 %1967, %1968
  %1970 = load ptr, ptr %5, align 8, !tbaa !5
  %1971 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1970, i32 0, i32 18
  %1972 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1969, ptr noundef %1971, ptr noundef %1972)
  %1973 = load ptr, ptr %5, align 8, !tbaa !5
  %1974 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1973, i32 0, i32 60
  %1975 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1974, i32 0, i32 0
  store i32 2, ptr %1975, align 8, !tbaa !11
  br label %3064

1976:                                             ; preds = %412
  %1977 = load ptr, ptr %5, align 8, !tbaa !5
  %1978 = load ptr, ptr %5, align 8, !tbaa !5
  %1979 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1978, i32 0, i32 37
  %1980 = load ptr, ptr %5, align 8, !tbaa !5
  %1981 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1980, i32 0, i32 39
  %1982 = load ptr, ptr %5, align 8, !tbaa !5
  %1983 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1982, i32 0, i32 33
  %1984 = load double, ptr %1983, align 8, !tbaa !53
  %1985 = load ptr, ptr %5, align 8, !tbaa !5
  %1986 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1985, i32 0, i32 51
  %1987 = load ptr, ptr %5, align 8, !tbaa !5
  %1988 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1987, i32 0, i32 52
  %1989 = load ptr, ptr %5, align 8, !tbaa !5
  %1990 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1989, i32 0, i32 18
  %1991 = load ptr, ptr %5, align 8, !tbaa !5
  %1992 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1991, i32 0, i32 54
  %1993 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL19gipm_unpacksolutionEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPKNS_9ae_vectorEPS3_PNS_8ae_stateE(ptr noundef %1977, ptr noundef %1979, ptr noundef %1981, double noundef %1984, ptr noundef %1986, ptr noundef %1988, ptr noundef %1990, ptr noundef %1992, ptr noundef %1993)
  %1994 = load ptr, ptr %5, align 8, !tbaa !5
  %1995 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1994, i32 0, i32 53
  %1996 = load ptr, ptr %5, align 8, !tbaa !5
  %1997 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1996, i32 0, i32 54
  %1998 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL18gipm_varsapplystepEPNS_8gipmvarsEPKS0_dPNS_8ae_stateE(ptr noundef %1995, ptr noundef %1997, double noundef 1.000000e+00, ptr noundef %1998)
  %1999 = load ptr, ptr %5, align 8, !tbaa !5
  %2000 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %1999, i32 0, i32 12
  store i64 1003, ptr %2000, align 8, !tbaa !43
  %2001 = load i64, ptr %8, align 8, !tbaa !30
  %2002 = load i64, ptr %9, align 8, !tbaa !30
  %2003 = add nsw i64 %2001, %2002
  %2004 = load ptr, ptr %5, align 8, !tbaa !5
  %2005 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2004, i32 0, i32 15
  %2006 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2003, ptr noundef %2005, ptr noundef %2006)
  %2007 = load i64, ptr %8, align 8, !tbaa !30
  %2008 = load i64, ptr %9, align 8, !tbaa !30
  %2009 = add nsw i64 %2007, %2008
  %2010 = load i64, ptr %8, align 8, !tbaa !30
  %2011 = add nsw i64 %2009, %2010
  %2012 = load ptr, ptr %5, align 8, !tbaa !5
  %2013 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2012, i32 0, i32 19
  %2014 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2011, ptr noundef %2013, ptr noundef %2014)
  %2015 = load i64, ptr %8, align 8, !tbaa !30
  %2016 = load ptr, ptr %5, align 8, !tbaa !5
  %2017 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2016, i32 0, i32 54
  %2018 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2017, i32 0, i32 4
  %2019 = load ptr, ptr %5, align 8, !tbaa !5
  %2020 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2019, i32 0, i32 15
  %2021 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2015, ptr noundef %2018, i64 noundef 0, ptr noundef %2020, i64 noundef 0, ptr noundef %2021)
  %2022 = load i64, ptr %10, align 8, !tbaa !30
  %2023 = load ptr, ptr %5, align 8, !tbaa !5
  %2024 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2023, i32 0, i32 54
  %2025 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2024, i32 0, i32 7
  %2026 = load ptr, ptr %5, align 8, !tbaa !5
  %2027 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2026, i32 0, i32 15
  %2028 = load i64, ptr %8, align 8, !tbaa !30
  %2029 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2022, ptr noundef %2025, i64 noundef 0, ptr noundef %2027, i64 noundef %2028, ptr noundef %2029)
  %2030 = load i64, ptr %11, align 8, !tbaa !30
  %2031 = load ptr, ptr %5, align 8, !tbaa !5
  %2032 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2031, i32 0, i32 54
  %2033 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2032, i32 0, i32 10
  %2034 = load ptr, ptr %5, align 8, !tbaa !5
  %2035 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2034, i32 0, i32 15
  %2036 = load i64, ptr %8, align 8, !tbaa !30
  %2037 = load i64, ptr %10, align 8, !tbaa !30
  %2038 = add nsw i64 %2036, %2037
  %2039 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2030, ptr noundef %2033, i64 noundef 0, ptr noundef %2035, i64 noundef %2038, ptr noundef %2039)
  %2040 = load ptr, ptr %5, align 8, !tbaa !5
  %2041 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2040, i32 0, i32 60
  %2042 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2041, i32 0, i32 0
  store i32 3, ptr %2042, align 8, !tbaa !11
  br label %3064

2043:                                             ; preds = %419
  %2044 = load i64, ptr %8, align 8, !tbaa !30
  %2045 = load ptr, ptr %5, align 8, !tbaa !5
  %2046 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2045, i32 0, i32 55
  %2047 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2044, ptr noundef %2046, ptr noundef %2047)
  %2048 = load i64, ptr %9, align 8, !tbaa !30
  %2049 = load ptr, ptr %5, align 8, !tbaa !5
  %2050 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2049, i32 0, i32 56
  %2051 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2048, ptr noundef %2050, ptr noundef %2051)
  %2052 = load i64, ptr %8, align 8, !tbaa !30
  %2053 = load ptr, ptr %5, align 8, !tbaa !5
  %2054 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2053, i32 0, i32 57
  %2055 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2052, ptr noundef %2054, ptr noundef %2055)
  %2056 = load i64, ptr %8, align 8, !tbaa !30
  %2057 = load ptr, ptr %5, align 8, !tbaa !5
  %2058 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2057, i32 0, i32 19
  %2059 = load ptr, ptr %5, align 8, !tbaa !5
  %2060 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2059, i32 0, i32 55
  %2061 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2056, ptr noundef %2058, i64 noundef 0, ptr noundef %2060, i64 noundef 0, ptr noundef %2061)
  %2062 = load i64, ptr %9, align 8, !tbaa !30
  %2063 = load ptr, ptr %5, align 8, !tbaa !5
  %2064 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2063, i32 0, i32 19
  %2065 = load i64, ptr %8, align 8, !tbaa !30
  %2066 = load ptr, ptr %5, align 8, !tbaa !5
  %2067 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2066, i32 0, i32 56
  %2068 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2062, ptr noundef %2064, i64 noundef %2065, ptr noundef %2067, i64 noundef 0, ptr noundef %2068)
  %2069 = load i64, ptr %8, align 8, !tbaa !30
  %2070 = load ptr, ptr %5, align 8, !tbaa !5
  %2071 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2070, i32 0, i32 19
  %2072 = load i64, ptr %8, align 8, !tbaa !30
  %2073 = load i64, ptr %9, align 8, !tbaa !30
  %2074 = add nsw i64 %2072, %2073
  %2075 = load ptr, ptr %5, align 8, !tbaa !5
  %2076 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2075, i32 0, i32 57
  %2077 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2069, ptr noundef %2071, i64 noundef %2074, ptr noundef %2076, i64 noundef 0, ptr noundef %2077)
  %2078 = load ptr, ptr %5, align 8, !tbaa !5
  %2079 = load ptr, ptr %5, align 8, !tbaa !5
  %2080 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2079, i32 0, i32 37
  %2081 = load ptr, ptr %5, align 8, !tbaa !5
  %2082 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2081, i32 0, i32 39
  %2083 = load ptr, ptr %5, align 8, !tbaa !5
  %2084 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2083, i32 0, i32 33
  %2085 = load double, ptr %2084, align 8, !tbaa !53
  %2086 = load ptr, ptr %5, align 8, !tbaa !5
  %2087 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2086, i32 0, i32 34
  %2088 = load double, ptr %2087, align 8, !tbaa !51
  %2089 = load ptr, ptr %5, align 8, !tbaa !5
  %2090 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2089, i32 0, i32 54
  %2091 = load ptr, ptr %5, align 8, !tbaa !5
  %2092 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2091, i32 0, i32 55
  %2093 = load ptr, ptr %5, align 8, !tbaa !5
  %2094 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2093, i32 0, i32 56
  %2095 = load ptr, ptr %5, align 8, !tbaa !5
  %2096 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2095, i32 0, i32 57
  %2097 = load ptr, ptr %5, align 8, !tbaa !5
  %2098 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2097, i32 0, i32 51
  %2099 = load ptr, ptr %7, align 8, !tbaa !5
  %2100 = call noundef double @_ZN11alglib_implL26gipm_computeupdateresidualEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEddS4_PKNS_9ae_vectorESA_SA_PNS_7gipmrhsEPNS_8ae_stateE(ptr noundef %2078, ptr noundef %2080, ptr noundef %2082, double noundef %2085, double noundef %2088, ptr noundef %2090, ptr noundef %2092, ptr noundef %2094, ptr noundef %2096, ptr noundef %2098, ptr noundef %2099)
  store double %2100, ptr %44, align 8, !tbaa !33
  %2101 = load ptr, ptr %5, align 8, !tbaa !5
  %2102 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2101, i32 0, i32 44
  %2103 = load i8, ptr %2102, align 8, !tbaa !37, !range !31, !noundef !32
  %2104 = trunc i8 %2103 to i1
  br i1 %2104, label %2105, label %2111

2105:                                             ; preds = %2043
  %2106 = load double, ptr %44, align 8, !tbaa !33
  %2107 = load double, ptr %43, align 8, !tbaa !33
  %2108 = load ptr, ptr %7, align 8, !tbaa !5
  %2109 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %2107, double noundef 1.000000e+00, ptr noundef %2108)
  %2110 = fdiv double %2106, %2109
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.747, double noundef %2110)
  br label %2111

2111:                                             ; preds = %2105, %2043
  %2112 = load double, ptr %44, align 8, !tbaa !33
  %2113 = load double, ptr @_ZN11alglib_implL11gipm_rhstolE, align 8, !tbaa !33
  %2114 = load double, ptr %43, align 8, !tbaa !33
  %2115 = fmul double %2113, %2114
  %2116 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2112, double noundef %2115)
  br i1 %2116, label %2117, label %2124

2117:                                             ; preds = %2111
  %2118 = load ptr, ptr %5, align 8, !tbaa !5
  %2119 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2118, i32 0, i32 44
  %2120 = load i8, ptr %2119, align 8, !tbaa !37, !range !31, !noundef !32
  %2121 = trunc i8 %2120 to i1
  br i1 %2121, label %2122, label %2123

2122:                                             ; preds = %2117
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.748)
  br label %2123

2123:                                             ; preds = %2122, %2117
  br label %2127

2124:                                             ; preds = %2111
  %2125 = load i64, ptr %15, align 8, !tbaa !30
  %2126 = add nsw i64 %2125, 1
  store i64 %2126, ptr %15, align 8, !tbaa !30
  br label %1914

2127:                                             ; preds = %2123, %1919
  %2128 = load double, ptr %44, align 8, !tbaa !33
  %2129 = load double, ptr @_ZN11alglib_implL11gipm_rhstolE, align 8, !tbaa !33
  %2130 = fmul double 2.000000e+00, %2129
  %2131 = load ptr, ptr %7, align 8, !tbaa !5
  %2132 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2130, double noundef 1.000000e-03, ptr noundef %2131)
  %2133 = load double, ptr %43, align 8, !tbaa !33
  %2134 = fmul double %2132, %2133
  %2135 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2128, double noundef %2134)
  br i1 %2135, label %2136, label %2164

2136:                                             ; preds = %2127
  %2137 = load ptr, ptr %5, align 8, !tbaa !5
  %2138 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2137, i32 0, i32 44
  %2139 = load i8, ptr %2138, align 8, !tbaa !37, !range !31, !noundef !32
  %2140 = trunc i8 %2139 to i1
  br i1 %2140, label %2141, label %2142

2141:                                             ; preds = %2136
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.749)
  br label %2142

2142:                                             ; preds = %2141, %2136
  %2143 = load ptr, ptr %5, align 8, !tbaa !5
  %2144 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2143, i32 0, i32 34
  %2145 = load double, ptr %2144, align 8, !tbaa !51
  %2146 = fmul double 1.000000e+01, %2145
  %2147 = load ptr, ptr %5, align 8, !tbaa !5
  %2148 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2147, i32 0, i32 33
  %2149 = load double, ptr %2148, align 8, !tbaa !53
  %2150 = fdiv double 1.000000e+00, %2149
  %2151 = fmul double 5.000000e-13, %2150
  %2152 = load ptr, ptr %7, align 8, !tbaa !5
  %2153 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %2146, double noundef %2151, ptr noundef %2152)
  %2154 = load ptr, ptr %5, align 8, !tbaa !5
  %2155 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2154, i32 0, i32 34
  store double %2153, ptr %2155, align 8, !tbaa !51
  %2156 = load ptr, ptr %5, align 8, !tbaa !5
  %2157 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2156, i32 0, i32 35
  store double 1.000000e+00, ptr %2157, align 8, !tbaa !52
  %2158 = load ptr, ptr %5, align 8, !tbaa !5
  %2159 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2158, i32 0, i32 47
  %2160 = load i64, ptr %2159, align 8, !tbaa !56
  %2161 = add nsw i64 %2160, 1
  %2162 = load ptr, ptr %5, align 8, !tbaa !5
  %2163 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2162, i32 0, i32 47
  store i64 %2161, ptr %2163, align 8, !tbaa !56
  br label %1259

2164:                                             ; preds = %2127
  %2165 = load ptr, ptr %5, align 8, !tbaa !5
  %2166 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2165, i32 0, i32 45
  %2167 = load i8, ptr %2166, align 1, !tbaa !60, !range !31, !noundef !32
  %2168 = trunc i8 %2167 to i1
  br i1 %2168, label %2169, label %2180

2169:                                             ; preds = %2164
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.750)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.751)
  %2170 = load ptr, ptr %5, align 8, !tbaa !5
  %2171 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2170, i32 0, i32 53
  %2172 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2171, i32 0, i32 4
  %2173 = load i64, ptr %8, align 8, !tbaa !30
  %2174 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2172, i64 noundef 0, i64 noundef %2173, ptr noundef %2174)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.752)
  %2175 = load ptr, ptr %5, align 8, !tbaa !5
  %2176 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2175, i32 0, i32 53
  %2177 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2176, i32 0, i32 11
  %2178 = load i64, ptr %10, align 8, !tbaa !30
  %2179 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2177, i64 noundef 0, i64 noundef %2178, ptr noundef %2179)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %2180

2180:                                             ; preds = %2169, %2164
  %2181 = load ptr, ptr %5, align 8, !tbaa !5
  %2182 = load ptr, ptr %5, align 8, !tbaa !5
  %2183 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2182, i32 0, i32 37
  %2184 = load ptr, ptr %5, align 8, !tbaa !5
  %2185 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2184, i32 0, i32 53
  %2186 = load ptr, ptr %7, align 8, !tbaa !5
  %2187 = call noundef double @_ZN11alglib_implL22gipm_computesteplengthEPKNS_9gipmstateEPKNS_8gipmvarsES5_PNS_8ae_stateE(ptr noundef %2181, ptr noundef %2183, ptr noundef %2185, ptr noundef %2186)
  store double %2187, ptr %20, align 8, !tbaa !33
  %2188 = load ptr, ptr %5, align 8, !tbaa !5
  %2189 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2188, i32 0, i32 44
  %2190 = load i8, ptr %2189, align 8, !tbaa !37, !range !31, !noundef !32
  %2191 = trunc i8 %2190 to i1
  br i1 %2191, label %2192, label %2194

2192:                                             ; preds = %2180
  %2193 = load double, ptr %20, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.753, double noundef %2193)
  br label %2194

2194:                                             ; preds = %2192, %2180
  %2195 = load ptr, ptr %5, align 8, !tbaa !5
  %2196 = load ptr, ptr %5, align 8, !tbaa !5
  %2197 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2196, i32 0, i32 37
  %2198 = load ptr, ptr %5, align 8, !tbaa !5
  %2199 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2198, i32 0, i32 39
  %2200 = load ptr, ptr %5, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2200, i32 0, i32 33
  %2202 = load double, ptr %2201, align 8, !tbaa !53
  %2203 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef %2195, ptr noundef %2197, ptr noundef %2199, double noundef %2202, ptr noundef %21, ptr noundef %23, ptr noundef %25, ptr noundef %2203)
  %2204 = load ptr, ptr %5, align 8, !tbaa !5
  %2205 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2204, i32 0, i32 44
  %2206 = load i8, ptr %2205, align 8, !tbaa !37, !range !31, !noundef !32
  %2207 = trunc i8 %2206 to i1
  br i1 %2207, label %2208, label %2212

2208:                                             ; preds = %2194
  %2209 = load double, ptr %21, align 8, !tbaa !33
  %2210 = load double, ptr %23, align 8, !tbaa !33
  %2211 = load double, ptr %25, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.754, double noundef %2209, double noundef %2210, double noundef %2211)
  br label %2212

2212:                                             ; preds = %2208, %2194
  store i64 0, ptr %42, align 8, !tbaa !30
  store i64 0, ptr %49, align 8, !tbaa !30
  br label %2213

2213:                                             ; preds = %2416, %2365, %2212
  %2214 = load double, ptr %20, align 8, !tbaa !33
  %2215 = load double, ptr @_ZN11alglib_implL14gipm_smallstepE, align 8, !tbaa !33
  %2216 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2214, double noundef %2215)
  br i1 %2216, label %2217, label %2220

2217:                                             ; preds = %2213
  %2218 = load i64, ptr %42, align 8, !tbaa !30
  %2219 = add nsw i64 %2218, 1
  store i64 %2219, ptr %42, align 8, !tbaa !30
  br label %2220

2220:                                             ; preds = %2217, %2213
  %2221 = load i64, ptr %42, align 8, !tbaa !30
  %2222 = load i64, ptr @_ZN11alglib_implL19gipm_maxsmalltrialsE, align 8, !tbaa !30
  %2223 = icmp sge i64 %2221, %2222
  br i1 %2223, label %2224, label %2225

2224:                                             ; preds = %2220
  store double 0.000000e+00, ptr %20, align 8, !tbaa !33
  br label %2421

2225:                                             ; preds = %2220
  %2226 = load ptr, ptr %5, align 8, !tbaa !5
  %2227 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2226, i32 0, i32 37
  %2228 = load ptr, ptr %5, align 8, !tbaa !5
  %2229 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2228, i32 0, i32 58
  %2230 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef %2227, ptr noundef %2229, ptr noundef %2230)
  %2231 = load ptr, ptr %5, align 8, !tbaa !5
  %2232 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2231, i32 0, i32 58
  %2233 = load ptr, ptr %5, align 8, !tbaa !5
  %2234 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2233, i32 0, i32 53
  %2235 = load double, ptr %20, align 8, !tbaa !33
  %2236 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL18gipm_varsapplystepEPNS_8gipmvarsEPKS0_dPNS_8ae_stateE(ptr noundef %2232, ptr noundef %2234, double noundef %2235, ptr noundef %2236)
  %2237 = load i64, ptr %8, align 8, !tbaa !30
  %2238 = load ptr, ptr %5, align 8, !tbaa !5
  %2239 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2238, i32 0, i32 29
  %2240 = load ptr, ptr %5, align 8, !tbaa !5
  %2241 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2240, i32 0, i32 58
  %2242 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2241, i32 0, i32 4
  %2243 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergemaxvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2237, ptr noundef %2239, ptr noundef %2242, ptr noundef %2243)
  %2244 = load i64, ptr %8, align 8, !tbaa !30
  %2245 = load ptr, ptr %5, align 8, !tbaa !5
  %2246 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2245, i32 0, i32 30
  %2247 = load ptr, ptr %5, align 8, !tbaa !5
  %2248 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2247, i32 0, i32 58
  %2249 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2248, i32 0, i32 4
  %2250 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergeminvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2244, ptr noundef %2246, ptr noundef %2249, ptr noundef %2250)
  %2251 = load ptr, ptr %5, align 8, !tbaa !5
  %2252 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2251, i32 0, i32 12
  store i64 1, ptr %2252, align 8, !tbaa !43
  %2253 = load ptr, ptr %5, align 8, !tbaa !5
  %2254 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2253, i32 0, i32 20
  store i8 1, ptr %2254, align 8, !tbaa !44
  %2255 = load i64, ptr %8, align 8, !tbaa !30
  %2256 = load i64, ptr %9, align 8, !tbaa !30
  %2257 = add nsw i64 %2255, %2256
  %2258 = load ptr, ptr %5, align 8, !tbaa !5
  %2259 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2258, i32 0, i32 15
  %2260 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2257, ptr noundef %2259, ptr noundef %2260)
  %2261 = load i64, ptr %8, align 8, !tbaa !30
  %2262 = load ptr, ptr %5, align 8, !tbaa !5
  %2263 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2262, i32 0, i32 58
  %2264 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2263, i32 0, i32 4
  %2265 = load ptr, ptr %5, align 8, !tbaa !5
  %2266 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2265, i32 0, i32 15
  %2267 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2261, ptr noundef %2264, i64 noundef 0, ptr noundef %2266, i64 noundef 0, ptr noundef %2267)
  %2268 = load i64, ptr %10, align 8, !tbaa !30
  %2269 = load ptr, ptr %5, align 8, !tbaa !5
  %2270 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2269, i32 0, i32 58
  %2271 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2270, i32 0, i32 7
  %2272 = load ptr, ptr %5, align 8, !tbaa !5
  %2273 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2272, i32 0, i32 15
  %2274 = load i64, ptr %8, align 8, !tbaa !30
  %2275 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2268, ptr noundef %2271, i64 noundef 0, ptr noundef %2273, i64 noundef %2274, ptr noundef %2275)
  %2276 = load i64, ptr %11, align 8, !tbaa !30
  %2277 = load ptr, ptr %5, align 8, !tbaa !5
  %2278 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2277, i32 0, i32 58
  %2279 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2278, i32 0, i32 10
  %2280 = load ptr, ptr %5, align 8, !tbaa !5
  %2281 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2280, i32 0, i32 15
  %2282 = load i64, ptr %8, align 8, !tbaa !30
  %2283 = load i64, ptr %10, align 8, !tbaa !30
  %2284 = add nsw i64 %2282, %2283
  %2285 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2276, ptr noundef %2279, i64 noundef 0, ptr noundef %2281, i64 noundef %2284, ptr noundef %2285)
  %2286 = load i64, ptr %9, align 8, !tbaa !30
  %2287 = add nsw i64 1, %2286
  %2288 = load ptr, ptr %5, align 8, !tbaa !5
  %2289 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2288, i32 0, i32 16
  %2290 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2287, ptr noundef %2289, ptr noundef %2290)
  %2291 = load ptr, ptr %5, align 8, !tbaa !5
  %2292 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2291, i32 0, i32 60
  %2293 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2292, i32 0, i32 0
  store i32 4, ptr %2293, align 8, !tbaa !11
  br label %3064

2294:                                             ; preds = %426
  %2295 = load ptr, ptr %5, align 8, !tbaa !5
  %2296 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2295, i32 0, i32 58
  %2297 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2296, i32 0, i32 4
  %2298 = load i64, ptr %8, align 8, !tbaa !30
  %2299 = load ptr, ptr %5, align 8, !tbaa !5
  %2300 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2299, i32 0, i32 16
  %2301 = load i64, ptr %9, align 8, !tbaa !30
  %2302 = add nsw i64 1, %2301
  %2303 = load ptr, ptr %5, align 8, !tbaa !5
  %2304 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2303, i32 0, i32 17
  %2305 = load ptr, ptr %5, align 8, !tbaa !5
  %2306 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2305, i32 0, i32 59
  %2307 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl17vfjinitfromsparseEPKNS_9ae_vectorElS2_lPKNS_12sparsematrixEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %2297, i64 noundef %2298, ptr noundef %2300, i64 noundef %2302, ptr noundef %2304, ptr noundef %2306, ptr noundef %2307)
  %2308 = load ptr, ptr %5, align 8, !tbaa !5
  %2309 = load ptr, ptr %5, align 8, !tbaa !5
  %2310 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2309, i32 0, i32 58
  %2311 = load ptr, ptr %5, align 8, !tbaa !5
  %2312 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2311, i32 0, i32 59
  %2313 = load ptr, ptr %5, align 8, !tbaa !5
  %2314 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2313, i32 0, i32 33
  %2315 = load double, ptr %2314, align 8, !tbaa !53
  %2316 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef %2308, ptr noundef %2310, ptr noundef %2312, double noundef %2315, ptr noundef %22, ptr noundef %24, ptr noundef %26, ptr noundef %2316)
  store i8 0, ptr %38, align 1, !tbaa !9
  store i64 0, ptr %14, align 8, !tbaa !30
  br label %2317

2317:                                             ; preds = %2359, %2294
  %2318 = load i64, ptr %14, align 8, !tbaa !30
  %2319 = load i64, ptr %11, align 8, !tbaa !30
  %2320 = sub nsw i64 %2319, 1
  %2321 = icmp sle i64 %2318, %2320
  br i1 %2321, label %2322, label %2362

2322:                                             ; preds = %2317
  %2323 = load ptr, ptr %5, align 8, !tbaa !5
  %2324 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2323, i32 0, i32 59
  %2325 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2324, i32 0, i32 4
  %2326 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2325, i32 0, i32 4
  %2327 = load ptr, ptr %2326, align 8, !tbaa !29
  %2328 = load i64, ptr %10, align 8, !tbaa !30
  %2329 = add nsw i64 1, %2328
  %2330 = load i64, ptr %14, align 8, !tbaa !30
  %2331 = add nsw i64 %2329, %2330
  %2332 = getelementptr inbounds double, ptr %2327, i64 %2331
  %2333 = load double, ptr %2332, align 8, !tbaa !33
  %2334 = load ptr, ptr %5, align 8, !tbaa !5
  %2335 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2334, i32 0, i32 28
  %2336 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2335, i32 0, i32 4
  %2337 = load ptr, ptr %2336, align 8, !tbaa !29
  %2338 = load i64, ptr %12, align 8, !tbaa !30
  %2339 = load i64, ptr %14, align 8, !tbaa !30
  %2340 = add nsw i64 %2338, %2339
  %2341 = getelementptr inbounds double, ptr %2337, i64 %2340
  %2342 = load double, ptr %2341, align 8, !tbaa !33
  %2343 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2333, double noundef %2342)
  br i1 %2343, label %2344, label %2358

2344:                                             ; preds = %2322
  %2345 = load ptr, ptr %5, align 8, !tbaa !5
  %2346 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2345, i32 0, i32 44
  %2347 = load i8, ptr %2346, align 8, !tbaa !37, !range !31, !noundef !32
  %2348 = trunc i8 %2347 to i1
  br i1 %2348, label %2349, label %2353

2349:                                             ; preds = %2344
  %2350 = load double, ptr %20, align 8, !tbaa !33
  %2351 = load i64, ptr %14, align 8, !tbaa !30
  %2352 = trunc i64 %2351 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.755, double noundef %2350, i32 noundef %2352)
  br label %2353

2353:                                             ; preds = %2349, %2344
  %2354 = load i64, ptr %49, align 8, !tbaa !30
  %2355 = add nsw i64 %2354, 1
  store i64 %2355, ptr %49, align 8, !tbaa !30
  %2356 = load double, ptr %20, align 8, !tbaa !33
  %2357 = fmul double 5.000000e-01, %2356
  store double %2357, ptr %20, align 8, !tbaa !33
  store i8 1, ptr %38, align 1, !tbaa !9
  br label %2362

2358:                                             ; preds = %2322
  br label %2359

2359:                                             ; preds = %2358
  %2360 = load i64, ptr %14, align 8, !tbaa !30
  %2361 = add nsw i64 %2360, 1
  store i64 %2361, ptr %14, align 8, !tbaa !30
  br label %2317, !llvm.loop !62

2362:                                             ; preds = %2353, %2317
  %2363 = load i8, ptr %38, align 1, !tbaa !9, !range !31, !noundef !32
  %2364 = trunc i8 %2363 to i1
  br i1 %2364, label %2365, label %2366

2365:                                             ; preds = %2362
  br label %2213

2366:                                             ; preds = %2362
  %2367 = load ptr, ptr %5, align 8, !tbaa !5
  %2368 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2367, i32 0, i32 44
  %2369 = load i8, ptr %2368, align 8, !tbaa !37, !range !31, !noundef !32
  %2370 = trunc i8 %2369 to i1
  br i1 %2370, label %2371, label %2382

2371:                                             ; preds = %2366
  %2372 = load double, ptr %20, align 8, !tbaa !33
  %2373 = load double, ptr %22, align 8, !tbaa !33
  %2374 = load double, ptr %21, align 8, !tbaa !33
  %2375 = fsub double %2373, %2374
  %2376 = load double, ptr %24, align 8, !tbaa !33
  %2377 = load double, ptr %23, align 8, !tbaa !33
  %2378 = fsub double %2376, %2377
  %2379 = load double, ptr %26, align 8, !tbaa !33
  %2380 = load double, ptr %25, align 8, !tbaa !33
  %2381 = fsub double %2379, %2380
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.756, double noundef %2372, double noundef %2375, double noundef %2378, double noundef %2381)
  br label %2382

2382:                                             ; preds = %2371, %2366
  %2383 = load i8, ptr %32, align 1, !tbaa !9, !range !31, !noundef !32
  %2384 = trunc i8 %2383 to i1
  br i1 %2384, label %2385, label %2400

2385:                                             ; preds = %2382
  %2386 = load ptr, ptr %5, align 8, !tbaa !5
  %2387 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2386, i32 0, i32 43
  %2388 = load double, ptr %21, align 8, !tbaa !33
  %2389 = load double, ptr %23, align 8, !tbaa !33
  %2390 = load double, ptr %25, align 8, !tbaa !33
  %2391 = fadd double %2389, %2390
  %2392 = load double, ptr %22, align 8, !tbaa !33
  %2393 = load double, ptr %24, align 8, !tbaa !33
  %2394 = load double, ptr %26, align 8, !tbaa !33
  %2395 = fadd double %2393, %2394
  %2396 = load ptr, ptr %7, align 8, !tbaa !5
  %2397 = call noundef zeroext i1 @_ZN11alglib_impl16nlpfisacceptableEPNS_9nlpfilterEddddPNS_8ae_stateE(ptr noundef %2387, double noundef %2388, double noundef %2391, double noundef %2392, double noundef %2395, ptr noundef %2396)
  br i1 %2397, label %2398, label %2399

2398:                                             ; preds = %2385
  br label %2421

2399:                                             ; preds = %2385
  br label %2416

2400:                                             ; preds = %2382
  %2401 = load double, ptr %22, align 8, !tbaa !33
  %2402 = load double, ptr %21, align 8, !tbaa !33
  %2403 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2401, double noundef %2402)
  br i1 %2403, label %2404, label %2405

2404:                                             ; preds = %2400
  br label %2421

2405:                                             ; preds = %2400
  %2406 = load double, ptr %24, align 8, !tbaa !33
  %2407 = load double, ptr %23, align 8, !tbaa !33
  %2408 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2406, double noundef %2407)
  br i1 %2408, label %2409, label %2410

2409:                                             ; preds = %2405
  br label %2421

2410:                                             ; preds = %2405
  %2411 = load double, ptr %26, align 8, !tbaa !33
  %2412 = load double, ptr %25, align 8, !tbaa !33
  %2413 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2411, double noundef %2412)
  br i1 %2413, label %2414, label %2415

2414:                                             ; preds = %2410
  br label %2421

2415:                                             ; preds = %2410
  br label %2416

2416:                                             ; preds = %2415, %2399
  %2417 = load i64, ptr %49, align 8, !tbaa !30
  %2418 = add nsw i64 %2417, 1
  store i64 %2418, ptr %49, align 8, !tbaa !30
  %2419 = load double, ptr %20, align 8, !tbaa !33
  %2420 = fmul double 5.000000e-01, %2419
  store double %2420, ptr %20, align 8, !tbaa !33
  br label %2213

2421:                                             ; preds = %2414, %2409, %2404, %2398, %2224
  %2422 = load i64, ptr %49, align 8, !tbaa !30
  %2423 = icmp sge i64 %2422, 3
  br i1 %2423, label %2424, label %2445

2424:                                             ; preds = %2421
  %2425 = load ptr, ptr %5, align 8, !tbaa !5
  %2426 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2425, i32 0, i32 34
  %2427 = load double, ptr %2426, align 8, !tbaa !51
  %2428 = fmul double 2.000000e+00, %2427
  %2429 = load double, ptr %27, align 8, !tbaa !33
  %2430 = load ptr, ptr %7, align 8, !tbaa !5
  %2431 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2428, double noundef %2429, ptr noundef %2430)
  %2432 = load ptr, ptr %5, align 8, !tbaa !5
  %2433 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2432, i32 0, i32 34
  store double %2431, ptr %2433, align 8, !tbaa !51
  %2434 = load ptr, ptr %5, align 8, !tbaa !5
  %2435 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2434, i32 0, i32 35
  store double 1.000000e+00, ptr %2435, align 8, !tbaa !52
  %2436 = load ptr, ptr %5, align 8, !tbaa !5
  %2437 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2436, i32 0, i32 44
  %2438 = load i8, ptr %2437, align 8, !tbaa !37, !range !31, !noundef !32
  %2439 = trunc i8 %2438 to i1
  br i1 %2439, label %2440, label %2444

2440:                                             ; preds = %2424
  %2441 = load ptr, ptr %5, align 8, !tbaa !5
  %2442 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2441, i32 0, i32 34
  %2443 = load double, ptr %2442, align 8, !tbaa !51
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.757, double noundef %2443)
  br label %2444

2444:                                             ; preds = %2440, %2424
  br label %2445

2445:                                             ; preds = %2444, %2421
  %2446 = load double, ptr %20, align 8, !tbaa !33
  %2447 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2446, double noundef 0.000000e+00)
  br i1 %2447, label %2448, label %2449

2448:                                             ; preds = %2445
  br label %2506

2449:                                             ; preds = %2445
  %2450 = load ptr, ptr %5, align 8, !tbaa !5
  %2451 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2450, i32 0, i32 44
  %2452 = load i8, ptr %2451, align 8, !tbaa !37, !range !31, !noundef !32
  %2453 = trunc i8 %2452 to i1
  br i1 %2453, label %2454, label %2455

2454:                                             ; preds = %2449
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.758)
  br label %2455

2455:                                             ; preds = %2454, %2449
  %2456 = load ptr, ptr %5, align 8, !tbaa !5
  %2457 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2456, i32 0, i32 12
  store i64 1, ptr %2457, align 8, !tbaa !43
  %2458 = load ptr, ptr %5, align 8, !tbaa !5
  %2459 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2458, i32 0, i32 20
  store i8 1, ptr %2459, align 8, !tbaa !44
  %2460 = load i64, ptr %8, align 8, !tbaa !30
  %2461 = load i64, ptr %9, align 8, !tbaa !30
  %2462 = add nsw i64 %2460, %2461
  %2463 = load ptr, ptr %5, align 8, !tbaa !5
  %2464 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2463, i32 0, i32 15
  %2465 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2462, ptr noundef %2464, ptr noundef %2465)
  %2466 = load i64, ptr %8, align 8, !tbaa !30
  %2467 = load ptr, ptr %5, align 8, !tbaa !5
  %2468 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2467, i32 0, i32 37
  %2469 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2468, i32 0, i32 4
  %2470 = load ptr, ptr %5, align 8, !tbaa !5
  %2471 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2470, i32 0, i32 15
  %2472 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2466, ptr noundef %2469, i64 noundef 0, ptr noundef %2471, i64 noundef 0, ptr noundef %2472)
  %2473 = load i64, ptr %10, align 8, !tbaa !30
  %2474 = load ptr, ptr %5, align 8, !tbaa !5
  %2475 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2474, i32 0, i32 37
  %2476 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2475, i32 0, i32 7
  %2477 = load ptr, ptr %5, align 8, !tbaa !5
  %2478 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2477, i32 0, i32 15
  %2479 = load i64, ptr %8, align 8, !tbaa !30
  %2480 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2473, ptr noundef %2476, i64 noundef 0, ptr noundef %2478, i64 noundef %2479, ptr noundef %2480)
  %2481 = load i64, ptr %11, align 8, !tbaa !30
  %2482 = load ptr, ptr %5, align 8, !tbaa !5
  %2483 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2482, i32 0, i32 37
  %2484 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2483, i32 0, i32 10
  %2485 = load ptr, ptr %5, align 8, !tbaa !5
  %2486 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2485, i32 0, i32 15
  %2487 = load i64, ptr %8, align 8, !tbaa !30
  %2488 = load i64, ptr %10, align 8, !tbaa !30
  %2489 = add nsw i64 %2487, %2488
  %2490 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %2481, ptr noundef %2484, i64 noundef 0, ptr noundef %2486, i64 noundef %2489, ptr noundef %2490)
  %2491 = load i64, ptr %9, align 8, !tbaa !30
  %2492 = add nsw i64 1, %2491
  %2493 = load ptr, ptr %5, align 8, !tbaa !5
  %2494 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2493, i32 0, i32 16
  %2495 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2492, ptr noundef %2494, ptr noundef %2495)
  %2496 = load ptr, ptr %5, align 8, !tbaa !5
  %2497 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2496, i32 0, i32 60
  %2498 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2497, i32 0, i32 0
  store i32 5, ptr %2498, align 8, !tbaa !11
  br label %3064

2499:                                             ; preds = %433
  %2500 = load ptr, ptr %5, align 8, !tbaa !5
  %2501 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2500, i32 0, i32 47
  %2502 = load i64, ptr %2501, align 8, !tbaa !56
  %2503 = add nsw i64 %2502, 1
  %2504 = load ptr, ptr %5, align 8, !tbaa !5
  %2505 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2504, i32 0, i32 47
  store i64 %2503, ptr %2505, align 8, !tbaa !56
  br label %2760

2506:                                             ; preds = %2448
  %2507 = load ptr, ptr %5, align 8, !tbaa !5
  %2508 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2507, i32 0, i32 44
  %2509 = load i8, ptr %2508, align 8, !tbaa !37, !range !31, !noundef !32
  %2510 = trunc i8 %2509 to i1
  br i1 %2510, label %2511, label %2547

2511:                                             ; preds = %2506
  %2512 = load double, ptr %20, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.759, double noundef %2512)
  %2513 = load ptr, ptr %5, align 8, !tbaa !5
  %2514 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2513, i32 0, i32 39
  %2515 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2514, i32 0, i32 4
  %2516 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2515, i32 0, i32 4
  %2517 = load ptr, ptr %2516, align 8, !tbaa !29
  %2518 = getelementptr inbounds double, ptr %2517, i64 0
  %2519 = load double, ptr %2518, align 8, !tbaa !33
  %2520 = load ptr, ptr %5, align 8, !tbaa !5
  %2521 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2520, i32 0, i32 59
  %2522 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2521, i32 0, i32 4
  %2523 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2522, i32 0, i32 4
  %2524 = load ptr, ptr %2523, align 8, !tbaa !29
  %2525 = getelementptr inbounds double, ptr %2524, i64 0
  %2526 = load double, ptr %2525, align 8, !tbaa !33
  %2527 = load ptr, ptr %5, align 8, !tbaa !5
  %2528 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2527, i32 0, i32 59
  %2529 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2528, i32 0, i32 4
  %2530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2529, i32 0, i32 4
  %2531 = load ptr, ptr %2530, align 8, !tbaa !29
  %2532 = getelementptr inbounds double, ptr %2531, i64 0
  %2533 = load double, ptr %2532, align 8, !tbaa !33
  %2534 = load ptr, ptr %5, align 8, !tbaa !5
  %2535 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2534, i32 0, i32 39
  %2536 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2535, i32 0, i32 4
  %2537 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2536, i32 0, i32 4
  %2538 = load ptr, ptr %2537, align 8, !tbaa !29
  %2539 = getelementptr inbounds double, ptr %2538, i64 0
  %2540 = load double, ptr %2539, align 8, !tbaa !33
  %2541 = fsub double %2533, %2540
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.760, double noundef %2519, double noundef %2526, double noundef %2541)
  %2542 = load double, ptr %21, align 8, !tbaa !33
  %2543 = load double, ptr %22, align 8, !tbaa !33
  %2544 = load double, ptr %22, align 8, !tbaa !33
  %2545 = load double, ptr %21, align 8, !tbaa !33
  %2546 = fsub double %2544, %2545
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.761, double noundef %2542, double noundef %2543, double noundef %2546)
  br label %2547

2547:                                             ; preds = %2511, %2506
  %2548 = load ptr, ptr %5, align 8, !tbaa !5
  %2549 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2548, i32 0, i32 58
  %2550 = load ptr, ptr %5, align 8, !tbaa !5
  %2551 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2550, i32 0, i32 37
  %2552 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef %2549, ptr noundef %2551, ptr noundef %2552)
  %2553 = load ptr, ptr %5, align 8, !tbaa !5
  %2554 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2553, i32 0, i32 59
  %2555 = load ptr, ptr %5, align 8, !tbaa !5
  %2556 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2555, i32 0, i32 39
  %2557 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2554, ptr noundef %2556, ptr noundef %2557)
  %2558 = load i8, ptr %32, align 1, !tbaa !9, !range !31, !noundef !32
  %2559 = trunc i8 %2558 to i1
  br i1 %2559, label %2560, label %2568

2560:                                             ; preds = %2547
  %2561 = load ptr, ptr %5, align 8, !tbaa !5
  %2562 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2561, i32 0, i32 43
  %2563 = load double, ptr %21, align 8, !tbaa !33
  %2564 = load double, ptr %23, align 8, !tbaa !33
  %2565 = load double, ptr %25, align 8, !tbaa !33
  %2566 = fadd double %2564, %2565
  %2567 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef %2562, double noundef %2563, double noundef %2566, ptr noundef %2567)
  br label %2568

2568:                                             ; preds = %2560, %2547
  %2569 = load i64, ptr %8, align 8, !tbaa !30
  %2570 = load ptr, ptr %5, align 8, !tbaa !5
  %2571 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2570, i32 0, i32 37
  %2572 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2571, i32 0, i32 4
  %2573 = load ptr, ptr %7, align 8, !tbaa !5
  %2574 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2569, ptr noundef %2572, ptr noundef %2573)
  store double %2574, ptr %17, align 8, !tbaa !33
  %2575 = load double, ptr %17, align 8, !tbaa !33
  %2576 = load double, ptr %40, align 8, !tbaa !33
  %2577 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2575, double noundef %2576)
  br i1 %2577, label %2578, label %2593

2578:                                             ; preds = %2568
  %2579 = load double, ptr %17, align 8, !tbaa !33
  %2580 = load double, ptr %41, align 8, !tbaa !33
  %2581 = load ptr, ptr %5, align 8, !tbaa !5
  %2582 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2581, i32 0, i32 31
  %2583 = load double, ptr %2582, align 8, !tbaa !48
  %2584 = fmul double %2580, %2583
  %2585 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2579, double noundef %2584)
  br i1 %2585, label %2586, label %2593

2586:                                             ; preds = %2578
  %2587 = load ptr, ptr %5, align 8, !tbaa !5
  %2588 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2587, i32 0, i32 44
  %2589 = load i8, ptr %2588, align 8, !tbaa !37, !range !31, !noundef !32
  %2590 = trunc i8 %2589 to i1
  br i1 %2590, label %2591, label %2592

2591:                                             ; preds = %2586
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.762)
  br label %2592

2592:                                             ; preds = %2591, %2586
  store i8 1, ptr %35, align 1, !tbaa !9
  br label %2593

2593:                                             ; preds = %2592, %2578, %2568
  %2594 = load ptr, ptr %5, align 8, !tbaa !5
  %2595 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2594, i32 0, i32 39
  %2596 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2595, i32 0, i32 4
  %2597 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2596, i32 0, i32 4
  %2598 = load ptr, ptr %2597, align 8, !tbaa !29
  %2599 = getelementptr inbounds double, ptr %2598, i64 0
  %2600 = load double, ptr %2599, align 8, !tbaa !33
  store double %2600, ptr %18, align 8, !tbaa !33
  %2601 = load double, ptr %18, align 8, !tbaa !33
  %2602 = load double, ptr %40, align 8, !tbaa !33
  %2603 = fneg double %2602
  %2604 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2601, double noundef %2603)
  br i1 %2604, label %2605, label %2621

2605:                                             ; preds = %2593
  %2606 = load double, ptr %18, align 8, !tbaa !33
  %2607 = load double, ptr %41, align 8, !tbaa !33
  %2608 = fneg double %2607
  %2609 = load ptr, ptr %5, align 8, !tbaa !5
  %2610 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2609, i32 0, i32 32
  %2611 = load double, ptr %2610, align 8, !tbaa !49
  %2612 = fmul double %2608, %2611
  %2613 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2606, double noundef %2612)
  br i1 %2613, label %2614, label %2621

2614:                                             ; preds = %2605
  %2615 = load ptr, ptr %5, align 8, !tbaa !5
  %2616 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2615, i32 0, i32 44
  %2617 = load i8, ptr %2616, align 8, !tbaa !37, !range !31, !noundef !32
  %2618 = trunc i8 %2617 to i1
  br i1 %2618, label %2619, label %2620

2619:                                             ; preds = %2614
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.763)
  br label %2620

2620:                                             ; preds = %2619, %2614
  store i8 1, ptr %35, align 1, !tbaa !9
  br label %2621

2621:                                             ; preds = %2620, %2605, %2593
  %2622 = load i8, ptr %35, align 1, !tbaa !9, !range !31, !noundef !32
  %2623 = trunc i8 %2622 to i1
  br i1 %2623, label %2624, label %2636

2624:                                             ; preds = %2621
  %2625 = load double, ptr %40, align 8, !tbaa !33
  %2626 = load double, ptr %17, align 8, !tbaa !33
  %2627 = load double, ptr %18, align 8, !tbaa !33
  %2628 = load ptr, ptr %7, align 8, !tbaa !5
  %2629 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %2625, double noundef %2626, double noundef %2627, ptr noundef %2628)
  store double %2629, ptr %40, align 8, !tbaa !33
  %2630 = load ptr, ptr %5, align 8, !tbaa !5
  %2631 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2630, i32 0, i32 47
  %2632 = load i64, ptr %2631, align 8, !tbaa !56
  %2633 = add nsw i64 %2632, 1
  %2634 = load ptr, ptr %5, align 8, !tbaa !5
  %2635 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2634, i32 0, i32 47
  store i64 %2633, ptr %2635, align 8, !tbaa !56
  br label %2760

2636:                                             ; preds = %2621
  %2637 = load i8, ptr %32, align 1, !tbaa !9, !range !31, !noundef !32
  %2638 = trunc i8 %2637 to i1
  br i1 %2638, label %2639, label %2708

2639:                                             ; preds = %2636
  store double 1.000000e+00, ptr %17, align 8, !tbaa !33
  %2640 = load double, ptr %17, align 8, !tbaa !33
  %2641 = load i64, ptr %8, align 8, !tbaa !30
  %2642 = load ptr, ptr %5, align 8, !tbaa !5
  %2643 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2642, i32 0, i32 37
  %2644 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2643, i32 0, i32 4
  %2645 = load ptr, ptr %7, align 8, !tbaa !5
  %2646 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2641, ptr noundef %2644, ptr noundef %2645)
  %2647 = load ptr, ptr %7, align 8, !tbaa !5
  %2648 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2640, double noundef %2646, ptr noundef %2647)
  store double %2648, ptr %17, align 8, !tbaa !33
  %2649 = load double, ptr %17, align 8, !tbaa !33
  %2650 = load i64, ptr %10, align 8, !tbaa !30
  %2651 = load ptr, ptr %5, align 8, !tbaa !5
  %2652 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2651, i32 0, i32 37
  %2653 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2652, i32 0, i32 11
  %2654 = load ptr, ptr %7, align 8, !tbaa !5
  %2655 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2650, ptr noundef %2653, ptr noundef %2654)
  %2656 = load ptr, ptr %7, align 8, !tbaa !5
  %2657 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2649, double noundef %2655, ptr noundef %2656)
  store double %2657, ptr %17, align 8, !tbaa !33
  %2658 = load double, ptr %17, align 8, !tbaa !33
  %2659 = load i64, ptr %10, align 8, !tbaa !30
  %2660 = load ptr, ptr %5, align 8, !tbaa !5
  %2661 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2660, i32 0, i32 37
  %2662 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2661, i32 0, i32 12
  %2663 = load ptr, ptr %7, align 8, !tbaa !5
  %2664 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2659, ptr noundef %2662, ptr noundef %2663)
  %2665 = load ptr, ptr %7, align 8, !tbaa !5
  %2666 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2658, double noundef %2664, ptr noundef %2665)
  store double %2666, ptr %17, align 8, !tbaa !33
  %2667 = load double, ptr %17, align 8, !tbaa !33
  %2668 = load i64, ptr %10, align 8, !tbaa !30
  %2669 = load ptr, ptr %5, align 8, !tbaa !5
  %2670 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2669, i32 0, i32 37
  %2671 = getelementptr inbounds %"struct.alglib_impl::gipmvars", ptr %2670, i32 0, i32 13
  %2672 = load ptr, ptr %7, align 8, !tbaa !5
  %2673 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2668, ptr noundef %2671, ptr noundef %2672)
  %2674 = load ptr, ptr %7, align 8, !tbaa !5
  %2675 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2667, double noundef %2673, ptr noundef %2674)
  store double %2675, ptr %17, align 8, !tbaa !33
  %2676 = load double, ptr %17, align 8, !tbaa !33
  %2677 = load ptr, ptr %7, align 8, !tbaa !5
  %2678 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %2676, double noundef 7.500000e-01, ptr noundef %2677)
  %2679 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !33
  %2680 = fmul double %2678, %2679
  %2681 = load double, ptr @_ZN11alglib_implL10gipm_maxmuE, align 8, !tbaa !33
  %2682 = load ptr, ptr %7, align 8, !tbaa !5
  %2683 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2680, double noundef %2681, ptr noundef %2682)
  store double %2683, ptr %17, align 8, !tbaa !33
  %2684 = load double, ptr %17, align 8, !tbaa !33
  %2685 = load ptr, ptr %5, align 8, !tbaa !5
  %2686 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2685, i32 0, i32 33
  %2687 = load double, ptr %2686, align 8, !tbaa !53
  %2688 = fmul double 1.410000e+00, %2687
  %2689 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2684, double noundef %2688)
  br i1 %2689, label %2690, label %2707

2690:                                             ; preds = %2639
  %2691 = load ptr, ptr %5, align 8, !tbaa !5
  %2692 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2691, i32 0, i32 44
  %2693 = load i8, ptr %2692, align 8, !tbaa !37, !range !31, !noundef !32
  %2694 = trunc i8 %2693 to i1
  br i1 %2694, label %2695, label %2697

2695:                                             ; preds = %2690
  %2696 = load double, ptr %17, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.764, double noundef %2696)
  br label %2697

2697:                                             ; preds = %2695, %2690
  %2698 = load double, ptr %17, align 8, !tbaa !33
  %2699 = load ptr, ptr %5, align 8, !tbaa !5
  %2700 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2699, i32 0, i32 33
  store double %2698, ptr %2700, align 8, !tbaa !53
  store double 1.000000e+300, ptr %45, align 8, !tbaa !33
  store double 1.000000e+300, ptr %46, align 8, !tbaa !33
  store double 1.000000e+300, ptr %47, align 8, !tbaa !33
  %2701 = load ptr, ptr %5, align 8, !tbaa !5
  %2702 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2701, i32 0, i32 47
  %2703 = load i64, ptr %2702, align 8, !tbaa !56
  store i64 %2703, ptr %48, align 8, !tbaa !30
  %2704 = load ptr, ptr %5, align 8, !tbaa !5
  %2705 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2704, i32 0, i32 43
  %2706 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl9nlpfclearEPNS_9nlpfilterEPNS_8ae_stateE(ptr noundef %2705, ptr noundef %2706)
  br label %2707

2707:                                             ; preds = %2697, %2639
  br label %2708

2708:                                             ; preds = %2707, %2636
  %2709 = load double, ptr %29, align 8, !tbaa !33
  store double %2709, ptr %50, align 8, !tbaa !33
  %2710 = load double, ptr %30, align 8, !tbaa !33
  store double %2710, ptr %51, align 8, !tbaa !33
  %2711 = load double, ptr %31, align 8, !tbaa !33
  store double %2711, ptr %52, align 8, !tbaa !33
  %2712 = load ptr, ptr %5, align 8, !tbaa !5
  %2713 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2712, i32 0, i32 34
  %2714 = load double, ptr %2713, align 8, !tbaa !51
  %2715 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2714, double noundef 0.000000e+00)
  br i1 %2715, label %2716, label %2753

2716:                                             ; preds = %2708
  %2717 = load ptr, ptr %5, align 8, !tbaa !5
  %2718 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2717, i32 0, i32 34
  %2719 = load double, ptr %2718, align 8, !tbaa !51
  %2720 = load ptr, ptr %5, align 8, !tbaa !5
  %2721 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2720, i32 0, i32 35
  %2722 = load double, ptr %2721, align 8, !tbaa !52
  %2723 = fmul double %2719, %2722
  %2724 = load ptr, ptr %5, align 8, !tbaa !5
  %2725 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2724, i32 0, i32 34
  store double %2723, ptr %2725, align 8, !tbaa !51
  %2726 = load ptr, ptr %5, align 8, !tbaa !5
  %2727 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2726, i32 0, i32 35
  %2728 = load double, ptr %2727, align 8, !tbaa !52
  %2729 = load double, ptr @_ZN11alglib_implL19gipm_lambdadecayaccE, align 8, !tbaa !33
  %2730 = fmul double %2728, %2729
  %2731 = load ptr, ptr %7, align 8, !tbaa !5
  %2732 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2731)
  %2733 = load ptr, ptr %7, align 8, !tbaa !5
  %2734 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2732, ptr noundef %2733)
  %2735 = load ptr, ptr %7, align 8, !tbaa !5
  %2736 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2730, double noundef %2734, ptr noundef %2735)
  %2737 = load ptr, ptr %5, align 8, !tbaa !5
  %2738 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2737, i32 0, i32 35
  store double %2736, ptr %2738, align 8, !tbaa !52
  %2739 = load ptr, ptr %5, align 8, !tbaa !5
  %2740 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2739, i32 0, i32 34
  %2741 = load double, ptr %2740, align 8, !tbaa !51
  %2742 = load ptr, ptr %5, align 8, !tbaa !5
  %2743 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2742, i32 0, i32 33
  %2744 = load double, ptr %2743, align 8, !tbaa !53
  %2745 = fmul double %2744, 5.000000e-16
  %2746 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2741, double noundef %2745)
  br i1 %2746, label %2747, label %2752

2747:                                             ; preds = %2716
  %2748 = load ptr, ptr %5, align 8, !tbaa !5
  %2749 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2748, i32 0, i32 34
  store double 0.000000e+00, ptr %2749, align 8, !tbaa !51
  %2750 = load ptr, ptr %5, align 8, !tbaa !5
  %2751 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2750, i32 0, i32 35
  store double 0.000000e+00, ptr %2751, align 8, !tbaa !52
  br label %2752

2752:                                             ; preds = %2747, %2716
  br label %2753

2753:                                             ; preds = %2752, %2708
  %2754 = load ptr, ptr %5, align 8, !tbaa !5
  %2755 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2754, i32 0, i32 47
  %2756 = load i64, ptr %2755, align 8, !tbaa !56
  %2757 = add nsw i64 %2756, 1
  %2758 = load ptr, ptr %5, align 8, !tbaa !5
  %2759 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2758, i32 0, i32 47
  store i64 %2757, ptr %2759, align 8, !tbaa !56
  br label %1259

2760:                                             ; preds = %2624, %2499, %1758, %1661, %1617, %1598, %1282, %1262
  store i8 0, ptr %32, align 1, !tbaa !9
  %2761 = load ptr, ptr %5, align 8, !tbaa !5
  %2762 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2761, i32 0, i32 44
  %2763 = load i8, ptr %2762, align 8, !tbaa !37, !range !31, !noundef !32
  %2764 = trunc i8 %2763 to i1
  br i1 %2764, label %2765, label %2766

2765:                                             ; preds = %2760
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.765)
  br label %2766

2766:                                             ; preds = %2765, %2760
  %2767 = load i8, ptr %6, align 1, !tbaa !9, !range !31, !noundef !32
  %2768 = trunc i8 %2767 to i1
  br i1 %2768, label %2769, label %2778

2769:                                             ; preds = %2766
  %2770 = load ptr, ptr %5, align 8, !tbaa !5
  %2771 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2770, i32 0, i32 44
  %2772 = load i8, ptr %2771, align 8, !tbaa !37, !range !31, !noundef !32
  %2773 = trunc i8 %2772 to i1
  br i1 %2773, label %2774, label %2775

2774:                                             ; preds = %2769
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.766)
  br label %2775

2775:                                             ; preds = %2774, %2769
  %2776 = load ptr, ptr %5, align 8, !tbaa !5
  %2777 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2776, i32 0, i32 48
  store i64 8, ptr %2777, align 8, !tbaa !59
  br label %2964

2778:                                             ; preds = %2766
  %2779 = load ptr, ptr %5, align 8, !tbaa !5
  %2780 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2779, i32 0, i32 48
  %2781 = load i64, ptr %2780, align 8, !tbaa !59
  %2782 = icmp ne i64 %2781, 0
  br i1 %2782, label %2783, label %2784

2783:                                             ; preds = %2778
  br label %2964

2784:                                             ; preds = %2778
  %2785 = load i8, ptr %35, align 1, !tbaa !9, !range !31, !noundef !32
  %2786 = trunc i8 %2785 to i1
  br i1 %2786, label %2787, label %2841

2787:                                             ; preds = %2784
  %2788 = load ptr, ptr %5, align 8, !tbaa !5
  %2789 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2788, i32 0, i32 33
  %2790 = load double, ptr %2789, align 8, !tbaa !53
  %2791 = load double, ptr %39, align 8, !tbaa !33
  %2792 = fmul double 1.001000e+00, %2791
  %2793 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2790, double noundef %2792)
  br i1 %2793, label %2794, label %2813

2794:                                             ; preds = %2787
  %2795 = load double, ptr %40, align 8, !tbaa !33
  %2796 = load double, ptr @_ZN11alglib_implL14gipm_maxbigvalE, align 8, !tbaa !33
  %2797 = fmul double 0x3FEFF7CED916872B, %2796
  %2798 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2795, double noundef %2797)
  br i1 %2798, label %2799, label %2813

2799:                                             ; preds = %2794
  %2800 = load double, ptr %41, align 8, !tbaa !33
  %2801 = load double, ptr @_ZN11alglib_implL17gipm_maxbiggrowthE, align 8, !tbaa !33
  %2802 = fmul double 0x3FEFF7CED916872B, %2801
  %2803 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2800, double noundef %2802)
  br i1 %2803, label %2804, label %2813

2804:                                             ; preds = %2799
  %2805 = load ptr, ptr %5, align 8, !tbaa !5
  %2806 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2805, i32 0, i32 44
  %2807 = load i8, ptr %2806, align 8, !tbaa !37, !range !31, !noundef !32
  %2808 = trunc i8 %2807 to i1
  br i1 %2808, label %2809, label %2810

2809:                                             ; preds = %2804
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.767)
  br label %2810

2810:                                             ; preds = %2809, %2804
  %2811 = load ptr, ptr %5, align 8, !tbaa !5
  %2812 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2811, i32 0, i32 48
  store i64 -4, ptr %2812, align 8, !tbaa !59
  br label %2964

2813:                                             ; preds = %2799, %2794, %2787
  %2814 = load ptr, ptr %5, align 8, !tbaa !5
  %2815 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2814, i32 0, i32 44
  %2816 = load i8, ptr %2815, align 8, !tbaa !37, !range !31, !noundef !32
  %2817 = trunc i8 %2816 to i1
  br i1 %2817, label %2818, label %2819

2818:                                             ; preds = %2813
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.768)
  br label %2819

2819:                                             ; preds = %2818, %2813
  %2820 = load double, ptr %39, align 8, !tbaa !33
  %2821 = load ptr, ptr %5, align 8, !tbaa !5
  %2822 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2821, i32 0, i32 33
  %2823 = load double, ptr %2822, align 8, !tbaa !53
  %2824 = fmul double 1.000000e-02, %2823
  %2825 = load ptr, ptr %7, align 8, !tbaa !5
  %2826 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2820, double noundef %2824, ptr noundef %2825)
  %2827 = load ptr, ptr %5, align 8, !tbaa !5
  %2828 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2827, i32 0, i32 33
  store double %2826, ptr %2828, align 8, !tbaa !53
  %2829 = load double, ptr @_ZN11alglib_implL13gipm_vggrowthE, align 8, !tbaa !33
  %2830 = load double, ptr %40, align 8, !tbaa !33
  %2831 = fmul double %2829, %2830
  %2832 = load double, ptr @_ZN11alglib_implL14gipm_maxbigvalE, align 8, !tbaa !33
  %2833 = load ptr, ptr %7, align 8, !tbaa !5
  %2834 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2831, double noundef %2832, ptr noundef %2833)
  store double %2834, ptr %40, align 8, !tbaa !33
  %2835 = load double, ptr @_ZN11alglib_implL13gipm_vggrowthE, align 8, !tbaa !33
  %2836 = load double, ptr %41, align 8, !tbaa !33
  %2837 = fmul double %2835, %2836
  %2838 = load double, ptr @_ZN11alglib_implL17gipm_maxbiggrowthE, align 8, !tbaa !33
  %2839 = load ptr, ptr %7, align 8, !tbaa !5
  %2840 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2837, double noundef %2838, ptr noundef %2839)
  store double %2840, ptr %41, align 8, !tbaa !33
  br label %1253

2841:                                             ; preds = %2784
  %2842 = load ptr, ptr %5, align 8, !tbaa !5
  %2843 = load ptr, ptr %5, align 8, !tbaa !5
  %2844 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2843, i32 0, i32 37
  %2845 = load ptr, ptr %5, align 8, !tbaa !5
  %2846 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2845, i32 0, i32 39
  %2847 = load ptr, ptr %5, align 8, !tbaa !5
  %2848 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2847, i32 0, i32 51
  %2849 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef %2842, ptr noundef %2844, ptr noundef %2846, double noundef 0.000000e+00, ptr noundef %2848, ptr noundef %29, ptr noundef %30, ptr noundef %31, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %2849)
  %2850 = load ptr, ptr %5, align 8, !tbaa !5
  %2851 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2850, i32 0, i32 44
  %2852 = load i8, ptr %2851, align 8, !tbaa !37, !range !31, !noundef !32
  %2853 = trunc i8 %2852 to i1
  br i1 %2853, label %2854, label %2858

2854:                                             ; preds = %2841
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.769)
  %2855 = load double, ptr %29, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.736, double noundef %2855)
  %2856 = load double, ptr %30, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.737, double noundef %2856)
  %2857 = load double, ptr %31, align 8, !tbaa !33
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.738, double noundef %2857)
  br label %2858

2858:                                             ; preds = %2854, %2841
  %2859 = load double, ptr %29, align 8, !tbaa !33
  %2860 = load double, ptr %30, align 8, !tbaa !33
  %2861 = load double, ptr %31, align 8, !tbaa !33
  %2862 = load ptr, ptr %7, align 8, !tbaa !5
  %2863 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2859, double noundef %2860, double noundef %2861, ptr noundef %2862)
  %2864 = load ptr, ptr %5, align 8, !tbaa !5
  %2865 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2864, i32 0, i32 41
  %2866 = load double, ptr %2865, align 8, !tbaa !54
  %2867 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2863, double noundef %2866)
  br i1 %2867, label %2868, label %2892

2868:                                             ; preds = %2858
  %2869 = load ptr, ptr %5, align 8, !tbaa !5
  %2870 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2869, i32 0, i32 37
  %2871 = load ptr, ptr %5, align 8, !tbaa !5
  %2872 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2871, i32 0, i32 38
  %2873 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef %2870, ptr noundef %2872, ptr noundef %2873)
  %2874 = load ptr, ptr %5, align 8, !tbaa !5
  %2875 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2874, i32 0, i32 39
  %2876 = load ptr, ptr %5, align 8, !tbaa !5
  %2877 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2876, i32 0, i32 40
  %2878 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2875, ptr noundef %2877, ptr noundef %2878)
  %2879 = load double, ptr %29, align 8, !tbaa !33
  %2880 = load double, ptr %30, align 8, !tbaa !33
  %2881 = load double, ptr %31, align 8, !tbaa !33
  %2882 = load ptr, ptr %7, align 8, !tbaa !5
  %2883 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2879, double noundef %2880, double noundef %2881, ptr noundef %2882)
  %2884 = load ptr, ptr %5, align 8, !tbaa !5
  %2885 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2884, i32 0, i32 41
  store double %2883, ptr %2885, align 8, !tbaa !54
  %2886 = load ptr, ptr %5, align 8, !tbaa !5
  %2887 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2886, i32 0, i32 44
  %2888 = load i8, ptr %2887, align 8, !tbaa !37, !range !31, !noundef !32
  %2889 = trunc i8 %2888 to i1
  br i1 %2889, label %2890, label %2891

2890:                                             ; preds = %2868
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.770)
  br label %2891

2891:                                             ; preds = %2890, %2868
  br label %2899

2892:                                             ; preds = %2858
  %2893 = load ptr, ptr %5, align 8, !tbaa !5
  %2894 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2893, i32 0, i32 44
  %2895 = load i8, ptr %2894, align 8, !tbaa !37, !range !31, !noundef !32
  %2896 = trunc i8 %2895 to i1
  br i1 %2896, label %2897, label %2898

2897:                                             ; preds = %2892
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.771)
  br label %2898

2898:                                             ; preds = %2897, %2892
  br label %2899

2899:                                             ; preds = %2898, %2891
  %2900 = load double, ptr %29, align 8, !tbaa !33
  %2901 = load double, ptr %17, align 8, !tbaa !33
  %2902 = fdiv double %2900, %2901
  %2903 = load double, ptr %30, align 8, !tbaa !33
  %2904 = load double, ptr %18, align 8, !tbaa !33
  %2905 = fdiv double %2903, %2904
  %2906 = load double, ptr %31, align 8, !tbaa !33
  %2907 = load double, ptr %19, align 8, !tbaa !33
  %2908 = fdiv double %2906, %2907
  %2909 = load ptr, ptr %7, align 8, !tbaa !5
  %2910 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2902, double noundef %2905, double noundef %2908, ptr noundef %2909)
  %2911 = load ptr, ptr %5, align 8, !tbaa !5
  %2912 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2911, i32 0, i32 10
  %2913 = load double, ptr %2912, align 8, !tbaa !50
  %2914 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2910, double noundef %2913)
  br i1 %2914, label %2915, label %2927

2915:                                             ; preds = %2899
  %2916 = load ptr, ptr %5, align 8, !tbaa !5
  %2917 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2916, i32 0, i32 44
  %2918 = load i8, ptr %2917, align 8, !tbaa !37, !range !31, !noundef !32
  %2919 = trunc i8 %2918 to i1
  br i1 %2919, label %2920, label %2924

2920:                                             ; preds = %2915
  %2921 = load ptr, ptr %5, align 8, !tbaa !5
  %2922 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2921, i32 0, i32 10
  %2923 = load double, ptr %2922, align 8, !tbaa !50
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.772, double noundef %2923)
  br label %2924

2924:                                             ; preds = %2920, %2915
  %2925 = load ptr, ptr %5, align 8, !tbaa !5
  %2926 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2925, i32 0, i32 48
  store i64 2, ptr %2926, align 8, !tbaa !59
  br label %2964

2927:                                             ; preds = %2899
  %2928 = load ptr, ptr %5, align 8, !tbaa !5
  %2929 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2928, i32 0, i32 33
  %2930 = load double, ptr %2929, align 8, !tbaa !53
  %2931 = load double, ptr %39, align 8, !tbaa !33
  %2932 = fmul double 1.001000e+00, %2931
  %2933 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2930, double noundef %2932)
  br i1 %2933, label %2934, label %2943

2934:                                             ; preds = %2927
  %2935 = load ptr, ptr %5, align 8, !tbaa !5
  %2936 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2935, i32 0, i32 44
  %2937 = load i8, ptr %2936, align 8, !tbaa !37, !range !31, !noundef !32
  %2938 = trunc i8 %2937 to i1
  br i1 %2938, label %2939, label %2940

2939:                                             ; preds = %2934
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.773)
  br label %2940

2940:                                             ; preds = %2939, %2934
  %2941 = load ptr, ptr %5, align 8, !tbaa !5
  %2942 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2941, i32 0, i32 48
  store i64 7, ptr %2942, align 8, !tbaa !59
  br label %2964

2943:                                             ; preds = %2927
  %2944 = load ptr, ptr %5, align 8, !tbaa !5
  %2945 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL23gipm_tightenrelaxboundsEPNS_9gipmstateEPNS_8ae_stateE(ptr noundef %2944, ptr noundef %2945)
  %2946 = load double, ptr %39, align 8, !tbaa !33
  %2947 = load double, ptr @_ZN11alglib_implL18gipm_mudecaylinearE, align 8, !tbaa !33
  %2948 = load ptr, ptr %5, align 8, !tbaa !5
  %2949 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2948, i32 0, i32 33
  %2950 = load double, ptr %2949, align 8, !tbaa !53
  %2951 = fmul double %2947, %2950
  %2952 = load ptr, ptr %5, align 8, !tbaa !5
  %2953 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2952, i32 0, i32 33
  %2954 = load double, ptr %2953, align 8, !tbaa !53
  %2955 = load double, ptr @_ZN11alglib_implL17gipm_mudecaypowerE, align 8, !tbaa !33
  %2956 = load ptr, ptr %7, align 8, !tbaa !5
  %2957 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %2954, double noundef %2955, ptr noundef %2956)
  %2958 = load ptr, ptr %7, align 8, !tbaa !5
  %2959 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2951, double noundef %2957, ptr noundef %2958)
  %2960 = load ptr, ptr %7, align 8, !tbaa !5
  %2961 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2946, double noundef %2959, ptr noundef %2960)
  %2962 = load ptr, ptr %5, align 8, !tbaa !5
  %2963 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2962, i32 0, i32 33
  store double %2961, ptr %2963, align 8, !tbaa !53
  br label %1253

2964:                                             ; preds = %2940, %2924, %2810, %2783, %2775
  %2965 = load ptr, ptr %5, align 8, !tbaa !5
  %2966 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2965, i32 0, i32 44
  %2967 = load i8, ptr %2966, align 8, !tbaa !37, !range !31, !noundef !32
  %2968 = trunc i8 %2967 to i1
  br i1 %2968, label %2969, label %2970

2969:                                             ; preds = %2964
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.774)
  br label %2970

2970:                                             ; preds = %2969, %2964
  %2971 = load ptr, ptr %5, align 8, !tbaa !5
  %2972 = load ptr, ptr %5, align 8, !tbaa !5
  %2973 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2972, i32 0, i32 37
  %2974 = load ptr, ptr %5, align 8, !tbaa !5
  %2975 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2974, i32 0, i32 39
  %2976 = load ptr, ptr %5, align 8, !tbaa !5
  %2977 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2976, i32 0, i32 51
  %2978 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef %2971, ptr noundef %2973, ptr noundef %2975, double noundef 0.000000e+00, ptr noundef %2977, ptr noundef %29, ptr noundef %30, ptr noundef %31, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %2978)
  %2979 = load double, ptr %29, align 8, !tbaa !33
  %2980 = load double, ptr %30, align 8, !tbaa !33
  %2981 = load double, ptr %31, align 8, !tbaa !33
  %2982 = load ptr, ptr %7, align 8, !tbaa !5
  %2983 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2979, double noundef %2980, double noundef %2981, ptr noundef %2982)
  %2984 = load ptr, ptr %5, align 8, !tbaa !5
  %2985 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2984, i32 0, i32 41
  %2986 = load double, ptr %2985, align 8, !tbaa !54
  %2987 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2983, double noundef %2986)
  br i1 %2987, label %2988, label %3013

2988:                                             ; preds = %2970
  %2989 = load ptr, ptr %5, align 8, !tbaa !5
  %2990 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2989, i32 0, i32 38
  %2991 = load ptr, ptr %5, align 8, !tbaa !5
  %2992 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2991, i32 0, i32 37
  %2993 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef %2990, ptr noundef %2992, ptr noundef %2993)
  %2994 = load ptr, ptr %5, align 8, !tbaa !5
  %2995 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2994, i32 0, i32 40
  %2996 = load ptr, ptr %5, align 8, !tbaa !5
  %2997 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2996, i32 0, i32 39
  %2998 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2995, ptr noundef %2997, ptr noundef %2998)
  %2999 = load ptr, ptr %5, align 8, !tbaa !5
  %3000 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %2999, i32 0, i32 44
  %3001 = load i8, ptr %3000, align 8, !tbaa !37, !range !31, !noundef !32
  %3002 = trunc i8 %3001 to i1
  br i1 %3002, label %3003, label %3012

3003:                                             ; preds = %2988
  %3004 = load double, ptr %29, align 8, !tbaa !33
  %3005 = load double, ptr %30, align 8, !tbaa !33
  %3006 = load double, ptr %31, align 8, !tbaa !33
  %3007 = load ptr, ptr %7, align 8, !tbaa !5
  %3008 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %3004, double noundef %3005, double noundef %3006, ptr noundef %3007)
  %3009 = load ptr, ptr %5, align 8, !tbaa !5
  %3010 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3009, i32 0, i32 41
  %3011 = load double, ptr %3010, align 8, !tbaa !54
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.775, double noundef %3008, double noundef %3011)
  br label %3012

3012:                                             ; preds = %3003, %2988
  br label %3013

3013:                                             ; preds = %3012, %2970
  %3014 = load i8, ptr %33, align 1, !tbaa !9, !range !31, !noundef !32
  %3015 = trunc i8 %3014 to i1
  br i1 %3015, label %3016, label %3027

3016:                                             ; preds = %3013
  %3017 = load i8, ptr %34, align 1, !tbaa !9, !range !31, !noundef !32
  %3018 = trunc i8 %3017 to i1
  %3019 = load ptr, ptr %5, align 8, !tbaa !5
  %3020 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3019, i32 0, i32 48
  %3021 = load i64, ptr %3020, align 8, !tbaa !59
  %3022 = add nsw i64 %3021, 800
  %3023 = load ptr, ptr %7, align 8, !tbaa !5
  %3024 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %3018, i64 noundef -8, i64 noundef %3022, ptr noundef %3023)
  %3025 = load ptr, ptr %5, align 8, !tbaa !5
  %3026 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3025, i32 0, i32 48
  store i64 %3024, ptr %3026, align 8, !tbaa !59
  br label %3027

3027:                                             ; preds = %3016, %3013
  %3028 = load ptr, ptr %5, align 8, !tbaa !5
  %3029 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3028, i32 0, i32 49
  %3030 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %3029, ptr noundef %3030)
  %3031 = load ptr, ptr %5, align 8, !tbaa !5
  %3032 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3031, i32 0, i32 44
  %3033 = load i8, ptr %3032, align 8, !tbaa !37, !range !31, !noundef !32
  %3034 = trunc i8 %3033 to i1
  br i1 %3034, label %3035, label %3061

3035:                                             ; preds = %3027
  %3036 = load i8, ptr %33, align 1, !tbaa !9, !range !31, !noundef !32
  %3037 = trunc i8 %3036 to i1
  br i1 %3037, label %3038, label %3042

3038:                                             ; preds = %3035
  %3039 = load i8, ptr %34, align 1, !tbaa !9, !range !31, !noundef !32
  %3040 = trunc i8 %3039 to i1
  br i1 %3040, label %3041, label %3042

3041:                                             ; preds = %3038
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.776)
  br label %3042

3042:                                             ; preds = %3041, %3038, %3035
  %3043 = load ptr, ptr %5, align 8, !tbaa !5
  %3044 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3043, i32 0, i32 39
  %3045 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3044, i32 0, i32 4
  %3046 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3045, i32 0, i32 4
  %3047 = load ptr, ptr %3046, align 8, !tbaa !29
  %3048 = getelementptr inbounds double, ptr %3047, i64 0
  %3049 = load double, ptr %3048, align 8, !tbaa !33
  %3050 = load ptr, ptr %5, align 8, !tbaa !5
  %3051 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3050, i32 0, i32 9
  %3052 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3051, i32 0, i32 4
  %3053 = load ptr, ptr %3052, align 8, !tbaa !29
  %3054 = getelementptr inbounds double, ptr %3053, i64 0
  %3055 = load double, ptr %3054, align 8, !tbaa !33
  %3056 = fmul double %3049, %3055
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.777, double noundef %3056)
  %3057 = load ptr, ptr %5, align 8, !tbaa !5
  %3058 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3057, i32 0, i32 49
  %3059 = load ptr, ptr %7, align 8, !tbaa !5
  %3060 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %3058, ptr noundef %3059)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.778, double noundef %3060)
  br label %3061

3061:                                             ; preds = %3042, %3027
  store i8 0, ptr %53, align 1, !tbaa !9
  %3062 = load i8, ptr %53, align 1, !tbaa !9, !range !31, !noundef !32
  %3063 = trunc i8 %3062 to i1
  store i1 %3063, ptr %4, align 1
  store i32 1, ptr %54, align 4
  br label %3396

3064:                                             ; preds = %2455, %2225, %1976, %1920, %1766, %785
  store i8 1, ptr %53, align 1, !tbaa !9
  %3065 = load i64, ptr %8, align 8, !tbaa !30
  %3066 = load ptr, ptr %5, align 8, !tbaa !5
  %3067 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3066, i32 0, i32 60
  %3068 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3067, i32 0, i32 1
  %3069 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3068, i32 0, i32 4
  %3070 = load ptr, ptr %3069, align 8, !tbaa !29
  %3071 = getelementptr inbounds i64, ptr %3070, i64 0
  store i64 %3065, ptr %3071, align 8, !tbaa !30
  %3072 = load i64, ptr %9, align 8, !tbaa !30
  %3073 = load ptr, ptr %5, align 8, !tbaa !5
  %3074 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3073, i32 0, i32 60
  %3075 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3074, i32 0, i32 1
  %3076 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3075, i32 0, i32 4
  %3077 = load ptr, ptr %3076, align 8, !tbaa !29
  %3078 = getelementptr inbounds i64, ptr %3077, i64 1
  store i64 %3072, ptr %3078, align 8, !tbaa !30
  %3079 = load i64, ptr %10, align 8, !tbaa !30
  %3080 = load ptr, ptr %5, align 8, !tbaa !5
  %3081 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3080, i32 0, i32 60
  %3082 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3081, i32 0, i32 1
  %3083 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3082, i32 0, i32 4
  %3084 = load ptr, ptr %3083, align 8, !tbaa !29
  %3085 = getelementptr inbounds i64, ptr %3084, i64 2
  store i64 %3079, ptr %3085, align 8, !tbaa !30
  %3086 = load i64, ptr %11, align 8, !tbaa !30
  %3087 = load ptr, ptr %5, align 8, !tbaa !5
  %3088 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3087, i32 0, i32 60
  %3089 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3088, i32 0, i32 1
  %3090 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3089, i32 0, i32 4
  %3091 = load ptr, ptr %3090, align 8, !tbaa !29
  %3092 = getelementptr inbounds i64, ptr %3091, i64 3
  store i64 %3086, ptr %3092, align 8, !tbaa !30
  %3093 = load i64, ptr %12, align 8, !tbaa !30
  %3094 = load ptr, ptr %5, align 8, !tbaa !5
  %3095 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3094, i32 0, i32 60
  %3096 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3095, i32 0, i32 1
  %3097 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3096, i32 0, i32 4
  %3098 = load ptr, ptr %3097, align 8, !tbaa !29
  %3099 = getelementptr inbounds i64, ptr %3098, i64 4
  store i64 %3093, ptr %3099, align 8, !tbaa !30
  %3100 = load i64, ptr %13, align 8, !tbaa !30
  %3101 = load ptr, ptr %5, align 8, !tbaa !5
  %3102 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3101, i32 0, i32 60
  %3103 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3102, i32 0, i32 1
  %3104 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3103, i32 0, i32 4
  %3105 = load ptr, ptr %3104, align 8, !tbaa !29
  %3106 = getelementptr inbounds i64, ptr %3105, i64 5
  store i64 %3100, ptr %3106, align 8, !tbaa !30
  %3107 = load i64, ptr %14, align 8, !tbaa !30
  %3108 = load ptr, ptr %5, align 8, !tbaa !5
  %3109 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3108, i32 0, i32 60
  %3110 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3109, i32 0, i32 1
  %3111 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3110, i32 0, i32 4
  %3112 = load ptr, ptr %3111, align 8, !tbaa !29
  %3113 = getelementptr inbounds i64, ptr %3112, i64 6
  store i64 %3107, ptr %3113, align 8, !tbaa !30
  %3114 = load i64, ptr %15, align 8, !tbaa !30
  %3115 = load ptr, ptr %5, align 8, !tbaa !5
  %3116 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3115, i32 0, i32 60
  %3117 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3116, i32 0, i32 1
  %3118 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3117, i32 0, i32 4
  %3119 = load ptr, ptr %3118, align 8, !tbaa !29
  %3120 = getelementptr inbounds i64, ptr %3119, i64 7
  store i64 %3114, ptr %3120, align 8, !tbaa !30
  %3121 = load i64, ptr %16, align 8, !tbaa !30
  %3122 = load ptr, ptr %5, align 8, !tbaa !5
  %3123 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3122, i32 0, i32 60
  %3124 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3123, i32 0, i32 1
  %3125 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3124, i32 0, i32 4
  %3126 = load ptr, ptr %3125, align 8, !tbaa !29
  %3127 = getelementptr inbounds i64, ptr %3126, i64 8
  store i64 %3121, ptr %3127, align 8, !tbaa !30
  %3128 = load i64, ptr %42, align 8, !tbaa !30
  %3129 = load ptr, ptr %5, align 8, !tbaa !5
  %3130 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3129, i32 0, i32 60
  %3131 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3130, i32 0, i32 1
  %3132 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3131, i32 0, i32 4
  %3133 = load ptr, ptr %3132, align 8, !tbaa !29
  %3134 = getelementptr inbounds i64, ptr %3133, i64 9
  store i64 %3128, ptr %3134, align 8, !tbaa !30
  %3135 = load i64, ptr %48, align 8, !tbaa !30
  %3136 = load ptr, ptr %5, align 8, !tbaa !5
  %3137 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3136, i32 0, i32 60
  %3138 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3137, i32 0, i32 1
  %3139 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3138, i32 0, i32 4
  %3140 = load ptr, ptr %3139, align 8, !tbaa !29
  %3141 = getelementptr inbounds i64, ptr %3140, i64 10
  store i64 %3135, ptr %3141, align 8, !tbaa !30
  %3142 = load i64, ptr %49, align 8, !tbaa !30
  %3143 = load ptr, ptr %5, align 8, !tbaa !5
  %3144 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3143, i32 0, i32 60
  %3145 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3144, i32 0, i32 1
  %3146 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3145, i32 0, i32 4
  %3147 = load ptr, ptr %3146, align 8, !tbaa !29
  %3148 = getelementptr inbounds i64, ptr %3147, i64 11
  store i64 %3142, ptr %3148, align 8, !tbaa !30
  %3149 = load i8, ptr %32, align 1, !tbaa !9, !range !31, !noundef !32
  %3150 = trunc i8 %3149 to i1
  %3151 = load ptr, ptr %5, align 8, !tbaa !5
  %3152 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3151, i32 0, i32 60
  %3153 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3152, i32 0, i32 2
  %3154 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3153, i32 0, i32 4
  %3155 = load ptr, ptr %3154, align 8, !tbaa !29
  %3156 = getelementptr inbounds i8, ptr %3155, i64 0
  %3157 = zext i1 %3150 to i8
  store i8 %3157, ptr %3156, align 1, !tbaa !9
  %3158 = load i8, ptr %33, align 1, !tbaa !9, !range !31, !noundef !32
  %3159 = trunc i8 %3158 to i1
  %3160 = load ptr, ptr %5, align 8, !tbaa !5
  %3161 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3160, i32 0, i32 60
  %3162 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3161, i32 0, i32 2
  %3163 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3162, i32 0, i32 4
  %3164 = load ptr, ptr %3163, align 8, !tbaa !29
  %3165 = getelementptr inbounds i8, ptr %3164, i64 1
  %3166 = zext i1 %3159 to i8
  store i8 %3166, ptr %3165, align 1, !tbaa !9
  %3167 = load i8, ptr %34, align 1, !tbaa !9, !range !31, !noundef !32
  %3168 = trunc i8 %3167 to i1
  %3169 = load ptr, ptr %5, align 8, !tbaa !5
  %3170 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3169, i32 0, i32 60
  %3171 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3170, i32 0, i32 2
  %3172 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3171, i32 0, i32 4
  %3173 = load ptr, ptr %3172, align 8, !tbaa !29
  %3174 = getelementptr inbounds i8, ptr %3173, i64 2
  %3175 = zext i1 %3168 to i8
  store i8 %3175, ptr %3174, align 1, !tbaa !9
  %3176 = load i8, ptr %35, align 1, !tbaa !9, !range !31, !noundef !32
  %3177 = trunc i8 %3176 to i1
  %3178 = load ptr, ptr %5, align 8, !tbaa !5
  %3179 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3178, i32 0, i32 60
  %3180 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3179, i32 0, i32 2
  %3181 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3180, i32 0, i32 4
  %3182 = load ptr, ptr %3181, align 8, !tbaa !29
  %3183 = getelementptr inbounds i8, ptr %3182, i64 3
  %3184 = zext i1 %3177 to i8
  store i8 %3184, ptr %3183, align 1, !tbaa !9
  %3185 = load i8, ptr %36, align 1, !tbaa !9, !range !31, !noundef !32
  %3186 = trunc i8 %3185 to i1
  %3187 = load ptr, ptr %5, align 8, !tbaa !5
  %3188 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3187, i32 0, i32 60
  %3189 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3188, i32 0, i32 2
  %3190 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3189, i32 0, i32 4
  %3191 = load ptr, ptr %3190, align 8, !tbaa !29
  %3192 = getelementptr inbounds i8, ptr %3191, i64 4
  %3193 = zext i1 %3186 to i8
  store i8 %3193, ptr %3192, align 1, !tbaa !9
  %3194 = load i8, ptr %37, align 1, !tbaa !9, !range !31, !noundef !32
  %3195 = trunc i8 %3194 to i1
  %3196 = load ptr, ptr %5, align 8, !tbaa !5
  %3197 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3196, i32 0, i32 60
  %3198 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3197, i32 0, i32 2
  %3199 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3198, i32 0, i32 4
  %3200 = load ptr, ptr %3199, align 8, !tbaa !29
  %3201 = getelementptr inbounds i8, ptr %3200, i64 5
  %3202 = zext i1 %3195 to i8
  store i8 %3202, ptr %3201, align 1, !tbaa !9
  %3203 = load i8, ptr %38, align 1, !tbaa !9, !range !31, !noundef !32
  %3204 = trunc i8 %3203 to i1
  %3205 = load ptr, ptr %5, align 8, !tbaa !5
  %3206 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3205, i32 0, i32 60
  %3207 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3206, i32 0, i32 2
  %3208 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3207, i32 0, i32 4
  %3209 = load ptr, ptr %3208, align 8, !tbaa !29
  %3210 = getelementptr inbounds i8, ptr %3209, i64 6
  %3211 = zext i1 %3204 to i8
  store i8 %3211, ptr %3210, align 1, !tbaa !9
  %3212 = load double, ptr %17, align 8, !tbaa !33
  %3213 = load ptr, ptr %5, align 8, !tbaa !5
  %3214 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3213, i32 0, i32 60
  %3215 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3214, i32 0, i32 3
  %3216 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3215, i32 0, i32 4
  %3217 = load ptr, ptr %3216, align 8, !tbaa !29
  %3218 = getelementptr inbounds double, ptr %3217, i64 0
  store double %3212, ptr %3218, align 8, !tbaa !33
  %3219 = load double, ptr %18, align 8, !tbaa !33
  %3220 = load ptr, ptr %5, align 8, !tbaa !5
  %3221 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3220, i32 0, i32 60
  %3222 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3221, i32 0, i32 3
  %3223 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3222, i32 0, i32 4
  %3224 = load ptr, ptr %3223, align 8, !tbaa !29
  %3225 = getelementptr inbounds double, ptr %3224, i64 1
  store double %3219, ptr %3225, align 8, !tbaa !33
  %3226 = load double, ptr %19, align 8, !tbaa !33
  %3227 = load ptr, ptr %5, align 8, !tbaa !5
  %3228 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3227, i32 0, i32 60
  %3229 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3228, i32 0, i32 3
  %3230 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3229, i32 0, i32 4
  %3231 = load ptr, ptr %3230, align 8, !tbaa !29
  %3232 = getelementptr inbounds double, ptr %3231, i64 2
  store double %3226, ptr %3232, align 8, !tbaa !33
  %3233 = load double, ptr %20, align 8, !tbaa !33
  %3234 = load ptr, ptr %5, align 8, !tbaa !5
  %3235 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3234, i32 0, i32 60
  %3236 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3235, i32 0, i32 3
  %3237 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3236, i32 0, i32 4
  %3238 = load ptr, ptr %3237, align 8, !tbaa !29
  %3239 = getelementptr inbounds double, ptr %3238, i64 3
  store double %3233, ptr %3239, align 8, !tbaa !33
  %3240 = load double, ptr %21, align 8, !tbaa !33
  %3241 = load ptr, ptr %5, align 8, !tbaa !5
  %3242 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3241, i32 0, i32 60
  %3243 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3242, i32 0, i32 3
  %3244 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3243, i32 0, i32 4
  %3245 = load ptr, ptr %3244, align 8, !tbaa !29
  %3246 = getelementptr inbounds double, ptr %3245, i64 4
  store double %3240, ptr %3246, align 8, !tbaa !33
  %3247 = load double, ptr %22, align 8, !tbaa !33
  %3248 = load ptr, ptr %5, align 8, !tbaa !5
  %3249 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3248, i32 0, i32 60
  %3250 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3249, i32 0, i32 3
  %3251 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3250, i32 0, i32 4
  %3252 = load ptr, ptr %3251, align 8, !tbaa !29
  %3253 = getelementptr inbounds double, ptr %3252, i64 5
  store double %3247, ptr %3253, align 8, !tbaa !33
  %3254 = load double, ptr %23, align 8, !tbaa !33
  %3255 = load ptr, ptr %5, align 8, !tbaa !5
  %3256 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3255, i32 0, i32 60
  %3257 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3256, i32 0, i32 3
  %3258 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3257, i32 0, i32 4
  %3259 = load ptr, ptr %3258, align 8, !tbaa !29
  %3260 = getelementptr inbounds double, ptr %3259, i64 6
  store double %3254, ptr %3260, align 8, !tbaa !33
  %3261 = load double, ptr %24, align 8, !tbaa !33
  %3262 = load ptr, ptr %5, align 8, !tbaa !5
  %3263 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3262, i32 0, i32 60
  %3264 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3263, i32 0, i32 3
  %3265 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3264, i32 0, i32 4
  %3266 = load ptr, ptr %3265, align 8, !tbaa !29
  %3267 = getelementptr inbounds double, ptr %3266, i64 7
  store double %3261, ptr %3267, align 8, !tbaa !33
  %3268 = load double, ptr %25, align 8, !tbaa !33
  %3269 = load ptr, ptr %5, align 8, !tbaa !5
  %3270 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3269, i32 0, i32 60
  %3271 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3270, i32 0, i32 3
  %3272 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3271, i32 0, i32 4
  %3273 = load ptr, ptr %3272, align 8, !tbaa !29
  %3274 = getelementptr inbounds double, ptr %3273, i64 8
  store double %3268, ptr %3274, align 8, !tbaa !33
  %3275 = load double, ptr %26, align 8, !tbaa !33
  %3276 = load ptr, ptr %5, align 8, !tbaa !5
  %3277 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3276, i32 0, i32 60
  %3278 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3277, i32 0, i32 3
  %3279 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3278, i32 0, i32 4
  %3280 = load ptr, ptr %3279, align 8, !tbaa !29
  %3281 = getelementptr inbounds double, ptr %3280, i64 9
  store double %3275, ptr %3281, align 8, !tbaa !33
  %3282 = load double, ptr %27, align 8, !tbaa !33
  %3283 = load ptr, ptr %5, align 8, !tbaa !5
  %3284 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3283, i32 0, i32 60
  %3285 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3284, i32 0, i32 3
  %3286 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3285, i32 0, i32 4
  %3287 = load ptr, ptr %3286, align 8, !tbaa !29
  %3288 = getelementptr inbounds double, ptr %3287, i64 10
  store double %3282, ptr %3288, align 8, !tbaa !33
  %3289 = load double, ptr %28, align 8, !tbaa !33
  %3290 = load ptr, ptr %5, align 8, !tbaa !5
  %3291 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3290, i32 0, i32 60
  %3292 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3291, i32 0, i32 3
  %3293 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3292, i32 0, i32 4
  %3294 = load ptr, ptr %3293, align 8, !tbaa !29
  %3295 = getelementptr inbounds double, ptr %3294, i64 11
  store double %3289, ptr %3295, align 8, !tbaa !33
  %3296 = load double, ptr %29, align 8, !tbaa !33
  %3297 = load ptr, ptr %5, align 8, !tbaa !5
  %3298 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3297, i32 0, i32 60
  %3299 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3298, i32 0, i32 3
  %3300 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3299, i32 0, i32 4
  %3301 = load ptr, ptr %3300, align 8, !tbaa !29
  %3302 = getelementptr inbounds double, ptr %3301, i64 12
  store double %3296, ptr %3302, align 8, !tbaa !33
  %3303 = load double, ptr %30, align 8, !tbaa !33
  %3304 = load ptr, ptr %5, align 8, !tbaa !5
  %3305 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3304, i32 0, i32 60
  %3306 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3305, i32 0, i32 3
  %3307 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3306, i32 0, i32 4
  %3308 = load ptr, ptr %3307, align 8, !tbaa !29
  %3309 = getelementptr inbounds double, ptr %3308, i64 13
  store double %3303, ptr %3309, align 8, !tbaa !33
  %3310 = load double, ptr %31, align 8, !tbaa !33
  %3311 = load ptr, ptr %5, align 8, !tbaa !5
  %3312 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3311, i32 0, i32 60
  %3313 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3312, i32 0, i32 3
  %3314 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3313, i32 0, i32 4
  %3315 = load ptr, ptr %3314, align 8, !tbaa !29
  %3316 = getelementptr inbounds double, ptr %3315, i64 14
  store double %3310, ptr %3316, align 8, !tbaa !33
  %3317 = load double, ptr %39, align 8, !tbaa !33
  %3318 = load ptr, ptr %5, align 8, !tbaa !5
  %3319 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3318, i32 0, i32 60
  %3320 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3319, i32 0, i32 3
  %3321 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3320, i32 0, i32 4
  %3322 = load ptr, ptr %3321, align 8, !tbaa !29
  %3323 = getelementptr inbounds double, ptr %3322, i64 15
  store double %3317, ptr %3323, align 8, !tbaa !33
  %3324 = load double, ptr %40, align 8, !tbaa !33
  %3325 = load ptr, ptr %5, align 8, !tbaa !5
  %3326 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3325, i32 0, i32 60
  %3327 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3326, i32 0, i32 3
  %3328 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3327, i32 0, i32 4
  %3329 = load ptr, ptr %3328, align 8, !tbaa !29
  %3330 = getelementptr inbounds double, ptr %3329, i64 16
  store double %3324, ptr %3330, align 8, !tbaa !33
  %3331 = load double, ptr %41, align 8, !tbaa !33
  %3332 = load ptr, ptr %5, align 8, !tbaa !5
  %3333 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3332, i32 0, i32 60
  %3334 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3333, i32 0, i32 3
  %3335 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3334, i32 0, i32 4
  %3336 = load ptr, ptr %3335, align 8, !tbaa !29
  %3337 = getelementptr inbounds double, ptr %3336, i64 17
  store double %3331, ptr %3337, align 8, !tbaa !33
  %3338 = load double, ptr %43, align 8, !tbaa !33
  %3339 = load ptr, ptr %5, align 8, !tbaa !5
  %3340 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3339, i32 0, i32 60
  %3341 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3340, i32 0, i32 3
  %3342 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3341, i32 0, i32 4
  %3343 = load ptr, ptr %3342, align 8, !tbaa !29
  %3344 = getelementptr inbounds double, ptr %3343, i64 18
  store double %3338, ptr %3344, align 8, !tbaa !33
  %3345 = load double, ptr %44, align 8, !tbaa !33
  %3346 = load ptr, ptr %5, align 8, !tbaa !5
  %3347 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3346, i32 0, i32 60
  %3348 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3347, i32 0, i32 3
  %3349 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3348, i32 0, i32 4
  %3350 = load ptr, ptr %3349, align 8, !tbaa !29
  %3351 = getelementptr inbounds double, ptr %3350, i64 19
  store double %3345, ptr %3351, align 8, !tbaa !33
  %3352 = load double, ptr %45, align 8, !tbaa !33
  %3353 = load ptr, ptr %5, align 8, !tbaa !5
  %3354 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3353, i32 0, i32 60
  %3355 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3354, i32 0, i32 3
  %3356 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3355, i32 0, i32 4
  %3357 = load ptr, ptr %3356, align 8, !tbaa !29
  %3358 = getelementptr inbounds double, ptr %3357, i64 20
  store double %3352, ptr %3358, align 8, !tbaa !33
  %3359 = load double, ptr %46, align 8, !tbaa !33
  %3360 = load ptr, ptr %5, align 8, !tbaa !5
  %3361 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3360, i32 0, i32 60
  %3362 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3361, i32 0, i32 3
  %3363 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3362, i32 0, i32 4
  %3364 = load ptr, ptr %3363, align 8, !tbaa !29
  %3365 = getelementptr inbounds double, ptr %3364, i64 21
  store double %3359, ptr %3365, align 8, !tbaa !33
  %3366 = load double, ptr %47, align 8, !tbaa !33
  %3367 = load ptr, ptr %5, align 8, !tbaa !5
  %3368 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3367, i32 0, i32 60
  %3369 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3368, i32 0, i32 3
  %3370 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3369, i32 0, i32 4
  %3371 = load ptr, ptr %3370, align 8, !tbaa !29
  %3372 = getelementptr inbounds double, ptr %3371, i64 22
  store double %3366, ptr %3372, align 8, !tbaa !33
  %3373 = load double, ptr %50, align 8, !tbaa !33
  %3374 = load ptr, ptr %5, align 8, !tbaa !5
  %3375 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3374, i32 0, i32 60
  %3376 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3375, i32 0, i32 3
  %3377 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3376, i32 0, i32 4
  %3378 = load ptr, ptr %3377, align 8, !tbaa !29
  %3379 = getelementptr inbounds double, ptr %3378, i64 23
  store double %3373, ptr %3379, align 8, !tbaa !33
  %3380 = load double, ptr %51, align 8, !tbaa !33
  %3381 = load ptr, ptr %5, align 8, !tbaa !5
  %3382 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3381, i32 0, i32 60
  %3383 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3382, i32 0, i32 3
  %3384 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3383, i32 0, i32 4
  %3385 = load ptr, ptr %3384, align 8, !tbaa !29
  %3386 = getelementptr inbounds double, ptr %3385, i64 24
  store double %3380, ptr %3386, align 8, !tbaa !33
  %3387 = load double, ptr %52, align 8, !tbaa !33
  %3388 = load ptr, ptr %5, align 8, !tbaa !5
  %3389 = getelementptr inbounds %"struct.alglib_impl::gipmstate", ptr %3388, i32 0, i32 60
  %3390 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3389, i32 0, i32 3
  %3391 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3390, i32 0, i32 4
  %3392 = load ptr, ptr %3391, align 8, !tbaa !29
  %3393 = getelementptr inbounds double, ptr %3392, i64 25
  store double %3387, ptr %3393, align 8, !tbaa !33
  %3394 = load i8, ptr %53, align 1, !tbaa !9, !range !31, !noundef !32
  %3395 = trunc i8 %3394 to i1
  store i1 %3395, ptr %4, align 1
  store i32 1, ptr %54, align 4
  br label %3396

3396:                                             ; preds = %3064, %3061
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  %3397 = load i1, ptr %4, align 1
  ret i1 %3397
}

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL16gipm_condenselhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL16gipm_condenserhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL19gipm_unpacksolutionEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPKNS_9ae_vectorEPS3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL18gipm_varsapplystepEPNS_8gipmvarsEPKS0_dPNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef double @_ZN11alglib_implL26gipm_computeupdateresidualEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEddS4_PKNS_9ae_vectorESA_SA_PNS_7gipmrhsEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef double @_ZN11alglib_implL22gipm_computesteplengthEPKNS_9gipmstateEPKNS_8gipmvarsES5_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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, !28, i64 10048}
!12 = !{!"_ZTSN11alglib_impl9gipmstateE", !13, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !14, i64 152, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408, !16, i64 472, !13, i64 480, !13, i64 488, !14, i64 496, !16, i64 560, !14, i64 568, !14, i64 632, !17, i64 696, !14, i64 1064, !14, i64 1128, !10, i64 1192, !10, i64 1193, !10, i64 1194, !14, i64 1200, !14, i64 1264, !14, i64 1328, !14, i64 1392, !14, i64 1456, !14, i64 1520, !14, i64 1584, !14, i64 1648, !16, i64 1712, !16, i64 1720, !16, i64 1728, !16, i64 1736, !16, i64 1744, !13, i64 1752, !18, i64 1760, !18, i64 2560, !19, i64 3360, !19, i64 3960, !16, i64 4560, !13, i64 4568, !21, i64 4576, !10, i64 4744, !10, i64 4745, !10, i64 4746, !13, i64 4752, !13, i64 4760, !22, i64 4768, !23, i64 4792, !25, i64 4936, !26, i64 5704, !18, i64 6856, !18, i64 7656, !14, i64 8456, !14, i64 8520, !14, i64 8584, !18, i64 8648, !19, i64 9448, !27, i64 10048}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !13, i64 0, !13, 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 = !{!"double", !7, i64 0}
!17 = !{!"_ZTSN11alglib_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360}
!18 = !{!"_ZTSN11alglib_impl8gipmvarsE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !14, i64 32, !14, i64 96, !14, i64 160, !14, i64 224, !14, i64 288, !14, i64 352, !14, i64 416, !14, i64 480, !14, i64 544, !14, i64 608, !14, i64 672, !14, i64 736}
!19 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !13, i64 0, !13, i64 8, !10, i64 16, !14, i64 24, !14, i64 88, !20, i64 152, !17, i64 232}
!20 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !15, i64 40, !7, i64 72}
!21 = !{!"_ZTSN11alglib_impl9nlpfilterE", !16, i64 0, !13, i64 8, !16, i64 16, !16, i64 24, !10, i64 32, !14, i64 40, !14, i64 104}
!22 = !{!"_ZTSN11alglib_impl6stimerE", !13, i64 0, !13, i64 8, !10, i64 16}
!23 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !15, i64 32, !24, i64 64, !15, i64 112}
!24 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !15, i64 8, !10, i64 40}
!25 = !{!"_ZTSN11alglib_impl7gipmrhsE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !14, i64 512, !14, i64 576, !14, i64 640, !14, i64 704}
!26 = !{!"_ZTSN11alglib_impl19gipmcondensedsystemE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !14, i64 512, !14, i64 576, !14, i64 640, !14, i64 704, !14, i64 768, !14, i64 832, !14, i64 896, !14, i64 960, !14, i64 1024, !14, i64 1088}
!27 = !{!"_ZTSN11alglib_impl10rcommstateE", !28, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!28 = !{!"int", !7, i64 0}
!29 = !{!7, !7, i64 0}
!30 = !{!13, !13, i64 0}
!31 = !{i8 0, i8 2}
!32 = !{}
!33 = !{!16, !16, i64 0}
!34 = !{!12, !13, i64 0}
!35 = !{!12, !13, i64 8}
!36 = !{!12, !13, i64 16}
!37 = !{!12, !10, i64 4744}
!38 = distinct !{!38, !39}
!39 = !{!"llvm.loop.mustprogress"}
!40 = distinct !{!40, !39}
!41 = distinct !{!41, !39}
!42 = distinct !{!42, !39}
!43 = !{!12, !13, i64 488}
!44 = !{!12, !10, i64 1192}
!45 = distinct !{!45, !39}
!46 = distinct !{!46, !39}
!47 = distinct !{!47, !39}
!48 = !{!12, !16, i64 1712}
!49 = !{!12, !16, i64 1720}
!50 = !{!12, !16, i64 472}
!51 = !{!12, !16, i64 1736}
!52 = !{!12, !16, i64 1744}
!53 = !{!12, !16, i64 1728}
!54 = !{!12, !16, i64 4560}
!55 = !{!12, !13, i64 1752}
!56 = !{!12, !13, i64 4752}
!57 = !{!12, !13, i64 4568}
!58 = !{!12, !13, i64 480}
!59 = !{!12, !13, i64 4760}
!60 = !{!12, !10, i64 4745}
!61 = !{!12, !10, i64 1194}
!62 = distinct !{!62, !39}


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

@.str.208 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN11alglib_implL11gipm_initmuE = external hidden local_unnamed_addr global double, align 8
@.str.707 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.708 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.709 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.710 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.711 = external hidden unnamed_addr constant [82 x i8], align 1
@_ZN11alglib_implL15gipm_initbigvalE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL18gipm_initbiggrowthE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL16gipm_relaxfactorE = external hidden local_unnamed_addr global double, align 8
@.str.712 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.713 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.714 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.715 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.716 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.717 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.718 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.719 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.720 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.721 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.722 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.723 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.734 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZN11alglib_implL25gipm_checkpointacceptanceE = external hidden local_unnamed_addr global double, align 8
@.str.740 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [108 x i8], align 1
@_ZN11alglib_implL14gipm_lambdamaxE = external hidden local_unnamed_addr global double, align 8
@.str.742 = external hidden unnamed_addr constant [59 x i8], align 1
@_ZN11alglib_implL42gipm_firstiterationcheckpointstagnationepsE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL31gipm_maxcheckpointstagnationitsE = external hidden local_unnamed_addr global i64, align 8
@.str.743 = external hidden unnamed_addr constant [56 x i8], align 1
@_ZN11alglib_implL22gipm_rhsstagnationtol1E = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL22gipm_rhsstagnationtol2E = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL24gipm_maxrhsstagnationitsE = external hidden local_unnamed_addr global i64, align 8
@.str.744 = external hidden unnamed_addr constant [54 x i8], align 1
@_ZN11alglib_implL39gipm_maxsubsequentfailuresforweakgrowthE = external hidden local_unnamed_addr global i64, align 8
@.str.745 = external hidden unnamed_addr constant [98 x i8], align 1
@_ZN11alglib_implL17gipm_lambdagrowthE = external hidden local_unnamed_addr global double, align 8
@.str.746 = external hidden unnamed_addr constant [86 x i8], align 1
@_ZN11alglib_implL22gipm_lambdarapidgrowthE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL14gipm_maxrfsitsE = external hidden local_unnamed_addr global i64, align 8
@.str.747 = external hidden unnamed_addr constant [76 x i8], align 1
@_ZN11alglib_implL11gipm_rhstolE = external hidden local_unnamed_addr global double, align 8
@.str.748 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.754 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZN11alglib_implL14gipm_smallstepE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL19gipm_maxsmalltrialsE = external hidden local_unnamed_addr global i64, align 8
@.str.755 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.756 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.757 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.758 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [58 x i8], align 1
@_ZN11alglib_implL10gipm_maxmuE = external hidden local_unnamed_addr global double, align 8
@.str.764 = external hidden unnamed_addr constant [95 x i8], align 1
@_ZN11alglib_implL19gipm_lambdadecayaccE = external hidden local_unnamed_addr global double, align 8
@.str.765 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [50 x i8], align 1
@_ZN11alglib_implL14gipm_maxbigvalE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL17gipm_maxbiggrowthE = external hidden local_unnamed_addr global double, align 8
@.str.767 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [87 x i8], align 1
@_ZN11alglib_implL13gipm_vggrowthE = external hidden local_unnamed_addr global double, align 8
@.str.769 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.773 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZN11alglib_implL18gipm_mudecaylinearE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL17gipm_mudecaypowerE = external hidden local_unnamed_addr global double, align 8
@.str.774 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.775 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.776 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [27 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 nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

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

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

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

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

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

declare noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

declare noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl17vfjinitfromsparseEPKNS_9ae_vectorElS2_lPKNS_12sparsematrixEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl16nlpfisacceptableEPNS_9nlpfilterEddddPNS_8ae_stateE(ptr noundef, double noundef, double noundef, double noundef, double noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef, double noundef, double noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl19gipmgetinitprimdualEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl13gipmiterationEPNS_9gipmstateEbPNS_8ae_stateE(ptr noundef %0, i1 noundef zeroext %1, ptr noundef %2) local_unnamed_addr #2 {
  %4 = alloca double, align 8
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %16 = getelementptr inbounds i8, ptr %0, i64 10048
  %17 = load i32, ptr %16, align 8, !tbaa !5
  %18 = icmp sgt i32 %17, -1
  br i1 %18, label %19, label %113

19:                                               ; preds = %3
  %20 = getelementptr inbounds i8, ptr %0, i64 10112
  %21 = load ptr, ptr %20, align 8, !tbaa !27
  %22 = load i64, ptr %21, align 8, !tbaa !28
  %23 = getelementptr inbounds i8, ptr %21, i64 8
  %24 = load i64, ptr %23, align 8, !tbaa !28
  %25 = getelementptr inbounds i8, ptr %21, i64 16
  %26 = load i64, ptr %25, align 8, !tbaa !28
  %27 = getelementptr inbounds i8, ptr %21, i64 24
  %28 = load i64, ptr %27, align 8, !tbaa !28
  %29 = getelementptr inbounds i8, ptr %21, i64 32
  %30 = load i64, ptr %29, align 8, !tbaa !28
  %31 = getelementptr inbounds i8, ptr %21, i64 40
  %32 = load i64, ptr %31, align 8, !tbaa !28
  %33 = getelementptr inbounds i8, ptr %21, i64 48
  %34 = load i64, ptr %33, align 8, !tbaa !28
  %35 = getelementptr inbounds i8, ptr %21, i64 56
  %36 = load i64, ptr %35, align 8, !tbaa !28
  %37 = getelementptr inbounds i8, ptr %21, i64 64
  %38 = load i64, ptr %37, align 8, !tbaa !28
  %39 = getelementptr inbounds i8, ptr %21, i64 72
  %40 = load i64, ptr %39, align 8, !tbaa !28
  %41 = getelementptr inbounds i8, ptr %21, i64 80
  %42 = load i64, ptr %41, align 8, !tbaa !28
  %43 = getelementptr inbounds i8, ptr %21, i64 88
  %44 = load i64, ptr %43, align 8, !tbaa !28
  %45 = getelementptr inbounds i8, ptr %0, i64 10176
  %46 = load ptr, ptr %45, align 8, !tbaa !27
  %47 = load i8, ptr %46, align 1, !tbaa !29, !range !30, !noundef !31
  %48 = getelementptr inbounds i8, ptr %46, i64 1
  %49 = load i8, ptr %48, align 1, !tbaa !29, !range !30, !noundef !31
  %50 = getelementptr inbounds i8, ptr %46, i64 2
  %51 = load i8, ptr %50, align 1, !tbaa !29, !range !30, !noundef !31
  %52 = getelementptr inbounds i8, ptr %46, i64 3
  %53 = load i8, ptr %52, align 1, !tbaa !29, !range !30, !noundef !31
  %54 = getelementptr inbounds i8, ptr %46, i64 4
  %55 = load i8, ptr %54, align 1, !tbaa !29, !range !30, !noundef !31
  %56 = getelementptr inbounds i8, ptr %46, i64 5
  %57 = load i8, ptr %56, align 1, !tbaa !29, !range !30, !noundef !31
  %58 = getelementptr inbounds i8, ptr %46, i64 6
  %59 = load i8, ptr %58, align 1, !tbaa !29, !range !30, !noundef !31
  %60 = getelementptr inbounds i8, ptr %0, i64 10240
  %61 = load ptr, ptr %60, align 8, !tbaa !27
  %62 = load double, ptr %61, align 8, !tbaa !32
  %63 = getelementptr inbounds i8, ptr %61, i64 8
  %64 = load double, ptr %63, align 8, !tbaa !32
  %65 = getelementptr inbounds i8, ptr %61, i64 16
  %66 = load double, ptr %65, align 8, !tbaa !32
  %67 = getelementptr inbounds i8, ptr %61, i64 24
  %68 = load double, ptr %67, align 8, !tbaa !32
  %69 = getelementptr inbounds i8, ptr %61, i64 32
  %70 = load double, ptr %69, align 8, !tbaa !32
  %71 = getelementptr inbounds i8, ptr %61, i64 40
  %72 = load double, ptr %71, align 8, !tbaa !32
  %73 = getelementptr inbounds i8, ptr %61, i64 48
  %74 = load double, ptr %73, align 8, !tbaa !32
  %75 = getelementptr inbounds i8, ptr %61, i64 56
  %76 = load double, ptr %75, align 8, !tbaa !32
  %77 = getelementptr inbounds i8, ptr %61, i64 64
  %78 = load double, ptr %77, align 8, !tbaa !32
  %79 = getelementptr inbounds i8, ptr %61, i64 72
  %80 = load double, ptr %79, align 8, !tbaa !32
  %81 = getelementptr inbounds i8, ptr %61, i64 80
  %82 = load double, ptr %81, align 8, !tbaa !32
  %83 = getelementptr inbounds i8, ptr %61, i64 88
  %84 = load double, ptr %83, align 8, !tbaa !32
  %85 = getelementptr inbounds i8, ptr %61, i64 96
  %86 = load double, ptr %85, align 8, !tbaa !32
  %87 = getelementptr inbounds i8, ptr %61, i64 104
  %88 = load double, ptr %87, align 8, !tbaa !32
  %89 = getelementptr inbounds i8, ptr %61, i64 112
  %90 = load double, ptr %89, align 8, !tbaa !32
  %91 = getelementptr inbounds i8, ptr %61, i64 120
  %92 = load double, ptr %91, align 8, !tbaa !32
  %93 = getelementptr inbounds i8, ptr %61, i64 128
  %94 = load double, ptr %93, align 8, !tbaa !32
  %95 = getelementptr inbounds i8, ptr %61, i64 136
  %96 = load double, ptr %95, align 8, !tbaa !32
  %97 = getelementptr inbounds i8, ptr %61, i64 144
  %98 = load double, ptr %97, align 8, !tbaa !32
  %99 = getelementptr inbounds i8, ptr %61, i64 152
  %100 = load double, ptr %99, align 8, !tbaa !32
  %101 = getelementptr inbounds i8, ptr %61, i64 160
  %102 = load double, ptr %101, align 8, !tbaa !32
  %103 = getelementptr inbounds i8, ptr %61, i64 168
  %104 = load double, ptr %103, align 8, !tbaa !32
  %105 = getelementptr inbounds i8, ptr %61, i64 176
  %106 = load double, ptr %105, align 8, !tbaa !32
  %107 = getelementptr inbounds i8, ptr %61, i64 184
  %108 = load double, ptr %107, align 8, !tbaa !32
  %109 = getelementptr inbounds i8, ptr %61, i64 192
  %110 = load double, ptr %109, align 8, !tbaa !32
  %111 = getelementptr inbounds i8, ptr %61, i64 200
  %112 = load double, ptr %111, align 8, !tbaa !32
  br label %113

113:                                              ; preds = %3, %19
  %.sink1321 = phi double [ %62, %19 ], [ 1.016000e+03, %3 ]
  %.sink1320 = phi double [ %64, %19 ], [ -2.290000e+02, %3 ]
  %.sink1319 = phi double [ %66, %19 ], [ -5.360000e+02, %3 ]
  %.sink1318 = phi double [ %70, %19 ], [ -1.150000e+02, %3 ]
  %.sink1317 = phi double [ %72, %19 ], [ 8.860000e+02, %3 ]
  %.sink1316 = phi double [ %74, %19 ], [ 3.460000e+02, %3 ]
  %.sink1315 = phi double [ %76, %19 ], [ -7.220000e+02, %3 ]
  %.sink1314 = phi double [ %78, %19 ], [ -4.130000e+02, %3 ]
  %.sink1313 = phi double [ %80, %19 ], [ -4.610000e+02, %3 ]
  %.sink1312 = phi double [ %86, %19 ], [ 9.220000e+02, %3 ]
  %.sink1311 = phi double [ %88, %19 ], [ -1.540000e+02, %3 ]
  %.sink = phi double [ %90, %19 ], [ 3.060000e+02, %3 ]
  %.01231 = phi i64 [ %22, %19 ], [ 359, %3 ]
  %.01229 = phi i64 [ %24, %19 ], [ -58, %3 ]
  %.01227 = phi i64 [ %26, %19 ], [ -919, %3 ]
  %.01225 = phi i64 [ %28, %19 ], [ -909, %3 ]
  %.01223 = phi i64 [ %30, %19 ], [ 81, %3 ]
  %.01221 = phi i64 [ %32, %19 ], [ 255, %3 ]
  %.01212 = phi i64 [ %34, %19 ], [ 74, %3 ]
  %.01203 = phi i64 [ %36, %19 ], [ -788, %3 ]
  %.01202 = phi i64 [ %38, %19 ], [ 809, %3 ]
  %.01194 = phi double [ %68, %19 ], [ 4.870000e+02, %3 ]
  %.01192 = phi double [ %82, %19 ], [ 9.270000e+02, %3 ]
  %.01190 = phi double [ %84, %19 ], [ 2.010000e+02, %3 ]
  %.01186 = phi i8 [ %47, %19 ], [ 0, %3 ]
  %.01181 = phi i8 [ %49, %19 ], [ 1, %3 ]
  %.01176 = phi i8 [ %51, %19 ], [ 1, %3 ]
  %.01170 = phi i8 [ %53, %19 ], [ 0, %3 ]
  %.01161 = phi i8 [ %55, %19 ], [ 0, %3 ]
  %.01160 = phi i8 [ %57, %19 ], [ 0, %3 ]
  %.01152 = phi i8 [ %59, %19 ], [ 0, %3 ]
  %.01147 = phi double [ %92, %19 ], [ -1.011000e+03, %3 ]
  %.01142 = phi double [ %94, %19 ], [ 9.510000e+02, %3 ]
  %.01137 = phi double [ %96, %19 ], [ -4.630000e+02, %3 ]
  %.01129 = phi i64 [ %40, %19 ], [ 205, %3 ]
  %.01127 = phi double [ %98, %19 ], [ 8.800000e+01, %3 ]
  %.01119 = phi double [ %100, %19 ], [ -8.610000e+02, %3 ]
  %.01114 = phi double [ %102, %19 ], [ -6.780000e+02, %3 ]
  %.01109 = phi double [ %104, %19 ], [ -7.310000e+02, %3 ]
  %.01104 = phi double [ %106, %19 ], [ -6.750000e+02, %3 ]
  %.01099 = phi i64 [ %42, %19 ], [ -838, %3 ]
  %.01094 = phi i64 [ %44, %19 ], [ 939, %3 ]
  %.01089 = phi double [ %108, %19 ], [ -7.630000e+02, %3 ]
  %.01084 = phi double [ %110, %19 ], [ -2.330000e+02, %3 ]
  %.0 = phi double [ %112, %19 ], [ -9.360000e+02, %3 ]
  store double %.sink1321, ptr %4, align 8
  store double %.sink1320, ptr %5, align 8
  store double %.sink1319, ptr %6, align 8
  store double %.sink1318, ptr %7, align 8
  store double %.sink1317, ptr %8, align 8
  store double %.sink1316, ptr %9, align 8
  store double %.sink1315, ptr %10, align 8
  store double %.sink1314, ptr %11, align 8
  store double %.sink1313, ptr %12, align 8
  store double %.sink1312, ptr %13, align 8
  store double %.sink1311, ptr %14, align 8
  store double %.sink, ptr %15, align 8
  switch i32 %17, label %114 [
    i32 0, label %275
    i32 1, label %730
    i32 2, label %803
    i32 3, label %822
    i32 4, label %923
    i32 5, label %1025
  ]

114:                                              ; preds = %113
  %115 = load i64, ptr %0, align 8, !tbaa !33
  %116 = getelementptr inbounds i8, ptr %0, i64 8
  %117 = load i64, ptr %116, align 8, !tbaa !34
  %118 = getelementptr inbounds i8, ptr %0, i64 16
  %119 = load i64, ptr %118, align 8, !tbaa !35
  %120 = add nsw i64 %119, %117
  %121 = add i64 %117, %115
  %122 = add nsw i64 %121, %119
  %123 = getelementptr inbounds i8, ptr %0, i64 4768
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %123, ptr noundef %2)
  %124 = getelementptr inbounds i8, ptr %0, i64 4792
  %125 = tail call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %122, i64 noundef %120, ptr noundef %2)
  %126 = add nsw i64 %125, 1
  tail call void @_ZN11alglib_impl15ae_nxpool_allocEPNS_9ae_nxpoolElPNS_8ae_stateE(ptr noundef nonnull %124, i64 noundef %126, ptr noundef %2)
  tail call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %123, ptr noundef %2)
  %127 = getelementptr inbounds i8, ptr %0, i64 4744
  %128 = load i8, ptr %127, align 8, !tbaa !36, !range !30, !noundef !31
  %129 = trunc nuw i8 %128 to i1
  br i1 %129, label %130, label %134

130:                                              ; preds = %114
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.612)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.707)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  %131 = trunc i64 %115 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.708, i32 noundef %131)
  %132 = trunc i64 %120 to i32
  %133 = trunc i64 %119 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.709, i32 noundef %132, i32 noundef %133)
  br label %134

134:                                              ; preds = %130, %114
  %135 = getelementptr inbounds i8, ptr %0, i64 1200
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %115, double noundef 0.000000e+00, ptr noundef nonnull %135, ptr noundef %2)
  %136 = getelementptr inbounds i8, ptr %0, i64 1264
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %115, double noundef 0.000000e+00, ptr noundef nonnull %136, ptr noundef %2)
  %137 = getelementptr inbounds i8, ptr %0, i64 1328
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %117, double noundef 0.000000e+00, ptr noundef nonnull %137, ptr noundef %2)
  %138 = getelementptr inbounds i8, ptr %0, i64 1392
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %117, double noundef 0.000000e+00, ptr noundef nonnull %138, ptr noundef %2)
  %.not.not1283 = icmp sgt i64 %121, 0
  br i1 %.not.not1283, label %.lr.ph1286, label %.preheader.critedge

.lr.ph1286:                                       ; preds = %134
  %139 = getelementptr inbounds i8, ptr %0, i64 272
  %140 = getelementptr inbounds i8, ptr %0, i64 400
  %141 = getelementptr inbounds i8, ptr %0, i64 1384
  %142 = getelementptr inbounds i8, ptr %0, i64 1256
  %143 = getelementptr inbounds i8, ptr %0, i64 336
  %144 = getelementptr inbounds i8, ptr %0, i64 1448
  %145 = getelementptr inbounds i8, ptr %0, i64 1320
  br label %146

146:                                              ; preds = %.lr.ph1286, %176
  %.112131284 = phi i64 [ 0, %.lr.ph1286 ], [ %177, %176 ]
  %147 = load ptr, ptr %139, align 8, !tbaa !27
  %148 = getelementptr inbounds i8, ptr %147, i64 %.112131284
  %149 = load i8, ptr %148, align 1, !tbaa !29, !range !30, !noundef !31
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %161

151:                                              ; preds = %146
  %152 = icmp slt i64 %.112131284, %115
  br i1 %152, label %.sink.split, label %153

153:                                              ; preds = %151
  %154 = load ptr, ptr %140, align 8, !tbaa !27
  %155 = sub nsw i64 %.112131284, %115
  %156 = getelementptr inbounds i8, ptr %154, i64 %155
  %157 = load i8, ptr %156, align 1, !tbaa !29, !range !30, !noundef !31
  %158 = trunc nuw i8 %157 to i1
  br i1 %158, label %161, label %.sink.split

.sink.split:                                      ; preds = %153, %151
  %.sink1328 = phi ptr [ %142, %151 ], [ %141, %153 ]
  %.112131284.sink = phi i64 [ %.112131284, %151 ], [ %155, %153 ]
  %159 = load ptr, ptr %.sink1328, align 8, !tbaa !27
  %160 = getelementptr inbounds double, ptr %159, i64 %.112131284.sink
  store double 1.000000e+00, ptr %160, align 8, !tbaa !32
  br label %161

161:                                              ; preds = %.sink.split, %153, %146
  %162 = load ptr, ptr %143, align 8, !tbaa !27
  %163 = getelementptr inbounds i8, ptr %162, i64 %.112131284
  %164 = load i8, ptr %163, align 1, !tbaa !29, !range !30, !noundef !31
  %165 = trunc nuw i8 %164 to i1
  br i1 %165, label %166, label %176

166:                                              ; preds = %161
  %167 = icmp slt i64 %.112131284, %115
  br i1 %167, label %.sink.split1329, label %168

168:                                              ; preds = %166
  %169 = load ptr, ptr %140, align 8, !tbaa !27
  %170 = sub nsw i64 %.112131284, %115
  %171 = getelementptr inbounds i8, ptr %169, i64 %170
  %172 = load i8, ptr %171, align 1, !tbaa !29, !range !30, !noundef !31
  %173 = trunc nuw i8 %172 to i1
  br i1 %173, label %176, label %.sink.split1329

.sink.split1329:                                  ; preds = %168, %166
  %.sink1333 = phi ptr [ %145, %166 ], [ %144, %168 ]
  %.112131284.sink1332 = phi i64 [ %.112131284, %166 ], [ %170, %168 ]
  %174 = load ptr, ptr %.sink1333, align 8, !tbaa !27
  %175 = getelementptr inbounds double, ptr %174, i64 %.112131284.sink1332
  store double 1.000000e+00, ptr %175, align 8, !tbaa !32
  br label %176

176:                                              ; preds = %.sink.split1329, %161, %168
  %177 = add nuw nsw i64 %.112131284, 1
  %exitcond1308.not = icmp eq i64 %177, %121
  br i1 %exitcond1308.not, label %._crit_edge1287, label %146, !llvm.loop !37

._crit_edge1287:                                  ; preds = %176
  %178 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %2)
  %179 = fneg double %178
  %180 = getelementptr inbounds i8, ptr %0, i64 1456
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %121, double noundef %179, ptr noundef nonnull %180, ptr noundef %2)
  %181 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %2)
  %182 = getelementptr inbounds i8, ptr %0, i64 1520
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %122, double noundef %181, ptr noundef nonnull %182, ptr noundef %2)
  br i1 %.not.not1283, label %.lr.ph1291, label %.preheader

.lr.ph1291:                                       ; preds = %._crit_edge1287
  %183 = getelementptr inbounds i8, ptr %0, i64 272
  %184 = getelementptr inbounds i8, ptr %0, i64 144
  %185 = getelementptr inbounds i8, ptr %0, i64 1512
  %186 = getelementptr inbounds i8, ptr %0, i64 336
  %187 = getelementptr inbounds i8, ptr %0, i64 208
  %188 = getelementptr inbounds i8, ptr %0, i64 1576
  br label %196

.preheader.critedge:                              ; preds = %134
  %189 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %2)
  %190 = fneg double %189
  %191 = getelementptr inbounds i8, ptr %0, i64 1456
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %121, double noundef %190, ptr noundef nonnull %191, ptr noundef %2)
  %192 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %2)
  %193 = getelementptr inbounds i8, ptr %0, i64 1520
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %122, double noundef %192, ptr noundef nonnull %193, ptr noundef %2)
  br label %.preheader

.preheader:                                       ; preds = %218, %.preheader.critedge, %._crit_edge1287
  %.not.not12411292 = icmp sgt i64 %119, 0
  br i1 %.not.not12411292, label %.lr.ph1294, label %._crit_edge1295

.lr.ph1294:                                       ; preds = %.preheader
  %194 = getelementptr inbounds i8, ptr %0, i64 208
  %195 = getelementptr inbounds i8, ptr %0, i64 1576
  br label %220

196:                                              ; preds = %.lr.ph1291, %218
  %.212141289 = phi i64 [ 0, %.lr.ph1291 ], [ %219, %218 ]
  %197 = load ptr, ptr %183, align 8, !tbaa !27
  %198 = getelementptr inbounds i8, ptr %197, i64 %.212141289
  %199 = load i8, ptr %198, align 1, !tbaa !29, !range !30, !noundef !31
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %207

201:                                              ; preds = %196
  %202 = load ptr, ptr %184, align 8, !tbaa !27
  %203 = getelementptr inbounds double, ptr %202, i64 %.212141289
  %204 = load double, ptr %203, align 8, !tbaa !32
  %205 = load ptr, ptr %185, align 8, !tbaa !27
  %206 = getelementptr inbounds double, ptr %205, i64 %.212141289
  store double %204, ptr %206, align 8, !tbaa !32
  br label %207

207:                                              ; preds = %201, %196
  %208 = load ptr, ptr %186, align 8, !tbaa !27
  %209 = getelementptr inbounds i8, ptr %208, i64 %.212141289
  %210 = load i8, ptr %209, align 1, !tbaa !29, !range !30, !noundef !31
  %211 = trunc nuw i8 %210 to i1
  br i1 %211, label %212, label %218

212:                                              ; preds = %207
  %213 = load ptr, ptr %187, align 8, !tbaa !27
  %214 = getelementptr inbounds double, ptr %213, i64 %.212141289
  %215 = load double, ptr %214, align 8, !tbaa !32
  %216 = load ptr, ptr %188, align 8, !tbaa !27
  %217 = getelementptr inbounds double, ptr %216, i64 %.212141289
  store double %215, ptr %217, align 8, !tbaa !32
  br label %218

218:                                              ; preds = %207, %212
  %219 = add nuw nsw i64 %.212141289, 1
  %exitcond1309.not = icmp eq i64 %219, %121
  br i1 %exitcond1309.not, label %.preheader, label %196, !llvm.loop !39

220:                                              ; preds = %.lr.ph1294, %220
  %.312151293 = phi i64 [ %121, %.lr.ph1294 ], [ %226, %220 ]
  %221 = load ptr, ptr %194, align 8, !tbaa !27
  %222 = getelementptr inbounds double, ptr %221, i64 %.312151293
  %223 = load double, ptr %222, align 8, !tbaa !32
  %224 = load ptr, ptr %195, align 8, !tbaa !27
  %225 = getelementptr inbounds double, ptr %224, i64 %.312151293
  store double %223, ptr %225, align 8, !tbaa !32
  %226 = add nsw i64 %.312151293, 1
  %.not.not1241 = icmp slt i64 %226, %122
  br i1 %.not.not1241, label %220, label %._crit_edge1295, !llvm.loop !40

._crit_edge1295:                                  ; preds = %220, %.preheader
  tail call void @_ZN11alglib_implL34gipm_safeboundsfromfinitetightenedEPNS_9gipmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %2)
  %227 = tail call noundef double @_ZN11alglib_impl19gipmgetinitprimdualEPNS_8ae_stateE(ptr noundef %2)
  %228 = getelementptr inbounds i8, ptr %0, i64 1760
  tail call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef nonnull %228, i64 noundef %115, i64 noundef %117, i64 noundef %119, ptr noundef %2)
  %229 = getelementptr inbounds i8, ptr %0, i64 6856
  tail call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef nonnull %229, i64 noundef %115, i64 noundef %117, i64 noundef %119, ptr noundef %2)
  %230 = getelementptr inbounds i8, ptr %0, i64 7656
  tail call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef nonnull %230, i64 noundef %115, i64 noundef %117, i64 noundef %119, ptr noundef %2)
  %.not.not12421296 = icmp sgt i64 %115, 0
  br i1 %.not.not12421296, label %.lr.ph1299, label %._crit_edge1300

.lr.ph1299:                                       ; preds = %._crit_edge1295
  %231 = getelementptr inbounds i8, ptr %0, i64 272
  %232 = getelementptr inbounds i8, ptr %0, i64 80
  %233 = getelementptr inbounds i8, ptr %0, i64 144
  %234 = getelementptr inbounds i8, ptr %0, i64 336
  %235 = getelementptr inbounds i8, ptr %0, i64 208
  br label %236

236:                                              ; preds = %.lr.ph1299, %262
  %.412161297 = phi i64 [ 0, %.lr.ph1299 ], [ %263, %262 ]
  %237 = load ptr, ptr %231, align 8, !tbaa !27
  %238 = getelementptr inbounds i8, ptr %237, i64 %.412161297
  %239 = load i8, ptr %238, align 1, !tbaa !29, !range !30, !noundef !31
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %241, label %249

241:                                              ; preds = %236
  %242 = load ptr, ptr %232, align 8, !tbaa !27
  %243 = getelementptr inbounds double, ptr %242, i64 %.412161297
  %244 = load double, ptr %243, align 8, !tbaa !32
  %245 = load ptr, ptr %233, align 8, !tbaa !27
  %246 = getelementptr inbounds double, ptr %245, i64 %.412161297
  %247 = load double, ptr %246, align 8, !tbaa !32
  %248 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %244, double noundef %247)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %248, ptr noundef nonnull @.str.710, ptr noundef %2)
  br label %249

249:                                              ; preds = %241, %236
  %250 = load ptr, ptr %234, align 8, !tbaa !27
  %251 = getelementptr inbounds i8, ptr %250, i64 %.412161297
  %252 = load i8, ptr %251, align 1, !tbaa !29, !range !30, !noundef !31
  %253 = trunc nuw i8 %252 to i1
  br i1 %253, label %254, label %262

254:                                              ; preds = %249
  %255 = load ptr, ptr %232, align 8, !tbaa !27
  %256 = getelementptr inbounds double, ptr %255, i64 %.412161297
  %257 = load double, ptr %256, align 8, !tbaa !32
  %258 = load ptr, ptr %235, align 8, !tbaa !27
  %259 = getelementptr inbounds double, ptr %258, i64 %.412161297
  %260 = load double, ptr %259, align 8, !tbaa !32
  %261 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %257, double noundef %260)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %261, ptr noundef nonnull @.str.710, ptr noundef %2)
  br label %262

262:                                              ; preds = %249, %254
  %263 = add nuw nsw i64 %.412161297, 1
  %exitcond1310.not = icmp eq i64 %263, %115
  br i1 %exitcond1310.not, label %._crit_edge1300, label %236, !llvm.loop !41

._crit_edge1300:                                  ; preds = %262, %._crit_edge1295
  %.41216.lcssa = phi i64 [ 0, %._crit_edge1295 ], [ %115, %262 ]
  %264 = getelementptr inbounds i8, ptr %0, i64 24
  %265 = getelementptr inbounds i8, ptr %0, i64 1792
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %115, ptr noundef nonnull %264, ptr noundef nonnull %265, ptr noundef %2)
  %266 = getelementptr inbounds i8, ptr %0, i64 1584
  tail call void @_ZN11alglib_impl10rmergemaxvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %115, ptr noundef nonnull %266, ptr noundef nonnull %265, ptr noundef %2)
  %267 = getelementptr inbounds i8, ptr %0, i64 1648
  tail call void @_ZN11alglib_impl10rmergeminvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %115, ptr noundef nonnull %267, ptr noundef nonnull %265, ptr noundef %2)
  %268 = getelementptr inbounds i8, ptr %0, i64 2176
  tail call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %119, double noundef %227, ptr noundef nonnull %268, ptr noundef %2)
  %269 = getelementptr inbounds i8, ptr %0, i64 488
  store i64 1, ptr %269, align 8, !tbaa !42
  %270 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %270, align 8, !tbaa !43
  %271 = getelementptr inbounds i8, ptr %0, i64 568
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %122, ptr noundef nonnull %271, ptr noundef %2)
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %115, ptr noundef nonnull %265, i64 noundef 0, ptr noundef nonnull %271, i64 noundef 0, ptr noundef %2)
  %272 = getelementptr inbounds i8, ptr %0, i64 1984
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %117, ptr noundef nonnull %272, i64 noundef 0, ptr noundef nonnull %271, i64 noundef %115, ptr noundef %2)
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %119, ptr noundef nonnull %268, i64 noundef 0, ptr noundef nonnull %271, i64 noundef %121, ptr noundef %2)
  %273 = add nsw i64 %120, 1
  %274 = getelementptr inbounds i8, ptr %0, i64 632
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %273, ptr noundef nonnull %274, ptr noundef %2)
  br label %1321

275:                                              ; preds = %113
  %276 = getelementptr inbounds i8, ptr %0, i64 1760
  %277 = getelementptr inbounds i8, ptr %0, i64 1792
  %278 = getelementptr inbounds i8, ptr %0, i64 632
  %279 = add nsw i64 %.01229, 1
  %280 = getelementptr inbounds i8, ptr %0, i64 696
  %281 = getelementptr inbounds i8, ptr %0, i64 3360
  tail call void @_ZN11alglib_impl17vfjinitfromsparseEPKNS_9ae_vectorElS2_lPKNS_12sparsematrixEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %277, i64 noundef %.01231, ptr noundef nonnull %278, i64 noundef %279, ptr noundef nonnull %280, ptr noundef nonnull %281, ptr noundef %2)
  %.not1248.not1271 = icmp sgt i64 %.01231, 0
  br i1 %.not1248.not1271, label %.lr.ph1274, label %.preheader1267

.lr.ph1274:                                       ; preds = %275
  %282 = getelementptr inbounds i8, ptr %0, i64 272
  %283 = getelementptr inbounds i8, ptr %0, i64 1848
  %284 = getelementptr inbounds i8, ptr %0, i64 144
  %285 = getelementptr inbounds i8, ptr %0, i64 1912
  %286 = getelementptr inbounds i8, ptr %0, i64 336
  %287 = getelementptr inbounds i8, ptr %0, i64 208
  %288 = getelementptr inbounds i8, ptr %0, i64 1976
  br label %300

.preheader1267:                                   ; preds = %340, %275
  %.not1249.not1275 = icmp sgt i64 %.01227, 0
  br i1 %.not1249.not1275, label %.lr.ph1277, label %.preheader1266

.lr.ph1277:                                       ; preds = %.preheader1267
  %289 = getelementptr inbounds i8, ptr %0, i64 400
  %290 = getelementptr inbounds i8, ptr %0, i64 688
  %291 = getelementptr inbounds i8, ptr %0, i64 2296
  %292 = getelementptr inbounds i8, ptr %0, i64 272
  %293 = getelementptr inbounds i8, ptr %0, i64 144
  %294 = getelementptr inbounds i8, ptr %0, i64 2360
  %295 = getelementptr inbounds i8, ptr %0, i64 2488
  %296 = getelementptr inbounds i8, ptr %0, i64 336
  %297 = getelementptr inbounds i8, ptr %0, i64 208
  %298 = getelementptr inbounds i8, ptr %0, i64 2424
  %299 = getelementptr inbounds i8, ptr %0, i64 2552
  br label %346

300:                                              ; preds = %.lr.ph1274, %340
  %.512171272 = phi i64 [ 0, %.lr.ph1274 ], [ %341, %340 ]
  %301 = load ptr, ptr %282, align 8, !tbaa !27
  %302 = getelementptr inbounds i8, ptr %301, i64 %.512171272
  %303 = load i8, ptr %302, align 1, !tbaa !29, !range !30, !noundef !31
  %304 = trunc nuw i8 %303 to i1
  br i1 %304, label %305, label %320

305:                                              ; preds = %300
  %306 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !32
  %307 = load ptr, ptr %283, align 8, !tbaa !27
  %308 = getelementptr inbounds double, ptr %307, i64 %.512171272
  %309 = load double, ptr %308, align 8, !tbaa !32
  %310 = load ptr, ptr %284, align 8, !tbaa !27
  %311 = getelementptr inbounds double, ptr %310, i64 %.512171272
  %312 = load double, ptr %311, align 8, !tbaa !32
  %313 = fsub double %309, %312
  %314 = fdiv double %306, %313
  %315 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2)
  %316 = fmul double %315, 1.000000e+02
  %317 = tail call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %314, double noundef %316, double noundef %.01190, ptr noundef %2)
  %318 = load ptr, ptr %285, align 8, !tbaa !27
  %319 = getelementptr inbounds double, ptr %318, i64 %.512171272
  store double %317, ptr %319, align 8, !tbaa !32
  br label %320

320:                                              ; preds = %305, %300
  %321 = load ptr, ptr %286, align 8, !tbaa !27
  %322 = getelementptr inbounds i8, ptr %321, i64 %.512171272
  %323 = load i8, ptr %322, align 1, !tbaa !29, !range !30, !noundef !31
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %340

325:                                              ; preds = %320
  %326 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !32
  %327 = load ptr, ptr %287, align 8, !tbaa !27
  %328 = getelementptr inbounds double, ptr %327, i64 %.512171272
  %329 = load double, ptr %328, align 8, !tbaa !32
  %330 = load ptr, ptr %283, align 8, !tbaa !27
  %331 = getelementptr inbounds double, ptr %330, i64 %.512171272
  %332 = load double, ptr %331, align 8, !tbaa !32
  %333 = fsub double %329, %332
  %334 = fdiv double %326, %333
  %335 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2)
  %336 = fmul double %335, 1.000000e+02
  %337 = tail call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %334, double noundef %336, double noundef %.01190, ptr noundef %2)
  %338 = load ptr, ptr %288, align 8, !tbaa !27
  %339 = getelementptr inbounds double, ptr %338, i64 %.512171272
  store double %337, ptr %339, align 8, !tbaa !32
  br label %340

340:                                              ; preds = %320, %325
  %341 = add nuw nsw i64 %.512171272, 1
  %exitcond1305.not = icmp eq i64 %341, %.01231
  br i1 %exitcond1305.not, label %.preheader1267, label %300, !llvm.loop !44

.preheader1266:                                   ; preds = %410, %.preheader1267
  %.not1250.not1278 = icmp sgt i64 %.01225, 0
  br i1 %.not1250.not1278, label %.lr.ph1280, label %._crit_edge1281

.lr.ph1280:                                       ; preds = %.preheader1266
  %342 = getelementptr inbounds i8, ptr %0, i64 688
  %343 = add nsw i64 %.01227, 1
  %344 = getelementptr inbounds i8, ptr %0, i64 1576
  %345 = getelementptr inbounds i8, ptr %0, i64 2232
  br label %412

346:                                              ; preds = %.lr.ph1277, %410
  %.612181276 = phi i64 [ 0, %.lr.ph1277 ], [ %411, %410 ]
  %347 = load ptr, ptr %289, align 8, !tbaa !27
  %348 = getelementptr inbounds i8, ptr %347, i64 %.612181276
  %349 = load i8, ptr %348, align 1, !tbaa !29, !range !30, !noundef !31
  %350 = trunc nuw i8 %349 to i1
  br i1 %350, label %410, label %351

351:                                              ; preds = %346
  %352 = load ptr, ptr %290, align 8, !tbaa !27
  %353 = getelementptr inbounds double, ptr %352, i64 %.612181276
  %354 = getelementptr inbounds i8, ptr %353, i64 8
  %355 = load double, ptr %354, align 8, !tbaa !32
  %356 = load ptr, ptr %291, align 8, !tbaa !27
  %357 = getelementptr inbounds double, ptr %356, i64 %.612181276
  store double %355, ptr %357, align 8, !tbaa !32
  %358 = load ptr, ptr %292, align 8, !tbaa !27
  %359 = add nsw i64 %.612181276, %.01231
  %360 = getelementptr inbounds i8, ptr %358, i64 %359
  %361 = load i8, ptr %360, align 1, !tbaa !29, !range !30, !noundef !31
  %362 = trunc nuw i8 %361 to i1
  br i1 %362, label %363, label %384

363:                                              ; preds = %351
  %364 = load ptr, ptr %291, align 8, !tbaa !27
  %365 = getelementptr inbounds double, ptr %364, i64 %.612181276
  %366 = load double, ptr %365, align 8, !tbaa !32
  %367 = load ptr, ptr %293, align 8, !tbaa !27
  %368 = getelementptr inbounds double, ptr %367, i64 %359
  %369 = load double, ptr %368, align 8, !tbaa !32
  %370 = fsub double %366, %369
  %371 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.01190, double noundef %370, ptr noundef %2)
  %372 = load ptr, ptr %294, align 8, !tbaa !27
  %373 = getelementptr inbounds double, ptr %372, i64 %.612181276
  store double %371, ptr %373, align 8, !tbaa !32
  %374 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !32
  %375 = load ptr, ptr %294, align 8, !tbaa !27
  %376 = getelementptr inbounds double, ptr %375, i64 %.612181276
  %377 = load double, ptr %376, align 8, !tbaa !32
  %378 = fdiv double %374, %377
  %379 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2)
  %380 = fmul double %379, 1.000000e+02
  %381 = tail call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %378, double noundef %380, double noundef %.01190, ptr noundef %2)
  %382 = load ptr, ptr %295, align 8, !tbaa !27
  %383 = getelementptr inbounds double, ptr %382, i64 %.612181276
  store double %381, ptr %383, align 8, !tbaa !32
  br label %384

384:                                              ; preds = %363, %351
  %385 = load ptr, ptr %296, align 8, !tbaa !27
  %386 = getelementptr inbounds i8, ptr %385, i64 %359
  %387 = load i8, ptr %386, align 1, !tbaa !29, !range !30, !noundef !31
  %388 = trunc nuw i8 %387 to i1
  br i1 %388, label %389, label %410

389:                                              ; preds = %384
  %390 = load ptr, ptr %297, align 8, !tbaa !27
  %391 = getelementptr inbounds double, ptr %390, i64 %359
  %392 = load double, ptr %391, align 8, !tbaa !32
  %393 = load ptr, ptr %291, align 8, !tbaa !27
  %394 = getelementptr inbounds double, ptr %393, i64 %.612181276
  %395 = load double, ptr %394, align 8, !tbaa !32
  %396 = fsub double %392, %395
  %397 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.01190, double noundef %396, ptr noundef %2)
  %398 = load ptr, ptr %298, align 8, !tbaa !27
  %399 = getelementptr inbounds double, ptr %398, i64 %.612181276
  store double %397, ptr %399, align 8, !tbaa !32
  %400 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !32
  %401 = load ptr, ptr %298, align 8, !tbaa !27
  %402 = getelementptr inbounds double, ptr %401, i64 %.612181276
  %403 = load double, ptr %402, align 8, !tbaa !32
  %404 = fdiv double %400, %403
  %405 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2)
  %406 = fmul double %405, 1.000000e+02
  %407 = tail call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %404, double noundef %406, double noundef %.01190, ptr noundef %2)
  %408 = load ptr, ptr %299, align 8, !tbaa !27
  %409 = getelementptr inbounds double, ptr %408, i64 %.612181276
  store double %407, ptr %409, align 8, !tbaa !32
  br label %410

410:                                              ; preds = %346, %389, %384
  %411 = add nuw nsw i64 %.612181276, 1
  %exitcond1306.not = icmp eq i64 %411, %.01227
  br i1 %exitcond1306.not, label %.preheader1266, label %346, !llvm.loop !45

412:                                              ; preds = %.lr.ph1280, %412
  %.712191279 = phi i64 [ 0, %.lr.ph1280 ], [ %436, %412 ]
  %413 = load ptr, ptr %342, align 8, !tbaa !27
  %414 = add nsw i64 %343, %.712191279
  %415 = getelementptr inbounds double, ptr %413, i64 %414
  %416 = load double, ptr %415, align 8, !tbaa !32
  %417 = load ptr, ptr %344, align 8, !tbaa !27
  %418 = add nsw i64 %.712191279, %.01223
  %419 = getelementptr inbounds double, ptr %417, i64 %418
  %420 = load double, ptr %419, align 8, !tbaa !32
  %421 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %416, double noundef %420)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %421, ptr noundef nonnull @.str.711, ptr noundef %2)
  %422 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !32
  %423 = load ptr, ptr %344, align 8, !tbaa !27
  %424 = getelementptr inbounds double, ptr %423, i64 %418
  %425 = load double, ptr %424, align 8, !tbaa !32
  %426 = load ptr, ptr %342, align 8, !tbaa !27
  %427 = getelementptr inbounds double, ptr %426, i64 %414
  %428 = load double, ptr %427, align 8, !tbaa !32
  %429 = fsub double %425, %428
  %430 = fdiv double %422, %429
  %431 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2)
  %432 = fmul double %431, 1.000000e+02
  %433 = tail call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %430, double noundef %432, double noundef %.01190, ptr noundef %2)
  %434 = load ptr, ptr %345, align 8, !tbaa !27
  %435 = getelementptr inbounds double, ptr %434, i64 %.712191279
  store double %433, ptr %435, align 8, !tbaa !32
  %436 = add nuw nsw i64 %.712191279, 1
  %exitcond1307.not = icmp eq i64 %436, %.01225
  br i1 %exitcond1307.not, label %._crit_edge1281, label %412, !llvm.loop !46

._crit_edge1281:                                  ; preds = %412, %.preheader1266
  %.71219.lcssa = phi i64 [ 0, %.preheader1266 ], [ %.01225, %412 ]
  %437 = tail call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %277, ptr noundef %2)
  %438 = getelementptr inbounds i8, ptr %0, i64 1712
  store double %437, ptr %438, align 8, !tbaa !47
  %439 = getelementptr inbounds i8, ptr %0, i64 688
  %440 = load ptr, ptr %439, align 8, !tbaa !27
  %441 = load double, ptr %440, align 8, !tbaa !32
  %442 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %441, ptr noundef %2)
  %443 = getelementptr inbounds i8, ptr %0, i64 1720
  store double %442, ptr %443, align 8, !tbaa !48
  %444 = load double, ptr @_ZN11alglib_implL15gipm_initbigvalE, align 8, !tbaa !32
  %445 = load double, ptr @_ZN11alglib_implL18gipm_initbiggrowthE, align 8, !tbaa !32
  %446 = getelementptr inbounds i8, ptr %0, i64 472
  %447 = load double, ptr %446, align 8, !tbaa !49
  %448 = fmul double %447, 1.000000e-04
  %449 = load double, ptr @_ZN11alglib_implL16gipm_relaxfactorE, align 8, !tbaa !32
  %450 = fadd double %449, 1.000000e+00
  %451 = fdiv double %448, %450
  %452 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %451, double noundef 5.000000e-14, ptr noundef %2)
  %453 = getelementptr inbounds i8, ptr %0, i64 1736
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %453, i8 0, i64 16, i1 false)
  %454 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !32
  %455 = getelementptr inbounds i8, ptr %0, i64 1728
  store double %454, ptr %455, align 8, !tbaa !50
  %456 = getelementptr inbounds i8, ptr %0, i64 4560
  store double 1.000000e+300, ptr %456, align 8, !tbaa !51
  %457 = getelementptr inbounds i8, ptr %0, i64 2560
  tail call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef nonnull %276, ptr noundef nonnull %457, ptr noundef %2)
  %458 = getelementptr inbounds i8, ptr %0, i64 1752
  store i64 0, ptr %458, align 8, !tbaa !52
  %459 = load double, ptr %455, align 8, !tbaa !50
  call void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %276, ptr noundef nonnull %281, double noundef %459, ptr noundef nonnull %7, ptr noundef nonnull %9, ptr noundef nonnull %11, ptr noundef %2)
  %460 = load double, ptr %9, align 8, !tbaa !32
  %461 = load double, ptr %11, align 8, !tbaa !32
  %462 = fadd double %460, %461
  %463 = fadd double %462, 1.000000e+01
  %464 = fmul double %463, 1.000000e+01
  %465 = getelementptr inbounds i8, ptr %0, i64 4576
  call void @_ZN11alglib_impl8nlpfinitEdPNS_9nlpfilterEPNS_8ae_stateE(double noundef %464, ptr noundef nonnull %465, ptr noundef %2)
  %466 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %2)
  br label %467

467:                                              ; preds = %1262, %1190, %._crit_edge1281
  %.81220 = phi i64 [ %.71219.lcssa, %._crit_edge1281 ], [ %.13, %1190 ], [ %.13, %1262 ]
  %.11204 = phi i64 [ %.01203, %._crit_edge1281 ], [ %.71210, %1190 ], [ %.71210, %1262 ]
  %.11195 = phi double [ %.01194, %._crit_edge1281 ], [ %.61200, %1190 ], [ %.61200, %1262 ]
  %.11187 = phi i8 [ 1, %._crit_edge1281 ], [ 0, %1190 ], [ 0, %1262 ]
  %.11182 = phi i8 [ 0, %._crit_edge1281 ], [ %.31184, %1190 ], [ %.31184, %1262 ]
  %.11177 = phi i8 [ 0, %._crit_edge1281 ], [ %.31179, %1190 ], [ %.31179, %1262 ]
  %.11162 = phi i8 [ 0, %._crit_edge1281 ], [ %.71168, %1190 ], [ %.71168, %1262 ]
  %.11153 = phi i8 [ %.01152, %._crit_edge1281 ], [ %.61158, %1190 ], [ %.61158, %1262 ]
  %.11148 = phi double [ %452, %._crit_edge1281 ], [ %.31150, %1190 ], [ %.31150, %1262 ]
  %.11143 = phi double [ %444, %._crit_edge1281 ], [ %1197, %1190 ], [ %.31145, %1262 ]
  %.11138 = phi double [ %445, %._crit_edge1281 ], [ %1201, %1190 ], [ %.31140, %1262 ]
  %.11130 = phi i64 [ %.01129, %._crit_edge1281 ], [ %.61135, %1190 ], [ %.61135, %1262 ]
  %.11120 = phi double [ %.01119, %._crit_edge1281 ], [ %.71126, %1190 ], [ %.71126, %1262 ]
  %.11095 = phi i64 [ %.01094, %._crit_edge1281 ], [ %.6, %1190 ], [ %.6, %1262 ]
  %.11090 = phi double [ %466, %._crit_edge1281 ], [ %.31092, %1190 ], [ %.31092, %1262 ]
  %.11085 = phi double [ %466, %._crit_edge1281 ], [ %.31087, %1190 ], [ %.31087, %1262 ]
  %.1 = phi double [ %466, %._crit_edge1281 ], [ %.3, %1190 ], [ %.3, %1262 ]
  %468 = getelementptr inbounds i8, ptr %0, i64 4752
  %469 = load i64, ptr %468, align 8, !tbaa !53
  %470 = getelementptr inbounds i8, ptr %0, i64 4568
  store i64 0, ptr %470, align 8, !tbaa !54
  br label %471

471:                                              ; preds = %1147, %864, %769, %467
  %472 = phi i64 [ %469, %467 ], [ %876, %864 ], [ %1150, %1147 ], [ %773, %769 ]
  %.9 = phi i64 [ %.81220, %467 ], [ %.01212, %864 ], [ %.12, %1147 ], [ %.01212, %769 ]
  %.21205 = phi i64 [ %.11204, %467 ], [ %.41207, %864 ], [ %.61209, %1147 ], [ %.01203, %769 ]
  %.21196 = phi double [ %.11195, %467 ], [ %.01194, %864 ], [ %.51199, %1147 ], [ %.01194, %769 ]
  %.21188 = phi i8 [ %.11187, %467 ], [ %.01186, %864 ], [ %.01186, %1147 ], [ %.01186, %769 ]
  %.21183 = phi i8 [ %.11182, %467 ], [ %.01181, %864 ], [ %.01181, %1147 ], [ %.01181, %769 ]
  %.21178 = phi i8 [ %.11177, %467 ], [ %.01176, %864 ], [ %.01176, %1147 ], [ %.01176, %769 ]
  %.11171 = phi i8 [ 0, %467 ], [ %.01170, %864 ], [ %.21172, %1147 ], [ %.01170, %769 ]
  %.21163 = phi i8 [ %.11162, %467 ], [ %.41165, %864 ], [ %.61167, %1147 ], [ %.01161, %769 ]
  %.21154 = phi i8 [ %.11153, %467 ], [ %.01152, %864 ], [ %.51157, %1147 ], [ %.01152, %769 ]
  %.21149 = phi double [ %.11148, %467 ], [ %.01147, %864 ], [ %.01147, %1147 ], [ %.01147, %769 ]
  %.21144 = phi double [ %.11143, %467 ], [ %.01142, %864 ], [ %.01142, %1147 ], [ %.01142, %769 ]
  %.21139 = phi double [ %.11138, %467 ], [ %.01137, %864 ], [ %.01137, %1147 ], [ %.01137, %769 ]
  %.21131 = phi i64 [ %.11130, %467 ], [ %.01129, %864 ], [ %.51134, %1147 ], [ %.01129, %769 ]
  %.21121 = phi double [ %.11120, %467 ], [ %.41123, %864 ], [ %.61125, %1147 ], [ %.01119, %769 ]
  %.11115 = phi double [ 1.000000e+300, %467 ], [ %.01114, %864 ], [ %.31117, %1147 ], [ %.01114, %769 ]
  %.11110 = phi double [ 1.000000e+300, %467 ], [ %.01109, %864 ], [ %.31112, %1147 ], [ %.01109, %769 ]
  %.11105 = phi double [ 1.000000e+300, %467 ], [ %.01104, %864 ], [ %.31107, %1147 ], [ %.01104, %769 ]
  %.11100 = phi i64 [ %469, %467 ], [ %.01099, %864 ], [ %.31102, %1147 ], [ %.01099, %769 ]
  %.21096 = phi i64 [ %.11095, %467 ], [ %.01094, %864 ], [ %.5, %1147 ], [ %.01094, %769 ]
  %.21091 = phi double [ %.11090, %467 ], [ %.01089, %864 ], [ %1125, %1147 ], [ %.01089, %769 ]
  %.21086 = phi double [ %.11085, %467 ], [ %.01084, %864 ], [ %1126, %1147 ], [ %.01084, %769 ]
  %.2 = phi double [ %.1, %467 ], [ %.0, %864 ], [ %1127, %1147 ], [ %.0, %769 ]
  br i1 %1, label %1151, label %473

473:                                              ; preds = %471
  %474 = getelementptr inbounds i8, ptr %0, i64 480
  %475 = load i64, ptr %474, align 8, !tbaa !55
  %476 = icmp slt i64 %475, 1
  %.not1251 = icmp slt i64 %472, %475
  %or.cond = select i1 %476, i1 true, i1 %.not1251
  %477 = getelementptr inbounds i8, ptr %0, i64 4744
  %478 = load i8, ptr %477, align 8, !tbaa !36, !range !30, !noundef !31
  %479 = trunc nuw i8 %478 to i1
  br i1 %or.cond, label %484, label %480

480:                                              ; preds = %473
  br i1 %479, label %481, label %482

481:                                              ; preds = %480
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.712)
  br label %482

482:                                              ; preds = %481, %480
  %483 = getelementptr inbounds i8, ptr %0, i64 4760
  store i64 5, ptr %483, align 8, !tbaa !56
  br label %1151

484:                                              ; preds = %473
  br i1 %479, label %485, label %500

485:                                              ; preds = %484
  %486 = trunc i64 %472 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.713, i32 noundef %486)
  %487 = getelementptr inbounds i8, ptr %0, i64 1728
  %488 = load double, ptr %487, align 8, !tbaa !50
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.714, double noundef %488)
  %489 = getelementptr inbounds i8, ptr %0, i64 1736
  %490 = load double, ptr %489, align 8, !tbaa !57
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.715, double noundef %490)
  %491 = getelementptr inbounds i8, ptr %0, i64 1744
  %492 = load double, ptr %491, align 8, !tbaa !58
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.716, double noundef %492)
  %493 = getelementptr inbounds i8, ptr %0, i64 1792
  %494 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %493, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.717, double noundef %494)
  %495 = getelementptr inbounds i8, ptr %0, i64 1984
  %496 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %495, ptr noundef %2)
  %497 = getelementptr inbounds i8, ptr %0, i64 2176
  %498 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01225, ptr noundef nonnull %497, ptr noundef %2)
  %499 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %496, double noundef %498, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.718, double noundef %499)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  %.pre = load i8, ptr %477, align 8, !tbaa !36, !range !30
  br label %500

500:                                              ; preds = %485, %484
  %501 = phi i8 [ %.pre, %485 ], [ %478, %484 ]
  %502 = trunc nuw i8 %501 to i1
  br i1 %502, label %503, label %544

503:                                              ; preds = %500
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.719)
  %504 = getelementptr inbounds i8, ptr %0, i64 1792
  %505 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %504, i64 noundef %.01231, ptr noundef %2)
  %506 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %504, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.720, double noundef %505, double noundef %506)
  %507 = getelementptr inbounds i8, ptr %0, i64 2240
  %508 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %507, i64 noundef %.01227, ptr noundef %2)
  %509 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %507, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.721, double noundef %508, double noundef %509)
  %510 = getelementptr inbounds i8, ptr %0, i64 2304
  %511 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %510, i64 noundef %.01227, ptr noundef %2)
  %512 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %510, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.722, double noundef %511, double noundef %512)
  %513 = getelementptr inbounds i8, ptr %0, i64 2368
  %514 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %513, i64 noundef %.01227, ptr noundef %2)
  %515 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %513, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.723, double noundef %514, double noundef %515)
  %516 = getelementptr inbounds i8, ptr %0, i64 1856
  %517 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %516, i64 noundef %.01231, ptr noundef %2)
  %518 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %516, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.724, double noundef %517, double noundef %518)
  %519 = getelementptr inbounds i8, ptr %0, i64 1920
  %520 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %519, i64 noundef %.01231, ptr noundef %2)
  %521 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %519, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.725, double noundef %520, double noundef %521)
  %522 = getelementptr inbounds i8, ptr %0, i64 1984
  %523 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %522, i64 noundef %.01227, ptr noundef %2)
  %524 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %522, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.726, double noundef %523, double noundef %524)
  %525 = getelementptr inbounds i8, ptr %0, i64 2048
  %526 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %525, i64 noundef %.01227, ptr noundef %2)
  %527 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %525, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.727, double noundef %526, double noundef %527)
  %528 = getelementptr inbounds i8, ptr %0, i64 2112
  %529 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %528, i64 noundef %.01227, ptr noundef %2)
  %530 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %528, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.728, double noundef %529, double noundef %530)
  %531 = getelementptr inbounds i8, ptr %0, i64 2176
  %532 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %531, i64 noundef %.01225, ptr noundef %2)
  %533 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01225, ptr noundef nonnull %531, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.729, double noundef %532, double noundef %533)
  %534 = getelementptr inbounds i8, ptr %0, i64 2432
  %535 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %534, i64 noundef %.01227, ptr noundef %2)
  %536 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %534, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.730, double noundef %535, double noundef %536)
  %537 = getelementptr inbounds i8, ptr %0, i64 2496
  %538 = call noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %537, i64 noundef %.01227, ptr noundef %2)
  %539 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %537, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.731, double noundef %538, double noundef %539)
  %540 = getelementptr inbounds i8, ptr %0, i64 4745
  %541 = load i8, ptr %540, align 1, !tbaa !59, !range !30, !noundef !31
  %542 = trunc nuw i8 %541 to i1
  br i1 %542, label %543, label %544

543:                                              ; preds = %503
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.732)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.733)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %504, i64 noundef 0, i64 noundef %.01231, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.734)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %507, i64 noundef 0, i64 noundef %.01227, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %544

544:                                              ; preds = %503, %543, %500
  %545 = getelementptr inbounds i8, ptr %0, i64 1760
  %546 = getelementptr inbounds i8, ptr %0, i64 3360
  %547 = getelementptr inbounds i8, ptr %0, i64 1728
  %548 = load double, ptr %547, align 8, !tbaa !50
  %549 = getelementptr inbounds i8, ptr %0, i64 4936
  call void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %545, ptr noundef nonnull %546, double noundef %548, ptr noundef nonnull %549, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %2)
  %550 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %549, ptr noundef %2)
  %551 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %550, ptr noundef %2)
  %552 = load double, ptr %13, align 8, !tbaa !32
  %553 = load double, ptr %14, align 8, !tbaa !32
  %554 = load double, ptr %15, align 8, !tbaa !32
  %555 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %552, double noundef %553, double noundef %554, ptr noundef %2)
  %556 = load i8, ptr %477, align 8, !tbaa !36, !range !30, !noundef !31
  %557 = trunc nuw i8 %556 to i1
  br i1 %557, label %558, label %562

558:                                              ; preds = %544
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.735)
  %559 = load double, ptr %13, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.736, double noundef %559)
  %560 = load double, ptr %14, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.737, double noundef %560)
  %561 = load double, ptr %15, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.738, double noundef %561)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.739, double noundef %555)
  br label %562

562:                                              ; preds = %558, %544
  %563 = load double, ptr %13, align 8, !tbaa !32
  %564 = load double, ptr @_ZN11alglib_implL25gipm_checkpointacceptanceE, align 8, !tbaa !32
  %565 = fmul double %.11115, %564
  %566 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %563, double noundef %565)
  br i1 %566, label %577, label %567

567:                                              ; preds = %562
  %568 = load double, ptr %14, align 8, !tbaa !32
  %569 = load double, ptr @_ZN11alglib_implL25gipm_checkpointacceptanceE, align 8, !tbaa !32
  %570 = fmul double %.11110, %569
  %571 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %568, double noundef %570)
  br i1 %571, label %577, label %572

572:                                              ; preds = %567
  %573 = load double, ptr %15, align 8, !tbaa !32
  %574 = load double, ptr @_ZN11alglib_implL25gipm_checkpointacceptanceE, align 8, !tbaa !32
  %575 = fmul double %.11105, %574
  %576 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %573, double noundef %575)
  br i1 %576, label %577, label %596

577:                                              ; preds = %572, %567, %562
  %578 = load double, ptr %13, align 8, !tbaa !32
  %579 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %578, double noundef %.11115)
  br i1 %579, label %586, label %580

580:                                              ; preds = %577
  %581 = load double, ptr %14, align 8, !tbaa !32
  %582 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %581, double noundef %.11110)
  br i1 %582, label %586, label %583

583:                                              ; preds = %580
  %584 = load double, ptr %15, align 8, !tbaa !32
  %585 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %584, double noundef %.11105)
  br label %586

586:                                              ; preds = %583, %580, %577
  %587 = phi i1 [ true, %580 ], [ true, %577 ], [ %585, %583 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %587, ptr noundef nonnull @.str.740, ptr noundef %2)
  %588 = load double, ptr %13, align 8, !tbaa !32
  %589 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %.11115, double noundef %588, ptr noundef %2)
  %590 = load double, ptr %14, align 8, !tbaa !32
  %591 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %.11110, double noundef %590, ptr noundef %2)
  %592 = load double, ptr %15, align 8, !tbaa !32
  %593 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %.11105, double noundef %592, ptr noundef %2)
  %594 = getelementptr inbounds i8, ptr %0, i64 4752
  %595 = load i64, ptr %594, align 8, !tbaa !53
  br label %596

596:                                              ; preds = %586, %572
  %.21116 = phi double [ %589, %586 ], [ %.11115, %572 ]
  %.21111 = phi double [ %591, %586 ], [ %.11110, %572 ]
  %.21106 = phi double [ %593, %586 ], [ %.11105, %572 ]
  %.21101 = phi i64 [ %595, %586 ], [ %.11100, %572 ]
  %597 = load double, ptr %13, align 8, !tbaa !32
  %598 = load double, ptr %4, align 8, !tbaa !32
  %599 = fdiv double %597, %598
  %600 = load double, ptr %14, align 8, !tbaa !32
  %601 = load double, ptr %5, align 8, !tbaa !32
  %602 = fdiv double %600, %601
  %603 = load double, ptr %15, align 8, !tbaa !32
  %604 = load double, ptr %6, align 8, !tbaa !32
  %605 = fdiv double %603, %604
  %606 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %599, double noundef %602, double noundef %605, ptr noundef %2)
  %607 = getelementptr inbounds i8, ptr %0, i64 472
  %608 = load double, ptr %607, align 8, !tbaa !49
  %609 = fmul double %608, 9.000000e-01
  %610 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %606, double noundef %609)
  br i1 %610, label %611, label %620

611:                                              ; preds = %596
  %612 = load i8, ptr %477, align 8, !tbaa !36, !range !30, !noundef !31
  %613 = trunc nuw i8 %612 to i1
  br i1 %613, label %614, label %616

614:                                              ; preds = %611
  %615 = load double, ptr %607, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.741, double noundef %615)
  br label %616

616:                                              ; preds = %614, %611
  %617 = getelementptr inbounds i8, ptr %0, i64 4752
  %618 = load i64, ptr %617, align 8, !tbaa !53
  %619 = add nsw i64 %618, 1
  store i64 %619, ptr %617, align 8, !tbaa !53
  br label %1151

620:                                              ; preds = %596
  %621 = getelementptr inbounds i8, ptr %0, i64 1736
  %622 = load double, ptr %621, align 8, !tbaa !57
  %623 = load double, ptr @_ZN11alglib_implL14gipm_lambdamaxE, align 8, !tbaa !32
  %624 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %622, double noundef %623)
  br i1 %624, label %625, label %633

625:                                              ; preds = %620
  %626 = load i8, ptr %477, align 8, !tbaa !36, !range !30, !noundef !31
  %627 = trunc nuw i8 %626 to i1
  br i1 %627, label %628, label %629

628:                                              ; preds = %625
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.742)
  br label %629

629:                                              ; preds = %628, %625
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %621, align 8, !tbaa !32
  %630 = getelementptr inbounds i8, ptr %0, i64 4752
  %631 = load i64, ptr %630, align 8, !tbaa !53
  %632 = add nsw i64 %631, 1
  store i64 %632, ptr %630, align 8, !tbaa !53
  br label %1151

633:                                              ; preds = %620
  %634 = trunc nuw i8 %.21188 to i1
  br i1 %634, label %635, label %.thread1255

635:                                              ; preds = %633
  %636 = load double, ptr %13, align 8, !tbaa !32
  %637 = load double, ptr %4, align 8, !tbaa !32
  %638 = fdiv double %636, %637
  %639 = load double, ptr %14, align 8, !tbaa !32
  %640 = load double, ptr %5, align 8, !tbaa !32
  %641 = fdiv double %639, %640
  %642 = load double, ptr %15, align 8, !tbaa !32
  %643 = load double, ptr %6, align 8, !tbaa !32
  %644 = fdiv double %642, %643
  %645 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %638, double noundef %641, double noundef %644, ptr noundef %2)
  %646 = load double, ptr @_ZN11alglib_implL42gipm_firstiterationcheckpointstagnationepsE, align 8, !tbaa !32
  %647 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %645, double noundef %646)
  br i1 %647, label %648, label %.thread1254

648:                                              ; preds = %635
  %649 = getelementptr inbounds i8, ptr %0, i64 4752
  %650 = load i64, ptr %649, align 8, !tbaa !53
  %651 = load i64, ptr @_ZN11alglib_implL31gipm_maxcheckpointstagnationitsE, align 8, !tbaa !28
  %652 = add nsw i64 %651, %.21101
  %653 = icmp sgt i64 %650, %652
  br i1 %653, label %659, label %.thread1254

.thread1255:                                      ; preds = %633
  %654 = getelementptr inbounds i8, ptr %0, i64 4752
  %655 = load i64, ptr %654, align 8, !tbaa !53
  %656 = load i64, ptr @_ZN11alglib_implL31gipm_maxcheckpointstagnationitsE, align 8, !tbaa !28
  %657 = add nsw i64 %656, %.21101
  %658 = icmp sgt i64 %655, %657
  br i1 %658, label %659, label %670

659:                                              ; preds = %.thread1255, %648
  %660 = phi i64 [ %655, %.thread1255 ], [ %650, %648 ]
  %661 = phi i64 [ %656, %.thread1255 ], [ %651, %648 ]
  %662 = phi ptr [ %654, %.thread1255 ], [ %649, %648 ]
  %663 = load i8, ptr %477, align 8, !tbaa !36, !range !30, !noundef !31
  %664 = trunc nuw i8 %663 to i1
  br i1 %664, label %665, label %667

665:                                              ; preds = %659
  %666 = trunc i64 %661 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.743, i32 noundef %666)
  %.pre1324 = load i64, ptr %662, align 8, !tbaa !53
  br label %667

667:                                              ; preds = %665, %659
  %668 = phi i64 [ %.pre1324, %665 ], [ %660, %659 ]
  %669 = add nsw i64 %668, 1
  store i64 %669, ptr %662, align 8, !tbaa !53
  br label %1151

670:                                              ; preds = %.thread1255
  %671 = getelementptr inbounds i8, ptr %0, i64 4568
  %672 = load i64, ptr %671, align 8, !tbaa !54
  %673 = add nsw i64 %672, 1
  store i64 %673, ptr %671, align 8, !tbaa !54
  %674 = load double, ptr %13, align 8, !tbaa !32
  %675 = fsub double %674, %.21091
  %676 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %675, ptr noundef %2)
  %677 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol1E, align 8, !tbaa !32
  %678 = fmul double %.21091, %677
  %679 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol2E, align 8, !tbaa !32
  %680 = load double, ptr %607, align 8, !tbaa !49
  %681 = fmul double %679, %680
  %682 = call noundef double @_ZN11alglib_impl8rmaxabs2EddPNS_8ae_stateE(double noundef %678, double noundef %681, ptr noundef %2)
  %683 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %676, double noundef %682)
  br i1 %683, label %684, label %685

684:                                              ; preds = %670
  store i64 0, ptr %671, align 8, !tbaa !54
  br label %685

685:                                              ; preds = %684, %670
  %686 = load double, ptr %14, align 8, !tbaa !32
  %687 = fsub double %686, %.21086
  %688 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %687, ptr noundef %2)
  %689 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol1E, align 8, !tbaa !32
  %690 = fmul double %.21086, %689
  %691 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol2E, align 8, !tbaa !32
  %692 = load double, ptr %607, align 8, !tbaa !49
  %693 = fmul double %691, %692
  %694 = call noundef double @_ZN11alglib_impl8rmaxabs2EddPNS_8ae_stateE(double noundef %690, double noundef %693, ptr noundef %2)
  %695 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %688, double noundef %694)
  br i1 %695, label %696, label %697

696:                                              ; preds = %685
  store i64 0, ptr %671, align 8, !tbaa !54
  br label %697

697:                                              ; preds = %696, %685
  %698 = load double, ptr %15, align 8, !tbaa !32
  %699 = fsub double %698, %.2
  %700 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %699, ptr noundef %2)
  %701 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol1E, align 8, !tbaa !32
  %702 = fmul double %.2, %701
  %703 = load double, ptr @_ZN11alglib_implL22gipm_rhsstagnationtol2E, align 8, !tbaa !32
  %704 = load double, ptr %607, align 8, !tbaa !49
  %705 = fmul double %703, %704
  %706 = call noundef double @_ZN11alglib_impl8rmaxabs2EddPNS_8ae_stateE(double noundef %702, double noundef %705, ptr noundef %2)
  %707 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %700, double noundef %706)
  br i1 %707, label %708, label %._crit_edge1322

._crit_edge1322:                                  ; preds = %697
  %.pre1323 = load i64, ptr %671, align 8, !tbaa !54
  br label %709

708:                                              ; preds = %697
  store i64 0, ptr %671, align 8, !tbaa !54
  br label %709

709:                                              ; preds = %._crit_edge1322, %708
  %710 = phi i64 [ %.pre1323, %._crit_edge1322 ], [ 0, %708 ]
  %711 = load i64, ptr @_ZN11alglib_implL24gipm_maxrhsstagnationitsE, align 8, !tbaa !28
  %712 = icmp sgt i64 %710, %711
  br i1 %712, label %713, label %.thread1254

713:                                              ; preds = %709
  %714 = load i8, ptr %477, align 8, !tbaa !36, !range !30, !noundef !31
  %715 = trunc nuw i8 %714 to i1
  br i1 %715, label %716, label %718

716:                                              ; preds = %713
  %717 = trunc i64 %711 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.744, i32 noundef %717)
  br label %718

718:                                              ; preds = %716, %713
  %719 = load i64, ptr %654, align 8, !tbaa !53
  %720 = add nsw i64 %719, 1
  store i64 %720, ptr %654, align 8, !tbaa !53
  br label %1151

.thread1254:                                      ; preds = %635, %648, %709
  %721 = load double, ptr %547, align 8, !tbaa !50
  %722 = getelementptr inbounds i8, ptr %0, i64 5704
  call void @_ZN11alglib_implL16gipm_condenselhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %545, ptr noundef nonnull %546, double noundef %721, ptr noundef nonnull %722, ptr noundef %2)
  %723 = getelementptr inbounds i8, ptr %0, i64 488
  store i64 1001, ptr %723, align 8, !tbaa !42
  %724 = getelementptr inbounds i8, ptr %0, i64 1194
  store i8 0, ptr %724, align 2, !tbaa !60
  %725 = getelementptr inbounds i8, ptr %0, i64 568
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01221, ptr noundef nonnull %725, ptr noundef %2)
  %726 = getelementptr inbounds i8, ptr %0, i64 6664
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %726, i64 noundef 0, ptr noundef nonnull %725, i64 noundef 0, ptr noundef %2)
  %727 = getelementptr inbounds i8, ptr %0, i64 6728
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %727, i64 noundef 0, ptr noundef nonnull %725, i64 noundef %.01231, ptr noundef %2)
  %728 = getelementptr inbounds i8, ptr %0, i64 6792
  %729 = add nsw i64 %.01227, %.01231
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01225, ptr noundef nonnull %728, i64 noundef 0, ptr noundef nonnull %725, i64 noundef %729, ptr noundef %2)
  br label %1321

730:                                              ; preds = %113
  %731 = getelementptr inbounds i8, ptr %0, i64 1194
  %732 = load i8, ptr %731, align 2, !tbaa !60, !range !30, !noundef !31
  %733 = trunc nuw i8 %732 to i1
  %734 = getelementptr inbounds i8, ptr %0, i64 1752
  br i1 %733, label %776, label %735

735:                                              ; preds = %730
  %736 = load i64, ptr %734, align 8, !tbaa !52
  %737 = load i64, ptr @_ZN11alglib_implL39gipm_maxsubsequentfailuresforweakgrowthE, align 8, !tbaa !28
  %.not1245 = icmp sgt i64 %736, %737
  %738 = getelementptr inbounds i8, ptr %0, i64 4744
  %739 = load i8, ptr %738, align 8, !tbaa !36, !range !30, !noundef !31
  %740 = trunc nuw i8 %739 to i1
  br i1 %.not1245, label %758, label %741

741:                                              ; preds = %735
  br i1 %740, label %742, label %743

742:                                              ; preds = %741
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.745)
  br label %743

743:                                              ; preds = %742, %741
  %744 = trunc nuw i8 %.01161 to i1
  %745 = load double, ptr @_ZN11alglib_implL17gipm_lambdagrowthE, align 8, !tbaa !32
  %746 = getelementptr inbounds i8, ptr %0, i64 1736
  %747 = load double, ptr %746, align 8, !tbaa !57
  %748 = getelementptr inbounds i8, ptr %0, i64 1728
  %749 = load double, ptr %748, align 8, !tbaa !50
  %750 = tail call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %747, double noundef %749, ptr noundef %2)
  %751 = fmul double %745, %750
  %752 = load double, ptr %746, align 8, !tbaa !57
  %753 = fmul double %752, 1.000000e+01
  %754 = load double, ptr %748, align 8, !tbaa !50
  %755 = fmul double %754, 1.000000e+01
  %756 = tail call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %753, double noundef %755, ptr noundef %2)
  %757 = tail call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %744, double noundef %751, double noundef %756, ptr noundef %2)
  store double %757, ptr %746, align 8, !tbaa !57
  br label %769

758:                                              ; preds = %735
  br i1 %740, label %759, label %760

759:                                              ; preds = %758
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.746)
  br label %760

760:                                              ; preds = %759, %758
  %761 = load double, ptr @_ZN11alglib_implL22gipm_lambdarapidgrowthE, align 8, !tbaa !32
  %762 = getelementptr inbounds i8, ptr %0, i64 1736
  %763 = load double, ptr %762, align 8, !tbaa !57
  %764 = fmul double %761, %763
  %765 = getelementptr inbounds i8, ptr %0, i64 1728
  %766 = load double, ptr %765, align 8, !tbaa !50
  %767 = fmul double %766, 1.000000e-03
  %768 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %764, double noundef %767, ptr noundef %2)
  store double %768, ptr %762, align 8, !tbaa !57
  br label %769

769:                                              ; preds = %760, %743
  %770 = getelementptr inbounds i8, ptr %0, i64 1744
  store double 1.000000e+00, ptr %770, align 8, !tbaa !58
  %771 = getelementptr inbounds i8, ptr %0, i64 4752
  %772 = load i64, ptr %771, align 8, !tbaa !53
  %773 = add nsw i64 %772, 1
  store i64 %773, ptr %771, align 8, !tbaa !53
  %774 = load i64, ptr %734, align 8, !tbaa !52
  %775 = add nsw i64 %774, 1
  store i64 %775, ptr %734, align 8, !tbaa !52
  br label %471

776:                                              ; preds = %730
  store i64 0, ptr %734, align 8, !tbaa !52
  %777 = trunc nuw i8 %.01161 to i1
  br i1 %777, label %782, label %778

778:                                              ; preds = %776
  %779 = getelementptr inbounds i8, ptr %0, i64 1736
  %780 = load double, ptr %779, align 8, !tbaa !57
  %781 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %780, double noundef 0.000000e+00)
  br label %782

782:                                              ; preds = %778, %776
  %783 = phi i1 [ true, %776 ], [ %781, %778 ]
  %784 = zext i1 %783 to i8
  %785 = getelementptr inbounds i8, ptr %0, i64 6856
  tail call void @_ZN11alglib_implL19gipm_varsinitbyzeroEPNS_8gipmvarsElllPNS_8ae_stateE(ptr noundef nonnull %785, i64 noundef %.01231, i64 noundef %.01227, i64 noundef %.01225, ptr noundef %2)
  br label %786

786:                                              ; preds = %851, %782
  %.31206 = phi i64 [ 0, %782 ], [ %852, %851 ]
  %.31164 = phi i8 [ %784, %782 ], [ %.01161, %851 ]
  %.31122 = phi double [ 1.000000e+300, %782 ], [ %836, %851 ]
  %787 = load i64, ptr @_ZN11alglib_implL14gipm_maxrfsitsE, align 8, !tbaa !28
  %.not1246 = icmp slt i64 %.31206, %787
  br i1 %.not1246, label %788, label %853

788:                                              ; preds = %786
  %789 = getelementptr inbounds i8, ptr %0, i64 1760
  %790 = getelementptr inbounds i8, ptr %0, i64 3360
  %791 = getelementptr inbounds i8, ptr %0, i64 1728
  %792 = load double, ptr %791, align 8, !tbaa !50
  %793 = getelementptr inbounds i8, ptr %0, i64 4936
  %794 = getelementptr inbounds i8, ptr %0, i64 5704
  tail call void @_ZN11alglib_implL16gipm_condenserhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %789, ptr noundef nonnull %790, double noundef %792, ptr noundef nonnull %793, ptr noundef nonnull %794, ptr noundef %2)
  %795 = getelementptr inbounds i8, ptr %0, i64 488
  store i64 1002, ptr %795, align 8, !tbaa !42
  %796 = add nsw i64 %.01229, %.01231
  %797 = getelementptr inbounds i8, ptr %0, i64 568
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %796, ptr noundef nonnull %797, ptr noundef %2)
  %798 = getelementptr inbounds i8, ptr %0, i64 6472
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %798, i64 noundef 0, ptr noundef nonnull %797, i64 noundef 0, ptr noundef %2)
  %799 = getelementptr inbounds i8, ptr %0, i64 6536
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %799, i64 noundef 0, ptr noundef nonnull %797, i64 noundef %.01231, ptr noundef %2)
  %800 = getelementptr inbounds i8, ptr %0, i64 6600
  %801 = add nsw i64 %.01227, %.01231
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01225, ptr noundef nonnull %800, i64 noundef 0, ptr noundef nonnull %797, i64 noundef %801, ptr noundef %2)
  %802 = getelementptr inbounds i8, ptr %0, i64 1064
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %796, ptr noundef nonnull %802, ptr noundef %2)
  br label %1321

803:                                              ; preds = %113
  %804 = getelementptr inbounds i8, ptr %0, i64 1760
  %805 = getelementptr inbounds i8, ptr %0, i64 3360
  %806 = getelementptr inbounds i8, ptr %0, i64 1728
  %807 = load double, ptr %806, align 8, !tbaa !50
  %808 = getelementptr inbounds i8, ptr %0, i64 4936
  %809 = getelementptr inbounds i8, ptr %0, i64 5704
  %810 = getelementptr inbounds i8, ptr %0, i64 1064
  %811 = getelementptr inbounds i8, ptr %0, i64 7656
  tail call void @_ZN11alglib_implL19gipm_unpacksolutionEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPKNS_9ae_vectorEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %804, ptr noundef nonnull %805, double noundef %807, ptr noundef nonnull %808, ptr noundef nonnull %809, ptr noundef nonnull %810, ptr noundef nonnull %811, ptr noundef %2)
  %812 = getelementptr inbounds i8, ptr %0, i64 6856
  tail call void @_ZN11alglib_implL18gipm_varsapplystepEPNS_8gipmvarsEPKS0_dPNS_8ae_stateE(ptr noundef nonnull %812, ptr noundef nonnull %811, double noundef 1.000000e+00, ptr noundef %2)
  %813 = getelementptr inbounds i8, ptr %0, i64 488
  store i64 1003, ptr %813, align 8, !tbaa !42
  %814 = add nsw i64 %.01229, %.01231
  %815 = getelementptr inbounds i8, ptr %0, i64 568
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %814, ptr noundef nonnull %815, ptr noundef %2)
  %816 = add nsw i64 %814, %.01231
  %817 = getelementptr inbounds i8, ptr %0, i64 1128
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %816, ptr noundef nonnull %817, ptr noundef %2)
  %818 = getelementptr inbounds i8, ptr %0, i64 7688
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %818, i64 noundef 0, ptr noundef nonnull %815, i64 noundef 0, ptr noundef %2)
  %819 = getelementptr inbounds i8, ptr %0, i64 7880
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %819, i64 noundef 0, ptr noundef nonnull %815, i64 noundef %.01231, ptr noundef %2)
  %820 = getelementptr inbounds i8, ptr %0, i64 8072
  %821 = add nsw i64 %.01227, %.01231
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01225, ptr noundef nonnull %820, i64 noundef 0, ptr noundef nonnull %815, i64 noundef %821, ptr noundef %2)
  br label %1321

822:                                              ; preds = %113
  %823 = getelementptr inbounds i8, ptr %0, i64 8456
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %823, ptr noundef %2)
  %824 = getelementptr inbounds i8, ptr %0, i64 8520
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01229, ptr noundef nonnull %824, ptr noundef %2)
  %825 = getelementptr inbounds i8, ptr %0, i64 8584
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %825, ptr noundef %2)
  %826 = getelementptr inbounds i8, ptr %0, i64 1128
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %826, i64 noundef 0, ptr noundef nonnull %823, i64 noundef 0, ptr noundef %2)
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01229, ptr noundef nonnull %826, i64 noundef %.01231, ptr noundef nonnull %824, i64 noundef 0, ptr noundef %2)
  %827 = add nsw i64 %.01229, %.01231
  tail call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %826, i64 noundef %827, ptr noundef nonnull %825, i64 noundef 0, ptr noundef %2)
  %828 = getelementptr inbounds i8, ptr %0, i64 1760
  %829 = getelementptr inbounds i8, ptr %0, i64 3360
  %830 = getelementptr inbounds i8, ptr %0, i64 1728
  %831 = load double, ptr %830, align 8, !tbaa !50
  %832 = getelementptr inbounds i8, ptr %0, i64 1736
  %833 = load double, ptr %832, align 8, !tbaa !57
  %834 = getelementptr inbounds i8, ptr %0, i64 7656
  %835 = getelementptr inbounds i8, ptr %0, i64 4936
  %836 = tail call noundef double @_ZN11alglib_implL26gipm_computeupdateresidualEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEddS4_PKNS_9ae_vectorESA_SA_PNS_7gipmrhsEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %828, ptr noundef nonnull %829, double noundef %831, double noundef %833, ptr noundef nonnull %834, ptr noundef nonnull %823, ptr noundef nonnull %824, ptr noundef nonnull %825, ptr noundef nonnull %835, ptr noundef %2)
  %837 = getelementptr inbounds i8, ptr %0, i64 4744
  %838 = load i8, ptr %837, align 8, !tbaa !36, !range !30, !noundef !31
  %839 = trunc nuw i8 %838 to i1
  br i1 %839, label %840, label %843

840:                                              ; preds = %822
  %841 = tail call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %.01127, double noundef 1.000000e+00, ptr noundef %2)
  %842 = fdiv double %836, %841
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.747, double noundef %842)
  br label %843

843:                                              ; preds = %840, %822
  %844 = load double, ptr @_ZN11alglib_implL11gipm_rhstolE, align 8, !tbaa !32
  %845 = fmul double %.01127, %844
  %846 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %836, double noundef %845)
  br i1 %846, label %847, label %851

847:                                              ; preds = %843
  %848 = load i8, ptr %837, align 8, !tbaa !36, !range !30, !noundef !31
  %849 = trunc nuw i8 %848 to i1
  br i1 %849, label %850, label %853

850:                                              ; preds = %847
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.748)
  br label %853

851:                                              ; preds = %843
  %852 = add nsw i64 %.01203, 1
  br label %786

853:                                              ; preds = %847, %850, %786
  %.41207 = phi i64 [ %.31206, %786 ], [ %.01203, %850 ], [ %.01203, %847 ]
  %.41165 = phi i8 [ %.31164, %786 ], [ %.01161, %850 ], [ %.01161, %847 ]
  %.41123 = phi double [ %.31122, %786 ], [ %836, %850 ], [ %836, %847 ]
  %854 = load double, ptr @_ZN11alglib_implL11gipm_rhstolE, align 8, !tbaa !32
  %855 = fmul double %854, 2.000000e+00
  %856 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %855, double noundef 1.000000e-03, ptr noundef %2)
  %857 = fmul double %.01127, %856
  %858 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.41123, double noundef %857)
  br i1 %858, label %859, label %877

859:                                              ; preds = %853
  %860 = getelementptr inbounds i8, ptr %0, i64 4744
  %861 = load i8, ptr %860, align 8, !tbaa !36, !range !30, !noundef !31
  %862 = trunc nuw i8 %861 to i1
  br i1 %862, label %863, label %864

863:                                              ; preds = %859
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.749)
  br label %864

864:                                              ; preds = %863, %859
  %865 = getelementptr inbounds i8, ptr %0, i64 1736
  %866 = load double, ptr %865, align 8, !tbaa !57
  %867 = fmul double %866, 1.000000e+01
  %868 = getelementptr inbounds i8, ptr %0, i64 1728
  %869 = load double, ptr %868, align 8, !tbaa !50
  %870 = fdiv double 1.000000e+00, %869
  %871 = fmul double %870, 5.000000e-13
  %872 = tail call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %867, double noundef %871, ptr noundef %2)
  store double %872, ptr %865, align 8, !tbaa !57
  %873 = getelementptr inbounds i8, ptr %0, i64 1744
  store double 1.000000e+00, ptr %873, align 8, !tbaa !58
  %874 = getelementptr inbounds i8, ptr %0, i64 4752
  %875 = load i64, ptr %874, align 8, !tbaa !53
  %876 = add nsw i64 %875, 1
  store i64 %876, ptr %874, align 8, !tbaa !53
  br label %471

877:                                              ; preds = %853
  %878 = getelementptr inbounds i8, ptr %0, i64 4745
  %879 = load i8, ptr %878, align 1, !tbaa !59, !range !30, !noundef !31
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %884

881:                                              ; preds = %877
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.750)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.751)
  %882 = getelementptr inbounds i8, ptr %0, i64 6888
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %882, i64 noundef 0, i64 noundef %.01231, ptr noundef %2)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.752)
  %883 = getelementptr inbounds i8, ptr %0, i64 7336
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %883, i64 noundef 0, i64 noundef %.01227, ptr noundef %2)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %884

884:                                              ; preds = %881, %877
  %885 = getelementptr inbounds i8, ptr %0, i64 1760
  %886 = getelementptr inbounds i8, ptr %0, i64 6856
  %887 = tail call noundef double @_ZN11alglib_implL22gipm_computesteplengthEPKNS_9gipmstateEPKNS_8gipmvarsES5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %885, ptr noundef nonnull %886, ptr noundef %2)
  %888 = getelementptr inbounds i8, ptr %0, i64 4744
  %889 = load i8, ptr %888, align 8, !tbaa !36, !range !30, !noundef !31
  %890 = trunc nuw i8 %889 to i1
  br i1 %890, label %891, label %892

891:                                              ; preds = %884
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.753, double noundef %887)
  br label %892

892:                                              ; preds = %891, %884
  %893 = getelementptr inbounds i8, ptr %0, i64 3360
  %894 = getelementptr inbounds i8, ptr %0, i64 1728
  %895 = load double, ptr %894, align 8, !tbaa !50
  call void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %885, ptr noundef nonnull %893, double noundef %895, ptr noundef nonnull %7, ptr noundef nonnull %9, ptr noundef nonnull %11, ptr noundef %2)
  %896 = load i8, ptr %888, align 8, !tbaa !36, !range !30, !noundef !31
  %897 = trunc nuw i8 %896 to i1
  br i1 %897, label %898, label %902

898:                                              ; preds = %892
  %899 = load double, ptr %7, align 8, !tbaa !32
  %900 = load double, ptr %9, align 8, !tbaa !32
  %901 = load double, ptr %11, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.754, double noundef %899, double noundef %900, double noundef %901)
  br label %902

902:                                              ; preds = %.thread1257, %892, %898, %992
  %.10 = phi i64 [ %.11.lcssa, %992 ], [ %.01212, %898 ], [ %.01212, %892 ], [ %.111270, %.thread1257 ]
  %.51208 = phi i64 [ %.01203, %992 ], [ %.41207, %898 ], [ %.41207, %892 ], [ %.01203, %.thread1257 ]
  %.31197 = phi double [ %994, %992 ], [ %887, %898 ], [ %887, %892 ], [ %952, %.thread1257 ]
  %.51166 = phi i8 [ %.01161, %992 ], [ %.41165, %898 ], [ %.41165, %892 ], [ %.01161, %.thread1257 ]
  %.31155 = phi i8 [ 0, %992 ], [ %.01152, %898 ], [ %.01152, %892 ], [ 1, %.thread1257 ]
  %.31132 = phi i64 [ %.01129, %992 ], [ 0, %898 ], [ 0, %892 ], [ %.01129, %.thread1257 ]
  %.51124 = phi double [ %.01119, %992 ], [ %.41123, %898 ], [ %.41123, %892 ], [ %.01119, %.thread1257 ]
  %.31097 = phi i64 [ %993, %992 ], [ 0, %898 ], [ 0, %892 ], [ %951, %.thread1257 ]
  %903 = load double, ptr @_ZN11alglib_implL14gipm_smallstepE, align 8, !tbaa !32
  %904 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %.31197, double noundef %903)
  %905 = zext i1 %904 to i64
  %spec.select = add nsw i64 %.31132, %905
  %906 = load i64, ptr @_ZN11alglib_implL19gipm_maxsmalltrialsE, align 8, !tbaa !28
  %.not1247 = icmp slt i64 %spec.select, %906
  br i1 %.not1247, label %907, label %995

907:                                              ; preds = %902
  %908 = getelementptr inbounds i8, ptr %0, i64 1760
  %909 = getelementptr inbounds i8, ptr %0, i64 8648
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef nonnull %908, ptr noundef nonnull %909, ptr noundef %2)
  %910 = getelementptr inbounds i8, ptr %0, i64 6856
  call void @_ZN11alglib_implL18gipm_varsapplystepEPNS_8gipmvarsEPKS0_dPNS_8ae_stateE(ptr noundef nonnull %909, ptr noundef nonnull %910, double noundef %.31197, ptr noundef %2)
  %911 = getelementptr inbounds i8, ptr %0, i64 1584
  %912 = getelementptr inbounds i8, ptr %0, i64 8680
  call void @_ZN11alglib_impl10rmergemaxvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %911, ptr noundef nonnull %912, ptr noundef %2)
  %913 = getelementptr inbounds i8, ptr %0, i64 1648
  call void @_ZN11alglib_impl10rmergeminvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %913, ptr noundef nonnull %912, ptr noundef %2)
  %914 = getelementptr inbounds i8, ptr %0, i64 488
  store i64 1, ptr %914, align 8, !tbaa !42
  %915 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %915, align 8, !tbaa !43
  %916 = add nsw i64 %.01229, %.01231
  %917 = getelementptr inbounds i8, ptr %0, i64 568
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %916, ptr noundef nonnull %917, ptr noundef %2)
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %912, i64 noundef 0, ptr noundef nonnull %917, i64 noundef 0, ptr noundef %2)
  %918 = getelementptr inbounds i8, ptr %0, i64 8872
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %918, i64 noundef 0, ptr noundef nonnull %917, i64 noundef %.01231, ptr noundef %2)
  %919 = getelementptr inbounds i8, ptr %0, i64 9064
  %920 = add nsw i64 %.01227, %.01231
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01225, ptr noundef nonnull %919, i64 noundef 0, ptr noundef nonnull %917, i64 noundef %920, ptr noundef %2)
  %921 = add nsw i64 %.01229, 1
  %922 = getelementptr inbounds i8, ptr %0, i64 632
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %921, ptr noundef nonnull %922, ptr noundef %2)
  br label %1321

923:                                              ; preds = %113
  %924 = getelementptr inbounds i8, ptr %0, i64 8648
  %925 = getelementptr inbounds i8, ptr %0, i64 8680
  %926 = getelementptr inbounds i8, ptr %0, i64 632
  %927 = add nsw i64 %.01229, 1
  %928 = getelementptr inbounds i8, ptr %0, i64 696
  %929 = getelementptr inbounds i8, ptr %0, i64 9448
  tail call void @_ZN11alglib_impl17vfjinitfromsparseEPKNS_9ae_vectorElS2_lPKNS_12sparsematrixEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %925, i64 noundef %.01231, ptr noundef nonnull %926, i64 noundef %927, ptr noundef nonnull %928, ptr noundef nonnull %929, ptr noundef %2)
  %930 = getelementptr inbounds i8, ptr %0, i64 1728
  %931 = load double, ptr %930, align 8, !tbaa !50
  call void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %924, ptr noundef nonnull %929, double noundef %931, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef %2)
  %.not1244.not1269 = icmp sgt i64 %.01225, 0
  br i1 %.not1244.not1269, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %923
  %932 = getelementptr inbounds i8, ptr %0, i64 9592
  %933 = getelementptr inbounds i8, ptr %0, i64 1576
  br label %934

934:                                              ; preds = %.lr.ph, %953
  %.111270 = phi i64 [ 0, %.lr.ph ], [ %954, %953 ]
  %935 = load ptr, ptr %932, align 8, !tbaa !27
  %936 = getelementptr double, ptr %935, i64 %.01227
  %937 = getelementptr i8, ptr %936, i64 8
  %938 = getelementptr double, ptr %937, i64 %.111270
  %939 = load double, ptr %938, align 8, !tbaa !32
  %940 = load ptr, ptr %933, align 8, !tbaa !27
  %941 = getelementptr double, ptr %940, i64 %.01223
  %942 = getelementptr double, ptr %941, i64 %.111270
  %943 = load double, ptr %942, align 8, !tbaa !32
  %944 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %939, double noundef %943)
  br i1 %944, label %945, label %953

945:                                              ; preds = %934
  %946 = getelementptr inbounds i8, ptr %0, i64 4744
  %947 = load i8, ptr %946, align 8, !tbaa !36, !range !30, !noundef !31
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %.thread1257

949:                                              ; preds = %945
  %950 = trunc i64 %.111270 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.755, double noundef %.01194, i32 noundef %950)
  br label %.thread1257

.thread1257:                                      ; preds = %945, %949
  %951 = add nsw i64 %.01094, 1
  %952 = fmul double %.01194, 5.000000e-01
  br label %902

953:                                              ; preds = %934
  %954 = add nuw nsw i64 %.111270, 1
  %exitcond.not = icmp eq i64 %954, %.01225
  br i1 %exitcond.not, label %._crit_edge, label %934, !llvm.loop !61

._crit_edge:                                      ; preds = %953, %923
  %.11.lcssa = phi i64 [ 0, %923 ], [ %.01225, %953 ]
  %955 = getelementptr inbounds i8, ptr %0, i64 4744
  %956 = load i8, ptr %955, align 8, !tbaa !36, !range !30, !noundef !31
  %957 = trunc nuw i8 %956 to i1
  br i1 %957, label %958, label %968

958:                                              ; preds = %._crit_edge
  %959 = load double, ptr %8, align 8, !tbaa !32
  %960 = load double, ptr %7, align 8, !tbaa !32
  %961 = fsub double %959, %960
  %962 = load double, ptr %10, align 8, !tbaa !32
  %963 = load double, ptr %9, align 8, !tbaa !32
  %964 = fsub double %962, %963
  %965 = load double, ptr %12, align 8, !tbaa !32
  %966 = load double, ptr %11, align 8, !tbaa !32
  %967 = fsub double %965, %966
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.756, double noundef %.01194, double noundef %961, double noundef %964, double noundef %967)
  br label %968

968:                                              ; preds = %958, %._crit_edge
  %969 = trunc nuw i8 %.01186 to i1
  %970 = load double, ptr %7, align 8, !tbaa !32
  br i1 %969, label %971, label %981

971:                                              ; preds = %968
  %972 = getelementptr inbounds i8, ptr %0, i64 4576
  %973 = load double, ptr %9, align 8, !tbaa !32
  %974 = load double, ptr %11, align 8, !tbaa !32
  %975 = fadd double %973, %974
  %976 = load double, ptr %8, align 8, !tbaa !32
  %977 = load double, ptr %10, align 8, !tbaa !32
  %978 = load double, ptr %12, align 8, !tbaa !32
  %979 = fadd double %977, %978
  %980 = call noundef zeroext i1 @_ZN11alglib_impl16nlpfisacceptableEPNS_9nlpfilterEddddPNS_8ae_stateE(ptr noundef nonnull %972, double noundef %970, double noundef %975, double noundef %976, double noundef %979, ptr noundef %2)
  br i1 %980, label %995, label %992

981:                                              ; preds = %968
  %982 = load double, ptr %8, align 8, !tbaa !32
  %983 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %982, double noundef %970)
  br i1 %983, label %995, label %984

984:                                              ; preds = %981
  %985 = load double, ptr %10, align 8, !tbaa !32
  %986 = load double, ptr %9, align 8, !tbaa !32
  %987 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %985, double noundef %986)
  br i1 %987, label %995, label %988

988:                                              ; preds = %984
  %989 = load double, ptr %12, align 8, !tbaa !32
  %990 = load double, ptr %11, align 8, !tbaa !32
  %991 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %989, double noundef %990)
  br i1 %991, label %995, label %992

992:                                              ; preds = %988, %971
  %993 = add nsw i64 %.01094, 1
  %994 = fmul double %.01194, 5.000000e-01
  br label %902

995:                                              ; preds = %902, %988, %984, %981, %971
  %.12 = phi i64 [ %.11.lcssa, %971 ], [ %.11.lcssa, %981 ], [ %.11.lcssa, %984 ], [ %.11.lcssa, %988 ], [ %.10, %902 ]
  %.61209 = phi i64 [ %.01203, %971 ], [ %.01203, %981 ], [ %.01203, %984 ], [ %.01203, %988 ], [ %.51208, %902 ]
  %.51199 = phi double [ %.01194, %971 ], [ %.01194, %981 ], [ %.01194, %984 ], [ %.01194, %988 ], [ 0.000000e+00, %902 ]
  %.61167 = phi i8 [ %.01161, %971 ], [ %.01161, %981 ], [ %.01161, %984 ], [ %.01161, %988 ], [ %.51166, %902 ]
  %.51157 = phi i8 [ 0, %971 ], [ 0, %981 ], [ 0, %984 ], [ 0, %988 ], [ %.31155, %902 ]
  %.51134 = phi i64 [ %.01129, %971 ], [ %.01129, %981 ], [ %.01129, %984 ], [ %.01129, %988 ], [ %spec.select, %902 ]
  %.61125 = phi double [ %.01119, %971 ], [ %.01119, %981 ], [ %.01119, %984 ], [ %.01119, %988 ], [ %.51124, %902 ]
  %.5 = phi i64 [ %.01094, %971 ], [ %.01094, %981 ], [ %.01094, %984 ], [ %.01094, %988 ], [ %.31097, %902 ]
  %996 = icmp sgt i64 %.5, 2
  br i1 %996, label %997, label %1007

997:                                              ; preds = %995
  %998 = getelementptr inbounds i8, ptr %0, i64 1736
  %999 = load double, ptr %998, align 8, !tbaa !57
  %1000 = fmul double %999, 2.000000e+00
  %1001 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1000, double noundef %.01192, ptr noundef %2)
  store double %1001, ptr %998, align 8, !tbaa !57
  %1002 = getelementptr inbounds i8, ptr %0, i64 1744
  store double 1.000000e+00, ptr %1002, align 8, !tbaa !58
  %1003 = getelementptr inbounds i8, ptr %0, i64 4744
  %1004 = load i8, ptr %1003, align 8, !tbaa !36, !range !30, !noundef !31
  %1005 = trunc nuw i8 %1004 to i1
  br i1 %1005, label %1006, label %1007

1006:                                             ; preds = %997
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.757, double noundef %1001)
  br label %1007

1007:                                             ; preds = %997, %1006, %995
  %1008 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %.51199, double noundef 0.000000e+00)
  %1009 = getelementptr inbounds i8, ptr %0, i64 4744
  %1010 = load i8, ptr %1009, align 8, !tbaa !36, !range !30, !noundef !31
  %1011 = trunc nuw i8 %1010 to i1
  br i1 %1008, label %1029, label %1012

1012:                                             ; preds = %1007
  br i1 %1011, label %1013, label %1014

1013:                                             ; preds = %1012
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.758)
  br label %1014

1014:                                             ; preds = %1013, %1012
  %1015 = getelementptr inbounds i8, ptr %0, i64 488
  store i64 1, ptr %1015, align 8, !tbaa !42
  %1016 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %1016, align 8, !tbaa !43
  %1017 = add nsw i64 %.01229, %.01231
  %1018 = getelementptr inbounds i8, ptr %0, i64 568
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1017, ptr noundef nonnull %1018, ptr noundef %2)
  %1019 = getelementptr inbounds i8, ptr %0, i64 1792
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %1019, i64 noundef 0, ptr noundef nonnull %1018, i64 noundef 0, ptr noundef %2)
  %1020 = getelementptr inbounds i8, ptr %0, i64 1984
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %1020, i64 noundef 0, ptr noundef nonnull %1018, i64 noundef %.01231, ptr noundef %2)
  %1021 = getelementptr inbounds i8, ptr %0, i64 2176
  %1022 = add nsw i64 %.01227, %.01231
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.01225, ptr noundef nonnull %1021, i64 noundef 0, ptr noundef nonnull %1018, i64 noundef %1022, ptr noundef %2)
  %1023 = add nsw i64 %.01229, 1
  %1024 = getelementptr inbounds i8, ptr %0, i64 632
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1023, ptr noundef nonnull %1024, ptr noundef %2)
  br label %1321

1025:                                             ; preds = %113
  %1026 = getelementptr inbounds i8, ptr %0, i64 4752
  %1027 = load i64, ptr %1026, align 8, !tbaa !53
  %1028 = add nsw i64 %1027, 1
  store i64 %1028, ptr %1026, align 8, !tbaa !53
  br label %1151

1029:                                             ; preds = %1007
  br i1 %1011, label %1030, label %1041

1030:                                             ; preds = %1029
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.759, double noundef %.51199)
  %1031 = getelementptr inbounds i8, ptr %0, i64 3504
  %1032 = load ptr, ptr %1031, align 8, !tbaa !27
  %1033 = load double, ptr %1032, align 8, !tbaa !32
  %1034 = getelementptr inbounds i8, ptr %0, i64 9592
  %1035 = load ptr, ptr %1034, align 8, !tbaa !27
  %1036 = load double, ptr %1035, align 8, !tbaa !32
  %1037 = fsub double %1036, %1033
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.760, double noundef %1033, double noundef %1036, double noundef %1037)
  %1038 = load double, ptr %7, align 8, !tbaa !32
  %1039 = load double, ptr %8, align 8, !tbaa !32
  %1040 = fsub double %1039, %1038
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.761, double noundef %1038, double noundef %1039, double noundef %1040)
  br label %1041

1041:                                             ; preds = %1030, %1029
  %1042 = getelementptr inbounds i8, ptr %0, i64 8648
  %1043 = getelementptr inbounds i8, ptr %0, i64 1760
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef nonnull %1042, ptr noundef nonnull %1043, ptr noundef %2)
  %1044 = getelementptr inbounds i8, ptr %0, i64 9448
  %1045 = getelementptr inbounds i8, ptr %0, i64 3360
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %1044, ptr noundef nonnull %1045, ptr noundef %2)
  %1046 = trunc nuw i8 %.01186 to i1
  br i1 %1046, label %1047, label %1053

1047:                                             ; preds = %1041
  %1048 = getelementptr inbounds i8, ptr %0, i64 4576
  %1049 = load double, ptr %7, align 8, !tbaa !32
  %1050 = load double, ptr %9, align 8, !tbaa !32
  %1051 = load double, ptr %11, align 8, !tbaa !32
  %1052 = fadd double %1050, %1051
  call void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef nonnull %1048, double noundef %1049, double noundef %1052, ptr noundef %2)
  br label %1053

1053:                                             ; preds = %1047, %1041
  %1054 = getelementptr inbounds i8, ptr %0, i64 1792
  %1055 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %1054, ptr noundef %2)
  store double %1055, ptr %4, align 8, !tbaa !32
  %1056 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1055, double noundef %.01142)
  br i1 %1056, label %1057, label %1067

1057:                                             ; preds = %1053
  %1058 = load double, ptr %4, align 8, !tbaa !32
  %1059 = getelementptr inbounds i8, ptr %0, i64 1712
  %1060 = load double, ptr %1059, align 8, !tbaa !47
  %1061 = fmul double %.01137, %1060
  %1062 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1058, double noundef %1061)
  br i1 %1062, label %1063, label %1067

1063:                                             ; preds = %1057
  %1064 = load i8, ptr %1009, align 8, !tbaa !36, !range !30, !noundef !31
  %1065 = trunc nuw i8 %1064 to i1
  br i1 %1065, label %1066, label %1067

1066:                                             ; preds = %1063
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.762)
  br label %1067

1067:                                             ; preds = %1063, %1066, %1057, %1053
  %.21172 = phi i8 [ %.01170, %1057 ], [ %.01170, %1053 ], [ 1, %1066 ], [ 1, %1063 ]
  %1068 = getelementptr inbounds i8, ptr %0, i64 3504
  %1069 = load ptr, ptr %1068, align 8, !tbaa !27
  %1070 = load double, ptr %1069, align 8, !tbaa !32
  store double %1070, ptr %5, align 8, !tbaa !32
  %1071 = fneg double %.01142
  %1072 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1070, double noundef %1071)
  br i1 %1072, label %1073, label %1084

1073:                                             ; preds = %1067
  %1074 = load double, ptr %5, align 8, !tbaa !32
  %1075 = fneg double %.01137
  %1076 = getelementptr inbounds i8, ptr %0, i64 1720
  %1077 = load double, ptr %1076, align 8, !tbaa !48
  %1078 = fmul double %1077, %1075
  %1079 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1074, double noundef %1078)
  br i1 %1079, label %1080, label %1084

1080:                                             ; preds = %1073
  %1081 = load i8, ptr %1009, align 8, !tbaa !36, !range !30, !noundef !31
  %1082 = trunc nuw i8 %1081 to i1
  br i1 %1082, label %1083, label %.thread1261

1083:                                             ; preds = %1080
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.763)
  br label %.thread1261

1084:                                             ; preds = %1073, %1067
  %1085 = trunc nuw i8 %.21172 to i1
  br i1 %1085, label %.thread1261, label %1092

.thread1261:                                      ; preds = %1080, %1083, %1084
  %.311731263 = phi i8 [ %.21172, %1084 ], [ 1, %1083 ], [ 1, %1080 ]
  %1086 = load double, ptr %4, align 8, !tbaa !32
  %1087 = load double, ptr %5, align 8, !tbaa !32
  %1088 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %.01142, double noundef %1086, double noundef %1087, ptr noundef %2)
  %1089 = getelementptr inbounds i8, ptr %0, i64 4752
  %1090 = load i64, ptr %1089, align 8, !tbaa !53
  %1091 = add nsw i64 %1090, 1
  store i64 %1091, ptr %1089, align 8, !tbaa !53
  br label %1151

1092:                                             ; preds = %1084
  br i1 %1046, label %1093, label %1124

1093:                                             ; preds = %1092
  store double 1.000000e+00, ptr %4, align 8, !tbaa !32
  %1094 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01231, ptr noundef nonnull %1054, ptr noundef %2)
  %1095 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef 1.000000e+00, double noundef %1094, ptr noundef %2)
  store double %1095, ptr %4, align 8, !tbaa !32
  %1096 = getelementptr inbounds i8, ptr %0, i64 2240
  %1097 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %1096, ptr noundef %2)
  %1098 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1095, double noundef %1097, ptr noundef %2)
  store double %1098, ptr %4, align 8, !tbaa !32
  %1099 = getelementptr inbounds i8, ptr %0, i64 2304
  %1100 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %1099, ptr noundef %2)
  %1101 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1098, double noundef %1100, ptr noundef %2)
  store double %1101, ptr %4, align 8, !tbaa !32
  %1102 = getelementptr inbounds i8, ptr %0, i64 2368
  %1103 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01227, ptr noundef nonnull %1102, ptr noundef %2)
  %1104 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1101, double noundef %1103, ptr noundef %2)
  store double %1104, ptr %4, align 8, !tbaa !32
  %1105 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1104, double noundef 7.500000e-01, ptr noundef %2)
  %1106 = load double, ptr @_ZN11alglib_implL11gipm_initmuE, align 8, !tbaa !32
  %1107 = fmul double %1105, %1106
  %1108 = load double, ptr @_ZN11alglib_implL10gipm_maxmuE, align 8, !tbaa !32
  %1109 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1107, double noundef %1108, ptr noundef %2)
  store double %1109, ptr %4, align 8, !tbaa !32
  %1110 = getelementptr inbounds i8, ptr %0, i64 1728
  %1111 = load double, ptr %1110, align 8, !tbaa !50
  %1112 = fmul double %1111, 1.410000e+00
  %1113 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1109, double noundef %1112)
  br i1 %1113, label %1114, label %1124

1114:                                             ; preds = %1093
  %1115 = load i8, ptr %1009, align 8, !tbaa !36, !range !30, !noundef !31
  %1116 = trunc nuw i8 %1115 to i1
  br i1 %1116, label %1117, label %1119

1117:                                             ; preds = %1114
  %1118 = load double, ptr %4, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.764, double noundef %1118)
  br label %1119

1119:                                             ; preds = %1117, %1114
  %1120 = load double, ptr %4, align 8, !tbaa !32
  store double %1120, ptr %1110, align 8, !tbaa !50
  %1121 = getelementptr inbounds i8, ptr %0, i64 4752
  %1122 = load i64, ptr %1121, align 8, !tbaa !53
  %1123 = getelementptr inbounds i8, ptr %0, i64 4576
  call void @_ZN11alglib_impl9nlpfclearEPNS_9nlpfilterEPNS_8ae_stateE(ptr noundef nonnull %1123, ptr noundef %2)
  br label %1124

1124:                                             ; preds = %1093, %1119, %1092
  %.31117 = phi double [ 1.000000e+300, %1119 ], [ %.01114, %1093 ], [ %.01114, %1092 ]
  %.31112 = phi double [ 1.000000e+300, %1119 ], [ %.01109, %1093 ], [ %.01109, %1092 ]
  %.31107 = phi double [ 1.000000e+300, %1119 ], [ %.01104, %1093 ], [ %.01104, %1092 ]
  %.31102 = phi i64 [ %1122, %1119 ], [ %.01099, %1093 ], [ %.01099, %1092 ]
  %1125 = load double, ptr %13, align 8, !tbaa !32
  %1126 = load double, ptr %14, align 8, !tbaa !32
  %1127 = load double, ptr %15, align 8, !tbaa !32
  %1128 = getelementptr inbounds i8, ptr %0, i64 1736
  %1129 = load double, ptr %1128, align 8, !tbaa !57
  %1130 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1129, double noundef 0.000000e+00)
  br i1 %1130, label %1131, label %1147

1131:                                             ; preds = %1124
  %1132 = load double, ptr %1128, align 8, !tbaa !57
  %1133 = getelementptr inbounds i8, ptr %0, i64 1744
  %1134 = load double, ptr %1133, align 8, !tbaa !58
  %1135 = fmul double %1132, %1134
  store double %1135, ptr %1128, align 8, !tbaa !57
  %1136 = load double, ptr @_ZN11alglib_implL19gipm_lambdadecayaccE, align 8, !tbaa !32
  %1137 = fmul double %1134, %1136
  %1138 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2)
  %1139 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1138, ptr noundef %2)
  %1140 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1137, double noundef %1139, ptr noundef %2)
  store double %1140, ptr %1133, align 8, !tbaa !58
  %1141 = load double, ptr %1128, align 8, !tbaa !57
  %1142 = getelementptr inbounds i8, ptr %0, i64 1728
  %1143 = load double, ptr %1142, align 8, !tbaa !50
  %1144 = fmul double %1143, 5.000000e-16
  %1145 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1141, double noundef %1144)
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1131
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1128, i8 0, i64 16, i1 false)
  br label %1147

1147:                                             ; preds = %1131, %1146, %1124
  %1148 = getelementptr inbounds i8, ptr %0, i64 4752
  %1149 = load i64, ptr %1148, align 8, !tbaa !53
  %1150 = add nsw i64 %1149, 1
  store i64 %1150, ptr %1148, align 8, !tbaa !53
  br label %471

1151:                                             ; preds = %471, %.thread1261, %1025, %718, %667, %629, %616, %482
  %.13 = phi i64 [ %.9, %471 ], [ %.9, %482 ], [ %.9, %616 ], [ %.9, %629 ], [ %.9, %667 ], [ %.9, %718 ], [ %.12, %.thread1261 ], [ %.01212, %1025 ]
  %.71210 = phi i64 [ %.21205, %471 ], [ %.21205, %482 ], [ %.21205, %616 ], [ %.21205, %629 ], [ %.21205, %667 ], [ %.21205, %718 ], [ %.61209, %.thread1261 ], [ %.01203, %1025 ]
  %.61200 = phi double [ %.21196, %471 ], [ %.21196, %482 ], [ %.21196, %616 ], [ %.21196, %629 ], [ %.21196, %667 ], [ %.21196, %718 ], [ %.51199, %.thread1261 ], [ %.01194, %1025 ]
  %.31184 = phi i8 [ %.21183, %471 ], [ %.21183, %482 ], [ %.21183, %616 ], [ %.21183, %629 ], [ %.21183, %667 ], [ %.21183, %718 ], [ %.01181, %.thread1261 ], [ %.01181, %1025 ]
  %.31179 = phi i8 [ %.21178, %471 ], [ %.21178, %482 ], [ %.21178, %616 ], [ %.21178, %629 ], [ %.21178, %667 ], [ %.21178, %718 ], [ %.01176, %.thread1261 ], [ %.01176, %1025 ]
  %.41174 = phi i8 [ %.11171, %471 ], [ %.11171, %482 ], [ %.11171, %616 ], [ %.11171, %629 ], [ %.11171, %667 ], [ %.11171, %718 ], [ %.311731263, %.thread1261 ], [ %.01170, %1025 ]
  %.71168 = phi i8 [ %.21163, %471 ], [ %.21163, %482 ], [ %.21163, %616 ], [ %.21163, %629 ], [ %.21163, %667 ], [ %.21163, %718 ], [ %.61167, %.thread1261 ], [ %.01161, %1025 ]
  %.61158 = phi i8 [ %.21154, %471 ], [ %.21154, %482 ], [ %.21154, %616 ], [ %.21154, %629 ], [ %.21154, %667 ], [ %.21154, %718 ], [ %.51157, %.thread1261 ], [ %.01152, %1025 ]
  %.31150 = phi double [ %.21149, %471 ], [ %.21149, %482 ], [ %.21149, %616 ], [ %.21149, %629 ], [ %.21149, %667 ], [ %.21149, %718 ], [ %.01147, %.thread1261 ], [ %.01147, %1025 ]
  %.31145 = phi double [ %.21144, %471 ], [ %.21144, %482 ], [ %.21144, %616 ], [ %.21144, %629 ], [ %.21144, %667 ], [ %.21144, %718 ], [ %1088, %.thread1261 ], [ %.01142, %1025 ]
  %.31140 = phi double [ %.21139, %471 ], [ %.21139, %482 ], [ %.21139, %616 ], [ %.21139, %629 ], [ %.21139, %667 ], [ %.21139, %718 ], [ %.01137, %.thread1261 ], [ %.01137, %1025 ]
  %.61135 = phi i64 [ %.21131, %471 ], [ %.21131, %482 ], [ %.21131, %616 ], [ %.21131, %629 ], [ %.21131, %667 ], [ %.21131, %718 ], [ %.51134, %.thread1261 ], [ %.01129, %1025 ]
  %.71126 = phi double [ %.21121, %471 ], [ %.21121, %482 ], [ %.21121, %616 ], [ %.21121, %629 ], [ %.21121, %667 ], [ %.21121, %718 ], [ %.61125, %.thread1261 ], [ %.01119, %1025 ]
  %.6 = phi i64 [ %.21096, %471 ], [ %.21096, %482 ], [ %.21096, %616 ], [ %.21096, %629 ], [ %.21096, %667 ], [ %.21096, %718 ], [ %.5, %.thread1261 ], [ %.01094, %1025 ]
  %.31092 = phi double [ %.21091, %471 ], [ %.21091, %482 ], [ %.21091, %616 ], [ %.21091, %629 ], [ %.21091, %667 ], [ %.21091, %718 ], [ %.01089, %.thread1261 ], [ %.01089, %1025 ]
  %.31087 = phi double [ %.21086, %471 ], [ %.21086, %482 ], [ %.21086, %616 ], [ %.21086, %629 ], [ %.21086, %667 ], [ %.21086, %718 ], [ %.01084, %.thread1261 ], [ %.01084, %1025 ]
  %.3 = phi double [ %.2, %471 ], [ %.2, %482 ], [ %.2, %616 ], [ %.2, %629 ], [ %.2, %667 ], [ %.2, %718 ], [ %.0, %.thread1261 ], [ %.0, %1025 ]
  %1152 = getelementptr inbounds i8, ptr %0, i64 4744
  %1153 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1154 = trunc nuw i8 %1153 to i1
  br i1 %1154, label %1155, label %1156

1155:                                             ; preds = %1151
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.765)
  br label %1156

1156:                                             ; preds = %1155, %1151
  br i1 %1, label %1157, label %1163

1157:                                             ; preds = %1156
  %1158 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1159 = trunc nuw i8 %1158 to i1
  br i1 %1159, label %1160, label %1161

1160:                                             ; preds = %1157
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.766)
  br label %1161

1161:                                             ; preds = %1160, %1157
  %1162 = getelementptr inbounds i8, ptr %0, i64 4760
  store i64 8, ptr %1162, align 8, !tbaa !56
  br label %1270

1163:                                             ; preds = %1156
  %1164 = getelementptr inbounds i8, ptr %0, i64 4760
  %1165 = load i64, ptr %1164, align 8, !tbaa !56
  %.not1252 = icmp eq i64 %1165, 0
  br i1 %.not1252, label %1166, label %1270

1166:                                             ; preds = %1163
  %1167 = trunc nuw i8 %.41174 to i1
  br i1 %1167, label %1168, label %1202

1168:                                             ; preds = %1166
  %1169 = getelementptr inbounds i8, ptr %0, i64 1728
  %1170 = load double, ptr %1169, align 8, !tbaa !50
  %1171 = fmul double %.31150, 1.001000e+00
  %1172 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1170, double noundef %1171)
  br i1 %1172, label %1173, label %1186

1173:                                             ; preds = %1168
  %1174 = load double, ptr @_ZN11alglib_implL14gipm_maxbigvalE, align 8, !tbaa !32
  %1175 = fmul double %1174, 0x3FEFF7CED916872B
  %1176 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %.31145, double noundef %1175)
  br i1 %1176, label %1177, label %1186

1177:                                             ; preds = %1173
  %1178 = load double, ptr @_ZN11alglib_implL17gipm_maxbiggrowthE, align 8, !tbaa !32
  %1179 = fmul double %1178, 0x3FEFF7CED916872B
  %1180 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %.31140, double noundef %1179)
  br i1 %1180, label %1181, label %1186

1181:                                             ; preds = %1177
  %1182 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1183 = trunc nuw i8 %1182 to i1
  br i1 %1183, label %1184, label %1185

1184:                                             ; preds = %1181
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.767)
  br label %1185

1185:                                             ; preds = %1184, %1181
  store i64 -4, ptr %1164, align 8, !tbaa !56
  br label %1270

1186:                                             ; preds = %1177, %1173, %1168
  %1187 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1188 = trunc nuw i8 %1187 to i1
  br i1 %1188, label %1189, label %1190

1189:                                             ; preds = %1186
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.768)
  br label %1190

1190:                                             ; preds = %1189, %1186
  %1191 = load double, ptr %1169, align 8, !tbaa !50
  %1192 = fmul double %1191, 1.000000e-02
  %1193 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.31150, double noundef %1192, ptr noundef %2)
  store double %1193, ptr %1169, align 8, !tbaa !50
  %1194 = load double, ptr @_ZN11alglib_implL13gipm_vggrowthE, align 8, !tbaa !32
  %1195 = fmul double %.31145, %1194
  %1196 = load double, ptr @_ZN11alglib_implL14gipm_maxbigvalE, align 8, !tbaa !32
  %1197 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1195, double noundef %1196, ptr noundef %2)
  %1198 = load double, ptr @_ZN11alglib_implL13gipm_vggrowthE, align 8, !tbaa !32
  %1199 = fmul double %.31140, %1198
  %1200 = load double, ptr @_ZN11alglib_implL17gipm_maxbiggrowthE, align 8, !tbaa !32
  %1201 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1199, double noundef %1200, ptr noundef %2)
  br label %467

1202:                                             ; preds = %1166
  %1203 = getelementptr inbounds i8, ptr %0, i64 1760
  %1204 = getelementptr inbounds i8, ptr %0, i64 3360
  %1205 = getelementptr inbounds i8, ptr %0, i64 4936
  call void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1203, ptr noundef nonnull %1204, double noundef 0.000000e+00, ptr noundef nonnull %1205, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %2)
  %1206 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1207 = trunc nuw i8 %1206 to i1
  br i1 %1207, label %1208, label %1212

1208:                                             ; preds = %1202
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.769)
  %1209 = load double, ptr %13, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.736, double noundef %1209)
  %1210 = load double, ptr %14, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.737, double noundef %1210)
  %1211 = load double, ptr %15, align 8, !tbaa !32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.738, double noundef %1211)
  br label %1212

1212:                                             ; preds = %1208, %1202
  %1213 = load double, ptr %13, align 8, !tbaa !32
  %1214 = load double, ptr %14, align 8, !tbaa !32
  %1215 = load double, ptr %15, align 8, !tbaa !32
  %1216 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1213, double noundef %1214, double noundef %1215, ptr noundef %2)
  %1217 = getelementptr inbounds i8, ptr %0, i64 4560
  %1218 = load double, ptr %1217, align 8, !tbaa !51
  %1219 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1216, double noundef %1218)
  br i1 %1219, label %1220, label %1229

1220:                                             ; preds = %1212
  %1221 = getelementptr inbounds i8, ptr %0, i64 2560
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef nonnull %1203, ptr noundef nonnull %1221, ptr noundef %2)
  %1222 = getelementptr inbounds i8, ptr %0, i64 3960
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %1204, ptr noundef nonnull %1222, ptr noundef %2)
  %1223 = load double, ptr %13, align 8, !tbaa !32
  %1224 = load double, ptr %14, align 8, !tbaa !32
  %1225 = load double, ptr %15, align 8, !tbaa !32
  %1226 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1223, double noundef %1224, double noundef %1225, ptr noundef %2)
  store double %1226, ptr %1217, align 8, !tbaa !51
  %1227 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1228 = trunc nuw i8 %1227 to i1
  br i1 %1228, label %.sink.split1335, label %1232

1229:                                             ; preds = %1212
  %1230 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %.sink.split1335, label %1232

.sink.split1335:                                  ; preds = %1229, %1220
  %.str.771.sink = phi ptr [ @.str.770, %1220 ], [ @.str.771, %1229 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull %.str.771.sink)
  br label %1232

1232:                                             ; preds = %.sink.split1335, %1229, %1220
  %1233 = load double, ptr %13, align 8, !tbaa !32
  %1234 = load double, ptr %4, align 8, !tbaa !32
  %1235 = fdiv double %1233, %1234
  %1236 = load double, ptr %14, align 8, !tbaa !32
  %1237 = load double, ptr %5, align 8, !tbaa !32
  %1238 = fdiv double %1236, %1237
  %1239 = load double, ptr %15, align 8, !tbaa !32
  %1240 = load double, ptr %6, align 8, !tbaa !32
  %1241 = fdiv double %1239, %1240
  %1242 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1235, double noundef %1238, double noundef %1241, ptr noundef %2)
  %1243 = getelementptr inbounds i8, ptr %0, i64 472
  %1244 = load double, ptr %1243, align 8, !tbaa !49
  %1245 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1242, double noundef %1244)
  br i1 %1245, label %1246, label %1252

1246:                                             ; preds = %1232
  %1247 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1248 = trunc nuw i8 %1247 to i1
  br i1 %1248, label %1249, label %1251

1249:                                             ; preds = %1246
  %1250 = load double, ptr %1243, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.772, double noundef %1250)
  br label %1251

1251:                                             ; preds = %1249, %1246
  store i64 2, ptr %1164, align 8, !tbaa !56
  br label %1270

1252:                                             ; preds = %1232
  %1253 = getelementptr inbounds i8, ptr %0, i64 1728
  %1254 = load double, ptr %1253, align 8, !tbaa !50
  %1255 = fmul double %.31150, 1.001000e+00
  %1256 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1254, double noundef %1255)
  br i1 %1256, label %1257, label %1262

1257:                                             ; preds = %1252
  %1258 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1259 = trunc nuw i8 %1258 to i1
  br i1 %1259, label %1260, label %1261

1260:                                             ; preds = %1257
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.773)
  br label %1261

1261:                                             ; preds = %1260, %1257
  store i64 7, ptr %1164, align 8, !tbaa !56
  br label %1270

1262:                                             ; preds = %1252
  call void @_ZN11alglib_implL23gipm_tightenrelaxboundsEPNS_9gipmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %2)
  %1263 = load double, ptr @_ZN11alglib_implL18gipm_mudecaylinearE, align 8, !tbaa !32
  %1264 = load double, ptr %1253, align 8, !tbaa !50
  %1265 = fmul double %1263, %1264
  %1266 = load double, ptr @_ZN11alglib_implL17gipm_mudecaypowerE, align 8, !tbaa !32
  %1267 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1264, double noundef %1266, ptr noundef %2)
  %1268 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1265, double noundef %1267, ptr noundef %2)
  %1269 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.31150, double noundef %1268, ptr noundef %2)
  store double %1269, ptr %1253, align 8, !tbaa !50
  br label %467

1270:                                             ; preds = %1163, %1261, %1251, %1185, %1161
  %1271 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1272 = trunc nuw i8 %1271 to i1
  br i1 %1272, label %1273, label %1274

1273:                                             ; preds = %1270
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.774)
  br label %1274

1274:                                             ; preds = %1273, %1270
  %1275 = getelementptr inbounds i8, ptr %0, i64 1760
  %1276 = getelementptr inbounds i8, ptr %0, i64 3360
  %1277 = getelementptr inbounds i8, ptr %0, i64 4936
  call void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1275, ptr noundef nonnull %1276, double noundef 0.000000e+00, ptr noundef nonnull %1277, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %2)
  %1278 = load double, ptr %13, align 8, !tbaa !32
  %1279 = load double, ptr %14, align 8, !tbaa !32
  %1280 = load double, ptr %15, align 8, !tbaa !32
  %1281 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1278, double noundef %1279, double noundef %1280, ptr noundef %2)
  %1282 = getelementptr inbounds i8, ptr %0, i64 4560
  %1283 = load double, ptr %1282, align 8, !tbaa !51
  %1284 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1281, double noundef %1283)
  br i1 %1284, label %1285, label %1296

1285:                                             ; preds = %1274
  %1286 = getelementptr inbounds i8, ptr %0, i64 2560
  call void @_ZN11alglib_implL13gipm_varscopyEPKNS_8gipmvarsEPS0_PNS_8ae_stateE(ptr noundef nonnull %1286, ptr noundef nonnull %1275, ptr noundef %2)
  %1287 = getelementptr inbounds i8, ptr %0, i64 3960
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %1287, ptr noundef nonnull %1276, ptr noundef %2)
  %1288 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1289 = trunc nuw i8 %1288 to i1
  br i1 %1289, label %1290, label %1296

1290:                                             ; preds = %1285
  %1291 = load double, ptr %13, align 8, !tbaa !32
  %1292 = load double, ptr %14, align 8, !tbaa !32
  %1293 = load double, ptr %15, align 8, !tbaa !32
  %1294 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1291, double noundef %1292, double noundef %1293, ptr noundef %2)
  %1295 = load double, ptr %1282, align 8, !tbaa !51
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.775, double noundef %1294, double noundef %1295)
  br label %1296

1296:                                             ; preds = %1285, %1290, %1274
  %1297 = trunc nuw i8 %.31184 to i1
  br i1 %1297, label %1298, label %.thread1264

1298:                                             ; preds = %1296
  %1299 = trunc nuw i8 %.31179 to i1
  %1300 = getelementptr inbounds i8, ptr %0, i64 4760
  %1301 = load i64, ptr %1300, align 8, !tbaa !56
  %1302 = add nsw i64 %1301, 800
  %1303 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %1299, i64 noundef -8, i64 noundef %1302, ptr noundef %2)
  store i64 %1303, ptr %1300, align 8, !tbaa !56
  %1304 = getelementptr inbounds i8, ptr %0, i64 4768
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %1304, ptr noundef %2)
  %1305 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1306 = trunc nuw i8 %1305 to i1
  br i1 %1306, label %1310, label %1430

.thread1264:                                      ; preds = %1296
  %1307 = getelementptr inbounds i8, ptr %0, i64 4768
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %1307, ptr noundef %2)
  %1308 = load i8, ptr %1152, align 8, !tbaa !36, !range !30, !noundef !31
  %1309 = trunc nuw i8 %1308 to i1
  br i1 %1309, label %.thread1265, label %1430

1310:                                             ; preds = %1298
  br i1 %1299, label %1311, label %.thread1265

1311:                                             ; preds = %1310
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.776)
  br label %.thread1265

.thread1265:                                      ; preds = %.thread1264, %1311, %1310
  %1312 = phi ptr [ %1304, %1311 ], [ %1304, %1310 ], [ %1307, %.thread1264 ]
  %1313 = getelementptr inbounds i8, ptr %0, i64 3504
  %1314 = load ptr, ptr %1313, align 8, !tbaa !27
  %1315 = load double, ptr %1314, align 8, !tbaa !32
  %1316 = getelementptr inbounds i8, ptr %0, i64 464
  %1317 = load ptr, ptr %1316, align 8, !tbaa !27
  %1318 = load double, ptr %1317, align 8, !tbaa !32
  %1319 = fmul double %1315, %1318
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.777, double noundef %1319)
  %1320 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %1312, ptr noundef %2)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.778, double noundef %1320)
  br label %1430

1321:                                             ; preds = %1014, %907, %803, %788, %.thread1254, %._crit_edge1300
  %.sink1336 = phi i32 [ 5, %1014 ], [ 4, %907 ], [ 3, %803 ], [ 2, %788 ], [ 1, %.thread1254 ], [ 0, %._crit_edge1300 ]
  %.11232 = phi i64 [ %.01231, %1014 ], [ %.01231, %907 ], [ %.01231, %803 ], [ %.01231, %788 ], [ %.01231, %.thread1254 ], [ %115, %._crit_edge1300 ]
  %.11230 = phi i64 [ %.01229, %1014 ], [ %.01229, %907 ], [ %.01229, %803 ], [ %.01229, %788 ], [ %.01229, %.thread1254 ], [ %120, %._crit_edge1300 ]
  %.11228 = phi i64 [ %.01227, %1014 ], [ %.01227, %907 ], [ %.01227, %803 ], [ %.01227, %788 ], [ %.01227, %.thread1254 ], [ %117, %._crit_edge1300 ]
  %.11226 = phi i64 [ %.01225, %1014 ], [ %.01225, %907 ], [ %.01225, %803 ], [ %.01225, %788 ], [ %.01225, %.thread1254 ], [ %119, %._crit_edge1300 ]
  %.11224 = phi i64 [ %.01223, %1014 ], [ %.01223, %907 ], [ %.01223, %803 ], [ %.01223, %788 ], [ %.01223, %.thread1254 ], [ %121, %._crit_edge1300 ]
  %.11222 = phi i64 [ %.01221, %1014 ], [ %.01221, %907 ], [ %.01221, %803 ], [ %.01221, %788 ], [ %.01221, %.thread1254 ], [ %122, %._crit_edge1300 ]
  %.14 = phi i64 [ %.12, %1014 ], [ %.10, %907 ], [ %.01212, %803 ], [ %.01212, %788 ], [ %.9, %.thread1254 ], [ %.41216.lcssa, %._crit_edge1300 ]
  %.81211 = phi i64 [ %.61209, %1014 ], [ %.51208, %907 ], [ %.01203, %803 ], [ %.31206, %788 ], [ %.21205, %.thread1254 ], [ %.01203, %._crit_edge1300 ]
  %.71201 = phi double [ %.51199, %1014 ], [ %.31197, %907 ], [ %.01194, %803 ], [ %.01194, %788 ], [ %.21196, %.thread1254 ], [ %.01194, %._crit_edge1300 ]
  %.11193 = phi double [ %.01192, %1014 ], [ %.01192, %907 ], [ %.01192, %803 ], [ %.01192, %788 ], [ %551, %.thread1254 ], [ %.01192, %._crit_edge1300 ]
  %.11191 = phi double [ %.01190, %1014 ], [ %.01190, %907 ], [ %.01190, %803 ], [ %.01190, %788 ], [ %.01190, %.thread1254 ], [ %227, %._crit_edge1300 ]
  %.31189 = phi i8 [ %.01186, %1014 ], [ %.01186, %907 ], [ %.01186, %803 ], [ %.01186, %788 ], [ %.21188, %.thread1254 ], [ %.01186, %._crit_edge1300 ]
  %.41185 = phi i8 [ %.01181, %1014 ], [ %.01181, %907 ], [ %.01181, %803 ], [ %.01181, %788 ], [ %.21183, %.thread1254 ], [ %.01181, %._crit_edge1300 ]
  %.41180 = phi i8 [ %.01176, %1014 ], [ %.01176, %907 ], [ %.01176, %803 ], [ %.01176, %788 ], [ %.21178, %.thread1254 ], [ %.01176, %._crit_edge1300 ]
  %.51175 = phi i8 [ %.01170, %1014 ], [ %.01170, %907 ], [ %.01170, %803 ], [ %.01170, %788 ], [ %.11171, %.thread1254 ], [ %.01170, %._crit_edge1300 ]
  %.81169 = phi i8 [ %.61167, %1014 ], [ %.51166, %907 ], [ %.01161, %803 ], [ %.31164, %788 ], [ %.21163, %.thread1254 ], [ %.01161, %._crit_edge1300 ]
  %.71159 = phi i8 [ %.51157, %1014 ], [ %.31155, %907 ], [ %.01152, %803 ], [ %.01152, %788 ], [ %.21154, %.thread1254 ], [ %.01152, %._crit_edge1300 ]
  %.41151 = phi double [ %.01147, %1014 ], [ %.01147, %907 ], [ %.01147, %803 ], [ %.01147, %788 ], [ %.21149, %.thread1254 ], [ %.01147, %._crit_edge1300 ]
  %.41146 = phi double [ %.01142, %1014 ], [ %.01142, %907 ], [ %.01142, %803 ], [ %.01142, %788 ], [ %.21144, %.thread1254 ], [ %.01142, %._crit_edge1300 ]
  %.41141 = phi double [ %.01137, %1014 ], [ %.01137, %907 ], [ %.01137, %803 ], [ %.01137, %788 ], [ %.21139, %.thread1254 ], [ %.01137, %._crit_edge1300 ]
  %.71136 = phi i64 [ %.51134, %1014 ], [ %spec.select, %907 ], [ %.01129, %803 ], [ %.01129, %788 ], [ %.21131, %.thread1254 ], [ %.01129, %._crit_edge1300 ]
  %.11128 = phi double [ %.01127, %1014 ], [ %.01127, %907 ], [ %.01127, %803 ], [ %.01127, %788 ], [ %555, %.thread1254 ], [ %.01127, %._crit_edge1300 ]
  %.8 = phi double [ %.61125, %1014 ], [ %.51124, %907 ], [ %.01119, %803 ], [ %.31122, %788 ], [ %.21121, %.thread1254 ], [ %.01119, %._crit_edge1300 ]
  %.41118 = phi double [ %.01114, %1014 ], [ %.01114, %907 ], [ %.01114, %803 ], [ %.01114, %788 ], [ %.21116, %.thread1254 ], [ %.01114, %._crit_edge1300 ]
  %.41113 = phi double [ %.01109, %1014 ], [ %.01109, %907 ], [ %.01109, %803 ], [ %.01109, %788 ], [ %.21111, %.thread1254 ], [ %.01109, %._crit_edge1300 ]
  %.41108 = phi double [ %.01104, %1014 ], [ %.01104, %907 ], [ %.01104, %803 ], [ %.01104, %788 ], [ %.21106, %.thread1254 ], [ %.01104, %._crit_edge1300 ]
  %.41103 = phi i64 [ %.01099, %1014 ], [ %.01099, %907 ], [ %.01099, %803 ], [ %.01099, %788 ], [ %.21101, %.thread1254 ], [ %.01099, %._crit_edge1300 ]
  %.7 = phi i64 [ %.5, %1014 ], [ %.31097, %907 ], [ %.01094, %803 ], [ %.01094, %788 ], [ %.21096, %.thread1254 ], [ %.01094, %._crit_edge1300 ]
  %.41093 = phi double [ %.01089, %1014 ], [ %.01089, %907 ], [ %.01089, %803 ], [ %.01089, %788 ], [ %.21091, %.thread1254 ], [ %.01089, %._crit_edge1300 ]
  %.41088 = phi double [ %.01084, %1014 ], [ %.01084, %907 ], [ %.01084, %803 ], [ %.01084, %788 ], [ %.21086, %.thread1254 ], [ %.01084, %._crit_edge1300 ]
  %.4 = phi double [ %.0, %1014 ], [ %.0, %907 ], [ %.0, %803 ], [ %.0, %788 ], [ %.2, %.thread1254 ], [ %.0, %._crit_edge1300 ]
  store i32 %.sink1336, ptr %16, align 8, !tbaa !5
  %1322 = getelementptr inbounds i8, ptr %0, i64 10112
  %1323 = load ptr, ptr %1322, align 8, !tbaa !27
  store i64 %.11232, ptr %1323, align 8, !tbaa !28
  %1324 = load ptr, ptr %1322, align 8, !tbaa !27
  %1325 = getelementptr inbounds i8, ptr %1324, i64 8
  store i64 %.11230, ptr %1325, align 8, !tbaa !28
  %1326 = load ptr, ptr %1322, align 8, !tbaa !27
  %1327 = getelementptr inbounds i8, ptr %1326, i64 16
  store i64 %.11228, ptr %1327, align 8, !tbaa !28
  %1328 = load ptr, ptr %1322, align 8, !tbaa !27
  %1329 = getelementptr inbounds i8, ptr %1328, i64 24
  store i64 %.11226, ptr %1329, align 8, !tbaa !28
  %1330 = load ptr, ptr %1322, align 8, !tbaa !27
  %1331 = getelementptr inbounds i8, ptr %1330, i64 32
  store i64 %.11224, ptr %1331, align 8, !tbaa !28
  %1332 = load ptr, ptr %1322, align 8, !tbaa !27
  %1333 = getelementptr inbounds i8, ptr %1332, i64 40
  store i64 %.11222, ptr %1333, align 8, !tbaa !28
  %1334 = load ptr, ptr %1322, align 8, !tbaa !27
  %1335 = getelementptr inbounds i8, ptr %1334, i64 48
  store i64 %.14, ptr %1335, align 8, !tbaa !28
  %1336 = load ptr, ptr %1322, align 8, !tbaa !27
  %1337 = getelementptr inbounds i8, ptr %1336, i64 56
  store i64 %.81211, ptr %1337, align 8, !tbaa !28
  %1338 = load ptr, ptr %1322, align 8, !tbaa !27
  %1339 = getelementptr inbounds i8, ptr %1338, i64 64
  store i64 %.01202, ptr %1339, align 8, !tbaa !28
  %1340 = load ptr, ptr %1322, align 8, !tbaa !27
  %1341 = getelementptr inbounds i8, ptr %1340, i64 72
  store i64 %.71136, ptr %1341, align 8, !tbaa !28
  %1342 = load ptr, ptr %1322, align 8, !tbaa !27
  %1343 = getelementptr inbounds i8, ptr %1342, i64 80
  store i64 %.41103, ptr %1343, align 8, !tbaa !28
  %1344 = load ptr, ptr %1322, align 8, !tbaa !27
  %1345 = getelementptr inbounds i8, ptr %1344, i64 88
  store i64 %.7, ptr %1345, align 8, !tbaa !28
  %1346 = getelementptr inbounds i8, ptr %0, i64 10176
  %1347 = load ptr, ptr %1346, align 8, !tbaa !27
  %1348 = and i8 %.31189, 1
  store i8 %1348, ptr %1347, align 1, !tbaa !29
  %1349 = load ptr, ptr %1346, align 8, !tbaa !27
  %1350 = getelementptr inbounds i8, ptr %1349, i64 1
  %1351 = and i8 %.41185, 1
  store i8 %1351, ptr %1350, align 1, !tbaa !29
  %1352 = load ptr, ptr %1346, align 8, !tbaa !27
  %1353 = getelementptr inbounds i8, ptr %1352, i64 2
  %1354 = and i8 %.41180, 1
  store i8 %1354, ptr %1353, align 1, !tbaa !29
  %1355 = load ptr, ptr %1346, align 8, !tbaa !27
  %1356 = getelementptr inbounds i8, ptr %1355, i64 3
  %1357 = and i8 %.51175, 1
  store i8 %1357, ptr %1356, align 1, !tbaa !29
  %1358 = load ptr, ptr %1346, align 8, !tbaa !27
  %1359 = getelementptr inbounds i8, ptr %1358, i64 4
  %1360 = and i8 %.81169, 1
  store i8 %1360, ptr %1359, align 1, !tbaa !29
  %1361 = load ptr, ptr %1346, align 8, !tbaa !27
  %1362 = getelementptr inbounds i8, ptr %1361, i64 5
  store i8 %.01160, ptr %1362, align 1, !tbaa !29
  %1363 = load ptr, ptr %1346, align 8, !tbaa !27
  %1364 = getelementptr inbounds i8, ptr %1363, i64 6
  %1365 = and i8 %.71159, 1
  store i8 %1365, ptr %1364, align 1, !tbaa !29
  %1366 = load double, ptr %4, align 8, !tbaa !32
  %1367 = getelementptr inbounds i8, ptr %0, i64 10240
  %1368 = load ptr, ptr %1367, align 8, !tbaa !27
  store double %1366, ptr %1368, align 8, !tbaa !32
  %1369 = load double, ptr %5, align 8, !tbaa !32
  %1370 = load ptr, ptr %1367, align 8, !tbaa !27
  %1371 = getelementptr inbounds i8, ptr %1370, i64 8
  store double %1369, ptr %1371, align 8, !tbaa !32
  %1372 = load double, ptr %6, align 8, !tbaa !32
  %1373 = load ptr, ptr %1367, align 8, !tbaa !27
  %1374 = getelementptr inbounds i8, ptr %1373, i64 16
  store double %1372, ptr %1374, align 8, !tbaa !32
  %1375 = load ptr, ptr %1367, align 8, !tbaa !27
  %1376 = getelementptr inbounds i8, ptr %1375, i64 24
  store double %.71201, ptr %1376, align 8, !tbaa !32
  %1377 = load double, ptr %7, align 8, !tbaa !32
  %1378 = load ptr, ptr %1367, align 8, !tbaa !27
  %1379 = getelementptr inbounds i8, ptr %1378, i64 32
  store double %1377, ptr %1379, align 8, !tbaa !32
  %1380 = load double, ptr %8, align 8, !tbaa !32
  %1381 = load ptr, ptr %1367, align 8, !tbaa !27
  %1382 = getelementptr inbounds i8, ptr %1381, i64 40
  store double %1380, ptr %1382, align 8, !tbaa !32
  %1383 = load double, ptr %9, align 8, !tbaa !32
  %1384 = load ptr, ptr %1367, align 8, !tbaa !27
  %1385 = getelementptr inbounds i8, ptr %1384, i64 48
  store double %1383, ptr %1385, align 8, !tbaa !32
  %1386 = load double, ptr %10, align 8, !tbaa !32
  %1387 = load ptr, ptr %1367, align 8, !tbaa !27
  %1388 = getelementptr inbounds i8, ptr %1387, i64 56
  store double %1386, ptr %1388, align 8, !tbaa !32
  %1389 = load double, ptr %11, align 8, !tbaa !32
  %1390 = load ptr, ptr %1367, align 8, !tbaa !27
  %1391 = getelementptr inbounds i8, ptr %1390, i64 64
  store double %1389, ptr %1391, align 8, !tbaa !32
  %1392 = load double, ptr %12, align 8, !tbaa !32
  %1393 = load ptr, ptr %1367, align 8, !tbaa !27
  %1394 = getelementptr inbounds i8, ptr %1393, i64 72
  store double %1392, ptr %1394, align 8, !tbaa !32
  %1395 = load ptr, ptr %1367, align 8, !tbaa !27
  %1396 = getelementptr inbounds i8, ptr %1395, i64 80
  store double %.11193, ptr %1396, align 8, !tbaa !32
  %1397 = load ptr, ptr %1367, align 8, !tbaa !27
  %1398 = getelementptr inbounds i8, ptr %1397, i64 88
  store double %.11191, ptr %1398, align 8, !tbaa !32
  %1399 = load double, ptr %13, align 8, !tbaa !32
  %1400 = load ptr, ptr %1367, align 8, !tbaa !27
  %1401 = getelementptr inbounds i8, ptr %1400, i64 96
  store double %1399, ptr %1401, align 8, !tbaa !32
  %1402 = load double, ptr %14, align 8, !tbaa !32
  %1403 = load ptr, ptr %1367, align 8, !tbaa !27
  %1404 = getelementptr inbounds i8, ptr %1403, i64 104
  store double %1402, ptr %1404, align 8, !tbaa !32
  %1405 = load double, ptr %15, align 8, !tbaa !32
  %1406 = load ptr, ptr %1367, align 8, !tbaa !27
  %1407 = getelementptr inbounds i8, ptr %1406, i64 112
  store double %1405, ptr %1407, align 8, !tbaa !32
  %1408 = load ptr, ptr %1367, align 8, !tbaa !27
  %1409 = getelementptr inbounds i8, ptr %1408, i64 120
  store double %.41151, ptr %1409, align 8, !tbaa !32
  %1410 = load ptr, ptr %1367, align 8, !tbaa !27
  %1411 = getelementptr inbounds i8, ptr %1410, i64 128
  store double %.41146, ptr %1411, align 8, !tbaa !32
  %1412 = load ptr, ptr %1367, align 8, !tbaa !27
  %1413 = getelementptr inbounds i8, ptr %1412, i64 136
  store double %.41141, ptr %1413, align 8, !tbaa !32
  %1414 = load ptr, ptr %1367, align 8, !tbaa !27
  %1415 = getelementptr inbounds i8, ptr %1414, i64 144
  store double %.11128, ptr %1415, align 8, !tbaa !32
  %1416 = load ptr, ptr %1367, align 8, !tbaa !27
  %1417 = getelementptr inbounds i8, ptr %1416, i64 152
  store double %.8, ptr %1417, align 8, !tbaa !32
  %1418 = load ptr, ptr %1367, align 8, !tbaa !27
  %1419 = getelementptr inbounds i8, ptr %1418, i64 160
  store double %.41118, ptr %1419, align 8, !tbaa !32
  %1420 = load ptr, ptr %1367, align 8, !tbaa !27
  %1421 = getelementptr inbounds i8, ptr %1420, i64 168
  store double %.41113, ptr %1421, align 8, !tbaa !32
  %1422 = load ptr, ptr %1367, align 8, !tbaa !27
  %1423 = getelementptr inbounds i8, ptr %1422, i64 176
  store double %.41108, ptr %1423, align 8, !tbaa !32
  %1424 = load ptr, ptr %1367, align 8, !tbaa !27
  %1425 = getelementptr inbounds i8, ptr %1424, i64 184
  store double %.41093, ptr %1425, align 8, !tbaa !32
  %1426 = load ptr, ptr %1367, align 8, !tbaa !27
  %1427 = getelementptr inbounds i8, ptr %1426, i64 192
  store double %.41088, ptr %1427, align 8, !tbaa !32
  %1428 = load ptr, ptr %1367, align 8, !tbaa !27
  %1429 = getelementptr inbounds i8, ptr %1428, i64 200
  store double %.4, ptr %1429, align 8, !tbaa !32
  br label %1430

1430:                                             ; preds = %.thread1264, %1298, %.thread1265, %1321
  %.01233 = phi i1 [ true, %1321 ], [ false, %.thread1265 ], [ false, %1298 ], [ false, %.thread1264 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #5
  ret i1 %.01233
}

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL31gipm_barrierpenaltyandcmplerrorEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPdS9_S9_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef double @_ZN11alglib_implL13gipm_minabsnzEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL15gipm_computerhsEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_7gipmrhsEPdSA_SA_SA_SA_SA_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL16gipm_condenselhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL16gipm_condenserhsEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL19gipm_unpacksolutionEPKNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEdPKNS_7gipmrhsEPNS_19gipmcondensedsystemEPKNS_9ae_vectorEPS3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL18gipm_varsapplystepEPNS_8gipmvarsEPKS0_dPNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef double @_ZN11alglib_implL26gipm_computeupdateresidualEPNS_9gipmstateEPKNS_8gipmvarsEPKNS_11varsfuncjacEddS4_PKNS_9ae_vectorESA_SA_PNS_7gipmrhsEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef double @_ZN11alglib_implL22gipm_computesteplengthEPKNS_9gipmstateEPKNS_8gipmvarsES5_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { 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, !26, i64 10048}
!6 = !{!"_ZTSN11alglib_impl9gipmstateE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 88, !10, i64 152, !10, i64 216, !10, i64 280, !10, i64 344, !10, i64 408, !14, i64 472, !7, i64 480, !7, i64 488, !10, i64 496, !14, i64 560, !10, i64 568, !10, i64 632, !15, i64 696, !10, i64 1064, !10, i64 1128, !11, i64 1192, !11, i64 1193, !11, i64 1194, !10, i64 1200, !10, i64 1264, !10, i64 1328, !10, i64 1392, !10, i64 1456, !10, i64 1520, !10, i64 1584, !10, i64 1648, !14, i64 1712, !14, i64 1720, !14, i64 1728, !14, i64 1736, !14, i64 1744, !7, i64 1752, !16, i64 1760, !16, i64 2560, !17, i64 3360, !17, i64 3960, !14, i64 4560, !7, i64 4568, !19, i64 4576, !11, i64 4744, !11, i64 4745, !11, i64 4746, !7, i64 4752, !7, i64 4760, !20, i64 4768, !21, i64 4792, !23, i64 4936, !24, i64 5704, !16, i64 6856, !16, i64 7656, !10, i64 8456, !10, i64 8520, !10, i64 8584, !16, i64 8648, !17, i64 9448, !25, i64 10048}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !8, i64 56}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!"double", !8, i64 0}
!15 = !{!"_ZTSN11alglib_impl12sparsematrixE", !10, i64 0, !10, i64 64, !10, i64 128, !10, i64 192, !10, i64 256, !7, i64 320, !7, i64 328, !7, i64 336, !7, i64 344, !7, i64 352, !7, i64 360}
!16 = !{!"_ZTSN11alglib_impl8gipmvarsE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !10, i64 96, !10, i64 160, !10, i64 224, !10, i64 288, !10, i64 352, !10, i64 416, !10, i64 480, !10, i64 544, !10, i64 608, !10, i64 672, !10, i64 736}
!17 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !7, i64 0, !7, i64 8, !11, i64 16, !10, i64 24, !10, i64 88, !18, i64 152, !15, i64 232}
!18 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !12, i64 40, !8, i64 72}
!19 = !{!"_ZTSN11alglib_impl9nlpfilterE", !14, i64 0, !7, i64 8, !14, i64 16, !14, i64 24, !11, i64 32, !10, i64 40, !10, i64 104}
!20 = !{!"_ZTSN11alglib_impl6stimerE", !7, i64 0, !7, i64 8, !11, i64 16}
!21 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !12, i64 32, !22, i64 64, !12, i64 112}
!22 = !{!"_ZTSN11alglib_impl7ae_lockE", !13, i64 0, !12, i64 8, !11, i64 40}
!23 = !{!"_ZTSN11alglib_impl7gipmrhsE", !10, i64 0, !10, i64 64, !10, i64 128, !10, i64 192, !10, i64 256, !10, i64 320, !10, i64 384, !10, i64 448, !10, i64 512, !10, i64 576, !10, i64 640, !10, i64 704}
!24 = !{!"_ZTSN11alglib_impl19gipmcondensedsystemE", !10, i64 0, !10, i64 64, !10, i64 128, !10, i64 192, !10, i64 256, !10, i64 320, !10, i64 384, !10, i64 448, !10, i64 512, !10, i64 576, !10, i64 640, !10, i64 704, !10, i64 768, !10, i64 832, !10, i64 896, !10, i64 960, !10, i64 1024, !10, i64 1088}
!25 = !{!"_ZTSN11alglib_impl10rcommstateE", !26, i64 0, !10, i64 8, !10, i64 72, !10, i64 136, !10, i64 200}
!26 = !{!"int", !8, i64 0}
!27 = !{!8, !8, i64 0}
!28 = !{!7, !7, i64 0}
!29 = !{!11, !11, i64 0}
!30 = !{i8 0, i8 2}
!31 = !{}
!32 = !{!14, !14, i64 0}
!33 = !{!6, !7, i64 0}
!34 = !{!6, !7, i64 8}
!35 = !{!6, !7, i64 16}
!36 = !{!6, !11, i64 4744}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}
!39 = distinct !{!39, !38}
!40 = distinct !{!40, !38}
!41 = distinct !{!41, !38}
!42 = !{!6, !7, i64 488}
!43 = !{!6, !11, i64 1192}
!44 = distinct !{!44, !38}
!45 = distinct !{!45, !38}
!46 = distinct !{!46, !38}
!47 = !{!6, !14, i64 1712}
!48 = !{!6, !14, i64 1720}
!49 = !{!6, !14, i64 472}
!50 = !{!6, !14, i64 1728}
!51 = !{!6, !14, i64 4560}
!52 = !{!6, !7, i64 1752}
!53 = !{!6, !7, i64 4752}
!54 = !{!6, !7, i64 4568}
!55 = !{!6, !7, i64 480}
!56 = !{!6, !7, i64 4760}
!57 = !{!6, !14, i64 1736}
!58 = !{!6, !14, i64 1744}
!59 = !{!6, !11, i64 4745}
!60 = !{!6, !11, i64 1194}
!61 = distinct !{!61, !38}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,MergedLoadStoreMotionPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass