; 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::minfsqpstate" = type { i64, i64, i64, i8, %"struct.alglib_impl::ae_vector", %"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_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", double, double, %"struct.alglib_impl::nlpstoppingcriteria", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", double, i8, i8, double, double, i64, i64, %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minfsqpsubsolver", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"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::nlpfilter", %"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::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::nlpstoppingcriteria" = type { double, double, i64 }
%"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::minfsqpsubsolver" = 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", double, double, %"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_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::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"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::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::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::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::nlpfilter" = type { double, i64, double, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::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.708 = external hidden unnamed_addr constant [21 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.776 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE = external hidden global double, align 8
@_ZN11alglib_implL24nlcfsqp_sqpdeltaincreaseE = external hidden global double, align 8
@.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
@_ZN11alglib_implL20nlcfsqp_inittrustradE = external hidden global double, align 8
@_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE = external hidden global double, align 8
@_ZN11alglib_implL22nlcfsqp_defsqpbigscaleE = external hidden global double, align 8
@_ZN11alglib_implL24nlcfsqp_defsqpsmallscaleE = external hidden global double, align 8
@.str.1118 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.1119 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1120 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1121 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.1122 = external hidden unnamed_addr constant [82 x i8], align 1
@_ZN11alglib_implL19nlcfsqp_xbfgsmemlenE = external hidden global i64, align 8
@_ZN11alglib_implL20nlcfsqp_xbfgsmaxhessE = external hidden global double, align 8
@.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
@_ZN11alglib_implL24nlcfsqp_fstagnationlimitE = external hidden global i64, align 8
@.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.1138 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.1139 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1140 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1141 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.1142 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.1143 = external hidden unnamed_addr constant [222 x i8], align 1
@.str.1144 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.1145 = external hidden unnamed_addr constant [113 x i8], align 1
@_ZN11alglib_implL24nlcfsqp_maxtrustraddecayE = external hidden global double, align 8
@.str.1146 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.1147 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.1148 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.1149 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.1150 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.1151 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.1152 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.1153 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1154 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1155 = external hidden unnamed_addr constant [40 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.1158 = external hidden unnamed_addr constant [99 x i8], align 1
@_ZN11alglib_implL31nlcfsqp_sufficientdecreasesigmaE = external hidden global double, align 8
@.str.1159 = external hidden unnamed_addr constant [76 x i8], align 1
@_ZN11alglib_implL22nlcfsqp_stagnationepsfE = external hidden global double, align 8
@.str.1160 = external hidden unnamed_addr constant [27 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.1163 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1164 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1165 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1166 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1167 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1168 = 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.1172 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1173 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1174 = external hidden unnamed_addr constant [74 x i8], align 1
@_ZN11alglib_implL22nlcfsqp_momentumgrowthE = external hidden global double, align 8
@_ZN11alglib_implL25nlcfsqp_maxtrustradgrowthE = external hidden global double, align 8
@.str.1175 = external hidden unnamed_addr constant [103 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.1180 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1181 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1182 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1183 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1184 = external hidden unnamed_addr constant [54 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(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) #2

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

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

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

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

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

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

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) #1

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, double noundef, 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) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

353:                                              ; 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 i8 1, ptr %22, align 1, !tbaa !9
  store i8 0, ptr %24, align 1, !tbaa !9
  store i8 0, ptr %25, align 1, !tbaa !9
  store i8 1, ptr %26, align 1, !tbaa !9
  store i8 1, ptr %27, align 1, !tbaa !9
  store i8 0, ptr %28, align 1, !tbaa !9
  store i8 1, ptr %29, align 1, !tbaa !9
  store i8 0, ptr %40, align 1, !tbaa !9
  store i8 1, ptr %41, align 1, !tbaa !9
  store i8 1, ptr %42, align 1, !tbaa !9
  store i8 0, ptr %43, align 1, !tbaa !9
  store i8 0, ptr %44, align 1, !tbaa !9
  store i8 0, ptr %45, align 1, !tbaa !9
  store i8 0, ptr %46, align 1, !tbaa !9
  store i8 0, ptr %47, align 1, !tbaa !9
  store double -2.290000e+02, ptr %15, align 8, !tbaa !49
  store double -5.360000e+02, ptr %16, align 8, !tbaa !49
  store double 4.870000e+02, ptr %17, align 8, !tbaa !49
  store double -1.150000e+02, ptr %18, align 8, !tbaa !49
  store double 8.860000e+02, ptr %19, align 8, !tbaa !49
  store double 3.460000e+02, ptr %20, align 8, !tbaa !49
  store double -7.220000e+02, ptr %21, align 8, !tbaa !49
  store double -4.130000e+02, ptr %23, align 8, !tbaa !49
  store double -4.610000e+02, ptr %30, align 8, !tbaa !49
  store double 9.270000e+02, ptr %31, align 8, !tbaa !49
  store double 2.010000e+02, ptr %32, align 8, !tbaa !49
  store double 9.220000e+02, ptr %33, align 8, !tbaa !49
  store double -1.540000e+02, ptr %34, align 8, !tbaa !49
  store double 3.060000e+02, ptr %35, align 8, !tbaa !49
  store double -1.011000e+03, ptr %36, align 8, !tbaa !49
  store double 9.510000e+02, ptr %37, align 8, !tbaa !49
  store double -4.630000e+02, ptr %38, align 8, !tbaa !49
  store double 8.800000e+01, ptr %39, align 8, !tbaa !49
  br label %354

354:                                              ; preds = %353, %56
  %355 = load ptr, ptr %6, align 8, !tbaa !5
  %356 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %355, i32 0, i32 78
  %357 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %356, i32 0, i32 0
  %358 = load i32, ptr %357, align 8, !tbaa !11
  %359 = icmp eq i32 %358, 0
  br i1 %359, label %360, label %361

360:                                              ; preds = %354
  br label %544

361:                                              ; preds = %354
  %362 = load ptr, ptr %6, align 8, !tbaa !5
  %363 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %362, i32 0, i32 78
  %364 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %363, i32 0, i32 0
  %365 = load i32, ptr %364, align 8, !tbaa !11
  %366 = icmp eq i32 %365, 1
  br i1 %366, label %367, label %368

367:                                              ; preds = %361
  br label %591

368:                                              ; preds = %361
  %369 = load ptr, ptr %6, align 8, !tbaa !5
  %370 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %369, i32 0, i32 78
  %371 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %370, i32 0, i32 0
  %372 = load i32, ptr %371, align 8, !tbaa !11
  %373 = icmp eq i32 %372, 2
  br i1 %373, label %374, label %375

374:                                              ; preds = %368
  br label %1325

375:                                              ; preds = %368
  %376 = load ptr, ptr %6, align 8, !tbaa !5
  %377 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %376, i32 0, i32 78
  %378 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %377, i32 0, i32 0
  %379 = load i32, ptr %378, align 8, !tbaa !11
  %380 = icmp eq i32 %379, 3
  br i1 %380, label %381, label %382

381:                                              ; preds = %375
  br label %1906

382:                                              ; preds = %375
  %383 = load ptr, ptr %6, align 8, !tbaa !5
  %384 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %383, i32 0, i32 78
  %385 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %384, i32 0, i32 0
  %386 = load i32, ptr %385, align 8, !tbaa !11
  %387 = icmp eq i32 %386, 4
  br i1 %387, label %388, label %389

388:                                              ; preds = %382
  br label %2079

389:                                              ; preds = %382
  %390 = load ptr, ptr %6, align 8, !tbaa !5
  %391 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %390, i32 0, i32 0
  %392 = load i64, ptr %391, align 8, !tbaa !50
  store i64 %392, ptr %10, align 8, !tbaa !46
  %393 = load ptr, ptr %6, align 8, !tbaa !5
  %394 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %393, i32 0, i32 1
  %395 = load i64, ptr %394, align 8, !tbaa !51
  store i64 %395, ptr %11, align 8, !tbaa !46
  %396 = load ptr, ptr %6, align 8, !tbaa !5
  %397 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %396, i32 0, i32 2
  %398 = load i64, ptr %397, align 8, !tbaa !52
  store i64 %398, ptr %12, align 8, !tbaa !46
  %399 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1113)
  %400 = zext i1 %399 to i8
  store i8 %400, ptr %25, align 1, !tbaa !9
  %401 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1114)
  br i1 %401, label %402, label %406

402:                                              ; preds = %389
  %403 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %404 = trunc i8 %403 to i1
  %405 = xor i1 %404, true
  br label %406

406:                                              ; preds = %402, %389
  %407 = phi i1 [ false, %389 ], [ %405, %402 ]
  %408 = zext i1 %407 to i8
  store i8 %408, ptr %24, align 1, !tbaa !9
  %409 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %410 = trunc i8 %409 to i1
  br i1 %410, label %411, label %413

411:                                              ; preds = %406
  %412 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1115)
  br label %413

413:                                              ; preds = %411, %406
  %414 = phi i1 [ false, %406 ], [ %412, %411 ]
  %415 = zext i1 %414 to i8
  store i8 %415, ptr %28, align 1, !tbaa !9
  %416 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %417 = trunc i8 %416 to i1
  br i1 %417, label %418, label %420

418:                                              ; preds = %413
  %419 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1116)
  br label %420

420:                                              ; preds = %418, %413
  %421 = phi i1 [ false, %413 ], [ %419, %418 ]
  %422 = zext i1 %421 to i8
  store i8 %422, ptr %26, align 1, !tbaa !9
  %423 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %424 = trunc i8 %423 to i1
  br i1 %424, label %425, label %427

425:                                              ; preds = %420
  %426 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1117)
  br label %427

427:                                              ; preds = %425, %420
  %428 = phi i1 [ false, %420 ], [ %426, %425 ]
  %429 = zext i1 %428 to i8
  store i8 %429, ptr %27, align 1, !tbaa !9
  %430 = load ptr, ptr %6, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %430, i32 0, i32 32
  store i8 0, ptr %431, align 8, !tbaa !53
  %432 = load ptr, ptr %6, align 8, !tbaa !5
  %433 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %432, i32 0, i32 33
  store i8 0, ptr %433, align 1, !tbaa !54
  %434 = load ptr, ptr %6, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %434, i32 0, i32 73
  %436 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %435, ptr noundef %436)
  %437 = load ptr, ptr %6, align 8, !tbaa !5
  %438 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %437, i32 0, i32 74
  %439 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %438, ptr noundef %439)
  %440 = load ptr, ptr %6, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %440, i32 0, i32 75
  %442 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %441, ptr noundef %442)
  %443 = load ptr, ptr %6, align 8, !tbaa !5
  %444 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %443, i32 0, i32 76
  %445 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %444, ptr noundef %445)
  %446 = load ptr, ptr %6, align 8, !tbaa !5
  %447 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %446, i32 0, i32 77
  %448 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef %447, ptr noundef %448)
  %449 = load ptr, ptr %6, align 8, !tbaa !5
  %450 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %449, i32 0, i32 73
  %451 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %450, ptr noundef %451)
  %452 = load ptr, ptr %6, align 8, !tbaa !5
  %453 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %452, i32 0, i32 37
  store i64 0, ptr %453, align 8, !tbaa !55
  %454 = load ptr, ptr %6, align 8, !tbaa !5
  %455 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %454, i32 0, i32 36
  store i64 0, ptr %455, align 8, !tbaa !56
  %456 = load double, ptr @_ZN11alglib_implL20nlcfsqp_inittrustradE, align 8, !tbaa !49
  %457 = load ptr, ptr %6, align 8, !tbaa !5
  %458 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %457, i32 0, i32 34
  store double %456, ptr %458, align 8, !tbaa !57
  %459 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !49
  %460 = load ptr, ptr %6, align 8, !tbaa !5
  %461 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %460, i32 0, i32 35
  store double %459, ptr %461, align 8, !tbaa !58
  %462 = load i64, ptr %10, align 8, !tbaa !46
  %463 = load ptr, ptr %6, align 8, !tbaa !5
  %464 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %463, i32 0, i32 51
  %465 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %462, double noundef 0.000000e+00, ptr noundef %464, ptr noundef %465)
  %466 = load i64, ptr %11, align 8, !tbaa !46
  %467 = load ptr, ptr %6, align 8, !tbaa !5
  %468 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %467, i32 0, i32 52
  %469 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %466, double noundef 0.000000e+00, ptr noundef %468, ptr noundef %469)
  %470 = load i64, ptr %12, align 8, !tbaa !46
  %471 = load ptr, ptr %6, align 8, !tbaa !5
  %472 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %471, i32 0, i32 53
  %473 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %470, double noundef 0.000000e+00, ptr noundef %472, ptr noundef %473)
  %474 = load i64, ptr %12, align 8, !tbaa !46
  %475 = add nsw i64 1, %474
  %476 = load ptr, ptr %6, align 8, !tbaa !5
  %477 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %476, i32 0, i32 22
  %478 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %475, double noundef 1.000000e+00, ptr noundef %477, ptr noundef %478)
  %479 = load i64, ptr %12, align 8, !tbaa !46
  %480 = add nsw i64 1, %479
  %481 = load ptr, ptr %6, align 8, !tbaa !5
  %482 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %481, i32 0, i32 23
  %483 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %480, double noundef 1.000000e+00, ptr noundef %482, ptr noundef %483)
  %484 = load double, ptr @_ZN11alglib_implL22nlcfsqp_defsqpbigscaleE, align 8, !tbaa !49
  %485 = load ptr, ptr %6, align 8, !tbaa !5
  %486 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %485, i32 0, i32 24
  store double %484, ptr %486, align 8, !tbaa !59
  %487 = load double, ptr @_ZN11alglib_implL24nlcfsqp_defsqpsmallscaleE, align 8, !tbaa !49
  %488 = load ptr, ptr %6, align 8, !tbaa !5
  %489 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %488, i32 0, i32 25
  store double %487, ptr %489, align 8, !tbaa !60
  %490 = load i64, ptr %12, align 8, !tbaa !46
  %491 = load ptr, ptr %6, align 8, !tbaa !5
  %492 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %491, i32 0, i32 18
  %493 = load ptr, ptr %6, align 8, !tbaa !5
  %494 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %493, i32 0, i32 20
  %495 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %490, ptr noundef %492, ptr noundef %494, ptr noundef %495)
  %496 = load i64, ptr %12, align 8, !tbaa !46
  %497 = load ptr, ptr %6, align 8, !tbaa !5
  %498 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %497, i32 0, i32 19
  %499 = load ptr, ptr %6, align 8, !tbaa !5
  %500 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %499, i32 0, i32 21
  %501 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %496, ptr noundef %498, ptr noundef %500, ptr noundef %501)
  %502 = load i64, ptr %10, align 8, !tbaa !46
  %503 = load i64, ptr %12, align 8, !tbaa !46
  %504 = add nsw i64 1, %503
  %505 = load ptr, ptr %6, align 8, !tbaa !5
  %506 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %505, i32 0, i32 38
  %507 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %502, i64 noundef %504, ptr noundef %506, ptr noundef %507)
  %508 = load i64, ptr %10, align 8, !tbaa !46
  %509 = load i64, ptr %12, align 8, !tbaa !46
  %510 = add nsw i64 1, %509
  %511 = load ptr, ptr %6, align 8, !tbaa !5
  %512 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %511, i32 0, i32 45
  %513 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %508, i64 noundef %510, ptr noundef %512, ptr noundef %513)
  %514 = load i64, ptr %10, align 8, !tbaa !46
  %515 = load i64, ptr %12, align 8, !tbaa !46
  %516 = add nsw i64 1, %515
  %517 = load ptr, ptr %6, align 8, !tbaa !5
  %518 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %517, i32 0, i32 46
  %519 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %514, i64 noundef %516, ptr noundef %518, ptr noundef %519)
  %520 = load i64, ptr %10, align 8, !tbaa !46
  %521 = load ptr, ptr %6, align 8, !tbaa !5
  %522 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %521, i32 0, i32 39
  %523 = load ptr, ptr %6, align 8, !tbaa !5
  %524 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %523, i32 0, i32 38
  %525 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %524, i32 0, i32 3
  %526 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %520, ptr noundef %522, ptr noundef %525, ptr noundef %526)
  %527 = load ptr, ptr %6, align 8, !tbaa !5
  %528 = load ptr, ptr %6, align 8, !tbaa !5
  %529 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %528, i32 0, i32 38
  %530 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %529, i32 0, i32 3
  %531 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %527, ptr noundef %530, ptr noundef %531)
  %532 = load ptr, ptr %6, align 8, !tbaa !5
  %533 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %532, i32 0, i32 32
  store i8 1, ptr %533, align 8, !tbaa !53
  %534 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %535 = trunc i8 %534 to i1
  br i1 %535, label %536, label %540

536:                                              ; preds = %427
  %537 = load ptr, ptr %6, align 8, !tbaa !5
  %538 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %537, i32 0, i32 77
  %539 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %538, ptr noundef %539)
  br label %540

540:                                              ; preds = %536, %427
  %541 = load ptr, ptr %6, align 8, !tbaa !5
  %542 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %541, i32 0, i32 78
  %543 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %542, i32 0, i32 0
  store i32 0, ptr %543, align 8, !tbaa !11
  br label %2324

544:                                              ; preds = %360
  %545 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %546 = trunc i8 %545 to i1
  br i1 %546, label %547, label %551

547:                                              ; preds = %544
  %548 = load ptr, ptr %6, align 8, !tbaa !5
  %549 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %548, i32 0, i32 77
  %550 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %549, ptr noundef %550)
  br label %551

551:                                              ; preds = %547, %544
  %552 = load ptr, ptr %6, align 8, !tbaa !5
  %553 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %552, i32 0, i32 32
  store i8 0, ptr %553, align 8, !tbaa !53
  %554 = load ptr, ptr %6, align 8, !tbaa !5
  %555 = load ptr, ptr %6, align 8, !tbaa !5
  %556 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %555, i32 0, i32 38
  %557 = load ptr, ptr %9, align 8, !tbaa !5
  %558 = call noundef zeroext i1 @_ZN11alglib_implL22nlcfsqp_sqpretrievefijEPKNS_12minfsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %554, ptr noundef %556, ptr noundef %557)
  br i1 %558, label %564, label %559

559:                                              ; preds = %551
  %560 = load ptr, ptr %6, align 8, !tbaa !5
  %561 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %560, i32 0, i32 66
  store i64 -8, ptr %561, align 8, !tbaa !61
  store i8 0, ptr %48, align 1, !tbaa !9
  %562 = load i8, ptr %48, align 1, !tbaa !9, !range !47, !noundef !48
  %563 = trunc i8 %562 to i1
  store i1 %563, ptr %5, align 1
  store i32 1, ptr %49, align 4
  br label %2623

564:                                              ; preds = %551
  %565 = load ptr, ptr %6, align 8, !tbaa !5
  %566 = load ptr, ptr %6, align 8, !tbaa !5
  %567 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %566, i32 0, i32 38
  %568 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %567, i32 0, i32 3
  %569 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %565, ptr noundef %568, ptr noundef %569)
  %570 = load ptr, ptr %6, align 8, !tbaa !5
  %571 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %570, i32 0, i32 38
  %572 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %571, i32 0, i32 4
  %573 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %572, i32 0, i32 4
  %574 = load ptr, ptr %573, align 8, !tbaa !45
  %575 = getelementptr inbounds double, ptr %574, i64 0
  %576 = load double, ptr %575, align 8, !tbaa !49
  %577 = load ptr, ptr %6, align 8, !tbaa !5
  %578 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %577, i32 0, i32 22
  %579 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %578, i32 0, i32 4
  %580 = load ptr, ptr %579, align 8, !tbaa !45
  %581 = getelementptr inbounds double, ptr %580, i64 0
  %582 = load double, ptr %581, align 8, !tbaa !49
  %583 = fmul double %576, %582
  %584 = load ptr, ptr %6, align 8, !tbaa !5
  %585 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %584, i32 0, i32 31
  store double %583, ptr %585, align 8, !tbaa !62
  %586 = load ptr, ptr %6, align 8, !tbaa !5
  %587 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %586, i32 0, i32 33
  store i8 1, ptr %587, align 1, !tbaa !54
  %588 = load ptr, ptr %6, align 8, !tbaa !5
  %589 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %588, i32 0, i32 78
  %590 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %589, i32 0, i32 0
  store i32 1, ptr %590, align 8, !tbaa !11
  br label %2324

591:                                              ; preds = %367
  %592 = load ptr, ptr %6, align 8, !tbaa !5
  %593 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %592, i32 0, i32 33
  store i8 0, ptr %593, align 1, !tbaa !54
  %594 = load ptr, ptr %6, align 8, !tbaa !5
  %595 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %594, i32 0, i32 5
  %596 = load ptr, ptr %6, align 8, !tbaa !5
  %597 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %596, i32 0, i32 8
  %598 = load ptr, ptr %6, align 8, !tbaa !5
  %599 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %598, i32 0, i32 9
  %600 = load ptr, ptr %6, align 8, !tbaa !5
  %601 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %600, i32 0, i32 11
  %602 = load i64, ptr %11, align 8, !tbaa !46
  %603 = load ptr, ptr %6, align 8, !tbaa !5
  %604 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %603, i32 0, i32 38
  %605 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %604, i32 0, i32 3
  %606 = load ptr, ptr %6, align 8, !tbaa !5
  %607 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %606, i32 0, i32 69
  %608 = load ptr, ptr %6, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %608, i32 0, i32 70
  %610 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef %595, ptr noundef %597, ptr noundef %599, ptr noundef %601, i64 noundef %602, ptr noundef %605, ptr noundef %607, ptr noundef %609, ptr noundef %610)
  %611 = load ptr, ptr %6, align 8, !tbaa !5
  %612 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %611, i32 0, i32 38
  %613 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %612, i32 0, i32 4
  %614 = load ptr, ptr %6, align 8, !tbaa !5
  %615 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %614, i32 0, i32 22
  %616 = load ptr, ptr %6, align 8, !tbaa !5
  %617 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %616, i32 0, i32 18
  %618 = load ptr, ptr %6, align 8, !tbaa !5
  %619 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %618, i32 0, i32 19
  %620 = load i64, ptr %12, align 8, !tbaa !46
  %621 = load ptr, ptr %6, align 8, !tbaa !5
  %622 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %621, i32 0, i32 71
  %623 = load ptr, ptr %6, align 8, !tbaa !5
  %624 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %623, i32 0, i32 72
  %625 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef %613, ptr noundef %615, ptr noundef %617, ptr noundef %619, i64 noundef %620, ptr noundef %622, ptr noundef %624, ptr noundef %625)
  %626 = load ptr, ptr %6, align 8, !tbaa !5
  %627 = load ptr, ptr %6, align 8, !tbaa !5
  %628 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %627, i32 0, i32 38
  %629 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef %626, ptr noundef %628, ptr noundef %30, ptr noundef %31, ptr noundef %629)
  %630 = load double, ptr %31, align 8, !tbaa !49
  %631 = fadd double %630, 1.000000e+00
  %632 = fmul double 1.000000e+01, %631
  %633 = load ptr, ptr %6, align 8, !tbaa !5
  %634 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %633, i32 0, i32 50
  %635 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl8nlpfinitEdPNS_9nlpfilterEPNS_8ae_stateE(double noundef %632, ptr noundef %634, ptr noundef %635)
  %636 = load ptr, ptr %6, align 8, !tbaa !5
  %637 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %636, i32 0, i32 50
  %638 = getelementptr inbounds %"struct.alglib_impl::nlpfilter", ptr %637, i32 0, i32 2
  store double 1.000000e-03, ptr %638, align 8, !tbaa !63
  %639 = load ptr, ptr %6, align 8, !tbaa !5
  %640 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %639, i32 0, i32 50
  %641 = getelementptr inbounds %"struct.alglib_impl::nlpfilter", ptr %640, i32 0, i32 3
  store double 0x3FEFF7CED916872B, ptr %641, align 8, !tbaa !64
  %642 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %643 = trunc i8 %642 to i1
  br i1 %643, label %644, label %651

644:                                              ; preds = %591
  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.1118)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  %645 = load i64, ptr %10, align 8, !tbaa !46
  %646 = trunc i64 %645 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.708, i32 noundef %646)
  %647 = load i64, ptr %11, align 8, !tbaa !46
  %648 = trunc i64 %647 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1119, i32 noundef %648)
  %649 = load i64, ptr %12, align 8, !tbaa !46
  %650 = trunc i64 %649 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1120, i32 noundef %650)
  br label %651

651:                                              ; preds = %644, %591
  %652 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %653 = trunc i8 %652 to i1
  br i1 %653, label %654, label %661

654:                                              ; preds = %651
  %655 = load i64, ptr %10, align 8, !tbaa !46
  %656 = trunc i64 %655 to i32
  %657 = load i64, ptr %11, align 8, !tbaa !46
  %658 = trunc i64 %657 to i32
  %659 = load i64, ptr %12, align 8, !tbaa !46
  %660 = trunc i64 %659 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1121, i32 noundef %656, i32 noundef %658, i32 noundef %660)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1122)
  br label %661

661:                                              ; preds = %654, %651
  store i8 0, ptr %43, align 1, !tbaa !9
  store i8 0, ptr %44, align 1, !tbaa !9
  store i8 0, ptr %40, align 1, !tbaa !9
  store i8 0, ptr %41, align 1, !tbaa !9
  store double 1.000000e+50, ptr %23, align 8, !tbaa !49
  %662 = load ptr, ptr %6, align 8, !tbaa !5
  %663 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %662, i32 0, i32 3
  %664 = load i8, ptr %663, align 8, !tbaa !65, !range !47, !noundef !48
  %665 = trunc i8 %664 to i1
  br i1 %665, label %666, label %685

666:                                              ; preds = %661
  %667 = load ptr, ptr %6, align 8, !tbaa !5
  %668 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %667, i32 0, i32 42
  %669 = load i64, ptr %10, align 8, !tbaa !46
  %670 = load ptr, ptr %6, align 8, !tbaa !5
  %671 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %670, i32 0, i32 27
  %672 = load i64, ptr %671, align 8, !tbaa !66
  %673 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !49
  %674 = fmul double 1.000000e-01, %673
  %675 = load ptr, ptr %6, align 8, !tbaa !5
  %676 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %675, i32 0, i32 26
  %677 = load ptr, ptr %9, align 8, !tbaa !5
  %678 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %676, ptr noundef %677)
  %679 = load ptr, ptr %9, align 8, !tbaa !5
  %680 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %679)
  %681 = load ptr, ptr %9, align 8, !tbaa !5
  %682 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %678, double noundef %680, ptr noundef %681)
  %683 = fmul double %674, %682
  %684 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl15hessianinitbfgsEPNS_12xbfgshessianElldPNS_8ae_stateE(ptr noundef %668, i64 noundef %669, i64 noundef %672, double noundef %683, ptr noundef %684)
  br label %709

685:                                              ; preds = %661
  %686 = load ptr, ptr %6, align 8, !tbaa !5
  %687 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %686, i32 0, i32 42
  %688 = load i64, ptr %10, align 8, !tbaa !46
  %689 = load i64, ptr %10, align 8, !tbaa !46
  %690 = load i64, ptr @_ZN11alglib_implL19nlcfsqp_xbfgsmemlenE, align 8, !tbaa !46
  %691 = load ptr, ptr %9, align 8, !tbaa !5
  %692 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %689, i64 noundef %690, ptr noundef %691)
  %693 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !49
  %694 = fmul double 1.000000e-01, %693
  %695 = load ptr, ptr %6, align 8, !tbaa !5
  %696 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %695, i32 0, i32 26
  %697 = load ptr, ptr %9, align 8, !tbaa !5
  %698 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %696, ptr noundef %697)
  %699 = load ptr, ptr %9, align 8, !tbaa !5
  %700 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %699)
  %701 = load ptr, ptr %9, align 8, !tbaa !5
  %702 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %698, double noundef %700, ptr noundef %701)
  %703 = fmul double %694, %702
  %704 = load double, ptr @_ZN11alglib_implL20nlcfsqp_xbfgsmaxhessE, align 8, !tbaa !49
  %705 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21hessianinitlowranksr1EPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef %687, i64 noundef %688, i64 noundef %692, double noundef %703, double noundef %704, ptr noundef %705)
  %706 = load ptr, ptr %6, align 8, !tbaa !5
  %707 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %706, i32 0, i32 42
  %708 = getelementptr inbounds %"struct.alglib_impl::xbfgshessian", ptr %707, i32 0, i32 14
  store double 1.000000e-04, ptr %708, align 8, !tbaa !67
  br label %709

709:                                              ; preds = %685, %666
  %710 = load i64, ptr %10, align 8, !tbaa !46
  %711 = load ptr, ptr %6, align 8, !tbaa !5
  %712 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %711, i32 0, i32 54
  %713 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %710, ptr noundef %712, ptr noundef %713)
  store i64 0, ptr %13, align 8, !tbaa !46
  br label %714

714:                                              ; preds = %732, %709
  %715 = load i64, ptr %13, align 8, !tbaa !46
  %716 = load i64, ptr %10, align 8, !tbaa !46
  %717 = sub nsw i64 %716, 1
  %718 = icmp sle i64 %715, %717
  br i1 %718, label %719, label %735

719:                                              ; preds = %714
  %720 = load ptr, ptr %6, align 8, !tbaa !5
  %721 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %720, i32 0, i32 38
  %722 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %721, i32 0, i32 3
  %723 = load i64, ptr %13, align 8, !tbaa !46
  %724 = load ptr, ptr %9, align 8, !tbaa !5
  %725 = call noundef double @_ZN11alglib_implL23nlcfsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %722, i64 noundef %723, double noundef 1.000000e+00, ptr noundef %724)
  %726 = load ptr, ptr %6, align 8, !tbaa !5
  %727 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %726, i32 0, i32 54
  %728 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %727, i32 0, i32 4
  %729 = load ptr, ptr %728, align 8, !tbaa !45
  %730 = load i64, ptr %13, align 8, !tbaa !46
  %731 = getelementptr inbounds double, ptr %729, i64 %730
  store double %725, ptr %731, align 8, !tbaa !49
  br label %732

732:                                              ; preds = %719
  %733 = load i64, ptr %13, align 8, !tbaa !46
  %734 = add nsw i64 %733, 1
  store i64 %734, ptr %13, align 8, !tbaa !46
  br label %714, !llvm.loop !68

735:                                              ; preds = %714
  %736 = load ptr, ptr %6, align 8, !tbaa !5
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %737, i32 0, i32 41
  %739 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL23nlcfsqp_initqpsubsolverEPKNS_12minfsqpstateEPNS_16minfsqpsubsolverEPNS_8ae_stateE(ptr noundef %736, ptr noundef %738, ptr noundef %739)
  br label %740

740:                                              ; preds = %2219, %1981, %1344, %1257, %1141, %1083, %735
  %741 = load ptr, ptr %6, align 8, !tbaa !5
  %742 = load ptr, ptr %6, align 8, !tbaa !5
  %743 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %742, i32 0, i32 38
  %744 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %745 = trunc i8 %744 to i1
  %746 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL38nlcfsqp_autoscalevarstargetconstraintsEPNS_12minfsqpstateEPNS_11varsfuncjacEbbPNS_8ae_stateE(ptr noundef %741, ptr noundef %743, i1 noundef zeroext false, i1 noundef zeroext %745, ptr noundef %746)
  %747 = load ptr, ptr %6, align 8, !tbaa !5
  %748 = load ptr, ptr %6, align 8, !tbaa !5
  %749 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %748, i32 0, i32 38
  %750 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef %747, ptr noundef %749, ptr noundef %30, ptr noundef %31, ptr noundef %750)
  %751 = load double, ptr %23, align 8, !tbaa !49
  %752 = load ptr, ptr %6, align 8, !tbaa !5
  %753 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %752, i32 0, i32 26
  %754 = load ptr, ptr %9, align 8, !tbaa !5
  %755 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %753, ptr noundef %754)
  %756 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %751, double noundef %755)
  br i1 %756, label %757, label %771

757:                                              ; preds = %740
  %758 = load ptr, ptr %6, align 8, !tbaa !5
  %759 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %758, i32 0, i32 66
  store i64 1, ptr %759, align 8, !tbaa !61
  %760 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %761 = trunc i8 %760 to i1
  br i1 %761, label %765, label %762

762:                                              ; preds = %757
  %763 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %764 = trunc i8 %763 to i1
  br i1 %764, label %765, label %770

765:                                              ; preds = %762, %757
  %766 = load ptr, ptr %6, align 8, !tbaa !5
  %767 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %766, i32 0, i32 26
  %768 = load ptr, ptr %9, align 8, !tbaa !5
  %769 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %767, ptr noundef %768)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1123, double noundef %769)
  br label %770

770:                                              ; preds = %765, %762
  br label %2233

771:                                              ; preds = %740
  %772 = load ptr, ptr %6, align 8, !tbaa !5
  %773 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %772, i32 0, i32 34
  %774 = load double, ptr %773, align 8, !tbaa !57
  %775 = load ptr, ptr %6, align 8, !tbaa !5
  %776 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %775, i32 0, i32 26
  %777 = load ptr, ptr %9, align 8, !tbaa !5
  %778 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %776, ptr noundef %777)
  %779 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %774, double noundef %778)
  br i1 %779, label %780, label %794

780:                                              ; preds = %771
  %781 = load ptr, ptr %6, align 8, !tbaa !5
  %782 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %781, i32 0, i32 66
  store i64 2, ptr %782, align 8, !tbaa !61
  %783 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %784 = trunc i8 %783 to i1
  br i1 %784, label %788, label %785

785:                                              ; preds = %780
  %786 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %787 = trunc i8 %786 to i1
  br i1 %787, label %788, label %793

788:                                              ; preds = %785, %780
  %789 = load ptr, ptr %6, align 8, !tbaa !5
  %790 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %789, i32 0, i32 26
  %791 = load ptr, ptr %9, align 8, !tbaa !5
  %792 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %790, ptr noundef %791)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1124, double noundef %792)
  br label %793

793:                                              ; preds = %788, %785
  br label %2233

794:                                              ; preds = %771
  %795 = load ptr, ptr %9, align 8, !tbaa !5
  %796 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %795)
  store double %796, ptr %15, align 8, !tbaa !49
  %797 = load ptr, ptr %6, align 8, !tbaa !5
  %798 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %797, i32 0, i32 34
  %799 = load double, ptr %798, align 8, !tbaa !57
  %800 = load double, ptr %15, align 8, !tbaa !49
  %801 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %799, double noundef %800)
  br i1 %801, label %802, label %813

802:                                              ; preds = %794
  %803 = load ptr, ptr %6, align 8, !tbaa !5
  %804 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %803, i32 0, i32 66
  store i64 7, ptr %804, align 8, !tbaa !61
  %805 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %806 = trunc i8 %805 to i1
  br i1 %806, label %810, label %807

807:                                              ; preds = %802
  %808 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %809 = trunc i8 %808 to i1
  br i1 %809, label %810, label %812

810:                                              ; preds = %807, %802
  %811 = load double, ptr %15, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1125, double noundef %811)
  br label %812

812:                                              ; preds = %810, %807
  br label %2233

813:                                              ; preds = %794
  %814 = load ptr, ptr %6, align 8, !tbaa !5
  %815 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %814, i32 0, i32 26
  %816 = load ptr, ptr %9, align 8, !tbaa !5
  %817 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %815, ptr noundef %816)
  %818 = icmp sgt i64 %817, 0
  br i1 %818, label %819, label %842

819:                                              ; preds = %813
  %820 = load ptr, ptr %6, align 8, !tbaa !5
  %821 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %820, i32 0, i32 65
  %822 = load i64, ptr %821, align 8, !tbaa !70
  %823 = load ptr, ptr %6, align 8, !tbaa !5
  %824 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %823, i32 0, i32 26
  %825 = load ptr, ptr %9, align 8, !tbaa !5
  %826 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %824, ptr noundef %825)
  %827 = icmp sge i64 %822, %826
  br i1 %827, label %828, label %842

828:                                              ; preds = %819
  %829 = load ptr, ptr %6, align 8, !tbaa !5
  %830 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %829, i32 0, i32 66
  store i64 5, ptr %830, align 8, !tbaa !61
  %831 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %832 = trunc i8 %831 to i1
  br i1 %832, label %836, label %833

833:                                              ; preds = %828
  %834 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %835 = trunc i8 %834 to i1
  br i1 %835, label %836, label %841

836:                                              ; preds = %833, %828
  %837 = load ptr, ptr %6, align 8, !tbaa !5
  %838 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %837, i32 0, i32 65
  %839 = load i64, ptr %838, align 8, !tbaa !70
  %840 = trunc i64 %839 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1126, i32 noundef %840)
  br label %841

841:                                              ; preds = %836, %833
  br label %2233

842:                                              ; preds = %819, %813
  %843 = load ptr, ptr %6, align 8, !tbaa !5
  %844 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %843, i32 0, i32 37
  %845 = load i64, ptr %844, align 8, !tbaa !55
  %846 = load i64, ptr @_ZN11alglib_implL24nlcfsqp_fstagnationlimitE, align 8, !tbaa !46
  %847 = icmp sge i64 %845, %846
  br i1 %847, label %848, label %862

848:                                              ; preds = %842
  %849 = load ptr, ptr %6, align 8, !tbaa !5
  %850 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %849, i32 0, i32 66
  store i64 7, ptr %850, align 8, !tbaa !61
  %851 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %852 = trunc i8 %851 to i1
  br i1 %852, label %856, label %853

853:                                              ; preds = %848
  %854 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %855 = trunc i8 %854 to i1
  br i1 %855, label %856, label %861

856:                                              ; preds = %853, %848
  %857 = load ptr, ptr %6, align 8, !tbaa !5
  %858 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %857, i32 0, i32 37
  %859 = load i64, ptr %858, align 8, !tbaa !55
  %860 = trunc i64 %859 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1127, i32 noundef %860)
  br label %861

861:                                              ; preds = %856, %853
  br label %2233

862:                                              ; preds = %842
  %863 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %864 = trunc i8 %863 to i1
  br i1 %864, label %865, label %982

865:                                              ; preds = %862
  %866 = load ptr, ptr %6, align 8, !tbaa !5
  %867 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %866, i32 0, i32 65
  %868 = load i64, ptr %867, align 8, !tbaa !70
  %869 = trunc i64 %868 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1128, i32 noundef %869)
  %870 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %871 = trunc i8 %870 to i1
  br i1 %871, label %872, label %898

872:                                              ; preds = %865
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1129)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1130)
  %873 = load ptr, ptr %6, align 8, !tbaa !5
  %874 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %873, i32 0, i32 38
  %875 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %874, i32 0, i32 3
  %876 = load i64, ptr %10, align 8, !tbaa !46
  %877 = load ptr, ptr %6, align 8, !tbaa !5
  %878 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %877, i32 0, i32 4
  %879 = load ptr, ptr %6, align 8, !tbaa !5
  %880 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %879, i32 0, i32 4
  %881 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef %875, i64 noundef %876, ptr noundef %878, i1 noundef zeroext true, ptr noundef %880, i1 noundef zeroext false, ptr noundef %881)
  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)
  %882 = load ptr, ptr %6, align 8, !tbaa !5
  %883 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %882, i32 0, i32 38
  %884 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %883, i32 0, i32 3
  %885 = load i64, ptr %10, align 8, !tbaa !46
  %886 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %884, i64 noundef 0, i64 noundef %885, ptr noundef %886)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1132)
  %887 = load ptr, ptr %6, align 8, !tbaa !5
  %888 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %887, i32 0, i32 22
  %889 = load i64, ptr %12, align 8, !tbaa !46
  %890 = add nsw i64 1, %889
  %891 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %888, i64 noundef 0, i64 noundef %890, ptr noundef %891)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1133)
  %892 = load ptr, ptr %6, align 8, !tbaa !5
  %893 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %892, i32 0, i32 38
  %894 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %893, i32 0, i32 4
  %895 = load i64, ptr %12, align 8, !tbaa !46
  %896 = add nsw i64 1, %895
  %897 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %894, i64 noundef 0, i64 noundef %896, ptr noundef %897)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %898

898:                                              ; preds = %872, %865
  store double 0.000000e+00, ptr %17, align 8, !tbaa !49
  store i64 0, ptr %13, align 8, !tbaa !46
  br label %899

899:                                              ; preds = %965, %898
  %900 = load i64, ptr %13, align 8, !tbaa !46
  %901 = load i64, ptr %12, align 8, !tbaa !46
  %902 = sub nsw i64 %901, 1
  %903 = icmp sle i64 %900, %902
  br i1 %903, label %904, label %968

904:                                              ; preds = %899
  %905 = load ptr, ptr %6, align 8, !tbaa !5
  %906 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %905, i32 0, i32 16
  %907 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %906, i32 0, i32 4
  %908 = load ptr, ptr %907, align 8, !tbaa !45
  %909 = load i64, ptr %13, align 8, !tbaa !46
  %910 = getelementptr inbounds i8, ptr %908, i64 %909
  %911 = load i8, ptr %910, align 1, !tbaa !9, !range !47, !noundef !48
  %912 = trunc i8 %911 to i1
  br i1 %912, label %913, label %934

913:                                              ; preds = %904
  %914 = load double, ptr %17, align 8, !tbaa !49
  %915 = load ptr, ptr %6, align 8, !tbaa !5
  %916 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %915, i32 0, i32 20
  %917 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %916, i32 0, i32 4
  %918 = load ptr, ptr %917, align 8, !tbaa !45
  %919 = load i64, ptr %13, align 8, !tbaa !46
  %920 = getelementptr inbounds double, ptr %918, i64 %919
  %921 = load double, ptr %920, align 8, !tbaa !49
  %922 = load ptr, ptr %6, align 8, !tbaa !5
  %923 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %922, i32 0, i32 38
  %924 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %923, i32 0, i32 4
  %925 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %924, i32 0, i32 4
  %926 = load ptr, ptr %925, align 8, !tbaa !45
  %927 = load i64, ptr %13, align 8, !tbaa !46
  %928 = add nsw i64 1, %927
  %929 = getelementptr inbounds double, ptr %926, i64 %928
  %930 = load double, ptr %929, align 8, !tbaa !49
  %931 = fsub double %921, %930
  %932 = load ptr, ptr %9, align 8, !tbaa !5
  %933 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %914, double noundef %931, ptr noundef %932)
  store double %933, ptr %17, align 8, !tbaa !49
  br label %934

934:                                              ; preds = %913, %904
  %935 = load ptr, ptr %6, align 8, !tbaa !5
  %936 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %935, i32 0, i32 17
  %937 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %936, i32 0, i32 4
  %938 = load ptr, ptr %937, align 8, !tbaa !45
  %939 = load i64, ptr %13, align 8, !tbaa !46
  %940 = getelementptr inbounds i8, ptr %938, i64 %939
  %941 = load i8, ptr %940, align 1, !tbaa !9, !range !47, !noundef !48
  %942 = trunc i8 %941 to i1
  br i1 %942, label %943, label %964

943:                                              ; preds = %934
  %944 = load double, ptr %17, align 8, !tbaa !49
  %945 = load ptr, ptr %6, align 8, !tbaa !5
  %946 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %945, i32 0, i32 38
  %947 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %946, i32 0, i32 4
  %948 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %947, i32 0, i32 4
  %949 = load ptr, ptr %948, align 8, !tbaa !45
  %950 = load i64, ptr %13, align 8, !tbaa !46
  %951 = add nsw i64 1, %950
  %952 = getelementptr inbounds double, ptr %949, i64 %951
  %953 = load double, ptr %952, align 8, !tbaa !49
  %954 = load ptr, ptr %6, align 8, !tbaa !5
  %955 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %954, i32 0, i32 21
  %956 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %955, i32 0, i32 4
  %957 = load ptr, ptr %956, align 8, !tbaa !45
  %958 = load i64, ptr %13, align 8, !tbaa !46
  %959 = getelementptr inbounds double, ptr %957, i64 %958
  %960 = load double, ptr %959, align 8, !tbaa !49
  %961 = fsub double %953, %960
  %962 = load ptr, ptr %9, align 8, !tbaa !5
  %963 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %944, double noundef %961, ptr noundef %962)
  store double %963, ptr %17, align 8, !tbaa !49
  br label %964

964:                                              ; preds = %943, %934
  br label %965

965:                                              ; preds = %964
  %966 = load i64, ptr %13, align 8, !tbaa !46
  %967 = add nsw i64 %966, 1
  store i64 %967, ptr %13, align 8, !tbaa !46
  br label %899, !llvm.loop !71

968:                                              ; preds = %899
  %969 = load ptr, ptr %6, align 8, !tbaa !5
  %970 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %969, i32 0, i32 34
  %971 = load double, ptr %970, align 8, !tbaa !57
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1134, double noundef %971)
  %972 = load ptr, ptr %6, align 8, !tbaa !5
  %973 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %972, i32 0, i32 69
  %974 = load double, ptr %973, align 8, !tbaa !72
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1135, double noundef %974)
  %975 = load double, ptr %17, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1136, double noundef %975)
  %976 = load i64, ptr %10, align 8, !tbaa !46
  %977 = load ptr, ptr %6, align 8, !tbaa !5
  %978 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %977, i32 0, i32 38
  %979 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %978, i32 0, i32 3
  %980 = load ptr, ptr %9, align 8, !tbaa !5
  %981 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %976, ptr noundef %979, ptr noundef %980)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1137, double noundef %981)
  br label %982

982:                                              ; preds = %968, %862
  %983 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %984 = trunc i8 %983 to i1
  br i1 %984, label %985, label %1036

985:                                              ; preds = %982
  store i64 0, ptr %13, align 8, !tbaa !46
  %986 = load ptr, ptr %6, align 8, !tbaa !5
  %987 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %986, i32 0, i32 65
  %988 = load i64, ptr %987, align 8, !tbaa !70
  %989 = icmp sle i64 %988, 10
  br i1 %989, label %990, label %991

990:                                              ; preds = %985
  store i64 1, ptr %13, align 8, !tbaa !46
  br label %991

991:                                              ; preds = %990, %985
  %992 = load ptr, ptr %6, align 8, !tbaa !5
  %993 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %992, i32 0, i32 65
  %994 = load i64, ptr %993, align 8, !tbaa !70
  %995 = icmp sle i64 %994, 100
  br i1 %995, label %996, label %1003

996:                                              ; preds = %991
  %997 = load ptr, ptr %6, align 8, !tbaa !5
  %998 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %997, i32 0, i32 65
  %999 = load i64, ptr %998, align 8, !tbaa !70
  %1000 = srem i64 %999, 5
  %1001 = icmp eq i64 %1000, 0
  br i1 %1001, label %1002, label %1003

1002:                                             ; preds = %996
  store i64 1, ptr %13, align 8, !tbaa !46
  br label %1003

1003:                                             ; preds = %1002, %996, %991
  %1004 = load ptr, ptr %6, align 8, !tbaa !5
  %1005 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1004, i32 0, i32 65
  %1006 = load i64, ptr %1005, align 8, !tbaa !70
  %1007 = srem i64 %1006, 50
  %1008 = icmp eq i64 %1007, 0
  br i1 %1008, label %1009, label %1010

1009:                                             ; preds = %1003
  store i64 1, ptr %13, align 8, !tbaa !46
  br label %1010

1010:                                             ; preds = %1009, %1003
  %1011 = load i64, ptr %13, align 8, !tbaa !46
  %1012 = icmp sgt i64 %1011, 0
  br i1 %1012, label %1013, label %1035

1013:                                             ; preds = %1010
  %1014 = load ptr, ptr %6, align 8, !tbaa !5
  %1015 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1014, i32 0, i32 65
  %1016 = load i64, ptr %1015, align 8, !tbaa !70
  %1017 = trunc i64 %1016 to i32
  %1018 = load ptr, ptr %6, align 8, !tbaa !5
  %1019 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1018, i32 0, i32 34
  %1020 = load double, ptr %1019, align 8, !tbaa !57
  %1021 = load double, ptr %30, align 8, !tbaa !49
  %1022 = load ptr, ptr %6, align 8, !tbaa !5
  %1023 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1022, i32 0, i32 22
  %1024 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1023, i32 0, i32 4
  %1025 = load ptr, ptr %1024, align 8, !tbaa !45
  %1026 = getelementptr inbounds double, ptr %1025, i64 0
  %1027 = load double, ptr %1026, align 8, !tbaa !49
  %1028 = fmul double %1021, %1027
  %1029 = load double, ptr %31, align 8, !tbaa !49
  %1030 = load ptr, ptr %6, align 8, !tbaa !5
  %1031 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1030, i32 0, i32 73
  %1032 = load ptr, ptr %9, align 8, !tbaa !5
  %1033 = call noundef double @_ZN11alglib_impl18stimergetmsrunningEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1031, ptr noundef %1032)
  %1034 = fmul double 1.000000e-03, %1033
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1138, i32 noundef %1017, double noundef %1020, double noundef %1028, double noundef %1029, double noundef %1034)
  br label %1035

1035:                                             ; preds = %1013, %1010
  br label %1036

1036:                                             ; preds = %1035, %982
  %1037 = load i64, ptr %10, align 8, !tbaa !46
  %1038 = load ptr, ptr %6, align 8, !tbaa !5
  %1039 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1038, i32 0, i32 38
  %1040 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1039, i32 0, i32 3
  %1041 = load ptr, ptr %6, align 8, !tbaa !5
  %1042 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1041, i32 0, i32 40
  %1043 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1037, ptr noundef %1040, ptr noundef %1042, ptr noundef %1043)
  %1044 = load i64, ptr %10, align 8, !tbaa !46
  %1045 = load ptr, ptr %6, align 8, !tbaa !5
  %1046 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1045, i32 0, i32 48
  %1047 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1044, double noundef 0.000000e+00, ptr noundef %1046, ptr noundef %1047)
  %1048 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1049 = trunc i8 %1048 to i1
  br i1 %1049, label %1050, label %1056

1050:                                             ; preds = %1036
  %1051 = load i8, ptr %43, align 1, !tbaa !9, !range !47, !noundef !48
  %1052 = trunc i8 %1051 to i1
  br i1 %1052, label %1053, label %1054

1053:                                             ; preds = %1050
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1139)
  br label %1055

1054:                                             ; preds = %1050
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1140)
  br label %1055

1055:                                             ; preds = %1054, %1053
  br label %1056

1056:                                             ; preds = %1055, %1036
  store i8 0, ptr %45, align 1, !tbaa !9
  store i8 0, ptr %46, align 1, !tbaa !9
  store i8 0, ptr %47, align 1, !tbaa !9
  store i8 0, ptr %29, align 1, !tbaa !9
  store double 1.000000e+50, ptr %23, align 8, !tbaa !49
  %1057 = load i8, ptr %43, align 1, !tbaa !9, !range !47, !noundef !48
  %1058 = trunc i8 %1057 to i1
  br i1 %1058, label %1233, label %1059

1059:                                             ; preds = %1056
  %1060 = load ptr, ptr %6, align 8, !tbaa !5
  %1061 = load ptr, ptr %6, align 8, !tbaa !5
  %1062 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1061, i32 0, i32 41
  %1063 = load ptr, ptr %6, align 8, !tbaa !5
  %1064 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1063, i32 0, i32 38
  %1065 = load ptr, ptr %6, align 8, !tbaa !5
  %1066 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1065, i32 0, i32 42
  %1067 = load ptr, ptr %6, align 8, !tbaa !5
  %1068 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1067, i32 0, i32 48
  %1069 = load ptr, ptr %6, align 8, !tbaa !5
  %1070 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1069, i32 0, i32 43
  %1071 = load ptr, ptr %6, align 8, !tbaa !5
  %1072 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1071, i32 0, i32 44
  %1073 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1074 = trunc i8 %1073 to i1
  %1075 = load ptr, ptr %9, align 8, !tbaa !5
  %1076 = call noundef zeroext i1 @_ZN11alglib_implL28nlcfsqp_qpsubproblemsolvesqpEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef %1060, ptr noundef %1062, ptr noundef %1064, ptr noundef %1066, ptr noundef %1068, ptr noundef %1070, ptr noundef %1072, i1 noundef zeroext %1074, ptr noundef %42, ptr noundef %14, ptr noundef %38, ptr noundef %39, ptr noundef %37, ptr noundef %1075)
  br i1 %1076, label %1093, label %1077

1077:                                             ; preds = %1059
  %1078 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1079 = trunc i8 %1078 to i1
  br i1 %1079, label %1080, label %1083

1080:                                             ; preds = %1077
  %1081 = load i64, ptr %14, align 8, !tbaa !46
  %1082 = trunc i64 %1081 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1141, i32 noundef %1082)
  br label %1083

1083:                                             ; preds = %1080, %1077
  %1084 = load ptr, ptr %6, align 8, !tbaa !5
  %1085 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1084, i32 0, i32 34
  %1086 = load double, ptr %1085, align 8, !tbaa !57
  %1087 = fmul double 1.000000e-01, %1086
  %1088 = load ptr, ptr %6, align 8, !tbaa !5
  %1089 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1088, i32 0, i32 34
  store double %1087, ptr %1089, align 8, !tbaa !57
  %1090 = load ptr, ptr %6, align 8, !tbaa !5
  %1091 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1090, i32 0, i32 65
  %1092 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1091, ptr noundef %1092)
  br label %740

1093:                                             ; preds = %1059
  %1094 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1095 = trunc i8 %1094 to i1
  br i1 %1095, label %1096, label %1111

1096:                                             ; preds = %1093
  %1097 = load i64, ptr %14, align 8, !tbaa !46
  %1098 = trunc i64 %1097 to i32
  %1099 = load i64, ptr %10, align 8, !tbaa !46
  %1100 = load ptr, ptr %6, align 8, !tbaa !5
  %1101 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1100, i32 0, i32 43
  %1102 = load ptr, ptr %9, align 8, !tbaa !5
  %1103 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1099, ptr noundef %1101, ptr noundef %1102)
  %1104 = load i64, ptr %11, align 8, !tbaa !46
  %1105 = load i64, ptr %12, align 8, !tbaa !46
  %1106 = add nsw i64 %1104, %1105
  %1107 = load ptr, ptr %6, align 8, !tbaa !5
  %1108 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1107, i32 0, i32 44
  %1109 = load ptr, ptr %9, align 8, !tbaa !5
  %1110 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1106, ptr noundef %1108, ptr noundef %1109)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1142, i32 noundef %1098, double noundef %1103, double noundef %1110)
  br label %1111

1111:                                             ; preds = %1096, %1093
  %1112 = load i8, ptr %42, align 1, !tbaa !9, !range !47, !noundef !48
  %1113 = trunc i8 %1112 to i1
  br i1 %1113, label %1114, label %1142

1114:                                             ; preds = %1111
  %1115 = load ptr, ptr %6, align 8, !tbaa !5
  %1116 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1115, i32 0, i32 50
  %1117 = load double, ptr %30, align 8, !tbaa !49
  %1118 = load double, ptr %31, align 8, !tbaa !49
  %1119 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef %1116, double noundef %1117, double noundef %1118, ptr noundef %1119)
  store i8 1, ptr %43, align 1, !tbaa !9
  store i8 1, ptr %44, align 1, !tbaa !9
  %1120 = load ptr, ptr %6, align 8, !tbaa !5
  %1121 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1120, i32 0, i32 65
  %1122 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1121, ptr noundef %1122)
  %1123 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1124 = trunc i8 %1123 to i1
  br i1 %1124, label %1125, label %1141

1125:                                             ; preds = %1114
  %1126 = load double, ptr %39, align 8, !tbaa !49
  %1127 = load ptr, ptr %6, align 8, !tbaa !5
  %1128 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1127, i32 0, i32 41
  %1129 = getelementptr inbounds %"struct.alglib_impl::minfsqpsubsolver", ptr %1128, i32 0, i32 11
  %1130 = load double, ptr %1129, align 8, !tbaa !73
  %1131 = load ptr, ptr %6, align 8, !tbaa !5
  %1132 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1131, i32 0, i32 41
  %1133 = getelementptr inbounds %"struct.alglib_impl::minfsqpsubsolver", ptr %1132, i32 0, i32 10
  %1134 = load double, ptr %1133, align 8, !tbaa !74
  %1135 = fdiv double %1130, %1134
  %1136 = load ptr, ptr %6, align 8, !tbaa !5
  %1137 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1136, i32 0, i32 50
  %1138 = getelementptr inbounds %"struct.alglib_impl::nlpfilter", ptr %1137, i32 0, i32 1
  %1139 = load i64, ptr %1138, align 8, !tbaa !75
  %1140 = trunc i64 %1139 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1143, double noundef %1126, double noundef %1135, i32 noundef %1140)
  br label %1141

1141:                                             ; preds = %1125, %1114
  br label %740

1142:                                             ; preds = %1111
  %1143 = load i64, ptr %10, align 8, !tbaa !46
  %1144 = load ptr, ptr %6, align 8, !tbaa !5
  %1145 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1144, i32 0, i32 43
  %1146 = load ptr, ptr %6, align 8, !tbaa !5
  %1147 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1146, i32 0, i32 51
  %1148 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1143, ptr noundef %1145, ptr noundef %1147, ptr noundef %1148)
  %1149 = load i64, ptr %10, align 8, !tbaa !46
  %1150 = load ptr, ptr %6, align 8, !tbaa !5
  %1151 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1150, i32 0, i32 4
  %1152 = load ptr, ptr %6, align 8, !tbaa !5
  %1153 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1152, i32 0, i32 51
  %1154 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergedivvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1149, ptr noundef %1151, ptr noundef %1153, ptr noundef %1154)
  %1155 = load i64, ptr %10, align 8, !tbaa !46
  %1156 = load ptr, ptr %6, align 8, !tbaa !5
  %1157 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1156, i32 0, i32 22
  %1158 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1157, i32 0, i32 4
  %1159 = load ptr, ptr %1158, align 8, !tbaa !45
  %1160 = getelementptr inbounds double, ptr %1159, i64 0
  %1161 = load double, ptr %1160, align 8, !tbaa !49
  %1162 = load ptr, ptr %6, align 8, !tbaa !5
  %1163 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1162, i32 0, i32 51
  %1164 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1155, double noundef %1161, ptr noundef %1163, ptr noundef %1164)
  %1165 = load i64, ptr %11, align 8, !tbaa !46
  %1166 = load ptr, ptr %6, align 8, !tbaa !5
  %1167 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1166, i32 0, i32 44
  %1168 = load ptr, ptr %6, align 8, !tbaa !5
  %1169 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1168, i32 0, i32 52
  %1170 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1165, ptr noundef %1167, ptr noundef %1169, ptr noundef %1170)
  %1171 = load i64, ptr %11, align 8, !tbaa !46
  %1172 = load ptr, ptr %6, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1172, i32 0, i32 10
  %1174 = load ptr, ptr %6, align 8, !tbaa !5
  %1175 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1174, i32 0, i32 52
  %1176 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergedivvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1171, ptr noundef %1173, ptr noundef %1175, ptr noundef %1176)
  %1177 = load i64, ptr %11, align 8, !tbaa !46
  %1178 = load ptr, ptr %6, align 8, !tbaa !5
  %1179 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1178, i32 0, i32 22
  %1180 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1179, i32 0, i32 4
  %1181 = load ptr, ptr %1180, align 8, !tbaa !45
  %1182 = getelementptr inbounds double, ptr %1181, i64 0
  %1183 = load double, ptr %1182, align 8, !tbaa !49
  %1184 = load ptr, ptr %6, align 8, !tbaa !5
  %1185 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1184, i32 0, i32 52
  %1186 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1177, double noundef %1183, ptr noundef %1185, ptr noundef %1186)
  %1187 = load i64, ptr %12, align 8, !tbaa !46
  %1188 = load ptr, ptr %6, align 8, !tbaa !5
  %1189 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1188, i32 0, i32 44
  %1190 = load i64, ptr %11, align 8, !tbaa !46
  %1191 = load ptr, ptr %6, align 8, !tbaa !5
  %1192 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1191, i32 0, i32 53
  %1193 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %1187, ptr noundef %1189, i64 noundef %1190, ptr noundef %1192, i64 noundef 0, ptr noundef %1193)
  store i64 0, ptr %13, align 8, !tbaa !46
  br label %1194

1194:                                             ; preds = %1229, %1142
  %1195 = load i64, ptr %13, align 8, !tbaa !46
  %1196 = load i64, ptr %12, align 8, !tbaa !46
  %1197 = sub nsw i64 %1196, 1
  %1198 = icmp sle i64 %1195, %1197
  br i1 %1198, label %1199, label %1232

1199:                                             ; preds = %1194
  %1200 = load ptr, ptr %6, align 8, !tbaa !5
  %1201 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1200, i32 0, i32 53
  %1202 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1201, i32 0, i32 4
  %1203 = load ptr, ptr %1202, align 8, !tbaa !45
  %1204 = load i64, ptr %13, align 8, !tbaa !46
  %1205 = getelementptr inbounds double, ptr %1203, i64 %1204
  %1206 = load double, ptr %1205, align 8, !tbaa !49
  %1207 = load ptr, ptr %6, align 8, !tbaa !5
  %1208 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1207, i32 0, i32 22
  %1209 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1208, i32 0, i32 4
  %1210 = load ptr, ptr %1209, align 8, !tbaa !45
  %1211 = load i64, ptr %13, align 8, !tbaa !46
  %1212 = add nsw i64 1, %1211
  %1213 = getelementptr inbounds double, ptr %1210, i64 %1212
  %1214 = load double, ptr %1213, align 8, !tbaa !49
  %1215 = fdiv double %1206, %1214
  %1216 = load ptr, ptr %6, align 8, !tbaa !5
  %1217 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1216, i32 0, i32 22
  %1218 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1217, i32 0, i32 4
  %1219 = load ptr, ptr %1218, align 8, !tbaa !45
  %1220 = getelementptr inbounds double, ptr %1219, i64 0
  %1221 = load double, ptr %1220, align 8, !tbaa !49
  %1222 = fmul double %1215, %1221
  %1223 = load ptr, ptr %6, align 8, !tbaa !5
  %1224 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1223, i32 0, i32 53
  %1225 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1224, i32 0, i32 4
  %1226 = load ptr, ptr %1225, align 8, !tbaa !45
  %1227 = load i64, ptr %13, align 8, !tbaa !46
  %1228 = getelementptr inbounds double, ptr %1226, i64 %1227
  store double %1222, ptr %1228, align 8, !tbaa !49
  br label %1229

1229:                                             ; preds = %1199
  %1230 = load i64, ptr %13, align 8, !tbaa !46
  %1231 = add nsw i64 %1230, 1
  store i64 %1231, ptr %13, align 8, !tbaa !46
  br label %1194, !llvm.loop !76

1232:                                             ; preds = %1194
  br label %1286

1233:                                             ; preds = %1056
  %1234 = load ptr, ptr %6, align 8, !tbaa !5
  %1235 = load ptr, ptr %6, align 8, !tbaa !5
  %1236 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1235, i32 0, i32 41
  %1237 = load ptr, ptr %6, align 8, !tbaa !5
  %1238 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1237, i32 0, i32 38
  %1239 = load ptr, ptr %6, align 8, !tbaa !5
  %1240 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1239, i32 0, i32 42
  %1241 = load ptr, ptr %6, align 8, !tbaa !5
  %1242 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1241, i32 0, i32 48
  %1243 = load ptr, ptr %6, align 8, !tbaa !5
  %1244 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1243, i32 0, i32 43
  %1245 = load ptr, ptr %6, align 8, !tbaa !5
  %1246 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1245, i32 0, i32 44
  %1247 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1248 = trunc i8 %1247 to i1
  %1249 = load ptr, ptr %9, align 8, !tbaa !5
  %1250 = call noundef zeroext i1 @_ZN11alglib_implL32nlcfsqp_qpsubproblemsolveelasticEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef %1234, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i1 noundef zeroext %1248, ptr noundef %42, ptr noundef %14, ptr noundef %38, ptr noundef %39, ptr noundef %37, ptr noundef %1249)
  br i1 %1250, label %1267, label %1251

1251:                                             ; preds = %1233
  %1252 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1253 = trunc i8 %1252 to i1
  br i1 %1253, label %1254, label %1257

1254:                                             ; preds = %1251
  %1255 = load i64, ptr %14, align 8, !tbaa !46
  %1256 = trunc i64 %1255 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1141, i32 noundef %1256)
  br label %1257

1257:                                             ; preds = %1254, %1251
  %1258 = load ptr, ptr %6, align 8, !tbaa !5
  %1259 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1258, i32 0, i32 34
  %1260 = load double, ptr %1259, align 8, !tbaa !57
  %1261 = fmul double 1.000000e-01, %1260
  %1262 = load ptr, ptr %6, align 8, !tbaa !5
  %1263 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1262, i32 0, i32 34
  store double %1261, ptr %1263, align 8, !tbaa !57
  %1264 = load ptr, ptr %6, align 8, !tbaa !5
  %1265 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1264, i32 0, i32 65
  %1266 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1265, ptr noundef %1266)
  br label %740

1267:                                             ; preds = %1233
  %1268 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1269 = trunc i8 %1268 to i1
  br i1 %1269, label %1270, label %1285

1270:                                             ; preds = %1267
  %1271 = load i64, ptr %14, align 8, !tbaa !46
  %1272 = trunc i64 %1271 to i32
  %1273 = load i64, ptr %10, align 8, !tbaa !46
  %1274 = load ptr, ptr %6, align 8, !tbaa !5
  %1275 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1274, i32 0, i32 43
  %1276 = load ptr, ptr %9, align 8, !tbaa !5
  %1277 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1273, ptr noundef %1275, ptr noundef %1276)
  %1278 = load i64, ptr %11, align 8, !tbaa !46
  %1279 = load i64, ptr %12, align 8, !tbaa !46
  %1280 = add nsw i64 %1278, %1279
  %1281 = load ptr, ptr %6, align 8, !tbaa !5
  %1282 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1281, i32 0, i32 44
  %1283 = load ptr, ptr %9, align 8, !tbaa !5
  %1284 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1280, ptr noundef %1282, ptr noundef %1283)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1144, i32 noundef %1272, double noundef %1277, double noundef %1284)
  br label %1285

1285:                                             ; preds = %1270, %1267
  br label %1286

1286:                                             ; preds = %1285, %1232
  %1287 = load i64, ptr %10, align 8, !tbaa !46
  %1288 = load ptr, ptr %6, align 8, !tbaa !5
  %1289 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1288, i32 0, i32 48
  %1290 = load ptr, ptr %6, align 8, !tbaa !5
  %1291 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1290, i32 0, i32 47
  %1292 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1287, ptr noundef %1289, ptr noundef %1291, ptr noundef %1292)
  %1293 = load i64, ptr %10, align 8, !tbaa !46
  %1294 = load ptr, ptr %6, align 8, !tbaa !5
  %1295 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1294, i32 0, i32 38
  %1296 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1295, i32 0, i32 3
  %1297 = load ptr, ptr %6, align 8, !tbaa !5
  %1298 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1297, i32 0, i32 45
  %1299 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1298, i32 0, i32 3
  %1300 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1293, ptr noundef %1296, ptr noundef %1299, ptr noundef %1300)
  %1301 = load i64, ptr %10, align 8, !tbaa !46
  %1302 = load ptr, ptr %6, align 8, !tbaa !5
  %1303 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1302, i32 0, i32 47
  %1304 = load ptr, ptr %6, align 8, !tbaa !5
  %1305 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1304, i32 0, i32 45
  %1306 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1305, i32 0, i32 3
  %1307 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1301, double noundef 1.000000e+00, ptr noundef %1303, ptr noundef %1306, ptr noundef %1307)
  %1308 = load ptr, ptr %6, align 8, !tbaa !5
  %1309 = load ptr, ptr %6, align 8, !tbaa !5
  %1310 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1309, i32 0, i32 45
  %1311 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1310, i32 0, i32 3
  %1312 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1308, ptr noundef %1311, ptr noundef %1312)
  %1313 = load ptr, ptr %6, align 8, !tbaa !5
  %1314 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1313, i32 0, i32 32
  store i8 1, ptr %1314, align 8, !tbaa !53
  %1315 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1316 = trunc i8 %1315 to i1
  br i1 %1316, label %1317, label %1321

1317:                                             ; preds = %1286
  %1318 = load ptr, ptr %6, align 8, !tbaa !5
  %1319 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1318, i32 0, i32 77
  %1320 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1319, ptr noundef %1320)
  br label %1321

1321:                                             ; preds = %1317, %1286
  %1322 = load ptr, ptr %6, align 8, !tbaa !5
  %1323 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1322, i32 0, i32 78
  %1324 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1323, i32 0, i32 0
  store i32 2, ptr %1324, align 8, !tbaa !11
  br label %2324

1325:                                             ; preds = %374
  %1326 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1327 = trunc i8 %1326 to i1
  br i1 %1327, label %1328, label %1332

1328:                                             ; preds = %1325
  %1329 = load ptr, ptr %6, align 8, !tbaa !5
  %1330 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1329, i32 0, i32 77
  %1331 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1330, ptr noundef %1331)
  br label %1332

1332:                                             ; preds = %1328, %1325
  %1333 = load ptr, ptr %6, align 8, !tbaa !5
  %1334 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1333, i32 0, i32 32
  store i8 0, ptr %1334, align 8, !tbaa !53
  %1335 = load ptr, ptr %6, align 8, !tbaa !5
  %1336 = load ptr, ptr %6, align 8, !tbaa !5
  %1337 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1336, i32 0, i32 45
  %1338 = load ptr, ptr %9, align 8, !tbaa !5
  %1339 = call noundef zeroext i1 @_ZN11alglib_implL22nlcfsqp_sqpretrievefijEPKNS_12minfsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %1335, ptr noundef %1337, ptr noundef %1338)
  br i1 %1339, label %1359, label %1340

1340:                                             ; preds = %1332
  %1341 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1342 = trunc i8 %1341 to i1
  br i1 %1342, label %1343, label %1344

1343:                                             ; preds = %1340
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1145)
  br label %1344

1344:                                             ; preds = %1343, %1340
  %1345 = load ptr, ptr %6, align 8, !tbaa !5
  %1346 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1345, i32 0, i32 34
  %1347 = load double, ptr %1346, align 8, !tbaa !57
  %1348 = load double, ptr @_ZN11alglib_implL24nlcfsqp_maxtrustraddecayE, align 8, !tbaa !49
  %1349 = fmul double %1347, %1348
  %1350 = load ptr, ptr %6, align 8, !tbaa !5
  %1351 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1350, i32 0, i32 34
  store double %1349, ptr %1351, align 8, !tbaa !57
  %1352 = load ptr, ptr %6, align 8, !tbaa !5
  %1353 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1352, i32 0, i32 35
  %1354 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !49
  %1355 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef %1353, double noundef %1354, ptr noundef %1355)
  store i8 1, ptr %40, align 1, !tbaa !9
  store i8 1, ptr %41, align 1, !tbaa !9
  %1356 = load ptr, ptr %6, align 8, !tbaa !5
  %1357 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1356, i32 0, i32 65
  %1358 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1357, ptr noundef %1358)
  br label %740

1359:                                             ; preds = %1332
  %1360 = load ptr, ptr %6, align 8, !tbaa !5
  %1361 = load ptr, ptr %6, align 8, !tbaa !5
  %1362 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1361, i32 0, i32 45
  %1363 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef %1360, ptr noundef %1362, ptr noundef %32, ptr noundef %33, ptr noundef %1363)
  %1364 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1365 = trunc i8 %1364 to i1
  br i1 %1365, label %1366, label %1504

1366:                                             ; preds = %1359
  %1367 = load i64, ptr %10, align 8, !tbaa !46
  %1368 = load ptr, ptr %6, align 8, !tbaa !5
  %1369 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1368, i32 0, i32 59
  %1370 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1367, ptr noundef %1369, ptr noundef %1370)
  %1371 = load i64, ptr %10, align 8, !tbaa !46
  %1372 = load ptr, ptr %6, align 8, !tbaa !5
  %1373 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1372, i32 0, i32 60
  %1374 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1371, ptr noundef %1373, ptr noundef %1374)
  %1375 = load ptr, ptr %6, align 8, !tbaa !5
  %1376 = load ptr, ptr %6, align 8, !tbaa !5
  %1377 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1376, i32 0, i32 38
  %1378 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1377, i32 0, i32 3
  %1379 = load ptr, ptr %6, align 8, !tbaa !5
  %1380 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1379, i32 0, i32 34
  %1381 = load double, ptr %1380, align 8, !tbaa !57
  %1382 = load ptr, ptr %6, align 8, !tbaa !5
  %1383 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1382, i32 0, i32 38
  %1384 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1383, i32 0, i32 4
  %1385 = load ptr, ptr %6, align 8, !tbaa !5
  %1386 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1385, i32 0, i32 38
  %1387 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1386, i32 0, i32 6
  %1388 = load ptr, ptr %6, align 8, !tbaa !5
  %1389 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1388, i32 0, i32 43
  %1390 = load ptr, ptr %6, align 8, !tbaa !5
  %1391 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1390, i32 0, i32 44
  %1392 = load ptr, ptr %6, align 8, !tbaa !5
  %1393 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1392, i32 0, i32 59
  %1394 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %1375, ptr noundef %1378, double noundef %1381, ptr noundef %1384, ptr noundef %1387, ptr noundef %1389, ptr noundef %1391, i1 noundef zeroext true, ptr noundef %35, ptr noundef %1393, ptr noundef %1394)
  %1395 = load ptr, ptr %6, align 8, !tbaa !5
  %1396 = load ptr, ptr %6, align 8, !tbaa !5
  %1397 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1396, i32 0, i32 45
  %1398 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1397, i32 0, i32 3
  %1399 = load ptr, ptr %6, align 8, !tbaa !5
  %1400 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1399, i32 0, i32 34
  %1401 = load double, ptr %1400, align 8, !tbaa !57
  %1402 = load ptr, ptr %6, align 8, !tbaa !5
  %1403 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1402, i32 0, i32 45
  %1404 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1403, i32 0, i32 4
  %1405 = load ptr, ptr %6, align 8, !tbaa !5
  %1406 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1405, i32 0, i32 45
  %1407 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1406, i32 0, i32 6
  %1408 = load ptr, ptr %6, align 8, !tbaa !5
  %1409 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1408, i32 0, i32 43
  %1410 = load ptr, ptr %6, align 8, !tbaa !5
  %1411 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1410, i32 0, i32 44
  %1412 = load ptr, ptr %6, align 8, !tbaa !5
  %1413 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1412, i32 0, i32 60
  %1414 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %1395, ptr noundef %1398, double noundef %1401, ptr noundef %1404, ptr noundef %1407, ptr noundef %1409, ptr noundef %1411, i1 noundef zeroext true, ptr noundef %36, ptr noundef %1413, ptr noundef %1414)
  %1415 = load double, ptr %37, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1146, double noundef %1415)
  %1416 = load double, ptr %38, align 8, !tbaa !49
  %1417 = load double, ptr %32, align 8, !tbaa !49
  %1418 = load double, ptr %30, align 8, !tbaa !49
  %1419 = fsub double %1417, %1418
  %1420 = load double, ptr %32, align 8, !tbaa !49
  %1421 = load double, ptr %30, align 8, !tbaa !49
  %1422 = fsub double %1420, %1421
  %1423 = load double, ptr %38, align 8, !tbaa !49
  %1424 = fdiv double %1422, %1423
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1147, double noundef %1416, double noundef %1419, double noundef %1424)
  %1425 = load double, ptr %39, align 8, !tbaa !49
  %1426 = load double, ptr %33, align 8, !tbaa !49
  %1427 = load double, ptr %31, align 8, !tbaa !49
  %1428 = fsub double %1426, %1427
  %1429 = load double, ptr %33, align 8, !tbaa !49
  %1430 = load double, ptr %31, align 8, !tbaa !49
  %1431 = fsub double %1429, %1430
  %1432 = load double, ptr %39, align 8, !tbaa !49
  %1433 = fdiv double %1431, %1432
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1148, double noundef %1425, double noundef %1428, double noundef %1433)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1149)
  %1434 = load ptr, ptr %6, align 8, !tbaa !5
  %1435 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1434, i32 0, i32 22
  %1436 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1435, i32 0, i32 4
  %1437 = load ptr, ptr %1436, align 8, !tbaa !45
  %1438 = getelementptr inbounds double, ptr %1437, i64 0
  %1439 = load double, ptr %1438, align 8, !tbaa !49
  %1440 = load ptr, ptr %6, align 8, !tbaa !5
  %1441 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1440, i32 0, i32 38
  %1442 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1441, i32 0, i32 4
  %1443 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1442, i32 0, i32 4
  %1444 = load ptr, ptr %1443, align 8, !tbaa !45
  %1445 = getelementptr inbounds double, ptr %1444, i64 0
  %1446 = load double, ptr %1445, align 8, !tbaa !49
  %1447 = fmul double %1439, %1446
  %1448 = load ptr, ptr %6, align 8, !tbaa !5
  %1449 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1448, i32 0, i32 22
  %1450 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1449, i32 0, i32 4
  %1451 = load ptr, ptr %1450, align 8, !tbaa !45
  %1452 = getelementptr inbounds double, ptr %1451, i64 0
  %1453 = load double, ptr %1452, align 8, !tbaa !49
  %1454 = load ptr, ptr %6, align 8, !tbaa !5
  %1455 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1454, i32 0, i32 45
  %1456 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1455, i32 0, i32 4
  %1457 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1456, i32 0, i32 4
  %1458 = load ptr, ptr %1457, align 8, !tbaa !45
  %1459 = getelementptr inbounds double, ptr %1458, i64 0
  %1460 = load double, ptr %1459, align 8, !tbaa !49
  %1461 = fmul double %1453, %1460
  %1462 = load ptr, ptr %6, align 8, !tbaa !5
  %1463 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1462, i32 0, i32 22
  %1464 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1463, i32 0, i32 4
  %1465 = load ptr, ptr %1464, align 8, !tbaa !45
  %1466 = getelementptr inbounds double, ptr %1465, i64 0
  %1467 = load double, ptr %1466, align 8, !tbaa !49
  %1468 = load ptr, ptr %6, align 8, !tbaa !5
  %1469 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1468, i32 0, i32 45
  %1470 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1469, i32 0, i32 4
  %1471 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1470, i32 0, i32 4
  %1472 = load ptr, ptr %1471, align 8, !tbaa !45
  %1473 = getelementptr inbounds double, ptr %1472, i64 0
  %1474 = load double, ptr %1473, align 8, !tbaa !49
  %1475 = load ptr, ptr %6, align 8, !tbaa !5
  %1476 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1475, i32 0, i32 38
  %1477 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1476, i32 0, i32 4
  %1478 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1477, i32 0, i32 4
  %1479 = load ptr, ptr %1478, align 8, !tbaa !45
  %1480 = getelementptr inbounds double, ptr %1479, i64 0
  %1481 = load double, ptr %1480, align 8, !tbaa !49
  %1482 = fsub double %1474, %1481
  %1483 = fmul double %1467, %1482
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1150, double noundef %1447, double noundef %1461, double noundef %1483)
  %1484 = load double, ptr %30, align 8, !tbaa !49
  %1485 = load double, ptr %32, align 8, !tbaa !49
  %1486 = load double, ptr %32, align 8, !tbaa !49
  %1487 = load double, ptr %30, align 8, !tbaa !49
  %1488 = fsub double %1486, %1487
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1151, double noundef %1484, double noundef %1485, double noundef %1488)
  %1489 = load double, ptr %31, align 8, !tbaa !49
  %1490 = load double, ptr %33, align 8, !tbaa !49
  %1491 = load double, ptr %33, align 8, !tbaa !49
  %1492 = load double, ptr %31, align 8, !tbaa !49
  %1493 = fsub double %1491, %1492
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1152, double noundef %1489, double noundef %1490, double noundef %1493)
  %1494 = load i64, ptr %10, align 8, !tbaa !46
  %1495 = load ptr, ptr %6, align 8, !tbaa !5
  %1496 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1495, i32 0, i32 59
  %1497 = load ptr, ptr %9, align 8, !tbaa !5
  %1498 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1494, ptr noundef %1496, ptr noundef %1497)
  %1499 = load i64, ptr %10, align 8, !tbaa !46
  %1500 = load ptr, ptr %6, align 8, !tbaa !5
  %1501 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1500, i32 0, i32 60
  %1502 = load ptr, ptr %9, align 8, !tbaa !5
  %1503 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1499, ptr noundef %1501, ptr noundef %1502)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1153, double noundef %1498, double noundef %1503)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1504

1504:                                             ; preds = %1366, %1359
  %1505 = load ptr, ptr %6, align 8, !tbaa !5
  %1506 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1505, i32 0, i32 45
  %1507 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1506, i32 0, i32 3
  %1508 = load ptr, ptr %6, align 8, !tbaa !5
  %1509 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1508, i32 0, i32 14
  %1510 = load ptr, ptr %6, align 8, !tbaa !5
  %1511 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1510, i32 0, i32 12
  %1512 = load ptr, ptr %6, align 8, !tbaa !5
  %1513 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1512, i32 0, i32 15
  %1514 = load ptr, ptr %6, align 8, !tbaa !5
  %1515 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1514, i32 0, i32 13
  %1516 = load i64, ptr %10, align 8, !tbaa !46
  %1517 = load ptr, ptr %9, align 8, !tbaa !5
  %1518 = call noundef zeroext i1 @_ZN11alglib_impl26enforceboundaryconstraintsEPNS_9ae_vectorEPKS0_S3_S3_S3_llPNS_8ae_stateE(ptr noundef %1507, ptr noundef %1509, ptr noundef %1511, ptr noundef %1513, ptr noundef %1515, i64 noundef %1516, i64 noundef 0, ptr noundef %1517)
  %1519 = load i8, ptr %8, align 1, !tbaa !9, !range !47, !noundef !48
  %1520 = trunc i8 %1519 to i1
  br i1 %1520, label %1521, label %1535

1521:                                             ; preds = %1504
  %1522 = load i8, ptr %41, align 1, !tbaa !9, !range !47, !noundef !48
  %1523 = trunc i8 %1522 to i1
  %1524 = load ptr, ptr %9, align 8, !tbaa !5
  %1525 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %1523, i64 noundef -8, i64 noundef 8, ptr noundef %1524)
  %1526 = load ptr, ptr %6, align 8, !tbaa !5
  %1527 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1526, i32 0, i32 66
  store i64 %1525, ptr %1527, align 8, !tbaa !61
  %1528 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1529 = trunc i8 %1528 to i1
  br i1 %1529, label %1533, label %1530

1530:                                             ; preds = %1521
  %1531 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %1532 = trunc i8 %1531 to i1
  br i1 %1532, label %1533, label %1534

1533:                                             ; preds = %1530, %1521
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1154)
  br label %1534

1534:                                             ; preds = %1533, %1530
  br label %2233

1535:                                             ; preds = %1504
  %1536 = load i8, ptr %43, align 1, !tbaa !9, !range !47, !noundef !48
  %1537 = trunc i8 %1536 to i1
  br i1 %1537, label %1665, label %1538

1538:                                             ; preds = %1535
  %1539 = load i64, ptr %10, align 8, !tbaa !46
  %1540 = load ptr, ptr %6, align 8, !tbaa !5
  %1541 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1540, i32 0, i32 59
  %1542 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1539, ptr noundef %1541, ptr noundef %1542)
  %1543 = load i64, ptr %10, align 8, !tbaa !46
  %1544 = load ptr, ptr %6, align 8, !tbaa !5
  %1545 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1544, i32 0, i32 60
  %1546 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1543, ptr noundef %1545, ptr noundef %1546)
  %1547 = load ptr, ptr %6, align 8, !tbaa !5
  %1548 = load ptr, ptr %6, align 8, !tbaa !5
  %1549 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1548, i32 0, i32 38
  %1550 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1549, i32 0, i32 3
  %1551 = load ptr, ptr %6, align 8, !tbaa !5
  %1552 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1551, i32 0, i32 34
  %1553 = load double, ptr %1552, align 8, !tbaa !57
  %1554 = load ptr, ptr %6, align 8, !tbaa !5
  %1555 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1554, i32 0, i32 38
  %1556 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1555, i32 0, i32 4
  %1557 = load ptr, ptr %6, align 8, !tbaa !5
  %1558 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1557, i32 0, i32 38
  %1559 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1558, i32 0, i32 6
  %1560 = load ptr, ptr %6, align 8, !tbaa !5
  %1561 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1560, i32 0, i32 43
  %1562 = load ptr, ptr %6, align 8, !tbaa !5
  %1563 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1562, i32 0, i32 44
  %1564 = load ptr, ptr %6, align 8, !tbaa !5
  %1565 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1564, i32 0, i32 59
  %1566 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %1547, ptr noundef %1550, double noundef %1553, ptr noundef %1556, ptr noundef %1559, ptr noundef %1561, ptr noundef %1563, i1 noundef zeroext true, ptr noundef %35, ptr noundef %1565, ptr noundef %1566)
  %1567 = load ptr, ptr %6, align 8, !tbaa !5
  %1568 = load ptr, ptr %6, align 8, !tbaa !5
  %1569 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1568, i32 0, i32 45
  %1570 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1569, i32 0, i32 3
  %1571 = load ptr, ptr %6, align 8, !tbaa !5
  %1572 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1571, i32 0, i32 34
  %1573 = load double, ptr %1572, align 8, !tbaa !57
  %1574 = load ptr, ptr %6, align 8, !tbaa !5
  %1575 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1574, i32 0, i32 45
  %1576 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1575, i32 0, i32 4
  %1577 = load ptr, ptr %6, align 8, !tbaa !5
  %1578 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1577, i32 0, i32 45
  %1579 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1578, i32 0, i32 6
  %1580 = load ptr, ptr %6, align 8, !tbaa !5
  %1581 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1580, i32 0, i32 43
  %1582 = load ptr, ptr %6, align 8, !tbaa !5
  %1583 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1582, i32 0, i32 44
  %1584 = load ptr, ptr %6, align 8, !tbaa !5
  %1585 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1584, i32 0, i32 60
  %1586 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef %1567, ptr noundef %1570, double noundef %1573, ptr noundef %1576, ptr noundef %1579, ptr noundef %1581, ptr noundef %1583, i1 noundef zeroext true, ptr noundef %36, ptr noundef %1585, ptr noundef %1586)
  %1587 = load ptr, ptr %6, align 8, !tbaa !5
  %1588 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1587, i32 0, i32 42
  %1589 = load ptr, ptr %6, align 8, !tbaa !5
  %1590 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1589, i32 0, i32 38
  %1591 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1590, i32 0, i32 3
  %1592 = load ptr, ptr %6, align 8, !tbaa !5
  %1593 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1592, i32 0, i32 59
  %1594 = load ptr, ptr %6, align 8, !tbaa !5
  %1595 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1594, i32 0, i32 45
  %1596 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1595, i32 0, i32 3
  %1597 = load ptr, ptr %6, align 8, !tbaa !5
  %1598 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1597, i32 0, i32 60
  %1599 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1600 = trunc i8 %1599 to i1
  %1601 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl15hessianupdatev2EPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_lbblPNS_8ae_stateE(ptr noundef %1588, ptr noundef %1591, ptr noundef %1593, ptr noundef %1596, ptr noundef %1598, i64 noundef 2, i1 noundef zeroext false, i1 noundef zeroext %1600, i64 noundef 1, ptr noundef %1601)
  %1602 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1603 = trunc i8 %1602 to i1
  br i1 %1603, label %1604, label %1664

1604:                                             ; preds = %1538
  %1605 = load ptr, ptr %6, align 8, !tbaa !5
  %1606 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1605, i32 0, i32 42
  %1607 = load ptr, ptr %6, align 8, !tbaa !5
  %1608 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1607, i32 0, i32 61
  %1609 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl18hessiangetdiagonalEPNS_12xbfgshessianEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1606, ptr noundef %1608, ptr noundef %1609)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1155)
  %1610 = load ptr, ptr %6, align 8, !tbaa !5
  %1611 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1610, i32 0, i32 61
  %1612 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1611, i32 0, i32 4
  %1613 = load ptr, ptr %1612, align 8, !tbaa !45
  %1614 = getelementptr inbounds double, ptr %1613, i64 0
  %1615 = load double, ptr %1614, align 8, !tbaa !49
  store double %1615, ptr %15, align 8, !tbaa !49
  store i64 0, ptr %13, align 8, !tbaa !46
  br label %1616

1616:                                             ; preds = %1632, %1604
  %1617 = load i64, ptr %13, align 8, !tbaa !46
  %1618 = load i64, ptr %10, align 8, !tbaa !46
  %1619 = sub nsw i64 %1618, 1
  %1620 = icmp sle i64 %1617, %1619
  br i1 %1620, label %1621, label %1635

1621:                                             ; preds = %1616
  %1622 = load double, ptr %15, align 8, !tbaa !49
  %1623 = load ptr, ptr %6, align 8, !tbaa !5
  %1624 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1623, i32 0, i32 61
  %1625 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1624, i32 0, i32 4
  %1626 = load ptr, ptr %1625, align 8, !tbaa !45
  %1627 = load i64, ptr %13, align 8, !tbaa !46
  %1628 = getelementptr inbounds double, ptr %1626, i64 %1627
  %1629 = load double, ptr %1628, align 8, !tbaa !49
  %1630 = load ptr, ptr %9, align 8, !tbaa !5
  %1631 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1622, double noundef %1629, ptr noundef %1630)
  store double %1631, ptr %15, align 8, !tbaa !49
  br label %1632

1632:                                             ; preds = %1621
  %1633 = load i64, ptr %13, align 8, !tbaa !46
  %1634 = add nsw i64 %1633, 1
  store i64 %1634, ptr %13, align 8, !tbaa !46
  br label %1616, !llvm.loop !77

1635:                                             ; preds = %1616
  %1636 = load double, ptr %15, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1156, double noundef %1636)
  %1637 = load ptr, ptr %6, align 8, !tbaa !5
  %1638 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1637, i32 0, i32 61
  %1639 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1638, i32 0, i32 4
  %1640 = load ptr, ptr %1639, align 8, !tbaa !45
  %1641 = getelementptr inbounds double, ptr %1640, i64 0
  %1642 = load double, ptr %1641, align 8, !tbaa !49
  store double %1642, ptr %15, align 8, !tbaa !49
  store i64 0, ptr %13, align 8, !tbaa !46
  br label %1643

1643:                                             ; preds = %1659, %1635
  %1644 = load i64, ptr %13, align 8, !tbaa !46
  %1645 = load i64, ptr %10, align 8, !tbaa !46
  %1646 = sub nsw i64 %1645, 1
  %1647 = icmp sle i64 %1644, %1646
  br i1 %1647, label %1648, label %1662

1648:                                             ; preds = %1643
  %1649 = load double, ptr %15, align 8, !tbaa !49
  %1650 = load ptr, ptr %6, align 8, !tbaa !5
  %1651 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1650, i32 0, i32 61
  %1652 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1651, i32 0, i32 4
  %1653 = load ptr, ptr %1652, align 8, !tbaa !45
  %1654 = load i64, ptr %13, align 8, !tbaa !46
  %1655 = getelementptr inbounds double, ptr %1653, i64 %1654
  %1656 = load double, ptr %1655, align 8, !tbaa !49
  %1657 = load ptr, ptr %9, align 8, !tbaa !5
  %1658 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1649, double noundef %1656, ptr noundef %1657)
  store double %1658, ptr %15, align 8, !tbaa !49
  br label %1659

1659:                                             ; preds = %1648
  %1660 = load i64, ptr %13, align 8, !tbaa !46
  %1661 = add nsw i64 %1660, 1
  store i64 %1661, ptr %13, align 8, !tbaa !46
  br label %1643, !llvm.loop !78

1662:                                             ; preds = %1643
  %1663 = load double, ptr %15, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1157, double noundef %1663)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1664

1664:                                             ; preds = %1662, %1538
  br label %1665

1665:                                             ; preds = %1664, %1535
  %1666 = load i8, ptr %43, align 1, !tbaa !9, !range !47, !noundef !48
  %1667 = trunc i8 %1666 to i1
  br i1 %1667, label %1668, label %1721

1668:                                             ; preds = %1665
  %1669 = load i8, ptr %44, align 1, !tbaa !9, !range !47, !noundef !48
  %1670 = trunc i8 %1669 to i1
  br i1 %1670, label %1690, label %1671

1671:                                             ; preds = %1668
  %1672 = load i8, ptr %42, align 1, !tbaa !9, !range !47, !noundef !48
  %1673 = trunc i8 %1672 to i1
  br i1 %1673, label %1690, label %1674

1674:                                             ; preds = %1671
  %1675 = load ptr, ptr %6, align 8, !tbaa !5
  %1676 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1675, i32 0, i32 50
  %1677 = load double, ptr %30, align 8, !tbaa !49
  %1678 = load double, ptr %31, align 8, !tbaa !49
  %1679 = load ptr, ptr %9, align 8, !tbaa !5
  %1680 = call noundef zeroext i1 @_ZN11alglib_impl17nlpfisacceptable1EPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef %1676, double noundef %1677, double noundef %1678, ptr noundef %1679)
  br i1 %1680, label %1681, label %1690

1681:                                             ; preds = %1674
  %1682 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1683 = trunc i8 %1682 to i1
  br i1 %1683, label %1684, label %1685

1684:                                             ; preds = %1681
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1158)
  br label %1685

1685:                                             ; preds = %1684, %1681
  %1686 = load ptr, ptr %6, align 8, !tbaa !5
  %1687 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1686, i32 0, i32 35
  %1688 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !49
  %1689 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef %1687, double noundef %1688, ptr noundef %1689)
  store i8 1, ptr %47, align 1, !tbaa !9
  store i8 1, ptr %46, align 1, !tbaa !9
  br label %1707

1690:                                             ; preds = %1674, %1671, %1668
  %1691 = load double, ptr %39, align 8, !tbaa !49
  %1692 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1691, double noundef 0.000000e+00)
  br i1 %1692, label %1701, label %1693

1693:                                             ; preds = %1690
  %1694 = load double, ptr %33, align 8, !tbaa !49
  %1695 = load double, ptr %31, align 8, !tbaa !49
  %1696 = fsub double %1694, %1695
  %1697 = load double, ptr @_ZN11alglib_implL31nlcfsqp_sufficientdecreasesigmaE, align 8, !tbaa !49
  %1698 = load double, ptr %39, align 8, !tbaa !49
  %1699 = fmul double %1697, %1698
  %1700 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1696, double noundef %1699)
  br i1 %1700, label %1701, label %1706

1701:                                             ; preds = %1693, %1690
  %1702 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1703 = trunc i8 %1702 to i1
  br i1 %1703, label %1704, label %1705

1704:                                             ; preds = %1701
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1159)
  br label %1705

1705:                                             ; preds = %1704, %1701
  store i8 1, ptr %46, align 1, !tbaa !9
  store i8 1, ptr %45, align 1, !tbaa !9
  br label %1706

1706:                                             ; preds = %1705, %1693
  br label %1707

1707:                                             ; preds = %1706, %1685
  %1708 = load double, ptr %33, align 8, !tbaa !49
  %1709 = load double, ptr %31, align 8, !tbaa !49
  %1710 = fsub double %1708, %1709
  %1711 = load ptr, ptr %9, align 8, !tbaa !5
  %1712 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1710, ptr noundef %1711)
  %1713 = load double, ptr @_ZN11alglib_implL22nlcfsqp_stagnationepsfE, align 8, !tbaa !49
  %1714 = load double, ptr %31, align 8, !tbaa !49
  %1715 = load double, ptr %33, align 8, !tbaa !49
  %1716 = load ptr, ptr %9, align 8, !tbaa !5
  %1717 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1714, double noundef %1715, ptr noundef %1716)
  %1718 = fmul double %1713, %1717
  %1719 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1712, double noundef %1718)
  %1720 = zext i1 %1719 to i8
  store i8 %1720, ptr %29, align 1, !tbaa !9
  store i8 0, ptr %44, align 1, !tbaa !9
  br label %1766

1721:                                             ; preds = %1665
  %1722 = load ptr, ptr %6, align 8, !tbaa !5
  %1723 = load double, ptr %30, align 8, !tbaa !49
  %1724 = load double, ptr %31, align 8, !tbaa !49
  %1725 = load double, ptr %32, align 8, !tbaa !49
  %1726 = load double, ptr %33, align 8, !tbaa !49
  %1727 = load double, ptr %38, align 8, !tbaa !49
  %1728 = load double, ptr %39, align 8, !tbaa !49
  %1729 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1730 = trunc i8 %1729 to i1
  %1731 = load ptr, ptr %9, align 8, !tbaa !5
  %1732 = call noundef zeroext i1 @_ZN11alglib_implL20nlcfsqp_isacceptableEPNS_12minfsqpstateEddddddbPNS_8ae_stateE(ptr noundef %1722, double noundef %1723, double noundef %1724, double noundef %1725, double noundef %1726, double noundef %1727, double noundef %1728, i1 noundef zeroext %1730, ptr noundef %1731)
  br i1 %1732, label %1738, label %1733

1733:                                             ; preds = %1721
  %1734 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1735 = trunc i8 %1734 to i1
  br i1 %1735, label %1736, label %1737

1736:                                             ; preds = %1733
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1160)
  br label %1737

1737:                                             ; preds = %1736, %1733
  store i8 1, ptr %46, align 1, !tbaa !9
  store i8 1, ptr %45, align 1, !tbaa !9
  br label %1738

1738:                                             ; preds = %1737, %1721
  %1739 = load double, ptr %32, align 8, !tbaa !49
  %1740 = load double, ptr %30, align 8, !tbaa !49
  %1741 = fsub double %1739, %1740
  %1742 = load ptr, ptr %9, align 8, !tbaa !5
  %1743 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1741, ptr noundef %1742)
  %1744 = load double, ptr @_ZN11alglib_implL22nlcfsqp_stagnationepsfE, align 8, !tbaa !49
  %1745 = load double, ptr %30, align 8, !tbaa !49
  %1746 = load ptr, ptr %9, align 8, !tbaa !5
  %1747 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1745, ptr noundef %1746)
  %1748 = fmul double %1744, %1747
  %1749 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1743, double noundef %1748)
  br i1 %1749, label %1750, label %1763

1750:                                             ; preds = %1738
  %1751 = load double, ptr %33, align 8, !tbaa !49
  %1752 = load double, ptr %31, align 8, !tbaa !49
  %1753 = fsub double %1751, %1752
  %1754 = load ptr, ptr %9, align 8, !tbaa !5
  %1755 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1753, ptr noundef %1754)
  %1756 = load double, ptr @_ZN11alglib_implL22nlcfsqp_stagnationepsfE, align 8, !tbaa !49
  %1757 = load double, ptr %31, align 8, !tbaa !49
  %1758 = load double, ptr %33, align 8, !tbaa !49
  %1759 = load ptr, ptr %9, align 8, !tbaa !5
  %1760 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1757, double noundef %1758, ptr noundef %1759)
  %1761 = fmul double %1756, %1760
  %1762 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1755, double noundef %1761)
  br label %1763

1763:                                             ; preds = %1750, %1738
  %1764 = phi i1 [ false, %1738 ], [ %1762, %1750 ]
  %1765 = zext i1 %1764 to i8
  store i8 %1765, ptr %29, align 1, !tbaa !9
  br label %1766

1766:                                             ; preds = %1763, %1707
  %1767 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1768 = trunc i8 %1767 to i1
  br i1 %1768, label %1770, label %1769

1769:                                             ; preds = %1766
  br label %1956

1770:                                             ; preds = %1766
  %1771 = load i8, ptr %26, align 1, !tbaa !9, !range !47, !noundef !48
  %1772 = trunc i8 %1771 to i1
  br i1 %1772, label %1780, label %1773

1773:                                             ; preds = %1770
  %1774 = load i8, ptr %27, align 1, !tbaa !9, !range !47, !noundef !48
  %1775 = trunc i8 %1774 to i1
  br i1 %1775, label %1776, label %1779

1776:                                             ; preds = %1773
  %1777 = load i8, ptr %45, align 1, !tbaa !9, !range !47, !noundef !48
  %1778 = trunc i8 %1777 to i1
  br i1 %1778, label %1780, label %1779

1779:                                             ; preds = %1776, %1773
  br label %1955

1780:                                             ; preds = %1776, %1770
  %1781 = load ptr, ptr %7, align 8, !tbaa !5
  %1782 = load ptr, ptr %6, align 8, !tbaa !5
  %1783 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1782, i32 0, i32 38
  %1784 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1783, i32 0, i32 3
  %1785 = load ptr, ptr %6, align 8, !tbaa !5
  %1786 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1785, i32 0, i32 47
  %1787 = load ptr, ptr %6, align 8, !tbaa !5
  %1788 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1787, i32 0, i32 65
  %1789 = load i64, ptr %1788, align 8, !tbaa !70
  %1790 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %1781, ptr noundef %1784, ptr noundef %1786, double noundef 1.000000e+00, i64 noundef %1789, i64 noundef -1, ptr noundef %1790)
  br label %1791

1791:                                             ; preds = %1922, %1780
  %1792 = load ptr, ptr %7, align 8, !tbaa !5
  %1793 = load ptr, ptr %9, align 8, !tbaa !5
  %1794 = call noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1792, ptr noundef %1793)
  br i1 %1794, label %1796, label %1795

1795:                                             ; preds = %1791
  br label %1952

1796:                                             ; preds = %1791
  store i64 0, ptr %14, align 8, !tbaa !46
  br label %1797

1797:                                             ; preds = %1885, %1796
  %1798 = load i64, ptr %14, align 8, !tbaa !46
  %1799 = load i64, ptr %10, align 8, !tbaa !46
  %1800 = sub nsw i64 %1799, 1
  %1801 = icmp sle i64 %1798, %1800
  br i1 %1801, label %1802, label %1888

1802:                                             ; preds = %1797
  %1803 = load ptr, ptr %7, align 8, !tbaa !5
  %1804 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %1803, i32 0, i32 20
  %1805 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1804, i32 0, i32 4
  %1806 = load ptr, ptr %1805, align 8, !tbaa !45
  %1807 = load i64, ptr %14, align 8, !tbaa !46
  %1808 = getelementptr inbounds double, ptr %1806, i64 %1807
  %1809 = load double, ptr %1808, align 8, !tbaa !49
  %1810 = load ptr, ptr %6, align 8, !tbaa !5
  %1811 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1810, i32 0, i32 46
  %1812 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1811, i32 0, i32 3
  %1813 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1812, i32 0, i32 4
  %1814 = load ptr, ptr %1813, align 8, !tbaa !45
  %1815 = load i64, ptr %14, align 8, !tbaa !46
  %1816 = getelementptr inbounds double, ptr %1814, i64 %1815
  store double %1809, ptr %1816, align 8, !tbaa !49
  %1817 = load ptr, ptr %6, align 8, !tbaa !5
  %1818 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1817, i32 0, i32 12
  %1819 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1818, i32 0, i32 4
  %1820 = load ptr, ptr %1819, align 8, !tbaa !45
  %1821 = load i64, ptr %14, align 8, !tbaa !46
  %1822 = getelementptr inbounds i8, ptr %1820, i64 %1821
  %1823 = load i8, ptr %1822, align 1, !tbaa !9, !range !47, !noundef !48
  %1824 = trunc i8 %1823 to i1
  br i1 %1824, label %1825, label %1850

1825:                                             ; preds = %1802
  %1826 = load ptr, ptr %6, align 8, !tbaa !5
  %1827 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1826, i32 0, i32 46
  %1828 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1827, i32 0, i32 3
  %1829 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1828, i32 0, i32 4
  %1830 = load ptr, ptr %1829, align 8, !tbaa !45
  %1831 = load i64, ptr %14, align 8, !tbaa !46
  %1832 = getelementptr inbounds double, ptr %1830, i64 %1831
  %1833 = load double, ptr %1832, align 8, !tbaa !49
  %1834 = load ptr, ptr %6, align 8, !tbaa !5
  %1835 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1834, i32 0, i32 14
  %1836 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1835, i32 0, i32 4
  %1837 = load ptr, ptr %1836, align 8, !tbaa !45
  %1838 = load i64, ptr %14, align 8, !tbaa !46
  %1839 = getelementptr inbounds double, ptr %1837, i64 %1838
  %1840 = load double, ptr %1839, align 8, !tbaa !49
  %1841 = load ptr, ptr %9, align 8, !tbaa !5
  %1842 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1833, double noundef %1840, ptr noundef %1841)
  %1843 = load ptr, ptr %6, align 8, !tbaa !5
  %1844 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1843, i32 0, i32 46
  %1845 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1844, i32 0, i32 3
  %1846 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1845, i32 0, i32 4
  %1847 = load ptr, ptr %1846, align 8, !tbaa !45
  %1848 = load i64, ptr %14, align 8, !tbaa !46
  %1849 = getelementptr inbounds double, ptr %1847, i64 %1848
  store double %1842, ptr %1849, align 8, !tbaa !49
  br label %1850

1850:                                             ; preds = %1825, %1802
  %1851 = load ptr, ptr %6, align 8, !tbaa !5
  %1852 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1851, i32 0, i32 13
  %1853 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1852, i32 0, i32 4
  %1854 = load ptr, ptr %1853, align 8, !tbaa !45
  %1855 = load i64, ptr %14, align 8, !tbaa !46
  %1856 = getelementptr inbounds i8, ptr %1854, i64 %1855
  %1857 = load i8, ptr %1856, align 1, !tbaa !9, !range !47, !noundef !48
  %1858 = trunc i8 %1857 to i1
  br i1 %1858, label %1859, label %1884

1859:                                             ; preds = %1850
  %1860 = load ptr, ptr %6, align 8, !tbaa !5
  %1861 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1860, i32 0, i32 46
  %1862 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1861, i32 0, i32 3
  %1863 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1862, i32 0, i32 4
  %1864 = load ptr, ptr %1863, align 8, !tbaa !45
  %1865 = load i64, ptr %14, align 8, !tbaa !46
  %1866 = getelementptr inbounds double, ptr %1864, i64 %1865
  %1867 = load double, ptr %1866, align 8, !tbaa !49
  %1868 = load ptr, ptr %6, align 8, !tbaa !5
  %1869 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1868, i32 0, i32 15
  %1870 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1869, i32 0, i32 4
  %1871 = load ptr, ptr %1870, align 8, !tbaa !45
  %1872 = load i64, ptr %14, align 8, !tbaa !46
  %1873 = getelementptr inbounds double, ptr %1871, i64 %1872
  %1874 = load double, ptr %1873, align 8, !tbaa !49
  %1875 = load ptr, ptr %9, align 8, !tbaa !5
  %1876 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1867, double noundef %1874, ptr noundef %1875)
  %1877 = load ptr, ptr %6, align 8, !tbaa !5
  %1878 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1877, i32 0, i32 46
  %1879 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1878, i32 0, i32 3
  %1880 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1879, i32 0, i32 4
  %1881 = load ptr, ptr %1880, align 8, !tbaa !45
  %1882 = load i64, ptr %14, align 8, !tbaa !46
  %1883 = getelementptr inbounds double, ptr %1881, i64 %1882
  store double %1876, ptr %1883, align 8, !tbaa !49
  br label %1884

1884:                                             ; preds = %1859, %1850
  br label %1885

1885:                                             ; preds = %1884
  %1886 = load i64, ptr %14, align 8, !tbaa !46
  %1887 = add nsw i64 %1886, 1
  store i64 %1887, ptr %14, align 8, !tbaa !46
  br label %1797, !llvm.loop !79

1888:                                             ; preds = %1797
  %1889 = load ptr, ptr %6, align 8, !tbaa !5
  %1890 = load ptr, ptr %6, align 8, !tbaa !5
  %1891 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1890, i32 0, i32 46
  %1892 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1891, i32 0, i32 3
  %1893 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1889, ptr noundef %1892, ptr noundef %1893)
  %1894 = load ptr, ptr %6, align 8, !tbaa !5
  %1895 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1894, i32 0, i32 32
  store i8 1, ptr %1895, align 8, !tbaa !53
  %1896 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1897 = trunc i8 %1896 to i1
  br i1 %1897, label %1898, label %1902

1898:                                             ; preds = %1888
  %1899 = load ptr, ptr %6, align 8, !tbaa !5
  %1900 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1899, i32 0, i32 77
  %1901 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1900, ptr noundef %1901)
  br label %1902

1902:                                             ; preds = %1898, %1888
  %1903 = load ptr, ptr %6, align 8, !tbaa !5
  %1904 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1903, i32 0, i32 78
  %1905 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1904, i32 0, i32 0
  store i32 3, ptr %1905, align 8, !tbaa !11
  br label %2324

1906:                                             ; preds = %381
  %1907 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1909, label %1913

1909:                                             ; preds = %1906
  %1910 = load ptr, ptr %6, align 8, !tbaa !5
  %1911 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1910, i32 0, i32 77
  %1912 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %1911, ptr noundef %1912)
  br label %1913

1913:                                             ; preds = %1909, %1906
  %1914 = load ptr, ptr %6, align 8, !tbaa !5
  %1915 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1914, i32 0, i32 32
  store i8 0, ptr %1915, align 8, !tbaa !53
  %1916 = load ptr, ptr %6, align 8, !tbaa !5
  %1917 = load ptr, ptr %6, align 8, !tbaa !5
  %1918 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1917, i32 0, i32 46
  %1919 = load ptr, ptr %9, align 8, !tbaa !5
  %1920 = call noundef zeroext i1 @_ZN11alglib_implL22nlcfsqp_sqpretrievefijEPKNS_12minfsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef %1916, ptr noundef %1918, ptr noundef %1919)
  br i1 %1920, label %1922, label %1921

1921:                                             ; preds = %1913
  br label %1952

1922:                                             ; preds = %1913
  %1923 = load i64, ptr %12, align 8, !tbaa !46
  %1924 = add nsw i64 1, %1923
  %1925 = load ptr, ptr %6, align 8, !tbaa !5
  %1926 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1925, i32 0, i32 46
  %1927 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1926, i32 0, i32 4
  %1928 = load ptr, ptr %7, align 8, !tbaa !5
  %1929 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %1928, i32 0, i32 21
  %1930 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1924, ptr noundef %1927, ptr noundef %1929, ptr noundef %1930)
  %1931 = load ptr, ptr %6, align 8, !tbaa !5
  %1932 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1931, i32 0, i32 46
  %1933 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1932, i32 0, i32 6
  %1934 = load ptr, ptr %7, align 8, !tbaa !5
  %1935 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %1934, i32 0, i32 23
  %1936 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL20nlcfsqp_sparse2denseEPKNS_12sparsematrixEPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %1933, ptr noundef %1935, ptr noundef %1936)
  %1937 = load ptr, ptr %6, align 8, !tbaa !5
  %1938 = load ptr, ptr %6, align 8, !tbaa !5
  %1939 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1938, i32 0, i32 46
  %1940 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1939, i32 0, i32 3
  %1941 = load ptr, ptr %6, align 8, !tbaa !5
  %1942 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1941, i32 0, i32 46
  %1943 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1942, i32 0, i32 4
  %1944 = load ptr, ptr %6, align 8, !tbaa !5
  %1945 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1944, i32 0, i32 43
  %1946 = load ptr, ptr %6, align 8, !tbaa !5
  %1947 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1946, i32 0, i32 44
  %1948 = load ptr, ptr %9, align 8, !tbaa !5
  %1949 = call noundef double @_ZN11alglib_implL21nlcfsqp_rawlagrangianEPNS_12minfsqpstateEPKNS_9ae_vectorES4_S4_S4_PNS_8ae_stateE(ptr noundef %1937, ptr noundef %1940, ptr noundef %1943, ptr noundef %1945, ptr noundef %1947, ptr noundef %1948)
  %1950 = load ptr, ptr %7, align 8, !tbaa !5
  %1951 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %1950, i32 0, i32 22
  store double %1949, ptr %1951, align 8, !tbaa !80
  br label %1791

1952:                                             ; preds = %1921, %1795
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1161)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1162)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1163)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1164)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1165)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1166)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1167)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1168)
  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)
  %1953 = load ptr, ptr %7, align 8, !tbaa !5
  %1954 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl46smoothnessmonitortracelagrangianprobingresultsEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1953, ptr noundef %1954)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1955

1955:                                             ; preds = %1952, %1779
  br label %1956

1956:                                             ; preds = %1955, %1769
  %1957 = load i8, ptr %47, align 1, !tbaa !9, !range !47, !noundef !48
  %1958 = trunc i8 %1957 to i1
  br i1 %1958, label %1959, label %1960

1959:                                             ; preds = %1956
  store i8 0, ptr %43, align 1, !tbaa !9
  br label %1960

1960:                                             ; preds = %1959, %1956
  %1961 = load i8, ptr %46, align 1, !tbaa !9, !range !47, !noundef !48
  %1962 = trunc i8 %1961 to i1
  br i1 %1962, label %1963, label %1985

1963:                                             ; preds = %1960
  %1964 = load i8, ptr %45, align 1, !tbaa !9, !range !47, !noundef !48
  %1965 = trunc i8 %1964 to i1
  br i1 %1965, label %1966, label %1977

1966:                                             ; preds = %1963
  %1967 = load ptr, ptr %6, align 8, !tbaa !5
  %1968 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1967, i32 0, i32 34
  %1969 = load double, ptr %1968, align 8, !tbaa !57
  %1970 = fmul double %1969, 5.000000e-01
  %1971 = load ptr, ptr %6, align 8, !tbaa !5
  %1972 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1971, i32 0, i32 34
  store double %1970, ptr %1972, align 8, !tbaa !57
  %1973 = load ptr, ptr %6, align 8, !tbaa !5
  %1974 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1973, i32 0, i32 35
  %1975 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !49
  %1976 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef %1974, double noundef %1975, ptr noundef %1976)
  br label %1977

1977:                                             ; preds = %1966, %1963
  %1978 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1979 = trunc i8 %1978 to i1
  br i1 %1979, label %1980, label %1981

1980:                                             ; preds = %1977
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1172)
  br label %1981

1981:                                             ; preds = %1980, %1977
  %1982 = load ptr, ptr %6, align 8, !tbaa !5
  %1983 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1982, i32 0, i32 65
  %1984 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %1983, ptr noundef %1984)
  br label %740

1985:                                             ; preds = %1960
  %1986 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %1987 = trunc i8 %1986 to i1
  br i1 %1987, label %1988, label %1989

1988:                                             ; preds = %1985
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1173)
  br label %1989

1989:                                             ; preds = %1988, %1985
  %1990 = load i8, ptr %43, align 1, !tbaa !9, !range !47, !noundef !48
  %1991 = trunc i8 %1990 to i1
  br i1 %1991, label %2021, label %1992

1992:                                             ; preds = %1989
  %1993 = load double, ptr %38, align 8, !tbaa !49
  %1994 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1993, double noundef 0.000000e+00)
  br i1 %1994, label %2003, label %1995

1995:                                             ; preds = %1992
  %1996 = load double, ptr %32, align 8, !tbaa !49
  %1997 = load double, ptr %30, align 8, !tbaa !49
  %1998 = fsub double %1996, %1997
  %1999 = load double, ptr @_ZN11alglib_implL31nlcfsqp_sufficientdecreasesigmaE, align 8, !tbaa !49
  %2000 = load double, ptr %38, align 8, !tbaa !49
  %2001 = fmul double %1999, %2000
  %2002 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1998, double noundef %2001)
  br i1 %2002, label %2003, label %2021

2003:                                             ; preds = %1995, %1992
  %2004 = load double, ptr %31, align 8, !tbaa !49
  %2005 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2004, double noundef 0.000000e+00)
  br i1 %2005, label %2006, label %2021

2006:                                             ; preds = %2003
  %2007 = load ptr, ptr %6, align 8, !tbaa !5
  %2008 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2007, i32 0, i32 50
  %2009 = load double, ptr %30, align 8, !tbaa !49
  %2010 = load double, ptr %31, align 8, !tbaa !49
  %2011 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef %2008, double noundef %2009, double noundef %2010, ptr noundef %2011)
  %2012 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %2013 = trunc i8 %2012 to i1
  br i1 %2013, label %2014, label %2020

2014:                                             ; preds = %2006
  %2015 = load ptr, ptr %6, align 8, !tbaa !5
  %2016 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2015, i32 0, i32 50
  %2017 = getelementptr inbounds %"struct.alglib_impl::nlpfilter", ptr %2016, i32 0, i32 1
  %2018 = load i64, ptr %2017, align 8, !tbaa !75
  %2019 = trunc i64 %2018 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1174, i32 noundef %2019)
  br label %2020

2020:                                             ; preds = %2014, %2006
  br label %2021

2021:                                             ; preds = %2020, %2003, %1995, %1989
  %2022 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %2023 = trunc i8 %2022 to i1
  br i1 %2023, label %2024, label %2025

2024:                                             ; preds = %2021
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %2025

2025:                                             ; preds = %2024, %2021
  %2026 = load double, ptr %32, align 8, !tbaa !49
  %2027 = load double, ptr %30, align 8, !tbaa !49
  %2028 = fsub double %2026, %2027
  %2029 = load ptr, ptr %9, align 8, !tbaa !5
  %2030 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2028, ptr noundef %2029)
  %2031 = load double, ptr %30, align 8, !tbaa !49
  %2032 = load double, ptr %32, align 8, !tbaa !49
  %2033 = load ptr, ptr %9, align 8, !tbaa !5
  %2034 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %2031, double noundef %2032, double noundef 1.000000e+00, ptr noundef %2033)
  %2035 = fdiv double %2030, %2034
  %2036 = load double, ptr %33, align 8, !tbaa !49
  %2037 = load double, ptr %31, align 8, !tbaa !49
  %2038 = fsub double %2036, %2037
  %2039 = load ptr, ptr %9, align 8, !tbaa !5
  %2040 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2038, ptr noundef %2039)
  %2041 = load double, ptr %31, align 8, !tbaa !49
  %2042 = load double, ptr %33, align 8, !tbaa !49
  %2043 = load ptr, ptr %9, align 8, !tbaa !5
  %2044 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %2041, double noundef %2042, double noundef 1.000000e+00, ptr noundef %2043)
  %2045 = fdiv double %2040, %2044
  %2046 = load ptr, ptr %9, align 8, !tbaa !5
  %2047 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2035, double noundef %2045, ptr noundef %2046)
  store double %2047, ptr %23, align 8, !tbaa !49
  %2048 = load ptr, ptr %6, align 8, !tbaa !5
  %2049 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2048, i32 0, i32 45
  %2050 = load ptr, ptr %6, align 8, !tbaa !5
  %2051 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2050, i32 0, i32 38
  %2052 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2049, ptr noundef %2051, ptr noundef %2052)
  store i8 0, ptr %41, align 1, !tbaa !9
  %2053 = load ptr, ptr %6, align 8, !tbaa !5
  %2054 = load ptr, ptr %6, align 8, !tbaa !5
  %2055 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2054, i32 0, i32 38
  %2056 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2055, i32 0, i32 3
  %2057 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2053, ptr noundef %2056, ptr noundef %2057)
  %2058 = load ptr, ptr %6, align 8, !tbaa !5
  %2059 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2058, i32 0, i32 38
  %2060 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2059, i32 0, i32 4
  %2061 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2060, i32 0, i32 4
  %2062 = load ptr, ptr %2061, align 8, !tbaa !45
  %2063 = getelementptr inbounds double, ptr %2062, i64 0
  %2064 = load double, ptr %2063, align 8, !tbaa !49
  %2065 = load ptr, ptr %6, align 8, !tbaa !5
  %2066 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2065, i32 0, i32 22
  %2067 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2066, i32 0, i32 4
  %2068 = load ptr, ptr %2067, align 8, !tbaa !45
  %2069 = getelementptr inbounds double, ptr %2068, i64 0
  %2070 = load double, ptr %2069, align 8, !tbaa !49
  %2071 = fmul double %2064, %2070
  %2072 = load ptr, ptr %6, align 8, !tbaa !5
  %2073 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2072, i32 0, i32 31
  store double %2071, ptr %2073, align 8, !tbaa !62
  %2074 = load ptr, ptr %6, align 8, !tbaa !5
  %2075 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2074, i32 0, i32 33
  store i8 1, ptr %2075, align 1, !tbaa !54
  %2076 = load ptr, ptr %6, align 8, !tbaa !5
  %2077 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2076, i32 0, i32 78
  %2078 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2077, i32 0, i32 0
  store i32 4, ptr %2078, align 8, !tbaa !11
  br label %2324

2079:                                             ; preds = %388
  %2080 = load ptr, ptr %6, align 8, !tbaa !5
  %2081 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2080, i32 0, i32 33
  store i8 0, ptr %2081, align 1, !tbaa !54
  %2082 = load ptr, ptr %6, align 8, !tbaa !5
  %2083 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2082, i32 0, i32 5
  %2084 = load ptr, ptr %6, align 8, !tbaa !5
  %2085 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2084, i32 0, i32 8
  %2086 = load ptr, ptr %6, align 8, !tbaa !5
  %2087 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2086, i32 0, i32 9
  %2088 = load ptr, ptr %6, align 8, !tbaa !5
  %2089 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2088, i32 0, i32 11
  %2090 = load i64, ptr %11, align 8, !tbaa !46
  %2091 = load ptr, ptr %6, align 8, !tbaa !5
  %2092 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2091, i32 0, i32 38
  %2093 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2092, i32 0, i32 3
  %2094 = load ptr, ptr %6, align 8, !tbaa !5
  %2095 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2094, i32 0, i32 69
  %2096 = load ptr, ptr %6, align 8, !tbaa !5
  %2097 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2096, i32 0, i32 70
  %2098 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef %2083, ptr noundef %2085, ptr noundef %2087, ptr noundef %2089, i64 noundef %2090, ptr noundef %2093, ptr noundef %2095, ptr noundef %2097, ptr noundef %2098)
  %2099 = load ptr, ptr %6, align 8, !tbaa !5
  %2100 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2099, i32 0, i32 38
  %2101 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2100, i32 0, i32 4
  %2102 = load ptr, ptr %6, align 8, !tbaa !5
  %2103 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2102, i32 0, i32 22
  %2104 = load ptr, ptr %6, align 8, !tbaa !5
  %2105 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2104, i32 0, i32 20
  %2106 = load ptr, ptr %6, align 8, !tbaa !5
  %2107 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2106, i32 0, i32 21
  %2108 = load i64, ptr %12, align 8, !tbaa !46
  %2109 = load ptr, ptr %6, align 8, !tbaa !5
  %2110 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2109, i32 0, i32 71
  %2111 = load ptr, ptr %6, align 8, !tbaa !5
  %2112 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2111, i32 0, i32 72
  %2113 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef %2101, ptr noundef %2103, ptr noundef %2105, ptr noundef %2107, i64 noundef %2108, ptr noundef %2110, ptr noundef %2112, ptr noundef %2113)
  store i8 0, ptr %22, align 1, !tbaa !9
  %2114 = load ptr, ptr %6, align 8, !tbaa !5
  %2115 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2114, i32 0, i32 34
  %2116 = load double, ptr %2115, align 8, !tbaa !57
  store double %2116, ptr %21, align 8, !tbaa !49
  store double 0.000000e+00, ptr %18, align 8, !tbaa !49
  store i64 0, ptr %13, align 8, !tbaa !46
  br label %2117

2117:                                             ; preds = %2153, %2079
  %2118 = load i64, ptr %13, 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 %2156

2122:                                             ; preds = %2117
  %2123 = load double, ptr %18, align 8, !tbaa !49
  %2124 = load ptr, ptr %6, align 8, !tbaa !5
  %2125 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2124, i32 0, i32 40
  %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 %13, 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::minfsqpstate", ptr %2131, i32 0, i32 38
  %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 %13, 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
  %2140 = load ptr, ptr %9, align 8, !tbaa !5
  %2141 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2139, ptr noundef %2140)
  %2142 = load ptr, ptr %6, align 8, !tbaa !5
  %2143 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2142, i32 0, i32 40
  %2144 = load i64, ptr %13, align 8, !tbaa !46
  %2145 = load ptr, ptr %6, align 8, !tbaa !5
  %2146 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2145, i32 0, i32 34
  %2147 = load double, ptr %2146, align 8, !tbaa !57
  %2148 = load ptr, ptr %9, align 8, !tbaa !5
  %2149 = call noundef double @_ZN11alglib_implL23nlcfsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %2143, i64 noundef %2144, double noundef %2147, ptr noundef %2148)
  %2150 = fdiv double %2141, %2149
  %2151 = load ptr, ptr %9, align 8, !tbaa !5
  %2152 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2123, double noundef %2150, ptr noundef %2151)
  store double %2152, ptr %18, align 8, !tbaa !49
  br label %2153

2153:                                             ; preds = %2122
  %2154 = load i64, ptr %13, align 8, !tbaa !46
  %2155 = add nsw i64 %2154, 1
  store i64 %2155, ptr %13, align 8, !tbaa !46
  br label %2117, !llvm.loop !86

2156:                                             ; preds = %2117
  %2157 = load double, ptr %18, align 8, !tbaa !49
  %2158 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !49
  %2159 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2157, double noundef %2158)
  br i1 %2159, label %2160, label %2173

2160:                                             ; preds = %2156
  %2161 = load ptr, ptr %6, align 8, !tbaa !5
  %2162 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2161, i32 0, i32 34
  %2163 = load double, ptr %2162, align 8, !tbaa !57
  %2164 = load double, ptr %18, align 8, !tbaa !49
  %2165 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !49
  %2166 = fdiv double %2164, %2165
  %2167 = load double, ptr @_ZN11alglib_implL24nlcfsqp_maxtrustraddecayE, align 8, !tbaa !49
  %2168 = load ptr, ptr %9, align 8, !tbaa !5
  %2169 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2166, double noundef %2167, ptr noundef %2168)
  %2170 = fmul double %2163, %2169
  %2171 = load ptr, ptr %6, align 8, !tbaa !5
  %2172 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2171, i32 0, i32 34
  store double %2170, ptr %2172, align 8, !tbaa !57
  br label %2173

2173:                                             ; preds = %2160, %2156
  %2174 = load double, ptr %18, align 8, !tbaa !49
  %2175 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltaincreaseE, align 8, !tbaa !49
  %2176 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2174, double noundef %2175)
  br i1 %2176, label %2177, label %2192

2177:                                             ; preds = %2173
  %2178 = load ptr, ptr %6, align 8, !tbaa !5
  %2179 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2178, i32 0, i32 34
  %2180 = load double, ptr %2179, align 8, !tbaa !57
  %2181 = load ptr, ptr %6, align 8, !tbaa !5
  %2182 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2181, i32 0, i32 35
  %2183 = load double, ptr %2182, align 8, !tbaa !58
  %2184 = fmul double %2180, %2183
  %2185 = load ptr, ptr %6, align 8, !tbaa !5
  %2186 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2185, i32 0, i32 34
  store double %2184, ptr %2186, align 8, !tbaa !57
  %2187 = load ptr, ptr %6, align 8, !tbaa !5
  %2188 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2187, i32 0, i32 35
  %2189 = load double, ptr @_ZN11alglib_implL22nlcfsqp_momentumgrowthE, align 8, !tbaa !49
  %2190 = load double, ptr @_ZN11alglib_implL25nlcfsqp_maxtrustradgrowthE, align 8, !tbaa !49
  %2191 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl24trustradincreasemomentumEPdddPNS_8ae_stateE(ptr noundef %2188, double noundef %2189, double noundef %2190, ptr noundef %2191)
  br label %2197

2192:                                             ; preds = %2173
  %2193 = load ptr, ptr %6, align 8, !tbaa !5
  %2194 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2193, i32 0, i32 35
  %2195 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !49
  %2196 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef %2194, double noundef %2195, ptr noundef %2196)
  br label %2197

2197:                                             ; preds = %2192, %2177
  %2198 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %2199 = trunc i8 %2198 to i1
  br i1 %2199, label %2200, label %2219

2200:                                             ; preds = %2197
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1175)
  %2201 = load double, ptr %18, align 8, !tbaa !49
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1176, double noundef %2201)
  %2202 = load ptr, ptr %6, align 8, !tbaa !5
  %2203 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2202, i32 0, i32 34
  %2204 = load double, ptr %2203, align 8, !tbaa !57
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1177, double noundef %2204)
  %2205 = load ptr, ptr %6, align 8, !tbaa !5
  %2206 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2205, i32 0, i32 34
  %2207 = load double, ptr %2206, align 8, !tbaa !57
  %2208 = load double, ptr %21, align 8, !tbaa !49
  %2209 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2207, double noundef %2208)
  br i1 %2209, label %2210, label %2211

2210:                                             ; preds = %2200
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1178)
  br label %2211

2211:                                             ; preds = %2210, %2200
  %2212 = load ptr, ptr %6, align 8, !tbaa !5
  %2213 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2212, i32 0, i32 34
  %2214 = load double, ptr %2213, align 8, !tbaa !57
  %2215 = load double, ptr %21, align 8, !tbaa !49
  %2216 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2214, double noundef %2215)
  br i1 %2216, label %2217, label %2218

2217:                                             ; preds = %2211
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1179)
  br label %2218

2218:                                             ; preds = %2217, %2211
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %2219

2219:                                             ; preds = %2218, %2197
  %2220 = load ptr, ptr %6, align 8, !tbaa !5
  %2221 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2220, i32 0, i32 65
  %2222 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %2221, ptr noundef %2222)
  %2223 = load i8, ptr %29, align 1, !tbaa !9, !range !47, !noundef !48
  %2224 = trunc i8 %2223 to i1
  %2225 = load ptr, ptr %6, align 8, !tbaa !5
  %2226 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2225, i32 0, i32 37
  %2227 = load i64, ptr %2226, align 8, !tbaa !55
  %2228 = add nsw i64 %2227, 1
  %2229 = load ptr, ptr %9, align 8, !tbaa !5
  %2230 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %2224, i64 noundef %2228, i64 noundef 0, ptr noundef %2229)
  %2231 = load ptr, ptr %6, align 8, !tbaa !5
  %2232 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2231, i32 0, i32 37
  store i64 %2230, ptr %2232, align 8, !tbaa !55
  br label %740

2233:                                             ; preds = %1534, %861, %841, %812, %793, %770
  %2234 = load i8, ptr %40, align 1, !tbaa !9, !range !47, !noundef !48
  %2235 = trunc i8 %2234 to i1
  br i1 %2235, label %2236, label %2247

2236:                                             ; preds = %2233
  %2237 = load i8, ptr %41, align 1, !tbaa !9, !range !47, !noundef !48
  %2238 = trunc i8 %2237 to i1
  %2239 = load ptr, ptr %6, align 8, !tbaa !5
  %2240 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2239, i32 0, i32 66
  %2241 = load i64, ptr %2240, align 8, !tbaa !61
  %2242 = add nsw i64 %2241, 800
  %2243 = load ptr, ptr %9, align 8, !tbaa !5
  %2244 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %2238, i64 noundef -8, i64 noundef %2242, ptr noundef %2243)
  %2245 = load ptr, ptr %6, align 8, !tbaa !5
  %2246 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2245, i32 0, i32 66
  store i64 %2244, ptr %2246, align 8, !tbaa !61
  br label %2247

2247:                                             ; preds = %2236, %2233
  %2248 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %2249 = trunc i8 %2248 to i1
  br i1 %2249, label %2250, label %2295

2250:                                             ; preds = %2247
  %2251 = load ptr, ptr %6, align 8, !tbaa !5
  %2252 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2251, i32 0, i32 73
  %2253 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2252, ptr noundef %2253)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.774)
  %2254 = load i8, ptr %40, align 1, !tbaa !9, !range !47, !noundef !48
  %2255 = trunc i8 %2254 to i1
  br i1 %2255, label %2256, label %2260

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

2259:                                             ; preds = %2256
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.776)
  br label %2260

2260:                                             ; preds = %2259, %2256, %2250
  %2261 = load ptr, ptr %6, align 8, !tbaa !5
  %2262 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2261, i32 0, i32 38
  %2263 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2262, i32 0, i32 4
  %2264 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2263, i32 0, i32 4
  %2265 = load ptr, ptr %2264, align 8, !tbaa !45
  %2266 = getelementptr inbounds double, ptr %2265, i64 0
  %2267 = load double, ptr %2266, align 8, !tbaa !49
  %2268 = load ptr, ptr %6, align 8, !tbaa !5
  %2269 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2268, i32 0, i32 22
  %2270 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2269, i32 0, i32 4
  %2271 = load ptr, ptr %2270, align 8, !tbaa !45
  %2272 = getelementptr inbounds double, ptr %2271, i64 0
  %2273 = load double, ptr %2272, align 8, !tbaa !49
  %2274 = fmul double %2267, %2273
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.777, double noundef %2274)
  %2275 = load ptr, ptr %6, align 8, !tbaa !5
  %2276 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2275, i32 0, i32 73
  %2277 = load ptr, ptr %9, align 8, !tbaa !5
  %2278 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2276, ptr noundef %2277)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.778, double noundef %2278)
  %2279 = load ptr, ptr %6, align 8, !tbaa !5
  %2280 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2279, i32 0, i32 77
  %2281 = load ptr, ptr %9, align 8, !tbaa !5
  %2282 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2280, ptr noundef %2281)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1180, double noundef %2282)
  %2283 = load ptr, ptr %6, align 8, !tbaa !5
  %2284 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2283, i32 0, i32 74
  %2285 = load ptr, ptr %9, align 8, !tbaa !5
  %2286 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2284, ptr noundef %2285)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1181, double noundef %2286)
  %2287 = load ptr, ptr %6, align 8, !tbaa !5
  %2288 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2287, i32 0, i32 75
  %2289 = load ptr, ptr %9, align 8, !tbaa !5
  %2290 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2288, ptr noundef %2289)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1182, double noundef %2290)
  %2291 = load ptr, ptr %6, align 8, !tbaa !5
  %2292 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2291, i32 0, i32 76
  %2293 = load ptr, ptr %9, align 8, !tbaa !5
  %2294 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2292, ptr noundef %2293)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1183, double noundef %2294)
  br label %2295

2295:                                             ; preds = %2260, %2247
  %2296 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %2297 = trunc i8 %2296 to i1
  br i1 %2297, label %2298, label %2317

2298:                                             ; preds = %2295
  %2299 = load ptr, ptr %6, align 8, !tbaa !5
  %2300 = load ptr, ptr %6, align 8, !tbaa !5
  %2301 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2300, i32 0, i32 38
  %2302 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef %2299, ptr noundef %2301, ptr noundef %30, ptr noundef %31, ptr noundef %2302)
  %2303 = load double, ptr %30, align 8, !tbaa !49
  %2304 = load ptr, ptr %6, align 8, !tbaa !5
  %2305 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2304, i32 0, i32 22
  %2306 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2305, i32 0, i32 4
  %2307 = load ptr, ptr %2306, align 8, !tbaa !45
  %2308 = getelementptr inbounds double, ptr %2307, i64 0
  %2309 = load double, ptr %2308, align 8, !tbaa !49
  %2310 = fmul double %2303, %2309
  %2311 = load double, ptr %31, align 8, !tbaa !49
  %2312 = load ptr, ptr %6, align 8, !tbaa !5
  %2313 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2312, i32 0, i32 73
  %2314 = load ptr, ptr %9, align 8, !tbaa !5
  %2315 = call noundef double @_ZN11alglib_impl18stimergetmsrunningEPNS_6stimerEPNS_8ae_stateE(ptr noundef %2313, ptr noundef %2314)
  %2316 = fmul double 1.000000e-03, %2315
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1184, double noundef %2310, double noundef %2311, double noundef %2316)
  br label %2317

2317:                                             ; preds = %2298, %2295
  %2318 = load ptr, ptr %7, align 8, !tbaa !5
  %2319 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %2320 = trunc i8 %2319 to i1
  %2321 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %2318, i1 noundef zeroext %2320, ptr noundef %2321)
  store i8 0, ptr %48, align 1, !tbaa !9
  %2322 = load i8, ptr %48, align 1, !tbaa !9, !range !47, !noundef !48
  %2323 = trunc i8 %2322 to i1
  store i1 %2323, ptr %5, align 1
  store i32 1, ptr %49, align 4
  br label %2623

2324:                                             ; preds = %2025, %1902, %1321, %564, %540
  store i8 1, ptr %48, align 1, !tbaa !9
  %2325 = load i64, ptr %10, align 8, !tbaa !46
  %2326 = load ptr, ptr %6, align 8, !tbaa !5
  %2327 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2326, i32 0, i32 78
  %2328 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2327, i32 0, i32 1
  %2329 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2328, i32 0, i32 4
  %2330 = load ptr, ptr %2329, align 8, !tbaa !45
  %2331 = getelementptr inbounds i64, ptr %2330, i64 0
  store i64 %2325, ptr %2331, align 8, !tbaa !46
  %2332 = load i64, ptr %11, align 8, !tbaa !46
  %2333 = load ptr, ptr %6, align 8, !tbaa !5
  %2334 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2333, i32 0, i32 78
  %2335 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2334, i32 0, i32 1
  %2336 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2335, i32 0, i32 4
  %2337 = load ptr, ptr %2336, align 8, !tbaa !45
  %2338 = getelementptr inbounds i64, ptr %2337, i64 1
  store i64 %2332, ptr %2338, align 8, !tbaa !46
  %2339 = load i64, ptr %12, align 8, !tbaa !46
  %2340 = load ptr, ptr %6, align 8, !tbaa !5
  %2341 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2340, i32 0, i32 78
  %2342 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2341, i32 0, i32 1
  %2343 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2342, i32 0, i32 4
  %2344 = load ptr, ptr %2343, align 8, !tbaa !45
  %2345 = getelementptr inbounds i64, ptr %2344, i64 2
  store i64 %2339, ptr %2345, align 8, !tbaa !46
  %2346 = load i64, ptr %13, align 8, !tbaa !46
  %2347 = load ptr, ptr %6, align 8, !tbaa !5
  %2348 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2347, i32 0, i32 78
  %2349 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2348, i32 0, i32 1
  %2350 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2349, i32 0, i32 4
  %2351 = load ptr, ptr %2350, align 8, !tbaa !45
  %2352 = getelementptr inbounds i64, ptr %2351, i64 3
  store i64 %2346, ptr %2352, align 8, !tbaa !46
  %2353 = load i64, ptr %14, align 8, !tbaa !46
  %2354 = load ptr, ptr %6, align 8, !tbaa !5
  %2355 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2354, i32 0, i32 78
  %2356 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2355, i32 0, i32 1
  %2357 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2356, i32 0, i32 4
  %2358 = load ptr, ptr %2357, align 8, !tbaa !45
  %2359 = getelementptr inbounds i64, ptr %2358, i64 4
  store i64 %2353, ptr %2359, align 8, !tbaa !46
  %2360 = load i8, ptr %22, align 1, !tbaa !9, !range !47, !noundef !48
  %2361 = trunc i8 %2360 to i1
  %2362 = load ptr, ptr %6, align 8, !tbaa !5
  %2363 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2362, i32 0, i32 78
  %2364 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2363, i32 0, i32 2
  %2365 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2364, i32 0, i32 4
  %2366 = load ptr, ptr %2365, align 8, !tbaa !45
  %2367 = getelementptr inbounds i8, ptr %2366, i64 0
  %2368 = zext i1 %2361 to i8
  store i8 %2368, ptr %2367, align 1, !tbaa !9
  %2369 = load i8, ptr %24, align 1, !tbaa !9, !range !47, !noundef !48
  %2370 = trunc i8 %2369 to i1
  %2371 = load ptr, ptr %6, align 8, !tbaa !5
  %2372 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2371, i32 0, i32 78
  %2373 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2372, i32 0, i32 2
  %2374 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2373, i32 0, i32 4
  %2375 = load ptr, ptr %2374, align 8, !tbaa !45
  %2376 = getelementptr inbounds i8, ptr %2375, i64 1
  %2377 = zext i1 %2370 to i8
  store i8 %2377, ptr %2376, align 1, !tbaa !9
  %2378 = load i8, ptr %25, align 1, !tbaa !9, !range !47, !noundef !48
  %2379 = trunc i8 %2378 to i1
  %2380 = load ptr, ptr %6, align 8, !tbaa !5
  %2381 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2380, i32 0, i32 78
  %2382 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2381, i32 0, i32 2
  %2383 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2382, i32 0, i32 4
  %2384 = load ptr, ptr %2383, align 8, !tbaa !45
  %2385 = getelementptr inbounds i8, ptr %2384, i64 2
  %2386 = zext i1 %2379 to i8
  store i8 %2386, ptr %2385, align 1, !tbaa !9
  %2387 = load i8, ptr %26, align 1, !tbaa !9, !range !47, !noundef !48
  %2388 = trunc i8 %2387 to i1
  %2389 = load ptr, ptr %6, align 8, !tbaa !5
  %2390 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2389, i32 0, i32 78
  %2391 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2390, i32 0, i32 2
  %2392 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2391, i32 0, i32 4
  %2393 = load ptr, ptr %2392, align 8, !tbaa !45
  %2394 = getelementptr inbounds i8, ptr %2393, i64 3
  %2395 = zext i1 %2388 to i8
  store i8 %2395, ptr %2394, align 1, !tbaa !9
  %2396 = load i8, ptr %27, align 1, !tbaa !9, !range !47, !noundef !48
  %2397 = trunc i8 %2396 to i1
  %2398 = load ptr, ptr %6, align 8, !tbaa !5
  %2399 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2398, i32 0, i32 78
  %2400 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2399, i32 0, i32 2
  %2401 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2400, i32 0, i32 4
  %2402 = load ptr, ptr %2401, align 8, !tbaa !45
  %2403 = getelementptr inbounds i8, ptr %2402, i64 4
  %2404 = zext i1 %2397 to i8
  store i8 %2404, ptr %2403, align 1, !tbaa !9
  %2405 = load i8, ptr %28, align 1, !tbaa !9, !range !47, !noundef !48
  %2406 = trunc i8 %2405 to i1
  %2407 = load ptr, ptr %6, align 8, !tbaa !5
  %2408 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2407, i32 0, i32 78
  %2409 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2408, i32 0, i32 2
  %2410 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2409, i32 0, i32 4
  %2411 = load ptr, ptr %2410, align 8, !tbaa !45
  %2412 = getelementptr inbounds i8, ptr %2411, i64 5
  %2413 = zext i1 %2406 to i8
  store i8 %2413, ptr %2412, align 1, !tbaa !9
  %2414 = load i8, ptr %29, align 1, !tbaa !9, !range !47, !noundef !48
  %2415 = trunc i8 %2414 to i1
  %2416 = load ptr, ptr %6, align 8, !tbaa !5
  %2417 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2416, i32 0, i32 78
  %2418 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2417, i32 0, i32 2
  %2419 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2418, i32 0, i32 4
  %2420 = load ptr, ptr %2419, align 8, !tbaa !45
  %2421 = getelementptr inbounds i8, ptr %2420, i64 6
  %2422 = zext i1 %2415 to i8
  store i8 %2422, ptr %2421, align 1, !tbaa !9
  %2423 = load i8, ptr %40, align 1, !tbaa !9, !range !47, !noundef !48
  %2424 = trunc i8 %2423 to i1
  %2425 = load ptr, ptr %6, align 8, !tbaa !5
  %2426 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2425, i32 0, i32 78
  %2427 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2426, i32 0, i32 2
  %2428 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2427, i32 0, i32 4
  %2429 = load ptr, ptr %2428, align 8, !tbaa !45
  %2430 = getelementptr inbounds i8, ptr %2429, i64 7
  %2431 = zext i1 %2424 to i8
  store i8 %2431, ptr %2430, align 1, !tbaa !9
  %2432 = load i8, ptr %41, align 1, !tbaa !9, !range !47, !noundef !48
  %2433 = trunc i8 %2432 to i1
  %2434 = load ptr, ptr %6, align 8, !tbaa !5
  %2435 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2434, i32 0, i32 78
  %2436 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2435, i32 0, i32 2
  %2437 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2436, i32 0, i32 4
  %2438 = load ptr, ptr %2437, align 8, !tbaa !45
  %2439 = getelementptr inbounds i8, ptr %2438, i64 8
  %2440 = zext i1 %2433 to i8
  store i8 %2440, ptr %2439, align 1, !tbaa !9
  %2441 = load i8, ptr %42, align 1, !tbaa !9, !range !47, !noundef !48
  %2442 = trunc i8 %2441 to i1
  %2443 = load ptr, ptr %6, align 8, !tbaa !5
  %2444 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2443, i32 0, i32 78
  %2445 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2444, i32 0, i32 2
  %2446 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2445, i32 0, i32 4
  %2447 = load ptr, ptr %2446, align 8, !tbaa !45
  %2448 = getelementptr inbounds i8, ptr %2447, i64 9
  %2449 = zext i1 %2442 to i8
  store i8 %2449, ptr %2448, align 1, !tbaa !9
  %2450 = load i8, ptr %43, align 1, !tbaa !9, !range !47, !noundef !48
  %2451 = trunc i8 %2450 to i1
  %2452 = load ptr, ptr %6, align 8, !tbaa !5
  %2453 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2452, i32 0, i32 78
  %2454 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2453, i32 0, i32 2
  %2455 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2454, i32 0, i32 4
  %2456 = load ptr, ptr %2455, align 8, !tbaa !45
  %2457 = getelementptr inbounds i8, ptr %2456, i64 10
  %2458 = zext i1 %2451 to i8
  store i8 %2458, ptr %2457, align 1, !tbaa !9
  %2459 = load i8, ptr %44, align 1, !tbaa !9, !range !47, !noundef !48
  %2460 = trunc i8 %2459 to i1
  %2461 = load ptr, ptr %6, align 8, !tbaa !5
  %2462 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2461, i32 0, i32 78
  %2463 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2462, i32 0, i32 2
  %2464 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2463, i32 0, i32 4
  %2465 = load ptr, ptr %2464, align 8, !tbaa !45
  %2466 = getelementptr inbounds i8, ptr %2465, i64 11
  %2467 = zext i1 %2460 to i8
  store i8 %2467, ptr %2466, align 1, !tbaa !9
  %2468 = load i8, ptr %45, align 1, !tbaa !9, !range !47, !noundef !48
  %2469 = trunc i8 %2468 to i1
  %2470 = load ptr, ptr %6, align 8, !tbaa !5
  %2471 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2470, i32 0, i32 78
  %2472 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2471, i32 0, i32 2
  %2473 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2472, i32 0, i32 4
  %2474 = load ptr, ptr %2473, align 8, !tbaa !45
  %2475 = getelementptr inbounds i8, ptr %2474, i64 12
  %2476 = zext i1 %2469 to i8
  store i8 %2476, ptr %2475, align 1, !tbaa !9
  %2477 = load i8, ptr %46, align 1, !tbaa !9, !range !47, !noundef !48
  %2478 = trunc i8 %2477 to i1
  %2479 = load ptr, ptr %6, align 8, !tbaa !5
  %2480 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2479, i32 0, i32 78
  %2481 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2480, i32 0, i32 2
  %2482 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2481, i32 0, i32 4
  %2483 = load ptr, ptr %2482, align 8, !tbaa !45
  %2484 = getelementptr inbounds i8, ptr %2483, i64 13
  %2485 = zext i1 %2478 to i8
  store i8 %2485, ptr %2484, align 1, !tbaa !9
  %2486 = load i8, ptr %47, align 1, !tbaa !9, !range !47, !noundef !48
  %2487 = trunc i8 %2486 to i1
  %2488 = load ptr, ptr %6, align 8, !tbaa !5
  %2489 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2488, i32 0, i32 78
  %2490 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2489, i32 0, i32 2
  %2491 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2490, i32 0, i32 4
  %2492 = load ptr, ptr %2491, align 8, !tbaa !45
  %2493 = getelementptr inbounds i8, ptr %2492, i64 14
  %2494 = zext i1 %2487 to i8
  store i8 %2494, ptr %2493, align 1, !tbaa !9
  %2495 = load double, ptr %15, align 8, !tbaa !49
  %2496 = load ptr, ptr %6, align 8, !tbaa !5
  %2497 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2496, i32 0, i32 78
  %2498 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2497, i32 0, i32 3
  %2499 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2498, i32 0, i32 4
  %2500 = load ptr, ptr %2499, align 8, !tbaa !45
  %2501 = getelementptr inbounds double, ptr %2500, i64 0
  store double %2495, ptr %2501, align 8, !tbaa !49
  %2502 = load double, ptr %16, align 8, !tbaa !49
  %2503 = load ptr, ptr %6, align 8, !tbaa !5
  %2504 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2503, i32 0, i32 78
  %2505 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2504, i32 0, i32 3
  %2506 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2505, i32 0, i32 4
  %2507 = load ptr, ptr %2506, align 8, !tbaa !45
  %2508 = getelementptr inbounds double, ptr %2507, i64 1
  store double %2502, ptr %2508, align 8, !tbaa !49
  %2509 = load double, ptr %17, align 8, !tbaa !49
  %2510 = load ptr, ptr %6, align 8, !tbaa !5
  %2511 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2510, i32 0, i32 78
  %2512 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2511, i32 0, i32 3
  %2513 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2512, i32 0, i32 4
  %2514 = load ptr, ptr %2513, align 8, !tbaa !45
  %2515 = getelementptr inbounds double, ptr %2514, i64 2
  store double %2509, ptr %2515, align 8, !tbaa !49
  %2516 = load double, ptr %18, align 8, !tbaa !49
  %2517 = load ptr, ptr %6, align 8, !tbaa !5
  %2518 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2517, i32 0, i32 78
  %2519 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2518, i32 0, i32 3
  %2520 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2519, i32 0, i32 4
  %2521 = load ptr, ptr %2520, align 8, !tbaa !45
  %2522 = getelementptr inbounds double, ptr %2521, i64 3
  store double %2516, ptr %2522, align 8, !tbaa !49
  %2523 = load double, ptr %19, align 8, !tbaa !49
  %2524 = load ptr, ptr %6, align 8, !tbaa !5
  %2525 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2524, i32 0, i32 78
  %2526 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2525, i32 0, i32 3
  %2527 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2526, i32 0, i32 4
  %2528 = load ptr, ptr %2527, align 8, !tbaa !45
  %2529 = getelementptr inbounds double, ptr %2528, i64 4
  store double %2523, ptr %2529, align 8, !tbaa !49
  %2530 = load double, ptr %20, align 8, !tbaa !49
  %2531 = load ptr, ptr %6, align 8, !tbaa !5
  %2532 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2531, i32 0, i32 78
  %2533 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2532, i32 0, i32 3
  %2534 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2533, i32 0, i32 4
  %2535 = load ptr, ptr %2534, align 8, !tbaa !45
  %2536 = getelementptr inbounds double, ptr %2535, i64 5
  store double %2530, ptr %2536, align 8, !tbaa !49
  %2537 = load double, ptr %21, align 8, !tbaa !49
  %2538 = load ptr, ptr %6, align 8, !tbaa !5
  %2539 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2538, i32 0, i32 78
  %2540 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2539, i32 0, i32 3
  %2541 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2540, i32 0, i32 4
  %2542 = load ptr, ptr %2541, align 8, !tbaa !45
  %2543 = getelementptr inbounds double, ptr %2542, i64 6
  store double %2537, ptr %2543, align 8, !tbaa !49
  %2544 = load double, ptr %23, align 8, !tbaa !49
  %2545 = load ptr, ptr %6, align 8, !tbaa !5
  %2546 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2545, i32 0, i32 78
  %2547 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2546, i32 0, i32 3
  %2548 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2547, i32 0, i32 4
  %2549 = load ptr, ptr %2548, align 8, !tbaa !45
  %2550 = getelementptr inbounds double, ptr %2549, i64 7
  store double %2544, ptr %2550, align 8, !tbaa !49
  %2551 = load double, ptr %30, align 8, !tbaa !49
  %2552 = load ptr, ptr %6, align 8, !tbaa !5
  %2553 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2552, i32 0, i32 78
  %2554 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2553, i32 0, i32 3
  %2555 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2554, i32 0, i32 4
  %2556 = load ptr, ptr %2555, align 8, !tbaa !45
  %2557 = getelementptr inbounds double, ptr %2556, i64 8
  store double %2551, ptr %2557, align 8, !tbaa !49
  %2558 = load double, ptr %31, align 8, !tbaa !49
  %2559 = load ptr, ptr %6, align 8, !tbaa !5
  %2560 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2559, i32 0, i32 78
  %2561 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2560, i32 0, i32 3
  %2562 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2561, i32 0, i32 4
  %2563 = load ptr, ptr %2562, align 8, !tbaa !45
  %2564 = getelementptr inbounds double, ptr %2563, i64 9
  store double %2558, ptr %2564, align 8, !tbaa !49
  %2565 = load double, ptr %32, align 8, !tbaa !49
  %2566 = load ptr, ptr %6, align 8, !tbaa !5
  %2567 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2566, i32 0, i32 78
  %2568 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2567, i32 0, i32 3
  %2569 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2568, i32 0, i32 4
  %2570 = load ptr, ptr %2569, align 8, !tbaa !45
  %2571 = getelementptr inbounds double, ptr %2570, i64 10
  store double %2565, ptr %2571, align 8, !tbaa !49
  %2572 = load double, ptr %33, align 8, !tbaa !49
  %2573 = load ptr, ptr %6, align 8, !tbaa !5
  %2574 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2573, i32 0, i32 78
  %2575 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2574, i32 0, i32 3
  %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 11
  store double %2572, ptr %2578, align 8, !tbaa !49
  %2579 = load double, ptr %34, align 8, !tbaa !49
  %2580 = load ptr, ptr %6, align 8, !tbaa !5
  %2581 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2580, i32 0, i32 78
  %2582 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2581, i32 0, i32 3
  %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 12
  store double %2579, ptr %2585, align 8, !tbaa !49
  %2586 = load double, ptr %35, align 8, !tbaa !49
  %2587 = load ptr, ptr %6, align 8, !tbaa !5
  %2588 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2587, i32 0, i32 78
  %2589 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2588, i32 0, i32 3
  %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 13
  store double %2586, ptr %2592, align 8, !tbaa !49
  %2593 = load double, ptr %36, align 8, !tbaa !49
  %2594 = load ptr, ptr %6, align 8, !tbaa !5
  %2595 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2594, i32 0, i32 78
  %2596 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2595, i32 0, i32 3
  %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 14
  store double %2593, ptr %2599, align 8, !tbaa !49
  %2600 = load double, ptr %37, align 8, !tbaa !49
  %2601 = load ptr, ptr %6, align 8, !tbaa !5
  %2602 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2601, i32 0, i32 78
  %2603 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2602, i32 0, i32 3
  %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 15
  store double %2600, ptr %2606, align 8, !tbaa !49
  %2607 = load double, ptr %38, align 8, !tbaa !49
  %2608 = load ptr, ptr %6, align 8, !tbaa !5
  %2609 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2608, i32 0, i32 78
  %2610 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2609, i32 0, i32 3
  %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 16
  store double %2607, ptr %2613, align 8, !tbaa !49
  %2614 = load double, ptr %39, align 8, !tbaa !49
  %2615 = load ptr, ptr %6, align 8, !tbaa !5
  %2616 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %2615, i32 0, i32 78
  %2617 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2616, i32 0, i32 3
  %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 17
  store double %2614, ptr %2620, align 8, !tbaa !49
  %2621 = load i8, ptr %48, align 1, !tbaa !9, !range !47, !noundef !48
  %2622 = trunc i8 %2621 to i1
  store i1 %2622, ptr %5, align 1
  store i32 1, ptr %49, align 4
  br label %2623

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_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) #2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !44, i64 62896}
!12 = !{!"_ZTSN11alglib_impl12minfsqpstateE", !13, i64 0, !13, i64 8, !13, i64 16, !10, i64 24, !14, i64 32, !16, i64 96, !14, i64 464, !14, i64 528, !14, i64 592, !14, i64 656, !14, i64 720, !14, i64 784, !14, i64 848, !14, i64 912, !14, i64 976, !14, i64 1040, !14, i64 1104, !14, i64 1168, !14, i64 1232, !14, i64 1296, !14, i64 1360, !14, i64 1424, !14, i64 1488, !14, i64 1552, !17, i64 1616, !17, i64 1624, !18, i64 1632, !13, i64 1656, !14, i64 1664, !14, i64 1728, !16, i64 1792, !17, i64 2160, !10, i64 2168, !10, i64 2169, !17, i64 2176, !17, i64 2184, !13, i64 2192, !13, i64 2200, !19, i64 2208, !14, i64 2808, !14, i64 2872, !21, i64 2936, !41, i64 56768, !14, i64 60128, !14, i64 60192, !19, i64 60256, !19, i64 60856, !14, i64 61456, !14, i64 61520, !14, i64 61584, !42, i64 61648, !14, i64 61816, !14, i64 61880, !14, i64 61944, !14, i64 62008, !14, i64 62072, !14, i64 62136, !14, i64 62200, !14, i64 62264, !14, i64 62328, !14, i64 62392, !14, i64 62456, !14, i64 62520, !14, i64 62584, !14, i64 62648, !13, i64 62712, !13, i64 62720, !17, i64 62728, !13, i64 62736, !17, i64 62744, !13, i64 62752, !17, i64 62760, !13, i64 62768, !39, i64 62776, !39, i64 62800, !39, i64 62824, !39, i64 62848, !39, i64 62872, !43, i64 62896}
!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_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}
!17 = !{!"double", !7, i64 0}
!18 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !17, i64 0, !17, i64 8, !13, i64 16}
!19 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !13, i64 0, !13, i64 8, !10, i64 16, !14, i64 24, !14, i64 88, !20, i64 152, !16, i64 232}
!20 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !15, i64 40, !7, i64 72}
!21 = !{!"_ZTSN11alglib_impl16minfsqpsubsolverE", !22, i64 0, !36, i64 26648, !14, i64 50544, !14, i64 50608, !14, i64 50672, !14, i64 50736, !14, i64 50800, !16, i64 50864, !16, i64 51232, !14, i64 51600, !17, i64 51664, !17, i64 51672, !20, i64 51680, !14, i64 51760, !20, i64 51824, !16, i64 51904, !14, i64 52272, !14, i64 52336, !14, i64 52400, !14, i64 52464, !14, i64 52528, !14, i64 52592, !14, i64 52656, !14, i64 52720, !14, i64 52784, !20, i64 52848, !14, i64 52928, !14, i64 52992, !20, i64 53056, !14, i64 53136, !13, i64 53200, !16, i64 53208, !14, i64 53576, !14, i64 53640, !14, i64 53704, !14, i64 53768}
!22 = !{!"_ZTSN11alglib_impl9vipmstateE", !10, i64 0, !10, i64 1, !13, i64 8, !13, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !10, i64 48, !14, i64 56, !14, i64 120, !14, i64 184, !17, i64 248, !14, i64 256, !20, i64 320, !16, 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, !20, i64 1232, !20, i64 1312, !16, i64 1392, !16, i64 1760, !16, 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, !20, 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, !20, i64 26072, !14, i64 26152, !14, i64 26216, !16, 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", !16, 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, !17, i64 40, !17, i64 48, !17, i64 56, !17, 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, !16, i64 14200, !16, 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, !20, 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, !16, i64 4512, !16, i64 4880, !16, i64 5248, !16, i64 5616, !16, 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, !17, i64 24, !17, i64 32, !17, i64 40, !13, i64 48, !10, i64 56, !14, i64 64, !14, i64 128, !14, i64 192, !17, i64 256, !14, i64 264, !16, i64 328, !14, i64 696, !10, i64 760, !17, 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, !16, 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, !20, i64 22440, !16, i64 22520, !14, i64 22888, !14, i64 22952, !16, i64 23016, !16, i64 23384, !20, 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", !16, 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, !17, i64 152, !17, i64 160, !17, i64 168, !17, i64 176, !17, i64 184, !17, i64 192, !17, i64 200, !13, i64 208, !17, i64 216, !17, i64 224, !20, i64 232, !13, i64 312, !17, i64 320, !17, i64 328, !17, i64 336, !13, i64 344, !17, i64 352, !20, i64 360, !20, i64 440, !20, i64 520, !20, i64 600, !10, i64 680, !13, i64 688, !20, i64 696, !20, i64 776, !10, i64 856, !14, i64 864, !10, i64 928, !13, i64 936, !20, i64 944, !14, i64 1024, !14, i64 1088, !20, i64 1152, !14, i64 1232, !14, i64 1296, !10, i64 1360, !14, i64 1368, !17, i64 1432, !17, i64 1440, !13, i64 1448, !20, i64 1456, !14, i64 1536, !14, i64 1600, !14, i64 1664, !14, i64 1728, !14, i64 1792, !14, i64 1856, !20, i64 1920, !20, i64 2000, !20, i64 2080, !20, i64 2160, !20, i64 2240, !20, i64 2320, !20, i64 2400, !20, i64 2480, !14, i64 2560, !14, i64 2624, !20, i64 2688, !14, i64 2768, !20, i64 2832, !20, i64 2912, !20, i64 2992, !20, i64 3072, !20, i64 3152, !14, i64 3232, !14, i64 3296}
!42 = !{!"_ZTSN11alglib_impl9nlpfilterE", !17, i64 0, !13, i64 8, !17, i64 16, !17, i64 24, !10, i64 32, !14, i64 40, !14, 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 = !{!17, !17, i64 0}
!50 = !{!12, !13, i64 0}
!51 = !{!12, !13, i64 8}
!52 = !{!12, !13, i64 16}
!53 = !{!12, !10, i64 2168}
!54 = !{!12, !10, i64 2169}
!55 = !{!12, !13, i64 2200}
!56 = !{!12, !13, i64 2192}
!57 = !{!12, !17, i64 2176}
!58 = !{!12, !17, i64 2184}
!59 = !{!12, !17, i64 1616}
!60 = !{!12, !17, i64 1624}
!61 = !{!12, !13, i64 62720}
!62 = !{!12, !17, i64 2160}
!63 = !{!12, !17, i64 61664}
!64 = !{!12, !17, i64 61672}
!65 = !{!12, !10, i64 24}
!66 = !{!12, !13, i64 1656}
!67 = !{!12, !17, i64 56992}
!68 = distinct !{!68, !69}
!69 = !{!"llvm.loop.mustprogress"}
!70 = !{!12, !13, i64 62712}
!71 = distinct !{!71, !69}
!72 = !{!12, !17, i64 62744}
!73 = !{!12, !17, i64 54608}
!74 = !{!12, !17, i64 54600}
!75 = !{!12, !13, i64 61656}
!76 = distinct !{!76, !69}
!77 = distinct !{!77, !69}
!78 = distinct !{!78, !69}
!79 = distinct !{!79, !69}
!80 = !{!81, !17, i64 864}
!81 = !{!"_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, !20, i64 352, !14, i64 432, !14, i64 496, !13, i64 560, !13, i64 568, !13, i64 576, !17, i64 584, !13, i64 592, !14, i64 600, !14, i64 664, !17, i64 728, !14, i64 736, !14, i64 800, !17, i64 864, !20, i64 872, !20, i64 952, !20, i64 1032, !14, i64 1112, !14, i64 1176, !43, i64 1240, !10, i64 1504, !10, i64 1505, !13, i64 1512, !13, i64 1520, !17, i64 1528, !17, i64 1536, !10, i64 1544, !82, i64 1552, !17, i64 1848, !17, i64 1856, !83, i64 1864, !83, i64 2184, !17, i64 2504, !17, i64 2512, !84, i64 2520, !84, i64 2840, !17, i64 3160, !17, i64 3168, !85, i64 3176, !85, i64 3504, !10, i64 3832, !14, i64 3840, !14, i64 3904, !20, 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, !20, i64 4824, !20, 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, !20, i64 5624}
!82 = !{!"_ZTSN11alglib_impl14optguardreportE", !10, i64 0, !10, i64 1, !13, i64 8, !17, i64 16, !10, i64 24, !10, i64 25, !10, i64 26, !13, i64 32, !17, i64 40, !10, i64 48, !13, i64 56, !13, i64 64, !14, i64 72, !20, i64 136, !20, i64 216}
!83 = !{!"_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}
!84 = !{!"_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}
!85 = !{!"_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}
!86 = distinct !{!86, !69}


; 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.708 = external hidden unnamed_addr constant [21 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.776 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL24nlcfsqp_sqpdeltaincreaseE = external hidden local_unnamed_addr global double, align 8
@.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
@_ZN11alglib_implL20nlcfsqp_inittrustradE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL22nlcfsqp_defsqpbigscaleE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL24nlcfsqp_defsqpsmallscaleE = external hidden local_unnamed_addr global double, align 8
@.str.1118 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.1119 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1120 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1121 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.1122 = external hidden unnamed_addr constant [82 x i8], align 1
@_ZN11alglib_implL19nlcfsqp_xbfgsmemlenE = external hidden local_unnamed_addr global i64, align 8
@_ZN11alglib_implL20nlcfsqp_xbfgsmaxhessE = external hidden local_unnamed_addr global double, align 8
@.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
@_ZN11alglib_implL24nlcfsqp_fstagnationlimitE = external hidden local_unnamed_addr global i64, align 8
@.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.1138 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.1139 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1140 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1141 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.1142 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.1143 = external hidden unnamed_addr constant [222 x i8], align 1
@.str.1144 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.1145 = external hidden unnamed_addr constant [113 x i8], align 1
@_ZN11alglib_implL24nlcfsqp_maxtrustraddecayE = external hidden local_unnamed_addr global double, align 8
@.str.1146 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.1147 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.1148 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.1149 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.1150 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.1151 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.1152 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.1153 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1154 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1155 = external hidden unnamed_addr constant [40 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.1158 = external hidden unnamed_addr constant [99 x i8], align 1
@_ZN11alglib_implL31nlcfsqp_sufficientdecreasesigmaE = external hidden local_unnamed_addr global double, align 8
@.str.1159 = external hidden unnamed_addr constant [76 x i8], align 1
@_ZN11alglib_implL22nlcfsqp_stagnationepsfE = external hidden local_unnamed_addr global double, align 8
@.str.1160 = external hidden unnamed_addr constant [27 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.1163 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1164 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1165 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1166 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1167 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1168 = 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.1172 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1173 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1174 = external hidden unnamed_addr constant [74 x i8], align 1
@_ZN11alglib_implL22nlcfsqp_momentumgrowthE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL25nlcfsqp_maxtrustradgrowthE = external hidden local_unnamed_addr global double, align 8
@.str.1175 = external hidden unnamed_addr constant [103 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.1180 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1181 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1182 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1183 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1184 = external hidden unnamed_addr constant [54 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(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 #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, double noundef, 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 #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19:                                               ; preds = %4
  %20 = getelementptr inbounds i8, ptr %0, i64 62960
  %21 = load ptr, ptr %20, align 8, !tbaa !43
  %22 = load i64, ptr %21, align 8, !tbaa !44
  %23 = getelementptr inbounds i8, ptr %21, i64 8
  %24 = load i64, ptr %23, align 8, !tbaa !44
  %25 = getelementptr inbounds i8, ptr %21, i64 16
  %26 = load i64, ptr %25, align 8, !tbaa !44
  %27 = getelementptr inbounds i8, ptr %21, i64 24
  %28 = load i64, ptr %27, align 8, !tbaa !44
  %29 = getelementptr inbounds i8, ptr %21, i64 32
  %30 = load i64, ptr %29, align 8, !tbaa !44
  %31 = getelementptr inbounds i8, ptr %0, i64 63024
  %32 = load ptr, ptr %31, align 8, !tbaa !43
  %33 = load i8, ptr %32, align 1, !tbaa !45, !range !46, !noundef !47
  %34 = getelementptr inbounds i8, ptr %32, i64 1
  %35 = load i8, ptr %34, align 1, !tbaa !45, !range !46, !noundef !47
  %36 = getelementptr inbounds i8, ptr %32, i64 2
  %37 = load i8, ptr %36, align 1, !tbaa !45, !range !46, !noundef !47
  %38 = getelementptr inbounds i8, ptr %32, i64 3
  %39 = load i8, ptr %38, align 1, !tbaa !45, !range !46, !noundef !47
  %40 = getelementptr inbounds i8, ptr %32, i64 4
  %41 = load i8, ptr %40, align 1, !tbaa !45, !range !46, !noundef !47
  %42 = getelementptr inbounds i8, ptr %32, i64 5
  %43 = load i8, ptr %42, align 1, !tbaa !45, !range !46, !noundef !47
  %44 = getelementptr inbounds i8, ptr %32, i64 6
  %45 = load i8, ptr %44, align 1, !tbaa !45, !range !46, !noundef !47
  %46 = getelementptr inbounds i8, ptr %32, i64 7
  %47 = load i8, ptr %46, align 1, !tbaa !45, !range !46, !noundef !47
  %48 = getelementptr inbounds i8, ptr %32, i64 8
  %49 = load i8, ptr %48, align 1, !tbaa !45, !range !46, !noundef !47
  %50 = getelementptr inbounds i8, ptr %32, i64 9
  %51 = load i8, ptr %50, align 1, !tbaa !45, !range !46, !noundef !47
  %52 = getelementptr inbounds i8, ptr %32, i64 10
  %53 = load i8, ptr %52, align 1, !tbaa !45, !range !46, !noundef !47
  %54 = getelementptr inbounds i8, ptr %32, i64 11
  %55 = load i8, ptr %54, align 1, !tbaa !45, !range !46, !noundef !47
  %56 = getelementptr inbounds i8, ptr %32, i64 12
  %57 = load i8, ptr %56, align 1, !tbaa !45, !range !46, !noundef !47
  %58 = getelementptr inbounds i8, ptr %32, i64 13
  %59 = load i8, ptr %58, align 1, !tbaa !45, !range !46, !noundef !47
  %60 = getelementptr inbounds i8, ptr %32, i64 14
  %61 = load i8, ptr %60, align 1, !tbaa !45, !range !46, !noundef !47
  %62 = getelementptr inbounds i8, ptr %0, i64 63088
  %63 = load ptr, ptr %62, align 8, !tbaa !43
  %64 = load double, ptr %63, align 8, !tbaa !48
  %65 = getelementptr inbounds i8, ptr %63, i64 8
  %66 = load double, ptr %65, align 8, !tbaa !48
  %67 = getelementptr inbounds i8, ptr %63, i64 16
  %68 = load double, ptr %67, align 8, !tbaa !48
  %69 = getelementptr inbounds i8, ptr %63, i64 24
  %70 = load double, ptr %69, align 8, !tbaa !48
  %71 = getelementptr inbounds i8, ptr %63, i64 32
  %72 = load double, ptr %71, align 8, !tbaa !48
  %73 = getelementptr inbounds i8, ptr %63, i64 40
  %74 = load double, ptr %73, align 8, !tbaa !48
  %75 = getelementptr inbounds i8, ptr %63, i64 48
  %76 = load double, ptr %75, align 8, !tbaa !48
  %77 = getelementptr inbounds i8, ptr %63, i64 56
  %78 = load double, ptr %77, align 8, !tbaa !48
  %79 = getelementptr inbounds i8, ptr %63, i64 64
  %80 = load double, ptr %79, align 8, !tbaa !48
  %81 = getelementptr inbounds i8, ptr %63, i64 72
  %82 = load double, ptr %81, align 8, !tbaa !48
  %83 = getelementptr inbounds i8, ptr %63, i64 80
  %84 = load double, ptr %83, align 8, !tbaa !48
  %85 = getelementptr inbounds i8, ptr %63, i64 88
  %86 = load double, ptr %85, align 8, !tbaa !48
  %87 = getelementptr inbounds i8, ptr %63, i64 96
  %88 = load double, ptr %87, align 8, !tbaa !48
  %89 = getelementptr inbounds i8, ptr %63, i64 104
  %90 = load double, ptr %89, align 8, !tbaa !48
  %91 = getelementptr inbounds i8, ptr %63, i64 112
  %92 = load double, ptr %91, align 8, !tbaa !48
  %93 = getelementptr inbounds i8, ptr %63, i64 120
  %94 = load double, ptr %93, align 8, !tbaa !48
  %95 = getelementptr inbounds i8, ptr %63, i64 128
  %96 = load double, ptr %95, align 8, !tbaa !48
  %97 = getelementptr inbounds i8, ptr %63, i64 136
  %98 = load double, ptr %97, align 8, !tbaa !48
  br label %99

99:                                               ; preds = %4, %19
  %.sink1086 = phi i64 [ %30, %19 ], [ 81, %4 ]
  %.sink1085 = phi i8 [ %51, %19 ], [ 1, %4 ]
  %.sink1084 = phi double [ %80, %19 ], [ -4.610000e+02, %4 ]
  %.sink1083 = phi double [ %82, %19 ], [ 9.270000e+02, %4 ]
  %.sink1082 = phi double [ %84, %19 ], [ 2.010000e+02, %4 ]
  %.sink1081 = phi double [ %86, %19 ], [ 9.220000e+02, %4 ]
  %.sink1080 = phi double [ %90, %19 ], [ 3.060000e+02, %4 ]
  %.sink1079 = phi double [ %92, %19 ], [ -1.011000e+03, %4 ]
  %.sink1078 = phi double [ %94, %19 ], [ 9.510000e+02, %4 ]
  %.sink = phi double [ %96, %19 ], [ -4.630000e+02, %4 ]
  %storemerge = phi double [ %98, %19 ], [ 8.800000e+01, %4 ]
  %.0899 = phi i64 [ %22, %19 ], [ 359, %4 ]
  %.0897 = phi i64 [ %24, %19 ], [ -58, %4 ]
  %.0895 = phi i64 [ %26, %19 ], [ -919, %4 ]
  %.0887 = phi i64 [ %28, %19 ], [ -909, %4 ]
  %.0879 = phi double [ %64, %19 ], [ -2.290000e+02, %4 ]
  %.0878 = phi double [ %66, %19 ], [ -5.360000e+02, %4 ]
  %.0871 = phi double [ %68, %19 ], [ 4.870000e+02, %4 ]
  %.0867 = phi double [ %70, %19 ], [ -1.150000e+02, %4 ]
  %.0866 = phi double [ %72, %19 ], [ 8.860000e+02, %4 ]
  %.0865 = phi double [ %74, %19 ], [ 3.460000e+02, %4 ]
  %.0862 = phi double [ %76, %19 ], [ -7.220000e+02, %4 ]
  %.0859 = phi i8 [ %33, %19 ], [ 1, %4 ]
  %.0856 = phi double [ %78, %19 ], [ -4.130000e+02, %4 ]
  %.0854 = phi i8 [ %35, %19 ], [ 0, %4 ]
  %.0852 = phi i8 [ %37, %19 ], [ 0, %4 ]
  %.0850 = phi i8 [ %39, %19 ], [ 1, %4 ]
  %.0848 = phi i8 [ %41, %19 ], [ 1, %4 ]
  %.0846 = phi i8 [ %43, %19 ], [ 0, %4 ]
  %.0840 = phi i8 [ %45, %19 ], [ 1, %4 ]
  %.0839 = phi double [ %88, %19 ], [ -1.540000e+02, %4 ]
  %.0835 = phi i8 [ %47, %19 ], [ 0, %4 ]
  %.0831 = phi i8 [ %49, %19 ], [ 1, %4 ]
  %.0827 = phi i8 [ %53, %19 ], [ 0, %4 ]
  %.0820 = phi i8 [ %55, %19 ], [ 0, %4 ]
  %.0812 = phi i8 [ %57, %19 ], [ 0, %4 ]
  %.0805 = phi i8 [ %59, %19 ], [ 0, %4 ]
  %.0 = phi i8 [ %61, %19 ], [ 0, %4 ]
  store i64 %.sink1086, ptr %5, align 8
  store i8 %.sink1085, ptr %15, align 1
  store double %.sink1084, ptr %6, align 8
  store double %.sink1083, ptr %7, align 8
  store double %.sink1082, ptr %8, align 8
  store double %.sink1081, ptr %9, align 8
  store double %.sink1080, ptr %10, align 8
  store double %.sink1079, ptr %11, align 8
  store double %.sink1078, ptr %12, align 8
  store double %.sink, ptr %13, align 8
  store double %storemerge, ptr %14, align 8, !tbaa !48
  switch i32 %17, label %100 [
    i32 0, label %155
    i32 1, label %176
    i32 2, label %455
    i32 3, label %701
    i32 4, label %794
  ]

100:                                              ; preds = %99
  %101 = load i64, ptr %0, align 8, !tbaa !49
  %102 = getelementptr inbounds i8, ptr %0, i64 8
  %103 = load i64, ptr %102, align 8, !tbaa !50
  %104 = getelementptr inbounds i8, ptr %0, i64 16
  %105 = load i64, ptr %104, align 8, !tbaa !51
  %106 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1113)
  %107 = zext i1 %106 to i8
  %108 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1114)
  %109 = xor i1 %106, true
  %110 = and i1 %108, %109
  %111 = zext i1 %110 to i8
  br i1 %110, label %112, label %119

112:                                              ; preds = %100
  %113 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1115)
  %114 = zext i1 %113 to i8
  %115 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1116)
  %116 = zext i1 %115 to i8
  %117 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1117)
  %118 = zext i1 %117 to i8
  br label %119

119:                                              ; preds = %100, %112
  %120 = phi i8 [ %116, %112 ], [ 0, %100 ]
  %121 = phi i8 [ %114, %112 ], [ 0, %100 ]
  %122 = phi i8 [ %118, %112 ], [ 0, %100 ]
  %123 = getelementptr inbounds i8, ptr %0, i64 2168
  store i8 0, ptr %123, align 8, !tbaa !52
  %124 = getelementptr inbounds i8, ptr %0, i64 2169
  store i8 0, ptr %124, align 1, !tbaa !53
  %125 = getelementptr inbounds i8, ptr %0, i64 62776
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %125, ptr noundef %3)
  %126 = getelementptr inbounds i8, ptr %0, i64 62800
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %126, ptr noundef %3)
  %127 = getelementptr inbounds i8, ptr %0, i64 62824
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %127, ptr noundef %3)
  %128 = getelementptr inbounds i8, ptr %0, i64 62848
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %128, ptr noundef %3)
  %129 = getelementptr inbounds i8, ptr %0, i64 62872
  tail call void @_ZN11alglib_impl10stimerinitEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %129, ptr noundef %3)
  tail call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %125, ptr noundef %3)
  %130 = getelementptr inbounds i8, ptr %0, i64 2192
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %130, i8 0, i64 16, i1 false)
  %131 = load double, ptr @_ZN11alglib_implL20nlcfsqp_inittrustradE, align 8, !tbaa !48
  %132 = getelementptr inbounds i8, ptr %0, i64 2176
  store double %131, ptr %132, align 8, !tbaa !54
  %133 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !48
  %134 = getelementptr inbounds i8, ptr %0, i64 2184
  store double %133, ptr %134, align 8, !tbaa !55
  %135 = getelementptr inbounds i8, ptr %0, i64 61816
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %101, double noundef 0.000000e+00, ptr noundef nonnull %135, ptr noundef %3)
  %136 = getelementptr inbounds i8, ptr %0, i64 61880
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %103, double noundef 0.000000e+00, ptr noundef nonnull %136, ptr noundef %3)
  %137 = getelementptr inbounds i8, ptr %0, i64 61944
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %105, double noundef 0.000000e+00, ptr noundef nonnull %137, ptr noundef %3)
  %138 = add nsw i64 %105, 1
  %139 = getelementptr inbounds i8, ptr %0, i64 1488
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %138, double noundef 1.000000e+00, ptr noundef nonnull %139, ptr noundef %3)
  %140 = getelementptr inbounds i8, ptr %0, i64 1552
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %138, double noundef 1.000000e+00, ptr noundef nonnull %140, ptr noundef %3)
  %141 = load double, ptr @_ZN11alglib_implL22nlcfsqp_defsqpbigscaleE, align 8, !tbaa !48
  %142 = getelementptr inbounds i8, ptr %0, i64 1616
  store double %141, ptr %142, align 8, !tbaa !56
  %143 = load double, ptr @_ZN11alglib_implL24nlcfsqp_defsqpsmallscaleE, align 8, !tbaa !48
  %144 = getelementptr inbounds i8, ptr %0, i64 1624
  store double %143, ptr %144, align 8, !tbaa !57
  %145 = getelementptr inbounds i8, ptr %0, i64 1232
  %146 = getelementptr inbounds i8, ptr %0, i64 1360
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %105, ptr noundef nonnull %145, ptr noundef nonnull %146, ptr noundef %3)
  %147 = getelementptr inbounds i8, ptr %0, i64 1296
  %148 = getelementptr inbounds i8, ptr %0, i64 1424
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %105, ptr noundef nonnull %147, ptr noundef nonnull %148, ptr noundef %3)
  %149 = getelementptr inbounds i8, ptr %0, i64 2208
  tail call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %101, i64 noundef %138, ptr noundef nonnull %149, ptr noundef %3)
  %150 = getelementptr inbounds i8, ptr %0, i64 60256
  tail call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %101, i64 noundef %138, ptr noundef nonnull %150, ptr noundef %3)
  %151 = getelementptr inbounds i8, ptr %0, i64 60856
  tail call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %101, i64 noundef %138, ptr noundef nonnull %151, ptr noundef %3)
  %152 = getelementptr inbounds i8, ptr %0, i64 2808
  %153 = getelementptr inbounds i8, ptr %0, i64 2232
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %101, ptr noundef nonnull %152, ptr noundef nonnull %153, ptr noundef %3)
  tail call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %153, ptr noundef %3)
  store i8 1, ptr %123, align 8, !tbaa !52
  br i1 %110, label %154, label %915

154:                                              ; preds = %119
  tail call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %129, ptr noundef %3)
  br label %915

155:                                              ; preds = %99
  %156 = trunc nuw i8 %.0854 to i1
  br i1 %156, label %157, label %159

157:                                              ; preds = %155
  %158 = getelementptr inbounds i8, ptr %0, i64 62872
  tail call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %158, ptr noundef %3)
  br label %159

159:                                              ; preds = %157, %155
  %160 = getelementptr inbounds i8, ptr %0, i64 2168
  store i8 0, ptr %160, align 8, !tbaa !52
  %161 = getelementptr inbounds i8, ptr %0, i64 2208
  %162 = tail call noundef zeroext i1 @_ZN11alglib_implL22nlcfsqp_sqpretrievefijEPKNS_12minfsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %161, ptr noundef %3)
  br i1 %162, label %165, label %163

163:                                              ; preds = %159
  %164 = getelementptr inbounds i8, ptr %0, i64 62720
  store i64 -8, ptr %164, align 8, !tbaa !58
  br label %1017

165:                                              ; preds = %159
  %166 = getelementptr inbounds i8, ptr %0, i64 2232
  tail call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %166, ptr noundef %3)
  %167 = getelementptr inbounds i8, ptr %0, i64 2352
  %168 = load ptr, ptr %167, align 8, !tbaa !43
  %169 = load double, ptr %168, align 8, !tbaa !48
  %170 = getelementptr inbounds i8, ptr %0, i64 1544
  %171 = load ptr, ptr %170, align 8, !tbaa !43
  %172 = load double, ptr %171, align 8, !tbaa !48
  %173 = fmul double %169, %172
  %174 = getelementptr inbounds i8, ptr %0, i64 2160
  store double %173, ptr %174, align 8, !tbaa !59
  %175 = getelementptr inbounds i8, ptr %0, i64 2169
  store i8 1, ptr %175, align 1, !tbaa !53
  br label %915

176:                                              ; preds = %99
  %177 = getelementptr inbounds i8, ptr %0, i64 2169
  store i8 0, ptr %177, align 1, !tbaa !53
  %178 = getelementptr inbounds i8, ptr %0, i64 96
  %179 = getelementptr inbounds i8, ptr %0, i64 592
  %180 = getelementptr inbounds i8, ptr %0, i64 656
  %181 = getelementptr inbounds i8, ptr %0, i64 784
  %182 = getelementptr inbounds i8, ptr %0, i64 2208
  %183 = getelementptr inbounds i8, ptr %0, i64 2232
  %184 = getelementptr inbounds i8, ptr %0, i64 62744
  %185 = getelementptr inbounds i8, ptr %0, i64 62752
  tail call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef nonnull %178, ptr noundef nonnull %179, ptr noundef nonnull %180, ptr noundef nonnull %181, i64 noundef %.0897, ptr noundef nonnull %183, ptr noundef nonnull %184, ptr noundef nonnull %185, ptr noundef %3)
  %186 = getelementptr inbounds i8, ptr %0, i64 2296
  %187 = getelementptr inbounds i8, ptr %0, i64 1488
  %188 = getelementptr inbounds i8, ptr %0, i64 1232
  %189 = getelementptr inbounds i8, ptr %0, i64 1296
  %190 = getelementptr inbounds i8, ptr %0, i64 62760
  %191 = getelementptr inbounds i8, ptr %0, i64 62768
  tail call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %188, ptr noundef nonnull %189, i64 noundef %.0895, ptr noundef nonnull %190, ptr noundef nonnull %191, ptr noundef %3)
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %182, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %3)
  %192 = load double, ptr %7, align 8, !tbaa !48
  %193 = fadd double %192, 1.000000e+00
  %194 = fmul double %193, 1.000000e+01
  %195 = getelementptr inbounds i8, ptr %0, i64 61648
  call void @_ZN11alglib_impl8nlpfinitEdPNS_9nlpfilterEPNS_8ae_stateE(double noundef %194, ptr noundef nonnull %195, ptr noundef %3)
  %196 = getelementptr inbounds i8, ptr %0, i64 61664
  store <2 x double> <double 1.000000e-03, double 0x3FEFF7CED916872B>, ptr %196, align 8, !tbaa !48
  %197 = trunc nuw i8 %.0854 to i1
  br i1 %197, label %198, label %202

198:                                              ; preds = %176
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.612)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1118)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  %199 = trunc i64 %.0899 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.708, i32 noundef %199)
  %200 = trunc i64 %.0897 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1119, i32 noundef %200)
  %201 = trunc i64 %.0895 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1120, i32 noundef %201)
  br label %202

202:                                              ; preds = %198, %176
  %203 = trunc nuw i8 %.0852 to i1
  br i1 %203, label %204, label %208

204:                                              ; preds = %202
  %205 = trunc i64 %.0899 to i32
  %206 = trunc i64 %.0897 to i32
  %207 = trunc i64 %.0895 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1121, i32 noundef %205, i32 noundef %206, i32 noundef %207)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1122)
  br label %208

208:                                              ; preds = %204, %202
  %209 = getelementptr inbounds i8, ptr %0, i64 24
  %210 = load i8, ptr %209, align 8, !tbaa !60, !range !46, !noundef !47
  %211 = trunc nuw i8 %210 to i1
  %212 = getelementptr inbounds i8, ptr %0, i64 56768
  %213 = getelementptr inbounds i8, ptr %0, i64 1632
  br i1 %211, label %214, label %223

214:                                              ; preds = %208
  %215 = getelementptr inbounds i8, ptr %0, i64 1656
  %216 = load i64, ptr %215, align 8, !tbaa !61
  %217 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !48
  %218 = fmul double %217, 1.000000e-01
  %219 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %213, ptr noundef %3)
  %220 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %221 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %219, double noundef %220, ptr noundef %3)
  %222 = fmul double %218, %221
  call void @_ZN11alglib_impl15hessianinitbfgsEPNS_12xbfgshessianElldPNS_8ae_stateE(ptr noundef nonnull %212, i64 noundef %.0899, i64 noundef %216, double noundef %222, ptr noundef %3)
  br label %234

223:                                              ; preds = %208
  %224 = load i64, ptr @_ZN11alglib_implL19nlcfsqp_xbfgsmemlenE, align 8, !tbaa !44
  %225 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %.0899, i64 noundef %224, ptr noundef %3)
  %226 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !48
  %227 = fmul double %226, 1.000000e-01
  %228 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %213, ptr noundef %3)
  %229 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %230 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %228, double noundef %229, ptr noundef %3)
  %231 = fmul double %227, %230
  %232 = load double, ptr @_ZN11alglib_implL20nlcfsqp_xbfgsmaxhessE, align 8, !tbaa !48
  call void @_ZN11alglib_impl21hessianinitlowranksr1EPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef nonnull %212, i64 noundef %.0899, i64 noundef %225, double noundef %231, double noundef %232, ptr noundef %3)
  %233 = getelementptr inbounds i8, ptr %0, i64 56992
  store double 1.000000e-04, ptr %233, align 8, !tbaa !62
  br label %234

234:                                              ; preds = %223, %214
  %235 = getelementptr inbounds i8, ptr %0, i64 62008
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %235, ptr noundef %3)
  %.not.not9101022 = icmp sgt i64 %.0899, 0
  br i1 %.not.not9101022, label %.lr.ph1025, label %._crit_edge1026

.lr.ph1025:                                       ; preds = %234
  %236 = getelementptr inbounds i8, ptr %0, i64 62064
  br label %237

237:                                              ; preds = %.lr.ph1025, %237
  %.18881023 = phi i64 [ 0, %.lr.ph1025 ], [ %241, %237 ]
  %238 = call noundef double @_ZN11alglib_implL23nlcfsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %183, i64 noundef %.18881023, double noundef 1.000000e+00, ptr noundef %3)
  %239 = load ptr, ptr %236, align 8, !tbaa !43
  %240 = getelementptr inbounds double, ptr %239, i64 %.18881023
  store double %238, ptr %240, align 8, !tbaa !48
  %241 = add nuw nsw i64 %.18881023, 1
  %exitcond1075.not = icmp eq i64 %241, %.0899
  br i1 %exitcond1075.not, label %._crit_edge1026, label %237, !llvm.loop !63

._crit_edge1026:                                  ; preds = %237, %234
  %.1888.lcssa = phi i64 [ 0, %234 ], [ %.0899, %237 ]
  %242 = getelementptr inbounds i8, ptr %0, i64 2936
  call void @_ZN11alglib_implL23nlcfsqp_initqpsubsolverEPKNS_12minfsqpstateEPNS_16minfsqpsubsolverEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %242, ptr noundef %3)
  br label %.preheader

.preheader:                                       ; preds = %._crit_edge1026, %.thread926, %735, %862
  %.pre-phi = phi i1 [ %197, %._crit_edge1026 ], [ %456, %.thread926 ], [ %733, %735 ], [ %851, %862 ]
  %.2889.ph = phi i64 [ %.1888.lcssa, %._crit_edge1026 ], [ %.0887, %.thread926 ], [ %.15, %735 ], [ %.16.lcssa, %862 ]
  %.1868.ph = phi double [ %.0867, %._crit_edge1026 ], [ %.0867, %.thread926 ], [ %.0867, %735 ], [ %.2869.lcssa, %862 ]
  %.1863.ph = phi double [ %.0862, %._crit_edge1026 ], [ %.0862, %.thread926 ], [ %.0862, %735 ], [ %810, %862 ]
  %.1860.ph = phi i8 [ %.0859, %._crit_edge1026 ], [ %.0859, %.thread926 ], [ %.0859, %735 ], [ 0, %862 ]
  %.1857.ph = phi double [ 1.000000e+50, %._crit_edge1026 ], [ %.0856, %.thread926 ], [ %.0856, %735 ], [ %.0856, %862 ]
  %.1836.ph = phi i8 [ 0, %._crit_edge1026 ], [ 1, %.thread926 ], [ %.0835, %735 ], [ %.0835, %862 ]
  %.1832.ph = phi i8 [ 0, %._crit_edge1026 ], [ 1, %.thread926 ], [ %.0831, %735 ], [ %.0831, %862 ]
  %.1828.ph = phi i8 [ 0, %._crit_edge1026 ], [ %.0827, %.thread926 ], [ %spec.select916, %735 ], [ %.0827, %862 ]
  %.1821.ph = phi i8 [ 0, %._crit_edge1026 ], [ %.0820, %.thread926 ], [ %.5825, %735 ], [ %.0820, %862 ]
  %243 = getelementptr inbounds i8, ptr %0, i64 2208
  %244 = getelementptr inbounds i8, ptr %0, i64 1632
  %245 = getelementptr inbounds i8, ptr %0, i64 2176
  %246 = getelementptr inbounds i8, ptr %0, i64 62712
  %247 = getelementptr inbounds i8, ptr %0, i64 2200
  %248 = trunc nuw i8 %.0846 to i1
  %249 = getelementptr inbounds i8, ptr %0, i64 2232
  %250 = getelementptr inbounds i8, ptr %0, i64 32
  %251 = getelementptr inbounds i8, ptr %0, i64 1488
  %252 = add nsw i64 %.0895, 1
  %253 = getelementptr inbounds i8, ptr %0, i64 2296
  %.not912.not1028 = icmp sgt i64 %.0895, 0
  %254 = getelementptr inbounds i8, ptr %0, i64 1160
  %255 = getelementptr inbounds i8, ptr %0, i64 1416
  %256 = getelementptr inbounds i8, ptr %0, i64 2352
  %257 = getelementptr inbounds i8, ptr %0, i64 1224
  %258 = getelementptr inbounds i8, ptr %0, i64 1480
  %259 = getelementptr inbounds i8, ptr %0, i64 62744
  %260 = trunc nuw i8 %.0852 to i1
  %261 = getelementptr inbounds i8, ptr %0, i64 1544
  %262 = getelementptr inbounds i8, ptr %0, i64 62776
  %263 = getelementptr inbounds i8, ptr %0, i64 2872
  %264 = getelementptr inbounds i8, ptr %0, i64 61520
  %265 = getelementptr inbounds i8, ptr %0, i64 2936
  %266 = getelementptr inbounds i8, ptr %0, i64 56768
  %267 = getelementptr inbounds i8, ptr %0, i64 60128
  %268 = getelementptr inbounds i8, ptr %0, i64 60192
  %269 = add nsw i64 %.0895, %.0897
  %270 = getelementptr inbounds i8, ptr %0, i64 61648
  %271 = getelementptr inbounds i8, ptr %0, i64 54608
  %272 = getelementptr inbounds i8, ptr %0, i64 54600
  %273 = getelementptr inbounds i8, ptr %0, i64 61656
  br label %.outer

.outer:                                           ; preds = %.outer.backedge, %.preheader
  %.2889.ph947 = phi i64 [ %.2889.ph, %.preheader ], [ %.7894, %.outer.backedge ]
  %.1872.ph = phi double [ %.0871, %.preheader ], [ %.5876, %.outer.backedge ]
  %.1857.ph948 = phi double [ %.1857.ph, %.preheader ], [ 1.000000e+50, %.outer.backedge ]
  %.1828.ph949 = phi i8 [ %.1828.ph, %.preheader ], [ 1, %.outer.backedge ]
  %.1821.ph950 = phi i8 [ %.1821.ph, %.preheader ], [ 1, %.outer.backedge ]
  %274 = trunc nuw i8 %.1828.ph949 to i1
  br label %275

275:                                              ; preds = %.backedge, %.outer
  %.2889 = phi i64 [ %.2889.ph947, %.outer ], [ %.7894, %.backedge ]
  %.1872 = phi double [ %.1872.ph, %.outer ], [ %.5876, %.backedge ]
  %.1857 = phi double [ %.1857.ph948, %.outer ], [ 1.000000e+50, %.backedge ]
  call void @_ZN11alglib_implL38nlcfsqp_autoscalevarstargetconstraintsEPNS_12minfsqpstateEPNS_11varsfuncjacEbbPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %243, i1 noundef zeroext false, i1 noundef zeroext %.pre-phi, ptr noundef %3)
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %243, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %3)
  %276 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %244, ptr noundef %3)
  %277 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.1857, double noundef %276)
  br i1 %277, label %278, label %282

278:                                              ; preds = %275
  %279 = getelementptr inbounds i8, ptr %0, i64 62720
  store i64 1, ptr %279, align 8, !tbaa !58
  %brmerge = select i1 %.pre-phi, i1 true, i1 %260
  br i1 %brmerge, label %280, label %869

280:                                              ; preds = %278
  %281 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %244, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1123, double noundef %281)
  br label %869

282:                                              ; preds = %275
  %283 = load double, ptr %245, align 8, !tbaa !54
  %284 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %244, ptr noundef %3)
  %285 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %283, double noundef %284)
  br i1 %285, label %286, label %290

286:                                              ; preds = %282
  %287 = getelementptr inbounds i8, ptr %0, i64 62720
  store i64 2, ptr %287, align 8, !tbaa !58
  %brmerge1136 = select i1 %.pre-phi, i1 true, i1 %260
  br i1 %brmerge1136, label %288, label %869

288:                                              ; preds = %286
  %289 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %244, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1124, double noundef %289)
  br label %869

290:                                              ; preds = %282
  %291 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %292 = load double, ptr %245, align 8, !tbaa !54
  %293 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %292, double noundef %291)
  br i1 %293, label %294, label %297

294:                                              ; preds = %290
  %295 = getelementptr inbounds i8, ptr %0, i64 62720
  store i64 7, ptr %295, align 8, !tbaa !58
  %brmerge1137 = select i1 %.pre-phi, i1 true, i1 %260
  br i1 %brmerge1137, label %296, label %869

296:                                              ; preds = %294
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1125, double noundef %291)
  br label %869

297:                                              ; preds = %290
  %298 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %244, ptr noundef %3)
  %299 = icmp sgt i64 %298, 0
  br i1 %299, label %300, label %308

300:                                              ; preds = %297
  %301 = load i64, ptr %246, align 8, !tbaa !65
  %302 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %244, ptr noundef %3)
  %.not = icmp slt i64 %301, %302
  br i1 %.not, label %308, label %303

303:                                              ; preds = %300
  %304 = getelementptr inbounds i8, ptr %0, i64 62720
  store i64 5, ptr %304, align 8, !tbaa !58
  %brmerge1138 = select i1 %.pre-phi, i1 true, i1 %260
  br i1 %brmerge1138, label %305, label %869

305:                                              ; preds = %303
  %306 = load i64, ptr %246, align 8, !tbaa !65
  %307 = trunc i64 %306 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1126, i32 noundef %307)
  br label %869

308:                                              ; preds = %300, %297
  %309 = load i64, ptr %247, align 8, !tbaa !66
  %310 = load i64, ptr @_ZN11alglib_implL24nlcfsqp_fstagnationlimitE, align 8, !tbaa !44
  %.not911 = icmp slt i64 %309, %310
  br i1 %.not911, label %315, label %311

311:                                              ; preds = %308
  %312 = getelementptr inbounds i8, ptr %0, i64 62720
  store i64 7, ptr %312, align 8, !tbaa !58
  %brmerge1139 = select i1 %.pre-phi, i1 true, i1 %260
  br i1 %brmerge1139, label %313, label %869

313:                                              ; preds = %311
  %314 = trunc i64 %309 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1127, i32 noundef %314)
  br label %869

315:                                              ; preds = %308
  br i1 %.pre-phi, label %316, label %355

316:                                              ; preds = %315
  %317 = load i64, ptr %246, align 8, !tbaa !65
  %318 = trunc i64 %317 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1128, i32 noundef %318)
  br i1 %248, label %319, label %320

319:                                              ; preds = %316
  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 %249, i64 noundef %.0899, ptr noundef nonnull %250, i1 noundef zeroext true, ptr noundef nonnull %250, 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 %249, i64 noundef 0, i64 noundef %.0899, 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 %251, i64 noundef 0, i64 noundef %252, 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 %253, i64 noundef 0, i64 noundef %252, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %320

320:                                              ; preds = %319, %316
  br i1 %.not912.not1028, label %.lr.ph1032, label %._crit_edge1033

.lr.ph1032:                                       ; preds = %320, %350
  %.28731030 = phi double [ %.4875, %350 ], [ 0.000000e+00, %320 ]
  %.38901029 = phi i64 [ %351, %350 ], [ 0, %320 ]
  %321 = load ptr, ptr %254, align 8, !tbaa !43
  %322 = getelementptr inbounds i8, ptr %321, i64 %.38901029
  %323 = load i8, ptr %322, align 1, !tbaa !45, !range !46, !noundef !47
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %335

325:                                              ; preds = %.lr.ph1032
  %326 = load ptr, ptr %255, align 8, !tbaa !43
  %327 = getelementptr inbounds double, ptr %326, i64 %.38901029
  %328 = load double, ptr %327, align 8, !tbaa !48
  %329 = load ptr, ptr %256, align 8, !tbaa !43
  %330 = getelementptr inbounds double, ptr %329, i64 %.38901029
  %331 = getelementptr inbounds i8, ptr %330, i64 8
  %332 = load double, ptr %331, align 8, !tbaa !48
  %333 = fsub double %328, %332
  %334 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.28731030, double noundef %333, ptr noundef %3)
  br label %335

335:                                              ; preds = %325, %.lr.ph1032
  %.3874 = phi double [ %334, %325 ], [ %.28731030, %.lr.ph1032 ]
  %336 = load ptr, ptr %257, align 8, !tbaa !43
  %337 = getelementptr inbounds i8, ptr %336, i64 %.38901029
  %338 = load i8, ptr %337, align 1, !tbaa !45, !range !46, !noundef !47
  %339 = trunc nuw i8 %338 to i1
  br i1 %339, label %340, label %350

340:                                              ; preds = %335
  %341 = load ptr, ptr %256, align 8, !tbaa !43
  %342 = getelementptr inbounds double, ptr %341, i64 %.38901029
  %343 = getelementptr inbounds i8, ptr %342, i64 8
  %344 = load double, ptr %343, align 8, !tbaa !48
  %345 = load ptr, ptr %258, align 8, !tbaa !43
  %346 = getelementptr inbounds double, ptr %345, i64 %.38901029
  %347 = load double, ptr %346, align 8, !tbaa !48
  %348 = fsub double %344, %347
  %349 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.3874, double noundef %348, ptr noundef %3)
  br label %350

350:                                              ; preds = %335, %340
  %.4875 = phi double [ %349, %340 ], [ %.3874, %335 ]
  %351 = add nuw nsw i64 %.38901029, 1
  %exitcond1076.not = icmp eq i64 %351, %.0895
  br i1 %exitcond1076.not, label %._crit_edge1033, label %.lr.ph1032, !llvm.loop !67

._crit_edge1033:                                  ; preds = %350, %320
  %.3890.lcssa = phi i64 [ 0, %320 ], [ %.0895, %350 ]
  %.2873.lcssa = phi double [ 0.000000e+00, %320 ], [ %.4875, %350 ]
  %352 = load double, ptr %245, align 8, !tbaa !54
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1134, double noundef %352)
  %353 = load double, ptr %259, align 8, !tbaa !68
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1135, double noundef %353)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1136, double noundef %.2873.lcssa)
  %354 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %249, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1137, double noundef %354)
  br label %355

355:                                              ; preds = %._crit_edge1033, %315
  %.4891 = phi i64 [ %.3890.lcssa, %._crit_edge1033 ], [ %.2889, %315 ]
  %.5876 = phi double [ %.2873.lcssa, %._crit_edge1033 ], [ %.1872, %315 ]
  br i1 %260, label %356, label %374

356:                                              ; preds = %355
  %357 = load i64, ptr %246, align 8, !tbaa !65
  %358 = icmp sgt i64 %357, 10
  %359 = icmp sgt i64 %357, 100
  %360 = srem i64 %357, 5
  %361 = icmp ne i64 %360, 0
  %or.cond.not946 = or i1 %359, %361
  %spec.select917.not943 = and i1 %358, %or.cond.not946
  %362 = srem i64 %357, 50
  %363 = icmp ne i64 %362, 0
  %narrow.not = and i1 %363, %spec.select917.not943
  br i1 %narrow.not, label %374, label %364

364:                                              ; preds = %356
  %365 = trunc i64 %357 to i32
  %366 = load double, ptr %245, align 8, !tbaa !54
  %367 = load double, ptr %6, align 8, !tbaa !48
  %368 = load ptr, ptr %261, align 8, !tbaa !43
  %369 = load double, ptr %368, align 8, !tbaa !48
  %370 = fmul double %367, %369
  %371 = load double, ptr %7, align 8, !tbaa !48
  %372 = call noundef double @_ZN11alglib_impl18stimergetmsrunningEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %262, ptr noundef %3)
  %373 = fmul double %372, 1.000000e-03
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1138, i32 noundef %365, double noundef %366, double noundef %370, double noundef %371, double noundef %373)
  br label %374

374:                                              ; preds = %356, %364, %355
  %.7894 = phi i64 [ 1, %364 ], [ 0, %356 ], [ %.4891, %355 ]
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %249, ptr noundef nonnull %263, ptr noundef %3)
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, double noundef 0.000000e+00, ptr noundef nonnull %264, ptr noundef %3)
  br i1 %.pre-phi, label %375, label %376

375:                                              ; preds = %374
  br i1 %274, label %432, label %377

376:                                              ; preds = %374
  br i1 %274, label %.thread1091, label %.thread1088

377:                                              ; preds = %375
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1140)
  %378 = call noundef zeroext i1 @_ZN11alglib_implL28nlcfsqp_qpsubproblemsolvesqpEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %265, ptr noundef nonnull %243, ptr noundef nonnull %266, ptr noundef nonnull %264, ptr noundef nonnull %267, ptr noundef nonnull %268, i1 noundef zeroext %.pre-phi, ptr noundef nonnull %15, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %12, ptr noundef %3)
  br i1 %378, label %383, label %.backedge.sink.split

.thread1088:                                      ; preds = %376
  %379 = call noundef zeroext i1 @_ZN11alglib_implL28nlcfsqp_qpsubproblemsolvesqpEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %265, ptr noundef nonnull %243, ptr noundef nonnull %266, ptr noundef nonnull %264, ptr noundef nonnull %267, ptr noundef nonnull %268, i1 noundef zeroext %.pre-phi, ptr noundef nonnull %15, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %12, ptr noundef %3)
  br i1 %379, label %.thread1090, label %.backedge

.backedge.sink.split:                             ; preds = %432, %377
  %.sink1144 = load i64, ptr %5, align 8, !tbaa !44
  %380 = trunc i64 %.sink1144 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1141, i32 noundef %380)
  br label %.backedge

.backedge:                                        ; preds = %.backedge.sink.split, %.thread1088, %.thread1091
  %381 = load double, ptr %245, align 8, !tbaa !54
  %382 = fmul double %381, 1.000000e-01
  store double %382, ptr %245, align 8, !tbaa !54
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %246, ptr noundef %3)
  br label %275

383:                                              ; preds = %377
  %384 = load i64, ptr %5, align 8, !tbaa !44
  %385 = trunc i64 %384 to i32
  %386 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %267, ptr noundef %3)
  %387 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %269, ptr noundef nonnull %268, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1142, i32 noundef %385, double noundef %386, double noundef %387)
  br label %.thread1090

.thread1090:                                      ; preds = %.thread1088, %383
  %388 = load i8, ptr %15, align 1, !tbaa !45, !range !46, !noundef !47
  %389 = trunc nuw i8 %388 to i1
  br i1 %389, label %390, label %400

390:                                              ; preds = %.thread1090
  %391 = load double, ptr %6, align 8, !tbaa !48
  %392 = load double, ptr %7, align 8, !tbaa !48
  call void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef nonnull %270, double noundef %391, double noundef %392, ptr noundef %3)
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %246, ptr noundef %3)
  br i1 %.pre-phi, label %393, label %.outer.backedge

393:                                              ; preds = %390
  %394 = load double, ptr %14, align 8, !tbaa !48
  %395 = load double, ptr %271, align 8, !tbaa !69
  %396 = load double, ptr %272, align 8, !tbaa !70
  %397 = fdiv double %395, %396
  %398 = load i64, ptr %273, align 8, !tbaa !71
  %399 = trunc i64 %398 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1143, double noundef %394, double noundef %397, i32 noundef %399)
  br label %.outer.backedge

.outer.backedge:                                  ; preds = %393, %390
  br label %.outer

400:                                              ; preds = %.thread1090
  %401 = getelementptr inbounds i8, ptr %0, i64 61816
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %267, ptr noundef nonnull %401, ptr noundef %3)
  call void @_ZN11alglib_impl10rmergedivvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %250, ptr noundef nonnull %401, ptr noundef %3)
  %402 = load ptr, ptr %261, align 8, !tbaa !43
  %403 = load double, ptr %402, align 8, !tbaa !48
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, double noundef %403, ptr noundef nonnull %401, ptr noundef %3)
  %404 = getelementptr inbounds i8, ptr %0, i64 61880
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0897, ptr noundef nonnull %268, ptr noundef nonnull %404, ptr noundef %3)
  %405 = getelementptr inbounds i8, ptr %0, i64 720
  call void @_ZN11alglib_impl10rmergedivvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0897, ptr noundef nonnull %405, ptr noundef nonnull %404, ptr noundef %3)
  %406 = load ptr, ptr %261, align 8, !tbaa !43
  %407 = load double, ptr %406, align 8, !tbaa !48
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0897, double noundef %407, ptr noundef nonnull %404, ptr noundef %3)
  %408 = getelementptr inbounds i8, ptr %0, i64 61944
  call void @_ZN11alglib_impl7rcopyvxElPKNS_9ae_vectorElPS0_lPNS_8ae_stateE(i64 noundef %.0895, ptr noundef nonnull %268, i64 noundef %.0897, ptr noundef nonnull %408, i64 noundef 0, ptr noundef %3)
  br i1 %.not912.not1028, label %.lr.ph1039, label %.loopexit

.lr.ph1039:                                       ; preds = %400
  %409 = getelementptr inbounds i8, ptr %0, i64 62000
  %xtraiter = and i64 %.0895, 1
  %410 = icmp eq i64 %.0895, 1
  br i1 %410, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph1039.new

.lr.ph1039.new:                                   ; preds = %.lr.ph1039
  %unroll_iter = and i64 %.0895, 9223372036854775806
  br label %411

411:                                              ; preds = %411, %.lr.ph1039.new
  %.81037 = phi i64 [ 0, %.lr.ph1039.new ], [ %426, %411 ]
  %niter = phi i64 [ 0, %.lr.ph1039.new ], [ %niter.next.1, %411 ]
  %412 = load ptr, ptr %409, align 8, !tbaa !43
  %413 = getelementptr inbounds double, ptr %412, i64 %.81037
  %414 = load double, ptr %413, align 8, !tbaa !48
  %415 = load ptr, ptr %261, align 8, !tbaa !43
  %416 = or disjoint i64 %.81037, 1
  %417 = getelementptr inbounds double, ptr %415, i64 %416
  %418 = load double, ptr %417, align 8, !tbaa !48
  %419 = fdiv double %414, %418
  %420 = load double, ptr %415, align 8, !tbaa !48
  %421 = fmul double %419, %420
  store double %421, ptr %413, align 8, !tbaa !48
  %422 = load ptr, ptr %409, align 8, !tbaa !43
  %423 = getelementptr inbounds double, ptr %422, i64 %416
  %424 = load double, ptr %423, align 8, !tbaa !48
  %425 = load ptr, ptr %261, align 8, !tbaa !43
  %426 = add nuw nsw i64 %.81037, 2
  %427 = getelementptr inbounds double, ptr %425, i64 %426
  %428 = load double, ptr %427, align 8, !tbaa !48
  %429 = fdiv double %424, %428
  %430 = load double, ptr %425, align 8, !tbaa !48
  %431 = fmul double %429, %430
  store double %431, ptr %423, align 8, !tbaa !48
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.loopexit.loopexit.unr-lcssa, label %411, !llvm.loop !72

432:                                              ; preds = %375
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1139)
  %433 = call noundef zeroext i1 @_ZN11alglib_implL32nlcfsqp_qpsubproblemsolveelasticEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %265, ptr noundef nonnull %243, ptr noundef nonnull %266, ptr noundef nonnull %264, ptr noundef nonnull %267, ptr noundef nonnull %268, i1 noundef zeroext %.pre-phi, ptr noundef nonnull %15, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %12, ptr noundef %3)
  br i1 %433, label %435, label %.backedge.sink.split

.thread1091:                                      ; preds = %376
  %434 = call noundef zeroext i1 @_ZN11alglib_implL32nlcfsqp_qpsubproblemsolveelasticEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %265, ptr noundef nonnull %243, ptr noundef nonnull %266, ptr noundef nonnull %264, ptr noundef nonnull %267, ptr noundef nonnull %268, i1 noundef zeroext %.pre-phi, ptr noundef nonnull %15, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %12, ptr noundef %3)
  br i1 %434, label %.loopexit, label %.backedge

435:                                              ; preds = %432
  %436 = load i64, ptr %5, align 8, !tbaa !44
  %437 = trunc i64 %436 to i32
  %438 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %267, ptr noundef %3)
  %439 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %269, ptr noundef nonnull %268, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1144, i32 noundef %437, double noundef %438, double noundef %439)
  br label %.loopexit

.loopexit.loopexit.unr-lcssa:                     ; preds = %411, %.lr.ph1039
  %.81037.unr = phi i64 [ 0, %.lr.ph1039 ], [ %426, %411 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit, label %.loopexit.loopexit.epilog-lcssa

.loopexit.loopexit.epilog-lcssa:                  ; preds = %.loopexit.loopexit.unr-lcssa
  %440 = load ptr, ptr %409, align 8, !tbaa !43
  %441 = getelementptr inbounds double, ptr %440, i64 %.81037.unr
  %442 = load double, ptr %441, align 8, !tbaa !48
  %443 = load ptr, ptr %261, align 8, !tbaa !43
  %444 = getelementptr double, ptr %443, i64 %.81037.unr
  %445 = getelementptr i8, ptr %444, i64 8
  %446 = load double, ptr %445, align 8, !tbaa !48
  %447 = fdiv double %442, %446
  %448 = load double, ptr %443, align 8, !tbaa !48
  %449 = fmul double %447, %448
  store double %449, ptr %441, align 8, !tbaa !48
  br label %.loopexit

.loopexit:                                        ; preds = %.thread1091, %.loopexit.loopexit.epilog-lcssa, %.loopexit.loopexit.unr-lcssa, %400, %435
  %.9 = phi i64 [ %.7894, %435 ], [ 0, %400 ], [ %.0895, %.loopexit.loopexit.unr-lcssa ], [ %.0895, %.loopexit.loopexit.epilog-lcssa ], [ %.7894, %.thread1091 ]
  %450 = getelementptr inbounds i8, ptr %0, i64 61456
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %264, ptr noundef nonnull %450, ptr noundef %3)
  %451 = getelementptr inbounds i8, ptr %0, i64 60280
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %249, ptr noundef nonnull %451, ptr noundef %3)
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0899, double noundef 1.000000e+00, ptr noundef nonnull %450, ptr noundef nonnull %451, ptr noundef %3)
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %451, ptr noundef %3)
  %452 = getelementptr inbounds i8, ptr %0, i64 2168
  store i8 1, ptr %452, align 8, !tbaa !52
  br i1 %.pre-phi, label %453, label %915

453:                                              ; preds = %.loopexit
  %454 = getelementptr inbounds i8, ptr %0, i64 62872
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %454, ptr noundef %3)
  br label %915

455:                                              ; preds = %99
  %456 = trunc nuw i8 %.0854 to i1
  br i1 %456, label %457, label %.thread925

457:                                              ; preds = %455
  %458 = getelementptr inbounds i8, ptr %0, i64 62872
  tail call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %458, ptr noundef %3)
  %459 = getelementptr inbounds i8, ptr %0, i64 2168
  store i8 0, ptr %459, align 8, !tbaa !52
  %460 = getelementptr inbounds i8, ptr %0, i64 60256
  %461 = tail call noundef zeroext i1 @_ZN11alglib_implL22nlcfsqp_sqpretrievefijEPKNS_12minfsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %460, ptr noundef %3)
  br i1 %461, label %473, label %465

.thread925:                                       ; preds = %455
  %462 = getelementptr inbounds i8, ptr %0, i64 2168
  store i8 0, ptr %462, align 8, !tbaa !52
  %463 = getelementptr inbounds i8, ptr %0, i64 60256
  %464 = tail call noundef zeroext i1 @_ZN11alglib_implL22nlcfsqp_sqpretrievefijEPKNS_12minfsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %463, ptr noundef %3)
  br i1 %464, label %.thread927, label %.thread926

.thread927:                                       ; preds = %.thread925
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %463, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef %3)
  br label %519

465:                                              ; preds = %457
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1145)
  br label %.thread926

.thread926:                                       ; preds = %.thread925, %465
  %466 = getelementptr inbounds i8, ptr %0, i64 2176
  %467 = load double, ptr %466, align 8, !tbaa !54
  %468 = load double, ptr @_ZN11alglib_implL24nlcfsqp_maxtrustraddecayE, align 8, !tbaa !48
  %469 = fmul double %467, %468
  store double %469, ptr %466, align 8, !tbaa !54
  %470 = getelementptr inbounds i8, ptr %0, i64 2184
  %471 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !48
  tail call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef nonnull %470, double noundef %471, ptr noundef %3)
  %472 = getelementptr inbounds i8, ptr %0, i64 62712
  tail call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %472, ptr noundef %3)
  br label %.preheader

473:                                              ; preds = %457
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %460, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef %3)
  %474 = getelementptr inbounds i8, ptr %0, i64 62328
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %474, ptr noundef %3)
  %475 = getelementptr inbounds i8, ptr %0, i64 62392
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %475, ptr noundef %3)
  %476 = getelementptr inbounds i8, ptr %0, i64 2232
  %477 = getelementptr inbounds i8, ptr %0, i64 2176
  %478 = load double, ptr %477, align 8, !tbaa !54
  %479 = getelementptr inbounds i8, ptr %0, i64 2296
  %480 = getelementptr inbounds i8, ptr %0, i64 2440
  %481 = getelementptr inbounds i8, ptr %0, i64 60128
  %482 = getelementptr inbounds i8, ptr %0, i64 60192
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %476, double noundef %478, ptr noundef nonnull %479, ptr noundef nonnull %480, ptr noundef nonnull %481, ptr noundef nonnull %482, i1 noundef zeroext true, ptr noundef nonnull %10, ptr noundef nonnull %474, ptr noundef %3)
  %483 = getelementptr inbounds i8, ptr %0, i64 60280
  %484 = load double, ptr %477, align 8, !tbaa !54
  %485 = getelementptr inbounds i8, ptr %0, i64 60344
  %486 = getelementptr inbounds i8, ptr %0, i64 60488
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %483, double noundef %484, ptr noundef nonnull %485, ptr noundef nonnull %486, ptr noundef nonnull %481, ptr noundef nonnull %482, i1 noundef zeroext true, ptr noundef nonnull %11, ptr noundef nonnull %475, ptr noundef %3)
  %487 = load double, ptr %12, align 8, !tbaa !48
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1146, double noundef %487)
  %488 = load double, ptr %13, align 8, !tbaa !48
  %489 = load double, ptr %8, align 8, !tbaa !48
  %490 = load double, ptr %6, align 8, !tbaa !48
  %491 = fsub double %489, %490
  %492 = fdiv double %491, %488
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1147, double noundef %488, double noundef %491, double noundef %492)
  %493 = load double, ptr %14, align 8, !tbaa !48
  %494 = load double, ptr %9, align 8, !tbaa !48
  %495 = load double, ptr %7, align 8, !tbaa !48
  %496 = fsub double %494, %495
  %497 = fdiv double %496, %493
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1148, double noundef %493, double noundef %496, double noundef %497)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1149)
  %498 = getelementptr inbounds i8, ptr %0, i64 1544
  %499 = load ptr, ptr %498, align 8, !tbaa !43
  %500 = load double, ptr %499, align 8, !tbaa !48
  %501 = getelementptr inbounds i8, ptr %0, i64 2352
  %502 = load ptr, ptr %501, align 8, !tbaa !43
  %503 = load double, ptr %502, align 8, !tbaa !48
  %504 = fmul double %500, %503
  %505 = getelementptr inbounds i8, ptr %0, i64 60400
  %506 = load ptr, ptr %505, align 8, !tbaa !43
  %507 = load double, ptr %506, align 8, !tbaa !48
  %508 = fmul double %500, %507
  %509 = fsub double %507, %503
  %510 = fmul double %500, %509
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1150, double noundef %504, double noundef %508, double noundef %510)
  %511 = load double, ptr %6, align 8, !tbaa !48
  %512 = load double, ptr %8, align 8, !tbaa !48
  %513 = fsub double %512, %511
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1151, double noundef %511, double noundef %512, double noundef %513)
  %514 = load double, ptr %7, align 8, !tbaa !48
  %515 = load double, ptr %9, align 8, !tbaa !48
  %516 = fsub double %515, %514
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1152, double noundef %514, double noundef %515, double noundef %516)
  %517 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %474, ptr noundef %3)
  %518 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %475, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1153, double noundef %517, double noundef %518)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %519

519:                                              ; preds = %.thread927, %473
  %520 = getelementptr inbounds i8, ptr %0, i64 60280
  %521 = getelementptr inbounds i8, ptr %0, i64 976
  %522 = getelementptr inbounds i8, ptr %0, i64 848
  %523 = getelementptr inbounds i8, ptr %0, i64 1040
  %524 = getelementptr inbounds i8, ptr %0, i64 912
  %525 = call noundef zeroext i1 @_ZN11alglib_impl26enforceboundaryconstraintsEPNS_9ae_vectorEPKS0_S3_S3_S3_llPNS_8ae_stateE(ptr noundef nonnull %520, ptr noundef nonnull %521, ptr noundef nonnull %522, ptr noundef nonnull %523, ptr noundef nonnull %524, i64 noundef %.0899, i64 noundef 0, ptr noundef %3)
  br i1 %2, label %526, label %533

526:                                              ; preds = %519
  %527 = trunc nuw i8 %.0831 to i1
  %528 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %527, i64 noundef -8, i64 noundef 8, ptr noundef %3)
  %529 = getelementptr inbounds i8, ptr %0, i64 62720
  store i64 %528, ptr %529, align 8, !tbaa !58
  br i1 %456, label %532, label %530

530:                                              ; preds = %526
  %531 = trunc nuw i8 %.0852 to i1
  br i1 %531, label %532, label %869

532:                                              ; preds = %530, %526
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1154)
  br label %869

533:                                              ; preds = %519
  %534 = trunc nuw i8 %.0827 to i1
  br i1 %534, label %.thread928, label %535

535:                                              ; preds = %533
  %536 = getelementptr inbounds i8, ptr %0, i64 62328
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %536, ptr noundef %3)
  %537 = getelementptr inbounds i8, ptr %0, i64 62392
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0899, ptr noundef nonnull %537, ptr noundef %3)
  %538 = getelementptr inbounds i8, ptr %0, i64 2232
  %539 = getelementptr inbounds i8, ptr %0, i64 2176
  %540 = load double, ptr %539, align 8, !tbaa !54
  %541 = getelementptr inbounds i8, ptr %0, i64 2296
  %542 = getelementptr inbounds i8, ptr %0, i64 2440
  %543 = getelementptr inbounds i8, ptr %0, i64 60128
  %544 = getelementptr inbounds i8, ptr %0, i64 60192
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %538, double noundef %540, ptr noundef nonnull %541, ptr noundef nonnull %542, ptr noundef nonnull %543, ptr noundef nonnull %544, i1 noundef zeroext true, ptr noundef nonnull %10, ptr noundef nonnull %536, ptr noundef %3)
  %545 = load double, ptr %539, align 8, !tbaa !54
  %546 = getelementptr inbounds i8, ptr %0, i64 60344
  %547 = getelementptr inbounds i8, ptr %0, i64 60488
  call void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_S4_bPdPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %520, double noundef %545, ptr noundef nonnull %546, ptr noundef nonnull %547, ptr noundef nonnull %543, ptr noundef nonnull %544, i1 noundef zeroext true, ptr noundef nonnull %11, ptr noundef nonnull %537, ptr noundef %3)
  %548 = getelementptr inbounds i8, ptr %0, i64 56768
  call void @_ZN11alglib_impl15hessianupdatev2EPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_lbblPNS_8ae_stateE(ptr noundef nonnull %548, ptr noundef nonnull %538, ptr noundef nonnull %536, ptr noundef nonnull %520, ptr noundef nonnull %537, i64 noundef 2, i1 noundef zeroext false, i1 noundef zeroext %456, i64 noundef 1, ptr noundef %3)
  br i1 %456, label %549, label %.thread935

549:                                              ; preds = %535
  %550 = getelementptr inbounds i8, ptr %0, i64 62456
  call void @_ZN11alglib_impl18hessiangetdiagonalEPNS_12xbfgshessianEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %548, ptr noundef nonnull %550, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1155)
  %551 = getelementptr inbounds i8, ptr %0, i64 62512
  %552 = load ptr, ptr %551, align 8, !tbaa !43
  %553 = load double, ptr %552, align 8, !tbaa !48
  %.not.not9061003 = icmp sgt i64 %.0899, 0
  br i1 %.not.not9061003, label %.lr.ph1007, label %._crit_edge1008.thread

._crit_edge1008.thread:                           ; preds = %549
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1156, double noundef %553)
  %554 = load ptr, ptr %551, align 8, !tbaa !43
  %555 = load double, ptr %554, align 8, !tbaa !48
  br label %._crit_edge1015

.lr.ph1007:                                       ; preds = %549, %.lr.ph1007
  %.18801005 = phi double [ %559, %.lr.ph1007 ], [ %553, %549 ]
  %.101004 = phi i64 [ %560, %.lr.ph1007 ], [ 0, %549 ]
  %556 = load ptr, ptr %551, align 8, !tbaa !43
  %557 = getelementptr inbounds double, ptr %556, i64 %.101004
  %558 = load double, ptr %557, align 8, !tbaa !48
  %559 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %.18801005, double noundef %558, ptr noundef %3)
  %560 = add nuw nsw i64 %.101004, 1
  %exitcond1073.not = icmp eq i64 %560, %.0899
  br i1 %exitcond1073.not, label %._crit_edge1008, label %.lr.ph1007, !llvm.loop !73

._crit_edge1008:                                  ; preds = %.lr.ph1007
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1156, double noundef %559)
  %561 = load ptr, ptr %551, align 8, !tbaa !43
  %562 = load double, ptr %561, align 8, !tbaa !48
  br i1 %.not.not9061003, label %.lr.ph1014, label %._crit_edge1015

.lr.ph1014:                                       ; preds = %._crit_edge1008, %.lr.ph1014
  %.28811012 = phi double [ %566, %.lr.ph1014 ], [ %562, %._crit_edge1008 ]
  %.111011 = phi i64 [ %567, %.lr.ph1014 ], [ 0, %._crit_edge1008 ]
  %563 = load ptr, ptr %551, align 8, !tbaa !43
  %564 = getelementptr inbounds double, ptr %563, i64 %.111011
  %565 = load double, ptr %564, align 8, !tbaa !48
  %566 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.28811012, double noundef %565, ptr noundef %3)
  %567 = add nuw nsw i64 %.111011, 1
  %exitcond1074.not = icmp eq i64 %567, %.0899
  br i1 %exitcond1074.not, label %._crit_edge1015, label %.lr.ph1014, !llvm.loop !74

._crit_edge1015:                                  ; preds = %.lr.ph1014, %._crit_edge1008.thread, %._crit_edge1008
  %.11.lcssa = phi i64 [ 0, %._crit_edge1008 ], [ 0, %._crit_edge1008.thread ], [ %.0899, %.lr.ph1014 ]
  %.2881.lcssa = phi double [ %562, %._crit_edge1008 ], [ %555, %._crit_edge1008.thread ], [ %566, %.lr.ph1014 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1157, double noundef %.2881.lcssa)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %.thread935

.thread928:                                       ; preds = %533
  %568 = trunc nuw i8 %.0820 to i1
  br i1 %568, label %582, label %569

569:                                              ; preds = %.thread928
  %570 = load i8, ptr %15, align 1, !tbaa !45, !range !46, !noundef !47
  %571 = trunc nuw i8 %570 to i1
  br i1 %571, label %582, label %572

572:                                              ; preds = %569
  %573 = getelementptr inbounds i8, ptr %0, i64 61648
  %574 = load double, ptr %6, align 8, !tbaa !48
  %575 = load double, ptr %7, align 8, !tbaa !48
  %576 = call noundef zeroext i1 @_ZN11alglib_impl17nlpfisacceptable1EPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef nonnull %573, double noundef %574, double noundef %575, ptr noundef %3)
  br i1 %576, label %577, label %582

577:                                              ; preds = %572
  br i1 %456, label %578, label %579

578:                                              ; preds = %577
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1158)
  br label %579

579:                                              ; preds = %578, %577
  %580 = getelementptr inbounds i8, ptr %0, i64 2184
  %581 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !48
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef nonnull %580, double noundef %581, ptr noundef %3)
  br label %595

582:                                              ; preds = %572, %569, %.thread928
  %583 = load double, ptr %14, align 8, !tbaa !48
  %584 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %583, double noundef 0.000000e+00)
  br i1 %584, label %593, label %585

585:                                              ; preds = %582
  %586 = load double, ptr %9, align 8, !tbaa !48
  %587 = load double, ptr %7, align 8, !tbaa !48
  %588 = fsub double %586, %587
  %589 = load double, ptr @_ZN11alglib_implL31nlcfsqp_sufficientdecreasesigmaE, align 8, !tbaa !48
  %590 = load double, ptr %14, align 8, !tbaa !48
  %591 = fmul double %589, %590
  %592 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %588, double noundef %591)
  %brmerge.not = and i1 %592, %456
  %.0812.mux = select i1 %592, i8 1, i8 %.0812
  %.0805.mux = select i1 %592, i8 1, i8 %.0805
  br i1 %brmerge.not, label %594, label %595

593:                                              ; preds = %582
  br i1 %456, label %594, label %595

594:                                              ; preds = %585, %593
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1159)
  br label %595

595:                                              ; preds = %585, %593, %594, %579
  %.1813 = phi i8 [ %.0812.mux, %585 ], [ %.0812, %579 ], [ 1, %594 ], [ 1, %593 ]
  %.1806 = phi i8 [ %.0805.mux, %585 ], [ 1, %579 ], [ 1, %594 ], [ 1, %593 ]
  %.1 = phi i8 [ %.0, %585 ], [ 1, %579 ], [ %.0, %594 ], [ %.0, %593 ]
  %596 = load double, ptr %9, align 8, !tbaa !48
  %597 = load double, ptr %7, align 8, !tbaa !48
  %598 = fsub double %596, %597
  %599 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %598, ptr noundef %3)
  %600 = load double, ptr @_ZN11alglib_implL22nlcfsqp_stagnationepsfE, align 8, !tbaa !48
  %601 = load double, ptr %7, align 8, !tbaa !48
  %602 = load double, ptr %9, align 8, !tbaa !48
  %603 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %601, double noundef %602, ptr noundef %3)
  %604 = fmul double %600, %603
  %605 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %599, double noundef %604)
  br label %635

.thread935:                                       ; preds = %._crit_edge1015, %535
  %.3882939 = phi double [ %.2881.lcssa, %._crit_edge1015 ], [ %.0879, %535 ]
  %.12938 = phi i64 [ %.11.lcssa, %._crit_edge1015 ], [ %.0887, %535 ]
  %606 = load double, ptr %6, align 8, !tbaa !48
  %607 = load double, ptr %7, align 8, !tbaa !48
  %608 = load double, ptr %8, align 8, !tbaa !48
  %609 = load double, ptr %9, align 8, !tbaa !48
  %610 = load double, ptr %13, align 8, !tbaa !48
  %611 = load double, ptr %14, align 8, !tbaa !48
  %612 = call noundef zeroext i1 @_ZN11alglib_implL20nlcfsqp_isacceptableEPNS_12minfsqpstateEddddddbPNS_8ae_stateE(ptr noundef nonnull %0, double noundef %606, double noundef %607, double noundef %608, double noundef %609, double noundef %610, double noundef %611, i1 noundef zeroext %456, ptr noundef %3)
  %.not920 = xor i1 %456, true
  %brmerge921 = or i1 %612, %.not920
  %.0812.mux922 = select i1 %612, i8 %.0812, i8 1
  %.0805.mux923 = select i1 %612, i8 %.0805, i8 1
  br i1 %brmerge921, label %614, label %613

613:                                              ; preds = %.thread935
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1160)
  br label %614

614:                                              ; preds = %.thread935, %613
  %.2814 = phi i8 [ %.0812.mux922, %.thread935 ], [ 1, %613 ]
  %.2807 = phi i8 [ %.0805.mux923, %.thread935 ], [ 1, %613 ]
  %615 = load double, ptr %8, align 8, !tbaa !48
  %616 = load double, ptr %6, align 8, !tbaa !48
  %617 = fsub double %615, %616
  %618 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %617, ptr noundef %3)
  %619 = load double, ptr @_ZN11alglib_implL22nlcfsqp_stagnationepsfE, align 8, !tbaa !48
  %620 = load double, ptr %6, align 8, !tbaa !48
  %621 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %620, ptr noundef %3)
  %622 = fmul double %619, %621
  %623 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %618, double noundef %622)
  br i1 %623, label %624, label %635

624:                                              ; preds = %614
  %625 = load double, ptr %9, align 8, !tbaa !48
  %626 = load double, ptr %7, align 8, !tbaa !48
  %627 = fsub double %625, %626
  %628 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %627, ptr noundef %3)
  %629 = load double, ptr @_ZN11alglib_implL22nlcfsqp_stagnationepsfE, align 8, !tbaa !48
  %630 = load double, ptr %7, align 8, !tbaa !48
  %631 = load double, ptr %9, align 8, !tbaa !48
  %632 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %630, double noundef %631, ptr noundef %3)
  %633 = fmul double %629, %632
  %634 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %628, double noundef %633)
  br label %635

635:                                              ; preds = %614, %624, %595
  %.3882933 = phi double [ %.0879, %595 ], [ %.3882939, %614 ], [ %.3882939, %624 ]
  %.12931 = phi i64 [ %.0887, %595 ], [ %.12938, %614 ], [ %.12938, %624 ]
  %.1841.in = phi i1 [ %605, %595 ], [ false, %614 ], [ %634, %624 ]
  %.2822 = phi i8 [ 0, %595 ], [ %.0820, %614 ], [ %.0820, %624 ]
  %.3815 = phi i8 [ %.1813, %595 ], [ %.2814, %614 ], [ %.2814, %624 ]
  %.3808 = phi i8 [ %.1806, %595 ], [ %.2807, %614 ], [ %.2807, %624 ]
  %.2 = phi i8 [ %.1, %595 ], [ %.0, %614 ], [ %.0, %624 ]
  %.1841 = zext i1 %.1841.in to i8
  br i1 %456, label %636, label %721

636:                                              ; preds = %635
  %637 = trunc nuw i8 %.0850 to i1
  br i1 %637, label %642, label %638

638:                                              ; preds = %636
  %639 = trunc nuw i8 %.0848 to i1
  br i1 %639, label %640, label %721

640:                                              ; preds = %638
  %641 = trunc nuw i8 %.3815 to i1
  br i1 %641, label %642, label %721

642:                                              ; preds = %640, %636
  %643 = getelementptr inbounds i8, ptr %0, i64 2232
  %644 = getelementptr inbounds i8, ptr %0, i64 61456
  %645 = getelementptr inbounds i8, ptr %0, i64 62712
  %646 = load i64, ptr %645, align 8, !tbaa !65
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %1, ptr noundef nonnull %643, ptr noundef nonnull %644, double noundef 1.000000e+00, i64 noundef %646, i64 noundef -1, ptr noundef %3)
  br label %647

647:                                              ; preds = %709, %642
  %.13 = phi i64 [ %.12931, %642 ], [ %.0887, %709 ]
  %.4883 = phi double [ %.3882933, %642 ], [ %.0879, %709 ]
  %.2842 = phi i8 [ %.1841, %642 ], [ %.0840, %709 ]
  %.3823 = phi i8 [ %.2822, %642 ], [ %.0820, %709 ]
  %.4816 = phi i8 [ %.3815, %642 ], [ %.0812, %709 ]
  %.4809 = phi i8 [ %.3808, %642 ], [ %.0805, %709 ]
  %.3 = phi i8 [ %.2, %642 ], [ %.0, %709 ]
  %648 = call noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1, ptr noundef %3)
  br i1 %648, label %.preheader951, label %720

.preheader951:                                    ; preds = %647
  store i64 0, ptr %5, align 8, !tbaa !44
  %.not.not9091018 = icmp sgt i64 %.0899, 0
  br i1 %.not.not9091018, label %.lr.ph1020, label %._crit_edge1021

.lr.ph1020:                                       ; preds = %.preheader951
  %649 = getelementptr inbounds i8, ptr %1, i64 792
  %650 = getelementptr inbounds i8, ptr %0, i64 60936
  %651 = getelementptr inbounds i8, ptr %0, i64 904
  %652 = getelementptr inbounds i8, ptr %0, i64 1032
  %653 = getelementptr inbounds i8, ptr %0, i64 968
  %654 = getelementptr inbounds i8, ptr %0, i64 1096
  br label %655

655:                                              ; preds = %.lr.ph1020, %693
  %storemerge9081019 = phi i64 [ 0, %.lr.ph1020 ], [ %695, %693 ]
  %656 = load ptr, ptr %649, align 8, !tbaa !43
  %657 = getelementptr inbounds double, ptr %656, i64 %storemerge9081019
  %658 = load double, ptr %657, align 8, !tbaa !48
  %659 = load ptr, ptr %650, align 8, !tbaa !43
  %660 = getelementptr inbounds double, ptr %659, i64 %storemerge9081019
  store double %658, ptr %660, align 8, !tbaa !48
  %661 = load ptr, ptr %651, align 8, !tbaa !43
  %662 = getelementptr inbounds i8, ptr %661, i64 %storemerge9081019
  %663 = load i8, ptr %662, align 1, !tbaa !45, !range !46, !noundef !47
  %664 = trunc nuw i8 %663 to i1
  br i1 %664, label %665, label %676

665:                                              ; preds = %655
  %666 = load ptr, ptr %650, align 8, !tbaa !43
  %667 = getelementptr inbounds double, ptr %666, i64 %storemerge9081019
  %668 = load double, ptr %667, align 8, !tbaa !48
  %669 = load ptr, ptr %652, align 8, !tbaa !43
  %670 = getelementptr inbounds double, ptr %669, i64 %storemerge9081019
  %671 = load double, ptr %670, align 8, !tbaa !48
  %672 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %668, double noundef %671, ptr noundef %3)
  %673 = load ptr, ptr %650, align 8, !tbaa !43
  %674 = load i64, ptr %5, align 8, !tbaa !44
  %675 = getelementptr inbounds double, ptr %673, i64 %674
  store double %672, ptr %675, align 8, !tbaa !48
  br label %676

676:                                              ; preds = %665, %655
  %677 = phi i64 [ %674, %665 ], [ %storemerge9081019, %655 ]
  %678 = load ptr, ptr %653, align 8, !tbaa !43
  %679 = getelementptr inbounds i8, ptr %678, i64 %677
  %680 = load i8, ptr %679, align 1, !tbaa !45, !range !46, !noundef !47
  %681 = trunc nuw i8 %680 to i1
  br i1 %681, label %682, label %693

682:                                              ; preds = %676
  %683 = load ptr, ptr %650, align 8, !tbaa !43
  %684 = getelementptr inbounds double, ptr %683, i64 %677
  %685 = load double, ptr %684, align 8, !tbaa !48
  %686 = load ptr, ptr %654, align 8, !tbaa !43
  %687 = getelementptr inbounds double, ptr %686, i64 %677
  %688 = load double, ptr %687, align 8, !tbaa !48
  %689 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %685, double noundef %688, ptr noundef %3)
  %690 = load ptr, ptr %650, align 8, !tbaa !43
  %691 = load i64, ptr %5, align 8, !tbaa !44
  %692 = getelementptr inbounds double, ptr %690, i64 %691
  store double %689, ptr %692, align 8, !tbaa !48
  br label %693

693:                                              ; preds = %676, %682
  %694 = phi i64 [ %677, %676 ], [ %691, %682 ]
  %695 = add nsw i64 %694, 1
  store i64 %695, ptr %5, align 8, !tbaa !44
  %.not.not909 = icmp slt i64 %695, %.0899
  br i1 %.not.not909, label %655, label %._crit_edge1021, !llvm.loop !75

._crit_edge1021:                                  ; preds = %693, %.preheader951
  %696 = getelementptr inbounds i8, ptr %0, i64 60880
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %696, ptr noundef %3)
  %697 = getelementptr inbounds i8, ptr %0, i64 2168
  store i8 1, ptr %697, align 8, !tbaa !52
  %698 = trunc nuw i8 %.0854 to i1
  br i1 %698, label %699, label %915

699:                                              ; preds = %._crit_edge1021
  %700 = getelementptr inbounds i8, ptr %0, i64 62872
  call void @_ZN11alglib_impl11stimerstartEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %700, ptr noundef %3)
  br label %915

701:                                              ; preds = %99
  %702 = trunc nuw i8 %.0854 to i1
  br i1 %702, label %703, label %705

703:                                              ; preds = %701
  %704 = getelementptr inbounds i8, ptr %0, i64 62872
  tail call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %704, ptr noundef %3)
  br label %705

705:                                              ; preds = %703, %701
  %706 = getelementptr inbounds i8, ptr %0, i64 2168
  store i8 0, ptr %706, align 8, !tbaa !52
  %707 = getelementptr inbounds i8, ptr %0, i64 60856
  %708 = tail call noundef zeroext i1 @_ZN11alglib_implL22nlcfsqp_sqpretrievefijEPKNS_12minfsqpstateEPNS_11varsfuncjacEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %707, ptr noundef %3)
  br i1 %708, label %709, label %720

709:                                              ; preds = %705
  %710 = add nsw i64 %.0895, 1
  %711 = getelementptr inbounds i8, ptr %0, i64 60944
  %712 = getelementptr inbounds i8, ptr %1, i64 800
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %710, ptr noundef nonnull %711, ptr noundef nonnull %712, ptr noundef %3)
  %713 = getelementptr inbounds i8, ptr %0, i64 61088
  %714 = getelementptr inbounds i8, ptr %1, i64 872
  tail call void @_ZN11alglib_implL20nlcfsqp_sparse2denseEPKNS_12sparsematrixEPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef nonnull %713, ptr noundef nonnull %714, ptr noundef %3)
  %715 = getelementptr inbounds i8, ptr %0, i64 60880
  %716 = getelementptr inbounds i8, ptr %0, i64 60128
  %717 = getelementptr inbounds i8, ptr %0, i64 60192
  %718 = tail call noundef double @_ZN11alglib_implL21nlcfsqp_rawlagrangianEPNS_12minfsqpstateEPKNS_9ae_vectorES4_S4_S4_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %715, ptr noundef nonnull %711, ptr noundef nonnull %716, ptr noundef nonnull %717, ptr noundef %3)
  %719 = getelementptr inbounds i8, ptr %1, i64 864
  store double %718, ptr %719, align 8, !tbaa !76
  br label %647

720:                                              ; preds = %705, %647
  %.14 = phi i64 [ %.13, %647 ], [ %.0887, %705 ]
  %.5884 = phi double [ %.4883, %647 ], [ %.0879, %705 ]
  %.3843 = phi i8 [ %.2842, %647 ], [ %.0840, %705 ]
  %.4824 = phi i8 [ %.3823, %647 ], [ %.0820, %705 ]
  %.5817 = phi i8 [ %.4816, %647 ], [ %.0812, %705 ]
  %.5810 = phi i8 [ %.4809, %647 ], [ %.0805, %705 ]
  %.4 = phi i8 [ %.3, %647 ], [ %.0, %705 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1161)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1162)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1163)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1164)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1165)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1166)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1167)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1168)
  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)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %721

721:                                              ; preds = %720, %640, %638, %635
  %.15 = phi i64 [ %.14, %720 ], [ %.12931, %640 ], [ %.12931, %638 ], [ %.12931, %635 ]
  %.6885 = phi double [ %.5884, %720 ], [ %.3882933, %640 ], [ %.3882933, %638 ], [ %.3882933, %635 ]
  %.4844 = phi i8 [ %.3843, %720 ], [ %.1841, %640 ], [ %.1841, %638 ], [ %.1841, %635 ]
  %.5825 = phi i8 [ %.4824, %720 ], [ %.2822, %640 ], [ %.2822, %638 ], [ %.2822, %635 ]
  %.6818 = phi i8 [ %.5817, %720 ], [ %.3815, %640 ], [ %.3815, %638 ], [ %.3815, %635 ]
  %.6811 = phi i8 [ %.5810, %720 ], [ %.3808, %640 ], [ %.3808, %638 ], [ %.3808, %635 ]
  %.5 = phi i8 [ %.4, %720 ], [ %.2, %640 ], [ %.2, %638 ], [ %.2, %635 ]
  %722 = trunc nuw i8 %.5 to i1
  %spec.select916 = select i1 %722, i8 0, i8 %.0827
  %723 = trunc nuw i8 %.6811 to i1
  br i1 %723, label %724, label %737

724:                                              ; preds = %721
  %725 = trunc nuw i8 %.6818 to i1
  br i1 %725, label %726, label %732

726:                                              ; preds = %724
  %727 = getelementptr inbounds i8, ptr %0, i64 2176
  %728 = load double, ptr %727, align 8, !tbaa !54
  %729 = fmul double %728, 5.000000e-01
  store double %729, ptr %727, align 8, !tbaa !54
  %730 = getelementptr inbounds i8, ptr %0, i64 2184
  %731 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !48
  call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef nonnull %730, double noundef %731, ptr noundef %3)
  br label %732

732:                                              ; preds = %726, %724
  %733 = trunc nuw i8 %.0854 to i1
  br i1 %733, label %734, label %735

734:                                              ; preds = %732
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1172)
  br label %735

735:                                              ; preds = %734, %732
  %736 = getelementptr inbounds i8, ptr %0, i64 62712
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %736, ptr noundef %3)
  br label %.preheader

737:                                              ; preds = %721
  %738 = trunc nuw i8 %.0854 to i1
  br i1 %738, label %739, label %740

739:                                              ; preds = %737
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1173)
  br label %740

740:                                              ; preds = %739, %737
  %741 = trunc nuw i8 %spec.select916 to i1
  br i1 %741, label %763, label %742

742:                                              ; preds = %740
  %743 = load double, ptr %13, align 8, !tbaa !48
  %744 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %743, double noundef 0.000000e+00)
  br i1 %744, label %753, label %745

745:                                              ; preds = %742
  %746 = load double, ptr %8, align 8, !tbaa !48
  %747 = load double, ptr %6, align 8, !tbaa !48
  %748 = fsub double %746, %747
  %749 = load double, ptr @_ZN11alglib_implL31nlcfsqp_sufficientdecreasesigmaE, align 8, !tbaa !48
  %750 = load double, ptr %13, align 8, !tbaa !48
  %751 = fmul double %749, %750
  %752 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %748, double noundef %751)
  br i1 %752, label %753, label %763

753:                                              ; preds = %745, %742
  %754 = load double, ptr %7, align 8, !tbaa !48
  %755 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %754, double noundef 0.000000e+00)
  br i1 %755, label %756, label %763

756:                                              ; preds = %753
  %757 = getelementptr inbounds i8, ptr %0, i64 61648
  %758 = load double, ptr %6, align 8, !tbaa !48
  %759 = load double, ptr %7, align 8, !tbaa !48
  call void @_ZN11alglib_impl10nlpfappendEPNS_9nlpfilterEddPNS_8ae_stateE(ptr noundef nonnull %757, double noundef %758, double noundef %759, ptr noundef %3)
  br i1 %738, label %.thread940, label %.critedge

.thread940:                                       ; preds = %756
  %760 = getelementptr inbounds i8, ptr %0, i64 61656
  %761 = load i64, ptr %760, align 8, !tbaa !71
  %762 = trunc i64 %761 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1174, i32 noundef %762)
  br label %764

763:                                              ; preds = %753, %745, %740
  br i1 %738, label %764, label %.critedge

764:                                              ; preds = %.thread940, %763
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %.critedge

.critedge:                                        ; preds = %756, %764, %763
  %765 = load double, ptr %8, align 8, !tbaa !48
  %766 = load double, ptr %6, align 8, !tbaa !48
  %767 = fsub double %765, %766
  %768 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %767, ptr noundef %3)
  %769 = load double, ptr %6, align 8, !tbaa !48
  %770 = load double, ptr %8, align 8, !tbaa !48
  %771 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %769, double noundef %770, double noundef 1.000000e+00, ptr noundef %3)
  %772 = fdiv double %768, %771
  %773 = load double, ptr %9, align 8, !tbaa !48
  %774 = load double, ptr %7, align 8, !tbaa !48
  %775 = fsub double %773, %774
  %776 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %775, ptr noundef %3)
  %777 = load double, ptr %7, align 8, !tbaa !48
  %778 = load double, ptr %9, align 8, !tbaa !48
  %779 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %777, double noundef %778, double noundef 1.000000e+00, ptr noundef %3)
  %780 = fdiv double %776, %779
  %781 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %772, double noundef %780, ptr noundef %3)
  %782 = getelementptr inbounds i8, ptr %0, i64 60256
  %783 = getelementptr inbounds i8, ptr %0, i64 2208
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %782, ptr noundef nonnull %783, ptr noundef %3)
  %784 = getelementptr inbounds i8, ptr %0, i64 2232
  call void @_ZN11alglib_implL16nlcfsqp_sqpsendxEPNS_12minfsqpstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %784, ptr noundef %3)
  %785 = getelementptr inbounds i8, ptr %0, i64 2352
  %786 = load ptr, ptr %785, align 8, !tbaa !43
  %787 = load double, ptr %786, align 8, !tbaa !48
  %788 = getelementptr inbounds i8, ptr %0, i64 1544
  %789 = load ptr, ptr %788, align 8, !tbaa !43
  %790 = load double, ptr %789, align 8, !tbaa !48
  %791 = fmul double %787, %790
  %792 = getelementptr inbounds i8, ptr %0, i64 2160
  store double %791, ptr %792, align 8, !tbaa !59
  %793 = getelementptr inbounds i8, ptr %0, i64 2169
  store i8 1, ptr %793, align 1, !tbaa !53
  br label %915

794:                                              ; preds = %99
  %795 = getelementptr inbounds i8, ptr %0, i64 2169
  store i8 0, ptr %795, align 1, !tbaa !53
  %796 = getelementptr inbounds i8, ptr %0, i64 96
  %797 = getelementptr inbounds i8, ptr %0, i64 592
  %798 = getelementptr inbounds i8, ptr %0, i64 656
  %799 = getelementptr inbounds i8, ptr %0, i64 784
  %800 = getelementptr inbounds i8, ptr %0, i64 2232
  %801 = getelementptr inbounds i8, ptr %0, i64 62744
  %802 = getelementptr inbounds i8, ptr %0, i64 62752
  tail call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef nonnull %796, ptr noundef nonnull %797, ptr noundef nonnull %798, ptr noundef nonnull %799, i64 noundef %.0897, ptr noundef nonnull %800, ptr noundef nonnull %801, ptr noundef nonnull %802, ptr noundef %3)
  %803 = getelementptr inbounds i8, ptr %0, i64 2296
  %804 = getelementptr inbounds i8, ptr %0, i64 1488
  %805 = getelementptr inbounds i8, ptr %0, i64 1360
  %806 = getelementptr inbounds i8, ptr %0, i64 1424
  %807 = getelementptr inbounds i8, ptr %0, i64 62760
  %808 = getelementptr inbounds i8, ptr %0, i64 62768
  tail call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef nonnull %803, ptr noundef nonnull %804, ptr noundef nonnull %805, ptr noundef nonnull %806, i64 noundef %.0895, ptr noundef nonnull %807, ptr noundef nonnull %808, ptr noundef %3)
  %809 = getelementptr inbounds i8, ptr %0, i64 2176
  %810 = load double, ptr %809, align 8, !tbaa !54
  %.not.not999 = icmp sgt i64 %.0899, 0
  br i1 %.not.not999, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %794
  %811 = getelementptr inbounds i8, ptr %0, i64 2872
  %812 = getelementptr inbounds i8, ptr %0, i64 2928
  %813 = getelementptr inbounds i8, ptr %0, i64 2288
  br label %814

814:                                              ; preds = %.lr.ph, %814
  %.28691001 = phi double [ 0.000000e+00, %.lr.ph ], [ %826, %814 ]
  %.161000 = phi i64 [ 0, %.lr.ph ], [ %827, %814 ]
  %815 = load ptr, ptr %812, align 8, !tbaa !43
  %816 = getelementptr inbounds double, ptr %815, i64 %.161000
  %817 = load double, ptr %816, align 8, !tbaa !48
  %818 = load ptr, ptr %813, align 8, !tbaa !43
  %819 = getelementptr inbounds double, ptr %818, i64 %.161000
  %820 = load double, ptr %819, align 8, !tbaa !48
  %821 = fsub double %817, %820
  %822 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %821, ptr noundef %3)
  %823 = load double, ptr %809, align 8, !tbaa !54
  %824 = tail call noundef double @_ZN11alglib_implL23nlcfsqp_gettrustregionkEPKNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %811, i64 noundef %.161000, double noundef %823, ptr noundef %3)
  %825 = fdiv double %822, %824
  %826 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.28691001, double noundef %825, ptr noundef %3)
  %827 = add nuw nsw i64 %.161000, 1
  %exitcond.not = icmp eq i64 %827, %.0899
  br i1 %exitcond.not, label %._crit_edge, label %814, !llvm.loop !82

._crit_edge:                                      ; preds = %814, %794
  %.16.lcssa = phi i64 [ 0, %794 ], [ %.0899, %814 ]
  %.2869.lcssa = phi double [ 0.000000e+00, %794 ], [ %826, %814 ]
  %828 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !48
  %829 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.2869.lcssa, double noundef %828)
  br i1 %829, label %830, label %837

830:                                              ; preds = %._crit_edge
  %831 = load double, ptr %809, align 8, !tbaa !54
  %832 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltadecreaseE, align 8, !tbaa !48
  %833 = fdiv double %.2869.lcssa, %832
  %834 = load double, ptr @_ZN11alglib_implL24nlcfsqp_maxtrustraddecayE, align 8, !tbaa !48
  %835 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %833, double noundef %834, ptr noundef %3)
  %836 = fmul double %831, %835
  store double %836, ptr %809, align 8, !tbaa !54
  br label %837

837:                                              ; preds = %830, %._crit_edge
  %838 = load double, ptr @_ZN11alglib_implL24nlcfsqp_sqpdeltaincreaseE, align 8, !tbaa !48
  %839 = tail call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %.2869.lcssa, double noundef %838)
  br i1 %839, label %840, label %847

840:                                              ; preds = %837
  %841 = load double, ptr %809, align 8, !tbaa !54
  %842 = getelementptr inbounds i8, ptr %0, i64 2184
  %843 = load double, ptr %842, align 8, !tbaa !55
  %844 = fmul double %841, %843
  store double %844, ptr %809, align 8, !tbaa !54
  %845 = load double, ptr @_ZN11alglib_implL22nlcfsqp_momentumgrowthE, align 8, !tbaa !48
  %846 = load double, ptr @_ZN11alglib_implL25nlcfsqp_maxtrustradgrowthE, align 8, !tbaa !48
  tail call void @_ZN11alglib_impl24trustradincreasemomentumEPdddPNS_8ae_stateE(ptr noundef nonnull %842, double noundef %845, double noundef %846, ptr noundef %3)
  br label %850

847:                                              ; preds = %837
  %848 = getelementptr inbounds i8, ptr %0, i64 2184
  %849 = load double, ptr @_ZN11alglib_implL25nlcfsqp_deftrustradgrowthE, align 8, !tbaa !48
  tail call void @_ZN11alglib_impl21trustradresetmomentumEPddPNS_8ae_stateE(ptr noundef nonnull %848, double noundef %849, ptr noundef %3)
  br label %850

850:                                              ; preds = %847, %840
  %851 = trunc nuw i8 %.0854 to i1
  br i1 %851, label %852, label %862

852:                                              ; preds = %850
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1175)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1176, double noundef %.2869.lcssa)
  %853 = load double, ptr %809, align 8, !tbaa !54
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1177, double noundef %853)
  %854 = load double, ptr %809, align 8, !tbaa !54
  %855 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %854, double noundef %810)
  br i1 %855, label %856, label %857

856:                                              ; preds = %852
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1178)
  br label %857

857:                                              ; preds = %856, %852
  %858 = load double, ptr %809, align 8, !tbaa !54
  %859 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %858, double noundef %810)
  br i1 %859, label %860, label %861

860:                                              ; preds = %857
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1179)
  br label %861

861:                                              ; preds = %860, %857
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %862

862:                                              ; preds = %861, %850
  %863 = getelementptr inbounds i8, ptr %0, i64 62712
  tail call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %863, ptr noundef %3)
  %864 = trunc nuw i8 %.0840 to i1
  %865 = getelementptr inbounds i8, ptr %0, i64 2200
  %866 = load i64, ptr %865, align 8, !tbaa !66
  %867 = add nsw i64 %866, 1
  %868 = tail call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %864, i64 noundef %867, i64 noundef 0, ptr noundef %3)
  store i64 %868, ptr %865, align 8, !tbaa !66
  br label %.preheader

869:                                              ; preds = %311, %303, %294, %286, %278, %530, %532, %313, %305, %296, %288, %280
  %.2837 = phi i8 [ %.1836.ph, %280 ], [ %.1836.ph, %288 ], [ %.1836.ph, %296 ], [ %.1836.ph, %305 ], [ %.1836.ph, %313 ], [ %.0835, %532 ], [ %.0835, %530 ], [ %.1836.ph, %278 ], [ %.1836.ph, %286 ], [ %.1836.ph, %294 ], [ %.1836.ph, %303 ], [ %.1836.ph, %311 ]
  %.2833 = phi i8 [ %.1832.ph, %280 ], [ %.1832.ph, %288 ], [ %.1832.ph, %296 ], [ %.1832.ph, %305 ], [ %.1832.ph, %313 ], [ %.0831, %532 ], [ %.0831, %530 ], [ %.1832.ph, %278 ], [ %.1832.ph, %286 ], [ %.1832.ph, %294 ], [ %.1832.ph, %303 ], [ %.1832.ph, %311 ]
  %870 = trunc nuw i8 %.2837 to i1
  br i1 %870, label %871, label %877

871:                                              ; preds = %869
  %872 = trunc nuw i8 %.2833 to i1
  %873 = getelementptr inbounds i8, ptr %0, i64 62720
  %874 = load i64, ptr %873, align 8, !tbaa !58
  %875 = add nsw i64 %874, 800
  %876 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %872, i64 noundef -8, i64 noundef %875, ptr noundef %3)
  store i64 %876, ptr %873, align 8, !tbaa !58
  br label %877

877:                                              ; preds = %871, %869
  %878 = trunc nuw i8 %.0854 to i1
  br i1 %878, label %879, label %901

879:                                              ; preds = %877
  %880 = getelementptr inbounds i8, ptr %0, i64 62776
  call void @_ZN11alglib_impl10stimerstopEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %880, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.774)
  br i1 %870, label %881, label %884

881:                                              ; preds = %879
  %882 = trunc nuw i8 %.2833 to i1
  br i1 %882, label %883, label %884

883:                                              ; preds = %881
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.776)
  br label %884

884:                                              ; preds = %883, %881, %879
  %885 = getelementptr inbounds i8, ptr %0, i64 2352
  %886 = load ptr, ptr %885, align 8, !tbaa !43
  %887 = load double, ptr %886, align 8, !tbaa !48
  %888 = getelementptr inbounds i8, ptr %0, i64 1544
  %889 = load ptr, ptr %888, align 8, !tbaa !43
  %890 = load double, ptr %889, align 8, !tbaa !48
  %891 = fmul double %887, %890
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.777, double noundef %891)
  %892 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %880, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.778, double noundef %892)
  %893 = getelementptr inbounds i8, ptr %0, i64 62872
  %894 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %893, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1180, double noundef %894)
  %895 = getelementptr inbounds i8, ptr %0, i64 62800
  %896 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %895, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1181, double noundef %896)
  %897 = getelementptr inbounds i8, ptr %0, i64 62824
  %898 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %897, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1182, double noundef %898)
  %899 = getelementptr inbounds i8, ptr %0, i64 62848
  %900 = call noundef double @_ZN11alglib_impl11stimergetmsEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %899, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1183, double noundef %900)
  br label %901

901:                                              ; preds = %884, %877
  %902 = trunc nuw i8 %.0852 to i1
  br i1 %902, label %903, label %914

903:                                              ; preds = %901
  %904 = getelementptr inbounds i8, ptr %0, i64 2208
  call void @_ZN11alglib_implL28nlcfsqp_targetandconstraintsEPNS_12minfsqpstateEPKNS_11varsfuncjacEPdS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %904, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %3)
  %905 = load double, ptr %6, align 8, !tbaa !48
  %906 = getelementptr inbounds i8, ptr %0, i64 1544
  %907 = load ptr, ptr %906, align 8, !tbaa !43
  %908 = load double, ptr %907, align 8, !tbaa !48
  %909 = fmul double %905, %908
  %910 = load double, ptr %7, align 8, !tbaa !48
  %911 = getelementptr inbounds i8, ptr %0, i64 62776
  %912 = call noundef double @_ZN11alglib_impl18stimergetmsrunningEPNS_6stimerEPNS_8ae_stateE(ptr noundef nonnull %911, ptr noundef %3)
  %913 = fmul double %912, 1.000000e-03
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1184, double noundef %909, double noundef %910, double noundef %913)
  br label %914

914:                                              ; preds = %903, %901
  call void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %1, i1 noundef zeroext %878, ptr noundef %3)
  br label %1017

915:                                              ; preds = %._crit_edge1021, %699, %.loopexit, %453, %119, %154, %.critedge, %165
  %.sink1142 = phi i32 [ 4, %.critedge ], [ 1, %165 ], [ 0, %154 ], [ 0, %119 ], [ 2, %453 ], [ 2, %.loopexit ], [ 3, %699 ], [ 3, %._crit_edge1021 ]
  %.1900 = phi i64 [ %.0899, %.critedge ], [ %.0899, %165 ], [ %101, %154 ], [ %101, %119 ], [ %.0899, %453 ], [ %.0899, %.loopexit ], [ %.0899, %699 ], [ %.0899, %._crit_edge1021 ]
  %.1898 = phi i64 [ %.0897, %.critedge ], [ %.0897, %165 ], [ %103, %154 ], [ %103, %119 ], [ %.0897, %453 ], [ %.0897, %.loopexit ], [ %.0897, %699 ], [ %.0897, %._crit_edge1021 ]
  %.1896 = phi i64 [ %.0895, %.critedge ], [ %.0895, %165 ], [ %105, %154 ], [ %105, %119 ], [ %.0895, %453 ], [ %.0895, %.loopexit ], [ %.0895, %699 ], [ %.0895, %._crit_edge1021 ]
  %.17 = phi i64 [ %.15, %.critedge ], [ %.0887, %165 ], [ %.0887, %154 ], [ %.0887, %119 ], [ %.9, %453 ], [ %.9, %.loopexit ], [ %.13, %699 ], [ %.13, %._crit_edge1021 ]
  %.7886 = phi double [ %.6885, %.critedge ], [ %.0879, %165 ], [ %.0879, %154 ], [ %.0879, %119 ], [ %291, %453 ], [ %291, %.loopexit ], [ %.4883, %699 ], [ %.4883, %._crit_edge1021 ]
  %.6877 = phi double [ %.0871, %.critedge ], [ %.0871, %165 ], [ %.0871, %154 ], [ %.0871, %119 ], [ %.5876, %453 ], [ %.5876, %.loopexit ], [ %.0871, %699 ], [ %.0871, %._crit_edge1021 ]
  %.3870 = phi double [ %.0867, %.critedge ], [ %.0867, %165 ], [ %.0867, %154 ], [ %.0867, %119 ], [ %.1868.ph, %453 ], [ %.1868.ph, %.loopexit ], [ %.0867, %699 ], [ %.0867, %._crit_edge1021 ]
  %.2864 = phi double [ %.0862, %.critedge ], [ %.0862, %165 ], [ %.0862, %154 ], [ %.0862, %119 ], [ %.1863.ph, %453 ], [ %.1863.ph, %.loopexit ], [ %.0862, %699 ], [ %.0862, %._crit_edge1021 ]
  %.2861 = phi i8 [ %.0859, %.critedge ], [ %.0859, %165 ], [ %.0859, %154 ], [ %.0859, %119 ], [ %.1860.ph, %453 ], [ %.1860.ph, %.loopexit ], [ %.0859, %699 ], [ %.0859, %._crit_edge1021 ]
  %.2858 = phi double [ %781, %.critedge ], [ %.0856, %165 ], [ %.0856, %154 ], [ %.0856, %119 ], [ 1.000000e+50, %453 ], [ 1.000000e+50, %.loopexit ], [ %.0856, %699 ], [ %.0856, %._crit_edge1021 ]
  %.1855 = phi i8 [ %.0854, %.critedge ], [ %.0854, %165 ], [ %111, %154 ], [ %111, %119 ], [ %.0854, %453 ], [ %.0854, %.loopexit ], [ %.0854, %699 ], [ %.0854, %._crit_edge1021 ]
  %.1853 = phi i8 [ %.0852, %.critedge ], [ %.0852, %165 ], [ %107, %154 ], [ %107, %119 ], [ %.0852, %453 ], [ %.0852, %.loopexit ], [ %.0852, %699 ], [ %.0852, %._crit_edge1021 ]
  %.1851 = phi i8 [ %.0850, %.critedge ], [ %.0850, %165 ], [ %120, %154 ], [ %120, %119 ], [ %.0850, %453 ], [ %.0850, %.loopexit ], [ %.0850, %699 ], [ %.0850, %._crit_edge1021 ]
  %.1849 = phi i8 [ %.0848, %.critedge ], [ %.0848, %165 ], [ %122, %154 ], [ %122, %119 ], [ %.0848, %453 ], [ %.0848, %.loopexit ], [ %.0848, %699 ], [ %.0848, %._crit_edge1021 ]
  %.1847 = phi i8 [ %.0846, %.critedge ], [ %.0846, %165 ], [ %121, %154 ], [ %121, %119 ], [ %.0846, %453 ], [ %.0846, %.loopexit ], [ %.0846, %699 ], [ %.0846, %._crit_edge1021 ]
  %.5845 = phi i8 [ %.4844, %.critedge ], [ %.0840, %165 ], [ %.0840, %154 ], [ %.0840, %119 ], [ 0, %453 ], [ 0, %.loopexit ], [ %.2842, %699 ], [ %.2842, %._crit_edge1021 ]
  %.3838 = phi i8 [ %.0835, %.critedge ], [ %.0835, %165 ], [ %.0835, %154 ], [ %.0835, %119 ], [ %.1836.ph, %453 ], [ %.1836.ph, %.loopexit ], [ %.0835, %699 ], [ %.0835, %._crit_edge1021 ]
  %.3834 = phi i8 [ 0, %.critedge ], [ %.0831, %165 ], [ %.0831, %154 ], [ %.0831, %119 ], [ %.1832.ph, %453 ], [ %.1832.ph, %.loopexit ], [ %.0831, %699 ], [ %.0831, %._crit_edge1021 ]
  %.3830 = phi i8 [ %spec.select916, %.critedge ], [ %.0827, %165 ], [ %.0827, %154 ], [ %.0827, %119 ], [ %.1828.ph949, %453 ], [ %.1828.ph949, %.loopexit ], [ %.0827, %699 ], [ %.0827, %._crit_edge1021 ]
  %.6826 = phi i8 [ %.5825, %.critedge ], [ %.0820, %165 ], [ %.0820, %154 ], [ %.0820, %119 ], [ %.1821.ph950, %453 ], [ %.1821.ph950, %.loopexit ], [ %.3823, %699 ], [ %.3823, %._crit_edge1021 ]
  %.7819 = phi i8 [ %.6818, %.critedge ], [ %.0812, %165 ], [ %.0812, %154 ], [ %.0812, %119 ], [ 0, %453 ], [ 0, %.loopexit ], [ %.4816, %699 ], [ %.4816, %._crit_edge1021 ]
  %.7 = phi i8 [ %.6811, %.critedge ], [ %.0805, %165 ], [ %.0805, %154 ], [ %.0805, %119 ], [ 0, %453 ], [ 0, %.loopexit ], [ %.4809, %699 ], [ %.4809, %._crit_edge1021 ]
  %.6 = phi i8 [ %.5, %.critedge ], [ %.0, %165 ], [ %.0, %154 ], [ %.0, %119 ], [ 0, %453 ], [ 0, %.loopexit ], [ %.3, %699 ], [ %.3, %._crit_edge1021 ]
  store i32 %.sink1142, ptr %16, align 8, !tbaa !5
  %916 = getelementptr inbounds i8, ptr %0, i64 62960
  %917 = load ptr, ptr %916, align 8, !tbaa !43
  store i64 %.1900, ptr %917, align 8, !tbaa !44
  %918 = load ptr, ptr %916, align 8, !tbaa !43
  %919 = getelementptr inbounds i8, ptr %918, i64 8
  store i64 %.1898, ptr %919, align 8, !tbaa !44
  %920 = load ptr, ptr %916, align 8, !tbaa !43
  %921 = getelementptr inbounds i8, ptr %920, i64 16
  store i64 %.1896, ptr %921, align 8, !tbaa !44
  %922 = load ptr, ptr %916, align 8, !tbaa !43
  %923 = getelementptr inbounds i8, ptr %922, i64 24
  store i64 %.17, ptr %923, align 8, !tbaa !44
  %924 = load i64, ptr %5, align 8, !tbaa !44
  %925 = load ptr, ptr %916, align 8, !tbaa !43
  %926 = getelementptr inbounds i8, ptr %925, i64 32
  store i64 %924, ptr %926, align 8, !tbaa !44
  %927 = getelementptr inbounds i8, ptr %0, i64 63024
  %928 = load ptr, ptr %927, align 8, !tbaa !43
  %929 = and i8 %.2861, 1
  store i8 %929, ptr %928, align 1, !tbaa !45
  %930 = load ptr, ptr %927, align 8, !tbaa !43
  %931 = getelementptr inbounds i8, ptr %930, i64 1
  %932 = and i8 %.1855, 1
  store i8 %932, ptr %931, align 1, !tbaa !45
  %933 = load ptr, ptr %927, align 8, !tbaa !43
  %934 = getelementptr inbounds i8, ptr %933, i64 2
  %935 = and i8 %.1853, 1
  store i8 %935, ptr %934, align 1, !tbaa !45
  %936 = load ptr, ptr %927, align 8, !tbaa !43
  %937 = getelementptr inbounds i8, ptr %936, i64 3
  %938 = and i8 %.1851, 1
  store i8 %938, ptr %937, align 1, !tbaa !45
  %939 = load ptr, ptr %927, align 8, !tbaa !43
  %940 = getelementptr inbounds i8, ptr %939, i64 4
  %941 = and i8 %.1849, 1
  store i8 %941, ptr %940, align 1, !tbaa !45
  %942 = load ptr, ptr %927, align 8, !tbaa !43
  %943 = getelementptr inbounds i8, ptr %942, i64 5
  %944 = and i8 %.1847, 1
  store i8 %944, ptr %943, align 1, !tbaa !45
  %945 = load ptr, ptr %927, align 8, !tbaa !43
  %946 = getelementptr inbounds i8, ptr %945, i64 6
  %947 = and i8 %.5845, 1
  store i8 %947, ptr %946, align 1, !tbaa !45
  %948 = load ptr, ptr %927, align 8, !tbaa !43
  %949 = getelementptr inbounds i8, ptr %948, i64 7
  %950 = and i8 %.3838, 1
  store i8 %950, ptr %949, align 1, !tbaa !45
  %951 = load ptr, ptr %927, align 8, !tbaa !43
  %952 = getelementptr inbounds i8, ptr %951, i64 8
  %953 = and i8 %.3834, 1
  store i8 %953, ptr %952, align 1, !tbaa !45
  %954 = load i8, ptr %15, align 1, !tbaa !45, !range !46, !noundef !47
  %955 = load ptr, ptr %927, align 8, !tbaa !43
  %956 = getelementptr inbounds i8, ptr %955, i64 9
  store i8 %954, ptr %956, align 1, !tbaa !45
  %957 = load ptr, ptr %927, align 8, !tbaa !43
  %958 = getelementptr inbounds i8, ptr %957, i64 10
  %959 = and i8 %.3830, 1
  store i8 %959, ptr %958, align 1, !tbaa !45
  %960 = load ptr, ptr %927, align 8, !tbaa !43
  %961 = getelementptr inbounds i8, ptr %960, i64 11
  %962 = and i8 %.6826, 1
  store i8 %962, ptr %961, align 1, !tbaa !45
  %963 = load ptr, ptr %927, align 8, !tbaa !43
  %964 = getelementptr inbounds i8, ptr %963, i64 12
  %965 = and i8 %.7819, 1
  store i8 %965, ptr %964, align 1, !tbaa !45
  %966 = load ptr, ptr %927, align 8, !tbaa !43
  %967 = getelementptr inbounds i8, ptr %966, i64 13
  %968 = and i8 %.7, 1
  store i8 %968, ptr %967, align 1, !tbaa !45
  %969 = load ptr, ptr %927, align 8, !tbaa !43
  %970 = getelementptr inbounds i8, ptr %969, i64 14
  %971 = and i8 %.6, 1
  store i8 %971, ptr %970, align 1, !tbaa !45
  %972 = getelementptr inbounds i8, ptr %0, i64 63088
  %973 = load ptr, ptr %972, align 8, !tbaa !43
  store double %.7886, ptr %973, align 8, !tbaa !48
  %974 = load ptr, ptr %972, align 8, !tbaa !43
  %975 = getelementptr inbounds i8, ptr %974, i64 8
  store double %.0878, ptr %975, align 8, !tbaa !48
  %976 = load ptr, ptr %972, align 8, !tbaa !43
  %977 = getelementptr inbounds i8, ptr %976, i64 16
  store double %.6877, ptr %977, align 8, !tbaa !48
  %978 = load ptr, ptr %972, align 8, !tbaa !43
  %979 = getelementptr inbounds i8, ptr %978, i64 24
  store double %.3870, ptr %979, align 8, !tbaa !48
  %980 = load ptr, ptr %972, align 8, !tbaa !43
  %981 = getelementptr inbounds i8, ptr %980, i64 32
  store double %.0866, ptr %981, align 8, !tbaa !48
  %982 = load ptr, ptr %972, align 8, !tbaa !43
  %983 = getelementptr inbounds i8, ptr %982, i64 40
  store double %.0865, ptr %983, align 8, !tbaa !48
  %984 = load ptr, ptr %972, align 8, !tbaa !43
  %985 = getelementptr inbounds i8, ptr %984, i64 48
  store double %.2864, ptr %985, align 8, !tbaa !48
  %986 = load ptr, ptr %972, align 8, !tbaa !43
  %987 = getelementptr inbounds i8, ptr %986, i64 56
  store double %.2858, ptr %987, align 8, !tbaa !48
  %988 = load double, ptr %6, align 8, !tbaa !48
  %989 = load ptr, ptr %972, align 8, !tbaa !43
  %990 = getelementptr inbounds i8, ptr %989, i64 64
  store double %988, ptr %990, align 8, !tbaa !48
  %991 = load double, ptr %7, align 8, !tbaa !48
  %992 = load ptr, ptr %972, align 8, !tbaa !43
  %993 = getelementptr inbounds i8, ptr %992, i64 72
  store double %991, ptr %993, align 8, !tbaa !48
  %994 = load double, ptr %8, align 8, !tbaa !48
  %995 = load ptr, ptr %972, align 8, !tbaa !43
  %996 = getelementptr inbounds i8, ptr %995, i64 80
  store double %994, ptr %996, align 8, !tbaa !48
  %997 = load double, ptr %9, align 8, !tbaa !48
  %998 = load ptr, ptr %972, align 8, !tbaa !43
  %999 = getelementptr inbounds i8, ptr %998, i64 88
  store double %997, ptr %999, align 8, !tbaa !48
  %1000 = load ptr, ptr %972, align 8, !tbaa !43
  %1001 = getelementptr inbounds i8, ptr %1000, i64 96
  store double %.0839, ptr %1001, align 8, !tbaa !48
  %1002 = load double, ptr %10, align 8, !tbaa !48
  %1003 = load ptr, ptr %972, align 8, !tbaa !43
  %1004 = getelementptr inbounds i8, ptr %1003, i64 104
  store double %1002, ptr %1004, align 8, !tbaa !48
  %1005 = load double, ptr %11, align 8, !tbaa !48
  %1006 = load ptr, ptr %972, align 8, !tbaa !43
  %1007 = getelementptr inbounds i8, ptr %1006, i64 112
  store double %1005, ptr %1007, align 8, !tbaa !48
  %1008 = load double, ptr %12, align 8, !tbaa !48
  %1009 = load ptr, ptr %972, align 8, !tbaa !43
  %1010 = getelementptr inbounds i8, ptr %1009, i64 120
  store double %1008, ptr %1010, align 8, !tbaa !48
  %1011 = load double, ptr %13, align 8, !tbaa !48
  %1012 = load ptr, ptr %972, align 8, !tbaa !43
  %1013 = getelementptr inbounds i8, ptr %1012, i64 128
  store double %1011, ptr %1013, align 8, !tbaa !48
  %1014 = load double, ptr %14, align 8, !tbaa !48
  %1015 = load ptr, ptr %972, align 8, !tbaa !43
  %1016 = getelementptr inbounds i8, ptr %1015, i64 136
  store double %1014, ptr %1016, align 8, !tbaa !48
  br label %1017

1017:                                             ; preds = %915, %914, %163
  %.0901 = phi i1 [ true, %915 ], [ false, %163 ], [ false, %914 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  ret i1 %.0901
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL28nlcfsqp_qpsubproblemsolvesqpEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr 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 #2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL32nlcfsqp_qpsubproblemsolveelasticEPNS_12minfsqpstateEPNS_16minfsqpsubsolverEPKNS_11varsfuncjacEPNS_12xbfgshessianEPNS_9ae_vectorESA_SA_bPbPlPdSD_SD_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr 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 #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20nlcfsqp_lagrangianfgEPNS_12minfsqpstateEPKNS_9ae_vectorEdS4_PKNS_12sparsematrixES4_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 #2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !42, i64 62896}
!6 = !{!"_ZTSN11alglib_impl12minfsqpstateE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !11, i64 32, !14, i64 96, !11, i64 464, !11, i64 528, !11, i64 592, !11, i64 656, !11, i64 720, !11, i64 784, !11, i64 848, !11, i64 912, !11, i64 976, !11, i64 1040, !11, i64 1104, !11, i64 1168, !11, i64 1232, !11, i64 1296, !11, i64 1360, !11, i64 1424, !11, i64 1488, !11, i64 1552, !15, i64 1616, !15, i64 1624, !16, i64 1632, !7, i64 1656, !11, i64 1664, !11, i64 1728, !14, i64 1792, !15, i64 2160, !10, i64 2168, !10, i64 2169, !15, i64 2176, !15, i64 2184, !7, i64 2192, !7, i64 2200, !17, i64 2208, !11, i64 2808, !11, i64 2872, !19, i64 2936, !39, i64 56768, !11, i64 60128, !11, i64 60192, !17, i64 60256, !17, i64 60856, !11, i64 61456, !11, i64 61520, !11, i64 61584, !40, i64 61648, !11, i64 61816, !11, i64 61880, !11, i64 61944, !11, i64 62008, !11, i64 62072, !11, i64 62136, !11, i64 62200, !11, i64 62264, !11, i64 62328, !11, i64 62392, !11, i64 62456, !11, i64 62520, !11, i64 62584, !11, i64 62648, !7, i64 62712, !7, i64 62720, !15, i64 62728, !7, i64 62736, !15, i64 62744, !7, i64 62752, !15, i64 62760, !7, i64 62768, !37, i64 62776, !37, i64 62800, !37, i64 62824, !37, i64 62848, !37, i64 62872, !41, i64 62896}
!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_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}
!15 = !{!"double", !8, i64 0}
!16 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !15, i64 0, !15, i64 8, !7, i64 16}
!17 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !7, i64 0, !7, i64 8, !10, i64 16, !11, i64 24, !11, i64 88, !18, i64 152, !14, i64 232}
!18 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !12, i64 40, !8, i64 72}
!19 = !{!"_ZTSN11alglib_impl16minfsqpsubsolverE", !20, i64 0, !34, i64 26648, !11, i64 50544, !11, i64 50608, !11, i64 50672, !11, i64 50736, !11, i64 50800, !14, i64 50864, !14, i64 51232, !11, i64 51600, !15, i64 51664, !15, i64 51672, !18, i64 51680, !11, i64 51760, !18, i64 51824, !14, i64 51904, !11, i64 52272, !11, i64 52336, !11, i64 52400, !11, i64 52464, !11, i64 52528, !11, i64 52592, !11, i64 52656, !11, i64 52720, !11, i64 52784, !18, i64 52848, !11, i64 52928, !11, i64 52992, !18, i64 53056, !11, i64 53136, !7, i64 53200, !14, i64 53208, !11, i64 53576, !11, i64 53640, !11, i64 53704, !11, i64 53768}
!20 = !{!"_ZTSN11alglib_impl9vipmstateE", !10, i64 0, !10, i64 1, !7, i64 8, !7, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !10, i64 48, !11, i64 56, !11, i64 120, !11, i64 184, !15, i64 248, !11, i64 256, !18, i64 320, !14, 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, !18, i64 1232, !18, i64 1312, !14, i64 1392, !14, i64 1760, !14, 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, !18, 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, !18, i64 26072, !11, i64 26152, !11, i64 26216, !14, 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", !14, 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, !15, i64 40, !15, i64 48, !15, i64 56, !15, 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, !14, i64 14200, !14, 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, !18, 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, !14, i64 4512, !14, i64 4880, !14, i64 5248, !14, i64 5616, !14, 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, !15, i64 24, !15, i64 32, !15, i64 40, !7, i64 48, !10, i64 56, !11, i64 64, !11, i64 128, !11, i64 192, !15, i64 256, !11, i64 264, !14, i64 328, !11, i64 696, !10, i64 760, !15, 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, !14, 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, !18, i64 22440, !14, i64 22520, !11, i64 22888, !11, i64 22952, !14, i64 23016, !14, i64 23384, !18, 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", !14, 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, !15, i64 152, !15, i64 160, !15, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !15, i64 200, !7, i64 208, !15, i64 216, !15, i64 224, !18, i64 232, !7, i64 312, !15, i64 320, !15, i64 328, !15, i64 336, !7, i64 344, !15, i64 352, !18, i64 360, !18, i64 440, !18, i64 520, !18, i64 600, !10, i64 680, !7, i64 688, !18, i64 696, !18, i64 776, !10, i64 856, !11, i64 864, !10, i64 928, !7, i64 936, !18, i64 944, !11, i64 1024, !11, i64 1088, !18, i64 1152, !11, i64 1232, !11, i64 1296, !10, i64 1360, !11, i64 1368, !15, i64 1432, !15, i64 1440, !7, i64 1448, !18, i64 1456, !11, i64 1536, !11, i64 1600, !11, i64 1664, !11, i64 1728, !11, i64 1792, !11, i64 1856, !18, i64 1920, !18, i64 2000, !18, i64 2080, !18, i64 2160, !18, i64 2240, !18, i64 2320, !18, i64 2400, !18, i64 2480, !11, i64 2560, !11, i64 2624, !18, i64 2688, !11, i64 2768, !18, i64 2832, !18, i64 2912, !18, i64 2992, !18, i64 3072, !18, i64 3152, !11, i64 3232, !11, i64 3296}
!40 = !{!"_ZTSN11alglib_impl9nlpfilterE", !15, i64 0, !7, i64 8, !15, i64 16, !15, i64 24, !10, i64 32, !11, i64 40, !11, 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 = !{!15, !15, i64 0}
!49 = !{!6, !7, i64 0}
!50 = !{!6, !7, i64 8}
!51 = !{!6, !7, i64 16}
!52 = !{!6, !10, i64 2168}
!53 = !{!6, !10, i64 2169}
!54 = !{!6, !15, i64 2176}
!55 = !{!6, !15, i64 2184}
!56 = !{!6, !15, i64 1616}
!57 = !{!6, !15, i64 1624}
!58 = !{!6, !7, i64 62720}
!59 = !{!6, !15, i64 2160}
!60 = !{!6, !10, i64 24}
!61 = !{!6, !7, i64 1656}
!62 = !{!6, !15, i64 56992}
!63 = distinct !{!63, !64}
!64 = !{!"llvm.loop.mustprogress"}
!65 = !{!6, !7, i64 62712}
!66 = !{!6, !7, i64 2200}
!67 = distinct !{!67, !64}
!68 = !{!6, !15, i64 62744}
!69 = !{!6, !15, i64 54608}
!70 = !{!6, !15, i64 54600}
!71 = !{!6, !7, i64 61656}
!72 = distinct !{!72, !64}
!73 = distinct !{!73, !64}
!74 = distinct !{!74, !64}
!75 = distinct !{!75, !64}
!76 = !{!77, !15, i64 864}
!77 = !{!"_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, !18, i64 352, !11, i64 432, !11, i64 496, !7, i64 560, !7, i64 568, !7, i64 576, !15, i64 584, !7, i64 592, !11, i64 600, !11, i64 664, !15, i64 728, !11, i64 736, !11, i64 800, !15, i64 864, !18, i64 872, !18, i64 952, !18, i64 1032, !11, i64 1112, !11, i64 1176, !41, i64 1240, !10, i64 1504, !10, i64 1505, !7, i64 1512, !7, i64 1520, !15, i64 1528, !15, i64 1536, !10, i64 1544, !78, i64 1552, !15, i64 1848, !15, i64 1856, !79, i64 1864, !79, i64 2184, !15, i64 2504, !15, i64 2512, !80, i64 2520, !80, i64 2840, !15, i64 3160, !15, i64 3168, !81, i64 3176, !81, i64 3504, !10, i64 3832, !11, i64 3840, !11, i64 3904, !18, 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, !18, i64 4824, !18, 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, !18, i64 5624}
!78 = !{!"_ZTSN11alglib_impl14optguardreportE", !10, i64 0, !10, i64 1, !7, i64 8, !15, i64 16, !10, i64 24, !10, i64 25, !10, i64 26, !7, i64 32, !15, i64 40, !10, i64 48, !7, i64 56, !7, i64 64, !11, i64 72, !18, i64 136, !18, i64 216}
!79 = !{!"_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}
!80 = !{!"_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}
!81 = !{!"_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}
!82 = distinct !{!82, !64}


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