; 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::minsqpstate" = type { i64, i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"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::nlpstoppingcriteria", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, i8, i8, double, double, double, i64, i64, %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minsqpsubsolver", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::ae_obj_array", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"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", i64, i64, double, i64, double, i64, double, i64, %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::nlpstoppingcriteria" = type { double, double, i64 }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::minsqpsubsolver" = type { %"struct.alglib_impl::vipmstate", %"struct.alglib_impl::ipm2state", %"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::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"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_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::vipmstate" = type { i8, i8, i64, i64, double, double, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", i64, 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_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"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, %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"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, i8, i8, i64, 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", %"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_matrix", %"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::vipmreducedsparsesystem", %"struct.alglib_impl::vipmrighthandside", %"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::vipmvars", %"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_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::vipmreducedsparsesystem" = type { %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::spcholanalysis", %"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::spcholanalysis" = type { i64, i64, i64, i8, i64, double, double, double, double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, %"struct.alglib_impl::ae_vector", 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", 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", i8, i8, %"struct.alglib_impl::spcholadj", %"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_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"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::amdbuffer", %"struct.alglib_impl::priorityamdbuffers", %"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::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::spcholadj" = 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_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::amdbuffer" = type { i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdllmatrix", %"struct.alglib_impl::amdvertexset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::amdllmatrix" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::amdvertexset" = type { i64, i8, 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::amdknset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::niset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::priorityamdbuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdbuffer", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::vipmrighthandside" = 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::vipmvars" = type { 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::ipm2state" = type { i64, i64, i64, double, double, double, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", i8, double, %"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::sparsematrix", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ipm2righthandside", i64, i64, i8, i8, i8, %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::ipm2reducedsystem", %"struct.alglib_impl::ipm2righthandside", %"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_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ipm2vars" = type { 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::ipm2reducedsystem" = type { %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::spcholanalysis", %"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", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ipm2righthandside" = 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::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::xbfgshessian" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, double, double, double, double, double, double, i64, double, double, %"struct.alglib_impl::ae_matrix", i64, double, double, double, i64, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i8, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i8, %"struct.alglib_impl::ae_vector", i8, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", double, double, i64, %"struct.alglib_impl::ae_matrix", %"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_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_obj_array" = type { i64, i64, i8, ptr, ptr, ptr, ptr, %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::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_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::stimer" = type { i64, i64, i8 }
%"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" }
%"struct.alglib_impl::smoothnessmonitor" = type { i64, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate", i8, i8, i64, i64, double, double, i8, %"struct.alglib_impl::optguardreport", double, double, %"struct.alglib_impl::optguardnonc0report", %"struct.alglib_impl::optguardnonc0report", double, double, %"struct.alglib_impl::optguardnonc1test0report", %"struct.alglib_impl::optguardnonc1test0report", double, double, %"struct.alglib_impl::optguardnonc1test1report", %"struct.alglib_impl::optguardnonc1test1report", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rcommstate", %"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_matrix", %"struct.alglib_impl::ae_matrix", %"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_matrix" }
%"struct.alglib_impl::optguardreport" = type { i8, i8, i64, double, i8, i8, i8, i64, double, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardnonc0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test1report" = type { i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }

@.str.205 = external hidden unnamed_addr constant [66 x i8], align 1
@.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
@.str.733 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [103 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
@.str.1113 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1114 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1115 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1117 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1123 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.1124 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.1125 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.1126 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.1127 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.1128 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1129 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1130 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1131 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1132 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1133 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1134 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1135 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.1136 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1137 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1141 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.1145 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.1154 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1156 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1157 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1161 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1162 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1169 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1170 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1171 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1176 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.1177 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1178 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1179 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1253 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1258 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1259 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1260 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1361 = external hidden unnamed_addr constant [49 x i8], align 1
@_ZN11alglib_implL23nlcsqp_sqpdeltadecreaseE = external hidden global double, align 8
@_ZN11alglib_implL23nlcsqp_sqpdeltaincreaseE = external hidden global double, align 8
@_ZN11alglib_implL19nlcsqp_inittrustradE = external hidden global double, align 8
@_ZN11alglib_implL24nlcsqp_deftrustradgrowthE = external hidden global double, align 8
@.str.1378 = external hidden unnamed_addr constant [102 x i8], align 1
@_ZN11alglib_implL18nlcsqp_xbfgsmemlenE = external hidden global i64, align 8
@_ZN11alglib_implL19nlcsqp_xbfgsmaxhessE = external hidden global double, align 8
@_ZN11alglib_implL23nlcsqp_fstagnationlimitE = external hidden global i64, align 8
@_ZN11alglib_implL18nlcsqp_sqpbigscaleE = external hidden global double, align 8
@_ZN11alglib_implL20nlcsqp_sqpmaxrescaleE = external hidden global double, align 8
@_ZN11alglib_implL20nlcsqp_sqpsmallscaleE = external hidden global double, align 8
@_ZN11alglib_implL20nlcsqp_sqpminrescaleE = external hidden global double, align 8
@.str.1379 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1380 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.1381 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1382 = external hidden unnamed_addr constant [98 x i8], align 1
@_ZN11alglib_implL23nlcsqp_maxtrustraddecayE = external hidden global double, align 8
@_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE = external hidden global double, align 8
@.str.1383 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.1384 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.1385 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZN11alglib_implL21nlcsqp_stagnationepsfE = external hidden global double, align 8
@.str.1386 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1387 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.1388 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1389 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1390 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1391 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1392 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1393 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1394 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1395 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1396 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1397 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1398 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1399 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1400 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1401 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1402 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1403 = external hidden unnamed_addr constant [48 x i8], align 1
@_ZN11alglib_implL17nlcsqp_maxmeritmuE = external hidden global double, align 8
@_ZN11alglib_implL21nlcsqp_momentumgrowthE = external hidden global double, align 8
@_ZN11alglib_implL24nlcsqp_maxtrustradgrowthE = external hidden global double, align 8
@_ZN11alglib_implL30nlcsqp_trustradstagnationlimitE = external hidden global i64, align 8
@.str.1404 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1405 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.1406 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1407 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.1408 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1409 = 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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl26enforceboundaryconstraintsEPNS_9ae_vectorEPKS0_S3_S3_S3_llPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef) #1

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

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

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

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

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

declare void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef, ptr noundef) #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, i64 noundef, i64 noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

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

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

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

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

declare noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) #3

declare void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, i1 noundef zeroext, ptr noundef, i1 noundef zeroext, ptr noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl15hessianinitbfgsEPNS_12xbfgshessianElldPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, double noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, double noundef, double noundef, ptr noundef) #1

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

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

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

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

declare void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

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

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

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

declare void @_ZN11alglib_impl11rcopyallocmEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

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

declare void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef) #3

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

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

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

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

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

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

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

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

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

442:                                              ; preds = %441, %67
  %443 = load ptr, ptr %6, align 8, !tbaa !5
  %444 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %443, i32 0, i32 66
  %445 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %444, i32 0, i32 0
  %446 = load i32, ptr %445, align 8, !tbaa !11
  %447 = icmp eq i32 %446, 0
  br i1 %447, label %448, label %449

448:                                              ; preds = %442
  br label %655

449:                                              ; preds = %442
  %450 = load ptr, ptr %6, align 8, !tbaa !5
  %451 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %450, i32 0, i32 66
  %452 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %451, i32 0, i32 0
  %453 = load i32, ptr %452, align 8, !tbaa !11
  %454 = icmp eq i32 %453, 1
  br i1 %454, label %455, label %456

455:                                              ; preds = %449
  br label %702

456:                                              ; preds = %449
  %457 = load ptr, ptr %6, align 8, !tbaa !5
  %458 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %457, i32 0, i32 66
  %459 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %458, i32 0, i32 0
  %460 = load i32, ptr %459, align 8, !tbaa !11
  %461 = icmp eq i32 %460, 2
  br i1 %461, label %462, label %463

462:                                              ; preds = %456
  br label %1408

463:                                              ; preds = %456
  %464 = load ptr, ptr %6, align 8, !tbaa !5
  %465 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %464, i32 0, i32 66
  %466 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %465, i32 0, i32 0
  %467 = load i32, ptr %466, align 8, !tbaa !11
  %468 = icmp eq i32 %467, 3
  br i1 %468, label %469, label %470

469:                                              ; preds = %463
  br label %1785

470:                                              ; preds = %463
  %471 = load ptr, ptr %6, align 8, !tbaa !5
  %472 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %471, i32 0, i32 66
  %473 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %472, i32 0, i32 0
  %474 = load i32, ptr %473, align 8, !tbaa !11
  %475 = icmp eq i32 %474, 4
  br i1 %475, label %476, label %477

476:                                              ; preds = %470
  br label %2403

477:                                              ; preds = %470
  %478 = load ptr, ptr %6, align 8, !tbaa !5
  %479 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %478, i32 0, i32 66
  %480 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %479, i32 0, i32 0
  %481 = load i32, ptr %480, align 8, !tbaa !11
  %482 = icmp eq i32 %481, 5
  br i1 %482, label %483, label %484

483:                                              ; preds = %477
  br label %2796

484:                                              ; preds = %477
  %485 = load ptr, ptr %6, align 8, !tbaa !5
  %486 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %485, i32 0, i32 0
  %487 = load i64, ptr %486, align 8, !tbaa !50
  store i64 %487, ptr %10, align 8, !tbaa !46
  %488 = load ptr, ptr %6, align 8, !tbaa !5
  %489 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %488, i32 0, i32 1
  %490 = load i64, ptr %489, align 8, !tbaa !51
  store i64 %490, ptr %12, align 8, !tbaa !46
  %491 = load ptr, ptr %6, align 8, !tbaa !5
  %492 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %491, i32 0, i32 2
  %493 = load i64, ptr %492, align 8, !tbaa !52
  store i64 %493, ptr %13, align 8, !tbaa !46
  %494 = load ptr, ptr %6, align 8, !tbaa !5
  %495 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %494, i32 0, i32 3
  %496 = load i64, ptr %495, align 8, !tbaa !53
  store i64 %496, ptr %14, align 8, !tbaa !46
  %497 = load ptr, ptr %6, align 8, !tbaa !5
  %498 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %497, i32 0, i32 4
  %499 = load i64, ptr %498, align 8, !tbaa !54
  store i64 %499, ptr %15, align 8, !tbaa !46
  %500 = load i64, ptr %10, align 8, !tbaa !46
  %501 = load i64, ptr %12, align 8, !tbaa !46
  %502 = load i64, ptr %14, align 8, !tbaa !46
  %503 = add nsw i64 %501, %502
  %504 = mul nsw i64 2, %503
  %505 = add nsw i64 %500, %504
  %506 = load i64, ptr %13, align 8, !tbaa !46
  %507 = load i64, ptr %15, align 8, !tbaa !46
  %508 = add nsw i64 %506, %507
  %509 = add nsw i64 %505, %508
  store i64 %509, ptr %11, align 8, !tbaa !46
  %510 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1114)
  br i1 %510, label %511, label %514

511:                                              ; preds = %484
  %512 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1113)
  %513 = xor i1 %512, true
  br label %514

514:                                              ; preds = %511, %484
  %515 = phi i1 [ false, %484 ], [ %513, %511 ]
  %516 = zext i1 %515 to i8
  store i8 %516, ptr %28, align 1, !tbaa !9
  %517 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %518 = trunc i8 %517 to i1
  br i1 %518, label %519, label %521

519:                                              ; preds = %514
  %520 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1115)
  br label %521

521:                                              ; preds = %519, %514
  %522 = phi i1 [ false, %514 ], [ %520, %519 ]
  %523 = zext i1 %522 to i8
  store i8 %523, ptr %31, align 1, !tbaa !9
  %524 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %525 = trunc i8 %524 to i1
  br i1 %525, label %526, label %528

526:                                              ; preds = %521
  %527 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1116)
  br label %528

528:                                              ; preds = %526, %521
  %529 = phi i1 [ false, %521 ], [ %527, %526 ]
  %530 = zext i1 %529 to i8
  store i8 %530, ptr %29, align 1, !tbaa !9
  %531 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %532 = trunc i8 %531 to i1
  br i1 %532, label %533, label %535

533:                                              ; preds = %528
  %534 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1117)
  br label %535

535:                                              ; preds = %533, %528
  %536 = phi i1 [ false, %528 ], [ %534, %533 ]
  %537 = zext i1 %536 to i8
  store i8 %537, ptr %30, align 1, !tbaa !9
  %538 = load ptr, ptr %6, align 8, !tbaa !5
  %539 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %538, i32 0, i32 19
  store i8 0, ptr %539, align 8, !tbaa !55
  %540 = load ptr, ptr %6, align 8, !tbaa !5
  %541 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %540, i32 0, i32 20
  store i8 0, ptr %541, align 1, !tbaa !56
  %542 = load ptr, ptr %6, align 8, !tbaa !5
  %543 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %542, i32 0, i32 63
  %544 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %543, ptr noundef %544)
  %545 = load ptr, ptr %6, align 8, !tbaa !5
  %546 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %545, i32 0, i32 64
  %547 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %546, ptr noundef %547)
  %548 = load ptr, ptr %6, align 8, !tbaa !5
  %549 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %548, i32 0, i32 65
  %550 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %549, ptr noundef %550)
  %551 = load ptr, ptr %6, align 8, !tbaa !5
  %552 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %551, i32 0, i32 63
  %553 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %552, ptr noundef %553)
  %554 = load ptr, ptr %6, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %554, i32 0, i32 25
  store i64 0, ptr %555, align 8, !tbaa !57
  %556 = load ptr, ptr %6, align 8, !tbaa !5
  %557 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %556, i32 0, i32 24
  store i64 0, ptr %557, align 8, !tbaa !58
  %558 = load double, ptr @_ZN11alglib_implL19nlcsqp_inittrustradE, align 8, !tbaa !49
  %559 = load ptr, ptr %6, align 8, !tbaa !5
  %560 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %559, i32 0, i32 22
  store double %558, ptr %560, align 8, !tbaa !59
  %561 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !49
  %562 = load ptr, ptr %6, align 8, !tbaa !5
  %563 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %562, i32 0, i32 23
  store double %561, ptr %563, align 8, !tbaa !60
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %564

564:                                              ; preds = %583, %535
  %565 = load i64, ptr %16, align 8, !tbaa !46
  %566 = load i64, ptr %14, align 8, !tbaa !46
  %567 = load i64, ptr %15, align 8, !tbaa !46
  %568 = add nsw i64 %566, %567
  %569 = icmp sle i64 %565, %568
  br i1 %569, label %570, label %586

570:                                              ; preds = %564
  %571 = load ptr, ptr %6, align 8, !tbaa !5
  %572 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %571, i32 0, i32 29
  %573 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %572, i32 0, i32 4
  %574 = load ptr, ptr %573, align 8, !tbaa !45
  %575 = load i64, ptr %16, align 8, !tbaa !46
  %576 = getelementptr inbounds double, ptr %574, i64 %575
  store double 1.000000e+00, ptr %576, align 8, !tbaa !49
  %577 = load ptr, ptr %6, align 8, !tbaa !5
  %578 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %577, i32 0, i32 30
  %579 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %578, i32 0, i32 4
  %580 = load ptr, ptr %579, align 8, !tbaa !45
  %581 = load i64, ptr %16, align 8, !tbaa !46
  %582 = getelementptr inbounds double, ptr %580, i64 %581
  store double 0.000000e+00, ptr %582, align 8, !tbaa !49
  br label %583

583:                                              ; preds = %570
  %584 = load i64, ptr %16, align 8, !tbaa !46
  %585 = add nsw i64 %584, 1
  store i64 %585, ptr %16, align 8, !tbaa !46
  br label %564, !llvm.loop !61

586:                                              ; preds = %564
  %587 = load ptr, ptr %6, align 8, !tbaa !5
  %588 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %587, i32 0, i32 33
  call void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef %588)
  %589 = load ptr, ptr %6, align 8, !tbaa !5
  %590 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %589, i32 0, i32 34
  store i64 0, ptr %590, align 8, !tbaa !63
  %591 = load i64, ptr %10, align 8, !tbaa !46
  %592 = load i64, ptr %14, align 8, !tbaa !46
  %593 = add nsw i64 1, %592
  %594 = load i64, ptr %15, align 8, !tbaa !46
  %595 = add nsw i64 %593, %594
  %596 = load ptr, ptr %6, align 8, !tbaa !5
  %597 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %596, i32 0, i32 26
  %598 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %591, i64 noundef %595, ptr noundef %597, ptr noundef %598)
  %599 = load i64, ptr %10, align 8, !tbaa !46
  %600 = load i64, ptr %14, align 8, !tbaa !46
  %601 = add nsw i64 1, %600
  %602 = load i64, ptr %15, align 8, !tbaa !46
  %603 = add nsw i64 %601, %602
  %604 = load ptr, ptr %6, align 8, !tbaa !5
  %605 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %604, i32 0, i32 37
  %606 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %599, i64 noundef %603, ptr noundef %605, ptr noundef %606)
  %607 = load i64, ptr %10, align 8, !tbaa !46
  %608 = load i64, ptr %14, align 8, !tbaa !46
  %609 = add nsw i64 1, %608
  %610 = load i64, ptr %15, align 8, !tbaa !46
  %611 = add nsw i64 %609, %610
  %612 = load ptr, ptr %6, align 8, !tbaa !5
  %613 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %612, i32 0, i32 38
  %614 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %607, i64 noundef %611, ptr noundef %613, ptr noundef %614)
  %615 = load i64, ptr %10, align 8, !tbaa !46
  %616 = load i64, ptr %14, align 8, !tbaa !46
  %617 = add nsw i64 1, %616
  %618 = load i64, ptr %15, align 8, !tbaa !46
  %619 = add nsw i64 %617, %618
  %620 = load ptr, ptr %6, align 8, !tbaa !5
  %621 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %620, i32 0, i32 39
  %622 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %615, i64 noundef %619, ptr noundef %621, ptr noundef %622)
  %623 = load i64, ptr %10, align 8, !tbaa !46
  %624 = load i64, ptr %14, align 8, !tbaa !46
  %625 = add nsw i64 1, %624
  %626 = load i64, ptr %15, align 8, !tbaa !46
  %627 = add nsw i64 %625, %626
  %628 = load ptr, ptr %6, align 8, !tbaa !5
  %629 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %628, i32 0, i32 40
  %630 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %623, i64 noundef %627, ptr noundef %629, ptr noundef %630)
  %631 = load i64, ptr %10, align 8, !tbaa !46
  %632 = load ptr, ptr %6, align 8, !tbaa !5
  %633 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %632, i32 0, i32 27
  %634 = load ptr, ptr %6, align 8, !tbaa !5
  %635 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %634, i32 0, i32 26
  %636 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %635, i32 0, i32 3
  %637 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %631, ptr noundef %633, ptr noundef %636, ptr noundef %637)
  %638 = load ptr, ptr %6, align 8, !tbaa !5
  %639 = load ptr, ptr %6, align 8, !tbaa !5
  %640 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %639, i32 0, i32 26
  %641 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %640, i32 0, i32 3
  %642 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %638, ptr noundef %641, ptr noundef %642)
  %643 = load ptr, ptr %6, align 8, !tbaa !5
  %644 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %643, i32 0, i32 19
  store i8 1, ptr %644, align 8, !tbaa !55
  %645 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %646 = trunc i8 %645 to i1
  br i1 %646, label %647, label %651

647:                                              ; preds = %586
  %648 = load ptr, ptr %6, align 8, !tbaa !5
  %649 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %648, i32 0, i32 65
  %650 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %649, ptr noundef %650)
  br label %651

651:                                              ; preds = %647, %586
  %652 = load ptr, ptr %6, align 8, !tbaa !5
  %653 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %652, i32 0, i32 66
  %654 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %653, i32 0, i32 0
  store i32 0, ptr %654, align 8, !tbaa !11
  br label %3072

655:                                              ; preds = %448
  %656 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %657 = trunc i8 %656 to i1
  br i1 %657, label %658, label %662

658:                                              ; preds = %655
  %659 = load ptr, ptr %6, align 8, !tbaa !5
  %660 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %659, i32 0, i32 65
  %661 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %660, ptr noundef %661)
  br label %662

662:                                              ; preds = %658, %655
  %663 = load ptr, ptr %6, align 8, !tbaa !5
  %664 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %663, i32 0, i32 19
  store i8 0, ptr %664, align 8, !tbaa !55
  %665 = load ptr, ptr %6, align 8, !tbaa !5
  %666 = load ptr, ptr %6, align 8, !tbaa !5
  %667 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %666, i32 0, i32 26
  %668 = load ptr, ptr %9, align 8, !tbaa !5
  %669 = call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %665, ptr noundef %667, ptr noundef %668)
  br i1 %669, label %675, label %670

670:                                              ; preds = %662
  %671 = load ptr, ptr %6, align 8, !tbaa !5
  %672 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %671, i32 0, i32 56
  store i64 -8, ptr %672, align 8, !tbaa !64
  store i8 0, ptr %59, align 1, !tbaa !9
  %673 = load i8, ptr %59, align 1, !tbaa !9, !range !47, !noundef !48
  %674 = trunc i8 %673 to i1
  store i1 %674, ptr %5, align 1
  store i32 1, ptr %60, align 4
  br label %3448

675:                                              ; preds = %662
  %676 = load ptr, ptr %6, align 8, !tbaa !5
  %677 = load ptr, ptr %6, align 8, !tbaa !5
  %678 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %677, i32 0, i32 26
  %679 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %678, i32 0, i32 3
  %680 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %676, ptr noundef %679, ptr noundef %680)
  %681 = load ptr, ptr %6, align 8, !tbaa !5
  %682 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %681, i32 0, i32 26
  %683 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %682, i32 0, i32 4
  %684 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %683, i32 0, i32 4
  %685 = load ptr, ptr %684, align 8, !tbaa !45
  %686 = getelementptr inbounds double, ptr %685, i64 0
  %687 = load double, ptr %686, align 8, !tbaa !49
  %688 = load ptr, ptr %6, align 8, !tbaa !5
  %689 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %688, i32 0, i32 29
  %690 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %689, i32 0, i32 4
  %691 = load ptr, ptr %690, align 8, !tbaa !45
  %692 = getelementptr inbounds double, ptr %691, i64 0
  %693 = load double, ptr %692, align 8, !tbaa !49
  %694 = fmul double %687, %693
  %695 = load ptr, ptr %6, align 8, !tbaa !5
  %696 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %695, i32 0, i32 18
  store double %694, ptr %696, align 8, !tbaa !65
  %697 = load ptr, ptr %6, align 8, !tbaa !5
  %698 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %697, i32 0, i32 20
  store i8 1, ptr %698, align 1, !tbaa !56
  %699 = load ptr, ptr %6, align 8, !tbaa !5
  %700 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %699, i32 0, i32 66
  %701 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %700, i32 0, i32 0
  store i32 1, ptr %701, align 8, !tbaa !11
  br label %3072

702:                                              ; preds = %455
  %703 = load ptr, ptr %6, align 8, !tbaa !5
  %704 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %703, i32 0, i32 20
  store i8 0, ptr %704, align 1, !tbaa !56
  %705 = load ptr, ptr %6, align 8, !tbaa !5
  %706 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %705, i32 0, i32 7
  %707 = load ptr, ptr %6, align 8, !tbaa !5
  %708 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %707, i32 0, i32 8
  %709 = load i64, ptr %12, align 8, !tbaa !46
  %710 = load i64, ptr %13, align 8, !tbaa !46
  %711 = load ptr, ptr %6, align 8, !tbaa !5
  %712 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %711, i32 0, i32 26
  %713 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %712, i32 0, i32 3
  %714 = load i64, ptr %10, align 8, !tbaa !46
  %715 = load ptr, ptr %6, align 8, !tbaa !5
  %716 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %715, i32 0, i32 59
  %717 = load ptr, ptr %6, align 8, !tbaa !5
  %718 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %717, i32 0, i32 60
  %719 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl16checklcviolationEPKNS_9ae_matrixEPKNS_9ae_vectorEllS5_lPdPlPNS_8ae_stateE(ptr noundef %706, ptr noundef %708, i64 noundef %709, i64 noundef %710, ptr noundef %713, i64 noundef %714, ptr noundef %716, ptr noundef %718, ptr noundef %719)
  %720 = load ptr, ptr %6, align 8, !tbaa !5
  %721 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %720, i32 0, i32 26
  %722 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %721, i32 0, i32 4
  %723 = load ptr, ptr %6, align 8, !tbaa !5
  %724 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %723, i32 0, i32 29
  %725 = load i64, ptr %14, align 8, !tbaa !46
  %726 = load i64, ptr %15, align 8, !tbaa !46
  %727 = load ptr, ptr %6, align 8, !tbaa !5
  %728 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %727, i32 0, i32 61
  %729 = load ptr, ptr %6, align 8, !tbaa !5
  %730 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %729, i32 0, i32 62
  %731 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl27unscaleandchecknlcviolationEPKNS_9ae_vectorES2_llPdPlPNS_8ae_stateE(ptr noundef %722, ptr noundef %724, i64 noundef %725, i64 noundef %726, ptr noundef %728, ptr noundef %730, ptr noundef %731)
  %732 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %733 = trunc i8 %732 to i1
  br i1 %733, label %734, label %735

734:                                              ; preds = %702
  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.1378)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  br label %735

735:                                              ; preds = %734, %702
  store i8 1, ptr %55, align 1, !tbaa !9
  store i8 0, ptr %56, align 1, !tbaa !9
  store i8 0, ptr %57, align 1, !tbaa !9
  store double 1.000000e+50, ptr %27, align 8, !tbaa !49
  %736 = load ptr, ptr %6, align 8, !tbaa !5
  %737 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %736, i32 0, i32 21
  store double 5.000000e+02, ptr %737, align 8, !tbaa !66
  %738 = load ptr, ptr %6, align 8, !tbaa !5
  %739 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %738, i32 0, i32 5
  %740 = load i8, ptr %739, align 8, !tbaa !67, !range !47, !noundef !48
  %741 = trunc i8 %740 to i1
  br i1 %741, label %742, label %759

742:                                              ; preds = %735
  %743 = load ptr, ptr %6, align 8, !tbaa !5
  %744 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %743, i32 0, i32 32
  %745 = load i64, ptr %10, align 8, !tbaa !46
  %746 = load ptr, ptr %6, align 8, !tbaa !5
  %747 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %746, i32 0, i32 14
  %748 = load i64, ptr %747, align 8, !tbaa !68
  %749 = load ptr, ptr %6, align 8, !tbaa !5
  %750 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %749, i32 0, i32 13
  %751 = load ptr, ptr %9, align 8, !tbaa !5
  %752 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %750, ptr noundef %751)
  %753 = load ptr, ptr %9, align 8, !tbaa !5
  %754 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %753)
  %755 = load ptr, ptr %9, align 8, !tbaa !5
  %756 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %752, double noundef %754, ptr noundef %755)
  %757 = fmul double 1.000000e+01, %756
  %758 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl15hessianinitbfgsEPNS_12xbfgshessianElldPNS_8ae_stateE(ptr noundef %744, i64 noundef %745, i64 noundef %748, double noundef %757, ptr noundef %758)
  br label %778

759:                                              ; preds = %735
  %760 = load ptr, ptr %6, align 8, !tbaa !5
  %761 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %760, i32 0, i32 32
  %762 = load i64, ptr %10, align 8, !tbaa !46
  %763 = load i64, ptr %10, align 8, !tbaa !46
  %764 = load i64, ptr @_ZN11alglib_implL18nlcsqp_xbfgsmemlenE, align 8, !tbaa !46
  %765 = load ptr, ptr %9, align 8, !tbaa !5
  %766 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %763, i64 noundef %764, ptr noundef %765)
  %767 = load ptr, ptr %6, align 8, !tbaa !5
  %768 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %767, i32 0, i32 13
  %769 = load ptr, ptr %9, align 8, !tbaa !5
  %770 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %768, ptr noundef %769)
  %771 = load ptr, ptr %9, align 8, !tbaa !5
  %772 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %771)
  %773 = load ptr, ptr %9, align 8, !tbaa !5
  %774 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %770, double noundef %772, ptr noundef %773)
  %775 = fmul double 1.000000e+01, %774
  %776 = load double, ptr @_ZN11alglib_implL19nlcsqp_xbfgsmaxhessE, align 8, !tbaa !49
  %777 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef %761, i64 noundef %762, i64 noundef %766, double noundef %775, double noundef %776, ptr noundef %777)
  br label %778

778:                                              ; preds = %759, %742
  %779 = load ptr, ptr %6, align 8, !tbaa !5
  %780 = load ptr, ptr %6, align 8, !tbaa !5
  %781 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %780, i32 0, i32 31
  %782 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL22nlcsqp_initqpsubsolverEPKNS_11minsqpstateEPNS_15minsqpsubsolverEPNS_8ae_stateE(ptr noundef %779, ptr noundef %781, ptr noundef %782)
  br label %783

783:                                              ; preds = %2997, %1804, %1695, %1427, %1296, %778
  %784 = load double, ptr %27, align 8, !tbaa !49
  %785 = load ptr, ptr %6, align 8, !tbaa !5
  %786 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %785, i32 0, i32 13
  %787 = load ptr, ptr %9, align 8, !tbaa !5
  %788 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %786, ptr noundef %787)
  %789 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %784, double noundef %788)
  br i1 %789, label %790, label %801

790:                                              ; preds = %783
  %791 = load ptr, ptr %6, align 8, !tbaa !5
  %792 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %791, i32 0, i32 56
  store i64 1, ptr %792, align 8, !tbaa !64
  %793 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %794 = trunc i8 %793 to i1
  br i1 %794, label %795, label %800

795:                                              ; preds = %790
  %796 = load ptr, ptr %6, align 8, !tbaa !5
  %797 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %796, i32 0, i32 13
  %798 = load ptr, ptr %9, align 8, !tbaa !5
  %799 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %797, ptr noundef %798)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1123, double noundef %799)
  br label %800

800:                                              ; preds = %795, %790
  br label %3011

801:                                              ; preds = %783
  %802 = load ptr, ptr %6, align 8, !tbaa !5
  %803 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %802, i32 0, i32 22
  %804 = load double, ptr %803, align 8, !tbaa !59
  %805 = load ptr, ptr %6, align 8, !tbaa !5
  %806 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %805, i32 0, i32 13
  %807 = load ptr, ptr %9, align 8, !tbaa !5
  %808 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %806, ptr noundef %807)
  %809 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %804, double noundef %808)
  br i1 %809, label %810, label %821

810:                                              ; preds = %801
  %811 = load ptr, ptr %6, align 8, !tbaa !5
  %812 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %811, i32 0, i32 56
  store i64 2, ptr %812, align 8, !tbaa !64
  %813 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %814 = trunc i8 %813 to i1
  br i1 %814, label %815, label %820

815:                                              ; preds = %810
  %816 = load ptr, ptr %6, align 8, !tbaa !5
  %817 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %816, i32 0, i32 13
  %818 = load ptr, ptr %9, align 8, !tbaa !5
  %819 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %817, ptr noundef %818)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1124, double noundef %819)
  br label %820

820:                                              ; preds = %815, %810
  br label %3011

821:                                              ; preds = %801
  %822 = load ptr, ptr %9, align 8, !tbaa !5
  %823 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %822)
  store double %823, ptr %18, align 8, !tbaa !49
  %824 = load ptr, ptr %6, align 8, !tbaa !5
  %825 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %824, i32 0, i32 22
  %826 = load double, ptr %825, align 8, !tbaa !59
  %827 = load double, ptr %18, align 8, !tbaa !49
  %828 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %826, double noundef %827)
  br i1 %828, label %829, label %837

829:                                              ; preds = %821
  %830 = load ptr, ptr %6, align 8, !tbaa !5
  %831 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %830, i32 0, i32 56
  store i64 7, ptr %831, align 8, !tbaa !64
  %832 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %833 = trunc i8 %832 to i1
  br i1 %833, label %834, label %836

834:                                              ; preds = %829
  %835 = load double, ptr %18, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1125, double noundef %835)
  br label %836

836:                                              ; preds = %834, %829
  br label %3011

837:                                              ; preds = %821
  %838 = load ptr, ptr %6, align 8, !tbaa !5
  %839 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %838, i32 0, i32 13
  %840 = load ptr, ptr %9, align 8, !tbaa !5
  %841 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %839, ptr noundef %840)
  %842 = icmp sgt i64 %841, 0
  br i1 %842, label %843, label %863

843:                                              ; preds = %837
  %844 = load ptr, ptr %6, align 8, !tbaa !5
  %845 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %844, i32 0, i32 55
  %846 = load i64, ptr %845, align 8, !tbaa !69
  %847 = load ptr, ptr %6, align 8, !tbaa !5
  %848 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %847, i32 0, i32 13
  %849 = load ptr, ptr %9, align 8, !tbaa !5
  %850 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %848, ptr noundef %849)
  %851 = icmp sge i64 %846, %850
  br i1 %851, label %852, label %863

852:                                              ; preds = %843
  %853 = load ptr, ptr %6, align 8, !tbaa !5
  %854 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %853, i32 0, i32 56
  store i64 5, ptr %854, align 8, !tbaa !64
  %855 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %856 = trunc i8 %855 to i1
  br i1 %856, label %857, label %862

857:                                              ; preds = %852
  %858 = load ptr, ptr %6, align 8, !tbaa !5
  %859 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %858, i32 0, i32 55
  %860 = load i64, ptr %859, align 8, !tbaa !69
  %861 = trunc i64 %860 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1126, i32 noundef %861)
  br label %862

862:                                              ; preds = %857, %852
  br label %3011

863:                                              ; preds = %843, %837
  %864 = load ptr, ptr %6, align 8, !tbaa !5
  %865 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %864, i32 0, i32 25
  %866 = load i64, ptr %865, align 8, !tbaa !57
  %867 = load i64, ptr @_ZN11alglib_implL23nlcsqp_fstagnationlimitE, align 8, !tbaa !46
  %868 = icmp sge i64 %866, %867
  br i1 %868, label %869, label %880

869:                                              ; preds = %863
  %870 = load ptr, ptr %6, align 8, !tbaa !5
  %871 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %870, i32 0, i32 56
  store i64 7, ptr %871, align 8, !tbaa !64
  %872 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %873 = trunc i8 %872 to i1
  br i1 %873, label %874, label %879

874:                                              ; preds = %869
  %875 = load ptr, ptr %6, align 8, !tbaa !5
  %876 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %875, i32 0, i32 25
  %877 = load i64, ptr %876, align 8, !tbaa !57
  %878 = trunc i64 %877 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1127, i32 noundef %878)
  br label %879

879:                                              ; preds = %874, %869
  br label %3011

880:                                              ; preds = %863
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %881

881:                                              ; preds = %1080, %880
  %882 = load i64, ptr %16, align 8, !tbaa !46
  %883 = load i64, ptr %14, align 8, !tbaa !46
  %884 = load i64, ptr %15, align 8, !tbaa !46
  %885 = add nsw i64 %883, %884
  %886 = icmp sle i64 %882, %885
  br i1 %886, label %887, label %1083

887:                                              ; preds = %881
  store double 0.000000e+00, ptr %20, align 8, !tbaa !49
  store i64 0, ptr %17, align 8, !tbaa !46
  br label %888

888:                                              ; preds = %910, %887
  %889 = load i64, ptr %17, align 8, !tbaa !46
  %890 = load i64, ptr %10, align 8, !tbaa !46
  %891 = sub nsw i64 %890, 1
  %892 = icmp sle i64 %889, %891
  br i1 %892, label %893, label %913

893:                                              ; preds = %888
  %894 = load double, ptr %20, align 8, !tbaa !49
  %895 = load ptr, ptr %6, align 8, !tbaa !5
  %896 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %895, i32 0, i32 26
  %897 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %896, i32 0, i32 5
  %898 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %897, i32 0, i32 6
  %899 = load ptr, ptr %898, align 8, !tbaa !45
  %900 = load i64, ptr %16, align 8, !tbaa !46
  %901 = getelementptr inbounds ptr, ptr %899, i64 %900
  %902 = load ptr, ptr %901, align 8, !tbaa !5
  %903 = load i64, ptr %17, align 8, !tbaa !46
  %904 = getelementptr inbounds double, ptr %902, i64 %903
  %905 = load double, ptr %904, align 8, !tbaa !49
  %906 = load ptr, ptr %9, align 8, !tbaa !5
  %907 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %905, ptr noundef %906)
  %908 = load ptr, ptr %9, align 8, !tbaa !5
  %909 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %894, double noundef %907, ptr noundef %908)
  store double %909, ptr %20, align 8, !tbaa !49
  br label %910

910:                                              ; preds = %893
  %911 = load i64, ptr %17, align 8, !tbaa !46
  %912 = add nsw i64 %911, 1
  store i64 %912, ptr %17, align 8, !tbaa !46
  br label %888, !llvm.loop !70

913:                                              ; preds = %888
  store double 1.000000e+00, ptr %22, align 8, !tbaa !49
  %914 = load ptr, ptr %6, align 8, !tbaa !5
  %915 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %914, i32 0, i32 29
  %916 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %915, i32 0, i32 4
  %917 = load ptr, ptr %916, align 8, !tbaa !45
  %918 = load i64, ptr %16, align 8, !tbaa !46
  %919 = getelementptr inbounds double, ptr %917, i64 %918
  %920 = load double, ptr %919, align 8, !tbaa !49
  store double %920, ptr %23, align 8, !tbaa !49
  %921 = load double, ptr %20, align 8, !tbaa !49
  %922 = load double, ptr @_ZN11alglib_implL18nlcsqp_sqpbigscaleE, align 8, !tbaa !49
  %923 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %921, double noundef %922)
  br i1 %923, label %924, label %945

924:                                              ; preds = %913
  %925 = load double, ptr %20, align 8, !tbaa !49
  store double %925, ptr %18, align 8, !tbaa !49
  %926 = load i8, ptr %55, align 1, !tbaa !9, !range !47, !noundef !48
  %927 = trunc i8 %926 to i1
  br i1 %927, label %933, label %928

928:                                              ; preds = %924
  %929 = load double, ptr %18, align 8, !tbaa !49
  %930 = load double, ptr @_ZN11alglib_implL20nlcsqp_sqpmaxrescaleE, align 8, !tbaa !49
  %931 = load ptr, ptr %9, align 8, !tbaa !5
  %932 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %929, double noundef %930, ptr noundef %931)
  store double %932, ptr %18, align 8, !tbaa !49
  br label %933

933:                                              ; preds = %928, %924
  %934 = load double, ptr %18, align 8, !tbaa !49
  %935 = fdiv double 1.000000e+00, %934
  store double %935, ptr %22, align 8, !tbaa !49
  %936 = load ptr, ptr %6, align 8, !tbaa !5
  %937 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %936, i32 0, i32 29
  %938 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %937, i32 0, i32 4
  %939 = load ptr, ptr %938, align 8, !tbaa !45
  %940 = load i64, ptr %16, align 8, !tbaa !46
  %941 = getelementptr inbounds double, ptr %939, i64 %940
  %942 = load double, ptr %941, align 8, !tbaa !49
  %943 = load double, ptr %18, align 8, !tbaa !49
  %944 = fmul double %942, %943
  store double %944, ptr %23, align 8, !tbaa !49
  br label %945

945:                                              ; preds = %933, %913
  %946 = load double, ptr %20, align 8, !tbaa !49
  %947 = load double, ptr @_ZN11alglib_implL20nlcsqp_sqpsmallscaleE, align 8, !tbaa !49
  %948 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %946, double noundef %947)
  br i1 %948, label %949, label %999

949:                                              ; preds = %945
  %950 = load ptr, ptr %6, align 8, !tbaa !5
  %951 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %950, i32 0, i32 29
  %952 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %951, i32 0, i32 4
  %953 = load ptr, ptr %952, align 8, !tbaa !45
  %954 = load i64, ptr %16, align 8, !tbaa !46
  %955 = getelementptr inbounds double, ptr %953, i64 %954
  %956 = load double, ptr %955, align 8, !tbaa !49
  %957 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %956, double noundef 1.000000e+00)
  br i1 %957, label %958, label %999

958:                                              ; preds = %949
  %959 = load double, ptr %20, align 8, !tbaa !49
  store double %959, ptr %18, align 8, !tbaa !49
  %960 = load i8, ptr %55, align 1, !tbaa !9, !range !47, !noundef !48
  %961 = trunc i8 %960 to i1
  br i1 %961, label %967, label %962

962:                                              ; preds = %958
  %963 = load double, ptr %18, align 8, !tbaa !49
  %964 = load double, ptr @_ZN11alglib_implL20nlcsqp_sqpminrescaleE, align 8, !tbaa !49
  %965 = load ptr, ptr %9, align 8, !tbaa !5
  %966 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %963, double noundef %964, ptr noundef %965)
  store double %966, ptr %18, align 8, !tbaa !49
  br label %967

967:                                              ; preds = %962, %958
  %968 = load ptr, ptr %6, align 8, !tbaa !5
  %969 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %968, i32 0, i32 29
  %970 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %969, i32 0, i32 4
  %971 = load ptr, ptr %970, align 8, !tbaa !45
  %972 = load i64, ptr %16, align 8, !tbaa !46
  %973 = getelementptr inbounds double, ptr %971, i64 %972
  %974 = load double, ptr %973, align 8, !tbaa !49
  %975 = load double, ptr %18, align 8, !tbaa !49
  %976 = fmul double %974, %975
  %977 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %976, double noundef 1.000000e+00)
  br i1 %977, label %978, label %990

978:                                              ; preds = %967
  %979 = load double, ptr %18, align 8, !tbaa !49
  %980 = fdiv double 1.000000e+00, %979
  store double %980, ptr %22, align 8, !tbaa !49
  %981 = load ptr, ptr %6, align 8, !tbaa !5
  %982 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %981, i32 0, i32 29
  %983 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %982, i32 0, i32 4
  %984 = load ptr, ptr %983, align 8, !tbaa !45
  %985 = load i64, ptr %16, align 8, !tbaa !46
  %986 = getelementptr inbounds double, ptr %984, i64 %985
  %987 = load double, ptr %986, align 8, !tbaa !49
  %988 = load double, ptr %18, align 8, !tbaa !49
  %989 = fmul double %987, %988
  store double %989, ptr %23, align 8, !tbaa !49
  br label %998

990:                                              ; preds = %967
  %991 = load ptr, ptr %6, align 8, !tbaa !5
  %992 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %991, i32 0, i32 29
  %993 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %992, i32 0, i32 4
  %994 = load ptr, ptr %993, align 8, !tbaa !45
  %995 = load i64, ptr %16, align 8, !tbaa !46
  %996 = getelementptr inbounds double, ptr %994, i64 %995
  %997 = load double, ptr %996, align 8, !tbaa !49
  store double %997, ptr %22, align 8, !tbaa !49
  store double 1.000000e+00, ptr %23, align 8, !tbaa !49
  br label %998

998:                                              ; preds = %990, %978
  br label %999

999:                                              ; preds = %998, %949, %945
  %1000 = load double, ptr %22, align 8, !tbaa !49
  %1001 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1000, double noundef 1.000000e+00)
  br i1 %1001, label %1002, label %1079

1002:                                             ; preds = %999
  %1003 = load ptr, ptr %6, align 8, !tbaa !5
  %1004 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1003, i32 0, i32 26
  %1005 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1004, i32 0, i32 4
  %1006 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1005, i32 0, i32 4
  %1007 = load ptr, ptr %1006, align 8, !tbaa !45
  %1008 = load i64, ptr %16, align 8, !tbaa !46
  %1009 = getelementptr inbounds double, ptr %1007, i64 %1008
  %1010 = load double, ptr %1009, align 8, !tbaa !49
  %1011 = load double, ptr %22, align 8, !tbaa !49
  %1012 = fmul double %1010, %1011
  %1013 = load ptr, ptr %6, align 8, !tbaa !5
  %1014 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1013, i32 0, i32 26
  %1015 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1014, i32 0, i32 4
  %1016 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1015, i32 0, i32 4
  %1017 = load ptr, ptr %1016, align 8, !tbaa !45
  %1018 = load i64, ptr %16, align 8, !tbaa !46
  %1019 = getelementptr inbounds double, ptr %1017, i64 %1018
  store double %1012, ptr %1019, align 8, !tbaa !49
  store i64 0, ptr %17, align 8, !tbaa !46
  br label %1020

1020:                                             ; preds = %1049, %1002
  %1021 = load i64, ptr %17, align 8, !tbaa !46
  %1022 = load i64, ptr %10, align 8, !tbaa !46
  %1023 = sub nsw i64 %1022, 1
  %1024 = icmp sle i64 %1021, %1023
  br i1 %1024, label %1025, label %1052

1025:                                             ; preds = %1020
  %1026 = load ptr, ptr %6, align 8, !tbaa !5
  %1027 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1026, i32 0, i32 26
  %1028 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1027, i32 0, i32 5
  %1029 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1028, i32 0, i32 6
  %1030 = load ptr, ptr %1029, align 8, !tbaa !45
  %1031 = load i64, ptr %16, align 8, !tbaa !46
  %1032 = getelementptr inbounds ptr, ptr %1030, i64 %1031
  %1033 = load ptr, ptr %1032, align 8, !tbaa !5
  %1034 = load i64, ptr %17, align 8, !tbaa !46
  %1035 = getelementptr inbounds double, ptr %1033, i64 %1034
  %1036 = load double, ptr %1035, align 8, !tbaa !49
  %1037 = load double, ptr %22, align 8, !tbaa !49
  %1038 = fmul double %1036, %1037
  %1039 = load ptr, ptr %6, align 8, !tbaa !5
  %1040 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1039, i32 0, i32 26
  %1041 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1040, i32 0, i32 5
  %1042 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1041, i32 0, i32 6
  %1043 = load ptr, ptr %1042, align 8, !tbaa !45
  %1044 = load i64, ptr %16, align 8, !tbaa !46
  %1045 = getelementptr inbounds ptr, ptr %1043, i64 %1044
  %1046 = load ptr, ptr %1045, align 8, !tbaa !5
  %1047 = load i64, ptr %17, align 8, !tbaa !46
  %1048 = getelementptr inbounds double, ptr %1046, i64 %1047
  store double %1038, ptr %1048, align 8, !tbaa !49
  br label %1049

1049:                                             ; preds = %1025
  %1050 = load i64, ptr %17, align 8, !tbaa !46
  %1051 = add nsw i64 %1050, 1
  store i64 %1051, ptr %17, align 8, !tbaa !46
  br label %1020, !llvm.loop !71

1052:                                             ; preds = %1020
  %1053 = load double, ptr %23, align 8, !tbaa !49
  %1054 = load ptr, ptr %6, align 8, !tbaa !5
  %1055 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1054, i32 0, i32 29
  %1056 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1055, i32 0, i32 4
  %1057 = load ptr, ptr %1056, align 8, !tbaa !45
  %1058 = load i64, ptr %16, align 8, !tbaa !46
  %1059 = getelementptr inbounds double, ptr %1057, i64 %1058
  store double %1053, ptr %1059, align 8, !tbaa !49
  %1060 = load ptr, ptr %6, align 8, !tbaa !5
  %1061 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1060, i32 0, i32 30
  %1062 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1061, i32 0, i32 4
  %1063 = load ptr, ptr %1062, align 8, !tbaa !45
  %1064 = load i64, ptr %16, align 8, !tbaa !46
  %1065 = getelementptr inbounds double, ptr %1063, i64 %1064
  %1066 = load double, ptr %1065, align 8, !tbaa !49
  %1067 = load double, ptr %22, align 8, !tbaa !49
  %1068 = fmul double %1066, %1067
  %1069 = load ptr, ptr %6, align 8, !tbaa !5
  %1070 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1069, i32 0, i32 30
  %1071 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1070, i32 0, i32 4
  %1072 = load ptr, ptr %1071, align 8, !tbaa !45
  %1073 = load i64, ptr %16, align 8, !tbaa !46
  %1074 = getelementptr inbounds double, ptr %1072, i64 %1073
  store double %1068, ptr %1074, align 8, !tbaa !49
  %1075 = load ptr, ptr %6, align 8, !tbaa !5
  %1076 = load i64, ptr %16, align 8, !tbaa !46
  %1077 = load double, ptr %22, align 8, !tbaa !49
  %1078 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL29nlcsqp_nonmonotonicmultiplybyEPNS_11minsqpstateEldPNS_8ae_stateE(ptr noundef %1075, i64 noundef %1076, double noundef %1077, ptr noundef %1078)
  br label %1079

1079:                                             ; preds = %1052, %999
  br label %1080

1080:                                             ; preds = %1079
  %1081 = load i64, ptr %16, align 8, !tbaa !46
  %1082 = add nsw i64 %1081, 1
  store i64 %1082, ptr %16, align 8, !tbaa !46
  br label %881, !llvm.loop !72

1083:                                             ; preds = %881
  store i8 0, ptr %55, align 1, !tbaa !9
  %1084 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1085 = trunc i8 %1084 to i1
  br i1 %1085, label %1086, label %1246

1086:                                             ; preds = %1083
  %1087 = load ptr, ptr %6, align 8, !tbaa !5
  %1088 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1087, i32 0, i32 55
  %1089 = load i64, ptr %1088, align 8, !tbaa !69
  %1090 = trunc i64 %1089 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1128, i32 noundef %1090)
  %1091 = load i8, ptr %31, align 1, !tbaa !9, !range !47, !noundef !48
  %1092 = trunc i8 %1091 to i1
  br i1 %1092, label %1093, label %1139

1093:                                             ; preds = %1086
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1129)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1130)
  %1094 = load ptr, ptr %6, align 8, !tbaa !5
  %1095 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1094, i32 0, i32 26
  %1096 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1095, i32 0, i32 3
  %1097 = load i64, ptr %10, align 8, !tbaa !46
  %1098 = load ptr, ptr %6, align 8, !tbaa !5
  %1099 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1098, i32 0, i32 6
  %1100 = load ptr, ptr %6, align 8, !tbaa !5
  %1101 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1100, i32 0, i32 6
  %1102 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef %1096, i64 noundef %1097, ptr noundef %1099, i1 noundef zeroext true, ptr noundef %1101, i1 noundef zeroext false, ptr noundef %1102)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1131)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.733)
  %1103 = load ptr, ptr %6, align 8, !tbaa !5
  %1104 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1103, i32 0, i32 26
  %1105 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1104, i32 0, i32 3
  %1106 = load i64, ptr %10, align 8, !tbaa !46
  %1107 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1105, i64 noundef 0, i64 noundef %1106, ptr noundef %1107)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1132)
  %1108 = load ptr, ptr %6, align 8, !tbaa !5
  %1109 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1108, i32 0, i32 29
  %1110 = load i64, ptr %14, align 8, !tbaa !46
  %1111 = add nsw i64 1, %1110
  %1112 = load i64, ptr %15, align 8, !tbaa !46
  %1113 = add nsw i64 %1111, %1112
  %1114 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1109, i64 noundef 0, i64 noundef %1113, ptr noundef %1114)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1253)
  %1115 = load ptr, ptr %6, align 8, !tbaa !5
  %1116 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1115, i32 0, i32 30
  %1117 = load i64, ptr %14, align 8, !tbaa !46
  %1118 = add nsw i64 1, %1117
  %1119 = load i64, ptr %15, align 8, !tbaa !46
  %1120 = add nsw i64 %1118, %1119
  %1121 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1116, i64 noundef 0, i64 noundef %1120, ptr noundef %1121)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1133)
  %1122 = load ptr, ptr %6, align 8, !tbaa !5
  %1123 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1122, i32 0, i32 26
  %1124 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1123, i32 0, i32 4
  %1125 = load i64, ptr %14, align 8, !tbaa !46
  %1126 = add nsw i64 1, %1125
  %1127 = load i64, ptr %15, align 8, !tbaa !46
  %1128 = add nsw i64 %1126, %1127
  %1129 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1124, i64 noundef 0, i64 noundef %1128, ptr noundef %1129)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1379)
  %1130 = load ptr, ptr %6, align 8, !tbaa !5
  %1131 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1130, i32 0, i32 26
  %1132 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1131, i32 0, i32 5
  %1133 = load i64, ptr %14, align 8, !tbaa !46
  %1134 = add nsw i64 1, %1133
  %1135 = load i64, ptr %15, align 8, !tbaa !46
  %1136 = add nsw i64 %1134, %1135
  %1137 = load i64, ptr %10, align 8, !tbaa !46
  %1138 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl20tracerownrm1autoprecEPKNS_9ae_matrixEllllPNS_8ae_stateE(ptr noundef %1132, i64 noundef 0, i64 noundef %1136, i64 noundef 0, i64 noundef %1137, ptr noundef %1138)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1139

1139:                                             ; preds = %1093, %1086
  store double 0.000000e+00, ptr %20, align 8, !tbaa !49
  store i64 1, ptr %16, align 8, !tbaa !46
  br label %1140

1140:                                             ; preds = %1158, %1139
  %1141 = load i64, ptr %16, align 8, !tbaa !46
  %1142 = load i64, ptr %14, align 8, !tbaa !46
  %1143 = icmp sle i64 %1141, %1142
  br i1 %1143, label %1144, label %1161

1144:                                             ; preds = %1140
  %1145 = load double, ptr %20, align 8, !tbaa !49
  %1146 = load ptr, ptr %6, align 8, !tbaa !5
  %1147 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1146, i32 0, i32 26
  %1148 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1147, i32 0, i32 4
  %1149 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1148, i32 0, i32 4
  %1150 = load ptr, ptr %1149, align 8, !tbaa !45
  %1151 = load i64, ptr %16, align 8, !tbaa !46
  %1152 = getelementptr inbounds double, ptr %1150, i64 %1151
  %1153 = load double, ptr %1152, align 8, !tbaa !49
  %1154 = load ptr, ptr %9, align 8, !tbaa !5
  %1155 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1153, ptr noundef %1154)
  %1156 = load ptr, ptr %9, align 8, !tbaa !5
  %1157 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1145, double noundef %1155, ptr noundef %1156)
  store double %1157, ptr %20, align 8, !tbaa !49
  br label %1158

1158:                                             ; preds = %1144
  %1159 = load i64, ptr %16, align 8, !tbaa !46
  %1160 = add nsw i64 %1159, 1
  store i64 %1160, ptr %16, align 8, !tbaa !46
  br label %1140, !llvm.loop !73

1161:                                             ; preds = %1140
  %1162 = load i64, ptr %14, align 8, !tbaa !46
  %1163 = add nsw i64 %1162, 1
  store i64 %1163, ptr %16, align 8, !tbaa !46
  br label %1164

1164:                                             ; preds = %1182, %1161
  %1165 = load i64, ptr %16, align 8, !tbaa !46
  %1166 = load i64, ptr %14, align 8, !tbaa !46
  %1167 = load i64, ptr %15, align 8, !tbaa !46
  %1168 = add nsw i64 %1166, %1167
  %1169 = icmp sle i64 %1165, %1168
  br i1 %1169, label %1170, label %1185

1170:                                             ; preds = %1164
  %1171 = load double, ptr %20, align 8, !tbaa !49
  %1172 = load ptr, ptr %6, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1172, i32 0, i32 26
  %1174 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1173, i32 0, i32 4
  %1175 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1174, i32 0, i32 4
  %1176 = load ptr, ptr %1175, align 8, !tbaa !45
  %1177 = load i64, ptr %16, align 8, !tbaa !46
  %1178 = getelementptr inbounds double, ptr %1176, i64 %1177
  %1179 = load double, ptr %1178, align 8, !tbaa !49
  %1180 = load ptr, ptr %9, align 8, !tbaa !5
  %1181 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1171, double noundef %1179, ptr noundef %1180)
  store double %1181, ptr %20, align 8, !tbaa !49
  br label %1182

1182:                                             ; preds = %1170
  %1183 = load i64, ptr %16, align 8, !tbaa !46
  %1184 = add nsw i64 %1183, 1
  store i64 %1184, ptr %16, align 8, !tbaa !46
  br label %1164, !llvm.loop !74

1185:                                             ; preds = %1164
  %1186 = load ptr, ptr %6, align 8, !tbaa !5
  %1187 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1186, i32 0, i32 22
  %1188 = load double, ptr %1187, align 8, !tbaa !59
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1134, double noundef %1188)
  %1189 = load ptr, ptr %6, align 8, !tbaa !5
  %1190 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1189, i32 0, i32 21
  %1191 = load double, ptr %1190, align 8, !tbaa !66
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1380, double noundef %1191)
  %1192 = load ptr, ptr %6, align 8, !tbaa !5
  %1193 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1192, i32 0, i32 59
  %1194 = load double, ptr %1193, align 8, !tbaa !75
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1135, double noundef %1194)
  %1195 = load double, ptr %20, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1136, double noundef %1195)
  %1196 = load ptr, ptr %6, align 8, !tbaa !5
  %1197 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1196, i32 0, i32 30
  %1198 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1197, i32 0, i32 4
  %1199 = load ptr, ptr %1198, align 8, !tbaa !45
  %1200 = getelementptr inbounds double, ptr %1199, i64 0
  %1201 = load double, ptr %1200, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1258, double noundef %1201)
  store i64 0, ptr %17, align 8, !tbaa !46
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %1202

1202:                                             ; preds = %1227, %1185
  %1203 = load i64, ptr %16, align 8, !tbaa !46
  %1204 = load i64, ptr %14, align 8, !tbaa !46
  %1205 = load i64, ptr %15, align 8, !tbaa !46
  %1206 = add nsw i64 %1204, %1205
  %1207 = icmp sle i64 %1203, %1206
  br i1 %1207, label %1208, label %1230

1208:                                             ; preds = %1202
  %1209 = load ptr, ptr %6, align 8, !tbaa !5
  %1210 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1209, i32 0, i32 30
  %1211 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1210, i32 0, i32 4
  %1212 = load ptr, ptr %1211, align 8, !tbaa !45
  %1213 = load i64, ptr %16, align 8, !tbaa !46
  %1214 = getelementptr inbounds double, ptr %1212, i64 %1213
  %1215 = load double, ptr %1214, align 8, !tbaa !49
  %1216 = load ptr, ptr %6, align 8, !tbaa !5
  %1217 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1216, i32 0, i32 30
  %1218 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1217, i32 0, i32 4
  %1219 = load ptr, ptr %1218, align 8, !tbaa !45
  %1220 = load i64, ptr %17, align 8, !tbaa !46
  %1221 = getelementptr inbounds double, ptr %1219, i64 %1220
  %1222 = load double, ptr %1221, align 8, !tbaa !49
  %1223 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1215, double noundef %1222)
  br i1 %1223, label %1224, label %1226

1224:                                             ; preds = %1208
  %1225 = load i64, ptr %16, align 8, !tbaa !46
  store i64 %1225, ptr %17, align 8, !tbaa !46
  br label %1226

1226:                                             ; preds = %1224, %1208
  br label %1227

1227:                                             ; preds = %1226
  %1228 = load i64, ptr %16, align 8, !tbaa !46
  %1229 = add nsw i64 %1228, 1
  store i64 %1229, ptr %16, align 8, !tbaa !46
  br label %1202, !llvm.loop !76

1230:                                             ; preds = %1202
  %1231 = load ptr, ptr %6, align 8, !tbaa !5
  %1232 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1231, i32 0, i32 30
  %1233 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1232, i32 0, i32 4
  %1234 = load ptr, ptr %1233, align 8, !tbaa !45
  %1235 = load i64, ptr %17, align 8, !tbaa !46
  %1236 = getelementptr inbounds double, ptr %1234, i64 %1235
  %1237 = load double, ptr %1236, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1259, double noundef %1237)
  %1238 = load i64, ptr %17, align 8, !tbaa !46
  %1239 = trunc i64 %1238 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1260, i32 noundef %1239)
  %1240 = load i64, ptr %10, align 8, !tbaa !46
  %1241 = load ptr, ptr %6, align 8, !tbaa !5
  %1242 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1241, i32 0, i32 26
  %1243 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1242, i32 0, i32 3
  %1244 = load ptr, ptr %9, align 8, !tbaa !5
  %1245 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1240, ptr noundef %1243, ptr noundef %1244)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1137, double noundef %1245)
  br label %1246

1246:                                             ; preds = %1230, %1083
  %1247 = load i64, ptr %10, align 8, !tbaa !46
  %1248 = load ptr, ptr %6, align 8, !tbaa !5
  %1249 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1248, i32 0, i32 26
  %1250 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1249, i32 0, i32 3
  %1251 = load ptr, ptr %6, align 8, !tbaa !5
  %1252 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1251, i32 0, i32 28
  %1253 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1247, ptr noundef %1250, ptr noundef %1252, ptr noundef %1253)
  %1254 = load i64, ptr %11, align 8, !tbaa !46
  %1255 = load ptr, ptr %6, align 8, !tbaa !5
  %1256 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1255, i32 0, i32 42
  %1257 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1254, double noundef 0.000000e+00, ptr noundef %1256, ptr noundef %1257)
  %1258 = load i64, ptr %11, align 8, !tbaa !46
  %1259 = load ptr, ptr %6, align 8, !tbaa !5
  %1260 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1259, i32 0, i32 43
  %1261 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1258, double noundef 0.000000e+00, ptr noundef %1260, ptr noundef %1261)
  %1262 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1263 = trunc i8 %1262 to i1
  br i1 %1263, label %1264, label %1265

1264:                                             ; preds = %1246
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1381)
  br label %1265

1265:                                             ; preds = %1264, %1246
  store i8 0, ptr %32, align 1, !tbaa !9
  store i8 0, ptr %33, align 1, !tbaa !9
  store i8 0, ptr %52, align 1, !tbaa !9
  store i8 1, ptr %53, align 1, !tbaa !9
  store i8 1, ptr %54, align 1, !tbaa !9
  store double 1.000000e+50, ptr %27, align 8, !tbaa !49
  store i8 0, ptr %41, align 1, !tbaa !9
  %1266 = load ptr, ptr %6, align 8, !tbaa !5
  %1267 = load ptr, ptr %6, align 8, !tbaa !5
  %1268 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1267, i32 0, i32 31
  %1269 = load ptr, ptr %6, align 8, !tbaa !5
  %1270 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1269, i32 0, i32 26
  %1271 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1270, i32 0, i32 3
  %1272 = load ptr, ptr %6, align 8, !tbaa !5
  %1273 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1272, i32 0, i32 26
  %1274 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1273, i32 0, i32 4
  %1275 = load ptr, ptr %6, align 8, !tbaa !5
  %1276 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1275, i32 0, i32 26
  %1277 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1276, i32 0, i32 5
  %1278 = load ptr, ptr %6, align 8, !tbaa !5
  %1279 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1278, i32 0, i32 32
  %1280 = load ptr, ptr %6, align 8, !tbaa !5
  %1281 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1280, i32 0, i32 42
  %1282 = load ptr, ptr %6, align 8, !tbaa !5
  %1283 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1282, i32 0, i32 35
  %1284 = load ptr, ptr %6, align 8, !tbaa !5
  %1285 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1284, i32 0, i32 36
  %1286 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1287 = trunc i8 %1286 to i1
  %1288 = load ptr, ptr %9, align 8, !tbaa !5
  %1289 = call noundef zeroext i1 @_ZN11alglib_implL24nlcsqp_qpsubproblemsolveEPNS_11minsqpstateEPNS_15minsqpsubsolverEPKNS_9ae_vectorES6_PKNS_9ae_matrixEPNS_12xbfgshessianEddPS4_SC_SC_bPlPdSE_SE_SE_PNS_8ae_stateE(ptr noundef %1266, ptr noundef %1268, ptr noundef %1271, ptr noundef %1274, ptr noundef %1277, ptr noundef %1279, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef %1281, ptr noundef %1283, ptr noundef %1285, i1 noundef zeroext %1287, ptr noundef %17, ptr noundef %50, ptr noundef %51, ptr noundef %47, ptr noundef %42, ptr noundef %1288)
  br i1 %1289, label %1306, label %1290

1290:                                             ; preds = %1265
  %1291 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1292 = trunc i8 %1291 to i1
  br i1 %1292, label %1293, label %1296

1293:                                             ; preds = %1290
  %1294 = load i64, ptr %17, align 8, !tbaa !46
  %1295 = trunc i64 %1294 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1141, i32 noundef %1295)
  br label %1296

1296:                                             ; preds = %1293, %1290
  %1297 = load ptr, ptr %6, align 8, !tbaa !5
  %1298 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1297, i32 0, i32 22
  %1299 = load double, ptr %1298, align 8, !tbaa !59
  %1300 = fmul double 1.000000e-01, %1299
  %1301 = load ptr, ptr %6, align 8, !tbaa !5
  %1302 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1301, i32 0, i32 22
  store double %1300, ptr %1302, align 8, !tbaa !59
  %1303 = load ptr, ptr %6, align 8, !tbaa !5
  %1304 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1303, i32 0, i32 55
  %1305 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1304, ptr noundef %1305)
  br label %783

1306:                                             ; preds = %1265
  %1307 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1308 = trunc i8 %1307 to i1
  br i1 %1308, label %1309, label %1328

1309:                                             ; preds = %1306
  %1310 = load i64, ptr %17, align 8, !tbaa !46
  %1311 = trunc i64 %1310 to i32
  %1312 = load i64, ptr %10, align 8, !tbaa !46
  %1313 = load ptr, ptr %6, align 8, !tbaa !5
  %1314 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1313, i32 0, i32 35
  %1315 = load ptr, ptr %9, align 8, !tbaa !5
  %1316 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1312, ptr noundef %1314, ptr noundef %1315)
  %1317 = load i64, ptr %12, align 8, !tbaa !46
  %1318 = load i64, ptr %13, align 8, !tbaa !46
  %1319 = add nsw i64 %1317, %1318
  %1320 = load i64, ptr %14, align 8, !tbaa !46
  %1321 = add nsw i64 %1319, %1320
  %1322 = load i64, ptr %15, align 8, !tbaa !46
  %1323 = add nsw i64 %1321, %1322
  %1324 = load ptr, ptr %6, align 8, !tbaa !5
  %1325 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1324, i32 0, i32 36
  %1326 = load ptr, ptr %9, align 8, !tbaa !5
  %1327 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1323, ptr noundef %1325, ptr noundef %1326)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1382, i32 noundef %1311, double noundef %1316, double noundef %1327)
  br label %1328

1328:                                             ; preds = %1309, %1306
  %1329 = load i64, ptr %11, align 8, !tbaa !46
  %1330 = load ptr, ptr %6, align 8, !tbaa !5
  %1331 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1330, i32 0, i32 42
  %1332 = load ptr, ptr %6, align 8, !tbaa !5
  %1333 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1332, i32 0, i32 41
  %1334 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1329, ptr noundef %1331, ptr noundef %1333, ptr noundef %1334)
  %1335 = load ptr, ptr %6, align 8, !tbaa !5
  %1336 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1335, i32 0, i32 26
  %1337 = load ptr, ptr %6, align 8, !tbaa !5
  %1338 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1337, i32 0, i32 40
  %1339 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %1336, ptr noundef %1338, ptr noundef %1339)
  %1340 = load i64, ptr %10, align 8, !tbaa !46
  %1341 = load ptr, ptr %6, align 8, !tbaa !5
  %1342 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1341, i32 0, i32 49
  %1343 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1340, ptr noundef %1342, ptr noundef %1343)
  %1344 = load ptr, ptr %6, align 8, !tbaa !5
  %1345 = load ptr, ptr %6, align 8, !tbaa !5
  %1346 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1345, i32 0, i32 26
  %1347 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1346, i32 0, i32 3
  %1348 = load ptr, ptr %6, align 8, !tbaa !5
  %1349 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1348, i32 0, i32 22
  %1350 = load double, ptr %1349, align 8, !tbaa !59
  %1351 = load ptr, ptr %6, align 8, !tbaa !5
  %1352 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1351, i32 0, i32 26
  %1353 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1352, i32 0, i32 4
  %1354 = load ptr, ptr %6, align 8, !tbaa !5
  %1355 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1354, i32 0, i32 26
  %1356 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1355, i32 0, i32 5
  %1357 = load ptr, ptr %6, align 8, !tbaa !5
  %1358 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1357, i32 0, i32 35
  %1359 = load ptr, ptr %6, align 8, !tbaa !5
  %1360 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1359, i32 0, i32 36
  %1361 = load ptr, ptr %6, align 8, !tbaa !5
  %1362 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1361, i32 0, i32 49
  %1363 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %1344, ptr noundef %1347, double noundef %1350, ptr noundef %1353, ptr noundef %1356, ptr noundef %1358, ptr noundef %1360, i1 noundef zeroext true, ptr noundef %38, ptr noundef %1362, ptr noundef %1363)
  %1364 = load ptr, ptr %6, align 8, !tbaa !5
  %1365 = load ptr, ptr %6, align 8, !tbaa !5
  %1366 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1365, i32 0, i32 26
  %1367 = load ptr, ptr %6, align 8, !tbaa !5
  %1368 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1367, i32 0, i32 21
  %1369 = load double, ptr %1368, align 8, !tbaa !66
  %1370 = load ptr, ptr %9, align 8, !tbaa !5
  %1371 = call noundef double @_ZN11alglib_implL20nlcsqp_meritfunctionEPNS_11minsqpstateEPKNS_11varsfuncjacEdPNS_8ae_stateE(ptr noundef %1364, ptr noundef %1366, double noundef %1369, ptr noundef %1370)
  store double %1371, ptr %35, align 8, !tbaa !49
  %1372 = load ptr, ptr %6, align 8, !tbaa !5
  %1373 = load double, ptr %35, align 8, !tbaa !49
  %1374 = load ptr, ptr %9, align 8, !tbaa !5
  %1375 = call noundef double @_ZN11alglib_implL29nlcsqp_nonmonotonicadjustmentEPNS_11minsqpstateEdPNS_8ae_stateE(ptr noundef %1372, double noundef %1373, ptr noundef %1374)
  store double %1375, ptr %34, align 8, !tbaa !49
  %1376 = load i64, ptr %10, align 8, !tbaa !46
  %1377 = load ptr, ptr %6, align 8, !tbaa !5
  %1378 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1377, i32 0, i32 26
  %1379 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1378, i32 0, i32 3
  %1380 = load ptr, ptr %6, align 8, !tbaa !5
  %1381 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1380, i32 0, i32 37
  %1382 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1381, i32 0, i32 3
  %1383 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1376, ptr noundef %1379, ptr noundef %1382, ptr noundef %1383)
  %1384 = load i64, ptr %10, align 8, !tbaa !46
  %1385 = load ptr, ptr %6, align 8, !tbaa !5
  %1386 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1385, i32 0, i32 41
  %1387 = load ptr, ptr %6, align 8, !tbaa !5
  %1388 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1387, i32 0, i32 37
  %1389 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1388, i32 0, i32 3
  %1390 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1384, double noundef 1.000000e+00, ptr noundef %1386, ptr noundef %1389, ptr noundef %1390)
  %1391 = load ptr, ptr %6, align 8, !tbaa !5
  %1392 = load ptr, ptr %6, align 8, !tbaa !5
  %1393 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1392, i32 0, i32 37
  %1394 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1393, i32 0, i32 3
  %1395 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1391, ptr noundef %1394, ptr noundef %1395)
  %1396 = load ptr, ptr %6, align 8, !tbaa !5
  %1397 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1396, i32 0, i32 19
  store i8 1, ptr %1397, align 8, !tbaa !55
  %1398 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1399 = trunc i8 %1398 to i1
  br i1 %1399, label %1400, label %1404

1400:                                             ; preds = %1328
  %1401 = load ptr, ptr %6, align 8, !tbaa !5
  %1402 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1401, i32 0, i32 65
  %1403 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1402, ptr noundef %1403)
  br label %1404

1404:                                             ; preds = %1400, %1328
  %1405 = load ptr, ptr %6, align 8, !tbaa !5
  %1406 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1405, i32 0, i32 66
  %1407 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1406, i32 0, i32 0
  store i32 2, ptr %1407, align 8, !tbaa !11
  br label %3072

1408:                                             ; preds = %462
  %1409 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1410 = trunc i8 %1409 to i1
  br i1 %1410, label %1411, label %1415

1411:                                             ; preds = %1408
  %1412 = load ptr, ptr %6, align 8, !tbaa !5
  %1413 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1412, i32 0, i32 65
  %1414 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1413, ptr noundef %1414)
  br label %1415

1415:                                             ; preds = %1411, %1408
  %1416 = load ptr, ptr %6, align 8, !tbaa !5
  %1417 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1416, i32 0, i32 19
  store i8 0, ptr %1417, align 8, !tbaa !55
  %1418 = load ptr, ptr %6, align 8, !tbaa !5
  %1419 = load ptr, ptr %6, align 8, !tbaa !5
  %1420 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1419, i32 0, i32 37
  %1421 = load ptr, ptr %9, align 8, !tbaa !5
  %1422 = call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %1418, ptr noundef %1420, ptr noundef %1421)
  br i1 %1422, label %1442, label %1423

1423:                                             ; preds = %1415
  %1424 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1425 = trunc i8 %1424 to i1
  br i1 %1425, label %1426, label %1427

1426:                                             ; preds = %1423
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1145)
  br label %1427

1427:                                             ; preds = %1426, %1423
  %1428 = load ptr, ptr %6, align 8, !tbaa !5
  %1429 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1428, i32 0, i32 22
  %1430 = load double, ptr %1429, align 8, !tbaa !59
  %1431 = load double, ptr @_ZN11alglib_implL23nlcsqp_maxtrustraddecayE, align 8, !tbaa !49
  %1432 = fmul double %1430, %1431
  %1433 = load ptr, ptr %6, align 8, !tbaa !5
  %1434 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1433, i32 0, i32 22
  store double %1432, ptr %1434, align 8, !tbaa !59
  %1435 = load ptr, ptr %6, align 8, !tbaa !5
  %1436 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1435, i32 0, i32 23
  %1437 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !49
  %1438 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef %1436, double noundef %1437, ptr noundef %1438)
  store i8 1, ptr %56, align 1, !tbaa !9
  store i8 1, ptr %57, align 1, !tbaa !9
  %1439 = load ptr, ptr %6, align 8, !tbaa !5
  %1440 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1439, i32 0, i32 55
  %1441 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1440, ptr noundef %1441)
  br label %783

1442:                                             ; preds = %1415
  %1443 = load ptr, ptr %6, align 8, !tbaa !5
  %1444 = load ptr, ptr %6, align 8, !tbaa !5
  %1445 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1444, i32 0, i32 37
  %1446 = load ptr, ptr %6, align 8, !tbaa !5
  %1447 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1446, i32 0, i32 21
  %1448 = load double, ptr %1447, align 8, !tbaa !66
  %1449 = load ptr, ptr %9, align 8, !tbaa !5
  %1450 = call noundef double @_ZN11alglib_implL20nlcsqp_meritfunctionEPNS_11minsqpstateEPKNS_11varsfuncjacEdPNS_8ae_stateE(ptr noundef %1443, ptr noundef %1445, double noundef %1448, ptr noundef %1449)
  store double %1450, ptr %36, align 8, !tbaa !49
  %1451 = load double, ptr %50, align 8, !tbaa !49
  %1452 = load ptr, ptr %6, align 8, !tbaa !5
  %1453 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1452, i32 0, i32 21
  %1454 = load double, ptr %1453, align 8, !tbaa !66
  %1455 = load double, ptr %51, align 8, !tbaa !49
  %1456 = call double @llvm.fmuladd.f64(double %1454, double %1455, double %1451)
  store double %1456, ptr %49, align 8, !tbaa !49
  %1457 = load double, ptr %36, align 8, !tbaa !49
  %1458 = load double, ptr %35, align 8, !tbaa !49
  %1459 = fsub double %1457, %1458
  %1460 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !49
  %1461 = load double, ptr %49, align 8, !tbaa !49
  %1462 = fmul double %1460, %1461
  %1463 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1459, double noundef %1462)
  %1464 = zext i1 %1463 to i8
  store i8 %1464, ptr %54, align 1, !tbaa !9
  %1465 = load i64, ptr %10, align 8, !tbaa !46
  %1466 = load ptr, ptr %6, align 8, !tbaa !5
  %1467 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1466, i32 0, i32 50
  %1468 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1465, ptr noundef %1467, ptr noundef %1468)
  %1469 = load ptr, ptr %6, align 8, !tbaa !5
  %1470 = load ptr, ptr %6, align 8, !tbaa !5
  %1471 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1470, i32 0, i32 37
  %1472 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1471, i32 0, i32 3
  %1473 = load ptr, ptr %6, align 8, !tbaa !5
  %1474 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1473, i32 0, i32 22
  %1475 = load double, ptr %1474, align 8, !tbaa !59
  %1476 = load ptr, ptr %6, align 8, !tbaa !5
  %1477 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1476, i32 0, i32 37
  %1478 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1477, i32 0, i32 4
  %1479 = load ptr, ptr %6, align 8, !tbaa !5
  %1480 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1479, i32 0, i32 37
  %1481 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1480, i32 0, i32 5
  %1482 = load ptr, ptr %6, align 8, !tbaa !5
  %1483 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1482, i32 0, i32 35
  %1484 = load ptr, ptr %6, align 8, !tbaa !5
  %1485 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1484, i32 0, i32 36
  %1486 = load ptr, ptr %6, align 8, !tbaa !5
  %1487 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1486, i32 0, i32 50
  %1488 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %1469, ptr noundef %1472, double noundef %1475, ptr noundef %1478, ptr noundef %1481, ptr noundef %1483, ptr noundef %1485, i1 noundef zeroext true, ptr noundef %39, ptr noundef %1487, ptr noundef %1488)
  %1489 = load ptr, ptr %6, align 8, !tbaa !5
  %1490 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1489, i32 0, i32 32
  %1491 = load ptr, ptr %6, align 8, !tbaa !5
  %1492 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1491, i32 0, i32 26
  %1493 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1492, i32 0, i32 3
  %1494 = load ptr, ptr %6, align 8, !tbaa !5
  %1495 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1494, i32 0, i32 49
  %1496 = load ptr, ptr %6, align 8, !tbaa !5
  %1497 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1496, i32 0, i32 37
  %1498 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1497, i32 0, i32 3
  %1499 = load ptr, ptr %6, align 8, !tbaa !5
  %1500 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1499, i32 0, i32 50
  %1501 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1502 = trunc i8 %1501 to i1
  %1503 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl15hessianupdatev2EPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_lbblPNS_8ae_stateE(ptr noundef %1490, ptr noundef %1493, ptr noundef %1495, ptr noundef %1498, ptr noundef %1500, i64 noundef 2, i1 noundef zeroext false, i1 noundef zeroext %1502, i64 noundef 1, ptr noundef %1503)
  %1504 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1505 = trunc i8 %1504 to i1
  br i1 %1505, label %1506, label %1517

1506:                                             ; preds = %1442
  %1507 = load double, ptr %42, align 8, !tbaa !49
  %1508 = load double, ptr %49, align 8, !tbaa !49
  %1509 = load double, ptr %36, align 8, !tbaa !49
  %1510 = load double, ptr %35, align 8, !tbaa !49
  %1511 = fsub double %1509, %1510
  %1512 = load double, ptr %36, align 8, !tbaa !49
  %1513 = load double, ptr %35, align 8, !tbaa !49
  %1514 = fsub double %1512, %1513
  %1515 = load double, ptr %49, align 8, !tbaa !49
  %1516 = fdiv double %1514, %1515
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1383, double noundef %1507, double noundef %1508, double noundef %1511, double noundef %1516)
  br label %1517

1517:                                             ; preds = %1506, %1442
  store i8 0, ptr %58, align 1, !tbaa !9
  %1518 = load double, ptr %49, align 8, !tbaa !49
  %1519 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1518, double noundef 0.000000e+00)
  br i1 %1519, label %1528, label %1520

1520:                                             ; preds = %1517
  %1521 = load double, ptr %36, align 8, !tbaa !49
  %1522 = load double, ptr %34, align 8, !tbaa !49
  %1523 = fsub double %1521, %1522
  %1524 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !49
  %1525 = load double, ptr %49, align 8, !tbaa !49
  %1526 = fmul double %1524, %1525
  %1527 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1523, double noundef %1526)
  br i1 %1527, label %1528, label %1533

1528:                                             ; preds = %1520, %1517
  store i8 1, ptr %58, align 1, !tbaa !9
  %1529 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1530 = trunc i8 %1529 to i1
  br i1 %1530, label %1531, label %1532

1531:                                             ; preds = %1528
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1384)
  br label %1532

1532:                                             ; preds = %1531, %1528
  br label %1533

1533:                                             ; preds = %1532, %1520
  %1534 = load i8, ptr %58, align 1, !tbaa !9, !range !47, !noundef !48
  %1535 = trunc i8 %1534 to i1
  br i1 %1535, label %1537, label %1536

1536:                                             ; preds = %1533
  br label %1926

1537:                                             ; preds = %1533
  store i8 1, ptr %41, align 1, !tbaa !9
  %1538 = load i64, ptr %10, align 8, !tbaa !46
  %1539 = load ptr, ptr %6, align 8, !tbaa !5
  %1540 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1539, i32 0, i32 26
  %1541 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1540, i32 0, i32 3
  %1542 = load ptr, ptr %6, align 8, !tbaa !5
  %1543 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1542, i32 0, i32 38
  %1544 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1543, i32 0, i32 3
  %1545 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1538, ptr noundef %1541, ptr noundef %1544, ptr noundef %1545)
  %1546 = load ptr, ptr %6, align 8, !tbaa !5
  %1547 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1546, i32 0, i32 26
  %1548 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1547, i32 0, i32 4
  %1549 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1548, i32 0, i32 4
  %1550 = load ptr, ptr %1549, align 8, !tbaa !45
  %1551 = getelementptr inbounds double, ptr %1550, i64 0
  %1552 = load double, ptr %1551, align 8, !tbaa !49
  %1553 = load ptr, ptr %6, align 8, !tbaa !5
  %1554 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1553, i32 0, i32 38
  %1555 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1554, i32 0, i32 4
  %1556 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1555, i32 0, i32 4
  %1557 = load ptr, ptr %1556, align 8, !tbaa !45
  %1558 = getelementptr inbounds double, ptr %1557, i64 0
  store double %1552, ptr %1558, align 8, !tbaa !49
  store i64 0, ptr %17, align 8, !tbaa !46
  br label %1559

1559:                                             ; preds = %1584, %1537
  %1560 = load i64, ptr %17, align 8, !tbaa !46
  %1561 = load i64, ptr %10, align 8, !tbaa !46
  %1562 = sub nsw i64 %1561, 1
  %1563 = icmp sle i64 %1560, %1562
  br i1 %1563, label %1564, label %1587

1564:                                             ; preds = %1559
  %1565 = load ptr, ptr %6, align 8, !tbaa !5
  %1566 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1565, i32 0, i32 26
  %1567 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1566, i32 0, i32 5
  %1568 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1567, i32 0, i32 6
  %1569 = load ptr, ptr %1568, align 8, !tbaa !45
  %1570 = getelementptr inbounds ptr, ptr %1569, i64 0
  %1571 = load ptr, ptr %1570, align 8, !tbaa !5
  %1572 = load i64, ptr %17, align 8, !tbaa !46
  %1573 = getelementptr inbounds double, ptr %1571, i64 %1572
  %1574 = load double, ptr %1573, align 8, !tbaa !49
  %1575 = load ptr, ptr %6, align 8, !tbaa !5
  %1576 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1575, i32 0, i32 38
  %1577 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1576, i32 0, i32 5
  %1578 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1577, i32 0, i32 6
  %1579 = load ptr, ptr %1578, align 8, !tbaa !45
  %1580 = getelementptr inbounds ptr, ptr %1579, i64 0
  %1581 = load ptr, ptr %1580, align 8, !tbaa !5
  %1582 = load i64, ptr %17, align 8, !tbaa !46
  %1583 = getelementptr inbounds double, ptr %1581, i64 %1582
  store double %1574, ptr %1583, align 8, !tbaa !49
  br label %1584

1584:                                             ; preds = %1564
  %1585 = load i64, ptr %17, align 8, !tbaa !46
  %1586 = add nsw i64 %1585, 1
  store i64 %1586, ptr %17, align 8, !tbaa !46
  br label %1559, !llvm.loop !77

1587:                                             ; preds = %1559
  store i64 1, ptr %16, align 8, !tbaa !46
  br label %1588

1588:                                             ; preds = %1663, %1587
  %1589 = load i64, ptr %16, align 8, !tbaa !46
  %1590 = load i64, ptr %14, align 8, !tbaa !46
  %1591 = load i64, ptr %15, align 8, !tbaa !46
  %1592 = add nsw i64 %1590, %1591
  %1593 = icmp sle i64 %1589, %1592
  br i1 %1593, label %1594, label %1666

1594:                                             ; preds = %1588
  store double 0.000000e+00, ptr %18, align 8, !tbaa !49
  store i64 0, ptr %17, align 8, !tbaa !46
  br label %1595

1595:                                             ; preds = %1642, %1594
  %1596 = load i64, ptr %17, align 8, !tbaa !46
  %1597 = load i64, ptr %10, align 8, !tbaa !46
  %1598 = sub nsw i64 %1597, 1
  %1599 = icmp sle i64 %1596, %1598
  br i1 %1599, label %1600, label %1645

1600:                                             ; preds = %1595
  %1601 = load double, ptr %18, align 8, !tbaa !49
  %1602 = load ptr, ptr %6, align 8, !tbaa !5
  %1603 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1602, i32 0, i32 42
  %1604 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1603, i32 0, i32 4
  %1605 = load ptr, ptr %1604, align 8, !tbaa !45
  %1606 = load i64, ptr %17, align 8, !tbaa !46
  %1607 = getelementptr inbounds double, ptr %1605, i64 %1606
  %1608 = load double, ptr %1607, align 8, !tbaa !49
  %1609 = load ptr, ptr %6, align 8, !tbaa !5
  %1610 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1609, i32 0, i32 26
  %1611 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1610, i32 0, i32 5
  %1612 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1611, i32 0, i32 6
  %1613 = load ptr, ptr %1612, align 8, !tbaa !45
  %1614 = load i64, ptr %16, align 8, !tbaa !46
  %1615 = getelementptr inbounds ptr, ptr %1613, i64 %1614
  %1616 = load ptr, ptr %1615, align 8, !tbaa !5
  %1617 = load i64, ptr %17, align 8, !tbaa !46
  %1618 = getelementptr inbounds double, ptr %1616, i64 %1617
  %1619 = load double, ptr %1618, align 8, !tbaa !49
  %1620 = call double @llvm.fmuladd.f64(double %1608, double %1619, double %1601)
  store double %1620, ptr %18, align 8, !tbaa !49
  %1621 = load ptr, ptr %6, align 8, !tbaa !5
  %1622 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1621, i32 0, i32 26
  %1623 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1622, i32 0, i32 5
  %1624 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1623, i32 0, i32 6
  %1625 = load ptr, ptr %1624, align 8, !tbaa !45
  %1626 = load i64, ptr %16, align 8, !tbaa !46
  %1627 = getelementptr inbounds ptr, ptr %1625, i64 %1626
  %1628 = load ptr, ptr %1627, align 8, !tbaa !5
  %1629 = load i64, ptr %17, align 8, !tbaa !46
  %1630 = getelementptr inbounds double, ptr %1628, i64 %1629
  %1631 = load double, ptr %1630, align 8, !tbaa !49
  %1632 = load ptr, ptr %6, align 8, !tbaa !5
  %1633 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1632, i32 0, i32 38
  %1634 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1633, i32 0, i32 5
  %1635 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1634, i32 0, i32 6
  %1636 = load ptr, ptr %1635, align 8, !tbaa !45
  %1637 = load i64, ptr %16, align 8, !tbaa !46
  %1638 = getelementptr inbounds ptr, ptr %1636, i64 %1637
  %1639 = load ptr, ptr %1638, align 8, !tbaa !5
  %1640 = load i64, ptr %17, align 8, !tbaa !46
  %1641 = getelementptr inbounds double, ptr %1639, i64 %1640
  store double %1631, ptr %1641, align 8, !tbaa !49
  br label %1642

1642:                                             ; preds = %1600
  %1643 = load i64, ptr %17, align 8, !tbaa !46
  %1644 = add nsw i64 %1643, 1
  store i64 %1644, ptr %17, align 8, !tbaa !46
  br label %1595, !llvm.loop !78

1645:                                             ; preds = %1595
  %1646 = load ptr, ptr %6, align 8, !tbaa !5
  %1647 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1646, i32 0, i32 37
  %1648 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1647, i32 0, i32 4
  %1649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1648, i32 0, i32 4
  %1650 = load ptr, ptr %1649, align 8, !tbaa !45
  %1651 = load i64, ptr %16, align 8, !tbaa !46
  %1652 = getelementptr inbounds double, ptr %1650, i64 %1651
  %1653 = load double, ptr %1652, align 8, !tbaa !49
  %1654 = load double, ptr %18, align 8, !tbaa !49
  %1655 = fsub double %1653, %1654
  %1656 = load ptr, ptr %6, align 8, !tbaa !5
  %1657 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1656, i32 0, i32 38
  %1658 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1657, i32 0, i32 4
  %1659 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1658, i32 0, i32 4
  %1660 = load ptr, ptr %1659, align 8, !tbaa !45
  %1661 = load i64, ptr %16, align 8, !tbaa !46
  %1662 = getelementptr inbounds double, ptr %1660, i64 %1661
  store double %1655, ptr %1662, align 8, !tbaa !49
  br label %1663

1663:                                             ; preds = %1645
  %1664 = load i64, ptr %16, align 8, !tbaa !46
  %1665 = add nsw i64 %1664, 1
  store i64 %1665, ptr %16, align 8, !tbaa !46
  br label %1588, !llvm.loop !79

1666:                                             ; preds = %1588
  %1667 = load ptr, ptr %6, align 8, !tbaa !5
  %1668 = load ptr, ptr %6, align 8, !tbaa !5
  %1669 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1668, i32 0, i32 31
  %1670 = load ptr, ptr %6, align 8, !tbaa !5
  %1671 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1670, i32 0, i32 38
  %1672 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1671, i32 0, i32 3
  %1673 = load ptr, ptr %6, align 8, !tbaa !5
  %1674 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1673, i32 0, i32 38
  %1675 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1674, i32 0, i32 4
  %1676 = load ptr, ptr %6, align 8, !tbaa !5
  %1677 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1676, i32 0, i32 38
  %1678 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1677, i32 0, i32 5
  %1679 = load ptr, ptr %6, align 8, !tbaa !5
  %1680 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1679, i32 0, i32 32
  %1681 = load ptr, ptr %6, align 8, !tbaa !5
  %1682 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1681, i32 0, i32 43
  %1683 = load ptr, ptr %6, align 8, !tbaa !5
  %1684 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1683, i32 0, i32 47
  %1685 = load ptr, ptr %6, align 8, !tbaa !5
  %1686 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1685, i32 0, i32 48
  %1687 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1688 = trunc i8 %1687 to i1
  %1689 = load ptr, ptr %9, align 8, !tbaa !5
  %1690 = call noundef zeroext i1 @_ZN11alglib_implL24nlcsqp_qpsubproblemsolveEPNS_11minsqpstateEPNS_15minsqpsubsolverEPKNS_9ae_vectorES6_PKNS_9ae_matrixEPNS_12xbfgshessianEddPS4_SC_SC_bPlPdSE_SE_SE_PNS_8ae_stateE(ptr noundef %1667, ptr noundef %1669, ptr noundef %1672, ptr noundef %1675, ptr noundef %1678, ptr noundef %1680, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef %1682, ptr noundef %1684, ptr noundef %1686, i1 noundef zeroext %1688, ptr noundef %17, ptr noundef %50, ptr noundef %51, ptr noundef %48, ptr noundef %42, ptr noundef %1689)
  br i1 %1690, label %1705, label %1691

1691:                                             ; preds = %1666
  %1692 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1693 = trunc i8 %1692 to i1
  br i1 %1693, label %1694, label %1695

1694:                                             ; preds = %1691
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1385)
  br label %1695

1695:                                             ; preds = %1694, %1691
  %1696 = load ptr, ptr %6, align 8, !tbaa !5
  %1697 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1696, i32 0, i32 22
  %1698 = load double, ptr %1697, align 8, !tbaa !59
  %1699 = fmul double 1.000000e-01, %1698
  %1700 = load ptr, ptr %6, align 8, !tbaa !5
  %1701 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1700, i32 0, i32 22
  store double %1699, ptr %1701, align 8, !tbaa !59
  %1702 = load ptr, ptr %6, align 8, !tbaa !5
  %1703 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1702, i32 0, i32 55
  %1704 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1703, ptr noundef %1704)
  br label %783

1705:                                             ; preds = %1666
  %1706 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1707 = trunc i8 %1706 to i1
  br i1 %1707, label %1708, label %1727

1708:                                             ; preds = %1705
  %1709 = load i64, ptr %17, align 8, !tbaa !46
  %1710 = trunc i64 %1709 to i32
  %1711 = load i64, ptr %10, align 8, !tbaa !46
  %1712 = load ptr, ptr %6, align 8, !tbaa !5
  %1713 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1712, i32 0, i32 47
  %1714 = load ptr, ptr %9, align 8, !tbaa !5
  %1715 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1711, ptr noundef %1713, ptr noundef %1714)
  %1716 = load i64, ptr %12, align 8, !tbaa !46
  %1717 = load i64, ptr %13, align 8, !tbaa !46
  %1718 = add nsw i64 %1716, %1717
  %1719 = load i64, ptr %14, align 8, !tbaa !46
  %1720 = add nsw i64 %1718, %1719
  %1721 = load i64, ptr %15, align 8, !tbaa !46
  %1722 = add nsw i64 %1720, %1721
  %1723 = load ptr, ptr %6, align 8, !tbaa !5
  %1724 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1723, i32 0, i32 48
  %1725 = load ptr, ptr %9, align 8, !tbaa !5
  %1726 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1722, ptr noundef %1724, ptr noundef %1725)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1382, i32 noundef %1710, double noundef %1715, double noundef %1726)
  br label %1727

1727:                                             ; preds = %1708, %1705
  %1728 = load i64, ptr %10, align 8, !tbaa !46
  %1729 = load ptr, ptr %6, align 8, !tbaa !5
  %1730 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1729, i32 0, i32 43
  %1731 = load ptr, ptr %6, align 8, !tbaa !5
  %1732 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1731, i32 0, i32 41
  %1733 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1728, ptr noundef %1730, ptr noundef %1732, ptr noundef %1733)
  %1734 = load ptr, ptr %6, align 8, !tbaa !5
  %1735 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1734, i32 0, i32 38
  %1736 = load ptr, ptr %6, align 8, !tbaa !5
  %1737 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1736, i32 0, i32 40
  %1738 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %1735, ptr noundef %1737, ptr noundef %1738)
  %1739 = load ptr, ptr %7, align 8, !tbaa !5
  %1740 = load ptr, ptr %6, align 8, !tbaa !5
  %1741 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1740, i32 0, i32 26
  %1742 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1741, i32 0, i32 3
  %1743 = load ptr, ptr %6, align 8, !tbaa !5
  %1744 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1743, i32 0, i32 26
  %1745 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1744, i32 0, i32 4
  %1746 = load ptr, ptr %6, align 8, !tbaa !5
  %1747 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1746, i32 0, i32 26
  %1748 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1747, i32 0, i32 5
  %1749 = load ptr, ptr %6, align 8, !tbaa !5
  %1750 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1749, i32 0, i32 55
  %1751 = load i64, ptr %1750, align 8, !tbaa !69
  %1752 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl32smoothnessmonitorstartlinesearchEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_PKNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %1739, ptr noundef %1742, ptr noundef %1745, ptr noundef %1748, i64 noundef %1751, i64 noundef -1, ptr noundef %1752)
  %1753 = load i64, ptr %10, align 8, !tbaa !46
  %1754 = load ptr, ptr %6, align 8, !tbaa !5
  %1755 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1754, i32 0, i32 26
  %1756 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1755, i32 0, i32 3
  %1757 = load ptr, ptr %6, align 8, !tbaa !5
  %1758 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1757, i32 0, i32 37
  %1759 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1758, i32 0, i32 3
  %1760 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1753, ptr noundef %1756, ptr noundef %1759, ptr noundef %1760)
  %1761 = load i64, ptr %10, align 8, !tbaa !46
  %1762 = load ptr, ptr %6, align 8, !tbaa !5
  %1763 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1762, i32 0, i32 41
  %1764 = load ptr, ptr %6, align 8, !tbaa !5
  %1765 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1764, i32 0, i32 37
  %1766 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1765, i32 0, i32 3
  %1767 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1761, double noundef 1.000000e+00, ptr noundef %1763, ptr noundef %1766, ptr noundef %1767)
  %1768 = load ptr, ptr %6, align 8, !tbaa !5
  %1769 = load ptr, ptr %6, align 8, !tbaa !5
  %1770 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1769, i32 0, i32 37
  %1771 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1770, i32 0, i32 3
  %1772 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1768, ptr noundef %1771, ptr noundef %1772)
  %1773 = load ptr, ptr %6, align 8, !tbaa !5
  %1774 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1773, i32 0, i32 19
  store i8 1, ptr %1774, align 8, !tbaa !55
  %1775 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1776 = trunc i8 %1775 to i1
  br i1 %1776, label %1777, label %1781

1777:                                             ; preds = %1727
  %1778 = load ptr, ptr %6, align 8, !tbaa !5
  %1779 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1778, i32 0, i32 65
  %1780 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1779, ptr noundef %1780)
  br label %1781

1781:                                             ; preds = %1777, %1727
  %1782 = load ptr, ptr %6, align 8, !tbaa !5
  %1783 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1782, i32 0, i32 66
  %1784 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1783, i32 0, i32 0
  store i32 3, ptr %1784, align 8, !tbaa !11
  br label %3072

1785:                                             ; preds = %469
  %1786 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1787 = trunc i8 %1786 to i1
  br i1 %1787, label %1788, label %1792

1788:                                             ; preds = %1785
  %1789 = load ptr, ptr %6, align 8, !tbaa !5
  %1790 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1789, i32 0, i32 65
  %1791 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1790, ptr noundef %1791)
  br label %1792

1792:                                             ; preds = %1788, %1785
  %1793 = load ptr, ptr %6, align 8, !tbaa !5
  %1794 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1793, i32 0, i32 19
  store i8 0, ptr %1794, align 8, !tbaa !55
  %1795 = load ptr, ptr %6, align 8, !tbaa !5
  %1796 = load ptr, ptr %6, align 8, !tbaa !5
  %1797 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1796, i32 0, i32 37
  %1798 = load ptr, ptr %9, align 8, !tbaa !5
  %1799 = call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %1795, ptr noundef %1797, ptr noundef %1798)
  br i1 %1799, label %1819, label %1800

1800:                                             ; preds = %1792
  %1801 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1802 = trunc i8 %1801 to i1
  br i1 %1802, label %1803, label %1804

1803:                                             ; preds = %1800
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1145)
  br label %1804

1804:                                             ; preds = %1803, %1800
  %1805 = load ptr, ptr %6, align 8, !tbaa !5
  %1806 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1805, i32 0, i32 22
  %1807 = load double, ptr %1806, align 8, !tbaa !59
  %1808 = load double, ptr @_ZN11alglib_implL23nlcsqp_maxtrustraddecayE, align 8, !tbaa !49
  %1809 = fmul double %1807, %1808
  %1810 = load ptr, ptr %6, align 8, !tbaa !5
  %1811 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1810, i32 0, i32 22
  store double %1809, ptr %1811, align 8, !tbaa !59
  %1812 = load ptr, ptr %6, align 8, !tbaa !5
  %1813 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1812, i32 0, i32 23
  %1814 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !49
  %1815 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef %1813, double noundef %1814, ptr noundef %1815)
  %1816 = load ptr, ptr %6, align 8, !tbaa !5
  %1817 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1816, i32 0, i32 55
  %1818 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1817, ptr noundef %1818)
  store i8 1, ptr %56, align 1, !tbaa !9
  store i8 1, ptr %57, align 1, !tbaa !9
  br label %783

1819:                                             ; preds = %1792
  %1820 = load ptr, ptr %7, align 8, !tbaa !5
  %1821 = load ptr, ptr %6, align 8, !tbaa !5
  %1822 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1821, i32 0, i32 41
  %1823 = load ptr, ptr %6, align 8, !tbaa !5
  %1824 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1823, i32 0, i32 37
  %1825 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1824, i32 0, i32 3
  %1826 = load ptr, ptr %6, align 8, !tbaa !5
  %1827 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1826, i32 0, i32 37
  %1828 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1827, i32 0, i32 4
  %1829 = load ptr, ptr %6, align 8, !tbaa !5
  %1830 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1829, i32 0, i32 37
  %1831 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1830, i32 0, i32 5
  %1832 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl29smoothnessmonitorenqueuepointEPNS_17smoothnessmonitorEPKNS_9ae_vectorEdS4_S4_PKNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %1820, ptr noundef %1822, double noundef 1.000000e+00, ptr noundef %1825, ptr noundef %1828, ptr noundef %1831, ptr noundef %1832)
  %1833 = load ptr, ptr %6, align 8, !tbaa !5
  %1834 = load ptr, ptr %6, align 8, !tbaa !5
  %1835 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1834, i32 0, i32 37
  %1836 = load ptr, ptr %6, align 8, !tbaa !5
  %1837 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1836, i32 0, i32 21
  %1838 = load double, ptr %1837, align 8, !tbaa !66
  %1839 = load ptr, ptr %9, align 8, !tbaa !5
  %1840 = call noundef double @_ZN11alglib_implL20nlcsqp_meritfunctionEPNS_11minsqpstateEPKNS_11varsfuncjacEdPNS_8ae_stateE(ptr noundef %1833, ptr noundef %1835, double noundef %1838, ptr noundef %1839)
  store double %1840, ptr %36, align 8, !tbaa !49
  %1841 = load double, ptr %50, align 8, !tbaa !49
  %1842 = load ptr, ptr %6, align 8, !tbaa !5
  %1843 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1842, i32 0, i32 21
  %1844 = load double, ptr %1843, align 8, !tbaa !66
  %1845 = load double, ptr %51, align 8, !tbaa !49
  %1846 = call double @llvm.fmuladd.f64(double %1844, double %1845, double %1841)
  store double %1846, ptr %49, align 8, !tbaa !49
  %1847 = load double, ptr %36, align 8, !tbaa !49
  %1848 = load double, ptr %35, align 8, !tbaa !49
  %1849 = fsub double %1847, %1848
  %1850 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !49
  %1851 = load double, ptr %49, align 8, !tbaa !49
  %1852 = fmul double %1850, %1851
  %1853 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1849, double noundef %1852)
  %1854 = zext i1 %1853 to i8
  store i8 %1854, ptr %54, align 1, !tbaa !9
  %1855 = load i64, ptr %10, align 8, !tbaa !46
  %1856 = load ptr, ptr %6, align 8, !tbaa !5
  %1857 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1856, i32 0, i32 50
  %1858 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1855, ptr noundef %1857, ptr noundef %1858)
  %1859 = load ptr, ptr %6, align 8, !tbaa !5
  %1860 = load ptr, ptr %6, align 8, !tbaa !5
  %1861 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1860, i32 0, i32 37
  %1862 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1861, i32 0, i32 3
  %1863 = load ptr, ptr %6, align 8, !tbaa !5
  %1864 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1863, i32 0, i32 22
  %1865 = load double, ptr %1864, align 8, !tbaa !59
  %1866 = load ptr, ptr %6, align 8, !tbaa !5
  %1867 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1866, i32 0, i32 37
  %1868 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1867, i32 0, i32 4
  %1869 = load ptr, ptr %6, align 8, !tbaa !5
  %1870 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1869, i32 0, i32 37
  %1871 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1870, i32 0, i32 5
  %1872 = load ptr, ptr %6, align 8, !tbaa !5
  %1873 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1872, i32 0, i32 35
  %1874 = load ptr, ptr %6, align 8, !tbaa !5
  %1875 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1874, i32 0, i32 36
  %1876 = load ptr, ptr %6, align 8, !tbaa !5
  %1877 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1876, i32 0, i32 50
  %1878 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %1859, ptr noundef %1862, double noundef %1865, ptr noundef %1868, ptr noundef %1871, ptr noundef %1873, ptr noundef %1875, i1 noundef zeroext true, ptr noundef %39, ptr noundef %1877, ptr noundef %1878)
  %1879 = load ptr, ptr %6, align 8, !tbaa !5
  %1880 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1879, i32 0, i32 32
  %1881 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl26hessianpoplatestifpossibleEPNS_12xbfgshessianEPNS_8ae_stateE(ptr noundef %1880, ptr noundef %1881)
  %1882 = load ptr, ptr %6, align 8, !tbaa !5
  %1883 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1882, i32 0, i32 32
  %1884 = load ptr, ptr %6, align 8, !tbaa !5
  %1885 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1884, i32 0, i32 26
  %1886 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1885, i32 0, i32 3
  %1887 = load ptr, ptr %6, align 8, !tbaa !5
  %1888 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1887, i32 0, i32 49
  %1889 = load ptr, ptr %6, align 8, !tbaa !5
  %1890 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1889, i32 0, i32 37
  %1891 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1890, i32 0, i32 3
  %1892 = load ptr, ptr %6, align 8, !tbaa !5
  %1893 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1892, i32 0, i32 50
  %1894 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1895 = trunc i8 %1894 to i1
  %1896 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl15hessianupdatev2EPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_lbblPNS_8ae_stateE(ptr noundef %1883, ptr noundef %1886, ptr noundef %1888, ptr noundef %1891, ptr noundef %1893, i64 noundef 2, i1 noundef zeroext true, i1 noundef zeroext %1895, i64 noundef 1, ptr noundef %1896)
  %1897 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1898 = trunc i8 %1897 to i1
  br i1 %1898, label %1899, label %1910

1899:                                             ; preds = %1819
  %1900 = load double, ptr %42, align 8, !tbaa !49
  %1901 = load double, ptr %49, align 8, !tbaa !49
  %1902 = load double, ptr %36, align 8, !tbaa !49
  %1903 = load double, ptr %35, align 8, !tbaa !49
  %1904 = fsub double %1902, %1903
  %1905 = load double, ptr %36, align 8, !tbaa !49
  %1906 = load double, ptr %35, align 8, !tbaa !49
  %1907 = fsub double %1905, %1906
  %1908 = load double, ptr %49, align 8, !tbaa !49
  %1909 = fdiv double %1907, %1908
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1383, double noundef %1900, double noundef %1901, double noundef %1904, double noundef %1909)
  br label %1910

1910:                                             ; preds = %1899, %1819
  %1911 = load double, ptr %49, align 8, !tbaa !49
  %1912 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1911, double noundef 0.000000e+00)
  br i1 %1912, label %1921, label %1913

1913:                                             ; preds = %1910
  %1914 = load double, ptr %36, align 8, !tbaa !49
  %1915 = load double, ptr %34, align 8, !tbaa !49
  %1916 = fsub double %1914, %1915
  %1917 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !49
  %1918 = load double, ptr %49, align 8, !tbaa !49
  %1919 = fmul double %1917, %1918
  %1920 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1916, double noundef %1919)
  br i1 %1920, label %1921, label %1923

1921:                                             ; preds = %1913, %1910
  store i8 0, ptr %53, align 1, !tbaa !9
  store i8 0, ptr %54, align 1, !tbaa !9
  store i8 1, ptr %52, align 1, !tbaa !9
  %1922 = load double, ptr %34, align 8, !tbaa !49
  store double %1922, ptr %36, align 8, !tbaa !49
  br label %1923

1923:                                             ; preds = %1921, %1913
  %1924 = load ptr, ptr %7, align 8, !tbaa !5
  %1925 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl35smoothnessmonitorfinalizelinesearchEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1924, ptr noundef %1925)
  br label %1926

1926:                                             ; preds = %1923, %1536
  %1927 = load ptr, ptr %6, align 8, !tbaa !5
  %1928 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1927, i32 0, i32 37
  %1929 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1928, i32 0, i32 3
  %1930 = load ptr, ptr %6, align 8, !tbaa !5
  %1931 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1930, i32 0, i32 11
  %1932 = load ptr, ptr %6, align 8, !tbaa !5
  %1933 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1932, i32 0, i32 9
  %1934 = load ptr, ptr %6, align 8, !tbaa !5
  %1935 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1934, i32 0, i32 12
  %1936 = load ptr, ptr %6, align 8, !tbaa !5
  %1937 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1936, i32 0, i32 10
  %1938 = load i64, ptr %10, align 8, !tbaa !46
  %1939 = load ptr, ptr %9, align 8, !tbaa !5
  %1940 = call noundef zeroext i1 @_ZN11alglib_impl26enforceboundaryconstraintsEPNS_9ae_vectorEPKS0_S3_S3_S3_llPNS_8ae_stateE(ptr noundef %1929, ptr noundef %1931, ptr noundef %1933, ptr noundef %1935, ptr noundef %1937, i64 noundef %1938, i64 noundef 0, ptr noundef %1939)
  %1941 = load i8, ptr %8, align 1, !tbaa !9, !range !47, !noundef !48
  %1942 = trunc i8 %1941 to i1
  br i1 %1942, label %1943, label %1954

1943:                                             ; preds = %1926
  %1944 = load i8, ptr %57, align 1, !tbaa !9, !range !47, !noundef !48
  %1945 = trunc i8 %1944 to i1
  %1946 = load ptr, ptr %9, align 8, !tbaa !5
  %1947 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %1945, i64 noundef -8, i64 noundef 8, ptr noundef %1946)
  %1948 = load ptr, ptr %6, align 8, !tbaa !5
  %1949 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1948, i32 0, i32 56
  store i64 %1947, ptr %1949, align 8, !tbaa !64
  %1950 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %1951 = trunc i8 %1950 to i1
  br i1 %1951, label %1952, label %1953

1952:                                             ; preds = %1943
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1154)
  br label %1953

1953:                                             ; preds = %1952, %1943
  br label %3011

1954:                                             ; preds = %1926
  %1955 = load i8, ptr %53, align 1, !tbaa !9, !range !47, !noundef !48
  %1956 = trunc i8 %1955 to i1
  br i1 %1956, label %1957, label %1969

1957:                                             ; preds = %1954
  %1958 = load double, ptr %36, align 8, !tbaa !49
  %1959 = load double, ptr %34, align 8, !tbaa !49
  %1960 = fsub double %1958, %1959
  %1961 = load ptr, ptr %9, align 8, !tbaa !5
  %1962 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1960, ptr noundef %1961)
  %1963 = load double, ptr @_ZN11alglib_implL21nlcsqp_stagnationepsfE, align 8, !tbaa !49
  %1964 = load double, ptr %34, align 8, !tbaa !49
  %1965 = load ptr, ptr %9, align 8, !tbaa !5
  %1966 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1964, ptr noundef %1965)
  %1967 = fmul double %1963, %1966
  %1968 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1962, double noundef %1967)
  br label %1969

1969:                                             ; preds = %1957, %1954
  %1970 = phi i1 [ false, %1954 ], [ %1968, %1957 ]
  %1971 = zext i1 %1970 to i8
  store i8 %1971, ptr %33, align 1, !tbaa !9
  %1972 = load double, ptr %36, align 8, !tbaa !49
  %1973 = load double, ptr %34, align 8, !tbaa !49
  %1974 = fsub double %1972, %1973
  %1975 = load ptr, ptr %9, align 8, !tbaa !5
  %1976 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1974, ptr noundef %1975)
  %1977 = load double, ptr %34, align 8, !tbaa !49
  %1978 = load double, ptr %36, align 8, !tbaa !49
  %1979 = load ptr, ptr %9, align 8, !tbaa !5
  %1980 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %1977, double noundef %1978, double noundef 1.000000e+00, ptr noundef %1979)
  %1981 = fdiv double %1976, %1980
  store double %1981, ptr %18, align 8, !tbaa !49
  %1982 = load ptr, ptr %6, align 8, !tbaa !5
  %1983 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1982, i32 0, i32 37
  %1984 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1983, i32 0, i32 4
  %1985 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1984, i32 0, i32 4
  %1986 = load ptr, ptr %1985, align 8, !tbaa !45
  %1987 = getelementptr inbounds double, ptr %1986, i64 0
  %1988 = load double, ptr %1987, align 8, !tbaa !49
  %1989 = load ptr, ptr %6, align 8, !tbaa !5
  %1990 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1989, i32 0, i32 29
  %1991 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1990, i32 0, i32 4
  %1992 = load ptr, ptr %1991, align 8, !tbaa !45
  %1993 = getelementptr inbounds double, ptr %1992, i64 0
  %1994 = load double, ptr %1993, align 8, !tbaa !49
  %1995 = load ptr, ptr %6, align 8, !tbaa !5
  %1996 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1995, i32 0, i32 26
  %1997 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1996, i32 0, i32 4
  %1998 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1997, i32 0, i32 4
  %1999 = load ptr, ptr %1998, align 8, !tbaa !45
  %2000 = getelementptr inbounds double, ptr %1999, i64 0
  %2001 = load double, ptr %2000, align 8, !tbaa !49
  %2002 = load ptr, ptr %6, align 8, !tbaa !5
  %2003 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2002, i32 0, i32 29
  %2004 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2003, i32 0, i32 4
  %2005 = load ptr, ptr %2004, align 8, !tbaa !45
  %2006 = getelementptr inbounds double, ptr %2005, i64 0
  %2007 = load double, ptr %2006, align 8, !tbaa !49
  %2008 = fmul double %2001, %2007
  %2009 = fneg double %2008
  %2010 = call double @llvm.fmuladd.f64(double %1988, double %1994, double %2009)
  %2011 = load ptr, ptr %9, align 8, !tbaa !5
  %2012 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2010, ptr noundef %2011)
  %2013 = load ptr, ptr %6, align 8, !tbaa !5
  %2014 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2013, i32 0, i32 37
  %2015 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2014, i32 0, i32 4
  %2016 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2015, i32 0, i32 4
  %2017 = load ptr, ptr %2016, align 8, !tbaa !45
  %2018 = getelementptr inbounds double, ptr %2017, i64 0
  %2019 = load double, ptr %2018, align 8, !tbaa !49
  %2020 = load ptr, ptr %6, align 8, !tbaa !5
  %2021 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2020, i32 0, i32 29
  %2022 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2021, i32 0, i32 4
  %2023 = load ptr, ptr %2022, align 8, !tbaa !45
  %2024 = getelementptr inbounds double, ptr %2023, i64 0
  %2025 = load double, ptr %2024, align 8, !tbaa !49
  %2026 = fmul double %2019, %2025
  %2027 = load ptr, ptr %6, align 8, !tbaa !5
  %2028 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2027, i32 0, i32 26
  %2029 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2028, i32 0, i32 4
  %2030 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2029, i32 0, i32 4
  %2031 = load ptr, ptr %2030, align 8, !tbaa !45
  %2032 = getelementptr inbounds double, ptr %2031, i64 0
  %2033 = load double, ptr %2032, align 8, !tbaa !49
  %2034 = load ptr, ptr %6, align 8, !tbaa !5
  %2035 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2034, i32 0, i32 29
  %2036 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2035, i32 0, i32 4
  %2037 = load ptr, ptr %2036, align 8, !tbaa !45
  %2038 = getelementptr inbounds double, ptr %2037, i64 0
  %2039 = load double, ptr %2038, align 8, !tbaa !49
  %2040 = fmul double %2033, %2039
  %2041 = load ptr, ptr %9, align 8, !tbaa !5
  %2042 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %2026, double noundef %2040, double noundef 1.000000e+00, ptr noundef %2041)
  %2043 = fdiv double %2012, %2042
  store double %2043, ptr %19, align 8, !tbaa !49
  %2044 = load i8, ptr %53, align 1, !tbaa !9, !range !47, !noundef !48
  %2045 = trunc i8 %2044 to i1
  %2046 = load double, ptr %18, align 8, !tbaa !49
  %2047 = load double, ptr %19, align 8, !tbaa !49
  %2048 = load ptr, ptr %9, align 8, !tbaa !5
  %2049 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2046, double noundef %2047, ptr noundef %2048)
  %2050 = load ptr, ptr %9, align 8, !tbaa !5
  %2051 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %2045, double noundef %2049, double noundef 1.000000e+50, ptr noundef %2050)
  store double %2051, ptr %27, align 8, !tbaa !49
  %2052 = load ptr, ptr %6, align 8, !tbaa !5
  %2053 = load ptr, ptr %6, align 8, !tbaa !5
  %2054 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2053, i32 0, i32 40
  %2055 = load ptr, ptr %6, align 8, !tbaa !5
  %2056 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2055, i32 0, i32 41
  %2057 = load double, ptr %50, align 8, !tbaa !49
  %2058 = load double, ptr %51, align 8, !tbaa !49
  %2059 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %2060 = trunc i8 %2059 to i1
  %2061 = load ptr, ptr %9, align 8, !tbaa !5
  %2062 = call noundef zeroext i1 @_ZN11alglib_implL28nlcsqp_penaltiesneedincreaseEPNS_11minsqpstateEPKNS_11varsfuncjacEPKNS_9ae_vectorEddbPNS_8ae_stateE(ptr noundef %2052, ptr noundef %2054, ptr noundef %2056, double noundef %2057, double noundef %2058, i1 noundef zeroext %2060, ptr noundef %2061)
  br i1 %2062, label %2063, label %2064

2063:                                             ; preds = %1969
  store i8 0, ptr %53, align 1, !tbaa !9
  store i8 0, ptr %54, align 1, !tbaa !9
  store i8 1, ptr %32, align 1, !tbaa !9
  br label %2064

2064:                                             ; preds = %2063, %1969
  %2065 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %2066 = trunc i8 %2065 to i1
  br i1 %2066, label %2068, label %2067

2067:                                             ; preds = %2064
  br label %2756

2068:                                             ; preds = %2064
  %2069 = load i64, ptr %10, align 8, !tbaa !46
  %2070 = load ptr, ptr %6, align 8, !tbaa !5
  %2071 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2070, i32 0, i32 49
  %2072 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2069, ptr noundef %2071, ptr noundef %2072)
  %2073 = load i64, ptr %10, align 8, !tbaa !46
  %2074 = load ptr, ptr %6, align 8, !tbaa !5
  %2075 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2074, i32 0, i32 50
  %2076 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2073, ptr noundef %2075, ptr noundef %2076)
  %2077 = load ptr, ptr %6, align 8, !tbaa !5
  %2078 = load ptr, ptr %6, align 8, !tbaa !5
  %2079 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2078, i32 0, i32 26
  %2080 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2079, i32 0, i32 3
  %2081 = load ptr, ptr %6, align 8, !tbaa !5
  %2082 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2081, i32 0, i32 22
  %2083 = load double, ptr %2082, align 8, !tbaa !59
  %2084 = load ptr, ptr %6, align 8, !tbaa !5
  %2085 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2084, i32 0, i32 26
  %2086 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2085, i32 0, i32 4
  %2087 = load ptr, ptr %6, align 8, !tbaa !5
  %2088 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2087, i32 0, i32 26
  %2089 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2088, i32 0, i32 5
  %2090 = load ptr, ptr %6, align 8, !tbaa !5
  %2091 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2090, i32 0, i32 35
  %2092 = load ptr, ptr %6, align 8, !tbaa !5
  %2093 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2092, i32 0, i32 36
  %2094 = load ptr, ptr %6, align 8, !tbaa !5
  %2095 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2094, i32 0, i32 49
  %2096 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %2077, ptr noundef %2080, double noundef %2083, ptr noundef %2086, ptr noundef %2089, ptr noundef %2091, ptr noundef %2093, i1 noundef zeroext true, ptr noundef %38, ptr noundef %2095, ptr noundef %2096)
  %2097 = load ptr, ptr %6, align 8, !tbaa !5
  %2098 = load ptr, ptr %6, align 8, !tbaa !5
  %2099 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2098, i32 0, i32 37
  %2100 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2099, i32 0, i32 3
  %2101 = load ptr, ptr %6, align 8, !tbaa !5
  %2102 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2101, i32 0, i32 22
  %2103 = load double, ptr %2102, align 8, !tbaa !59
  %2104 = load ptr, ptr %6, align 8, !tbaa !5
  %2105 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2104, i32 0, i32 37
  %2106 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2105, i32 0, i32 4
  %2107 = load ptr, ptr %6, align 8, !tbaa !5
  %2108 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2107, i32 0, i32 37
  %2109 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2108, i32 0, i32 5
  %2110 = load ptr, ptr %6, align 8, !tbaa !5
  %2111 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2110, i32 0, i32 35
  %2112 = load ptr, ptr %6, align 8, !tbaa !5
  %2113 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2112, i32 0, i32 36
  %2114 = load ptr, ptr %6, align 8, !tbaa !5
  %2115 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2114, i32 0, i32 50
  %2116 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %2097, ptr noundef %2100, double noundef %2103, ptr noundef %2106, ptr noundef %2109, ptr noundef %2111, ptr noundef %2113, i1 noundef zeroext true, ptr noundef %39, ptr noundef %2115, ptr noundef %2116)
  store double 0.000000e+00, ptr %44, align 8, !tbaa !49
  store i64 0, ptr %17, align 8, !tbaa !46
  br label %2117

2117:                                             ; preds = %2144, %2068
  %2118 = load i64, ptr %17, align 8, !tbaa !46
  %2119 = load i64, ptr %10, align 8, !tbaa !46
  %2120 = sub nsw i64 %2119, 1
  %2121 = icmp sle i64 %2118, %2120
  br i1 %2121, label %2122, label %2147

2122:                                             ; preds = %2117
  %2123 = load ptr, ptr %6, align 8, !tbaa !5
  %2124 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2123, i32 0, i32 37
  %2125 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2124, i32 0, i32 3
  %2126 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2125, i32 0, i32 4
  %2127 = load ptr, ptr %2126, align 8, !tbaa !45
  %2128 = load i64, ptr %17, align 8, !tbaa !46
  %2129 = getelementptr inbounds double, ptr %2127, i64 %2128
  %2130 = load double, ptr %2129, align 8, !tbaa !49
  %2131 = load ptr, ptr %6, align 8, !tbaa !5
  %2132 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2131, i32 0, i32 26
  %2133 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2132, i32 0, i32 3
  %2134 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2133, i32 0, i32 4
  %2135 = load ptr, ptr %2134, align 8, !tbaa !45
  %2136 = load i64, ptr %17, align 8, !tbaa !46
  %2137 = getelementptr inbounds double, ptr %2135, i64 %2136
  %2138 = load double, ptr %2137, align 8, !tbaa !49
  %2139 = fsub double %2130, %2138
  store double %2139, ptr %18, align 8, !tbaa !49
  %2140 = load double, ptr %44, align 8, !tbaa !49
  %2141 = load double, ptr %18, align 8, !tbaa !49
  %2142 = load double, ptr %18, align 8, !tbaa !49
  %2143 = call double @llvm.fmuladd.f64(double %2141, double %2142, double %2140)
  store double %2143, ptr %44, align 8, !tbaa !49
  br label %2144

2144:                                             ; preds = %2122
  %2145 = load i64, ptr %17, align 8, !tbaa !46
  %2146 = add nsw i64 %2145, 1
  store i64 %2146, ptr %17, align 8, !tbaa !46
  br label %2117, !llvm.loop !80

2147:                                             ; preds = %2117
  %2148 = load double, ptr %44, align 8, !tbaa !49
  %2149 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2148, double noundef 0.000000e+00)
  br i1 %2149, label %2150, label %2240

2150:                                             ; preds = %2147
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %2151

2151:                                             ; preds = %2236, %2150
  %2152 = load i64, ptr %16, align 8, !tbaa !46
  %2153 = load i64, ptr %14, align 8, !tbaa !46
  %2154 = load i64, ptr %15, align 8, !tbaa !46
  %2155 = add nsw i64 %2153, %2154
  %2156 = icmp sle i64 %2152, %2155
  br i1 %2156, label %2157, label %2239

2157:                                             ; preds = %2151
  store double 0.000000e+00, ptr %45, align 8, !tbaa !49
  store double 0.000000e+00, ptr %46, align 8, !tbaa !49
  store i64 0, ptr %17, align 8, !tbaa !46
  br label %2158

2158:                                             ; preds = %2212, %2157
  %2159 = load i64, ptr %17, align 8, !tbaa !46
  %2160 = load i64, ptr %10, align 8, !tbaa !46
  %2161 = sub nsw i64 %2160, 1
  %2162 = icmp sle i64 %2159, %2161
  br i1 %2162, label %2163, label %2215

2163:                                             ; preds = %2158
  %2164 = load ptr, ptr %6, align 8, !tbaa !5
  %2165 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2164, i32 0, i32 37
  %2166 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2165, i32 0, i32 3
  %2167 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2166, i32 0, i32 4
  %2168 = load ptr, ptr %2167, align 8, !tbaa !45
  %2169 = load i64, ptr %17, align 8, !tbaa !46
  %2170 = getelementptr inbounds double, ptr %2168, i64 %2169
  %2171 = load double, ptr %2170, align 8, !tbaa !49
  %2172 = load ptr, ptr %6, align 8, !tbaa !5
  %2173 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2172, i32 0, i32 26
  %2174 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2173, i32 0, i32 3
  %2175 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2174, i32 0, i32 4
  %2176 = load ptr, ptr %2175, align 8, !tbaa !45
  %2177 = load i64, ptr %17, align 8, !tbaa !46
  %2178 = getelementptr inbounds double, ptr %2176, i64 %2177
  %2179 = load double, ptr %2178, align 8, !tbaa !49
  %2180 = fsub double %2171, %2179
  store double %2180, ptr %18, align 8, !tbaa !49
  %2181 = load ptr, ptr %6, align 8, !tbaa !5
  %2182 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2181, i32 0, i32 37
  %2183 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2182, i32 0, i32 5
  %2184 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2183, i32 0, i32 6
  %2185 = load ptr, ptr %2184, align 8, !tbaa !45
  %2186 = load i64, ptr %16, align 8, !tbaa !46
  %2187 = getelementptr inbounds ptr, ptr %2185, i64 %2186
  %2188 = load ptr, ptr %2187, align 8, !tbaa !5
  %2189 = load i64, ptr %17, align 8, !tbaa !46
  %2190 = getelementptr inbounds double, ptr %2188, i64 %2189
  %2191 = load double, ptr %2190, align 8, !tbaa !49
  %2192 = load ptr, ptr %6, align 8, !tbaa !5
  %2193 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2192, i32 0, i32 26
  %2194 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2193, i32 0, i32 5
  %2195 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2194, i32 0, i32 6
  %2196 = load ptr, ptr %2195, align 8, !tbaa !45
  %2197 = load i64, ptr %16, align 8, !tbaa !46
  %2198 = getelementptr inbounds ptr, ptr %2196, i64 %2197
  %2199 = load ptr, ptr %2198, align 8, !tbaa !5
  %2200 = load i64, ptr %17, align 8, !tbaa !46
  %2201 = getelementptr inbounds double, ptr %2199, i64 %2200
  %2202 = load double, ptr %2201, align 8, !tbaa !49
  %2203 = fsub double %2191, %2202
  store double %2203, ptr %19, align 8, !tbaa !49
  %2204 = load double, ptr %46, align 8, !tbaa !49
  %2205 = load double, ptr %18, align 8, !tbaa !49
  %2206 = load double, ptr %19, align 8, !tbaa !49
  %2207 = call double @llvm.fmuladd.f64(double %2205, double %2206, double %2204)
  store double %2207, ptr %46, align 8, !tbaa !49
  %2208 = load double, ptr %45, align 8, !tbaa !49
  %2209 = load double, ptr %19, align 8, !tbaa !49
  %2210 = load double, ptr %19, align 8, !tbaa !49
  %2211 = call double @llvm.fmuladd.f64(double %2209, double %2210, double %2208)
  store double %2211, ptr %45, align 8, !tbaa !49
  br label %2212

2212:                                             ; preds = %2163
  %2213 = load i64, ptr %17, align 8, !tbaa !46
  %2214 = add nsw i64 %2213, 1
  store i64 %2214, ptr %17, align 8, !tbaa !46
  br label %2158, !llvm.loop !81

2215:                                             ; preds = %2158
  %2216 = load double, ptr %46, align 8, !tbaa !49
  %2217 = load double, ptr %44, align 8, !tbaa !49
  %2218 = fadd double %2217, 2.500000e-31
  %2219 = fdiv double %2216, %2218
  store double %2219, ptr %18, align 8, !tbaa !49
  %2220 = load ptr, ptr %6, align 8, !tbaa !5
  %2221 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2220, i32 0, i32 30
  %2222 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2221, i32 0, i32 4
  %2223 = load ptr, ptr %2222, align 8, !tbaa !45
  %2224 = load i64, ptr %16, align 8, !tbaa !46
  %2225 = getelementptr inbounds double, ptr %2223, i64 %2224
  %2226 = load double, ptr %2225, align 8, !tbaa !49
  %2227 = load double, ptr %18, align 8, !tbaa !49
  %2228 = load ptr, ptr %9, align 8, !tbaa !5
  %2229 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2226, double noundef %2227, ptr noundef %2228)
  %2230 = load ptr, ptr %6, align 8, !tbaa !5
  %2231 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2230, i32 0, i32 30
  %2232 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2231, i32 0, i32 4
  %2233 = load ptr, ptr %2232, align 8, !tbaa !45
  %2234 = load i64, ptr %16, align 8, !tbaa !46
  %2235 = getelementptr inbounds double, ptr %2233, i64 %2234
  store double %2229, ptr %2235, align 8, !tbaa !49
  br label %2236

2236:                                             ; preds = %2215
  %2237 = load i64, ptr %16, align 8, !tbaa !46
  %2238 = add nsw i64 %2237, 1
  store i64 %2238, ptr %16, align 8, !tbaa !46
  br label %2151, !llvm.loop !82

2239:                                             ; preds = %2151
  br label %2240

2240:                                             ; preds = %2239, %2147
  %2241 = load i8, ptr %29, align 1, !tbaa !9, !range !47, !noundef !48
  %2242 = trunc i8 %2241 to i1
  br i1 %2242, label %2250, label %2243

2243:                                             ; preds = %2240
  %2244 = load i8, ptr %30, align 1, !tbaa !9, !range !47, !noundef !48
  %2245 = trunc i8 %2244 to i1
  br i1 %2245, label %2246, label %2249

2246:                                             ; preds = %2243
  %2247 = load i8, ptr %52, align 1, !tbaa !9, !range !47, !noundef !48
  %2248 = trunc i8 %2247 to i1
  br i1 %2248, label %2250, label %2249

2249:                                             ; preds = %2246, %2243
  br label %2473

2250:                                             ; preds = %2246, %2240
  store i64 0, ptr %43, align 8, !tbaa !46
  br label %2251

2251:                                             ; preds = %2467, %2250
  %2252 = load i64, ptr %43, align 8, !tbaa !46
  %2253 = icmp sgt i64 %2252, 1
  br i1 %2253, label %2254, label %2255

2254:                                             ; preds = %2251
  br label %2472

2255:                                             ; preds = %2251
  %2256 = load i64, ptr %43, align 8, !tbaa !46
  %2257 = icmp eq i64 %2256, 1
  br i1 %2257, label %2258, label %2262

2258:                                             ; preds = %2255
  %2259 = load i8, ptr %41, align 1, !tbaa !9, !range !47, !noundef !48
  %2260 = trunc i8 %2259 to i1
  br i1 %2260, label %2262, label %2261

2261:                                             ; preds = %2258
  br label %2472

2262:                                             ; preds = %2258, %2255
  %2263 = load i64, ptr %43, align 8, !tbaa !46
  %2264 = icmp eq i64 %2263, 0
  br i1 %2264, label %2265, label %2276

2265:                                             ; preds = %2262
  %2266 = load ptr, ptr %7, align 8, !tbaa !5
  %2267 = load ptr, ptr %6, align 8, !tbaa !5
  %2268 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2267, i32 0, i32 26
  %2269 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2268, i32 0, i32 3
  %2270 = load ptr, ptr %6, align 8, !tbaa !5
  %2271 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2270, i32 0, i32 42
  %2272 = load ptr, ptr %6, align 8, !tbaa !5
  %2273 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2272, i32 0, i32 55
  %2274 = load i64, ptr %2273, align 8, !tbaa !69
  %2275 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %2266, ptr noundef %2269, ptr noundef %2271, double noundef 1.000000e+00, i64 noundef %2274, i64 noundef -1, ptr noundef %2275)
  br label %2287

2276:                                             ; preds = %2262
  %2277 = load ptr, ptr %7, align 8, !tbaa !5
  %2278 = load ptr, ptr %6, align 8, !tbaa !5
  %2279 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2278, i32 0, i32 26
  %2280 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2279, i32 0, i32 3
  %2281 = load ptr, ptr %6, align 8, !tbaa !5
  %2282 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2281, i32 0, i32 43
  %2283 = load ptr, ptr %6, align 8, !tbaa !5
  %2284 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2283, i32 0, i32 55
  %2285 = load i64, ptr %2284, align 8, !tbaa !69
  %2286 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %2277, ptr noundef %2280, ptr noundef %2282, double noundef 1.000000e+00, i64 noundef %2285, i64 noundef -1, ptr noundef %2286)
  br label %2287

2287:                                             ; preds = %2276, %2265
  br label %2288

2288:                                             ; preds = %2419, %2287
  %2289 = load ptr, ptr %7, align 8, !tbaa !5
  %2290 = load ptr, ptr %9, align 8, !tbaa !5
  %2291 = call noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %2289, ptr noundef %2290)
  br i1 %2291, label %2293, label %2292

2292:                                             ; preds = %2288
  br label %2459

2293:                                             ; preds = %2288
  store i64 0, ptr %17, align 8, !tbaa !46
  br label %2294

2294:                                             ; preds = %2382, %2293
  %2295 = load i64, ptr %17, align 8, !tbaa !46
  %2296 = load i64, ptr %10, align 8, !tbaa !46
  %2297 = sub nsw i64 %2296, 1
  %2298 = icmp sle i64 %2295, %2297
  br i1 %2298, label %2299, label %2385

2299:                                             ; preds = %2294
  %2300 = load ptr, ptr %7, align 8, !tbaa !5
  %2301 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2300, i32 0, i32 20
  %2302 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2301, i32 0, i32 4
  %2303 = load ptr, ptr %2302, align 8, !tbaa !45
  %2304 = load i64, ptr %17, align 8, !tbaa !46
  %2305 = getelementptr inbounds double, ptr %2303, i64 %2304
  %2306 = load double, ptr %2305, align 8, !tbaa !49
  %2307 = load ptr, ptr %6, align 8, !tbaa !5
  %2308 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2307, i32 0, i32 39
  %2309 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2308, i32 0, i32 3
  %2310 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2309, i32 0, i32 4
  %2311 = load ptr, ptr %2310, align 8, !tbaa !45
  %2312 = load i64, ptr %17, align 8, !tbaa !46
  %2313 = getelementptr inbounds double, ptr %2311, i64 %2312
  store double %2306, ptr %2313, align 8, !tbaa !49
  %2314 = load ptr, ptr %6, align 8, !tbaa !5
  %2315 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2314, i32 0, i32 9
  %2316 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2315, i32 0, i32 4
  %2317 = load ptr, ptr %2316, align 8, !tbaa !45
  %2318 = load i64, ptr %17, align 8, !tbaa !46
  %2319 = getelementptr inbounds i8, ptr %2317, i64 %2318
  %2320 = load i8, ptr %2319, align 1, !tbaa !9, !range !47, !noundef !48
  %2321 = trunc i8 %2320 to i1
  br i1 %2321, label %2322, label %2347

2322:                                             ; preds = %2299
  %2323 = load ptr, ptr %6, align 8, !tbaa !5
  %2324 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2323, i32 0, i32 39
  %2325 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2324, i32 0, i32 3
  %2326 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2325, i32 0, i32 4
  %2327 = load ptr, ptr %2326, align 8, !tbaa !45
  %2328 = load i64, ptr %17, align 8, !tbaa !46
  %2329 = getelementptr inbounds double, ptr %2327, i64 %2328
  %2330 = load double, ptr %2329, align 8, !tbaa !49
  %2331 = load ptr, ptr %6, align 8, !tbaa !5
  %2332 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2331, i32 0, i32 11
  %2333 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2332, i32 0, i32 4
  %2334 = load ptr, ptr %2333, align 8, !tbaa !45
  %2335 = load i64, ptr %17, align 8, !tbaa !46
  %2336 = getelementptr inbounds double, ptr %2334, i64 %2335
  %2337 = load double, ptr %2336, align 8, !tbaa !49
  %2338 = load ptr, ptr %9, align 8, !tbaa !5
  %2339 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2330, double noundef %2337, ptr noundef %2338)
  %2340 = load ptr, ptr %6, align 8, !tbaa !5
  %2341 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2340, i32 0, i32 39
  %2342 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2341, i32 0, i32 3
  %2343 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2342, i32 0, i32 4
  %2344 = load ptr, ptr %2343, align 8, !tbaa !45
  %2345 = load i64, ptr %17, align 8, !tbaa !46
  %2346 = getelementptr inbounds double, ptr %2344, i64 %2345
  store double %2339, ptr %2346, align 8, !tbaa !49
  br label %2347

2347:                                             ; preds = %2322, %2299
  %2348 = load ptr, ptr %6, align 8, !tbaa !5
  %2349 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2348, i32 0, i32 10
  %2350 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2349, i32 0, i32 4
  %2351 = load ptr, ptr %2350, align 8, !tbaa !45
  %2352 = load i64, ptr %17, align 8, !tbaa !46
  %2353 = getelementptr inbounds i8, ptr %2351, i64 %2352
  %2354 = load i8, ptr %2353, align 1, !tbaa !9, !range !47, !noundef !48
  %2355 = trunc i8 %2354 to i1
  br i1 %2355, label %2356, label %2381

2356:                                             ; preds = %2347
  %2357 = load ptr, ptr %6, align 8, !tbaa !5
  %2358 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2357, i32 0, i32 39
  %2359 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2358, i32 0, i32 3
  %2360 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2359, i32 0, i32 4
  %2361 = load ptr, ptr %2360, align 8, !tbaa !45
  %2362 = load i64, ptr %17, align 8, !tbaa !46
  %2363 = getelementptr inbounds double, ptr %2361, i64 %2362
  %2364 = load double, ptr %2363, align 8, !tbaa !49
  %2365 = load ptr, ptr %6, align 8, !tbaa !5
  %2366 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2365, i32 0, i32 12
  %2367 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2366, i32 0, i32 4
  %2368 = load ptr, ptr %2367, align 8, !tbaa !45
  %2369 = load i64, ptr %17, align 8, !tbaa !46
  %2370 = getelementptr inbounds double, ptr %2368, i64 %2369
  %2371 = load double, ptr %2370, align 8, !tbaa !49
  %2372 = load ptr, ptr %9, align 8, !tbaa !5
  %2373 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2364, double noundef %2371, ptr noundef %2372)
  %2374 = load ptr, ptr %6, align 8, !tbaa !5
  %2375 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2374, i32 0, i32 39
  %2376 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2375, i32 0, i32 3
  %2377 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2376, i32 0, i32 4
  %2378 = load ptr, ptr %2377, align 8, !tbaa !45
  %2379 = load i64, ptr %17, align 8, !tbaa !46
  %2380 = getelementptr inbounds double, ptr %2378, i64 %2379
  store double %2373, ptr %2380, align 8, !tbaa !49
  br label %2381

2381:                                             ; preds = %2356, %2347
  br label %2382

2382:                                             ; preds = %2381
  %2383 = load i64, ptr %17, align 8, !tbaa !46
  %2384 = add nsw i64 %2383, 1
  store i64 %2384, ptr %17, align 8, !tbaa !46
  br label %2294, !llvm.loop !83

2385:                                             ; preds = %2294
  %2386 = load ptr, ptr %6, align 8, !tbaa !5
  %2387 = load ptr, ptr %6, align 8, !tbaa !5
  %2388 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2387, i32 0, i32 39
  %2389 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2388, i32 0, i32 3
  %2390 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2386, ptr noundef %2389, ptr noundef %2390)
  %2391 = load ptr, ptr %6, align 8, !tbaa !5
  %2392 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2391, i32 0, i32 19
  store i8 1, ptr %2392, align 8, !tbaa !55
  %2393 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %2394 = trunc i8 %2393 to i1
  br i1 %2394, label %2395, label %2399

2395:                                             ; preds = %2385
  %2396 = load ptr, ptr %6, align 8, !tbaa !5
  %2397 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2396, i32 0, i32 65
  %2398 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2397, ptr noundef %2398)
  br label %2399

2399:                                             ; preds = %2395, %2385
  %2400 = load ptr, ptr %6, align 8, !tbaa !5
  %2401 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2400, i32 0, i32 66
  %2402 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2401, i32 0, i32 0
  store i32 4, ptr %2402, align 8, !tbaa !11
  br label %3072

2403:                                             ; preds = %476
  %2404 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %2405 = trunc i8 %2404 to i1
  br i1 %2405, label %2406, label %2410

2406:                                             ; preds = %2403
  %2407 = load ptr, ptr %6, align 8, !tbaa !5
  %2408 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2407, i32 0, i32 65
  %2409 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2408, ptr noundef %2409)
  br label %2410

2410:                                             ; preds = %2406, %2403
  %2411 = load ptr, ptr %6, align 8, !tbaa !5
  %2412 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2411, i32 0, i32 19
  store i8 0, ptr %2412, align 8, !tbaa !55
  %2413 = load ptr, ptr %6, align 8, !tbaa !5
  %2414 = load ptr, ptr %6, align 8, !tbaa !5
  %2415 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2414, i32 0, i32 39
  %2416 = load ptr, ptr %9, align 8, !tbaa !5
  %2417 = call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %2413, ptr noundef %2415, ptr noundef %2416)
  br i1 %2417, label %2419, label %2418

2418:                                             ; preds = %2410
  br label %2459

2419:                                             ; preds = %2410
  %2420 = load i64, ptr %14, align 8, !tbaa !46
  %2421 = add nsw i64 1, %2420
  %2422 = load i64, ptr %15, align 8, !tbaa !46
  %2423 = add nsw i64 %2421, %2422
  %2424 = load ptr, ptr %6, align 8, !tbaa !5
  %2425 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2424, i32 0, i32 39
  %2426 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2425, i32 0, i32 4
  %2427 = load ptr, ptr %7, align 8, !tbaa !5
  %2428 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2427, i32 0, i32 21
  %2429 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2423, ptr noundef %2426, ptr noundef %2428, ptr noundef %2429)
  %2430 = load i64, ptr %14, align 8, !tbaa !46
  %2431 = add nsw i64 1, %2430
  %2432 = load i64, ptr %15, align 8, !tbaa !46
  %2433 = add nsw i64 %2431, %2432
  %2434 = load i64, ptr %10, align 8, !tbaa !46
  %2435 = load ptr, ptr %6, align 8, !tbaa !5
  %2436 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2435, i32 0, i32 39
  %2437 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2436, i32 0, i32 5
  %2438 = load ptr, ptr %7, align 8, !tbaa !5
  %2439 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2438, i32 0, i32 23
  %2440 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocmEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef %2433, i64 noundef %2434, ptr noundef %2437, ptr noundef %2439, ptr noundef %2440)
  %2441 = load ptr, ptr %6, align 8, !tbaa !5
  %2442 = load ptr, ptr %6, align 8, !tbaa !5
  %2443 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2442, i32 0, i32 39
  %2444 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2443, i32 0, i32 3
  %2445 = load ptr, ptr %6, align 8, !tbaa !5
  %2446 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2445, i32 0, i32 39
  %2447 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2446, i32 0, i32 4
  %2448 = load ptr, ptr %6, align 8, !tbaa !5
  %2449 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2448, i32 0, i32 35
  %2450 = load ptr, ptr %6, align 8, !tbaa !5
  %2451 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2450, i32 0, i32 36
  %2452 = load ptr, ptr %6, align 8, !tbaa !5
  %2453 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2452, i32 0, i32 21
  %2454 = load double, ptr %2453, align 8, !tbaa !66
  %2455 = load ptr, ptr %9, align 8, !tbaa !5
  %2456 = call noundef double @_ZN11alglib_implL20nlcsqp_rawlagrangianEPNS_11minsqpstateEPKNS_9ae_vectorES4_S4_S4_dPNS_8ae_stateE(ptr noundef %2441, ptr noundef %2444, ptr noundef %2447, ptr noundef %2449, ptr noundef %2451, double noundef %2454, ptr noundef %2455)
  %2457 = load ptr, ptr %7, align 8, !tbaa !5
  %2458 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2457, i32 0, i32 22
  store double %2456, ptr %2458, align 8, !tbaa !84
  br label %2288

2459:                                             ; preds = %2418, %2292
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1161)
  %2460 = load i64, ptr %43, align 8, !tbaa !46
  %2461 = icmp eq i64 %2460, 0
  br i1 %2461, label %2462, label %2463

2462:                                             ; preds = %2459
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1162)
  br label %2463

2463:                                             ; preds = %2462, %2459
  %2464 = load i64, ptr %43, align 8, !tbaa !46
  %2465 = icmp eq i64 %2464, 1
  br i1 %2465, label %2466, label %2467

2466:                                             ; preds = %2463
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1386)
  br label %2467

2467:                                             ; preds = %2466, %2463
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1169)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1170)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1171)
  %2468 = load ptr, ptr %7, align 8, !tbaa !5
  %2469 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl46smoothnessmonitortracelagrangianprobingresultsEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %2468, ptr noundef %2469)
  %2470 = load i64, ptr %43, align 8, !tbaa !46
  %2471 = add nsw i64 %2470, 1
  store i64 %2471, ptr %43, align 8, !tbaa !46
  br label %2251

2472:                                             ; preds = %2261, %2254
  br label %2473

2473:                                             ; preds = %2472, %2249
  store double 0.000000e+00, ptr %20, align 8, !tbaa !49
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %2474

2474:                                             ; preds = %2502, %2473
  %2475 = load i64, ptr %16, align 8, !tbaa !46
  %2476 = load i64, ptr %10, align 8, !tbaa !46
  %2477 = sub nsw i64 %2476, 1
  %2478 = icmp sle i64 %2475, %2477
  br i1 %2478, label %2479, label %2505

2479:                                             ; preds = %2474
  %2480 = load double, ptr %20, align 8, !tbaa !49
  %2481 = load ptr, ptr %6, align 8, !tbaa !5
  %2482 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2481, i32 0, i32 41
  %2483 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2482, i32 0, i32 4
  %2484 = load ptr, ptr %2483, align 8, !tbaa !45
  %2485 = load i64, ptr %16, align 8, !tbaa !46
  %2486 = getelementptr inbounds double, ptr %2484, i64 %2485
  %2487 = load double, ptr %2486, align 8, !tbaa !49
  %2488 = load ptr, ptr %9, align 8, !tbaa !5
  %2489 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2487, ptr noundef %2488)
  %2490 = load ptr, ptr %6, align 8, !tbaa !5
  %2491 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2490, i32 0, i32 26
  %2492 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2491, i32 0, i32 3
  %2493 = load i64, ptr %16, align 8, !tbaa !46
  %2494 = load ptr, ptr %6, align 8, !tbaa !5
  %2495 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2494, i32 0, i32 22
  %2496 = load double, ptr %2495, align 8, !tbaa !59
  %2497 = load ptr, ptr %9, align 8, !tbaa !5
  %2498 = call noundef double @_ZN11alglib_implL22nlcsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %2492, i64 noundef %2493, double noundef %2496, ptr noundef %2497)
  %2499 = fdiv double %2489, %2498
  %2500 = load ptr, ptr %9, align 8, !tbaa !5
  %2501 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2480, double noundef %2499, ptr noundef %2500)
  store double %2501, ptr %20, align 8, !tbaa !49
  br label %2502

2502:                                             ; preds = %2479
  %2503 = load i64, ptr %16, align 8, !tbaa !46
  %2504 = add nsw i64 %2503, 1
  store i64 %2504, ptr %16, align 8, !tbaa !46
  br label %2474, !llvm.loop !90

2505:                                             ; preds = %2474
  %2506 = load i8, ptr %53, align 1, !tbaa !9, !range !47, !noundef !48
  %2507 = trunc i8 %2506 to i1
  br i1 %2507, label %2508, label %2512

2508:                                             ; preds = %2505
  %2509 = load i8, ptr %54, align 1, !tbaa !9, !range !47, !noundef !48
  %2510 = trunc i8 %2509 to i1
  br i1 %2510, label %2511, label %2512

2511:                                             ; preds = %2508
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1387)
  br label %2518

2512:                                             ; preds = %2508, %2505
  %2513 = load i8, ptr %53, align 1, !tbaa !9, !range !47, !noundef !48
  %2514 = trunc i8 %2513 to i1
  br i1 %2514, label %2515, label %2516

2515:                                             ; preds = %2512
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1388)
  br label %2517

2516:                                             ; preds = %2512
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1389)
  br label %2517

2517:                                             ; preds = %2516, %2515
  br label %2518

2518:                                             ; preds = %2517, %2511
  %2519 = load double, ptr %20, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1390, double noundef %2519)
  %2520 = load i8, ptr %31, align 1, !tbaa !9, !range !47, !noundef !48
  %2521 = trunc i8 %2520 to i1
  br i1 %2521, label %2522, label %2537

2522:                                             ; preds = %2518
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1391)
  %2523 = load ptr, ptr %6, align 8, !tbaa !5
  %2524 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2523, i32 0, i32 35
  %2525 = load i64, ptr %10, align 8, !tbaa !46
  %2526 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2524, i64 noundef 0, i64 noundef %2525, ptr noundef %2526)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1392)
  %2527 = load ptr, ptr %6, align 8, !tbaa !5
  %2528 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2527, i32 0, i32 36
  %2529 = load i64, ptr %12, align 8, !tbaa !46
  %2530 = load i64, ptr %13, align 8, !tbaa !46
  %2531 = add nsw i64 %2529, %2530
  %2532 = load i64, ptr %14, align 8, !tbaa !46
  %2533 = add nsw i64 %2531, %2532
  %2534 = load i64, ptr %15, align 8, !tbaa !46
  %2535 = add nsw i64 %2533, %2534
  %2536 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2528, i64 noundef 0, i64 noundef %2535, ptr noundef %2536)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %2537

2537:                                             ; preds = %2522, %2518
  %2538 = load i8, ptr %31, align 1, !tbaa !9, !range !47, !noundef !48
  %2539 = trunc i8 %2538 to i1
  br i1 %2539, label %2540, label %2573

2540:                                             ; preds = %2537
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1393)
  %2541 = load ptr, ptr %6, align 8, !tbaa !5
  %2542 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2541, i32 0, i32 26
  %2543 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2542, i32 0, i32 3
  %2544 = load i64, ptr %10, align 8, !tbaa !46
  %2545 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2543, i64 noundef 0, i64 noundef %2544, ptr noundef %2545)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1394)
  %2546 = load ptr, ptr %6, align 8, !tbaa !5
  %2547 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2546, i32 0, i32 41
  %2548 = load i64, ptr %10, align 8, !tbaa !46
  %2549 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2547, i64 noundef 0, i64 noundef %2548, ptr noundef %2549)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1395)
  %2550 = load ptr, ptr %6, align 8, !tbaa !5
  %2551 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2550, i32 0, i32 37
  %2552 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2551, i32 0, i32 3
  %2553 = load i64, ptr %10, align 8, !tbaa !46
  %2554 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2552, i64 noundef 0, i64 noundef %2553, ptr noundef %2554)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1396)
  %2555 = load ptr, ptr %6, align 8, !tbaa !5
  %2556 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2555, i32 0, i32 26
  %2557 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2556, i32 0, i32 5
  %2558 = load i64, ptr %10, align 8, !tbaa !46
  %2559 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl16tracerowautoprecEPKNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %2557, i64 noundef 0, i64 noundef 0, i64 noundef %2558, ptr noundef %2559)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1397)
  %2560 = load ptr, ptr %6, align 8, !tbaa !5
  %2561 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2560, i32 0, i32 37
  %2562 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2561, i32 0, i32 5
  %2563 = load i64, ptr %10, align 8, !tbaa !46
  %2564 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl16tracerowautoprecEPKNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %2562, i64 noundef 0, i64 noundef 0, i64 noundef %2563, ptr noundef %2564)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1398)
  %2565 = load ptr, ptr %6, align 8, !tbaa !5
  %2566 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2565, i32 0, i32 49
  %2567 = load i64, ptr %10, align 8, !tbaa !46
  %2568 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2566, i64 noundef 0, i64 noundef %2567, ptr noundef %2568)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1399)
  %2569 = load ptr, ptr %6, align 8, !tbaa !5
  %2570 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2569, i32 0, i32 50
  %2571 = load i64, ptr %10, align 8, !tbaa !46
  %2572 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2570, i64 noundef 0, i64 noundef %2571, ptr noundef %2572)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %2573

2573:                                             ; preds = %2540, %2537
  %2574 = load ptr, ptr %6, align 8, !tbaa !5
  %2575 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2574, i32 0, i32 29
  %2576 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2575, i32 0, i32 4
  %2577 = load ptr, ptr %2576, align 8, !tbaa !45
  %2578 = getelementptr inbounds double, ptr %2577, i64 0
  %2579 = load double, ptr %2578, align 8, !tbaa !49
  %2580 = load ptr, ptr %6, align 8, !tbaa !5
  %2581 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2580, i32 0, i32 26
  %2582 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2581, i32 0, i32 4
  %2583 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2582, i32 0, i32 4
  %2584 = load ptr, ptr %2583, align 8, !tbaa !45
  %2585 = getelementptr inbounds double, ptr %2584, i64 0
  %2586 = load double, ptr %2585, align 8, !tbaa !49
  %2587 = fmul double %2579, %2586
  %2588 = load ptr, ptr %6, align 8, !tbaa !5
  %2589 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2588, i32 0, i32 29
  %2590 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2589, i32 0, i32 4
  %2591 = load ptr, ptr %2590, align 8, !tbaa !45
  %2592 = getelementptr inbounds double, ptr %2591, i64 0
  %2593 = load double, ptr %2592, align 8, !tbaa !49
  %2594 = load ptr, ptr %6, align 8, !tbaa !5
  %2595 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2594, i32 0, i32 37
  %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 !45
  %2599 = getelementptr inbounds double, ptr %2598, i64 0
  %2600 = load double, ptr %2599, align 8, !tbaa !49
  %2601 = fmul double %2593, %2600
  %2602 = load ptr, ptr %6, align 8, !tbaa !5
  %2603 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2602, i32 0, i32 29
  %2604 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2603, i32 0, i32 4
  %2605 = load ptr, ptr %2604, align 8, !tbaa !45
  %2606 = getelementptr inbounds double, ptr %2605, i64 0
  %2607 = load double, ptr %2606, align 8, !tbaa !49
  %2608 = load ptr, ptr %6, align 8, !tbaa !5
  %2609 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2608, i32 0, i32 37
  %2610 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2609, i32 0, i32 4
  %2611 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2610, i32 0, i32 4
  %2612 = load ptr, ptr %2611, align 8, !tbaa !45
  %2613 = getelementptr inbounds double, ptr %2612, i64 0
  %2614 = load double, ptr %2613, align 8, !tbaa !49
  %2615 = load ptr, ptr %6, align 8, !tbaa !5
  %2616 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2615, i32 0, i32 26
  %2617 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2616, i32 0, i32 4
  %2618 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2617, i32 0, i32 4
  %2619 = load ptr, ptr %2618, align 8, !tbaa !45
  %2620 = getelementptr inbounds double, ptr %2619, i64 0
  %2621 = load double, ptr %2620, align 8, !tbaa !49
  %2622 = fsub double %2614, %2621
  %2623 = fmul double %2607, %2622
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1361, double noundef %2587, double noundef %2601, double noundef %2623)
  %2624 = load double, ptr %34, align 8, !tbaa !49
  %2625 = load double, ptr %36, align 8, !tbaa !49
  %2626 = load double, ptr %36, align 8, !tbaa !49
  %2627 = load double, ptr %34, align 8, !tbaa !49
  %2628 = fsub double %2626, %2627
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1400, double noundef %2624, double noundef %2625, double noundef %2628)
  %2629 = load ptr, ptr %6, align 8, !tbaa !5
  %2630 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2629, i32 0, i32 26
  %2631 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2630, i32 0, i32 4
  %2632 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2631, i32 0, i32 4
  %2633 = load ptr, ptr %2632, align 8, !tbaa !45
  %2634 = getelementptr inbounds double, ptr %2633, i64 0
  %2635 = load double, ptr %2634, align 8, !tbaa !49
  %2636 = load ptr, ptr %6, align 8, !tbaa !5
  %2637 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2636, i32 0, i32 37
  %2638 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2637, i32 0, i32 4
  %2639 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2638, i32 0, i32 4
  %2640 = load ptr, ptr %2639, align 8, !tbaa !45
  %2641 = getelementptr inbounds double, ptr %2640, i64 0
  %2642 = load double, ptr %2641, align 8, !tbaa !49
  %2643 = load ptr, ptr %6, align 8, !tbaa !5
  %2644 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2643, i32 0, i32 37
  %2645 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2644, i32 0, i32 4
  %2646 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2645, i32 0, i32 4
  %2647 = load ptr, ptr %2646, align 8, !tbaa !45
  %2648 = getelementptr inbounds double, ptr %2647, i64 0
  %2649 = load double, ptr %2648, align 8, !tbaa !49
  %2650 = load ptr, ptr %6, align 8, !tbaa !5
  %2651 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2650, i32 0, i32 26
  %2652 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2651, i32 0, i32 4
  %2653 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2652, i32 0, i32 4
  %2654 = load ptr, ptr %2653, align 8, !tbaa !45
  %2655 = getelementptr inbounds double, ptr %2654, i64 0
  %2656 = load double, ptr %2655, align 8, !tbaa !49
  %2657 = fsub double %2649, %2656
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1401, double noundef %2635, double noundef %2642, double noundef %2657)
  %2658 = load i64, ptr %10, align 8, !tbaa !46
  %2659 = load ptr, ptr %6, align 8, !tbaa !5
  %2660 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2659, i32 0, i32 49
  %2661 = load ptr, ptr %9, align 8, !tbaa !5
  %2662 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2658, ptr noundef %2660, ptr noundef %2661)
  %2663 = load i64, ptr %10, align 8, !tbaa !46
  %2664 = load ptr, ptr %6, align 8, !tbaa !5
  %2665 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2664, i32 0, i32 50
  %2666 = load ptr, ptr %9, align 8, !tbaa !5
  %2667 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2663, ptr noundef %2665, ptr noundef %2666)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1402, double noundef %2662, double noundef %2667)
  %2668 = load i64, ptr %10, align 8, !tbaa !46
  %2669 = load ptr, ptr %6, align 8, !tbaa !5
  %2670 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2669, i32 0, i32 49
  %2671 = load ptr, ptr %9, align 8, !tbaa !5
  %2672 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2668, ptr noundef %2670, ptr noundef %2671)
  %2673 = load ptr, ptr %9, align 8, !tbaa !5
  %2674 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2672, ptr noundef %2673)
  %2675 = load i64, ptr %10, align 8, !tbaa !46
  %2676 = load ptr, ptr %6, align 8, !tbaa !5
  %2677 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2676, i32 0, i32 50
  %2678 = load ptr, ptr %9, align 8, !tbaa !5
  %2679 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2675, ptr noundef %2677, ptr noundef %2678)
  %2680 = load ptr, ptr %9, align 8, !tbaa !5
  %2681 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2679, ptr noundef %2680)
  %2682 = load i64, ptr %10, align 8, !tbaa !46
  %2683 = load ptr, ptr %6, align 8, !tbaa !5
  %2684 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2683, i32 0, i32 50
  %2685 = load ptr, ptr %9, align 8, !tbaa !5
  %2686 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2682, ptr noundef %2684, ptr noundef %2685)
  %2687 = load ptr, ptr %9, align 8, !tbaa !5
  %2688 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2686, ptr noundef %2687)
  %2689 = load i64, ptr %10, align 8, !tbaa !46
  %2690 = load ptr, ptr %6, align 8, !tbaa !5
  %2691 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2690, i32 0, i32 49
  %2692 = load ptr, ptr %9, align 8, !tbaa !5
  %2693 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2689, ptr noundef %2691, ptr noundef %2692)
  %2694 = load ptr, ptr %9, align 8, !tbaa !5
  %2695 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2693, ptr noundef %2694)
  %2696 = fdiv double %2688, %2695
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1403, double noundef %2674, double noundef %2681, double noundef %2696)
  %2697 = load ptr, ptr %6, align 8, !tbaa !5
  %2698 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2697, i32 0, i32 32
  %2699 = load ptr, ptr %6, align 8, !tbaa !5
  %2700 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2699, i32 0, i32 51
  %2701 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl18hessiangetdiagonalEPNS_12xbfgshessianEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2698, ptr noundef %2700, ptr noundef %2701)
  %2702 = load ptr, ptr %6, align 8, !tbaa !5
  %2703 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2702, i32 0, i32 51
  %2704 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2703, i32 0, i32 4
  %2705 = load ptr, ptr %2704, align 8, !tbaa !45
  %2706 = getelementptr inbounds double, ptr %2705, i64 0
  %2707 = load double, ptr %2706, align 8, !tbaa !49
  store double %2707, ptr %18, align 8, !tbaa !49
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %2708

2708:                                             ; preds = %2724, %2573
  %2709 = load i64, ptr %16, align 8, !tbaa !46
  %2710 = load i64, ptr %10, align 8, !tbaa !46
  %2711 = sub nsw i64 %2710, 1
  %2712 = icmp sle i64 %2709, %2711
  br i1 %2712, label %2713, label %2727

2713:                                             ; preds = %2708
  %2714 = load double, ptr %18, align 8, !tbaa !49
  %2715 = load ptr, ptr %6, align 8, !tbaa !5
  %2716 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2715, i32 0, i32 51
  %2717 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2716, i32 0, i32 4
  %2718 = load ptr, ptr %2717, align 8, !tbaa !45
  %2719 = load i64, ptr %16, align 8, !tbaa !46
  %2720 = getelementptr inbounds double, ptr %2718, i64 %2719
  %2721 = load double, ptr %2720, align 8, !tbaa !49
  %2722 = load ptr, ptr %9, align 8, !tbaa !5
  %2723 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2714, double noundef %2721, ptr noundef %2722)
  store double %2723, ptr %18, align 8, !tbaa !49
  br label %2724

2724:                                             ; preds = %2713
  %2725 = load i64, ptr %16, align 8, !tbaa !46
  %2726 = add nsw i64 %2725, 1
  store i64 %2726, ptr %16, align 8, !tbaa !46
  br label %2708, !llvm.loop !91

2727:                                             ; preds = %2708
  %2728 = load double, ptr %18, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1156, double noundef %2728)
  %2729 = load ptr, ptr %6, align 8, !tbaa !5
  %2730 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2729, i32 0, i32 51
  %2731 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2730, i32 0, i32 4
  %2732 = load ptr, ptr %2731, align 8, !tbaa !45
  %2733 = getelementptr inbounds double, ptr %2732, i64 0
  %2734 = load double, ptr %2733, align 8, !tbaa !49
  store double %2734, ptr %18, align 8, !tbaa !49
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %2735

2735:                                             ; preds = %2751, %2727
  %2736 = load i64, ptr %16, align 8, !tbaa !46
  %2737 = load i64, ptr %10, align 8, !tbaa !46
  %2738 = sub nsw i64 %2737, 1
  %2739 = icmp sle i64 %2736, %2738
  br i1 %2739, label %2740, label %2754

2740:                                             ; preds = %2735
  %2741 = load double, ptr %18, align 8, !tbaa !49
  %2742 = load ptr, ptr %6, align 8, !tbaa !5
  %2743 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2742, i32 0, i32 51
  %2744 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2743, i32 0, i32 4
  %2745 = load ptr, ptr %2744, align 8, !tbaa !45
  %2746 = load i64, ptr %16, align 8, !tbaa !46
  %2747 = getelementptr inbounds double, ptr %2745, i64 %2746
  %2748 = load double, ptr %2747, align 8, !tbaa !49
  %2749 = load ptr, ptr %9, align 8, !tbaa !5
  %2750 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2741, double noundef %2748, ptr noundef %2749)
  store double %2750, ptr %18, align 8, !tbaa !49
  br label %2751

2751:                                             ; preds = %2740
  %2752 = load i64, ptr %16, align 8, !tbaa !46
  %2753 = add nsw i64 %2752, 1
  store i64 %2753, ptr %16, align 8, !tbaa !46
  br label %2735, !llvm.loop !92

2754:                                             ; preds = %2735
  %2755 = load double, ptr %18, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1157, double noundef %2755)
  br label %2756

2756:                                             ; preds = %2754, %2067
  %2757 = load i8, ptr %53, align 1, !tbaa !9, !range !47, !noundef !48
  %2758 = trunc i8 %2757 to i1
  br i1 %2758, label %2760, label %2759

2759:                                             ; preds = %2756
  br label %2826

2760:                                             ; preds = %2756
  %2761 = load ptr, ptr %6, align 8, !tbaa !5
  %2762 = load ptr, ptr %6, align 8, !tbaa !5
  %2763 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2762, i32 0, i32 37
  %2764 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL23nlcsqp_nonmonotonicsaveEPNS_11minsqpstateEPKNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %2761, ptr noundef %2763, ptr noundef %2764)
  %2765 = load ptr, ptr %6, align 8, !tbaa !5
  %2766 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2765, i32 0, i32 37
  %2767 = load ptr, ptr %6, align 8, !tbaa !5
  %2768 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2767, i32 0, i32 26
  %2769 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2766, ptr noundef %2768, ptr noundef %2769)
  store i8 0, ptr %57, align 1, !tbaa !9
  %2770 = load ptr, ptr %6, align 8, !tbaa !5
  %2771 = load ptr, ptr %6, align 8, !tbaa !5
  %2772 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2771, i32 0, i32 26
  %2773 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2772, i32 0, i32 3
  %2774 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2770, ptr noundef %2773, ptr noundef %2774)
  %2775 = load ptr, ptr %6, align 8, !tbaa !5
  %2776 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2775, i32 0, i32 26
  %2777 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2776, i32 0, i32 4
  %2778 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2777, i32 0, i32 4
  %2779 = load ptr, ptr %2778, align 8, !tbaa !45
  %2780 = getelementptr inbounds double, ptr %2779, i64 0
  %2781 = load double, ptr %2780, align 8, !tbaa !49
  %2782 = load ptr, ptr %6, align 8, !tbaa !5
  %2783 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2782, i32 0, i32 29
  %2784 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2783, i32 0, i32 4
  %2785 = load ptr, ptr %2784, align 8, !tbaa !45
  %2786 = getelementptr inbounds double, ptr %2785, i64 0
  %2787 = load double, ptr %2786, align 8, !tbaa !49
  %2788 = fmul double %2781, %2787
  %2789 = load ptr, ptr %6, align 8, !tbaa !5
  %2790 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2789, i32 0, i32 18
  store double %2788, ptr %2790, align 8, !tbaa !65
  %2791 = load ptr, ptr %6, align 8, !tbaa !5
  %2792 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2791, i32 0, i32 20
  store i8 1, ptr %2792, align 1, !tbaa !56
  %2793 = load ptr, ptr %6, align 8, !tbaa !5
  %2794 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2793, i32 0, i32 66
  %2795 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2794, i32 0, i32 0
  store i32 5, ptr %2795, align 8, !tbaa !11
  br label %3072

2796:                                             ; preds = %483
  %2797 = load ptr, ptr %6, align 8, !tbaa !5
  %2798 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2797, i32 0, i32 20
  store i8 0, ptr %2798, align 1, !tbaa !56
  %2799 = load ptr, ptr %6, align 8, !tbaa !5
  %2800 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2799, i32 0, i32 7
  %2801 = load ptr, ptr %6, align 8, !tbaa !5
  %2802 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2801, i32 0, i32 8
  %2803 = load i64, ptr %12, align 8, !tbaa !46
  %2804 = load i64, ptr %13, align 8, !tbaa !46
  %2805 = load ptr, ptr %6, align 8, !tbaa !5
  %2806 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2805, i32 0, i32 26
  %2807 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2806, i32 0, i32 3
  %2808 = load i64, ptr %10, align 8, !tbaa !46
  %2809 = load ptr, ptr %6, align 8, !tbaa !5
  %2810 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2809, i32 0, i32 59
  %2811 = load ptr, ptr %6, align 8, !tbaa !5
  %2812 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2811, i32 0, i32 60
  %2813 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl16checklcviolationEPKNS_9ae_matrixEPKNS_9ae_vectorEllS5_lPdPlPNS_8ae_stateE(ptr noundef %2800, ptr noundef %2802, i64 noundef %2803, i64 noundef %2804, ptr noundef %2807, i64 noundef %2808, ptr noundef %2810, ptr noundef %2812, ptr noundef %2813)
  %2814 = load ptr, ptr %6, align 8, !tbaa !5
  %2815 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2814, i32 0, i32 26
  %2816 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2815, i32 0, i32 4
  %2817 = load ptr, ptr %6, align 8, !tbaa !5
  %2818 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2817, i32 0, i32 29
  %2819 = load i64, ptr %14, align 8, !tbaa !46
  %2820 = load i64, ptr %15, align 8, !tbaa !46
  %2821 = load ptr, ptr %6, align 8, !tbaa !5
  %2822 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2821, i32 0, i32 61
  %2823 = load ptr, ptr %6, align 8, !tbaa !5
  %2824 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2823, i32 0, i32 62
  %2825 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl27unscaleandchecknlcviolationEPKNS_9ae_vectorES2_llPdPlPNS_8ae_stateE(ptr noundef %2816, ptr noundef %2818, i64 noundef %2819, i64 noundef %2820, ptr noundef %2822, ptr noundef %2824, ptr noundef %2825)
  br label %2826

2826:                                             ; preds = %2796, %2759
  %2827 = load i8, ptr %32, align 1, !tbaa !9, !range !47, !noundef !48
  %2828 = trunc i8 %2827 to i1
  br i1 %2828, label %2829, label %2839

2829:                                             ; preds = %2826
  %2830 = load ptr, ptr %6, align 8, !tbaa !5
  %2831 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2830, i32 0, i32 21
  %2832 = load double, ptr %2831, align 8, !tbaa !66
  %2833 = fmul double 2.000000e+00, %2832
  %2834 = load double, ptr @_ZN11alglib_implL17nlcsqp_maxmeritmuE, align 8, !tbaa !49
  %2835 = load ptr, ptr %9, align 8, !tbaa !5
  %2836 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2833, double noundef %2834, ptr noundef %2835)
  %2837 = load ptr, ptr %6, align 8, !tbaa !5
  %2838 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2837, i32 0, i32 21
  store double %2836, ptr %2838, align 8, !tbaa !66
  br label %2839

2839:                                             ; preds = %2829, %2826
  store i8 0, ptr %26, align 1, !tbaa !9
  %2840 = load ptr, ptr %6, align 8, !tbaa !5
  %2841 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2840, i32 0, i32 22
  %2842 = load double, ptr %2841, align 8, !tbaa !59
  store double %2842, ptr %24, align 8, !tbaa !49
  store double 0.000000e+00, ptr %21, align 8, !tbaa !49
  store i64 0, ptr %16, align 8, !tbaa !46
  br label %2843

2843:                                             ; preds = %2879, %2839
  %2844 = load i64, ptr %16, align 8, !tbaa !46
  %2845 = load i64, ptr %10, align 8, !tbaa !46
  %2846 = sub nsw i64 %2845, 1
  %2847 = icmp sle i64 %2844, %2846
  br i1 %2847, label %2848, label %2882

2848:                                             ; preds = %2843
  %2849 = load double, ptr %21, align 8, !tbaa !49
  %2850 = load ptr, ptr %6, align 8, !tbaa !5
  %2851 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2850, i32 0, i32 28
  %2852 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2851, i32 0, i32 4
  %2853 = load ptr, ptr %2852, align 8, !tbaa !45
  %2854 = load i64, ptr %16, align 8, !tbaa !46
  %2855 = getelementptr inbounds double, ptr %2853, i64 %2854
  %2856 = load double, ptr %2855, align 8, !tbaa !49
  %2857 = load ptr, ptr %6, align 8, !tbaa !5
  %2858 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2857, i32 0, i32 26
  %2859 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2858, i32 0, i32 3
  %2860 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2859, i32 0, i32 4
  %2861 = load ptr, ptr %2860, align 8, !tbaa !45
  %2862 = load i64, ptr %16, align 8, !tbaa !46
  %2863 = getelementptr inbounds double, ptr %2861, i64 %2862
  %2864 = load double, ptr %2863, align 8, !tbaa !49
  %2865 = fsub double %2856, %2864
  %2866 = load ptr, ptr %9, align 8, !tbaa !5
  %2867 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2865, ptr noundef %2866)
  %2868 = load ptr, ptr %6, align 8, !tbaa !5
  %2869 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2868, i32 0, i32 28
  %2870 = load i64, ptr %16, align 8, !tbaa !46
  %2871 = load ptr, ptr %6, align 8, !tbaa !5
  %2872 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2871, i32 0, i32 22
  %2873 = load double, ptr %2872, align 8, !tbaa !59
  %2874 = load ptr, ptr %9, align 8, !tbaa !5
  %2875 = call noundef double @_ZN11alglib_implL22nlcsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %2869, i64 noundef %2870, double noundef %2873, ptr noundef %2874)
  %2876 = fdiv double %2867, %2875
  %2877 = load ptr, ptr %9, align 8, !tbaa !5
  %2878 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2849, double noundef %2876, ptr noundef %2877)
  store double %2878, ptr %21, align 8, !tbaa !49
  br label %2879

2879:                                             ; preds = %2848
  %2880 = load i64, ptr %16, align 8, !tbaa !46
  %2881 = add nsw i64 %2880, 1
  store i64 %2881, ptr %16, align 8, !tbaa !46
  br label %2843, !llvm.loop !93

2882:                                             ; preds = %2843
  %2883 = load ptr, ptr %6, align 8, !tbaa !5
  %2884 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2883, i32 0, i32 24
  %2885 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %2884, ptr noundef %2885)
  %2886 = load double, ptr %21, align 8, !tbaa !49
  %2887 = load double, ptr @_ZN11alglib_implL23nlcsqp_sqpdeltadecreaseE, align 8, !tbaa !49
  %2888 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2886, double noundef %2887)
  br i1 %2888, label %2889, label %2902

2889:                                             ; preds = %2882
  %2890 = load ptr, ptr %6, align 8, !tbaa !5
  %2891 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2890, i32 0, i32 22
  %2892 = load double, ptr %2891, align 8, !tbaa !59
  %2893 = load double, ptr %21, align 8, !tbaa !49
  %2894 = load double, ptr @_ZN11alglib_implL23nlcsqp_sqpdeltadecreaseE, align 8, !tbaa !49
  %2895 = fdiv double %2893, %2894
  %2896 = load double, ptr @_ZN11alglib_implL23nlcsqp_maxtrustraddecayE, align 8, !tbaa !49
  %2897 = load ptr, ptr %9, align 8, !tbaa !5
  %2898 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2895, double noundef %2896, ptr noundef %2897)
  %2899 = fmul double %2892, %2898
  %2900 = load ptr, ptr %6, align 8, !tbaa !5
  %2901 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2900, i32 0, i32 22
  store double %2899, ptr %2901, align 8, !tbaa !59
  br label %2902

2902:                                             ; preds = %2889, %2882
  %2903 = load double, ptr %21, align 8, !tbaa !49
  %2904 = load double, ptr @_ZN11alglib_implL23nlcsqp_sqpdeltaincreaseE, align 8, !tbaa !49
  %2905 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2903, double noundef %2904)
  br i1 %2905, label %2906, label %2924

2906:                                             ; preds = %2902
  %2907 = load i8, ptr %54, align 1, !tbaa !9, !range !47, !noundef !48
  %2908 = trunc i8 %2907 to i1
  br i1 %2908, label %2909, label %2924

2909:                                             ; preds = %2906
  %2910 = load ptr, ptr %6, align 8, !tbaa !5
  %2911 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2910, i32 0, i32 22
  %2912 = load double, ptr %2911, align 8, !tbaa !59
  %2913 = load ptr, ptr %6, align 8, !tbaa !5
  %2914 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2913, i32 0, i32 23
  %2915 = load double, ptr %2914, align 8, !tbaa !60
  %2916 = fmul double %2912, %2915
  %2917 = load ptr, ptr %6, align 8, !tbaa !5
  %2918 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2917, i32 0, i32 22
  store double %2916, ptr %2918, align 8, !tbaa !59
  %2919 = load ptr, ptr %6, align 8, !tbaa !5
  %2920 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2919, i32 0, i32 23
  %2921 = load double, ptr @_ZN11alglib_implL21nlcsqp_momentumgrowthE, align 8, !tbaa !49
  %2922 = load double, ptr @_ZN11alglib_implL24nlcsqp_maxtrustradgrowthE, align 8, !tbaa !49
  %2923 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl24trustradincreasemomentumEPdddPNS_8ae_stateE(ptr noundef %2920, double noundef %2921, double noundef %2922, ptr noundef %2923)
  br label %2929

2924:                                             ; preds = %2906, %2902
  %2925 = load ptr, ptr %6, align 8, !tbaa !5
  %2926 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2925, i32 0, i32 23
  %2927 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !49
  %2928 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef %2926, double noundef %2927, ptr noundef %2928)
  br label %2929

2929:                                             ; preds = %2924, %2909
  %2930 = load ptr, ptr %6, align 8, !tbaa !5
  %2931 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2930, i32 0, i32 22
  %2932 = load double, ptr %2931, align 8, !tbaa !59
  %2933 = load double, ptr %24, align 8, !tbaa !49
  %2934 = fmul double 0x3FEFAE147AE147AE, %2933
  %2935 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2932, double noundef %2934)
  br i1 %2935, label %2943, label %2936

2936:                                             ; preds = %2929
  %2937 = load ptr, ptr %6, align 8, !tbaa !5
  %2938 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2937, i32 0, i32 22
  %2939 = load double, ptr %2938, align 8, !tbaa !59
  %2940 = load double, ptr %24, align 8, !tbaa !49
  %2941 = fmul double 1.010000e+00, %2940
  %2942 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2939, double noundef %2941)
  br i1 %2942, label %2943, label %2946

2943:                                             ; preds = %2936, %2929
  %2944 = load ptr, ptr %6, align 8, !tbaa !5
  %2945 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2944, i32 0, i32 24
  store i64 0, ptr %2945, align 8, !tbaa !58
  br label %2946

2946:                                             ; preds = %2943, %2936
  %2947 = load ptr, ptr %6, align 8, !tbaa !5
  %2948 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2947, i32 0, i32 24
  %2949 = load i64, ptr %2948, align 8, !tbaa !58
  %2950 = load i64, ptr @_ZN11alglib_implL30nlcsqp_trustradstagnationlimitE, align 8, !tbaa !46
  %2951 = icmp sge i64 %2949, %2950
  br i1 %2951, label %2952, label %2961

2952:                                             ; preds = %2946
  %2953 = load ptr, ptr %6, align 8, !tbaa !5
  %2954 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2953, i32 0, i32 22
  %2955 = load double, ptr %2954, align 8, !tbaa !59
  %2956 = fmul double 5.000000e-01, %2955
  %2957 = load ptr, ptr %6, align 8, !tbaa !5
  %2958 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2957, i32 0, i32 22
  store double %2956, ptr %2958, align 8, !tbaa !59
  %2959 = load ptr, ptr %6, align 8, !tbaa !5
  %2960 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2959, i32 0, i32 24
  store i64 0, ptr %2960, align 8, !tbaa !58
  store i8 1, ptr %26, align 1, !tbaa !9
  br label %2961

2961:                                             ; preds = %2952, %2946
  %2962 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %2963 = trunc i8 %2962 to i1
  br i1 %2963, label %2964, label %2997

2964:                                             ; preds = %2961
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1404)
  %2965 = load double, ptr %21, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1176, double noundef %2965)
  %2966 = load ptr, ptr %6, align 8, !tbaa !5
  %2967 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2966, i32 0, i32 22
  %2968 = load double, ptr %2967, align 8, !tbaa !59
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1177, double noundef %2968)
  %2969 = load i8, ptr %26, align 1, !tbaa !9, !range !47, !noundef !48
  %2970 = trunc i8 %2969 to i1
  br i1 %2970, label %2986, label %2971

2971:                                             ; preds = %2964
  %2972 = load ptr, ptr %6, align 8, !tbaa !5
  %2973 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2972, i32 0, i32 22
  %2974 = load double, ptr %2973, align 8, !tbaa !59
  %2975 = load double, ptr %24, align 8, !tbaa !49
  %2976 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2974, double noundef %2975)
  br i1 %2976, label %2977, label %2978

2977:                                             ; preds = %2971
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1178)
  br label %2978

2978:                                             ; preds = %2977, %2971
  %2979 = load ptr, ptr %6, align 8, !tbaa !5
  %2980 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2979, i32 0, i32 22
  %2981 = load double, ptr %2980, align 8, !tbaa !59
  %2982 = load double, ptr %24, align 8, !tbaa !49
  %2983 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2981, double noundef %2982)
  br i1 %2983, label %2984, label %2985

2984:                                             ; preds = %2978
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1179)
  br label %2985

2985:                                             ; preds = %2984, %2978
  br label %2989

2986:                                             ; preds = %2964
  %2987 = load i64, ptr @_ZN11alglib_implL30nlcsqp_trustradstagnationlimitE, align 8, !tbaa !46
  %2988 = trunc i64 %2987 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1405, i32 noundef %2988)
  br label %2989

2989:                                             ; preds = %2986, %2985
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  %2990 = load i8, ptr %32, align 1, !tbaa !9, !range !47, !noundef !48
  %2991 = trunc i8 %2990 to i1
  br i1 %2991, label %2992, label %2996

2992:                                             ; preds = %2989
  %2993 = load ptr, ptr %6, align 8, !tbaa !5
  %2994 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2993, i32 0, i32 21
  %2995 = load double, ptr %2994, align 8, !tbaa !66
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1406, double noundef %2995)
  br label %2996

2996:                                             ; preds = %2992, %2989
  br label %2997

2997:                                             ; preds = %2996, %2961
  %2998 = load ptr, ptr %6, align 8, !tbaa !5
  %2999 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %2998, i32 0, i32 55
  %3000 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %2999, ptr noundef %3000)
  %3001 = load i8, ptr %33, align 1, !tbaa !9, !range !47, !noundef !48
  %3002 = trunc i8 %3001 to i1
  %3003 = load ptr, ptr %6, align 8, !tbaa !5
  %3004 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3003, i32 0, i32 25
  %3005 = load i64, ptr %3004, align 8, !tbaa !57
  %3006 = add nsw i64 %3005, 1
  %3007 = load ptr, ptr %9, align 8, !tbaa !5
  %3008 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %3002, i64 noundef %3006, i64 noundef 0, ptr noundef %3007)
  %3009 = load ptr, ptr %6, align 8, !tbaa !5
  %3010 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3009, i32 0, i32 25
  store i64 %3008, ptr %3010, align 8, !tbaa !57
  br label %783

3011:                                             ; preds = %1953, %879, %862, %836, %820, %800
  %3012 = load i8, ptr %56, align 1, !tbaa !9, !range !47, !noundef !48
  %3013 = trunc i8 %3012 to i1
  br i1 %3013, label %3014, label %3025

3014:                                             ; preds = %3011
  %3015 = load i8, ptr %57, align 1, !tbaa !9, !range !47, !noundef !48
  %3016 = trunc i8 %3015 to i1
  %3017 = load ptr, ptr %6, align 8, !tbaa !5
  %3018 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3017, i32 0, i32 56
  %3019 = load i64, ptr %3018, align 8, !tbaa !64
  %3020 = add nsw i64 %3019, 800
  %3021 = load ptr, ptr %9, align 8, !tbaa !5
  %3022 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %3016, i64 noundef -8, i64 noundef %3020, ptr noundef %3021)
  %3023 = load ptr, ptr %6, align 8, !tbaa !5
  %3024 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3023, i32 0, i32 56
  store i64 %3022, ptr %3024, align 8, !tbaa !64
  br label %3025

3025:                                             ; preds = %3014, %3011
  %3026 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %3027 = trunc i8 %3026 to i1
  br i1 %3027, label %3028, label %3065

3028:                                             ; preds = %3025
  %3029 = load ptr, ptr %6, align 8, !tbaa !5
  %3030 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3029, i32 0, i32 63
  %3031 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %3030, ptr noundef %3031)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.774)
  %3032 = load i8, ptr %56, align 1, !tbaa !9, !range !47, !noundef !48
  %3033 = trunc i8 %3032 to i1
  br i1 %3033, label %3034, label %3038

3034:                                             ; preds = %3028
  %3035 = load i8, ptr %57, align 1, !tbaa !9, !range !47, !noundef !48
  %3036 = trunc i8 %3035 to i1
  br i1 %3036, label %3037, label %3038

3037:                                             ; preds = %3034
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1407)
  br label %3038

3038:                                             ; preds = %3037, %3034, %3028
  %3039 = load ptr, ptr %6, align 8, !tbaa !5
  %3040 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3039, i32 0, i32 26
  %3041 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3040, i32 0, i32 4
  %3042 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3041, i32 0, i32 4
  %3043 = load ptr, ptr %3042, align 8, !tbaa !45
  %3044 = getelementptr inbounds double, ptr %3043, i64 0
  %3045 = load double, ptr %3044, align 8, !tbaa !49
  %3046 = load ptr, ptr %6, align 8, !tbaa !5
  %3047 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3046, i32 0, i32 29
  %3048 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3047, i32 0, i32 4
  %3049 = load ptr, ptr %3048, align 8, !tbaa !45
  %3050 = getelementptr inbounds double, ptr %3049, i64 0
  %3051 = load double, ptr %3050, align 8, !tbaa !49
  %3052 = fmul double %3045, %3051
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.777, double noundef %3052)
  %3053 = load ptr, ptr %6, align 8, !tbaa !5
  %3054 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3053, i32 0, i32 63
  %3055 = load ptr, ptr %9, align 8, !tbaa !5
  %3056 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %3054, ptr noundef %3055)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.778, double noundef %3056)
  %3057 = load ptr, ptr %6, align 8, !tbaa !5
  %3058 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3057, i32 0, i32 65
  %3059 = load ptr, ptr %9, 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.1408, double noundef %3060)
  %3061 = load ptr, ptr %6, align 8, !tbaa !5
  %3062 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3061, i32 0, i32 64
  %3063 = load ptr, ptr %9, align 8, !tbaa !5
  %3064 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %3062, ptr noundef %3063)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1409, double noundef %3064)
  br label %3065

3065:                                             ; preds = %3038, %3025
  %3066 = load ptr, ptr %7, align 8, !tbaa !5
  %3067 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %3068 = trunc i8 %3067 to i1
  %3069 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %3066, i1 noundef zeroext %3068, ptr noundef %3069)
  store i8 0, ptr %59, align 1, !tbaa !9
  %3070 = load i8, ptr %59, align 1, !tbaa !9, !range !47, !noundef !48
  %3071 = trunc i8 %3070 to i1
  store i1 %3071, ptr %5, align 1
  store i32 1, ptr %60, align 4
  br label %3448

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

3448:                                             ; preds = %3072, %3065, %670
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  %3449 = load i1, ptr %5, align 1
  ret i1 %3449
}

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #1

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL29nlcsqp_nonmonotonicmultiplybyEPNS_11minsqpstateEldPNS_8ae_stateE(ptr noundef, i64 noundef, double noundef, ptr noundef) #1

declare void @_ZN11alglib_impl20tracerownrm1autoprecEPKNS_9ae_matrixEllllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL24nlcsqp_qpsubproblemsolveEPNS_11minsqpstateEPNS_15minsqpsubsolverEPKNS_9ae_vectorES6_PKNS_9ae_matrixEPNS_12xbfgshessianEddPS4_SC_SC_bPlPdSE_SE_SE_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef) #1

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL28nlcsqp_penaltiesneedincreaseEPNS_11minsqpstateEPKNS_11varsfuncjacEPKNS_9ae_vectorEddbPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, double noundef, i1 noundef zeroext, ptr noundef) #1

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

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

declare void @_ZN11alglib_impl16tracerowautoprecEPKNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) #3

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { "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 = { 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 #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, !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, !44, i64 62480}
!12 = !{!"_ZTSN11alglib_impl11minsqpstateE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !10, i64 40, !14, i64 48, !16, i64 112, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !17, i64 512, !13, i64 536, !14, i64 544, !14, i64 608, !16, i64 672, !18, i64 752, !10, i64 760, !10, i64 761, !18, i64 768, !18, i64 776, !18, i64 784, !13, i64 792, !13, i64 800, !19, i64 808, !14, i64 1408, !14, i64 1472, !14, i64 1536, !14, i64 1600, !21, i64 1664, !41, i64 55416, !42, i64 58776, !13, i64 58912, !14, i64 58920, !14, i64 58984, !19, i64 59048, !19, i64 59648, !19, i64 60248, !19, i64 60848, !14, i64 61448, !14, i64 61512, !14, i64 61576, !14, i64 61640, !14, i64 61704, !14, i64 61768, !14, i64 61832, !14, i64 61896, !14, i64 61960, !14, i64 62024, !14, i64 62088, !14, i64 62152, !14, i64 62216, !14, i64 62280, !13, i64 62344, !13, i64 62352, !18, i64 62360, !13, i64 62368, !18, i64 62376, !13, i64 62384, !18, i64 62392, !13, i64 62400, !39, i64 62408, !39, i64 62432, !39, i64 62456, !43, i64 62480}
!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 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !15, i64 40, !7, i64 72}
!17 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !18, i64 0, !18, i64 8, !13, i64 16}
!18 = !{!"double", !7, i64 0}
!19 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !13, i64 0, !13, i64 8, !10, i64 16, !14, i64 24, !14, i64 88, !16, i64 152, !20, i64 232}
!20 = !{!"_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}
!21 = !{!"_ZTSN11alglib_impl15minsqpsubsolverE", !22, i64 0, !36, i64 26648, !14, i64 50544, !14, i64 50608, !14, i64 50672, !14, i64 50736, !14, i64 50800, !20, i64 50864, !20, i64 51232, !14, i64 51600, !16, i64 51664, !14, i64 51744, !16, i64 51808, !20, i64 51888, !14, i64 52256, !14, i64 52320, !14, i64 52384, !14, i64 52448, !14, i64 52512, !14, i64 52576, !14, i64 52640, !14, i64 52704, !16, i64 52768, !14, i64 52848, !14, i64 52912, !16, i64 52976, !14, i64 53056, !13, i64 53120, !20, i64 53128, !14, i64 53496, !14, i64 53560, !14, i64 53624, !14, i64 53688}
!22 = !{!"_ZTSN11alglib_impl9vipmstateE", !10, i64 0, !10, i64 1, !13, i64 8, !13, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !10, i64 48, !14, i64 56, !14, i64 120, !14, i64 184, !18, i64 248, !14, i64 256, !16, i64 320, !20, i64 400, !14, i64 768, !13, i64 832, !10, i64 840, !14, i64 848, !14, i64 912, !14, i64 976, !14, i64 1040, !14, i64 1104, !14, i64 1168, !16, i64 1232, !16, i64 1312, !20, i64 1392, !20, i64 1760, !20, i64 2128, !14, i64 2496, !14, i64 2560, !14, i64 2624, !14, i64 2688, !14, i64 2752, !13, i64 2816, !13, i64 2824, !23, i64 2832, !23, i64 3488, !23, i64 4144, !23, i64 4800, !23, i64 5456, !14, i64 6112, !14, i64 6176, !14, i64 6240, !14, i64 6304, !14, i64 6368, !13, i64 6432, !13, i64 6440, !13, i64 6448, !13, i64 6456, !13, i64 6464, !13, i64 6472, !10, i64 6480, !10, i64 6481, !13, i64 6488, !10, i64 6496, !10, i64 6497, !14, i64 6504, !14, i64 6568, !14, i64 6632, !14, i64 6696, !14, i64 6760, !14, i64 6824, !14, i64 6888, !14, i64 6952, !14, i64 7016, !14, i64 7080, !14, i64 7144, !14, i64 7208, !14, i64 7272, !14, i64 7336, !14, i64 7400, !16, i64 7464, !14, i64 7544, !14, i64 7608, !14, i64 7672, !14, i64 7736, !14, i64 7800, !24, i64 7864, !35, i64 23944, !14, i64 24584, !14, i64 24648, !14, i64 24712, !14, i64 24776, !14, i64 24840, !14, i64 24904, !14, i64 24968, !14, i64 25032, !23, i64 25096, !14, i64 25752, !14, i64 25816, !14, i64 25880, !14, i64 25944, !14, i64 26008, !16, i64 26072, !14, i64 26152, !14, i64 26216, !20, i64 26280}
!23 = !{!"_ZTSN11alglib_impl8vipmvarsE", !13, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !14, i64 336, !14, i64 400, !14, i64 464, !14, i64 528, !14, i64 592}
!24 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !20, i64 0, !14, i64 368, !14, i64 432, !14, i64 496, !14, i64 560, !13, i64 624, !25, i64 632, !14, i64 15696, !14, i64 15760, !14, i64 15824, !14, i64 15888, !14, i64 15952, !14, i64 16016}
!25 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !13, i64 0, !13, i64 8, !13, i64 16, !10, i64 24, !13, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !14, i64 72, !10, i64 136, !10, i64 137, !10, i64 138, !10, i64 139, !10, i64 140, !14, i64 144, !13, i64 208, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408, !14, i64 472, !14, i64 536, !10, i64 600, !14, i64 608, !14, i64 672, !14, i64 736, !14, i64 800, !14, i64 864, !14, i64 928, !10, i64 992, !10, i64 993, !26, i64 1000, !14, i64 1512, !14, i64 1576, !14, i64 1640, !14, i64 1704, !14, i64 1768, !14, i64 1832, !27, i64 1896, !27, i64 2040, !27, i64 2184, !27, i64 2328, !27, i64 2472, !27, i64 2616, !14, i64 2760, !14, i64 2824, !14, i64 2888, !14, i64 2952, !14, i64 3016, !29, i64 3080, !34, i64 7464, !14, i64 13816, !14, i64 13880, !14, i64 13944, !14, i64 14008, !14, i64 14072, !14, i64 14136, !20, i64 14200, !20, i64 14568, !14, i64 14936, !14, i64 15000}
!26 = !{!"_ZTSN11alglib_impl9spcholadjE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448}
!27 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !15, i64 32, !28, i64 64, !15, i64 112}
!28 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !15, i64 8, !10, i64 40}
!29 = !{!"_ZTSN11alglib_impl9amdbufferE", !13, i64 0, !10, i64 8, !10, i64 9, !14, i64 16, !14, i64 80, !14, i64 144, !30, i64 208, !30, i64 568, !30, i64 928, !31, i64 1288, !32, i64 1496, !33, i64 1968, !14, i64 2120, !14, i64 2184, !14, i64 2248, !33, i64 2312, !33, i64 2464, !33, i64 2616, !33, i64 2768, !33, i64 2920, !33, i64 3072, !14, i64 3224, !13, i64 3288, !33, i64 3296, !33, i64 3448, !30, i64 3600, !33, i64 3960, !14, i64 4112, !14, i64 4176, !14, i64 4240, !16, i64 4304}
!30 = !{!"_ZTSN11alglib_impl8amdknsetE", !13, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !13, i64 336, !13, i64 344, !13, i64 352}
!31 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !13, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !13, i64 200}
!32 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !13, i64 0, !10, 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}
!33 = !{!"_ZTSN11alglib_impl5nisetE", !13, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !13, i64 144}
!34 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !14, i64 0, !14, i64 64, !29, i64 128, !20, i64 4512, !20, i64 4880, !20, i64 5248, !20, i64 5616, !20, i64 5984}
!35 = !{!"_ZTSN11alglib_impl17vipmrighthandsideE", !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}
!36 = !{!"_ZTSN11alglib_impl9ipm2stateE", !13, i64 0, !13, i64 8, !13, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !13, i64 48, !10, i64 56, !14, i64 64, !14, i64 128, !14, i64 192, !18, i64 256, !14, i64 264, !20, i64 328, !14, i64 696, !10, i64 760, !18, i64 768, !14, i64 776, !14, i64 840, !14, i64 904, !14, i64 968, !14, i64 1032, !14, i64 1096, !14, i64 1160, !14, i64 1224, !14, i64 1288, !14, i64 1352, !14, i64 1416, !14, i64 1480, !14, i64 1544, !14, i64 1608, !14, i64 1672, !20, i64 1736, !14, i64 2104, !13, i64 2168, !37, i64 2176, !37, i64 2576, !37, i64 2976, !37, i64 3376, !14, i64 3776, !14, i64 3840, !14, i64 3904, !14, i64 3968, !13, i64 4032, !13, i64 4040, !14, i64 4048, !14, i64 4112, !14, i64 4176, !38, i64 4240, !13, i64 4624, !13, i64 4632, !10, i64 4640, !10, i64 4641, !10, i64 4642, !39, i64 4648, !39, i64 4672, !39, i64 4696, !39, i64 4720, !39, i64 4744, !40, i64 4768, !38, i64 21736, !14, i64 22120, !14, i64 22184, !14, i64 22248, !14, i64 22312, !14, i64 22376, !16, i64 22440, !20, i64 22520, !14, i64 22888, !14, i64 22952, !20, i64 23016, !20, i64 23384, !16, i64 23752, !14, i64 23832}
!37 = !{!"_ZTSN11alglib_impl8ipm2varsE", !13, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !14, i64 336}
!38 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320}
!39 = !{!"_ZTSN11alglib_impl6stimerE", !13, i64 0, !13, i64 8, !10, i64 16}
!40 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !20, i64 0, !14, i64 368, !25, i64 432, !14, i64 15496, !14, i64 15560, !14, i64 15624, !14, i64 15688, !14, i64 15752, !14, i64 15816, !14, i64 15880, !14, i64 15944, !14, i64 16008, !14, i64 16072, !14, i64 16136, !14, i64 16200, !14, i64 16264, !14, i64 16328, !14, i64 16392, !14, i64 16456, !14, i64 16520, !14, i64 16584, !14, i64 16648, !14, i64 16712, !14, i64 16776, !14, i64 16840, !14, i64 16904}
!41 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !13, i64 0, !14, i64 8, !14, i64 72, !13, i64 136, !13, i64 144, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !18, i64 200, !13, i64 208, !18, i64 216, !18, i64 224, !16, i64 232, !13, i64 312, !18, i64 320, !18, i64 328, !18, i64 336, !13, i64 344, !18, i64 352, !16, i64 360, !16, i64 440, !16, i64 520, !16, i64 600, !10, i64 680, !13, i64 688, !16, i64 696, !16, i64 776, !10, i64 856, !14, i64 864, !10, i64 928, !13, i64 936, !16, i64 944, !14, i64 1024, !14, i64 1088, !16, i64 1152, !14, i64 1232, !14, i64 1296, !10, i64 1360, !14, i64 1368, !18, i64 1432, !18, i64 1440, !13, i64 1448, !16, i64 1456, !14, i64 1536, !14, i64 1600, !14, i64 1664, !14, i64 1728, !14, i64 1792, !14, i64 1856, !16, i64 1920, !16, i64 2000, !16, i64 2080, !16, i64 2160, !16, i64 2240, !16, i64 2320, !16, i64 2400, !16, i64 2480, !14, i64 2560, !14, i64 2624, !16, i64 2688, !14, i64 2768, !16, i64 2832, !16, i64 2912, !16, i64 2992, !16, i64 3072, !16, i64 3152, !14, i64 3232, !14, i64 3296}
!42 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !13, i64 0, !13, i64 8, !10, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !28, i64 56, !15, i64 104}
!43 = !{!"_ZTSN11alglib_impl10rcommstateE", !44, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!44 = !{!"int", !7, i64 0}
!45 = !{!7, !7, i64 0}
!46 = !{!13, !13, i64 0}
!47 = !{i8 0, i8 2}
!48 = !{}
!49 = !{!18, !18, i64 0}
!50 = !{!12, !13, i64 0}
!51 = !{!12, !13, i64 8}
!52 = !{!12, !13, i64 16}
!53 = !{!12, !13, i64 24}
!54 = !{!12, !13, i64 32}
!55 = !{!12, !10, i64 760}
!56 = !{!12, !10, i64 761}
!57 = !{!12, !13, i64 800}
!58 = !{!12, !13, i64 792}
!59 = !{!12, !18, i64 776}
!60 = !{!12, !18, i64 784}
!61 = distinct !{!61, !62}
!62 = !{!"llvm.loop.mustprogress"}
!63 = !{!12, !13, i64 58912}
!64 = !{!12, !13, i64 62352}
!65 = !{!12, !18, i64 752}
!66 = !{!12, !18, i64 768}
!67 = !{!12, !10, i64 40}
!68 = !{!12, !13, i64 536}
!69 = !{!12, !13, i64 62344}
!70 = distinct !{!70, !62}
!71 = distinct !{!71, !62}
!72 = distinct !{!72, !62}
!73 = distinct !{!73, !62}
!74 = distinct !{!74, !62}
!75 = !{!12, !18, i64 62376}
!76 = distinct !{!76, !62}
!77 = distinct !{!77, !62}
!78 = distinct !{!78, !62}
!79 = distinct !{!79, !62}
!80 = distinct !{!80, !62}
!81 = distinct !{!81, !62}
!82 = distinct !{!82, !62}
!83 = distinct !{!83, !62}
!84 = !{!85, !18, i64 864}
!85 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !13, i64 0, !13, i64 8, !10, i64 16, !14, i64 24, !14, i64 88, !13, i64 152, !14, i64 160, !14, i64 224, !14, i64 288, !16, i64 352, !14, i64 432, !14, i64 496, !13, i64 560, !13, i64 568, !13, i64 576, !18, i64 584, !13, i64 592, !14, i64 600, !14, i64 664, !18, i64 728, !14, i64 736, !14, i64 800, !18, i64 864, !16, i64 872, !16, i64 952, !16, i64 1032, !14, i64 1112, !14, i64 1176, !43, i64 1240, !10, i64 1504, !10, i64 1505, !13, i64 1512, !13, i64 1520, !18, i64 1528, !18, i64 1536, !10, i64 1544, !86, i64 1552, !18, i64 1848, !18, i64 1856, !87, i64 1864, !87, i64 2184, !18, i64 2504, !18, i64 2512, !88, i64 2520, !88, i64 2840, !18, i64 3160, !18, i64 3168, !89, i64 3176, !89, i64 3504, !10, i64 3832, !14, i64 3840, !14, i64 3904, !16, i64 3968, !43, i64 4048, !14, i64 4312, !14, i64 4376, !14, i64 4440, !14, i64 4504, !14, i64 4568, !14, i64 4632, !14, i64 4696, !14, i64 4760, !16, i64 4824, !16, i64 4904, !14, i64 4984, !14, i64 5048, !14, i64 5112, !14, i64 5176, !14, i64 5240, !14, i64 5304, !14, i64 5368, !14, i64 5432, !14, i64 5496, !14, i64 5560, !16, i64 5624}
!86 = !{!"_ZTSN11alglib_impl14optguardreportE", !10, i64 0, !10, i64 1, !13, i64 8, !18, i64 16, !10, i64 24, !10, i64 25, !10, i64 26, !13, i64 32, !18, i64 40, !10, i64 48, !13, i64 56, !13, i64 64, !14, i64 72, !16, i64 136, !16, i64 216}
!87 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !10, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !13, i64 144, !14, i64 152, !14, i64 216, !13, i64 280, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312}
!88 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !10, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !13, i64 144, !14, i64 152, !14, i64 216, !13, i64 280, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312}
!89 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !10, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !13, i64 152, !14, i64 160, !14, i64 224, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312, !13, i64 320}
!90 = distinct !{!90, !62}
!91 = distinct !{!91, !62}
!92 = distinct !{!92, !62}
!93 = distinct !{!93, !62}


; 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.205 = external hidden unnamed_addr constant [66 x i8], align 1
@.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
@.str.733 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [103 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
@.str.1113 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1114 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1115 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1117 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1123 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.1124 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.1125 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.1126 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.1127 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.1128 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1129 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1130 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1131 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1132 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1133 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1134 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1135 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.1136 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1137 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1141 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.1145 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.1154 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1156 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1157 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1161 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1162 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1169 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1170 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1171 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1176 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.1177 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1178 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1179 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1253 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1258 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1259 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1260 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1361 = external hidden unnamed_addr constant [49 x i8], align 1
@_ZN11alglib_implL23nlcsqp_sqpdeltadecreaseE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL23nlcsqp_sqpdeltaincreaseE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL19nlcsqp_inittrustradE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL24nlcsqp_deftrustradgrowthE = external hidden local_unnamed_addr global double, align 8
@.str.1378 = external hidden unnamed_addr constant [102 x i8], align 1
@_ZN11alglib_implL18nlcsqp_xbfgsmemlenE = external hidden local_unnamed_addr global i64, align 8
@_ZN11alglib_implL19nlcsqp_xbfgsmaxhessE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL23nlcsqp_fstagnationlimitE = external hidden local_unnamed_addr global i64, align 8
@_ZN11alglib_implL18nlcsqp_sqpbigscaleE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL20nlcsqp_sqpmaxrescaleE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL20nlcsqp_sqpsmallscaleE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL20nlcsqp_sqpminrescaleE = external hidden local_unnamed_addr global double, align 8
@.str.1379 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1380 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.1381 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1382 = external hidden unnamed_addr constant [98 x i8], align 1
@_ZN11alglib_implL23nlcsqp_maxtrustraddecayE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE = external hidden local_unnamed_addr global double, align 8
@.str.1383 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.1384 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.1385 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZN11alglib_implL21nlcsqp_stagnationepsfE = external hidden local_unnamed_addr global double, align 8
@.str.1386 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1387 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.1388 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.1389 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1390 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1391 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1392 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1393 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1394 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1395 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1396 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1397 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1398 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1399 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.1400 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1401 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1402 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1403 = external hidden unnamed_addr constant [48 x i8], align 1
@_ZN11alglib_implL17nlcsqp_maxmeritmuE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL21nlcsqp_momentumgrowthE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL24nlcsqp_maxtrustradgrowthE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL30nlcsqp_trustradstagnationlimitE = external hidden local_unnamed_addr global i64, align 8
@.str.1404 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1405 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.1406 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1407 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.1408 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1409 = 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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl26enforceboundaryconstraintsEPNS_9ae_vectorEPKS0_S3_S3_S3_llPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

declare void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

declare noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, i1 noundef zeroext, ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl15hessianinitbfgsEPNS_12xbfgshessianElldPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, double noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, double noundef, double noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

declare void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

declare void @_ZN11alglib_impl11rcopyallocmEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl15minsqpiterationEPNS_11minsqpstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i1 noundef zeroext %2, ptr noundef %3) local_unnamed_addr #1 {
  %5 = alloca i64, 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
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %13 = getelementptr inbounds i8, ptr %0, i64 62480
  %14 = load i32, ptr %13, align 8, !tbaa !5
  %15 = icmp sgt i32 %14, -1
  br i1 %15, label %16, label %116

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

116:                                              ; preds = %4, %16
  %.sink1646 = phi i64 [ %33, %16 ], [ -788, %4 ]
  %.sink1645 = phi double [ %95, %16 ], [ 8.800000e+01, %4 ]
  %.sink1644 = phi double [ %97, %16 ], [ -8.610000e+02, %4 ]
  %.sink1643 = phi double [ %101, %16 ], [ -7.310000e+02, %4 ]
  %.sink1642 = phi double [ %107, %16 ], [ -9.360000e+02, %4 ]
  %.sink1641 = phi double [ %109, %16 ], [ -2.790000e+02, %4 ]
  %117 = phi double [ %113, %16 ], [ -8.120000e+02, %4 ]
  %118 = phi double [ %115, %16 ], [ 4.270000e+02, %4 ]
  %.01336 = phi i64 [ %19, %16 ], [ 359, %4 ]
  %.01334 = phi i64 [ %21, %16 ], [ -58, %4 ]
  %.01332 = phi i64 [ %23, %16 ], [ -919, %4 ]
  %.01330 = phi i64 [ %25, %16 ], [ -909, %4 ]
  %.01328 = phi i64 [ %27, %16 ], [ 81, %4 ]
  %.01326 = phi i64 [ %29, %16 ], [ 255, %4 ]
  %.01308 = phi i64 [ %31, %16 ], [ 74, %4 ]
  %.01296 = phi double [ %71, %16 ], [ 3.460000e+02, %4 ]
  %.01284 = phi double [ %73, %16 ], [ -7.220000e+02, %4 ]
  %.01273 = phi double [ %75, %16 ], [ -4.130000e+02, %4 ]
  %.01269 = phi double [ %77, %16 ], [ -4.610000e+02, %4 ]
  %.01263 = phi double [ %79, %16 ], [ 9.270000e+02, %4 ]
  %.01257 = phi double [ %81, %16 ], [ 2.010000e+02, %4 ]
  %.01254 = phi double [ %83, %16 ], [ 9.220000e+02, %4 ]
  %.01253 = phi i64 [ %35, %16 ], [ 809, %4 ]
  %.01249 = phi i8 [ %40, %16 ], [ 0, %4 ]
  %.01240 = phi double [ %85, %16 ], [ -1.540000e+02, %4 ]
  %.01238 = phi i8 [ %42, %16 ], [ 1, %4 ]
  %.01236 = phi i8 [ %44, %16 ], [ 0, %4 ]
  %.01234 = phi i8 [ %46, %16 ], [ 1, %4 ]
  %.01232 = phi i8 [ %48, %16 ], [ 1, %4 ]
  %.01223 = phi i8 [ %50, %16 ], [ 0, %4 ]
  %.01215 = phi i8 [ %52, %16 ], [ 0, %4 ]
  %.01213 = phi double [ %87, %16 ], [ 3.060000e+02, %4 ]
  %.01211 = phi double [ %89, %16 ], [ -1.011000e+03, %4 ]
  %.01200 = phi double [ %91, %16 ], [ 9.510000e+02, %4 ]
  %.01199 = phi double [ %93, %16 ], [ -4.630000e+02, %4 ]
  %.01198 = phi double [ %99, %16 ], [ -6.780000e+02, %4 ]
  %.01196 = phi i8 [ %54, %16 ], [ 0, %4 ]
  %.01187 = phi i64 [ %37, %16 ], [ 205, %4 ]
  %.01177 = phi double [ %103, %16 ], [ -6.750000e+02, %4 ]
  %.01144 = phi double [ %111, %16 ], [ 9.400000e+01, %4 ]
  %.01135 = phi i8 [ %56, %16 ], [ 0, %4 ]
  %.01125 = phi i8 [ %58, %16 ], [ 0, %4 ]
  %.01114 = phi i8 [ %60, %16 ], [ 1, %4 ]
  %.01111 = phi i8 [ %62, %16 ], [ 0, %4 ]
  %.01107 = phi i8 [ %64, %16 ], [ 1, %4 ]
  %.01103 = phi i8 [ %66, %16 ], [ 1, %4 ]
  %.0 = phi i8 [ %68, %16 ], [ 0, %4 ]
  %119 = phi <2 x double> [ %105, %16 ], [ <double -7.630000e+02, double -2.330000e+02>, %4 ]
  store i64 %.sink1646, ptr %5, align 8
  store double %.sink1645, ptr %6, align 8
  store double %.sink1644, ptr %7, align 8
  store double %.sink1643, ptr %8, align 8
  store double %.sink1642, ptr %9, align 8
  store double %.sink1641, ptr %10, align 8
  store double %117, ptr %11, align 8
  store double %118, ptr %12, align 8, !tbaa !48
  switch i32 %14, label %120 [
    i32 0, label %193
    i32 1, label %214
    i32 2, label %472
    i32 3, label %646
    i32 4, label %968
    i32 5, label %1093
  ]

120:                                              ; preds = %116
  %121 = load i64, ptr %0, align 8, !tbaa !49
  %122 = getelementptr inbounds i8, ptr %0, i64 8
  %123 = load i64, ptr %122, align 8, !tbaa !50
  %124 = getelementptr inbounds i8, ptr %0, i64 16
  %125 = load i64, ptr %124, align 8, !tbaa !51
  %126 = getelementptr inbounds i8, ptr %0, i64 24
  %127 = load i64, ptr %126, align 8, !tbaa !52
  %128 = getelementptr inbounds i8, ptr %0, i64 32
  %129 = load i64, ptr %128, align 8, !tbaa !53
  %130 = add nsw i64 %127, %123
  %131 = shl nsw i64 %130, 1
  %132 = add i64 %125, %121
  %133 = add i64 %132, %129
  %134 = add i64 %133, %131
  %135 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1114)
  br i1 %135, label %136, label %.thread

136:                                              ; preds = %120
  %137 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1113)
  br i1 %137, label %.thread, label %138

138:                                              ; preds = %136
  %139 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1115)
  %140 = zext i1 %139 to i8
  %141 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1116)
  %142 = zext i1 %141 to i8
  %143 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1117)
  %144 = zext i1 %143 to i8
  br label %.thread

.thread:                                          ; preds = %120, %136, %138
  %145 = phi i8 [ %142, %138 ], [ 0, %136 ], [ 0, %120 ]
  %146 = phi i8 [ 1, %138 ], [ 0, %136 ], [ 0, %120 ]
  %147 = phi i1 [ true, %138 ], [ false, %136 ], [ false, %120 ]
  %148 = phi i8 [ %140, %138 ], [ 0, %136 ], [ 0, %120 ]
  %149 = phi i8 [ %144, %138 ], [ 0, %136 ], [ 0, %120 ]
  %150 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 0, ptr %150, align 8, !tbaa !54
  %151 = getelementptr inbounds i8, ptr %0, i64 761
  store i8 0, ptr %151, align 1, !tbaa !55
  %152 = getelementptr inbounds i8, ptr %0, i64 62408
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %152, ptr noundef %3)
  %153 = getelementptr inbounds i8, ptr %0, i64 62432
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %153, ptr noundef %3)
  %154 = getelementptr inbounds i8, ptr %0, i64 62456
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %154, ptr noundef %3)
  tail call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %152, ptr noundef %3)
  %155 = getelementptr inbounds i8, ptr %0, i64 792
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %155, i8 0, i64 16, i1 false)
  %156 = load double, ptr @_ZN11alglib_implL19nlcsqp_inittrustradE, align 8, !tbaa !48
  %157 = getelementptr inbounds i8, ptr %0, i64 776
  store double %156, ptr %157, align 8, !tbaa !56
  %158 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !48
  %159 = getelementptr inbounds i8, ptr %0, i64 784
  store double %158, ptr %159, align 8, !tbaa !57
  %160 = add i64 %129, %127
  %.not1573 = icmp slt i64 %160, 0
  br i1 %.not1573, label %.thread.._crit_edge1576_crit_edge, label %.lr.ph1575

.thread.._crit_edge1576_crit_edge:                ; preds = %.thread
  %.pre1650 = add nsw i64 %160, 1
  br label %._crit_edge1576

.lr.ph1575:                                       ; preds = %.thread
  %161 = getelementptr inbounds i8, ptr %0, i64 1592
  %162 = getelementptr inbounds i8, ptr %0, i64 1656
  %163 = add nuw i64 %160, 1
  %164 = add i64 %129, %127
  %165 = icmp eq i64 %160, 0
  br i1 %165, label %._crit_edge1576.loopexit.unr-lcssa, label %.lr.ph1575.new

.lr.ph1575.new:                                   ; preds = %.lr.ph1575
  %166 = add i64 %164, 1
  %unroll_iter1802 = and i64 %166, -2
  br label %167

167:                                              ; preds = %167, %.lr.ph1575.new
  %.113091574 = phi i64 [ 0, %.lr.ph1575.new ], [ %177, %167 ]
  %niter1803 = phi i64 [ 0, %.lr.ph1575.new ], [ %niter1803.next.1, %167 ]
  %168 = load ptr, ptr %161, align 8, !tbaa !43
  %169 = getelementptr inbounds double, ptr %168, i64 %.113091574
  store double 1.000000e+00, ptr %169, align 8, !tbaa !48
  %170 = load ptr, ptr %162, align 8, !tbaa !43
  %171 = getelementptr inbounds double, ptr %170, i64 %.113091574
  store double 0.000000e+00, ptr %171, align 8, !tbaa !48
  %172 = or disjoint i64 %.113091574, 1
  %173 = load ptr, ptr %161, align 8, !tbaa !43
  %174 = getelementptr inbounds double, ptr %173, i64 %172
  store double 1.000000e+00, ptr %174, align 8, !tbaa !48
  %175 = load ptr, ptr %162, align 8, !tbaa !43
  %176 = getelementptr inbounds double, ptr %175, i64 %172
  store double 0.000000e+00, ptr %176, align 8, !tbaa !48
  %177 = add nuw i64 %.113091574, 2
  %niter1803.next.1 = add i64 %niter1803, 2
  %niter1803.ncmp.1 = icmp eq i64 %niter1803.next.1, %unroll_iter1802
  br i1 %niter1803.ncmp.1, label %._crit_edge1576.loopexit.unr-lcssa, label %167, !llvm.loop !58

._crit_edge1576.loopexit.unr-lcssa:               ; preds = %167, %.lr.ph1575
  %.113091574.unr = phi i64 [ 0, %.lr.ph1575 ], [ %177, %167 ]
  %178 = and i64 %164, 1
  %lcmp.mod1801.not.not = icmp eq i64 %178, 0
  br i1 %lcmp.mod1801.not.not, label %._crit_edge1576.loopexit.epilog-lcssa, label %._crit_edge1576

._crit_edge1576.loopexit.epilog-lcssa:            ; preds = %._crit_edge1576.loopexit.unr-lcssa
  %179 = load ptr, ptr %161, align 8, !tbaa !43
  %180 = getelementptr inbounds double, ptr %179, i64 %.113091574.unr
  store double 1.000000e+00, ptr %180, align 8, !tbaa !48
  %181 = load ptr, ptr %162, align 8, !tbaa !43
  %182 = getelementptr inbounds double, ptr %181, i64 %.113091574.unr
  store double 0.000000e+00, ptr %182, align 8, !tbaa !48
  br label %._crit_edge1576

._crit_edge1576:                                  ; preds = %._crit_edge1576.loopexit.epilog-lcssa, %._crit_edge1576.loopexit.unr-lcssa, %.thread.._crit_edge1576_crit_edge
  %.pre-phi = phi i64 [ %.pre1650, %.thread.._crit_edge1576_crit_edge ], [ %163, %._crit_edge1576.loopexit.unr-lcssa ], [ %163, %._crit_edge1576.loopexit.epilog-lcssa ]
  %.11309.lcssa = phi i64 [ 0, %.thread.._crit_edge1576_crit_edge ], [ %163, %._crit_edge1576.loopexit.unr-lcssa ], [ %163, %._crit_edge1576.loopexit.epilog-lcssa ]
  %183 = getelementptr inbounds i8, ptr %0, i64 58776
  tail call void @_ZN11alglib_impl18ae_obj_array_clearEPNS_12ae_obj_arrayE(ptr noundef nonnull %183)
  %184 = getelementptr inbounds i8, ptr %0, i64 58912
  store i64 0, ptr %184, align 8, !tbaa !60
  %185 = getelementptr inbounds i8, ptr %0, i64 808
  tail call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %121, i64 noundef %.pre-phi, ptr noundef nonnull %185, ptr noundef %3)
  %186 = getelementptr inbounds i8, ptr %0, i64 59048
  tail call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %121, i64 noundef %.pre-phi, ptr noundef nonnull %186, ptr noundef %3)
  %187 = getelementptr inbounds i8, ptr %0, i64 59648
  tail call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %121, i64 noundef %.pre-phi, ptr noundef nonnull %187, ptr noundef %3)
  %188 = getelementptr inbounds i8, ptr %0, i64 60248
  tail call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %121, i64 noundef %.pre-phi, ptr noundef nonnull %188, ptr noundef %3)
  %189 = getelementptr inbounds i8, ptr %0, i64 60848
  tail call void @_ZN11alglib_impl13vfjallocdenseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %121, i64 noundef %.pre-phi, ptr noundef nonnull %189, ptr noundef %3)
  %190 = getelementptr inbounds i8, ptr %0, i64 1408
  %191 = getelementptr inbounds i8, ptr %0, i64 832
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %121, ptr noundef nonnull %190, ptr noundef nonnull %191, ptr noundef %3)
  tail call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %191, ptr noundef %3)
  store i8 1, ptr %150, align 8, !tbaa !54
  br i1 %147, label %192, label %1229

192:                                              ; preds = %._crit_edge1576
  tail call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %154, ptr noundef %3)
  br label %1229

193:                                              ; preds = %116
  %194 = trunc nuw i8 %.01238 to i1
  br i1 %194, label %195, label %197

195:                                              ; preds = %193
  %196 = getelementptr inbounds i8, ptr %0, i64 62456
  tail call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %196, ptr noundef %3)
  br label %197

197:                                              ; preds = %195, %193
  %198 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 0, ptr %198, align 8, !tbaa !54
  %199 = getelementptr inbounds i8, ptr %0, i64 808
  %200 = tail call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %199, ptr noundef %3)
  br i1 %200, label %203, label %201

201:                                              ; preds = %197
  %202 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 -8, ptr %202, align 8, !tbaa !61
  br label %1354

203:                                              ; preds = %197
  %204 = getelementptr inbounds i8, ptr %0, i64 832
  tail call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %204, ptr noundef %3)
  %205 = getelementptr inbounds i8, ptr %0, i64 952
  %206 = load ptr, ptr %205, align 8, !tbaa !43
  %207 = load double, ptr %206, align 8, !tbaa !48
  %208 = getelementptr inbounds i8, ptr %0, i64 1592
  %209 = load ptr, ptr %208, align 8, !tbaa !43
  %210 = load double, ptr %209, align 8, !tbaa !48
  %211 = fmul double %207, %210
  %212 = getelementptr inbounds i8, ptr %0, i64 752
  store double %211, ptr %212, align 8, !tbaa !62
  %213 = getelementptr inbounds i8, ptr %0, i64 761
  store i8 1, ptr %213, align 1, !tbaa !55
  br label %1229

214:                                              ; preds = %116
  %215 = getelementptr inbounds i8, ptr %0, i64 761
  store i8 0, ptr %215, align 1, !tbaa !55
  %216 = getelementptr inbounds i8, ptr %0, i64 112
  %217 = getelementptr inbounds i8, ptr %0, i64 192
  %218 = getelementptr inbounds i8, ptr %0, i64 832
  %219 = getelementptr inbounds i8, ptr %0, i64 62376
  %220 = getelementptr inbounds i8, ptr %0, i64 62384
  tail call void @_ZN11alglib_impl16checklcviolationEPKNS_9ae_matrixEPKNS_9ae_vectorEllS5_lPdPlPNS_8ae_stateE(ptr noundef nonnull %216, ptr noundef nonnull %217, i64 noundef %.01332, i64 noundef %.01330, ptr noundef nonnull %218, i64 noundef %.01336, ptr noundef nonnull %219, ptr noundef nonnull %220, ptr noundef %3)
  %221 = getelementptr inbounds i8, ptr %0, i64 896
  %222 = getelementptr inbounds i8, ptr %0, i64 1536
  %223 = getelementptr inbounds i8, ptr %0, i64 62392
  %224 = getelementptr inbounds i8, ptr %0, i64 62400
  tail call void @_ZN11alglib_impl27unscaleandchecknlcviolationEPKNS_9ae_vectorES2_llPdPlPNS_8ae_stateE(ptr noundef nonnull %221, ptr noundef nonnull %222, i64 noundef %.01328, i64 noundef %.01326, ptr noundef nonnull %223, ptr noundef nonnull %224, ptr noundef %3)
  %225 = trunc nuw i8 %.01238 to i1
  br i1 %225, label %226, label %227

226:                                              ; preds = %214
  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.1378)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  br label %227

227:                                              ; preds = %226, %214
  %228 = getelementptr inbounds i8, ptr %0, i64 768
  store double 5.000000e+02, ptr %228, align 8, !tbaa !63
  %229 = getelementptr inbounds i8, ptr %0, i64 40
  %230 = load i8, ptr %229, align 8, !tbaa !64, !range !46, !noundef !47
  %231 = trunc nuw i8 %230 to i1
  %232 = getelementptr inbounds i8, ptr %0, i64 55416
  %233 = getelementptr inbounds i8, ptr %0, i64 512
  br i1 %231, label %234, label %241

234:                                              ; preds = %227
  %235 = getelementptr inbounds i8, ptr %0, i64 536
  %236 = load i64, ptr %235, align 8, !tbaa !65
  %237 = tail call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %233, ptr noundef %3)
  %238 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %239 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %237, double noundef %238, ptr noundef %3)
  %240 = fmul double %239, 1.000000e+01
  tail call void @_ZN11alglib_impl15hessianinitbfgsEPNS_12xbfgshessianElldPNS_8ae_stateE(ptr noundef nonnull %232, i64 noundef %.01336, i64 noundef %236, double noundef %240, ptr noundef %3)
  br label %249

241:                                              ; preds = %227
  %242 = load i64, ptr @_ZN11alglib_implL18nlcsqp_xbfgsmemlenE, align 8, !tbaa !44
  %243 = tail call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %.01336, i64 noundef %242, ptr noundef %3)
  %244 = tail call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %233, ptr noundef %3)
  %245 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %246 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %244, double noundef %245, ptr noundef %3)
  %247 = fmul double %246, 1.000000e+01
  %248 = load double, ptr @_ZN11alglib_implL19nlcsqp_xbfgsmaxhessE, align 8, !tbaa !48
  tail call void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef nonnull %232, i64 noundef %.01336, i64 noundef %243, double noundef %247, double noundef %248, ptr noundef %3)
  br label %249

249:                                              ; preds = %241, %234
  %250 = getelementptr inbounds i8, ptr %0, i64 1664
  tail call void @_ZN11alglib_implL22nlcsqp_initqpsubsolverEPKNS_11minsqpstateEPNS_15minsqpsubsolverEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %250, ptr noundef %3)
  br label %.preheader1401

.preheader1401:                                   ; preds = %249, %.thread1390, %626, %.thread1398, %1193
  %.11285.ph = phi double [ %.01284, %.thread1398 ], [ %.01284, %.thread1390 ], [ %.101294, %1193 ], [ %.01284, %626 ], [ %.01284, %249 ]
  %.11274.ph = phi double [ %.01273, %.thread1398 ], [ %.01273, %.thread1390 ], [ %.91282, %1193 ], [ %.01273, %626 ], [ %.01273, %249 ]
  %.11270.ph = phi double [ %.01269, %.thread1398 ], [ %.01269, %.thread1390 ], [ %.21271.lcssa, %1193 ], [ %.01269, %626 ], [ %.01269, %249 ]
  %.11255.ph = phi double [ %.01254, %.thread1398 ], [ %.01254, %.thread1390 ], [ %1115, %1193 ], [ %.01254, %626 ], [ %.01254, %249 ]
  %.11250.ph = phi i8 [ %.01249, %.thread1398 ], [ %.01249, %.thread1390 ], [ %.21251, %1193 ], [ %.01249, %626 ], [ %.01249, %249 ]
  %.11241.ph = phi double [ %.01240, %.thread1398 ], [ %.01240, %.thread1390 ], [ %.71247, %1193 ], [ %.01240, %626 ], [ 1.000000e+50, %249 ]
  %.11201.ph = phi double [ %.01200, %.thread1398 ], [ %.01200, %.thread1390 ], [ %.91209, %1193 ], [ %495, %626 ], [ %.01200, %249 ]
  %.11188.ph = phi i64 [ %.01187, %.thread1398 ], [ %.01187, %.thread1390 ], [ %.71194, %1193 ], [ %.01187, %626 ], [ %.01187, %249 ]
  %.11178.ph = phi double [ %.01177, %.thread1398 ], [ %.01177, %.thread1390 ], [ %.81185, %1193 ], [ %.01177, %626 ], [ %.01177, %249 ]
  %.11145.ph = phi double [ %.01144, %.thread1398 ], [ %.01144, %.thread1390 ], [ %.81152, %1193 ], [ %497, %626 ], [ %.01144, %249 ]
  %.11112.ph = phi i8 [ %.01111, %.thread1398 ], [ %.01111, %.thread1390 ], [ %.01111, %1193 ], [ %.01111, %626 ], [ 1, %249 ]
  %.11108.ph = phi i8 [ 1, %.thread1398 ], [ 1, %.thread1390 ], [ %.01107, %1193 ], [ %.01107, %626 ], [ 0, %249 ]
  %.11104.ph = phi i8 [ 1, %.thread1398 ], [ 1, %.thread1390 ], [ %.01103, %1193 ], [ %.01103, %626 ], [ 0, %249 ]
  %.1.ph = phi i8 [ %.0, %.thread1398 ], [ %.0, %.thread1390 ], [ %.9, %1193 ], [ 1, %626 ], [ %.0, %249 ]
  %251 = phi <2 x double> [ %119, %.thread1398 ], [ %119, %.thread1390 ], [ %1105, %1193 ], [ %119, %626 ], [ %119, %249 ]
  %252 = getelementptr inbounds i8, ptr %0, i64 512
  %253 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %252, ptr noundef %3)
  %254 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.11241.ph, double noundef %253)
  br i1 %254, label %.preheader1401.._crit_edge1571_crit_edge, label %.lr.ph1570

.preheader1401.._crit_edge1571_crit_edge:         ; preds = %.preheader1401
  %.pre1651 = trunc nuw i8 %.01238 to i1
  %255 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 1, ptr %255, align 8, !tbaa !61
  br i1 %.pre1651, label %285, label %1200

.lr.ph1570:                                       ; preds = %.preheader1401
  %256 = getelementptr inbounds i8, ptr %0, i64 776
  %257 = getelementptr inbounds i8, ptr %0, i64 62344
  %258 = getelementptr inbounds i8, ptr %0, i64 800
  %259 = add i64 %.01326, %.01328
  %.not13711538 = icmp slt i64 %259, 0
  %.not1376.not1526 = icmp sgt i64 %.01336, 0
  %260 = getelementptr inbounds i8, ptr %0, i64 1032
  %261 = getelementptr inbounds i8, ptr %0, i64 1592
  %262 = getelementptr inbounds i8, ptr %0, i64 952
  %263 = getelementptr inbounds i8, ptr %0, i64 1656
  %264 = trunc nuw i8 %.01238 to i1
  %265 = trunc nuw i8 %.01232 to i1
  %266 = getelementptr inbounds i8, ptr %0, i64 832
  %267 = getelementptr inbounds i8, ptr %0, i64 48
  %268 = getelementptr inbounds i8, ptr %0, i64 1536
  %269 = add i64 %259, 1
  %270 = getelementptr inbounds i8, ptr %0, i64 1600
  %271 = getelementptr inbounds i8, ptr %0, i64 896
  %272 = getelementptr inbounds i8, ptr %0, i64 960
  %.not13721548 = icmp slt i64 %.01328, 1
  %.not1373.not1554 = icmp sgt i64 %.01326, 0
  %273 = getelementptr inbounds i8, ptr %0, i64 768
  %274 = getelementptr inbounds i8, ptr %0, i64 62376
  %275 = getelementptr inbounds i8, ptr %0, i64 1472
  %276 = getelementptr inbounds i8, ptr %0, i64 61512
  %277 = getelementptr inbounds i8, ptr %0, i64 61576
  %278 = getelementptr inbounds i8, ptr %0, i64 1664
  %279 = getelementptr inbounds i8, ptr %0, i64 55416
  %280 = getelementptr inbounds i8, ptr %0, i64 58920
  %281 = getelementptr inbounds i8, ptr %0, i64 58984
  %282 = trunc nuw i8 %.11112.ph to i1
  %xtraiter1793 = and i64 %.01336, 1
  %283 = icmp eq i64 %.01336, 1
  %unroll_iter1796 = and i64 %.01336, 9223372036854775806
  %lcmp.mod1795.not = icmp eq i64 %xtraiter1793, 0
  br label %287

._crit_edge1571:                                  ; preds = %.thread1387
  %284 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 1, ptr %284, align 8, !tbaa !61
  br i1 %264, label %285, label %1200

285:                                              ; preds = %.preheader1401.._crit_edge1571_crit_edge, %._crit_edge1571
  %286 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %252, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1123, double noundef %286)
  br label %1200

287:                                              ; preds = %.lr.ph1570, %.thread1387
  %.111121569 = phi i1 [ %282, %.lr.ph1570 ], [ false, %.thread1387 ]
  %.112581568 = phi double [ %.01257, %.lr.ph1570 ], [ %.21259.lcssa, %.thread1387 ]
  %.112641567 = phi double [ %.01263, %.lr.ph1570 ], [ %.21265.lcssa, %.thread1387 ]
  %.112741566 = phi double [ %.11274.ph, %.lr.ph1570 ], [ %.61279, %.thread1387 ]
  %288 = load double, ptr %256, align 8, !tbaa !56
  %289 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %252, ptr noundef %3)
  %290 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %288, double noundef %289)
  br i1 %290, label %291, label %295

291:                                              ; preds = %287
  %292 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 2, ptr %292, align 8, !tbaa !61
  br i1 %264, label %293, label %1200

293:                                              ; preds = %291
  %294 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %252, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1124, double noundef %294)
  br label %1200

295:                                              ; preds = %287
  %296 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %297 = load double, ptr %256, align 8, !tbaa !56
  %298 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %297, double noundef %296)
  br i1 %298, label %299, label %302

299:                                              ; preds = %295
  %300 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 7, ptr %300, align 8, !tbaa !61
  br i1 %264, label %301, label %1200

301:                                              ; preds = %299
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1125, double noundef %296)
  br label %1200

302:                                              ; preds = %295
  %303 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %252, ptr noundef %3)
  %304 = icmp sgt i64 %303, 0
  br i1 %304, label %305, label %313

305:                                              ; preds = %302
  %306 = load i64, ptr %257, align 8, !tbaa !66
  %307 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %252, ptr noundef %3)
  %.not1369 = icmp slt i64 %306, %307
  br i1 %.not1369, label %313, label %308

308:                                              ; preds = %305
  %309 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 5, ptr %309, align 8, !tbaa !61
  br i1 %264, label %310, label %1200

310:                                              ; preds = %308
  %311 = load i64, ptr %257, align 8, !tbaa !66
  %312 = trunc i64 %311 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1126, i32 noundef %312)
  br label %1200

313:                                              ; preds = %305, %302
  %314 = load i64, ptr %258, align 8, !tbaa !67
  %315 = load i64, ptr @_ZN11alglib_implL23nlcsqp_fstagnationlimitE, align 8, !tbaa !44
  %.not1370 = icmp slt i64 %314, %315
  br i1 %.not1370, label %.preheader1400, label %316

.preheader1400:                                   ; preds = %313
  br i1 %.not13711538, label %._crit_edge1541, label %.preheader

316:                                              ; preds = %313
  %317 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 7, ptr %317, align 8, !tbaa !61
  br i1 %264, label %318, label %1200

318:                                              ; preds = %316
  %319 = trunc i64 %314 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1127, i32 noundef %319)
  br label %1200

.preheader:                                       ; preds = %.preheader1400, %405
  %.112971540 = phi double [ %.51301, %405 ], [ %296, %.preheader1400 ]
  %.213101539 = phi i64 [ %406, %405 ], [ 0, %.preheader1400 ]
  store i64 0, ptr %5, align 8, !tbaa !44
  br i1 %.not1376.not1526, label %.lr.ph1529, label %._crit_edge1530

.lr.ph1529:                                       ; preds = %.preheader, %.lr.ph1529
  %.312761528 = phi double [ %326, %.lr.ph1529 ], [ 0.000000e+00, %.preheader ]
  %storemerge13751527 = phi i64 [ %328, %.lr.ph1529 ], [ 0, %.preheader ]
  %320 = load ptr, ptr %260, align 8, !tbaa !43
  %321 = getelementptr inbounds ptr, ptr %320, i64 %.213101539
  %322 = load ptr, ptr %321, align 8, !tbaa !68
  %323 = getelementptr inbounds double, ptr %322, i64 %storemerge13751527
  %324 = load double, ptr %323, align 8, !tbaa !48
  %325 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %324, ptr noundef %3)
  %326 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.312761528, double noundef %325, ptr noundef %3)
  %327 = load i64, ptr %5, align 8, !tbaa !44
  %328 = add nsw i64 %327, 1
  store i64 %328, ptr %5, align 8, !tbaa !44
  %.not1376.not = icmp slt i64 %328, %.01336
  br i1 %.not1376.not, label %.lr.ph1529, label %._crit_edge1530, !llvm.loop !69

._crit_edge1530:                                  ; preds = %.lr.ph1529, %.preheader
  %.31276.lcssa = phi double [ 0.000000e+00, %.preheader ], [ %326, %.lr.ph1529 ]
  %329 = load ptr, ptr %261, align 8, !tbaa !43
  %330 = getelementptr inbounds double, ptr %329, i64 %.213101539
  %331 = load double, ptr %330, align 8, !tbaa !48
  %332 = load double, ptr @_ZN11alglib_implL18nlcsqp_sqpbigscaleE, align 8, !tbaa !48
  %333 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %.31276.lcssa, double noundef %332)
  br i1 %333, label %334, label %344

334:                                              ; preds = %._crit_edge1530
  br i1 %.111121569, label %338, label %335

335:                                              ; preds = %334
  %336 = load double, ptr @_ZN11alglib_implL20nlcsqp_sqpmaxrescaleE, align 8, !tbaa !48
  %337 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %.31276.lcssa, double noundef %336, ptr noundef %3)
  br label %338

338:                                              ; preds = %335, %334
  %.21298 = phi double [ %.31276.lcssa, %334 ], [ %337, %335 ]
  %339 = fdiv double 1.000000e+00, %.21298
  %340 = load ptr, ptr %261, align 8, !tbaa !43
  %341 = getelementptr inbounds double, ptr %340, i64 %.213101539
  %342 = load double, ptr %341, align 8, !tbaa !48
  %343 = fmul double %.21298, %342
  br label %344

344:                                              ; preds = %338, %._crit_edge1530
  %.31299 = phi double [ %.21298, %338 ], [ %.112971540, %._crit_edge1530 ]
  %.31266 = phi double [ %339, %338 ], [ 1.000000e+00, %._crit_edge1530 ]
  %.31260 = phi double [ %343, %338 ], [ %331, %._crit_edge1530 ]
  %345 = load double, ptr @_ZN11alglib_implL20nlcsqp_sqpsmallscaleE, align 8, !tbaa !48
  %346 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.31276.lcssa, double noundef %345)
  br i1 %346, label %347, label %372

347:                                              ; preds = %344
  %348 = load ptr, ptr %261, align 8, !tbaa !43
  %349 = getelementptr inbounds double, ptr %348, i64 %.213101539
  %350 = load double, ptr %349, align 8, !tbaa !48
  %351 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %350, double noundef 1.000000e+00)
  br i1 %351, label %352, label %372

352:                                              ; preds = %347
  br i1 %.111121569, label %356, label %353

353:                                              ; preds = %352
  %354 = load double, ptr @_ZN11alglib_implL20nlcsqp_sqpminrescaleE, align 8, !tbaa !48
  %355 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.31276.lcssa, double noundef %354, ptr noundef %3)
  br label %356

356:                                              ; preds = %353, %352
  %.41300 = phi double [ %.31276.lcssa, %352 ], [ %355, %353 ]
  %357 = load ptr, ptr %261, align 8, !tbaa !43
  %358 = getelementptr inbounds double, ptr %357, i64 %.213101539
  %359 = load double, ptr %358, align 8, !tbaa !48
  %360 = fmul double %.41300, %359
  %361 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %360, double noundef 1.000000e+00)
  br i1 %361, label %362, label %368

362:                                              ; preds = %356
  %363 = fdiv double 1.000000e+00, %.41300
  %364 = load ptr, ptr %261, align 8, !tbaa !43
  %365 = getelementptr inbounds double, ptr %364, i64 %.213101539
  %366 = load double, ptr %365, align 8, !tbaa !48
  %367 = fmul double %.41300, %366
  br label %372

368:                                              ; preds = %356
  %369 = load ptr, ptr %261, align 8, !tbaa !43
  %370 = getelementptr inbounds double, ptr %369, i64 %.213101539
  %371 = load double, ptr %370, align 8, !tbaa !48
  br label %372

372:                                              ; preds = %362, %368, %347, %344
  %.51301 = phi double [ %.41300, %362 ], [ %.41300, %368 ], [ %.31299, %347 ], [ %.31299, %344 ]
  %.41267 = phi double [ %363, %362 ], [ %371, %368 ], [ %.31266, %347 ], [ %.31266, %344 ]
  %.41261 = phi double [ %367, %362 ], [ 1.000000e+00, %368 ], [ %.31260, %347 ], [ %.31260, %344 ]
  %373 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %.41267, double noundef 1.000000e+00)
  br i1 %373, label %374, label %405

374:                                              ; preds = %372
  %375 = load ptr, ptr %262, align 8, !tbaa !43
  %376 = getelementptr inbounds double, ptr %375, i64 %.213101539
  %377 = load double, ptr %376, align 8, !tbaa !48
  %378 = fmul double %.41267, %377
  store double %378, ptr %376, align 8, !tbaa !48
  br i1 %.not1376.not1526, label %.lr.ph1535.preheader, label %._crit_edge1536

.lr.ph1535.preheader:                             ; preds = %374
  br i1 %283, label %._crit_edge1536.loopexit.unr-lcssa, label %.lr.ph1535

.lr.ph1535:                                       ; preds = %.lr.ph1535.preheader, %.lr.ph1535
  %storemerge13771533 = phi i64 [ %392, %.lr.ph1535 ], [ 0, %.lr.ph1535.preheader ]
  %niter1797 = phi i64 [ %niter1797.next.1, %.lr.ph1535 ], [ 0, %.lr.ph1535.preheader ]
  %379 = load ptr, ptr %260, align 8, !tbaa !43
  %380 = getelementptr inbounds ptr, ptr %379, i64 %.213101539
  %381 = load ptr, ptr %380, align 8, !tbaa !68
  %382 = getelementptr inbounds double, ptr %381, i64 %storemerge13771533
  %383 = load double, ptr %382, align 8, !tbaa !48
  %384 = fmul double %.41267, %383
  store double %384, ptr %382, align 8, !tbaa !48
  %385 = or disjoint i64 %storemerge13771533, 1
  %386 = load ptr, ptr %260, align 8, !tbaa !43
  %387 = getelementptr inbounds ptr, ptr %386, i64 %.213101539
  %388 = load ptr, ptr %387, align 8, !tbaa !68
  %389 = getelementptr inbounds double, ptr %388, i64 %385
  %390 = load double, ptr %389, align 8, !tbaa !48
  %391 = fmul double %.41267, %390
  store double %391, ptr %389, align 8, !tbaa !48
  %392 = add nuw nsw i64 %storemerge13771533, 2
  %niter1797.next.1 = add i64 %niter1797, 2
  %niter1797.ncmp.1 = icmp eq i64 %niter1797.next.1, %unroll_iter1796
  br i1 %niter1797.ncmp.1, label %._crit_edge1536.loopexit.unr-lcssa, label %.lr.ph1535, !llvm.loop !70

._crit_edge1536.loopexit.unr-lcssa:               ; preds = %.lr.ph1535, %.lr.ph1535.preheader
  %storemerge13771533.unr = phi i64 [ 0, %.lr.ph1535.preheader ], [ %392, %.lr.ph1535 ]
  br i1 %lcmp.mod1795.not, label %._crit_edge1536, label %.lr.ph1535.epil

.lr.ph1535.epil:                                  ; preds = %._crit_edge1536.loopexit.unr-lcssa
  %393 = load ptr, ptr %260, align 8, !tbaa !43
  %394 = getelementptr inbounds ptr, ptr %393, i64 %.213101539
  %395 = load ptr, ptr %394, align 8, !tbaa !68
  %396 = getelementptr inbounds double, ptr %395, i64 %storemerge13771533.unr
  %397 = load double, ptr %396, align 8, !tbaa !48
  %398 = fmul double %.41267, %397
  store double %398, ptr %396, align 8, !tbaa !48
  br label %._crit_edge1536

._crit_edge1536:                                  ; preds = %.lr.ph1535.epil, %._crit_edge1536.loopexit.unr-lcssa, %374
  %storemerge1377.lcssa = phi i64 [ 0, %374 ], [ %.01336, %._crit_edge1536.loopexit.unr-lcssa ], [ %.01336, %.lr.ph1535.epil ]
  store i64 %storemerge1377.lcssa, ptr %5, align 8, !tbaa !44
  %399 = load ptr, ptr %261, align 8, !tbaa !43
  %400 = getelementptr inbounds double, ptr %399, i64 %.213101539
  store double %.41261, ptr %400, align 8, !tbaa !48
  %401 = load ptr, ptr %263, align 8, !tbaa !43
  %402 = getelementptr inbounds double, ptr %401, i64 %.213101539
  %403 = load double, ptr %402, align 8, !tbaa !48
  %404 = fmul double %.41267, %403
  store double %404, ptr %402, align 8, !tbaa !48
  call void @_ZN11alglib_implL29nlcsqp_nonmonotonicmultiplybyEPNS_11minsqpstateEldPNS_8ae_stateE(ptr noundef nonnull %0, i64 noundef %.213101539, double noundef %.41267, ptr noundef %3)
  br label %405

405:                                              ; preds = %372, %._crit_edge1536
  %406 = add nuw i64 %.213101539, 1
  %exitcond1637.not = icmp eq i64 %.213101539, %259
  br i1 %exitcond1637.not, label %._crit_edge1541, label %.preheader, !llvm.loop !71

._crit_edge1541:                                  ; preds = %405, %.preheader1400
  %.21310.lcssa = phi i64 [ 0, %.preheader1400 ], [ %269, %405 ]
  %.11297.lcssa = phi double [ %296, %.preheader1400 ], [ %.51301, %405 ]
  %.21275.lcssa = phi double [ %.112741566, %.preheader1400 ], [ %.31276.lcssa, %405 ]
  %.21265.lcssa = phi double [ %.112641567, %.preheader1400 ], [ %.41267, %405 ]
  %.21259.lcssa = phi double [ %.112581568, %.preheader1400 ], [ %.41261, %405 ]
  br i1 %264, label %407, label %444

407:                                              ; preds = %._crit_edge1541
  %408 = load i64, ptr %257, align 8, !tbaa !66
  %409 = trunc i64 %408 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1128, i32 noundef %409)
  br i1 %265, label %410, label %411

410:                                              ; preds = %407
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1129)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1130)
  call void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef nonnull %266, i64 noundef %.01336, ptr noundef nonnull %267, i1 noundef zeroext true, ptr noundef nonnull %267, i1 noundef zeroext false, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1131)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.733)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %266, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1132)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %268, i64 noundef 0, i64 noundef %269, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1253)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %270, i64 noundef 0, i64 noundef %269, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1133)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %271, i64 noundef 0, i64 noundef %269, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1379)
  call void @_ZN11alglib_impl20tracerownrm1autoprecEPKNS_9ae_matrixEllllPNS_8ae_stateE(ptr noundef nonnull %272, i64 noundef 0, i64 noundef %269, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %411

411:                                              ; preds = %410, %407
  br i1 %.not13721548, label %.preheader1399, label %.lr.ph1552

.preheader1399:                                   ; preds = %.lr.ph1552, %411
  %.41277.lcssa = phi double [ 0.000000e+00, %411 ], [ %416, %.lr.ph1552 ]
  br i1 %.not1373.not1554, label %.lr.ph1557, label %._crit_edge1558

.lr.ph1552:                                       ; preds = %411, %.lr.ph1552
  %.412771550 = phi double [ %416, %.lr.ph1552 ], [ 0.000000e+00, %411 ]
  %.313111549 = phi i64 [ %417, %.lr.ph1552 ], [ 1, %411 ]
  %412 = load ptr, ptr %262, align 8, !tbaa !43
  %413 = getelementptr inbounds double, ptr %412, i64 %.313111549
  %414 = load double, ptr %413, align 8, !tbaa !48
  %415 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %414, ptr noundef %3)
  %416 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.412771550, double noundef %415, ptr noundef %3)
  %417 = add nuw i64 %.313111549, 1
  %exitcond1638.not = icmp eq i64 %.313111549, %.01328
  br i1 %exitcond1638.not, label %.preheader1399, label %.lr.ph1552, !llvm.loop !72

.lr.ph1557:                                       ; preds = %.preheader1399, %.lr.ph1557
  %.512781556 = phi double [ %421, %.lr.ph1557 ], [ %.41277.lcssa, %.preheader1399 ]
  %.41312.in1555 = phi i64 [ %.41312, %.lr.ph1557 ], [ %.01328, %.preheader1399 ]
  %.41312 = add nsw i64 %.41312.in1555, 1
  %418 = load ptr, ptr %262, align 8, !tbaa !43
  %419 = getelementptr inbounds double, ptr %418, i64 %.41312
  %420 = load double, ptr %419, align 8, !tbaa !48
  %421 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.512781556, double noundef %420, ptr noundef %3)
  %.not1373.not = icmp slt i64 %.41312, %259
  br i1 %.not1373.not, label %.lr.ph1557, label %._crit_edge1558, !llvm.loop !73

._crit_edge1558:                                  ; preds = %.lr.ph1557, %.preheader1399
  %.51278.lcssa = phi double [ %.41277.lcssa, %.preheader1399 ], [ %421, %.lr.ph1557 ]
  %422 = load double, ptr %256, align 8, !tbaa !56
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1134, double noundef %422)
  %423 = load double, ptr %273, align 8, !tbaa !63
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1380, double noundef %423)
  %424 = load double, ptr %274, align 8, !tbaa !74
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1135, double noundef %424)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1136, double noundef %.51278.lcssa)
  %425 = load ptr, ptr %263, align 8, !tbaa !43
  %426 = load double, ptr %425, align 8, !tbaa !48
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1258, double noundef %426)
  store i64 0, ptr %5, align 8, !tbaa !44
  br i1 %.not13711538, label %._crit_edge1564, label %.lr.ph1563

.lr.ph1563:                                       ; preds = %._crit_edge1558, %435
  %.513131561 = phi i64 [ %436, %435 ], [ 0, %._crit_edge1558 ]
  %427 = load ptr, ptr %263, align 8, !tbaa !43
  %428 = getelementptr inbounds double, ptr %427, i64 %.513131561
  %429 = load double, ptr %428, align 8, !tbaa !48
  %430 = load i64, ptr %5, align 8, !tbaa !44
  %431 = getelementptr inbounds double, ptr %427, i64 %430
  %432 = load double, ptr %431, align 8, !tbaa !48
  %433 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %429, double noundef %432)
  br i1 %433, label %434, label %435

434:                                              ; preds = %.lr.ph1563
  store i64 %.513131561, ptr %5, align 8, !tbaa !44
  br label %435

435:                                              ; preds = %.lr.ph1563, %434
  %436 = add nuw i64 %.513131561, 1
  %exitcond1639.not = icmp eq i64 %.513131561, %259
  br i1 %exitcond1639.not, label %._crit_edge1564.loopexit, label %.lr.ph1563, !llvm.loop !75

._crit_edge1564.loopexit:                         ; preds = %435
  %.pre1648 = load i64, ptr %5, align 8, !tbaa !44
  br label %._crit_edge1564

._crit_edge1564:                                  ; preds = %._crit_edge1564.loopexit, %._crit_edge1558
  %437 = phi i64 [ 0, %._crit_edge1558 ], [ %.pre1648, %._crit_edge1564.loopexit ]
  %.51313.lcssa = phi i64 [ 0, %._crit_edge1558 ], [ %269, %._crit_edge1564.loopexit ]
  %438 = load ptr, ptr %263, align 8, !tbaa !43
  %439 = getelementptr inbounds double, ptr %438, i64 %437
  %440 = load double, ptr %439, align 8, !tbaa !48
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1259, double noundef %440)
  %441 = load i64, ptr %5, align 8, !tbaa !44
  %442 = trunc i64 %441 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1260, i32 noundef %442)
  %443 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %266, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1137, double noundef %443)
  br label %444

444:                                              ; preds = %._crit_edge1564, %._crit_edge1541
  %.61314 = phi i64 [ %.51313.lcssa, %._crit_edge1564 ], [ %.21310.lcssa, %._crit_edge1541 ]
  %.61279 = phi double [ %.51278.lcssa, %._crit_edge1564 ], [ %.21275.lcssa, %._crit_edge1541 ]
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %266, ptr noundef nonnull %275, ptr noundef %3)
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01334, double noundef 0.000000e+00, ptr noundef nonnull %276, ptr noundef %3)
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01334, double noundef 0.000000e+00, ptr noundef nonnull %277, ptr noundef %3)
  br i1 %264, label %445, label %.thread1386

445:                                              ; preds = %444
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1381)
  %446 = call noundef zeroext i1 @_ZN11alglib_implL24nlcsqp_qpsubproblemsolveEPNS_11minsqpstateEPNS_15minsqpsubsolverEPKNS_9ae_vectorES6_PKNS_9ae_matrixEPNS_12xbfgshessianEddPS4_SC_SC_bPlPdSE_SE_SE_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %278, ptr noundef nonnull %266, ptr noundef nonnull %271, ptr noundef nonnull %272, ptr noundef nonnull %279, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull %276, ptr noundef nonnull %280, ptr noundef nonnull %281, i1 noundef zeroext true, ptr noundef nonnull %5, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %9, ptr noundef nonnull %8, ptr noundef %3)
  %447 = load i64, ptr %5, align 8, !tbaa !44
  %448 = trunc i64 %447 to i32
  br i1 %446, label %455, label %450

.thread1386:                                      ; preds = %444
  %449 = call noundef zeroext i1 @_ZN11alglib_implL24nlcsqp_qpsubproblemsolveEPNS_11minsqpstateEPNS_15minsqpsubsolverEPKNS_9ae_vectorES6_PKNS_9ae_matrixEPNS_12xbfgshessianEddPS4_SC_SC_bPlPdSE_SE_SE_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %278, ptr noundef nonnull %266, ptr noundef nonnull %271, ptr noundef nonnull %272, ptr noundef nonnull %279, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull %276, ptr noundef nonnull %280, ptr noundef nonnull %281, i1 noundef zeroext false, ptr noundef nonnull %5, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %9, ptr noundef nonnull %8, ptr noundef %3)
  br i1 %449, label %.thread1388, label %.thread1387

450:                                              ; preds = %445
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1141, i32 noundef %448)
  br label %.thread1387

.thread1387:                                      ; preds = %.thread1386, %450
  %451 = load double, ptr %256, align 8, !tbaa !56
  %452 = fmul double %451, 1.000000e-01
  store double %452, ptr %256, align 8, !tbaa !56
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %257, ptr noundef %3)
  %453 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %252, ptr noundef %3)
  %454 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef 1.000000e+50, double noundef %453)
  br i1 %454, label %._crit_edge1571, label %287

455:                                              ; preds = %445
  %456 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %280, ptr noundef %3)
  %457 = add i64 %259, %.01332
  %458 = add i64 %457, %.01330
  %459 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %458, ptr noundef nonnull %281, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1382, i32 noundef %448, double noundef %456, double noundef %459)
  br label %.thread1388

.thread1388:                                      ; preds = %.thread1386, %455
  %460 = getelementptr inbounds i8, ptr %0, i64 808
  %461 = getelementptr inbounds i8, ptr %0, i64 61448
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01334, ptr noundef nonnull %276, ptr noundef nonnull %461, ptr noundef %3)
  %462 = getelementptr inbounds i8, ptr %0, i64 60848
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %460, ptr noundef nonnull %462, ptr noundef %3)
  %463 = getelementptr inbounds i8, ptr %0, i64 61960
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %463, ptr noundef %3)
  %464 = load double, ptr %256, align 8, !tbaa !56
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %266, double noundef %464, ptr noundef nonnull %271, ptr noundef nonnull %272, ptr noundef nonnull %280, ptr noundef nonnull %281, i1 noundef zeroext true, ptr noundef nonnull %6, ptr noundef nonnull %463, ptr noundef %3)
  %465 = load double, ptr %273, align 8, !tbaa !63
  %466 = call noundef double @_ZN11alglib_implL20nlcsqp_meritfunctionEPNS_11minsqpstateEPKNS_11varsfuncjacEdPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %460, double noundef %465, ptr noundef %3)
  %467 = call noundef double @_ZN11alglib_implL29nlcsqp_nonmonotonicadjustmentEPNS_11minsqpstateEdPNS_8ae_stateE(ptr noundef nonnull %0, double noundef %466, ptr noundef %3)
  %468 = getelementptr inbounds i8, ptr %0, i64 59072
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %266, ptr noundef nonnull %468, ptr noundef %3)
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01336, double noundef 1.000000e+00, ptr noundef nonnull %461, ptr noundef nonnull %468, ptr noundef %3)
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %468, ptr noundef %3)
  %469 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 1, ptr %469, align 8, !tbaa !54
  br i1 %264, label %470, label %1229

470:                                              ; preds = %.thread1388
  %471 = getelementptr inbounds i8, ptr %0, i64 62456
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %471, ptr noundef %3)
  br label %1229

472:                                              ; preds = %116
  %473 = trunc nuw i8 %.01238 to i1
  br i1 %473, label %474, label %.thread1389

474:                                              ; preds = %472
  %475 = getelementptr inbounds i8, ptr %0, i64 62456
  tail call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %475, ptr noundef %3)
  %476 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 0, ptr %476, align 8, !tbaa !54
  %477 = getelementptr inbounds i8, ptr %0, i64 59048
  %478 = tail call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %477, ptr noundef %3)
  br i1 %478, label %490, label %482

.thread1389:                                      ; preds = %472
  %479 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 0, ptr %479, align 8, !tbaa !54
  %480 = getelementptr inbounds i8, ptr %0, i64 59048
  %481 = tail call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %480, ptr noundef %3)
  br i1 %481, label %490, label %.thread1390

482:                                              ; preds = %474
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1145)
  br label %.thread1390

.thread1390:                                      ; preds = %.thread1389, %482
  %483 = getelementptr inbounds i8, ptr %0, i64 776
  %484 = load double, ptr %483, align 8, !tbaa !56
  %485 = load double, ptr @_ZN11alglib_implL23nlcsqp_maxtrustraddecayE, align 8, !tbaa !48
  %486 = fmul double %484, %485
  store double %486, ptr %483, align 8, !tbaa !56
  %487 = getelementptr inbounds i8, ptr %0, i64 784
  %488 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !48
  tail call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef nonnull %487, double noundef %488, ptr noundef %3)
  %489 = getelementptr inbounds i8, ptr %0, i64 62344
  tail call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %489, ptr noundef %3)
  br label %.preheader1401

490:                                              ; preds = %.thread1389, %474
  %491 = phi ptr [ %480, %.thread1389 ], [ %477, %474 ]
  %492 = phi ptr [ %479, %.thread1389 ], [ %476, %474 ]
  %493 = getelementptr inbounds i8, ptr %0, i64 768
  %494 = load double, ptr %493, align 8, !tbaa !63
  %495 = tail call noundef double @_ZN11alglib_implL20nlcsqp_meritfunctionEPNS_11minsqpstateEPKNS_11varsfuncjacEdPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %491, double noundef %494, ptr noundef %3)
  %496 = load double, ptr %493, align 8, !tbaa !63
  %497 = tail call double @llvm.fmuladd.f64(double %496, double %118, double %117)
  %498 = fsub double %495, %.01211
  %499 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !48
  %500 = fmul double %499, %497
  %501 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %498, double noundef %500)
  %502 = zext i1 %501 to i8
  %503 = getelementptr inbounds i8, ptr %0, i64 62024
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %503, ptr noundef %3)
  %504 = getelementptr inbounds i8, ptr %0, i64 59072
  %505 = getelementptr inbounds i8, ptr %0, i64 776
  %506 = load double, ptr %505, align 8, !tbaa !56
  %507 = getelementptr inbounds i8, ptr %0, i64 59136
  %508 = getelementptr inbounds i8, ptr %0, i64 59200
  %509 = getelementptr inbounds i8, ptr %0, i64 58920
  %510 = getelementptr inbounds i8, ptr %0, i64 58984
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %504, double noundef %506, ptr noundef nonnull %507, ptr noundef nonnull %508, ptr noundef nonnull %509, ptr noundef nonnull %510, i1 noundef zeroext true, ptr noundef nonnull %7, ptr noundef nonnull %503, ptr noundef %3)
  %511 = getelementptr inbounds i8, ptr %0, i64 55416
  %512 = getelementptr inbounds i8, ptr %0, i64 832
  %513 = getelementptr inbounds i8, ptr %0, i64 61960
  call void @_ZN11alglib_impl15hessianupdatev2EPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_lbblPNS_8ae_stateE(ptr noundef nonnull %511, ptr noundef nonnull %512, ptr noundef nonnull %513, ptr noundef nonnull %504, ptr noundef nonnull %503, i64 noundef 2, i1 noundef zeroext false, i1 noundef zeroext %473, i64 noundef 1, ptr noundef %3)
  br i1 %473, label %514, label %.thread1391

514:                                              ; preds = %490
  %515 = load double, ptr %8, align 8, !tbaa !48
  %516 = fdiv double %498, %497
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1383, double noundef %515, double noundef %497, double noundef %498, double noundef %516)
  %517 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %497, double noundef 0.000000e+00)
  br i1 %517, label %524, label %519

.thread1391:                                      ; preds = %490
  %518 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %497, double noundef 0.000000e+00)
  br i1 %518, label %.thread1394, label %519

519:                                              ; preds = %.thread1391, %514
  %520 = fsub double %495, %.01213
  %521 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !48
  %522 = fmul double %497, %521
  %523 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %520, double noundef %522)
  %brmerge.not = and i1 %523, %473
  br i1 %brmerge.not, label %524, label %525

524:                                              ; preds = %514, %519
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1384)
  br label %.thread1394

525:                                              ; preds = %519
  br i1 %523, label %.thread1394, label %700

.thread1394:                                      ; preds = %.thread1391, %524, %525
  %526 = getelementptr inbounds i8, ptr %0, i64 59648
  %527 = getelementptr inbounds i8, ptr %0, i64 59672
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %512, ptr noundef nonnull %527, ptr noundef %3)
  %528 = getelementptr inbounds i8, ptr %0, i64 896
  %529 = getelementptr inbounds i8, ptr %0, i64 952
  %530 = load ptr, ptr %529, align 8, !tbaa !43
  %531 = load double, ptr %530, align 8, !tbaa !48
  %532 = getelementptr inbounds i8, ptr %0, i64 59736
  %533 = getelementptr inbounds i8, ptr %0, i64 59792
  %534 = load ptr, ptr %533, align 8, !tbaa !43
  store double %531, ptr %534, align 8, !tbaa !48
  %.not1365.not1510 = icmp sgt i64 %.01336, 0
  br i1 %.not1365.not1510, label %.lr.ph1512, label %.preheader1403

.lr.ph1512:                                       ; preds = %.thread1394
  %535 = getelementptr inbounds i8, ptr %0, i64 1032
  %536 = getelementptr inbounds i8, ptr %0, i64 59872
  %xtraiter1782 = and i64 %.01336, 1
  %537 = icmp eq i64 %.01336, 1
  br i1 %537, label %.preheader1403.loopexit.unr-lcssa, label %.lr.ph1512.new

.lr.ph1512.new:                                   ; preds = %.lr.ph1512
  %unroll_iter1785 = and i64 %.01336, 9223372036854775806
  br label %552

.preheader1403.loopexit.unr-lcssa:                ; preds = %552, %.lr.ph1512
  %storemerge13641511.unr = phi i64 [ 0, %.lr.ph1512 ], [ %568, %552 ]
  %lcmp.mod1784.not = icmp eq i64 %xtraiter1782, 0
  br i1 %lcmp.mod1784.not, label %.preheader1403, label %.preheader1403.loopexit.epilog-lcssa

.preheader1403.loopexit.epilog-lcssa:             ; preds = %.preheader1403.loopexit.unr-lcssa
  %538 = load ptr, ptr %535, align 8, !tbaa !43
  %539 = load ptr, ptr %538, align 8, !tbaa !68
  %540 = getelementptr inbounds double, ptr %539, i64 %storemerge13641511.unr
  %541 = load double, ptr %540, align 8, !tbaa !48
  %542 = load ptr, ptr %536, align 8, !tbaa !43
  %543 = load ptr, ptr %542, align 8, !tbaa !68
  %544 = getelementptr inbounds double, ptr %543, i64 %storemerge13641511.unr
  store double %541, ptr %544, align 8, !tbaa !48
  br label %.preheader1403

.preheader1403:                                   ; preds = %.preheader1403.loopexit.epilog-lcssa, %.preheader1403.loopexit.unr-lcssa, %.thread1394
  %storemerge1364.lcssa = phi i64 [ 0, %.thread1394 ], [ %.01336, %.preheader1403.loopexit.unr-lcssa ], [ %.01336, %.preheader1403.loopexit.epilog-lcssa ]
  store i64 %storemerge1364.lcssa, ptr %5, align 8, !tbaa !44
  %545 = add i64 %.01326, %.01328
  %.not13661521 = icmp slt i64 %545, 1
  br i1 %.not13661521, label %617, label %.preheader1402.lr.ph

.preheader1402.lr.ph:                             ; preds = %.preheader1403
  %546 = getelementptr inbounds i8, ptr %0, i64 61568
  %547 = getelementptr inbounds i8, ptr %0, i64 1032
  %548 = getelementptr inbounds i8, ptr %0, i64 59872
  %549 = getelementptr inbounds i8, ptr %0, i64 59192
  %550 = add nuw i64 %545, 1
  %xtraiter1787 = and i64 %.01336, 1
  %551 = icmp eq i64 %.01336, 1
  %unroll_iter1791 = and i64 %.01336, 9223372036854775806
  %lcmp.mod1789.not = icmp eq i64 %xtraiter1787, 0
  br label %.preheader1402

552:                                              ; preds = %552, %.lr.ph1512.new
  %storemerge13641511 = phi i64 [ 0, %.lr.ph1512.new ], [ %568, %552 ]
  %niter1786 = phi i64 [ 0, %.lr.ph1512.new ], [ %niter1786.next.1, %552 ]
  %553 = load ptr, ptr %535, align 8, !tbaa !43
  %554 = load ptr, ptr %553, align 8, !tbaa !68
  %555 = getelementptr inbounds double, ptr %554, i64 %storemerge13641511
  %556 = load double, ptr %555, align 8, !tbaa !48
  %557 = load ptr, ptr %536, align 8, !tbaa !43
  %558 = load ptr, ptr %557, align 8, !tbaa !68
  %559 = getelementptr inbounds double, ptr %558, i64 %storemerge13641511
  store double %556, ptr %559, align 8, !tbaa !48
  %560 = or disjoint i64 %storemerge13641511, 1
  %561 = load ptr, ptr %535, align 8, !tbaa !43
  %562 = load ptr, ptr %561, align 8, !tbaa !68
  %563 = getelementptr inbounds double, ptr %562, i64 %560
  %564 = load double, ptr %563, align 8, !tbaa !48
  %565 = load ptr, ptr %536, align 8, !tbaa !43
  %566 = load ptr, ptr %565, align 8, !tbaa !68
  %567 = getelementptr inbounds double, ptr %566, i64 %560
  store double %564, ptr %567, align 8, !tbaa !48
  %568 = add nuw nsw i64 %storemerge13641511, 2
  %niter1786.next.1 = add i64 %niter1786, 2
  %niter1786.ncmp.1 = icmp eq i64 %niter1786.next.1, %unroll_iter1785
  br i1 %niter1786.ncmp.1, label %.preheader1403.loopexit.unr-lcssa, label %552, !llvm.loop !76

.preheader1402:                                   ; preds = %.preheader1402.lr.ph, %._crit_edge1518
  %.713151522 = phi i64 [ 1, %.preheader1402.lr.ph ], [ %616, %._crit_edge1518 ]
  br i1 %.not1365.not1510, label %.lr.ph1517.preheader, label %._crit_edge1518

.lr.ph1517.preheader:                             ; preds = %.preheader1402
  br i1 %551, label %._crit_edge1518.loopexit.unr-lcssa, label %.lr.ph1517

.lr.ph1517:                                       ; preds = %.lr.ph1517.preheader, %.lr.ph1517
  %.713031516 = phi double [ %591, %.lr.ph1517 ], [ 0.000000e+00, %.lr.ph1517.preheader ]
  %storemerge13671515 = phi i64 [ %596, %.lr.ph1517 ], [ 0, %.lr.ph1517.preheader ]
  %niter1792 = phi i64 [ %niter1792.next.1, %.lr.ph1517 ], [ 0, %.lr.ph1517.preheader ]
  %569 = load ptr, ptr %546, align 8, !tbaa !43
  %570 = getelementptr inbounds double, ptr %569, i64 %storemerge13671515
  %571 = load double, ptr %570, align 8, !tbaa !48
  %572 = load ptr, ptr %547, align 8, !tbaa !43
  %573 = getelementptr inbounds ptr, ptr %572, i64 %.713151522
  %574 = load ptr, ptr %573, align 8, !tbaa !68
  %575 = getelementptr inbounds double, ptr %574, i64 %storemerge13671515
  %576 = load double, ptr %575, align 8, !tbaa !48
  %577 = call double @llvm.fmuladd.f64(double %571, double %576, double %.713031516)
  %578 = load ptr, ptr %548, align 8, !tbaa !43
  %579 = getelementptr inbounds ptr, ptr %578, i64 %.713151522
  %580 = load ptr, ptr %579, align 8, !tbaa !68
  %581 = getelementptr inbounds double, ptr %580, i64 %storemerge13671515
  store double %576, ptr %581, align 8, !tbaa !48
  %582 = or disjoint i64 %storemerge13671515, 1
  %583 = load ptr, ptr %546, align 8, !tbaa !43
  %584 = getelementptr inbounds double, ptr %583, i64 %582
  %585 = load double, ptr %584, align 8, !tbaa !48
  %586 = load ptr, ptr %547, align 8, !tbaa !43
  %587 = getelementptr inbounds ptr, ptr %586, i64 %.713151522
  %588 = load ptr, ptr %587, align 8, !tbaa !68
  %589 = getelementptr inbounds double, ptr %588, i64 %582
  %590 = load double, ptr %589, align 8, !tbaa !48
  %591 = call double @llvm.fmuladd.f64(double %585, double %590, double %577)
  %592 = load ptr, ptr %548, align 8, !tbaa !43
  %593 = getelementptr inbounds ptr, ptr %592, i64 %.713151522
  %594 = load ptr, ptr %593, align 8, !tbaa !68
  %595 = getelementptr inbounds double, ptr %594, i64 %582
  store double %590, ptr %595, align 8, !tbaa !48
  %596 = add nuw nsw i64 %storemerge13671515, 2
  %niter1792.next.1 = add i64 %niter1792, 2
  %niter1792.ncmp.1 = icmp eq i64 %niter1792.next.1, %unroll_iter1791
  br i1 %niter1792.ncmp.1, label %._crit_edge1518.loopexit.unr-lcssa, label %.lr.ph1517, !llvm.loop !77

._crit_edge1518.loopexit.unr-lcssa:               ; preds = %.lr.ph1517, %.lr.ph1517.preheader
  %.lcssa1760.ph = phi double [ poison, %.lr.ph1517.preheader ], [ %591, %.lr.ph1517 ]
  %.713031516.unr = phi double [ 0.000000e+00, %.lr.ph1517.preheader ], [ %591, %.lr.ph1517 ]
  %storemerge13671515.unr = phi i64 [ 0, %.lr.ph1517.preheader ], [ %596, %.lr.ph1517 ]
  br i1 %lcmp.mod1789.not, label %._crit_edge1518, label %.lr.ph1517.epil

.lr.ph1517.epil:                                  ; preds = %._crit_edge1518.loopexit.unr-lcssa
  %597 = load ptr, ptr %546, align 8, !tbaa !43
  %598 = getelementptr inbounds double, ptr %597, i64 %storemerge13671515.unr
  %599 = load double, ptr %598, align 8, !tbaa !48
  %600 = load ptr, ptr %547, align 8, !tbaa !43
  %601 = getelementptr inbounds ptr, ptr %600, i64 %.713151522
  %602 = load ptr, ptr %601, align 8, !tbaa !68
  %603 = getelementptr inbounds double, ptr %602, i64 %storemerge13671515.unr
  %604 = load double, ptr %603, align 8, !tbaa !48
  %605 = call double @llvm.fmuladd.f64(double %599, double %604, double %.713031516.unr)
  %606 = load ptr, ptr %548, align 8, !tbaa !43
  %607 = getelementptr inbounds ptr, ptr %606, i64 %.713151522
  %608 = load ptr, ptr %607, align 8, !tbaa !68
  %609 = getelementptr inbounds double, ptr %608, i64 %storemerge13671515.unr
  store double %604, ptr %609, align 8, !tbaa !48
  br label %._crit_edge1518

._crit_edge1518:                                  ; preds = %.lr.ph1517.epil, %._crit_edge1518.loopexit.unr-lcssa, %.preheader1402
  %.71303.lcssa = phi double [ 0.000000e+00, %.preheader1402 ], [ %.lcssa1760.ph, %._crit_edge1518.loopexit.unr-lcssa ], [ %605, %.lr.ph1517.epil ]
  %610 = load ptr, ptr %549, align 8, !tbaa !43
  %611 = getelementptr inbounds double, ptr %610, i64 %.713151522
  %612 = load double, ptr %611, align 8, !tbaa !48
  %613 = fsub double %612, %.71303.lcssa
  %614 = load ptr, ptr %533, align 8, !tbaa !43
  %615 = getelementptr inbounds double, ptr %614, i64 %.713151522
  store double %613, ptr %615, align 8, !tbaa !48
  %616 = add nuw i64 %.713151522, 1
  %exitcond1635.not = icmp eq i64 %.713151522, %545
  br i1 %exitcond1635.not, label %._crit_edge1523, label %.preheader1402, !llvm.loop !78

._crit_edge1523:                                  ; preds = %._crit_edge1518
  %smax = call i64 @llvm.smax.i64(i64 %.01336, i64 0)
  store i64 %smax, ptr %5, align 8, !tbaa !44
  br label %617

617:                                              ; preds = %._crit_edge1523, %.preheader1403
  %.71315.lcssa = phi i64 [ %550, %._crit_edge1523 ], [ 1, %.preheader1403 ]
  %.61302.lcssa = phi double [ %.71303.lcssa, %._crit_edge1523 ], [ %.01296, %.preheader1403 ]
  %618 = getelementptr inbounds i8, ptr %0, i64 1664
  %619 = getelementptr inbounds i8, ptr %0, i64 59800
  %620 = getelementptr inbounds i8, ptr %0, i64 61576
  %621 = getelementptr inbounds i8, ptr %0, i64 61832
  %622 = getelementptr inbounds i8, ptr %0, i64 61896
  %623 = call noundef zeroext i1 @_ZN11alglib_implL24nlcsqp_qpsubproblemsolveEPNS_11minsqpstateEPNS_15minsqpsubsolverEPKNS_9ae_vectorES6_PKNS_9ae_matrixEPNS_12xbfgshessianEddPS4_SC_SC_bPlPdSE_SE_SE_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %618, ptr noundef nonnull %527, ptr noundef nonnull %532, ptr noundef nonnull %619, ptr noundef nonnull %511, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull %620, ptr noundef nonnull %621, ptr noundef nonnull %622, i1 noundef zeroext %473, ptr noundef nonnull %5, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %10, ptr noundef nonnull %8, ptr noundef %3)
  br i1 %623, label %630, label %624

624:                                              ; preds = %617
  br i1 %473, label %625, label %626

625:                                              ; preds = %624
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1385)
  br label %626

626:                                              ; preds = %625, %624
  %627 = load double, ptr %505, align 8, !tbaa !56
  %628 = fmul double %627, 1.000000e-01
  store double %628, ptr %505, align 8, !tbaa !56
  %629 = getelementptr inbounds i8, ptr %0, i64 62344
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %629, ptr noundef %3)
  br label %.preheader1401

630:                                              ; preds = %617
  br i1 %473, label %631, label %638

631:                                              ; preds = %630
  %632 = load i64, ptr %5, align 8, !tbaa !44
  %633 = trunc i64 %632 to i32
  %634 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %621, ptr noundef %3)
  %635 = add i64 %545, %.01332
  %636 = add i64 %635, %.01330
  %637 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %636, ptr noundef nonnull %622, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1382, i32 noundef %633, double noundef %634, double noundef %637)
  br label %638

638:                                              ; preds = %631, %630
  %639 = getelementptr inbounds i8, ptr %0, i64 61448
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %620, ptr noundef nonnull %639, ptr noundef %3)
  %640 = getelementptr inbounds i8, ptr %0, i64 60848
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %526, ptr noundef nonnull %640, ptr noundef %3)
  %641 = getelementptr inbounds i8, ptr %0, i64 960
  %642 = getelementptr inbounds i8, ptr %0, i64 62344
  %643 = load i64, ptr %642, align 8, !tbaa !66
  call void @_ZN11alglib_impl32smoothnessmonitorstartlinesearchEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_PKNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %1, ptr noundef nonnull %512, ptr noundef nonnull %528, ptr noundef nonnull %641, i64 noundef %643, i64 noundef -1, ptr noundef %3)
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %512, ptr noundef nonnull %504, ptr noundef %3)
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01336, double noundef 1.000000e+00, ptr noundef nonnull %639, ptr noundef nonnull %504, ptr noundef %3)
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %504, ptr noundef %3)
  store i8 1, ptr %492, align 8, !tbaa !54
  br i1 %473, label %644, label %1229

644:                                              ; preds = %638
  %645 = getelementptr inbounds i8, ptr %0, i64 62456
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %645, ptr noundef %3)
  br label %1229

646:                                              ; preds = %116
  %647 = trunc nuw i8 %.01238 to i1
  br i1 %647, label %648, label %.thread1397

648:                                              ; preds = %646
  %649 = getelementptr inbounds i8, ptr %0, i64 62456
  tail call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %649, ptr noundef %3)
  %650 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 0, ptr %650, align 8, !tbaa !54
  %651 = getelementptr inbounds i8, ptr %0, i64 59048
  %652 = tail call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %651, ptr noundef %3)
  br i1 %652, label %664, label %656

.thread1397:                                      ; preds = %646
  %653 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 0, ptr %653, align 8, !tbaa !54
  %654 = getelementptr inbounds i8, ptr %0, i64 59048
  %655 = tail call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %654, ptr noundef %3)
  br i1 %655, label %664, label %.thread1398

656:                                              ; preds = %648
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1145)
  br label %.thread1398

.thread1398:                                      ; preds = %.thread1397, %656
  %657 = getelementptr inbounds i8, ptr %0, i64 776
  %658 = load double, ptr %657, align 8, !tbaa !56
  %659 = load double, ptr @_ZN11alglib_implL23nlcsqp_maxtrustraddecayE, align 8, !tbaa !48
  %660 = fmul double %658, %659
  store double %660, ptr %657, align 8, !tbaa !56
  %661 = getelementptr inbounds i8, ptr %0, i64 784
  %662 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !48
  tail call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef nonnull %661, double noundef %662, ptr noundef %3)
  %663 = getelementptr inbounds i8, ptr %0, i64 62344
  tail call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %663, ptr noundef %3)
  br label %.preheader1401

664:                                              ; preds = %.thread1397, %648
  %665 = phi ptr [ %654, %.thread1397 ], [ %651, %648 ]
  %666 = getelementptr inbounds i8, ptr %0, i64 61448
  %667 = getelementptr inbounds i8, ptr %0, i64 59072
  %668 = getelementptr inbounds i8, ptr %0, i64 59136
  %669 = getelementptr inbounds i8, ptr %0, i64 59200
  tail call void @_ZN11alglib_impl29smoothnessmonitorenqueuepointEPNS_17smoothnessmonitorEPKNS_9ae_vectorEdS4_S4_PKNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %1, ptr noundef nonnull %666, double noundef 1.000000e+00, ptr noundef nonnull %667, ptr noundef nonnull %668, ptr noundef nonnull %669, ptr noundef %3)
  %670 = getelementptr inbounds i8, ptr %0, i64 768
  %671 = load double, ptr %670, align 8, !tbaa !63
  %672 = tail call noundef double @_ZN11alglib_implL20nlcsqp_meritfunctionEPNS_11minsqpstateEPKNS_11varsfuncjacEdPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %665, double noundef %671, ptr noundef %3)
  %673 = load double, ptr %670, align 8, !tbaa !63
  %674 = tail call double @llvm.fmuladd.f64(double %673, double %118, double %117)
  %675 = fsub double %672, %.01211
  %676 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !48
  %677 = fmul double %676, %674
  %678 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %675, double noundef %677)
  %679 = zext i1 %678 to i8
  %680 = getelementptr inbounds i8, ptr %0, i64 62024
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %680, ptr noundef %3)
  %681 = getelementptr inbounds i8, ptr %0, i64 776
  %682 = load double, ptr %681, align 8, !tbaa !56
  %683 = getelementptr inbounds i8, ptr %0, i64 58920
  %684 = getelementptr inbounds i8, ptr %0, i64 58984
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %667, double noundef %682, ptr noundef nonnull %668, ptr noundef nonnull %669, ptr noundef nonnull %683, ptr noundef nonnull %684, i1 noundef zeroext true, ptr noundef nonnull %7, ptr noundef nonnull %680, ptr noundef %3)
  %685 = getelementptr inbounds i8, ptr %0, i64 55416
  call void @_ZN11alglib_impl26hessianpoplatestifpossibleEPNS_12xbfgshessianEPNS_8ae_stateE(ptr noundef nonnull %685, ptr noundef %3)
  %686 = getelementptr inbounds i8, ptr %0, i64 832
  %687 = getelementptr inbounds i8, ptr %0, i64 61960
  call void @_ZN11alglib_impl15hessianupdatev2EPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_lbblPNS_8ae_stateE(ptr noundef nonnull %685, ptr noundef nonnull %686, ptr noundef nonnull %687, ptr noundef nonnull %667, ptr noundef nonnull %680, i64 noundef 2, i1 noundef zeroext true, i1 noundef zeroext %647, i64 noundef 1, ptr noundef %3)
  br i1 %647, label %688, label %691

688:                                              ; preds = %664
  %689 = load double, ptr %8, align 8, !tbaa !48
  %690 = fdiv double %675, %674
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1383, double noundef %689, double noundef %674, double noundef %675, double noundef %690)
  br label %691

691:                                              ; preds = %688, %664
  %692 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %674, double noundef 0.000000e+00)
  br i1 %692, label %698, label %693

693:                                              ; preds = %691
  %694 = fsub double %672, %.01213
  %695 = load double, ptr @_ZN11alglib_implL30nlcsqp_sufficientdecreasesigmaE, align 8, !tbaa !48
  %696 = fmul double %674, %695
  %697 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %694, double noundef %696)
  br i1 %697, label %698, label %699

698:                                              ; preds = %693, %691
  br label %699

699:                                              ; preds = %698, %693
  %.21202 = phi double [ %.01213, %698 ], [ %672, %693 ]
  %.11136 = phi i8 [ 1, %698 ], [ %.01135, %693 ]
  %.11126 = phi i8 [ 0, %698 ], [ %.01125, %693 ]
  %.11115 = phi i8 [ 0, %698 ], [ %679, %693 ]
  call void @_ZN11alglib_impl35smoothnessmonitorfinalizelinesearchEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1, ptr noundef %3)
  br label %700

700:                                              ; preds = %525, %699
  %.31203 = phi double [ %495, %525 ], [ %.21202, %699 ]
  %.21146 = phi double [ %497, %525 ], [ %674, %699 ]
  %.21137 = phi i8 [ %.01135, %525 ], [ %.11136, %699 ]
  %.21127 = phi i8 [ %.01125, %525 ], [ %.11126, %699 ]
  %.21116 = phi i8 [ %502, %525 ], [ %.11115, %699 ]
  %.3 = phi i8 [ 0, %525 ], [ %.0, %699 ]
  %701 = getelementptr inbounds i8, ptr %0, i64 59072
  %702 = getelementptr inbounds i8, ptr %0, i64 384
  %703 = getelementptr inbounds i8, ptr %0, i64 256
  %704 = getelementptr inbounds i8, ptr %0, i64 448
  %705 = getelementptr inbounds i8, ptr %0, i64 320
  %706 = call noundef zeroext i1 @_ZN11alglib_impl26enforceboundaryconstraintsEPNS_9ae_vectorEPKS0_S3_S3_S3_llPNS_8ae_stateE(ptr noundef nonnull %701, ptr noundef nonnull %702, ptr noundef nonnull %703, ptr noundef nonnull %704, ptr noundef nonnull %705, i64 noundef %.01336, i64 noundef 0, ptr noundef %3)
  br i1 %2, label %707, label %713

707:                                              ; preds = %700
  %708 = trunc nuw i8 %.01103 to i1
  %709 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %708, i64 noundef -8, i64 noundef 8, ptr noundef %3)
  %710 = getelementptr inbounds i8, ptr %0, i64 62352
  store i64 %709, ptr %710, align 8, !tbaa !61
  %711 = trunc nuw i8 %.01238 to i1
  br i1 %711, label %712, label %1200

712:                                              ; preds = %707
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1154)
  br label %1200

713:                                              ; preds = %700
  %714 = trunc nuw i8 %.21127 to i1
  %715 = fsub double %.31203, %.01213
  br i1 %714, label %716, label %._crit_edge1649

716:                                              ; preds = %713
  %717 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %715, ptr noundef %3)
  %718 = load double, ptr @_ZN11alglib_implL21nlcsqp_stagnationepsfE, align 8, !tbaa !48
  %719 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %.01213, ptr noundef %3)
  %720 = fmul double %718, %719
  %721 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %717, double noundef %720)
  br label %._crit_edge1649

._crit_edge1649:                                  ; preds = %713, %716
  %722 = phi i1 [ %721, %716 ], [ false, %713 ]
  %723 = zext i1 %722 to i8
  %724 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %715, ptr noundef %3)
  %725 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %.01213, double noundef %.31203, double noundef 1.000000e+00, ptr noundef %3)
  %726 = fdiv double %724, %725
  %727 = getelementptr inbounds i8, ptr %0, i64 59192
  %728 = load ptr, ptr %727, align 8, !tbaa !43
  %729 = load double, ptr %728, align 8, !tbaa !48
  %730 = getelementptr inbounds i8, ptr %0, i64 1592
  %731 = load ptr, ptr %730, align 8, !tbaa !43
  %732 = load double, ptr %731, align 8, !tbaa !48
  %733 = getelementptr inbounds i8, ptr %0, i64 952
  %734 = load ptr, ptr %733, align 8, !tbaa !43
  %735 = load double, ptr %734, align 8, !tbaa !48
  %736 = fneg double %735
  %737 = fmul double %732, %736
  %738 = call double @llvm.fmuladd.f64(double %729, double %732, double %737)
  %739 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %738, ptr noundef %3)
  %740 = load ptr, ptr %727, align 8, !tbaa !43
  %741 = load double, ptr %740, align 8, !tbaa !48
  %742 = load ptr, ptr %730, align 8, !tbaa !43
  %743 = load double, ptr %742, align 8, !tbaa !48
  %744 = fmul double %741, %743
  %745 = load ptr, ptr %733, align 8, !tbaa !43
  %746 = load double, ptr %745, align 8, !tbaa !48
  %747 = fmul double %743, %746
  %748 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %744, double noundef %747, double noundef 1.000000e+00, ptr noundef %3)
  %749 = fdiv double %739, %748
  %750 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %726, double noundef %749, ptr noundef %3)
  %751 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %714, double noundef %750, double noundef 1.000000e+50, ptr noundef %3)
  %752 = getelementptr inbounds i8, ptr %0, i64 60848
  %753 = getelementptr inbounds i8, ptr %0, i64 61448
  %754 = load double, ptr %11, align 8, !tbaa !48
  %755 = load double, ptr %12, align 8, !tbaa !48
  %756 = trunc nuw i8 %.01238 to i1
  %757 = call noundef zeroext i1 @_ZN11alglib_implL28nlcsqp_penaltiesneedincreaseEPNS_11minsqpstateEPKNS_11varsfuncjacEPKNS_9ae_vectorEddbPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %752, ptr noundef nonnull %753, double noundef %754, double noundef %755, i1 noundef zeroext %756, ptr noundef %3)
  %.11224 = select i1 %757, i8 1, i8 %.01223
  %.31128 = select i1 %757, i8 0, i8 %.21127
  %.31117 = select i1 %757, i8 0, i8 %.21116
  br i1 %756, label %758, label %1077

758:                                              ; preds = %._crit_edge1649
  %759 = getelementptr inbounds i8, ptr %0, i64 896
  %760 = getelementptr inbounds i8, ptr %0, i64 59136
  %761 = getelementptr inbounds i8, ptr %0, i64 61960
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %761, ptr noundef %3)
  %762 = getelementptr inbounds i8, ptr %0, i64 62024
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %762, ptr noundef %3)
  %763 = getelementptr inbounds i8, ptr %0, i64 832
  %764 = getelementptr inbounds i8, ptr %0, i64 776
  %765 = load double, ptr %764, align 8, !tbaa !56
  %766 = getelementptr inbounds i8, ptr %0, i64 960
  %767 = getelementptr inbounds i8, ptr %0, i64 58920
  %768 = getelementptr inbounds i8, ptr %0, i64 58984
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %763, double noundef %765, ptr noundef nonnull %759, ptr noundef nonnull %766, ptr noundef nonnull %767, ptr noundef nonnull %768, i1 noundef zeroext true, ptr noundef nonnull %6, ptr noundef nonnull %761, ptr noundef %3)
  %769 = load double, ptr %764, align 8, !tbaa !56
  %770 = getelementptr inbounds i8, ptr %0, i64 59200
  call void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %701, double noundef %769, ptr noundef nonnull %760, ptr noundef nonnull %770, ptr noundef nonnull %767, ptr noundef nonnull %768, i1 noundef zeroext true, ptr noundef nonnull %7, ptr noundef nonnull %762, ptr noundef %3)
  %.not1353.not1455 = icmp sgt i64 %.01336, 0
  br i1 %.not1353.not1455, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %758
  %771 = getelementptr inbounds i8, ptr %0, i64 59128
  %772 = load ptr, ptr %771, align 8, !tbaa !43
  %773 = getelementptr inbounds i8, ptr %0, i64 888
  %774 = load ptr, ptr %773, align 8, !tbaa !43
  %775 = add nsw i64 %.01336, -1
  %xtraiter = and i64 %.01336, 3
  %776 = icmp ult i64 %775, 3
  br i1 %776, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.lr.ph
  %unroll_iter = and i64 %.01336, 9223372036854775804
  br label %777

777:                                              ; preds = %777, %.lr.ph.new
  %.211791457 = phi double [ 0.000000e+00, %.lr.ph.new ], [ %804, %777 ]
  %storemerge13521456 = phi i64 [ 0, %.lr.ph.new ], [ %805, %777 ]
  %niter = phi i64 [ 0, %.lr.ph.new ], [ %niter.next.3, %777 ]
  %778 = getelementptr inbounds double, ptr %772, i64 %storemerge13521456
  %779 = load double, ptr %778, align 8, !tbaa !48
  %780 = getelementptr inbounds double, ptr %774, i64 %storemerge13521456
  %781 = load double, ptr %780, align 8, !tbaa !48
  %782 = fsub double %779, %781
  %783 = call double @llvm.fmuladd.f64(double %782, double %782, double %.211791457)
  %784 = or disjoint i64 %storemerge13521456, 1
  %785 = getelementptr inbounds double, ptr %772, i64 %784
  %786 = load double, ptr %785, align 8, !tbaa !48
  %787 = getelementptr inbounds double, ptr %774, i64 %784
  %788 = load double, ptr %787, align 8, !tbaa !48
  %789 = fsub double %786, %788
  %790 = call double @llvm.fmuladd.f64(double %789, double %789, double %783)
  %791 = or disjoint i64 %storemerge13521456, 2
  %792 = getelementptr inbounds double, ptr %772, i64 %791
  %793 = load double, ptr %792, align 8, !tbaa !48
  %794 = getelementptr inbounds double, ptr %774, i64 %791
  %795 = load double, ptr %794, align 8, !tbaa !48
  %796 = fsub double %793, %795
  %797 = call double @llvm.fmuladd.f64(double %796, double %796, double %790)
  %798 = or disjoint i64 %storemerge13521456, 3
  %799 = getelementptr inbounds double, ptr %772, i64 %798
  %800 = load double, ptr %799, align 8, !tbaa !48
  %801 = getelementptr inbounds double, ptr %774, i64 %798
  %802 = load double, ptr %801, align 8, !tbaa !48
  %803 = fsub double %800, %802
  %804 = call double @llvm.fmuladd.f64(double %803, double %803, double %797)
  %805 = add nuw nsw i64 %storemerge13521456, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.loopexit.unr-lcssa, label %777, !llvm.loop !79

._crit_edge.loopexit.unr-lcssa:                   ; preds = %777, %.lr.ph
  %.lcssa1770.ph = phi double [ poison, %.lr.ph ], [ %803, %777 ]
  %.lcssa1769.ph = phi double [ poison, %.lr.ph ], [ %804, %777 ]
  %.211791457.unr = phi double [ 0.000000e+00, %.lr.ph ], [ %804, %777 ]
  %storemerge13521456.unr = phi i64 [ 0, %.lr.ph ], [ %805, %777 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge.loopexit.unr-lcssa, %.epil.preheader
  %.211791457.epil = phi double [ %811, %.epil.preheader ], [ %.211791457.unr, %._crit_edge.loopexit.unr-lcssa ]
  %storemerge13521456.epil = phi i64 [ %812, %.epil.preheader ], [ %storemerge13521456.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %806 = getelementptr inbounds double, ptr %772, i64 %storemerge13521456.epil
  %807 = load double, ptr %806, align 8, !tbaa !48
  %808 = getelementptr inbounds double, ptr %774, i64 %storemerge13521456.epil
  %809 = load double, ptr %808, align 8, !tbaa !48
  %810 = fsub double %807, %809
  %811 = call double @llvm.fmuladd.f64(double %810, double %810, double %.211791457.epil)
  %812 = add nuw nsw i64 %storemerge13521456.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.epil.preheader, !llvm.loop !80

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.epil.preheader, %758
  %storemerge1352.lcssa = phi i64 [ 0, %758 ], [ %.01336, %.epil.preheader ], [ %.01336, %._crit_edge.loopexit.unr-lcssa ]
  %.81304.lcssa = phi double [ %726, %758 ], [ %.lcssa1770.ph, %._crit_edge.loopexit.unr-lcssa ], [ %810, %.epil.preheader ]
  %.21179.lcssa = phi double [ 0.000000e+00, %758 ], [ %.lcssa1769.ph, %._crit_edge.loopexit.unr-lcssa ], [ %811, %.epil.preheader ]
  store i64 %storemerge1352.lcssa, ptr %5, align 8, !tbaa !44
  %813 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.21179.lcssa, double noundef 0.000000e+00)
  br i1 %813, label %.preheader1406, label %.loopexit

.preheader1406:                                   ; preds = %._crit_edge
  %814 = add i64 %.01326, %.01328
  %.not13541470 = icmp slt i64 %814, 0
  br i1 %.not13541470, label %.loopexit, label %.preheader1405.lr.ph

.preheader1405.lr.ph:                             ; preds = %.preheader1406
  %815 = getelementptr inbounds i8, ptr %0, i64 59128
  %816 = getelementptr inbounds i8, ptr %0, i64 888
  %817 = getelementptr inbounds i8, ptr %0, i64 59272
  %818 = getelementptr inbounds i8, ptr %0, i64 1032
  %819 = fadd double %.21179.lcssa, 2.500000e-31
  %820 = getelementptr inbounds i8, ptr %0, i64 1656
  %821 = add nuw i64 %814, 1
  %xtraiter1774 = and i64 %.01336, 1
  %822 = icmp eq i64 %.01336, 1
  %unroll_iter1779 = and i64 %.01336, 9223372036854775806
  %lcmp.mod1776.not = icmp eq i64 %xtraiter1774, 0
  br label %.preheader1405

.preheader1405:                                   ; preds = %.preheader1405.lr.ph, %._crit_edge1465
  %.212861472 = phi double [ %749, %.preheader1405.lr.ph ], [ %.31287.lcssa, %._crit_edge1465 ]
  %.813161471 = phi i64 [ 0, %.preheader1405.lr.ph ], [ %890, %._crit_edge1465 ]
  br i1 %.not1353.not1455, label %.lr.ph1464, label %._crit_edge1465

.lr.ph1464:                                       ; preds = %.preheader1405
  %823 = load ptr, ptr %815, align 8, !tbaa !43
  %824 = load ptr, ptr %816, align 8, !tbaa !43
  %825 = load ptr, ptr %817, align 8, !tbaa !43
  %826 = getelementptr inbounds ptr, ptr %825, i64 %.813161471
  %827 = load ptr, ptr %826, align 8, !tbaa !68
  %828 = load ptr, ptr %818, align 8, !tbaa !43
  %829 = getelementptr inbounds ptr, ptr %828, i64 %.813161471
  %830 = load ptr, ptr %829, align 8, !tbaa !68
  br i1 %822, label %._crit_edge1465.loopexit.unr-lcssa, label %.lr.ph1464.new

.lr.ph1464.new:                                   ; preds = %.lr.ph1464, %.lr.ph1464.new
  %storemerge13621461 = phi i64 [ %863, %.lr.ph1464.new ], [ 0, %.lr.ph1464 ]
  %831 = phi <2 x double> [ %862, %.lr.ph1464.new ], [ zeroinitializer, %.lr.ph1464 ]
  %niter1780 = phi i64 [ %niter1780.next.1, %.lr.ph1464.new ], [ 0, %.lr.ph1464 ]
  %832 = getelementptr inbounds double, ptr %823, i64 %storemerge13621461
  %833 = load double, ptr %832, align 8, !tbaa !48
  %834 = getelementptr inbounds double, ptr %824, i64 %storemerge13621461
  %835 = load double, ptr %834, align 8, !tbaa !48
  %836 = getelementptr inbounds double, ptr %827, i64 %storemerge13621461
  %837 = load double, ptr %836, align 8, !tbaa !48
  %838 = getelementptr inbounds double, ptr %830, i64 %storemerge13621461
  %839 = load double, ptr %838, align 8, !tbaa !48
  %840 = insertelement <2 x double> poison, double %837, i64 0
  %841 = insertelement <2 x double> %840, double %833, i64 1
  %842 = insertelement <2 x double> poison, double %839, i64 0
  %843 = insertelement <2 x double> %842, double %835, i64 1
  %844 = fsub <2 x double> %841, %843
  %845 = shufflevector <2 x double> %844, <2 x double> poison, <2 x i32> zeroinitializer
  %846 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %844, <2 x double> %845, <2 x double> %831)
  %847 = or disjoint i64 %storemerge13621461, 1
  %848 = getelementptr inbounds double, ptr %823, i64 %847
  %849 = load double, ptr %848, align 8, !tbaa !48
  %850 = getelementptr inbounds double, ptr %824, i64 %847
  %851 = load double, ptr %850, align 8, !tbaa !48
  %852 = getelementptr inbounds double, ptr %827, i64 %847
  %853 = load double, ptr %852, align 8, !tbaa !48
  %854 = getelementptr inbounds double, ptr %830, i64 %847
  %855 = load double, ptr %854, align 8, !tbaa !48
  %856 = insertelement <2 x double> poison, double %853, i64 0
  %857 = insertelement <2 x double> %856, double %849, i64 1
  %858 = insertelement <2 x double> poison, double %855, i64 0
  %859 = insertelement <2 x double> %858, double %851, i64 1
  %860 = fsub <2 x double> %857, %859
  %861 = shufflevector <2 x double> %860, <2 x double> poison, <2 x i32> zeroinitializer
  %862 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %860, <2 x double> %861, <2 x double> %846)
  %863 = add nuw nsw i64 %storemerge13621461, 2
  %niter1780.next.1 = add i64 %niter1780, 2
  %niter1780.ncmp.1 = icmp eq i64 %niter1780.next.1, %unroll_iter1779
  br i1 %niter1780.ncmp.1, label %._crit_edge1465.loopexit.unr-lcssa.loopexit, label %.lr.ph1464.new, !llvm.loop !82

._crit_edge1465.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1464.new
  %864 = extractelement <2 x double> %860, i64 0
  br label %._crit_edge1465.loopexit.unr-lcssa

._crit_edge1465.loopexit.unr-lcssa:               ; preds = %._crit_edge1465.loopexit.unr-lcssa.loopexit, %.lr.ph1464
  %.lcssa1766.ph = phi <2 x double> [ poison, %.lr.ph1464 ], [ %862, %._crit_edge1465.loopexit.unr-lcssa.loopexit ]
  %.lcssa1765.ph = phi double [ poison, %.lr.ph1464 ], [ %864, %._crit_edge1465.loopexit.unr-lcssa.loopexit ]
  %storemerge13621461.unr = phi i64 [ 0, %.lr.ph1464 ], [ %863, %._crit_edge1465.loopexit.unr-lcssa.loopexit ]
  %.unr = phi <2 x double> [ zeroinitializer, %.lr.ph1464 ], [ %862, %._crit_edge1465.loopexit.unr-lcssa.loopexit ]
  br i1 %lcmp.mod1776.not, label %._crit_edge1465, label %._crit_edge1465.loopexit.epilog-lcssa

._crit_edge1465.loopexit.epilog-lcssa:            ; preds = %._crit_edge1465.loopexit.unr-lcssa
  %865 = getelementptr inbounds double, ptr %823, i64 %storemerge13621461.unr
  %866 = load double, ptr %865, align 8, !tbaa !48
  %867 = getelementptr inbounds double, ptr %824, i64 %storemerge13621461.unr
  %868 = load double, ptr %867, align 8, !tbaa !48
  %869 = getelementptr inbounds double, ptr %827, i64 %storemerge13621461.unr
  %870 = load double, ptr %869, align 8, !tbaa !48
  %871 = getelementptr inbounds double, ptr %830, i64 %storemerge13621461.unr
  %872 = load double, ptr %871, align 8, !tbaa !48
  %873 = insertelement <2 x double> poison, double %870, i64 0
  %874 = insertelement <2 x double> %873, double %866, i64 1
  %875 = insertelement <2 x double> poison, double %872, i64 0
  %876 = insertelement <2 x double> %875, double %868, i64 1
  %877 = fsub <2 x double> %874, %876
  %878 = shufflevector <2 x double> %877, <2 x double> poison, <2 x i32> zeroinitializer
  %879 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %877, <2 x double> %878, <2 x double> %.unr)
  %880 = extractelement <2 x double> %877, i64 0
  br label %._crit_edge1465

._crit_edge1465:                                  ; preds = %._crit_edge1465.loopexit.epilog-lcssa, %._crit_edge1465.loopexit.unr-lcssa, %.preheader1405
  %storemerge1362.lcssa = phi i64 [ 0, %.preheader1405 ], [ %.01336, %._crit_edge1465.loopexit.unr-lcssa ], [ %.01336, %._crit_edge1465.loopexit.epilog-lcssa ]
  %.31287.lcssa = phi double [ %.212861472, %.preheader1405 ], [ %.lcssa1765.ph, %._crit_edge1465.loopexit.unr-lcssa ], [ %880, %._crit_edge1465.loopexit.epilog-lcssa ]
  %881 = phi <2 x double> [ zeroinitializer, %.preheader1405 ], [ %.lcssa1766.ph, %._crit_edge1465.loopexit.unr-lcssa ], [ %879, %._crit_edge1465.loopexit.epilog-lcssa ]
  store i64 %storemerge1362.lcssa, ptr %5, align 8, !tbaa !44
  %882 = extractelement <2 x double> %881, i64 1
  %883 = fdiv double %882, %819
  %884 = load ptr, ptr %820, align 8, !tbaa !43
  %885 = getelementptr inbounds double, ptr %884, i64 %.813161471
  %886 = load double, ptr %885, align 8, !tbaa !48
  %887 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %886, double noundef %883, ptr noundef %3)
  %888 = load ptr, ptr %820, align 8, !tbaa !43
  %889 = getelementptr inbounds double, ptr %888, i64 %.813161471
  store double %887, ptr %889, align 8, !tbaa !48
  %890 = add nuw i64 %.813161471, 1
  %exitcond1628.not = icmp eq i64 %.813161471, %814
  br i1 %exitcond1628.not, label %.loopexit, label %.preheader1405, !llvm.loop !83

.loopexit:                                        ; preds = %._crit_edge1465, %.preheader1406, %._crit_edge
  %.91317 = phi i64 [ %.01308, %._crit_edge ], [ 0, %.preheader1406 ], [ %821, %._crit_edge1465 ]
  %.101306 = phi double [ %.81304.lcssa, %._crit_edge ], [ %.81304.lcssa, %.preheader1406 ], [ %883, %._crit_edge1465 ]
  %.41288 = phi double [ %749, %._crit_edge ], [ %749, %.preheader1406 ], [ %.31287.lcssa, %._crit_edge1465 ]
  %891 = phi <2 x double> [ %119, %._crit_edge ], [ %119, %.preheader1406 ], [ %881, %._crit_edge1465 ]
  %892 = trunc nuw i8 %.01236 to i1
  br i1 %892, label %897, label %893

893:                                              ; preds = %.loopexit
  %894 = trunc nuw i8 %.01234 to i1
  br i1 %894, label %895, label %995

895:                                              ; preds = %893
  %896 = trunc nuw i8 %.21137 to i1
  br i1 %896, label %897, label %995

897:                                              ; preds = %.loopexit, %895, %993
  %.101318 = phi i64 [ %.121320, %993 ], [ %.91317, %895 ], [ %.91317, %.loopexit ]
  %.111307 = phi double [ %.13, %993 ], [ %.101306, %895 ], [ %.101306, %.loopexit ]
  %.51289 = phi double [ %.71291, %993 ], [ %.41288, %895 ], [ %.41288, %.loopexit ]
  %.21242 = phi double [ %.41244, %993 ], [ %751, %895 ], [ %751, %.loopexit ]
  %.21225 = phi i8 [ %.41227, %993 ], [ %.11224, %895 ], [ %.11224, %.loopexit ]
  %.11216 = phi i8 [ %.31218, %993 ], [ %723, %895 ], [ %723, %.loopexit ]
  %.41204 = phi double [ %.61206, %993 ], [ %.31203, %895 ], [ %.31203, %.loopexit ]
  %.21189 = phi i64 [ %994, %993 ], [ 0, %895 ], [ 0, %.loopexit ]
  %.31180 = phi double [ %.51182, %993 ], [ %.21179.lcssa, %895 ], [ %.21179.lcssa, %.loopexit ]
  %.31147 = phi double [ %.51149, %993 ], [ %.21146, %895 ], [ %.21146, %.loopexit ]
  %.31138 = phi i8 [ %.51140, %993 ], [ %.21137, %895 ], [ %.21137, %.loopexit ]
  %.41129 = phi i8 [ %.61131, %993 ], [ %.31128, %895 ], [ %.31128, %.loopexit ]
  %.41118 = phi i8 [ %.61120, %993 ], [ %.31117, %895 ], [ %.31117, %.loopexit ]
  %.4 = phi i8 [ %.6, %993 ], [ %.3, %895 ], [ %.3, %.loopexit ]
  %898 = phi <2 x double> [ %991, %993 ], [ %891, %895 ], [ %891, %.loopexit ]
  %899 = icmp sgt i64 %.21189, 1
  br i1 %899, label %995, label %900

900:                                              ; preds = %897
  switch i64 %.21189, label %908 [
    i64 1, label %901
    i64 0, label %903
  ]

901:                                              ; preds = %900
  %902 = trunc nuw i8 %.01196 to i1
  br i1 %902, label %908, label %995

903:                                              ; preds = %900
  %904 = getelementptr inbounds i8, ptr %0, i64 832
  %905 = getelementptr inbounds i8, ptr %0, i64 61512
  %906 = getelementptr inbounds i8, ptr %0, i64 62344
  %907 = load i64, ptr %906, align 8, !tbaa !66
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %1, ptr noundef nonnull %904, ptr noundef nonnull %905, double noundef 1.000000e+00, i64 noundef %907, i64 noundef -1, ptr noundef %3)
  br label %913

908:                                              ; preds = %901, %900
  %909 = getelementptr inbounds i8, ptr %0, i64 832
  %910 = getelementptr inbounds i8, ptr %0, i64 61576
  %911 = getelementptr inbounds i8, ptr %0, i64 62344
  %912 = load i64, ptr %911, align 8, !tbaa !66
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %1, ptr noundef nonnull %909, ptr noundef nonnull %910, double noundef 1.000000e+00, i64 noundef %912, i64 noundef -1, ptr noundef %3)
  br label %913

913:                                              ; preds = %903, %908, %976
  %.111319 = phi i64 [ %.101318, %903 ], [ %.101318, %908 ], [ %.01308, %976 ]
  %.12 = phi double [ %.111307, %903 ], [ %.111307, %908 ], [ %.01296, %976 ]
  %.61290 = phi double [ %.51289, %903 ], [ %.51289, %908 ], [ %.01284, %976 ]
  %.31243 = phi double [ %.21242, %903 ], [ %.21242, %908 ], [ %.01240, %976 ]
  %.31226 = phi i8 [ %.21225, %903 ], [ %.21225, %908 ], [ %.01223, %976 ]
  %.21217 = phi i8 [ %.11216, %903 ], [ %.11216, %908 ], [ %.01215, %976 ]
  %.51205 = phi double [ %.41204, %903 ], [ %.41204, %908 ], [ %.01200, %976 ]
  %.31190 = phi i64 [ 0, %903 ], [ %.21189, %908 ], [ %.01187, %976 ]
  %.41181 = phi double [ %.31180, %903 ], [ %.31180, %908 ], [ %.01177, %976 ]
  %.41148 = phi double [ %.31147, %903 ], [ %.31147, %908 ], [ %.01144, %976 ]
  %.41139 = phi i8 [ %.31138, %903 ], [ %.31138, %908 ], [ %.01135, %976 ]
  %.51130 = phi i8 [ %.41129, %903 ], [ %.41129, %908 ], [ %.01125, %976 ]
  %.51119 = phi i8 [ %.41118, %903 ], [ %.41118, %908 ], [ %.01114, %976 ]
  %.5 = phi i8 [ %.4, %903 ], [ %.4, %908 ], [ %.0, %976 ]
  %914 = phi <2 x double> [ %898, %903 ], [ %898, %908 ], [ %119, %976 ]
  %915 = call noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1, ptr noundef %3)
  br i1 %915, label %.preheader1404, label %990

.preheader1404:                                   ; preds = %913
  store i64 0, ptr %5, align 8, !tbaa !44
  %.not1356.not1478 = icmp sgt i64 %.01336, 0
  br i1 %.not1356.not1478, label %.lr.ph1480, label %._crit_edge1481

.lr.ph1480:                                       ; preds = %.preheader1404
  %916 = getelementptr inbounds i8, ptr %1, i64 792
  %917 = getelementptr inbounds i8, ptr %0, i64 60328
  %918 = getelementptr inbounds i8, ptr %0, i64 312
  %919 = getelementptr inbounds i8, ptr %0, i64 440
  %920 = getelementptr inbounds i8, ptr %0, i64 376
  %921 = getelementptr inbounds i8, ptr %0, i64 504
  br label %922

922:                                              ; preds = %.lr.ph1480, %960
  %storemerge13551479 = phi i64 [ 0, %.lr.ph1480 ], [ %962, %960 ]
  %923 = load ptr, ptr %916, align 8, !tbaa !43
  %924 = getelementptr inbounds double, ptr %923, i64 %storemerge13551479
  %925 = load double, ptr %924, align 8, !tbaa !48
  %926 = load ptr, ptr %917, align 8, !tbaa !43
  %927 = getelementptr inbounds double, ptr %926, i64 %storemerge13551479
  store double %925, ptr %927, align 8, !tbaa !48
  %928 = load ptr, ptr %918, align 8, !tbaa !43
  %929 = getelementptr inbounds i8, ptr %928, i64 %storemerge13551479
  %930 = load i8, ptr %929, align 1, !tbaa !45, !range !46, !noundef !47
  %931 = trunc nuw i8 %930 to i1
  br i1 %931, label %932, label %943

932:                                              ; preds = %922
  %933 = load ptr, ptr %917, align 8, !tbaa !43
  %934 = getelementptr inbounds double, ptr %933, i64 %storemerge13551479
  %935 = load double, ptr %934, align 8, !tbaa !48
  %936 = load ptr, ptr %919, align 8, !tbaa !43
  %937 = getelementptr inbounds double, ptr %936, i64 %storemerge13551479
  %938 = load double, ptr %937, align 8, !tbaa !48
  %939 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %935, double noundef %938, ptr noundef %3)
  %940 = load ptr, ptr %917, align 8, !tbaa !43
  %941 = load i64, ptr %5, align 8, !tbaa !44
  %942 = getelementptr inbounds double, ptr %940, i64 %941
  store double %939, ptr %942, align 8, !tbaa !48
  br label %943

943:                                              ; preds = %932, %922
  %944 = phi i64 [ %941, %932 ], [ %storemerge13551479, %922 ]
  %945 = load ptr, ptr %920, align 8, !tbaa !43
  %946 = getelementptr inbounds i8, ptr %945, i64 %944
  %947 = load i8, ptr %946, align 1, !tbaa !45, !range !46, !noundef !47
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %960

949:                                              ; preds = %943
  %950 = load ptr, ptr %917, align 8, !tbaa !43
  %951 = getelementptr inbounds double, ptr %950, i64 %944
  %952 = load double, ptr %951, align 8, !tbaa !48
  %953 = load ptr, ptr %921, align 8, !tbaa !43
  %954 = getelementptr inbounds double, ptr %953, i64 %944
  %955 = load double, ptr %954, align 8, !tbaa !48
  %956 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %952, double noundef %955, ptr noundef %3)
  %957 = load ptr, ptr %917, align 8, !tbaa !43
  %958 = load i64, ptr %5, align 8, !tbaa !44
  %959 = getelementptr inbounds double, ptr %957, i64 %958
  store double %956, ptr %959, align 8, !tbaa !48
  br label %960

960:                                              ; preds = %943, %949
  %961 = phi i64 [ %944, %943 ], [ %958, %949 ]
  %962 = add nsw i64 %961, 1
  store i64 %962, ptr %5, align 8, !tbaa !44
  %.not1356.not = icmp slt i64 %962, %.01336
  br i1 %.not1356.not, label %922, label %._crit_edge1481, !llvm.loop !84

._crit_edge1481:                                  ; preds = %960, %.preheader1404
  %963 = getelementptr inbounds i8, ptr %0, i64 60272
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %963, ptr noundef %3)
  %964 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 1, ptr %964, align 8, !tbaa !54
  %965 = trunc nuw i8 %.01238 to i1
  br i1 %965, label %966, label %1229

966:                                              ; preds = %._crit_edge1481
  %967 = getelementptr inbounds i8, ptr %0, i64 62456
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %967, ptr noundef %3)
  br label %1229

968:                                              ; preds = %116
  %969 = trunc nuw i8 %.01238 to i1
  br i1 %969, label %970, label %972

970:                                              ; preds = %968
  %971 = getelementptr inbounds i8, ptr %0, i64 62456
  tail call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %971, ptr noundef %3)
  br label %972

972:                                              ; preds = %970, %968
  %973 = getelementptr inbounds i8, ptr %0, i64 760
  store i8 0, ptr %973, align 8, !tbaa !54
  %974 = getelementptr inbounds i8, ptr %0, i64 60248
  %975 = tail call noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %974, ptr noundef %3)
  br i1 %975, label %976, label %990

976:                                              ; preds = %972
  %977 = add i64 %.01326, %.01328
  %978 = add i64 %977, 1
  %979 = getelementptr inbounds i8, ptr %0, i64 60336
  %980 = getelementptr inbounds i8, ptr %1, i64 800
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %978, ptr noundef nonnull %979, ptr noundef nonnull %980, ptr noundef %3)
  %981 = getelementptr inbounds i8, ptr %0, i64 60400
  %982 = getelementptr inbounds i8, ptr %1, i64 872
  tail call void @_ZN11alglib_impl11rcopyallocmEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef %978, i64 noundef %.01336, ptr noundef nonnull %981, ptr noundef nonnull %982, ptr noundef %3)
  %983 = getelementptr inbounds i8, ptr %0, i64 60272
  %984 = getelementptr inbounds i8, ptr %0, i64 58920
  %985 = getelementptr inbounds i8, ptr %0, i64 58984
  %986 = getelementptr inbounds i8, ptr %0, i64 768
  %987 = load double, ptr %986, align 8, !tbaa !63
  %988 = tail call noundef double @_ZN11alglib_implL20nlcsqp_rawlagrangianEPNS_11minsqpstateEPKNS_9ae_vectorES4_S4_S4_dPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %983, ptr noundef nonnull %979, ptr noundef nonnull %984, ptr noundef nonnull %985, double noundef %987, ptr noundef %3)
  %989 = getelementptr inbounds i8, ptr %1, i64 864
  store double %988, ptr %989, align 8, !tbaa !85
  br label %913

990:                                              ; preds = %972, %913
  %.121320 = phi i64 [ %.111319, %913 ], [ %.01308, %972 ]
  %.13 = phi double [ %.12, %913 ], [ %.01296, %972 ]
  %.71291 = phi double [ %.61290, %913 ], [ %.01284, %972 ]
  %.41244 = phi double [ %.31243, %913 ], [ %.01240, %972 ]
  %.41227 = phi i8 [ %.31226, %913 ], [ %.01223, %972 ]
  %.31218 = phi i8 [ %.21217, %913 ], [ %.01215, %972 ]
  %.61206 = phi double [ %.51205, %913 ], [ %.01200, %972 ]
  %.41191 = phi i64 [ %.31190, %913 ], [ %.01187, %972 ]
  %.51182 = phi double [ %.41181, %913 ], [ %.01177, %972 ]
  %.51149 = phi double [ %.41148, %913 ], [ %.01144, %972 ]
  %.51140 = phi i8 [ %.41139, %913 ], [ %.01135, %972 ]
  %.61131 = phi i8 [ %.51130, %913 ], [ %.01125, %972 ]
  %.61120 = phi i8 [ %.51119, %913 ], [ %.01114, %972 ]
  %.6 = phi i8 [ %.5, %913 ], [ %.0, %972 ]
  %991 = phi <2 x double> [ %914, %913 ], [ %119, %972 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1161)
  switch i64 %.41191, label %993 [
    i64 0, label %.sink.split
    i64 1, label %992
  ]

992:                                              ; preds = %990
  br label %.sink.split

.sink.split:                                      ; preds = %990, %992
  %.str.1162.sink = phi ptr [ @.str.1386, %992 ], [ @.str.1162, %990 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull %.str.1162.sink)
  br label %993

993:                                              ; preds = %.sink.split, %990
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1169)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1170)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1171)
  call void @_ZN11alglib_impl46smoothnessmonitortracelagrangianprobingresultsEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1, ptr noundef %3)
  %994 = add nsw i64 %.41191, 1
  br label %897

995:                                              ; preds = %897, %901, %893, %895
  %.81292 = phi double [ %.51289, %897 ], [ %.51289, %901 ], [ %.41288, %895 ], [ %.41288, %893 ]
  %.51245 = phi double [ %.21242, %897 ], [ %.21242, %901 ], [ %751, %895 ], [ %751, %893 ]
  %.51228 = phi i8 [ %.21225, %897 ], [ %.21225, %901 ], [ %.11224, %895 ], [ %.11224, %893 ]
  %.41219 = phi i8 [ %.11216, %897 ], [ %.11216, %901 ], [ %723, %895 ], [ %723, %893 ]
  %.71207 = phi double [ %.41204, %897 ], [ %.41204, %901 ], [ %.31203, %895 ], [ %.31203, %893 ]
  %.51192 = phi i64 [ %.21189, %897 ], [ 1, %901 ], [ %.01187, %895 ], [ %.01187, %893 ]
  %.61183 = phi double [ %.31180, %897 ], [ %.31180, %901 ], [ %.21179.lcssa, %895 ], [ %.21179.lcssa, %893 ]
  %.61150 = phi double [ %.31147, %897 ], [ %.31147, %901 ], [ %.21146, %895 ], [ %.21146, %893 ]
  %.61141 = phi i8 [ %.31138, %897 ], [ %.31138, %901 ], [ %.21137, %895 ], [ %.21137, %893 ]
  %.71132 = phi i8 [ %.41129, %897 ], [ %.41129, %901 ], [ %.31128, %895 ], [ %.31128, %893 ]
  %.71121 = phi i8 [ %.41118, %897 ], [ %.41118, %901 ], [ %.31117, %895 ], [ %.31117, %893 ]
  %.7 = phi i8 [ %.4, %897 ], [ %.4, %901 ], [ %.3, %895 ], [ %.3, %893 ]
  %996 = phi <2 x double> [ %898, %897 ], [ %898, %901 ], [ %891, %895 ], [ %891, %893 ]
  %.not1357.not1482 = icmp sgt i64 %.01336, 0
  br i1 %.not1357.not1482, label %.lr.ph1486, label %._crit_edge1487

.lr.ph1486:                                       ; preds = %995
  %997 = getelementptr inbounds i8, ptr %0, i64 61504
  %998 = getelementptr inbounds i8, ptr %0, i64 832
  %999 = getelementptr inbounds i8, ptr %0, i64 776
  br label %1000

1000:                                             ; preds = %.lr.ph1486, %1000
  %.712801484 = phi double [ 0.000000e+00, %.lr.ph1486 ], [ %1008, %1000 ]
  %.1313211483 = phi i64 [ 0, %.lr.ph1486 ], [ %1009, %1000 ]
  %1001 = load ptr, ptr %997, align 8, !tbaa !43
  %1002 = getelementptr inbounds double, ptr %1001, i64 %.1313211483
  %1003 = load double, ptr %1002, align 8, !tbaa !48
  %1004 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1003, ptr noundef %3)
  %1005 = load double, ptr %999, align 8, !tbaa !56
  %1006 = call noundef double @_ZN11alglib_implL22nlcsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %998, i64 noundef %.1313211483, double noundef %1005, ptr noundef %3)
  %1007 = fdiv double %1004, %1006
  %1008 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.712801484, double noundef %1007, ptr noundef %3)
  %1009 = add nuw nsw i64 %.1313211483, 1
  %exitcond1629.not = icmp eq i64 %1009, %.01336
  br i1 %exitcond1629.not, label %._crit_edge1487, label %1000, !llvm.loop !91

._crit_edge1487:                                  ; preds = %1000, %995
  %.71280.lcssa = phi double [ 0.000000e+00, %995 ], [ %1008, %1000 ]
  %1010 = trunc nuw i8 %.71132 to i1
  %1011 = trunc nuw i8 %.71121 to i1
  %.str.1387..str.1388 = select i1 %1011, ptr @.str.1387, ptr @.str.1388
  %.str.1388.sink = select i1 %1010, ptr %.str.1387..str.1388, ptr @.str.1389
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull %.str.1388.sink)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1390, double noundef %.71280.lcssa)
  %1012 = trunc nuw i8 %.01232 to i1
  br i1 %1012, label %1013, label %.critedge1382

1013:                                             ; preds = %._crit_edge1487
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1391)
  %1014 = getelementptr inbounds i8, ptr %0, i64 58920
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1014, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1392)
  %1015 = getelementptr inbounds i8, ptr %0, i64 58984
  %1016 = add i64 %.01326, %.01328
  %1017 = add i64 %1016, %.01332
  %1018 = add i64 %1017, %.01330
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1015, i64 noundef 0, i64 noundef %1018, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1393)
  %1019 = getelementptr inbounds i8, ptr %0, i64 832
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1019, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1394)
  %1020 = getelementptr inbounds i8, ptr %0, i64 61448
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1020, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1395)
  %1021 = getelementptr inbounds i8, ptr %0, i64 59072
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1021, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1396)
  %1022 = getelementptr inbounds i8, ptr %0, i64 960
  call void @_ZN11alglib_impl16tracerowautoprecEPKNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %1022, i64 noundef 0, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1397)
  %1023 = getelementptr inbounds i8, ptr %0, i64 59200
  call void @_ZN11alglib_impl16tracerowautoprecEPKNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %1023, i64 noundef 0, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1398)
  %1024 = getelementptr inbounds i8, ptr %0, i64 61960
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1024, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1399)
  %1025 = getelementptr inbounds i8, ptr %0, i64 62024
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1025, i64 noundef 0, i64 noundef %.01336, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %.critedge1382

.critedge1382:                                    ; preds = %._crit_edge1487, %1013
  %1026 = getelementptr inbounds i8, ptr %0, i64 1592
  %1027 = load ptr, ptr %1026, align 8, !tbaa !43
  %1028 = load double, ptr %1027, align 8, !tbaa !48
  %1029 = getelementptr inbounds i8, ptr %0, i64 952
  %1030 = load ptr, ptr %1029, align 8, !tbaa !43
  %1031 = load double, ptr %1030, align 8, !tbaa !48
  %1032 = fmul double %1028, %1031
  %1033 = getelementptr inbounds i8, ptr %0, i64 59192
  %1034 = load ptr, ptr %1033, align 8, !tbaa !43
  %1035 = load double, ptr %1034, align 8, !tbaa !48
  %1036 = fmul double %1028, %1035
  %1037 = fsub double %1035, %1031
  %1038 = fmul double %1028, %1037
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1361, double noundef %1032, double noundef %1036, double noundef %1038)
  %1039 = fsub double %.71207, %.01213
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1400, double noundef %.01213, double noundef %.71207, double noundef %1039)
  %1040 = load ptr, ptr %1029, align 8, !tbaa !43
  %1041 = load double, ptr %1040, align 8, !tbaa !48
  %1042 = load ptr, ptr %1033, align 8, !tbaa !43
  %1043 = load double, ptr %1042, align 8, !tbaa !48
  %1044 = fsub double %1043, %1041
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1401, double noundef %1041, double noundef %1043, double noundef %1044)
  %1045 = getelementptr inbounds i8, ptr %0, i64 61960
  %1046 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %1045, ptr noundef %3)
  %1047 = getelementptr inbounds i8, ptr %0, i64 62024
  %1048 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %1047, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1402, double noundef %1046, double noundef %1048)
  %1049 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %1045, ptr noundef %3)
  %1050 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1049, ptr noundef %3)
  %1051 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %1047, ptr noundef %3)
  %1052 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1051, ptr noundef %3)
  %1053 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %1047, ptr noundef %3)
  %1054 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1053, ptr noundef %3)
  %1055 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01336, ptr noundef nonnull %1045, ptr noundef %3)
  %1056 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1055, ptr noundef %3)
  %1057 = fdiv double %1054, %1056
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1403, double noundef %1050, double noundef %1052, double noundef %1057)
  %1058 = getelementptr inbounds i8, ptr %0, i64 55416
  %1059 = getelementptr inbounds i8, ptr %0, i64 62088
  call void @_ZN11alglib_impl18hessiangetdiagonalEPNS_12xbfgshessianEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1058, ptr noundef nonnull %1059, ptr noundef %3)
  %1060 = getelementptr inbounds i8, ptr %0, i64 62144
  %1061 = load ptr, ptr %1060, align 8, !tbaa !43
  %1062 = load double, ptr %1061, align 8, !tbaa !48
  br i1 %.not1357.not1482, label %.lr.ph1492, label %._crit_edge1493.thread

._crit_edge1493.thread:                           ; preds = %.critedge1382
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1156, double noundef %1062)
  %1063 = load ptr, ptr %1060, align 8, !tbaa !43
  %1064 = load double, ptr %1063, align 8, !tbaa !48
  br label %._crit_edge1500

.lr.ph1492:                                       ; preds = %.critedge1382, %.lr.ph1492
  %.141491 = phi double [ %1068, %.lr.ph1492 ], [ %1062, %.critedge1382 ]
  %.1413221490 = phi i64 [ %1069, %.lr.ph1492 ], [ 0, %.critedge1382 ]
  %1065 = load ptr, ptr %1060, align 8, !tbaa !43
  %1066 = getelementptr inbounds double, ptr %1065, i64 %.1413221490
  %1067 = load double, ptr %1066, align 8, !tbaa !48
  %1068 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %.141491, double noundef %1067, ptr noundef %3)
  %1069 = add nuw nsw i64 %.1413221490, 1
  %exitcond1630.not = icmp eq i64 %1069, %.01336
  br i1 %exitcond1630.not, label %._crit_edge1493, label %.lr.ph1492, !llvm.loop !92

._crit_edge1493:                                  ; preds = %.lr.ph1492
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1156, double noundef %1068)
  %1070 = load ptr, ptr %1060, align 8, !tbaa !43
  %1071 = load double, ptr %1070, align 8, !tbaa !48
  br i1 %.not1357.not1482, label %.lr.ph1499, label %._crit_edge1500

.lr.ph1499:                                       ; preds = %._crit_edge1493, %.lr.ph1499
  %.151497 = phi double [ %1075, %.lr.ph1499 ], [ %1071, %._crit_edge1493 ]
  %.1513231496 = phi i64 [ %1076, %.lr.ph1499 ], [ 0, %._crit_edge1493 ]
  %1072 = load ptr, ptr %1060, align 8, !tbaa !43
  %1073 = getelementptr inbounds double, ptr %1072, i64 %.1513231496
  %1074 = load double, ptr %1073, align 8, !tbaa !48
  %1075 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.151497, double noundef %1074, ptr noundef %3)
  %1076 = add nuw nsw i64 %.1513231496, 1
  %exitcond1631.not = icmp eq i64 %1076, %.01336
  br i1 %exitcond1631.not, label %._crit_edge1500, label %.lr.ph1499, !llvm.loop !93

._crit_edge1500:                                  ; preds = %.lr.ph1499, %._crit_edge1493.thread, %._crit_edge1493
  %.151323.lcssa = phi i64 [ 0, %._crit_edge1493 ], [ 0, %._crit_edge1493.thread ], [ %.01336, %.lr.ph1499 ]
  %.15.lcssa = phi double [ %1071, %._crit_edge1493 ], [ %1064, %._crit_edge1493.thread ], [ %1075, %.lr.ph1499 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1157, double noundef %.15.lcssa)
  br label %1077

1077:                                             ; preds = %._crit_edge1649, %._crit_edge1500
  %.161324 = phi i64 [ %.151323.lcssa, %._crit_edge1500 ], [ %.01308, %._crit_edge1649 ]
  %.16 = phi double [ %.15.lcssa, %._crit_edge1500 ], [ %726, %._crit_edge1649 ]
  %.91293 = phi double [ %.81292, %._crit_edge1500 ], [ %749, %._crit_edge1649 ]
  %.81281 = phi double [ %.71280.lcssa, %._crit_edge1500 ], [ %.01273, %._crit_edge1649 ]
  %.61246 = phi double [ %.51245, %._crit_edge1500 ], [ %751, %._crit_edge1649 ]
  %.61229 = phi i8 [ %.51228, %._crit_edge1500 ], [ %.11224, %._crit_edge1649 ]
  %.51220 = phi i8 [ %.41219, %._crit_edge1500 ], [ %723, %._crit_edge1649 ]
  %.81208 = phi double [ %.71207, %._crit_edge1500 ], [ %.31203, %._crit_edge1649 ]
  %.61193 = phi i64 [ %.51192, %._crit_edge1500 ], [ %.01187, %._crit_edge1649 ]
  %.71184 = phi double [ %.61183, %._crit_edge1500 ], [ %.01177, %._crit_edge1649 ]
  %.71151 = phi double [ %.61150, %._crit_edge1500 ], [ %.21146, %._crit_edge1649 ]
  %.71142 = phi i8 [ %.61141, %._crit_edge1500 ], [ %.21137, %._crit_edge1649 ]
  %.81133 = phi i8 [ %.71132, %._crit_edge1500 ], [ %.31128, %._crit_edge1649 ]
  %.81122 = phi i8 [ %.71121, %._crit_edge1500 ], [ %.31117, %._crit_edge1649 ]
  %.8 = phi i8 [ %.7, %._crit_edge1500 ], [ %.3, %._crit_edge1649 ]
  %1078 = phi <2 x double> [ %996, %._crit_edge1500 ], [ %119, %._crit_edge1649 ]
  %1079 = trunc nuw i8 %.81133 to i1
  br i1 %1079, label %1080, label %1104

1080:                                             ; preds = %1077
  %1081 = getelementptr inbounds i8, ptr %0, i64 59048
  call void @_ZN11alglib_implL23nlcsqp_nonmonotonicsaveEPNS_11minsqpstateEPKNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1081, ptr noundef %3)
  %1082 = getelementptr inbounds i8, ptr %0, i64 808
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %1081, ptr noundef nonnull %1082, ptr noundef %3)
  %1083 = getelementptr inbounds i8, ptr %0, i64 832
  call void @_ZN11alglib_implL15nlcsqp_sqpsendxEPNS_11minsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1083, ptr noundef %3)
  %1084 = getelementptr inbounds i8, ptr %0, i64 952
  %1085 = load ptr, ptr %1084, align 8, !tbaa !43
  %1086 = load double, ptr %1085, align 8, !tbaa !48
  %1087 = getelementptr inbounds i8, ptr %0, i64 1592
  %1088 = load ptr, ptr %1087, align 8, !tbaa !43
  %1089 = load double, ptr %1088, align 8, !tbaa !48
  %1090 = fmul double %1086, %1089
  %1091 = getelementptr inbounds i8, ptr %0, i64 752
  store double %1090, ptr %1091, align 8, !tbaa !62
  %1092 = getelementptr inbounds i8, ptr %0, i64 761
  store i8 1, ptr %1092, align 1, !tbaa !55
  br label %1229

1093:                                             ; preds = %116
  %1094 = getelementptr inbounds i8, ptr %0, i64 761
  store i8 0, ptr %1094, align 1, !tbaa !55
  %1095 = getelementptr inbounds i8, ptr %0, i64 112
  %1096 = getelementptr inbounds i8, ptr %0, i64 192
  %1097 = getelementptr inbounds i8, ptr %0, i64 832
  %1098 = getelementptr inbounds i8, ptr %0, i64 62376
  %1099 = getelementptr inbounds i8, ptr %0, i64 62384
  tail call void @_ZN11alglib_impl16checklcviolationEPKNS_9ae_matrixEPKNS_9ae_vectorEllS5_lPdPlPNS_8ae_stateE(ptr noundef nonnull %1095, ptr noundef nonnull %1096, i64 noundef %.01332, i64 noundef %.01330, ptr noundef nonnull %1097, i64 noundef %.01336, ptr noundef nonnull %1098, ptr noundef nonnull %1099, ptr noundef %3)
  %1100 = getelementptr inbounds i8, ptr %0, i64 896
  %1101 = getelementptr inbounds i8, ptr %0, i64 1536
  %1102 = getelementptr inbounds i8, ptr %0, i64 62392
  %1103 = getelementptr inbounds i8, ptr %0, i64 62400
  tail call void @_ZN11alglib_impl27unscaleandchecknlcviolationEPKNS_9ae_vectorES2_llPdPlPNS_8ae_stateE(ptr noundef nonnull %1100, ptr noundef nonnull %1101, i64 noundef %.01328, i64 noundef %.01326, ptr noundef nonnull %1102, ptr noundef nonnull %1103, ptr noundef %3)
  br label %1104

1104:                                             ; preds = %1077, %1093
  %.101294 = phi double [ %.91293, %1077 ], [ %.01284, %1093 ]
  %.91282 = phi double [ %.81281, %1077 ], [ %.01273, %1093 ]
  %.71247 = phi double [ %.61246, %1077 ], [ %.01240, %1093 ]
  %.71230 = phi i8 [ %.61229, %1077 ], [ %.01223, %1093 ]
  %.61221 = phi i8 [ %.51220, %1077 ], [ %.01215, %1093 ]
  %.91209 = phi double [ %.81208, %1077 ], [ %.01200, %1093 ]
  %.71194 = phi i64 [ %.61193, %1077 ], [ %.01187, %1093 ]
  %.81185 = phi double [ %.71184, %1077 ], [ %.01177, %1093 ]
  %.81152 = phi double [ %.71151, %1077 ], [ %.01144, %1093 ]
  %.91123 = phi i8 [ %.81122, %1077 ], [ %.01114, %1093 ]
  %.9 = phi i8 [ %.8, %1077 ], [ %.0, %1093 ]
  %1105 = phi <2 x double> [ %1078, %1077 ], [ %119, %1093 ]
  %1106 = trunc nuw i8 %.71230 to i1
  br i1 %1106, label %1107, label %1113

1107:                                             ; preds = %1104
  %1108 = getelementptr inbounds i8, ptr %0, i64 768
  %1109 = load double, ptr %1108, align 8, !tbaa !63
  %1110 = fmul double %1109, 2.000000e+00
  %1111 = load double, ptr @_ZN11alglib_implL17nlcsqp_maxmeritmuE, align 8, !tbaa !48
  %1112 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1110, double noundef %1111, ptr noundef %3)
  store double %1112, ptr %1108, align 8, !tbaa !63
  br label %1113

1113:                                             ; preds = %1107, %1104
  %1114 = getelementptr inbounds i8, ptr %0, i64 776
  %1115 = load double, ptr %1114, align 8, !tbaa !56
  %.not1360.not1503 = icmp sgt i64 %.01336, 0
  br i1 %.not1360.not1503, label %.lr.ph1507, label %._crit_edge1508

.lr.ph1507:                                       ; preds = %1113
  %1116 = getelementptr inbounds i8, ptr %0, i64 1472
  %1117 = getelementptr inbounds i8, ptr %0, i64 1528
  %1118 = getelementptr inbounds i8, ptr %0, i64 888
  br label %1119

1119:                                             ; preds = %.lr.ph1507, %1119
  %.212711505 = phi double [ 0.000000e+00, %.lr.ph1507 ], [ %1131, %1119 ]
  %.1713251504 = phi i64 [ 0, %.lr.ph1507 ], [ %1132, %1119 ]
  %1120 = load ptr, ptr %1117, align 8, !tbaa !43
  %1121 = getelementptr inbounds double, ptr %1120, i64 %.1713251504
  %1122 = load double, ptr %1121, align 8, !tbaa !48
  %1123 = load ptr, ptr %1118, align 8, !tbaa !43
  %1124 = getelementptr inbounds double, ptr %1123, i64 %.1713251504
  %1125 = load double, ptr %1124, align 8, !tbaa !48
  %1126 = fsub double %1122, %1125
  %1127 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1126, ptr noundef %3)
  %1128 = load double, ptr %1114, align 8, !tbaa !56
  %1129 = call noundef double @_ZN11alglib_implL22nlcsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %1116, i64 noundef %.1713251504, double noundef %1128, ptr noundef %3)
  %1130 = fdiv double %1127, %1129
  %1131 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.212711505, double noundef %1130, ptr noundef %3)
  %1132 = add nuw nsw i64 %.1713251504, 1
  %exitcond1632.not = icmp eq i64 %1132, %.01336
  br i1 %exitcond1632.not, label %._crit_edge1508, label %1119, !llvm.loop !94

._crit_edge1508:                                  ; preds = %1119, %1113
  %.21271.lcssa = phi double [ 0.000000e+00, %1113 ], [ %1131, %1119 ]
  %1133 = getelementptr inbounds i8, ptr %0, i64 792
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %1133, ptr noundef %3)
  %1134 = load double, ptr @_ZN11alglib_implL23nlcsqp_sqpdeltadecreaseE, align 8, !tbaa !48
  %1135 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.21271.lcssa, double noundef %1134)
  br i1 %1135, label %1136, label %1143

1136:                                             ; preds = %._crit_edge1508
  %1137 = load double, ptr %1114, align 8, !tbaa !56
  %1138 = load double, ptr @_ZN11alglib_implL23nlcsqp_sqpdeltadecreaseE, align 8, !tbaa !48
  %1139 = fdiv double %.21271.lcssa, %1138
  %1140 = load double, ptr @_ZN11alglib_implL23nlcsqp_maxtrustraddecayE, align 8, !tbaa !48
  %1141 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1139, double noundef %1140, ptr noundef %3)
  %1142 = fmul double %1137, %1141
  store double %1142, ptr %1114, align 8, !tbaa !56
  br label %1143

1143:                                             ; preds = %1136, %._crit_edge1508
  %1144 = load double, ptr @_ZN11alglib_implL23nlcsqp_sqpdeltaincreaseE, align 8, !tbaa !48
  %1145 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %.21271.lcssa, double noundef %1144)
  br i1 %1145, label %1146, label %1155

1146:                                             ; preds = %1143
  %1147 = trunc nuw i8 %.91123 to i1
  br i1 %1147, label %1148, label %1155

1148:                                             ; preds = %1146
  %1149 = load double, ptr %1114, align 8, !tbaa !56
  %1150 = getelementptr inbounds i8, ptr %0, i64 784
  %1151 = load double, ptr %1150, align 8, !tbaa !57
  %1152 = fmul double %1149, %1151
  store double %1152, ptr %1114, align 8, !tbaa !56
  %1153 = load double, ptr @_ZN11alglib_implL21nlcsqp_momentumgrowthE, align 8, !tbaa !48
  %1154 = load double, ptr @_ZN11alglib_implL24nlcsqp_maxtrustradgrowthE, align 8, !tbaa !48
  call void @_ZN11alglib_impl24trustradincreasemomentumEPdddPNS_8ae_stateE(ptr noundef nonnull %1150, double noundef %1153, double noundef %1154, ptr noundef %3)
  br label %1158

1155:                                             ; preds = %1146, %1143
  %1156 = getelementptr inbounds i8, ptr %0, i64 784
  %1157 = load double, ptr @_ZN11alglib_implL24nlcsqp_deftrustradgrowthE, align 8, !tbaa !48
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef nonnull %1156, double noundef %1157, ptr noundef %3)
  br label %1158

1158:                                             ; preds = %1155, %1148
  %1159 = load double, ptr %1114, align 8, !tbaa !56
  %1160 = fmul double %1115, 0x3FEFAE147AE147AE
  %1161 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1159, double noundef %1160)
  br i1 %1161, label %1166, label %1162

1162:                                             ; preds = %1158
  %1163 = load double, ptr %1114, align 8, !tbaa !56
  %1164 = fmul double %1115, 1.010000e+00
  %1165 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1163, double noundef %1164)
  br i1 %1165, label %1166, label %._crit_edge1647

._crit_edge1647:                                  ; preds = %1162
  %.pre = load i64, ptr %1133, align 8, !tbaa !95
  br label %1167

1166:                                             ; preds = %1162, %1158
  store i64 0, ptr %1133, align 8, !tbaa !95
  br label %1167

1167:                                             ; preds = %._crit_edge1647, %1166
  %1168 = phi i64 [ %.pre, %._crit_edge1647 ], [ 0, %1166 ]
  %1169 = load i64, ptr @_ZN11alglib_implL30nlcsqp_trustradstagnationlimitE, align 8, !tbaa !44
  %.not1361 = icmp slt i64 %1168, %1169
  br i1 %.not1361, label %1173, label %1170

1170:                                             ; preds = %1167
  %1171 = load double, ptr %1114, align 8, !tbaa !56
  %1172 = fmul double %1171, 5.000000e-01
  store double %1172, ptr %1114, align 8, !tbaa !56
  store i64 0, ptr %1133, align 8, !tbaa !95
  br label %1173

1173:                                             ; preds = %1170, %1167
  %.21251 = phi i8 [ 1, %1170 ], [ 0, %1167 ]
  %1174 = trunc nuw i8 %.01238 to i1
  br i1 %1174, label %1175, label %1193

1175:                                             ; preds = %1173
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1404)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1176, double noundef %.21271.lcssa)
  %1176 = load double, ptr %1114, align 8, !tbaa !56
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1177, double noundef %1176)
  %1177 = trunc nuw i8 %.21251 to i1
  br i1 %1177, label %1186, label %1178

1178:                                             ; preds = %1175
  %1179 = load double, ptr %1114, align 8, !tbaa !56
  %1180 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1179, double noundef %1115)
  br i1 %1180, label %1181, label %1182

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

1182:                                             ; preds = %1181, %1178
  %1183 = load double, ptr %1114, align 8, !tbaa !56
  %1184 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1183, double noundef %1115)
  br i1 %1184, label %1185, label %1189

1185:                                             ; preds = %1182
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1179)
  br label %1189

1186:                                             ; preds = %1175
  %1187 = load i64, ptr @_ZN11alglib_implL30nlcsqp_trustradstagnationlimitE, align 8, !tbaa !44
  %1188 = trunc i64 %1187 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1405, i32 noundef %1188)
  br label %1189

1189:                                             ; preds = %1182, %1185, %1186
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br i1 %1106, label %1190, label %1193

1190:                                             ; preds = %1189
  %1191 = getelementptr inbounds i8, ptr %0, i64 768
  %1192 = load double, ptr %1191, align 8, !tbaa !63
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1406, double noundef %1192)
  br label %1193

1193:                                             ; preds = %1189, %1190, %1173
  %1194 = getelementptr inbounds i8, ptr %0, i64 62344
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %1194, ptr noundef %3)
  %1195 = trunc nuw i8 %.61221 to i1
  %1196 = getelementptr inbounds i8, ptr %0, i64 800
  %1197 = load i64, ptr %1196, align 8, !tbaa !67
  %1198 = add nsw i64 %1197, 1
  %1199 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %1195, i64 noundef %1198, i64 noundef 0, ptr noundef %3)
  store i64 %1199, ptr %1196, align 8, !tbaa !67
  br label %.preheader1401

1200:                                             ; preds = %.preheader1401.._crit_edge1571_crit_edge, %707, %712, %316, %318, %308, %310, %299, %301, %291, %293, %._crit_edge1571, %285
  %.21109 = phi i8 [ %.11108.ph, %285 ], [ %.11108.ph, %._crit_edge1571 ], [ %.11108.ph, %293 ], [ %.11108.ph, %291 ], [ %.11108.ph, %301 ], [ %.11108.ph, %299 ], [ %.11108.ph, %310 ], [ %.11108.ph, %308 ], [ %.11108.ph, %318 ], [ %.11108.ph, %316 ], [ %.01107, %712 ], [ %.01107, %707 ], [ %.11108.ph, %.preheader1401.._crit_edge1571_crit_edge ]
  %.21105 = phi i8 [ %.11104.ph, %285 ], [ %.11104.ph, %._crit_edge1571 ], [ %.11104.ph, %293 ], [ %.11104.ph, %291 ], [ %.11104.ph, %301 ], [ %.11104.ph, %299 ], [ %.11104.ph, %310 ], [ %.11104.ph, %308 ], [ %.11104.ph, %318 ], [ %.11104.ph, %316 ], [ %.01103, %712 ], [ %.01103, %707 ], [ %.11104.ph, %.preheader1401.._crit_edge1571_crit_edge ]
  %1201 = trunc nuw i8 %.21109 to i1
  br i1 %1201, label %1202, label %1208

1202:                                             ; preds = %1200
  %1203 = trunc nuw i8 %.21105 to i1
  %1204 = getelementptr inbounds i8, ptr %0, i64 62352
  %1205 = load i64, ptr %1204, align 8, !tbaa !61
  %1206 = add nsw i64 %1205, 800
  %1207 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %1203, i64 noundef -8, i64 noundef %1206, ptr noundef %3)
  store i64 %1207, ptr %1204, align 8, !tbaa !61
  br label %1208

1208:                                             ; preds = %1202, %1200
  %1209 = trunc nuw i8 %.01238 to i1
  br i1 %1209, label %1210, label %1228

1210:                                             ; preds = %1208
  %1211 = getelementptr inbounds i8, ptr %0, i64 62408
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %1211, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.774)
  br i1 %1201, label %1212, label %1215

1212:                                             ; preds = %1210
  %1213 = trunc nuw i8 %.21105 to i1
  br i1 %1213, label %1214, label %1215

1214:                                             ; preds = %1212
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1407)
  br label %1215

1215:                                             ; preds = %1214, %1212, %1210
  %1216 = getelementptr inbounds i8, ptr %0, i64 952
  %1217 = load ptr, ptr %1216, align 8, !tbaa !43
  %1218 = load double, ptr %1217, align 8, !tbaa !48
  %1219 = getelementptr inbounds i8, ptr %0, i64 1592
  %1220 = load ptr, ptr %1219, align 8, !tbaa !43
  %1221 = load double, ptr %1220, align 8, !tbaa !48
  %1222 = fmul double %1218, %1221
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.777, double noundef %1222)
  %1223 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %1211, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.778, double noundef %1223)
  %1224 = getelementptr inbounds i8, ptr %0, i64 62456
  %1225 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %1224, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1408, double noundef %1225)
  %1226 = getelementptr inbounds i8, ptr %0, i64 62432
  %1227 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %1226, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1409, double noundef %1227)
  br label %1228

1228:                                             ; preds = %1215, %1208
  call void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %1, i1 noundef zeroext %1209, ptr noundef %3)
  br label %1354

1229:                                             ; preds = %._crit_edge1481, %966, %638, %644, %.thread1388, %470, %._crit_edge1576, %192, %1080, %203
  %.sink = phi i32 [ 5, %1080 ], [ 1, %203 ], [ 0, %192 ], [ 0, %._crit_edge1576 ], [ 2, %470 ], [ 2, %.thread1388 ], [ 3, %644 ], [ 3, %638 ], [ 4, %966 ], [ 4, %._crit_edge1481 ]
  %.11337 = phi i64 [ %.01336, %1080 ], [ %.01336, %203 ], [ %121, %192 ], [ %121, %._crit_edge1576 ], [ %.01336, %470 ], [ %.01336, %.thread1388 ], [ %.01336, %644 ], [ %.01336, %638 ], [ %.01336, %966 ], [ %.01336, %._crit_edge1481 ]
  %.11335 = phi i64 [ %.01334, %1080 ], [ %.01334, %203 ], [ %134, %192 ], [ %134, %._crit_edge1576 ], [ %.01334, %470 ], [ %.01334, %.thread1388 ], [ %.01334, %644 ], [ %.01334, %638 ], [ %.01334, %966 ], [ %.01334, %._crit_edge1481 ]
  %.11333 = phi i64 [ %.01332, %1080 ], [ %.01332, %203 ], [ %123, %192 ], [ %123, %._crit_edge1576 ], [ %.01332, %470 ], [ %.01332, %.thread1388 ], [ %.01332, %644 ], [ %.01332, %638 ], [ %.01332, %966 ], [ %.01332, %._crit_edge1481 ]
  %.11331 = phi i64 [ %.01330, %1080 ], [ %.01330, %203 ], [ %125, %192 ], [ %125, %._crit_edge1576 ], [ %.01330, %470 ], [ %.01330, %.thread1388 ], [ %.01330, %644 ], [ %.01330, %638 ], [ %.01330, %966 ], [ %.01330, %._crit_edge1481 ]
  %.11329 = phi i64 [ %.01328, %1080 ], [ %.01328, %203 ], [ %127, %192 ], [ %127, %._crit_edge1576 ], [ %.01328, %470 ], [ %.01328, %.thread1388 ], [ %.01328, %644 ], [ %.01328, %638 ], [ %.01328, %966 ], [ %.01328, %._crit_edge1481 ]
  %.11327 = phi i64 [ %.01326, %1080 ], [ %.01326, %203 ], [ %129, %192 ], [ %129, %._crit_edge1576 ], [ %.01326, %470 ], [ %.01326, %.thread1388 ], [ %.01326, %644 ], [ %.01326, %638 ], [ %.01326, %966 ], [ %.01326, %._crit_edge1481 ]
  %.18 = phi i64 [ %.161324, %1080 ], [ %.01308, %203 ], [ %.11309.lcssa, %192 ], [ %.11309.lcssa, %._crit_edge1576 ], [ %.61314, %470 ], [ %.61314, %.thread1388 ], [ %.71315.lcssa, %644 ], [ %.71315.lcssa, %638 ], [ %.111319, %966 ], [ %.111319, %._crit_edge1481 ]
  %.17 = phi double [ %.16, %1080 ], [ %.01296, %203 ], [ %.01296, %192 ], [ %.01296, %._crit_edge1576 ], [ %.11297.lcssa, %470 ], [ %.11297.lcssa, %.thread1388 ], [ %.61302.lcssa, %644 ], [ %.61302.lcssa, %638 ], [ %.12, %966 ], [ %.12, %._crit_edge1481 ]
  %.111295 = phi double [ %.91293, %1080 ], [ %.01284, %203 ], [ %.01284, %192 ], [ %.01284, %._crit_edge1576 ], [ %.11285.ph, %470 ], [ %.11285.ph, %.thread1388 ], [ %.01284, %644 ], [ %.01284, %638 ], [ %.61290, %966 ], [ %.61290, %._crit_edge1481 ]
  %.101283 = phi double [ %.81281, %1080 ], [ %.01273, %203 ], [ %.01273, %192 ], [ %.01273, %._crit_edge1576 ], [ %.61279, %470 ], [ %.61279, %.thread1388 ], [ %.01273, %644 ], [ %.01273, %638 ], [ %.01273, %966 ], [ %.01273, %._crit_edge1481 ]
  %.31272 = phi double [ %.01269, %1080 ], [ %.01269, %203 ], [ %.01269, %192 ], [ %.01269, %._crit_edge1576 ], [ %.11270.ph, %470 ], [ %.11270.ph, %.thread1388 ], [ %.01269, %644 ], [ %.01269, %638 ], [ %.01269, %966 ], [ %.01269, %._crit_edge1481 ]
  %.51268 = phi double [ %.01263, %1080 ], [ %.01263, %203 ], [ %.01263, %192 ], [ %.01263, %._crit_edge1576 ], [ %.21265.lcssa, %470 ], [ %.21265.lcssa, %.thread1388 ], [ %.01263, %644 ], [ %.01263, %638 ], [ %.01263, %966 ], [ %.01263, %._crit_edge1481 ]
  %.51262 = phi double [ %.01257, %1080 ], [ %.01257, %203 ], [ %.01257, %192 ], [ %.01257, %._crit_edge1576 ], [ %.21259.lcssa, %470 ], [ %.21259.lcssa, %.thread1388 ], [ %.01257, %644 ], [ %.01257, %638 ], [ %.01257, %966 ], [ %.01257, %._crit_edge1481 ]
  %.21256 = phi double [ %.01254, %1080 ], [ %.01254, %203 ], [ %.01254, %192 ], [ %.01254, %._crit_edge1576 ], [ %.11255.ph, %470 ], [ %.11255.ph, %.thread1388 ], [ %.01254, %644 ], [ %.01254, %638 ], [ %.01254, %966 ], [ %.01254, %._crit_edge1481 ]
  %.31252 = phi i8 [ %.01249, %1080 ], [ %.01249, %203 ], [ %.01249, %192 ], [ %.01249, %._crit_edge1576 ], [ %.11250.ph, %470 ], [ %.11250.ph, %.thread1388 ], [ %.01249, %644 ], [ %.01249, %638 ], [ %.01249, %966 ], [ %.01249, %._crit_edge1481 ]
  %.81248 = phi double [ %.61246, %1080 ], [ %.01240, %203 ], [ %.01240, %192 ], [ %.01240, %._crit_edge1576 ], [ 1.000000e+50, %470 ], [ 1.000000e+50, %.thread1388 ], [ %.01240, %644 ], [ %.01240, %638 ], [ %.31243, %966 ], [ %.31243, %._crit_edge1481 ]
  %.11239 = phi i8 [ %.01238, %1080 ], [ %.01238, %203 ], [ %146, %192 ], [ %146, %._crit_edge1576 ], [ %.01238, %470 ], [ %.01238, %.thread1388 ], [ %.01238, %644 ], [ %.01238, %638 ], [ %.01238, %966 ], [ %.01238, %._crit_edge1481 ]
  %.11237 = phi i8 [ %.01236, %1080 ], [ %.01236, %203 ], [ %145, %192 ], [ %145, %._crit_edge1576 ], [ %.01236, %470 ], [ %.01236, %.thread1388 ], [ %.01236, %644 ], [ %.01236, %638 ], [ %.01236, %966 ], [ %.01236, %._crit_edge1481 ]
  %.11235 = phi i8 [ %.01234, %1080 ], [ %.01234, %203 ], [ %149, %192 ], [ %149, %._crit_edge1576 ], [ %.01234, %470 ], [ %.01234, %.thread1388 ], [ %.01234, %644 ], [ %.01234, %638 ], [ %.01234, %966 ], [ %.01234, %._crit_edge1481 ]
  %.11233 = phi i8 [ %.01232, %1080 ], [ %.01232, %203 ], [ %148, %192 ], [ %148, %._crit_edge1576 ], [ %.01232, %470 ], [ %.01232, %.thread1388 ], [ %.01232, %644 ], [ %.01232, %638 ], [ %.01232, %966 ], [ %.01232, %._crit_edge1481 ]
  %.81231 = phi i8 [ %.61229, %1080 ], [ %.01223, %203 ], [ %.01223, %192 ], [ %.01223, %._crit_edge1576 ], [ 0, %470 ], [ 0, %.thread1388 ], [ %.01223, %644 ], [ %.01223, %638 ], [ %.31226, %966 ], [ %.31226, %._crit_edge1481 ]
  %.71222 = phi i8 [ %.51220, %1080 ], [ %.01215, %203 ], [ %.01215, %192 ], [ %.01215, %._crit_edge1576 ], [ 0, %470 ], [ 0, %.thread1388 ], [ %.01215, %644 ], [ %.01215, %638 ], [ %.21217, %966 ], [ %.21217, %._crit_edge1481 ]
  %.11214 = phi double [ %.01213, %1080 ], [ %.01213, %203 ], [ %.01213, %192 ], [ %.01213, %._crit_edge1576 ], [ %467, %470 ], [ %467, %.thread1388 ], [ %.01213, %644 ], [ %.01213, %638 ], [ %.01213, %966 ], [ %.01213, %._crit_edge1481 ]
  %.11212 = phi double [ %.01211, %1080 ], [ %.01211, %203 ], [ %.01211, %192 ], [ %.01211, %._crit_edge1576 ], [ %466, %470 ], [ %466, %.thread1388 ], [ %.01211, %644 ], [ %.01211, %638 ], [ %.01211, %966 ], [ %.01211, %._crit_edge1481 ]
  %.101210 = phi double [ %.81208, %1080 ], [ %.01200, %203 ], [ %.01200, %192 ], [ %.01200, %._crit_edge1576 ], [ %.11201.ph, %470 ], [ %.11201.ph, %.thread1388 ], [ %495, %644 ], [ %495, %638 ], [ %.51205, %966 ], [ %.51205, %._crit_edge1481 ]
  %.11197 = phi i8 [ %.01196, %1080 ], [ %.01196, %203 ], [ %.01196, %192 ], [ %.01196, %._crit_edge1576 ], [ 0, %470 ], [ 0, %.thread1388 ], [ 1, %644 ], [ 1, %638 ], [ %.01196, %966 ], [ %.01196, %._crit_edge1481 ]
  %.81195 = phi i64 [ %.61193, %1080 ], [ %.01187, %203 ], [ %.01187, %192 ], [ %.01187, %._crit_edge1576 ], [ %.11188.ph, %470 ], [ %.11188.ph, %.thread1388 ], [ %.01187, %644 ], [ %.01187, %638 ], [ %.31190, %966 ], [ %.31190, %._crit_edge1481 ]
  %.91186 = phi double [ %.71184, %1080 ], [ %.01177, %203 ], [ %.01177, %192 ], [ %.01177, %._crit_edge1576 ], [ %.11178.ph, %470 ], [ %.11178.ph, %.thread1388 ], [ %.01177, %644 ], [ %.01177, %638 ], [ %.41181, %966 ], [ %.41181, %._crit_edge1481 ]
  %.91153 = phi double [ %.71151, %1080 ], [ %.01144, %203 ], [ %.01144, %192 ], [ %.01144, %._crit_edge1576 ], [ %.11145.ph, %470 ], [ %.11145.ph, %.thread1388 ], [ %497, %644 ], [ %497, %638 ], [ %.41148, %966 ], [ %.41148, %._crit_edge1481 ]
  %.81143 = phi i8 [ %.71142, %1080 ], [ %.01135, %203 ], [ %.01135, %192 ], [ %.01135, %._crit_edge1576 ], [ 0, %470 ], [ 0, %.thread1388 ], [ %.01135, %644 ], [ %.01135, %638 ], [ %.41139, %966 ], [ %.41139, %._crit_edge1481 ]
  %.91134 = phi i8 [ %.81133, %1080 ], [ %.01125, %203 ], [ %.01125, %192 ], [ %.01125, %._crit_edge1576 ], [ 1, %470 ], [ 1, %.thread1388 ], [ %.01125, %644 ], [ %.01125, %638 ], [ %.51130, %966 ], [ %.51130, %._crit_edge1481 ]
  %.101124 = phi i8 [ %.81122, %1080 ], [ %.01114, %203 ], [ %.01114, %192 ], [ %.01114, %._crit_edge1576 ], [ 1, %470 ], [ 1, %.thread1388 ], [ %502, %644 ], [ %502, %638 ], [ %.51119, %966 ], [ %.51119, %._crit_edge1481 ]
  %.21113 = phi i8 [ %.01111, %1080 ], [ %.01111, %203 ], [ %.01111, %192 ], [ %.01111, %._crit_edge1576 ], [ 0, %470 ], [ 0, %.thread1388 ], [ %.01111, %644 ], [ %.01111, %638 ], [ %.01111, %966 ], [ %.01111, %._crit_edge1481 ]
  %.31110 = phi i8 [ %.01107, %1080 ], [ %.01107, %203 ], [ %.01107, %192 ], [ %.01107, %._crit_edge1576 ], [ %.11108.ph, %470 ], [ %.11108.ph, %.thread1388 ], [ %.01107, %644 ], [ %.01107, %638 ], [ %.01107, %966 ], [ %.01107, %._crit_edge1481 ]
  %.31106 = phi i8 [ 0, %1080 ], [ %.01103, %203 ], [ %.01103, %192 ], [ %.01103, %._crit_edge1576 ], [ %.11104.ph, %470 ], [ %.11104.ph, %.thread1388 ], [ %.01103, %644 ], [ %.01103, %638 ], [ %.01103, %966 ], [ %.01103, %._crit_edge1481 ]
  %.10 = phi i8 [ %.8, %1080 ], [ %.0, %203 ], [ %.0, %192 ], [ %.0, %._crit_edge1576 ], [ %.1.ph, %470 ], [ %.1.ph, %.thread1388 ], [ 1, %644 ], [ 1, %638 ], [ %.5, %966 ], [ %.5, %._crit_edge1481 ]
  %1230 = phi <2 x double> [ %1078, %1080 ], [ %119, %203 ], [ %119, %192 ], [ %119, %._crit_edge1576 ], [ %251, %470 ], [ %251, %.thread1388 ], [ %119, %644 ], [ %119, %638 ], [ %914, %966 ], [ %914, %._crit_edge1481 ]
  store i32 %.sink, ptr %13, align 8, !tbaa !5
  %1231 = getelementptr inbounds i8, ptr %0, i64 62544
  %1232 = load ptr, ptr %1231, align 8, !tbaa !43
  store i64 %.11337, ptr %1232, align 8, !tbaa !44
  %1233 = load ptr, ptr %1231, align 8, !tbaa !43
  %1234 = getelementptr inbounds i8, ptr %1233, i64 8
  store i64 %.11335, ptr %1234, align 8, !tbaa !44
  %1235 = load ptr, ptr %1231, align 8, !tbaa !43
  %1236 = getelementptr inbounds i8, ptr %1235, i64 16
  store i64 %.11333, ptr %1236, align 8, !tbaa !44
  %1237 = load ptr, ptr %1231, align 8, !tbaa !43
  %1238 = getelementptr inbounds i8, ptr %1237, i64 24
  store i64 %.11331, ptr %1238, align 8, !tbaa !44
  %1239 = load ptr, ptr %1231, align 8, !tbaa !43
  %1240 = getelementptr inbounds i8, ptr %1239, i64 32
  store i64 %.11329, ptr %1240, align 8, !tbaa !44
  %1241 = load ptr, ptr %1231, align 8, !tbaa !43
  %1242 = getelementptr inbounds i8, ptr %1241, i64 40
  store i64 %.11327, ptr %1242, align 8, !tbaa !44
  %1243 = load ptr, ptr %1231, align 8, !tbaa !43
  %1244 = getelementptr inbounds i8, ptr %1243, i64 48
  store i64 %.18, ptr %1244, align 8, !tbaa !44
  %1245 = load i64, ptr %5, align 8, !tbaa !44
  %1246 = load ptr, ptr %1231, align 8, !tbaa !43
  %1247 = getelementptr inbounds i8, ptr %1246, i64 56
  store i64 %1245, ptr %1247, align 8, !tbaa !44
  %1248 = load ptr, ptr %1231, align 8, !tbaa !43
  %1249 = getelementptr inbounds i8, ptr %1248, i64 64
  store i64 %.01253, ptr %1249, align 8, !tbaa !44
  %1250 = load ptr, ptr %1231, align 8, !tbaa !43
  %1251 = getelementptr inbounds i8, ptr %1250, i64 72
  store i64 %.81195, ptr %1251, align 8, !tbaa !44
  %1252 = getelementptr inbounds i8, ptr %0, i64 62608
  %1253 = load ptr, ptr %1252, align 8, !tbaa !43
  %1254 = and i8 %.31252, 1
  store i8 %1254, ptr %1253, align 1, !tbaa !45
  %1255 = load ptr, ptr %1252, align 8, !tbaa !43
  %1256 = getelementptr inbounds i8, ptr %1255, i64 1
  %1257 = and i8 %.11239, 1
  store i8 %1257, ptr %1256, align 1, !tbaa !45
  %1258 = load ptr, ptr %1252, align 8, !tbaa !43
  %1259 = getelementptr inbounds i8, ptr %1258, i64 2
  %1260 = and i8 %.11237, 1
  store i8 %1260, ptr %1259, align 1, !tbaa !45
  %1261 = load ptr, ptr %1252, align 8, !tbaa !43
  %1262 = getelementptr inbounds i8, ptr %1261, i64 3
  %1263 = and i8 %.11235, 1
  store i8 %1263, ptr %1262, align 1, !tbaa !45
  %1264 = load ptr, ptr %1252, align 8, !tbaa !43
  %1265 = getelementptr inbounds i8, ptr %1264, i64 4
  %1266 = and i8 %.11233, 1
  store i8 %1266, ptr %1265, align 1, !tbaa !45
  %1267 = load ptr, ptr %1252, align 8, !tbaa !43
  %1268 = getelementptr inbounds i8, ptr %1267, i64 5
  %1269 = and i8 %.81231, 1
  store i8 %1269, ptr %1268, align 1, !tbaa !45
  %1270 = load ptr, ptr %1252, align 8, !tbaa !43
  %1271 = getelementptr inbounds i8, ptr %1270, i64 6
  %1272 = and i8 %.71222, 1
  store i8 %1272, ptr %1271, align 1, !tbaa !45
  %1273 = load ptr, ptr %1252, align 8, !tbaa !43
  %1274 = getelementptr inbounds i8, ptr %1273, i64 7
  %1275 = and i8 %.11197, 1
  store i8 %1275, ptr %1274, align 1, !tbaa !45
  %1276 = load ptr, ptr %1252, align 8, !tbaa !43
  %1277 = getelementptr inbounds i8, ptr %1276, i64 8
  %1278 = and i8 %.81143, 1
  store i8 %1278, ptr %1277, align 1, !tbaa !45
  %1279 = load ptr, ptr %1252, align 8, !tbaa !43
  %1280 = getelementptr inbounds i8, ptr %1279, i64 9
  %1281 = and i8 %.91134, 1
  store i8 %1281, ptr %1280, align 1, !tbaa !45
  %1282 = load ptr, ptr %1252, align 8, !tbaa !43
  %1283 = getelementptr inbounds i8, ptr %1282, i64 10
  %1284 = and i8 %.101124, 1
  store i8 %1284, ptr %1283, align 1, !tbaa !45
  %1285 = load ptr, ptr %1252, align 8, !tbaa !43
  %1286 = getelementptr inbounds i8, ptr %1285, i64 11
  %1287 = and i8 %.21113, 1
  store i8 %1287, ptr %1286, align 1, !tbaa !45
  %1288 = load ptr, ptr %1252, align 8, !tbaa !43
  %1289 = getelementptr inbounds i8, ptr %1288, i64 12
  %1290 = and i8 %.31110, 1
  store i8 %1290, ptr %1289, align 1, !tbaa !45
  %1291 = load ptr, ptr %1252, align 8, !tbaa !43
  %1292 = getelementptr inbounds i8, ptr %1291, i64 13
  %1293 = and i8 %.31106, 1
  store i8 %1293, ptr %1292, align 1, !tbaa !45
  %1294 = load ptr, ptr %1252, align 8, !tbaa !43
  %1295 = getelementptr inbounds i8, ptr %1294, i64 14
  %1296 = and i8 %.10, 1
  store i8 %1296, ptr %1295, align 1, !tbaa !45
  %1297 = getelementptr inbounds i8, ptr %0, i64 62672
  %1298 = load ptr, ptr %1297, align 8, !tbaa !43
  store double %.17, ptr %1298, align 8, !tbaa !48
  %1299 = load ptr, ptr %1297, align 8, !tbaa !43
  %1300 = getelementptr inbounds i8, ptr %1299, i64 8
  store double %.111295, ptr %1300, align 8, !tbaa !48
  %1301 = load ptr, ptr %1297, align 8, !tbaa !43
  %1302 = getelementptr inbounds i8, ptr %1301, i64 16
  store double %.101283, ptr %1302, align 8, !tbaa !48
  %1303 = load ptr, ptr %1297, align 8, !tbaa !43
  %1304 = getelementptr inbounds i8, ptr %1303, i64 24
  store double %.31272, ptr %1304, align 8, !tbaa !48
  %1305 = load ptr, ptr %1297, align 8, !tbaa !43
  %1306 = getelementptr inbounds i8, ptr %1305, i64 32
  store double %.51268, ptr %1306, align 8, !tbaa !48
  %1307 = load ptr, ptr %1297, align 8, !tbaa !43
  %1308 = getelementptr inbounds i8, ptr %1307, i64 40
  store double %.51262, ptr %1308, align 8, !tbaa !48
  %1309 = load ptr, ptr %1297, align 8, !tbaa !43
  %1310 = getelementptr inbounds i8, ptr %1309, i64 48
  store double %.21256, ptr %1310, align 8, !tbaa !48
  %1311 = load ptr, ptr %1297, align 8, !tbaa !43
  %1312 = getelementptr inbounds i8, ptr %1311, i64 56
  store double %.81248, ptr %1312, align 8, !tbaa !48
  %1313 = load ptr, ptr %1297, align 8, !tbaa !43
  %1314 = getelementptr inbounds i8, ptr %1313, i64 64
  store double %.11214, ptr %1314, align 8, !tbaa !48
  %1315 = load ptr, ptr %1297, align 8, !tbaa !43
  %1316 = getelementptr inbounds i8, ptr %1315, i64 72
  store double %.11212, ptr %1316, align 8, !tbaa !48
  %1317 = load ptr, ptr %1297, align 8, !tbaa !43
  %1318 = getelementptr inbounds i8, ptr %1317, i64 80
  store double %.101210, ptr %1318, align 8, !tbaa !48
  %1319 = load ptr, ptr %1297, align 8, !tbaa !43
  %1320 = getelementptr inbounds i8, ptr %1319, i64 88
  store double %.01199, ptr %1320, align 8, !tbaa !48
  %1321 = load double, ptr %6, align 8, !tbaa !48
  %1322 = load ptr, ptr %1297, align 8, !tbaa !43
  %1323 = getelementptr inbounds i8, ptr %1322, i64 96
  store double %1321, ptr %1323, align 8, !tbaa !48
  %1324 = load double, ptr %7, align 8, !tbaa !48
  %1325 = load ptr, ptr %1297, align 8, !tbaa !43
  %1326 = getelementptr inbounds i8, ptr %1325, i64 104
  store double %1324, ptr %1326, align 8, !tbaa !48
  %1327 = load ptr, ptr %1297, align 8, !tbaa !43
  %1328 = getelementptr inbounds i8, ptr %1327, i64 112
  store double %.01198, ptr %1328, align 8, !tbaa !48
  %1329 = load double, ptr %8, align 8, !tbaa !48
  %1330 = load ptr, ptr %1297, align 8, !tbaa !43
  %1331 = getelementptr inbounds i8, ptr %1330, i64 120
  store double %1329, ptr %1331, align 8, !tbaa !48
  %1332 = load ptr, ptr %1297, align 8, !tbaa !43
  %1333 = getelementptr inbounds i8, ptr %1332, i64 128
  store double %.91186, ptr %1333, align 8, !tbaa !48
  %1334 = load ptr, ptr %1297, align 8, !tbaa !43
  %1335 = getelementptr inbounds i8, ptr %1334, i64 136
  %1336 = extractelement <2 x double> %1230, i64 0
  store double %1336, ptr %1335, align 8, !tbaa !48
  %1337 = load ptr, ptr %1297, align 8, !tbaa !43
  %1338 = getelementptr inbounds i8, ptr %1337, i64 144
  %1339 = extractelement <2 x double> %1230, i64 1
  store double %1339, ptr %1338, align 8, !tbaa !48
  %1340 = load double, ptr %9, align 8, !tbaa !48
  %1341 = load ptr, ptr %1297, align 8, !tbaa !43
  %1342 = getelementptr inbounds i8, ptr %1341, i64 152
  store double %1340, ptr %1342, align 8, !tbaa !48
  %1343 = load double, ptr %10, align 8, !tbaa !48
  %1344 = load ptr, ptr %1297, align 8, !tbaa !43
  %1345 = getelementptr inbounds i8, ptr %1344, i64 160
  store double %1343, ptr %1345, align 8, !tbaa !48
  %1346 = load ptr, ptr %1297, align 8, !tbaa !43
  %1347 = getelementptr inbounds i8, ptr %1346, i64 168
  store double %.91153, ptr %1347, align 8, !tbaa !48
  %1348 = load double, ptr %11, align 8, !tbaa !48
  %1349 = load ptr, ptr %1297, align 8, !tbaa !43
  %1350 = getelementptr inbounds i8, ptr %1349, i64 176
  store double %1348, ptr %1350, align 8, !tbaa !48
  %1351 = load double, ptr %12, align 8, !tbaa !48
  %1352 = load ptr, ptr %1297, align 8, !tbaa !43
  %1353 = getelementptr inbounds i8, ptr %1352, i64 184
  store double %1351, ptr %1353, align 8, !tbaa !48
  br label %1354

1354:                                             ; preds = %1229, %1228, %201
  %.01338 = phi i1 [ true, %1229 ], [ false, %201 ], [ false, %1228 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  ret i1 %.01338
}

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL21nlcsqp_sqpretrievefijEPKNS_11minsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL29nlcsqp_nonmonotonicmultiplybyEPNS_11minsqpstateEldPNS_8ae_stateE(ptr noundef, i64 noundef, double noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl20tracerownrm1autoprecEPKNS_9ae_matrixEllllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL24nlcsqp_qpsubproblemsolveEPNS_11minsqpstateEPNS_15minsqpsubsolverEPKNS_9ae_vectorES6_PKNS_9ae_matrixEPNS_12xbfgshessianEddPS4_SC_SC_bPlPdSE_SE_SE_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL19nlcsqp_lagrangianfgEPNS_11minsqpstateEPKNS_9ae_vectorEdS4_PKNS_9ae_matrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL28nlcsqp_penaltiesneedincreaseEPNS_11minsqpstateEPKNS_11varsfuncjacEPKNS_9ae_vectorEddbPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, double noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #1

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

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

declare void @_ZN11alglib_impl16tracerowautoprecEPKNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #5

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { "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 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !42, i64 62480}
!6 = !{!"_ZTSN11alglib_impl11minsqpstateE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !11, i64 48, !14, i64 112, !11, i64 192, !11, i64 256, !11, i64 320, !11, i64 384, !11, i64 448, !15, i64 512, !7, i64 536, !11, i64 544, !11, i64 608, !14, i64 672, !16, i64 752, !10, i64 760, !10, i64 761, !16, i64 768, !16, i64 776, !16, i64 784, !7, i64 792, !7, i64 800, !17, i64 808, !11, i64 1408, !11, i64 1472, !11, i64 1536, !11, i64 1600, !19, i64 1664, !39, i64 55416, !40, i64 58776, !7, i64 58912, !11, i64 58920, !11, i64 58984, !17, i64 59048, !17, i64 59648, !17, i64 60248, !17, i64 60848, !11, i64 61448, !11, i64 61512, !11, i64 61576, !11, i64 61640, !11, i64 61704, !11, i64 61768, !11, i64 61832, !11, i64 61896, !11, i64 61960, !11, i64 62024, !11, i64 62088, !11, i64 62152, !11, i64 62216, !11, i64 62280, !7, i64 62344, !7, i64 62352, !16, i64 62360, !7, i64 62368, !16, i64 62376, !7, i64 62384, !16, i64 62392, !7, i64 62400, !37, i64 62408, !37, i64 62432, !37, i64 62456, !41, i64 62480}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !10, i64 16, !12, i64 24, !8, i64 56}
!12 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !12, i64 40, !8, i64 72}
!15 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !16, i64 0, !16, i64 8, !7, i64 16}
!16 = !{!"double", !8, i64 0}
!17 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !7, i64 0, !7, i64 8, !10, i64 16, !11, i64 24, !11, i64 88, !14, i64 152, !18, i64 232}
!18 = !{!"_ZTSN11alglib_impl12sparsematrixE", !11, i64 0, !11, i64 64, !11, i64 128, !11, i64 192, !11, i64 256, !7, i64 320, !7, i64 328, !7, i64 336, !7, i64 344, !7, i64 352, !7, i64 360}
!19 = !{!"_ZTSN11alglib_impl15minsqpsubsolverE", !20, i64 0, !34, i64 26648, !11, i64 50544, !11, i64 50608, !11, i64 50672, !11, i64 50736, !11, i64 50800, !18, i64 50864, !18, i64 51232, !11, i64 51600, !14, i64 51664, !11, i64 51744, !14, i64 51808, !18, i64 51888, !11, i64 52256, !11, i64 52320, !11, i64 52384, !11, i64 52448, !11, i64 52512, !11, i64 52576, !11, i64 52640, !11, i64 52704, !14, i64 52768, !11, i64 52848, !11, i64 52912, !14, i64 52976, !11, i64 53056, !7, i64 53120, !18, i64 53128, !11, i64 53496, !11, i64 53560, !11, i64 53624, !11, i64 53688}
!20 = !{!"_ZTSN11alglib_impl9vipmstateE", !10, i64 0, !10, i64 1, !7, i64 8, !7, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !10, i64 48, !11, i64 56, !11, i64 120, !11, i64 184, !16, i64 248, !11, i64 256, !14, i64 320, !18, i64 400, !11, i64 768, !7, i64 832, !10, i64 840, !11, i64 848, !11, i64 912, !11, i64 976, !11, i64 1040, !11, i64 1104, !11, i64 1168, !14, i64 1232, !14, i64 1312, !18, i64 1392, !18, i64 1760, !18, i64 2128, !11, i64 2496, !11, i64 2560, !11, i64 2624, !11, i64 2688, !11, i64 2752, !7, i64 2816, !7, i64 2824, !21, i64 2832, !21, i64 3488, !21, i64 4144, !21, i64 4800, !21, i64 5456, !11, i64 6112, !11, i64 6176, !11, i64 6240, !11, i64 6304, !11, i64 6368, !7, i64 6432, !7, i64 6440, !7, i64 6448, !7, i64 6456, !7, i64 6464, !7, i64 6472, !10, i64 6480, !10, i64 6481, !7, i64 6488, !10, i64 6496, !10, i64 6497, !11, i64 6504, !11, i64 6568, !11, i64 6632, !11, i64 6696, !11, i64 6760, !11, i64 6824, !11, i64 6888, !11, i64 6952, !11, i64 7016, !11, i64 7080, !11, i64 7144, !11, i64 7208, !11, i64 7272, !11, i64 7336, !11, i64 7400, !14, i64 7464, !11, i64 7544, !11, i64 7608, !11, i64 7672, !11, i64 7736, !11, i64 7800, !22, i64 7864, !33, i64 23944, !11, i64 24584, !11, i64 24648, !11, i64 24712, !11, i64 24776, !11, i64 24840, !11, i64 24904, !11, i64 24968, !11, i64 25032, !21, i64 25096, !11, i64 25752, !11, i64 25816, !11, i64 25880, !11, i64 25944, !11, i64 26008, !14, i64 26072, !11, i64 26152, !11, i64 26216, !18, i64 26280}
!21 = !{!"_ZTSN11alglib_impl8vipmvarsE", !7, i64 0, !7, i64 8, !11, i64 16, !11, i64 80, !11, i64 144, !11, i64 208, !11, i64 272, !11, i64 336, !11, i64 400, !11, i64 464, !11, i64 528, !11, i64 592}
!22 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !18, i64 0, !11, i64 368, !11, i64 432, !11, i64 496, !11, i64 560, !7, i64 624, !23, i64 632, !11, i64 15696, !11, i64 15760, !11, i64 15824, !11, i64 15888, !11, i64 15952, !11, i64 16016}
!23 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !7, i64 32, !16, i64 40, !16, i64 48, !16, i64 56, !16, i64 64, !11, i64 72, !10, i64 136, !10, i64 137, !10, i64 138, !10, i64 139, !10, i64 140, !11, i64 144, !7, i64 208, !11, i64 216, !11, i64 280, !11, i64 344, !11, i64 408, !11, i64 472, !11, i64 536, !10, i64 600, !11, i64 608, !11, i64 672, !11, i64 736, !11, i64 800, !11, i64 864, !11, i64 928, !10, i64 992, !10, i64 993, !24, i64 1000, !11, i64 1512, !11, i64 1576, !11, i64 1640, !11, i64 1704, !11, i64 1768, !11, i64 1832, !25, i64 1896, !25, i64 2040, !25, i64 2184, !25, i64 2328, !25, i64 2472, !25, i64 2616, !11, i64 2760, !11, i64 2824, !11, i64 2888, !11, i64 2952, !11, i64 3016, !27, i64 3080, !32, i64 7464, !11, i64 13816, !11, i64 13880, !11, i64 13944, !11, i64 14008, !11, i64 14072, !11, i64 14136, !18, i64 14200, !18, i64 14568, !11, i64 14936, !11, i64 15000}
!24 = !{!"_ZTSN11alglib_impl9spcholadjE", !11, i64 0, !11, i64 64, !11, i64 128, !11, i64 192, !11, i64 256, !11, i64 320, !11, i64 384, !11, i64 448}
!25 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !12, i64 32, !26, i64 64, !12, i64 112}
!26 = !{!"_ZTSN11alglib_impl7ae_lockE", !13, i64 0, !12, i64 8, !10, i64 40}
!27 = !{!"_ZTSN11alglib_impl9amdbufferE", !7, i64 0, !10, i64 8, !10, i64 9, !11, i64 16, !11, i64 80, !11, i64 144, !28, i64 208, !28, i64 568, !28, i64 928, !29, i64 1288, !30, i64 1496, !31, i64 1968, !11, i64 2120, !11, i64 2184, !11, i64 2248, !31, i64 2312, !31, i64 2464, !31, i64 2616, !31, i64 2768, !31, i64 2920, !31, i64 3072, !11, i64 3224, !7, i64 3288, !31, i64 3296, !31, i64 3448, !28, i64 3600, !31, i64 3960, !11, i64 4112, !11, i64 4176, !11, i64 4240, !14, i64 4304}
!28 = !{!"_ZTSN11alglib_impl8amdknsetE", !7, i64 0, !7, i64 8, !11, i64 16, !11, i64 80, !11, i64 144, !11, i64 208, !11, i64 272, !7, i64 336, !7, i64 344, !7, i64 352}
!29 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !7, i64 0, !11, i64 8, !11, i64 72, !11, i64 136, !7, i64 200}
!30 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !7, i64 0, !10, i64 8, !7, i64 16, !11, i64 24, !11, i64 88, !11, i64 152, !11, i64 216, !11, i64 280, !11, i64 344, !11, i64 408}
!31 = !{!"_ZTSN11alglib_impl5nisetE", !7, i64 0, !7, i64 8, !11, i64 16, !11, i64 80, !7, i64 144}
!32 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !11, i64 0, !11, i64 64, !27, i64 128, !18, i64 4512, !18, i64 4880, !18, i64 5248, !18, i64 5616, !18, i64 5984}
!33 = !{!"_ZTSN11alglib_impl17vipmrighthandsideE", !11, i64 0, !11, i64 64, !11, i64 128, !11, i64 192, !11, i64 256, !11, i64 320, !11, i64 384, !11, i64 448, !11, i64 512, !11, i64 576}
!34 = !{!"_ZTSN11alglib_impl9ipm2stateE", !7, i64 0, !7, i64 8, !7, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !7, i64 48, !10, i64 56, !11, i64 64, !11, i64 128, !11, i64 192, !16, i64 256, !11, i64 264, !18, i64 328, !11, i64 696, !10, i64 760, !16, i64 768, !11, i64 776, !11, i64 840, !11, i64 904, !11, i64 968, !11, i64 1032, !11, i64 1096, !11, i64 1160, !11, i64 1224, !11, i64 1288, !11, i64 1352, !11, i64 1416, !11, i64 1480, !11, i64 1544, !11, i64 1608, !11, i64 1672, !18, i64 1736, !11, i64 2104, !7, i64 2168, !35, i64 2176, !35, i64 2576, !35, i64 2976, !35, i64 3376, !11, i64 3776, !11, i64 3840, !11, i64 3904, !11, i64 3968, !7, i64 4032, !7, i64 4040, !11, i64 4048, !11, i64 4112, !11, i64 4176, !36, i64 4240, !7, i64 4624, !7, i64 4632, !10, i64 4640, !10, i64 4641, !10, i64 4642, !37, i64 4648, !37, i64 4672, !37, i64 4696, !37, i64 4720, !37, i64 4744, !38, i64 4768, !36, i64 21736, !11, i64 22120, !11, i64 22184, !11, i64 22248, !11, i64 22312, !11, i64 22376, !14, i64 22440, !18, i64 22520, !11, i64 22888, !11, i64 22952, !18, i64 23016, !18, i64 23384, !14, i64 23752, !11, i64 23832}
!35 = !{!"_ZTSN11alglib_impl8ipm2varsE", !7, i64 0, !7, i64 8, !11, i64 16, !11, i64 80, !11, i64 144, !11, i64 208, !11, i64 272, !11, i64 336}
!36 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !11, i64 0, !11, i64 64, !11, i64 128, !11, i64 192, !11, i64 256, !11, i64 320}
!37 = !{!"_ZTSN11alglib_impl6stimerE", !7, i64 0, !7, i64 8, !10, i64 16}
!38 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !18, i64 0, !11, i64 368, !23, i64 432, !11, i64 15496, !11, i64 15560, !11, i64 15624, !11, i64 15688, !11, i64 15752, !11, i64 15816, !11, i64 15880, !11, i64 15944, !11, i64 16008, !11, i64 16072, !11, i64 16136, !11, i64 16200, !11, i64 16264, !11, i64 16328, !11, i64 16392, !11, i64 16456, !11, i64 16520, !11, i64 16584, !11, i64 16648, !11, i64 16712, !11, i64 16776, !11, i64 16840, !11, i64 16904}
!39 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !7, i64 0, !11, i64 8, !11, i64 72, !7, i64 136, !7, i64 144, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184, !16, i64 192, !16, i64 200, !7, i64 208, !16, i64 216, !16, i64 224, !14, i64 232, !7, i64 312, !16, i64 320, !16, i64 328, !16, i64 336, !7, i64 344, !16, i64 352, !14, i64 360, !14, i64 440, !14, i64 520, !14, i64 600, !10, i64 680, !7, i64 688, !14, i64 696, !14, i64 776, !10, i64 856, !11, i64 864, !10, i64 928, !7, i64 936, !14, i64 944, !11, i64 1024, !11, i64 1088, !14, i64 1152, !11, i64 1232, !11, i64 1296, !10, i64 1360, !11, i64 1368, !16, i64 1432, !16, i64 1440, !7, i64 1448, !14, i64 1456, !11, i64 1536, !11, i64 1600, !11, i64 1664, !11, i64 1728, !11, i64 1792, !11, i64 1856, !14, i64 1920, !14, i64 2000, !14, i64 2080, !14, i64 2160, !14, i64 2240, !14, i64 2320, !14, i64 2400, !14, i64 2480, !11, i64 2560, !11, i64 2624, !14, i64 2688, !11, i64 2768, !14, i64 2832, !14, i64 2912, !14, i64 2992, !14, i64 3072, !14, i64 3152, !11, i64 3232, !11, i64 3296}
!40 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !7, i64 0, !7, i64 8, !10, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !26, i64 56, !12, i64 104}
!41 = !{!"_ZTSN11alglib_impl10rcommstateE", !42, i64 0, !11, i64 8, !11, i64 72, !11, i64 136, !11, i64 200}
!42 = !{!"int", !8, i64 0}
!43 = !{!8, !8, i64 0}
!44 = !{!7, !7, i64 0}
!45 = !{!10, !10, i64 0}
!46 = !{i8 0, i8 2}
!47 = !{}
!48 = !{!16, !16, i64 0}
!49 = !{!6, !7, i64 0}
!50 = !{!6, !7, i64 8}
!51 = !{!6, !7, i64 16}
!52 = !{!6, !7, i64 24}
!53 = !{!6, !7, i64 32}
!54 = !{!6, !10, i64 760}
!55 = !{!6, !10, i64 761}
!56 = !{!6, !16, i64 776}
!57 = !{!6, !16, i64 784}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!6, !7, i64 58912}
!61 = !{!6, !7, i64 62352}
!62 = !{!6, !16, i64 752}
!63 = !{!6, !16, i64 768}
!64 = !{!6, !10, i64 40}
!65 = !{!6, !7, i64 536}
!66 = !{!6, !7, i64 62344}
!67 = !{!6, !7, i64 800}
!68 = !{!13, !13, i64 0}
!69 = distinct !{!69, !59}
!70 = distinct !{!70, !59}
!71 = distinct !{!71, !59}
!72 = distinct !{!72, !59}
!73 = distinct !{!73, !59}
!74 = !{!6, !16, i64 62376}
!75 = distinct !{!75, !59}
!76 = distinct !{!76, !59}
!77 = distinct !{!77, !59}
!78 = distinct !{!78, !59}
!79 = distinct !{!79, !59}
!80 = distinct !{!80, !81}
!81 = !{!"llvm.loop.unroll.disable"}
!82 = distinct !{!82, !59}
!83 = distinct !{!83, !59}
!84 = distinct !{!84, !59}
!85 = !{!86, !16, i64 864}
!86 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !7, i64 0, !7, i64 8, !10, i64 16, !11, i64 24, !11, i64 88, !7, i64 152, !11, i64 160, !11, i64 224, !11, i64 288, !14, i64 352, !11, i64 432, !11, i64 496, !7, i64 560, !7, i64 568, !7, i64 576, !16, i64 584, !7, i64 592, !11, i64 600, !11, i64 664, !16, i64 728, !11, i64 736, !11, i64 800, !16, i64 864, !14, i64 872, !14, i64 952, !14, i64 1032, !11, i64 1112, !11, i64 1176, !41, i64 1240, !10, i64 1504, !10, i64 1505, !7, i64 1512, !7, i64 1520, !16, i64 1528, !16, i64 1536, !10, i64 1544, !87, i64 1552, !16, i64 1848, !16, i64 1856, !88, i64 1864, !88, i64 2184, !16, i64 2504, !16, i64 2512, !89, i64 2520, !89, i64 2840, !16, i64 3160, !16, i64 3168, !90, i64 3176, !90, i64 3504, !10, i64 3832, !11, i64 3840, !11, i64 3904, !14, i64 3968, !41, i64 4048, !11, i64 4312, !11, i64 4376, !11, i64 4440, !11, i64 4504, !11, i64 4568, !11, i64 4632, !11, i64 4696, !11, i64 4760, !14, i64 4824, !14, i64 4904, !11, i64 4984, !11, i64 5048, !11, i64 5112, !11, i64 5176, !11, i64 5240, !11, i64 5304, !11, i64 5368, !11, i64 5432, !11, i64 5496, !11, i64 5560, !14, i64 5624}
!87 = !{!"_ZTSN11alglib_impl14optguardreportE", !10, i64 0, !10, i64 1, !7, i64 8, !16, i64 16, !10, i64 24, !10, i64 25, !10, i64 26, !7, i64 32, !16, i64 40, !10, i64 48, !7, i64 56, !7, i64 64, !11, i64 72, !14, i64 136, !14, i64 216}
!88 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !10, i64 0, !7, i64 8, !11, i64 16, !11, i64 80, !7, i64 144, !11, i64 152, !11, i64 216, !7, i64 280, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312}
!89 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !10, i64 0, !7, i64 8, !11, i64 16, !11, i64 80, !7, i64 144, !11, i64 152, !11, i64 216, !7, i64 280, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312}
!90 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !10, i64 0, !7, i64 8, !7, i64 16, !11, i64 24, !11, i64 88, !7, i64 152, !11, i64 160, !11, i64 224, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312, !7, i64 320}
!91 = distinct !{!91, !59}
!92 = distinct !{!92, !59}
!93 = distinct !{!93, !59}
!94 = distinct !{!94, !59}
!95 = !{!6, !7, i64 792}


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