; 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::minnlcstate" = type { double, double, i64, i64, %"struct.alglib_impl::nlpstoppingcriteria", i64, i8, double, double, 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::xlinearconstraints", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, i8, i8, i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"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_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::rcommstate", %"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::ae_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_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minaulstate", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::minsqpstate", %"struct.alglib_impl::minfsqpstate", i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, double, i64, double, i64, double, 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", i64, i64 }
%"struct.alglib_impl::nlpstoppingcriteria" = type { double, double, i64 }
%"struct.alglib_impl::xlinearconstraints" = type { i64, i64, i64, %"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", i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"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::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::minaulstate" = type { i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"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::nlpstoppingcriteria", i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", double, i8, i8, i8, double, %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", double, 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::minaulpreconditioner", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::linminstate", double, double, %"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::varsfuncjac", %"struct.alglib_impl::varsfuncjac", i64, i64, i64, double, i64, double, i64, double, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::minaulpreconditioner" = type { i64, i64, %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::sparsematrix", i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", 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_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::spcholanalysis" = type { i64, i64, i64, i8, i64, double, double, double, double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, i8, %"struct.alglib_impl::spcholadj", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdbuffer", %"struct.alglib_impl::priorityamdbuffers", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::spcholadj" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_nxpool" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_dyn_block", %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::amdbuffer" = type { i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdllmatrix", %"struct.alglib_impl::amdvertexset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::amdllmatrix" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::amdvertexset" = type { i64, i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::amdknset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::niset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::priorityamdbuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdbuffer", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::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::linminstate" = type { i8, i8, i64, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"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::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::minsqpstate" = type { i64, i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::nlpstoppingcriteria", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, i8, i8, double, double, double, i64, i64, %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minsqpsubsolver", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::ae_obj_array", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, i64, double, i64, double, i64, %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::minsqpsubsolver" = type { %"struct.alglib_impl::vipmstate", %"struct.alglib_impl::ipm2state", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::vipmstate" = type { i8, i8, i64, i64, double, double, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64, i8, i8, i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::vipmreducedsparsesystem", %"struct.alglib_impl::vipmrighthandside", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::vipmreducedsparsesystem" = type { %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::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_obj_array" = type { i64, i64, i8, ptr, ptr, ptr, ptr, %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::stimer" = type { i64, i64, i8 }
%"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::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::nlpfilter" = type { double, i64, double, double, i8, %"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 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }

@.str.1116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1117 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1249 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1539 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1621 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.1622 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1623 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1624 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1625 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1626 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1627 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1628 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1629 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1630 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1631 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1632 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1633 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1634 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1635 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1636 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1637 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1638 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1639 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1640 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1641 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1642 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1643 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1644 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1645 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1646 = external hidden unnamed_addr constant [36 x i8], align 1

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1) #2 {
  %3 = alloca i1, align 1
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i64, align 8
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca i8, align 1
  %18 = alloca i64, align 8
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #5
  %22 = load ptr, ptr %4, align 8, !tbaa !5
  %23 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %22, i32 0, i32 46
  %24 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %23, i32 0, i32 0
  %25 = load i32, ptr %24, align 8, !tbaa !9
  %26 = icmp sge i32 %25, 0
  br i1 %26, label %27, label %130

27:                                               ; preds = %2
  %28 = load ptr, ptr %4, align 8, !tbaa !5
  %29 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %28, i32 0, i32 46
  %30 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %29, i32 0, i32 1
  %31 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %32 = load ptr, ptr %31, align 8, !tbaa !57
  %33 = getelementptr inbounds i64, ptr %32, i64 0
  %34 = load i64, ptr %33, align 8, !tbaa !58
  store i64 %34, ptr %6, align 8, !tbaa !58
  %35 = load ptr, ptr %4, align 8, !tbaa !5
  %36 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %35, i32 0, i32 46
  %37 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %36, i32 0, i32 1
  %38 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %39 = load ptr, ptr %38, align 8, !tbaa !57
  %40 = getelementptr inbounds i64, ptr %39, i64 1
  %41 = load i64, ptr %40, align 8, !tbaa !58
  store i64 %41, ptr %7, align 8, !tbaa !58
  %42 = load ptr, ptr %4, align 8, !tbaa !5
  %43 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %42, i32 0, i32 46
  %44 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %43, i32 0, i32 1
  %45 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %46 = load ptr, ptr %45, align 8, !tbaa !57
  %47 = getelementptr inbounds i64, ptr %46, i64 2
  %48 = load i64, ptr %47, align 8, !tbaa !58
  store i64 %48, ptr %8, align 8, !tbaa !58
  %49 = load ptr, ptr %4, align 8, !tbaa !5
  %50 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %49, i32 0, i32 46
  %51 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %50, i32 0, i32 1
  %52 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %51, i32 0, i32 4
  %53 = load ptr, ptr %52, align 8, !tbaa !57
  %54 = getelementptr inbounds i64, ptr %53, i64 3
  %55 = load i64, ptr %54, align 8, !tbaa !58
  store i64 %55, ptr %9, align 8, !tbaa !58
  %56 = load ptr, ptr %4, align 8, !tbaa !5
  %57 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %56, i32 0, i32 46
  %58 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %57, i32 0, i32 1
  %59 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %58, i32 0, i32 4
  %60 = load ptr, ptr %59, align 8, !tbaa !57
  %61 = getelementptr inbounds i64, ptr %60, i64 4
  %62 = load i64, ptr %61, align 8, !tbaa !58
  store i64 %62, ptr %10, align 8, !tbaa !58
  %63 = load ptr, ptr %4, align 8, !tbaa !5
  %64 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %63, i32 0, i32 46
  %65 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %64, i32 0, i32 1
  %66 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %65, i32 0, i32 4
  %67 = load ptr, ptr %66, align 8, !tbaa !57
  %68 = getelementptr inbounds i64, ptr %67, i64 5
  %69 = load i64, ptr %68, align 8, !tbaa !58
  store i64 %69, ptr %11, align 8, !tbaa !58
  %70 = load ptr, ptr %4, align 8, !tbaa !5
  %71 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %70, i32 0, i32 46
  %72 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %71, i32 0, i32 1
  %73 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %72, i32 0, i32 4
  %74 = load ptr, ptr %73, align 8, !tbaa !57
  %75 = getelementptr inbounds i64, ptr %74, i64 6
  %76 = load i64, ptr %75, align 8, !tbaa !58
  store i64 %76, ptr %12, align 8, !tbaa !58
  %77 = load ptr, ptr %4, align 8, !tbaa !5
  %78 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %77, i32 0, i32 46
  %79 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %78, i32 0, i32 1
  %80 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %79, i32 0, i32 4
  %81 = load ptr, ptr %80, align 8, !tbaa !57
  %82 = getelementptr inbounds i64, ptr %81, i64 7
  %83 = load i64, ptr %82, align 8, !tbaa !58
  store i64 %83, ptr %13, align 8, !tbaa !58
  %84 = load ptr, ptr %4, align 8, !tbaa !5
  %85 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %84, i32 0, i32 46
  %86 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %85, i32 0, i32 1
  %87 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %86, i32 0, i32 4
  %88 = load ptr, ptr %87, align 8, !tbaa !57
  %89 = getelementptr inbounds i64, ptr %88, i64 8
  %90 = load i64, ptr %89, align 8, !tbaa !58
  store i64 %90, ptr %14, align 8, !tbaa !58
  %91 = load ptr, ptr %4, align 8, !tbaa !5
  %92 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %91, i32 0, i32 46
  %93 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %92, i32 0, i32 1
  %94 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %93, i32 0, i32 4
  %95 = load ptr, ptr %94, align 8, !tbaa !57
  %96 = getelementptr inbounds i64, ptr %95, i64 9
  %97 = load i64, ptr %96, align 8, !tbaa !58
  store i64 %97, ptr %18, align 8, !tbaa !58
  %98 = load ptr, ptr %4, align 8, !tbaa !5
  %99 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %98, i32 0, i32 46
  %100 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %99, i32 0, i32 2
  %101 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %100, i32 0, i32 4
  %102 = load ptr, ptr %101, align 8, !tbaa !57
  %103 = getelementptr inbounds i8, ptr %102, i64 0
  %104 = load i8, ptr %103, align 1, !tbaa !59, !range !60, !noundef !61
  %105 = trunc i8 %104 to i1
  %106 = zext i1 %105 to i8
  store i8 %106, ptr %17, align 1, !tbaa !59
  %107 = load ptr, ptr %4, align 8, !tbaa !5
  %108 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %107, i32 0, i32 46
  %109 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %108, i32 0, i32 2
  %110 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %109, i32 0, i32 4
  %111 = load ptr, ptr %110, align 8, !tbaa !57
  %112 = getelementptr inbounds i8, ptr %111, i64 1
  %113 = load i8, ptr %112, align 1, !tbaa !59, !range !60, !noundef !61
  %114 = trunc i8 %113 to i1
  %115 = zext i1 %114 to i8
  store i8 %115, ptr %19, align 1, !tbaa !59
  %116 = load ptr, ptr %4, align 8, !tbaa !5
  %117 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %116, i32 0, i32 46
  %118 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %117, i32 0, i32 3
  %119 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %118, i32 0, i32 4
  %120 = load ptr, ptr %119, align 8, !tbaa !57
  %121 = getelementptr inbounds double, ptr %120, i64 0
  %122 = load double, ptr %121, align 8, !tbaa !62
  store double %122, ptr %15, align 8, !tbaa !62
  %123 = load ptr, ptr %4, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %123, i32 0, i32 46
  %125 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %124, i32 0, i32 3
  %126 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %125, i32 0, i32 4
  %127 = load ptr, ptr %126, align 8, !tbaa !57
  %128 = getelementptr inbounds double, ptr %127, i64 1
  %129 = load double, ptr %128, align 8, !tbaa !62
  store double %129, ptr %16, align 8, !tbaa !62
  br label %131

130:                                              ; preds = %2
  store i64 359, ptr %6, align 8, !tbaa !58
  store i64 -58, ptr %7, align 8, !tbaa !58
  store i64 -919, ptr %8, align 8, !tbaa !58
  store i64 -909, ptr %9, align 8, !tbaa !58
  store i64 81, ptr %10, align 8, !tbaa !58
  store i64 255, ptr %11, align 8, !tbaa !58
  store i64 74, ptr %12, align 8, !tbaa !58
  store i64 -788, ptr %13, align 8, !tbaa !58
  store i64 809, ptr %14, align 8, !tbaa !58
  store i64 205, ptr %18, align 8, !tbaa !58
  store i8 0, ptr %17, align 1, !tbaa !59
  store i8 1, ptr %19, align 1, !tbaa !59
  store double -5.260000e+02, ptr %15, align 8, !tbaa !62
  store double 7.630000e+02, ptr %16, align 8, !tbaa !62
  br label %131

131:                                              ; preds = %130, %27
  %132 = load ptr, ptr %4, align 8, !tbaa !5
  %133 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %132, i32 0, i32 46
  %134 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %133, i32 0, i32 0
  %135 = load i32, ptr %134, align 8, !tbaa !9
  %136 = icmp eq i32 %135, 0
  br i1 %136, label %137, label %138

137:                                              ; preds = %131
  br label %637

138:                                              ; preds = %131
  %139 = load ptr, ptr %4, align 8, !tbaa !5
  %140 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %139, i32 0, i32 46
  %141 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %140, i32 0, i32 0
  %142 = load i32, ptr %141, align 8, !tbaa !9
  %143 = icmp eq i32 %142, 1
  br i1 %143, label %144, label %145

144:                                              ; preds = %138
  br label %779

145:                                              ; preds = %138
  %146 = load ptr, ptr %4, align 8, !tbaa !5
  %147 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %146, i32 0, i32 46
  %148 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %147, i32 0, i32 0
  %149 = load i32, ptr %148, align 8, !tbaa !9
  %150 = icmp eq i32 %149, 2
  br i1 %150, label %151, label %152

151:                                              ; preds = %145
  br label %876

152:                                              ; preds = %145
  %153 = load ptr, ptr %4, align 8, !tbaa !5
  %154 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %153, i32 0, i32 46
  %155 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %154, i32 0, i32 0
  %156 = load i32, ptr %155, align 8, !tbaa !9
  %157 = icmp eq i32 %156, 3
  br i1 %157, label %158, label %159

158:                                              ; preds = %152
  br label %1563

159:                                              ; preds = %152
  %160 = load ptr, ptr %4, align 8, !tbaa !5
  %161 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %160, i32 0, i32 46
  %162 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %161, i32 0, i32 0
  %163 = load i32, ptr %162, align 8, !tbaa !9
  %164 = icmp eq i32 %163, 4
  br i1 %164, label %165, label %166

165:                                              ; preds = %159
  br label %1575

166:                                              ; preds = %159
  %167 = load ptr, ptr %4, align 8, !tbaa !5
  %168 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %167, i32 0, i32 46
  %169 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %168, i32 0, i32 0
  %170 = load i32, ptr %169, align 8, !tbaa !9
  %171 = icmp eq i32 %170, 5
  br i1 %171, label %172, label %173

172:                                              ; preds = %166
  br label %2020

173:                                              ; preds = %166
  %174 = load ptr, ptr %4, align 8, !tbaa !5
  %175 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %174, i32 0, i32 46
  %176 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %175, i32 0, i32 0
  %177 = load i32, ptr %176, align 8, !tbaa !9
  %178 = icmp eq i32 %177, 6
  br i1 %178, label %179, label %180

179:                                              ; preds = %173
  br label %2244

180:                                              ; preds = %173
  %181 = load ptr, ptr %4, align 8, !tbaa !5
  %182 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %181, i32 0, i32 46
  %183 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %182, i32 0, i32 0
  %184 = load i32, ptr %183, align 8, !tbaa !9
  %185 = icmp eq i32 %184, 7
  br i1 %185, label %186, label %187

186:                                              ; preds = %180
  br label %2268

187:                                              ; preds = %180
  %188 = load ptr, ptr %4, align 8, !tbaa !5
  %189 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %188, i32 0, i32 46
  %190 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %189, i32 0, i32 0
  %191 = load i32, ptr %190, align 8, !tbaa !9
  %192 = icmp eq i32 %191, 8
  br i1 %192, label %193, label %194

193:                                              ; preds = %187
  br label %2364

194:                                              ; preds = %187
  %195 = load ptr, ptr %4, align 8, !tbaa !5
  %196 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %195, i32 0, i32 46
  %197 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %196, i32 0, i32 0
  %198 = load i32, ptr %197, align 8, !tbaa !9
  %199 = icmp eq i32 %198, 9
  br i1 %199, label %200, label %201

200:                                              ; preds = %194
  br label %2407

201:                                              ; preds = %194
  %202 = load ptr, ptr %4, align 8, !tbaa !5
  %203 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %202, i32 0, i32 46
  %204 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %203, i32 0, i32 0
  %205 = load i32, ptr %204, align 8, !tbaa !9
  %206 = icmp eq i32 %205, 10
  br i1 %206, label %207, label %208

207:                                              ; preds = %201
  br label %2449

208:                                              ; preds = %201
  %209 = load ptr, ptr %4, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %209, i32 0, i32 46
  %211 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %210, i32 0, i32 0
  %212 = load i32, ptr %211, align 8, !tbaa !9
  %213 = icmp eq i32 %212, 11
  br i1 %213, label %214, label %215

214:                                              ; preds = %208
  br label %2490

215:                                              ; preds = %208
  %216 = load ptr, ptr %4, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %216, i32 0, i32 46
  %218 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %217, i32 0, i32 0
  %219 = load i32, ptr %218, align 8, !tbaa !9
  %220 = icmp eq i32 %219, 12
  br i1 %220, label %221, label %222

221:                                              ; preds = %215
  br label %2602

222:                                              ; preds = %215
  %223 = load ptr, ptr %4, align 8, !tbaa !5
  %224 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %223, i32 0, i32 46
  %225 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %224, i32 0, i32 0
  %226 = load i32, ptr %225, align 8, !tbaa !9
  %227 = icmp eq i32 %226, 13
  br i1 %227, label %228, label %229

228:                                              ; preds = %222
  br label %2742

229:                                              ; preds = %222
  %230 = load ptr, ptr %4, align 8, !tbaa !5
  %231 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %230, i32 0, i32 46
  %232 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %231, i32 0, i32 0
  %233 = load i32, ptr %232, align 8, !tbaa !9
  %234 = icmp eq i32 %233, 14
  br i1 %234, label %235, label %236

235:                                              ; preds = %229
  br label %2801

236:                                              ; preds = %229
  %237 = load ptr, ptr %4, align 8, !tbaa !5
  %238 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %237, i32 0, i32 46
  %239 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %238, i32 0, i32 0
  %240 = load i32, ptr %239, align 8, !tbaa !9
  %241 = icmp eq i32 %240, 15
  br i1 %241, label %242, label %243

242:                                              ; preds = %236
  br label %2830

243:                                              ; preds = %236
  %244 = load ptr, ptr %4, align 8, !tbaa !5
  %245 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %244, i32 0, i32 79
  store i8 0, ptr %245, align 8, !tbaa !63
  %246 = load ptr, ptr %4, align 8, !tbaa !5
  %247 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %246, i32 0, i32 88
  store i64 0, ptr %247, align 8, !tbaa !64
  %248 = load ptr, ptr %4, align 8, !tbaa !5
  %249 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %248, i32 0, i32 85
  store i64 0, ptr %249, align 8, !tbaa !65
  %250 = load ptr, ptr %4, align 8, !tbaa !5
  %251 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %250, i32 0, i32 86
  store i64 0, ptr %251, align 8, !tbaa !66
  %252 = load ptr, ptr %4, align 8, !tbaa !5
  %253 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %252, i32 0, i32 87
  store i64 0, ptr %253, align 8, !tbaa !67
  %254 = load ptr, ptr %4, align 8, !tbaa !5
  %255 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %254, i32 0, i32 95
  store i64 0, ptr %255, align 8, !tbaa !68
  %256 = load ptr, ptr %4, align 8, !tbaa !5
  %257 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %256, i32 0, i32 89
  store double 0.000000e+00, ptr %257, align 8, !tbaa !69
  %258 = load ptr, ptr %4, align 8, !tbaa !5
  %259 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %258, i32 0, i32 90
  store i64 -1, ptr %259, align 8, !tbaa !70
  %260 = load ptr, ptr %4, align 8, !tbaa !5
  %261 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %260, i32 0, i32 91
  store double 0.000000e+00, ptr %261, align 8, !tbaa !71
  %262 = load ptr, ptr %4, align 8, !tbaa !5
  %263 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %262, i32 0, i32 92
  store i64 -1, ptr %263, align 8, !tbaa !72
  %264 = load ptr, ptr %4, align 8, !tbaa !5
  %265 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %264, i32 0, i32 93
  store double 0.000000e+00, ptr %265, align 8, !tbaa !73
  %266 = load ptr, ptr %4, align 8, !tbaa !5
  %267 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %266, i32 0, i32 94
  store i64 -1, ptr %267, align 8, !tbaa !74
  %268 = load ptr, ptr %4, align 8, !tbaa !5
  %269 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %268, i32 0, i32 3
  %270 = load i64, ptr %269, align 8, !tbaa !75
  %271 = load ptr, ptr %4, align 8, !tbaa !5
  %272 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %271, i32 0, i32 96
  %273 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %270, double noundef 0.000000e+00, ptr noundef %272, ptr noundef %273)
  %274 = load ptr, ptr %4, align 8, !tbaa !5
  %275 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %274, i32 0, i32 3
  %276 = load i64, ptr %275, align 8, !tbaa !75
  %277 = load ptr, ptr %4, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %277, i32 0, i32 97
  %279 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %276, double noundef 0.000000e+00, ptr noundef %278, ptr noundef %279)
  %280 = load ptr, ptr %4, align 8, !tbaa !5
  %281 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %280, i32 0, i32 15
  %282 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %281, i32 0, i32 2
  %283 = load i64, ptr %282, align 8, !tbaa !76
  %284 = load ptr, ptr %4, align 8, !tbaa !5
  %285 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %284, i32 0, i32 15
  %286 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %285, i32 0, i32 1
  %287 = load i64, ptr %286, align 8, !tbaa !77
  %288 = add nsw i64 %283, %287
  %289 = load ptr, ptr %4, align 8, !tbaa !5
  %290 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %289, i32 0, i32 98
  %291 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %288, double noundef 0.000000e+00, ptr noundef %290, ptr noundef %291)
  %292 = load ptr, ptr %4, align 8, !tbaa !5
  %293 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %292, i32 0, i32 16
  %294 = load i64, ptr %293, align 8, !tbaa !78
  %295 = load ptr, ptr %4, align 8, !tbaa !5
  %296 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %295, i32 0, i32 99
  %297 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %294, double noundef 0.000000e+00, ptr noundef %296, ptr noundef %297)
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  %299 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %298, i32 0, i32 3
  %300 = load i64, ptr %299, align 8, !tbaa !75
  store i64 %300, ptr %12, align 8, !tbaa !58
  %301 = load ptr, ptr %4, align 8, !tbaa !5
  %302 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %301, i32 0, i32 16
  %303 = load i64, ptr %302, align 8, !tbaa !78
  store i64 %303, ptr %13, align 8, !tbaa !58
  %304 = load ptr, ptr %4, align 8, !tbaa !5
  %305 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL25minnlc_clearrequestfieldsEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %304, ptr noundef %305)
  %306 = load ptr, ptr %4, align 8, !tbaa !5
  %307 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %306, i32 0, i32 82
  %308 = load i64, ptr %307, align 8, !tbaa !79
  %309 = icmp eq i64 %308, 0
  br i1 %309, label %315, label %310

310:                                              ; preds = %243
  %311 = load ptr, ptr %4, align 8, !tbaa !5
  %312 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %311, i32 0, i32 82
  %313 = load i64, ptr %312, align 8, !tbaa !79
  %314 = icmp eq i64 %313, 1
  br label %315

315:                                              ; preds = %310, %243
  %316 = phi i1 [ true, %243 ], [ %314, %310 ]
  %317 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %316, ptr noundef @.str.1621, ptr noundef %317)
  %318 = load ptr, ptr %4, align 8, !tbaa !5
  %319 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %318, i32 0, i32 82
  %320 = load i64, ptr %319, align 8, !tbaa !79
  %321 = icmp sgt i64 %320, 0
  %322 = zext i1 %321 to i8
  store i8 %322, ptr %17, align 1, !tbaa !59
  %323 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %324 = trunc i8 %323 to i1
  br i1 %324, label %338, label %325

325:                                              ; preds = %315
  %326 = load ptr, ptr %4, align 8, !tbaa !5
  %327 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %326, i32 0, i32 2
  %328 = load i64, ptr %327, align 8, !tbaa !80
  %329 = icmp eq i64 %328, 0
  br i1 %329, label %330, label %336

330:                                              ; preds = %325
  %331 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1249)
  br i1 %331, label %334, label %332

332:                                              ; preds = %330
  %333 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1622)
  br label %334

334:                                              ; preds = %332, %330
  %335 = phi i1 [ true, %330 ], [ %333, %332 ]
  br label %336

336:                                              ; preds = %334, %325
  %337 = phi i1 [ false, %325 ], [ %335, %334 ]
  br label %338

338:                                              ; preds = %336, %315
  %339 = phi i1 [ true, %315 ], [ %337, %336 ]
  %340 = zext i1 %339 to i8
  store i8 %340, ptr %17, align 1, !tbaa !59
  %341 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %342 = trunc i8 %341 to i1
  br i1 %342, label %371, label %343

343:                                              ; preds = %338
  %344 = load ptr, ptr %4, align 8, !tbaa !5
  %345 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %344, i32 0, i32 2
  %346 = load i64, ptr %345, align 8, !tbaa !80
  %347 = icmp eq i64 %346, 2
  br i1 %347, label %363, label %348

348:                                              ; preds = %343
  %349 = load ptr, ptr %4, align 8, !tbaa !5
  %350 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %349, i32 0, i32 2
  %351 = load i64, ptr %350, align 8, !tbaa !80
  %352 = icmp eq i64 %351, 3
  br i1 %352, label %363, label %353

353:                                              ; preds = %348
  %354 = load ptr, ptr %4, align 8, !tbaa !5
  %355 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %354, i32 0, i32 2
  %356 = load i64, ptr %355, align 8, !tbaa !80
  %357 = icmp eq i64 %356, 4
  br i1 %357, label %363, label %358

358:                                              ; preds = %353
  %359 = load ptr, ptr %4, align 8, !tbaa !5
  %360 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %359, i32 0, i32 2
  %361 = load i64, ptr %360, align 8, !tbaa !80
  %362 = icmp eq i64 %361, 5
  br i1 %362, label %363, label %369

363:                                              ; preds = %358, %353, %348, %343
  %364 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1116)
  br i1 %364, label %367, label %365

365:                                              ; preds = %363
  %366 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1117)
  br label %367

367:                                              ; preds = %365, %363
  %368 = phi i1 [ true, %363 ], [ %366, %365 ]
  br label %369

369:                                              ; preds = %367, %358
  %370 = phi i1 [ false, %358 ], [ %368, %367 ]
  br label %371

371:                                              ; preds = %369, %338
  %372 = phi i1 [ true, %338 ], [ %370, %369 ]
  %373 = zext i1 %372 to i8
  store i8 %373, ptr %17, align 1, !tbaa !59
  %374 = load ptr, ptr %4, align 8, !tbaa !5
  %375 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %374, i32 0, i32 83
  %376 = load ptr, ptr %4, align 8, !tbaa !5
  %377 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %376, i32 0, i32 10
  %378 = load i64, ptr %12, align 8, !tbaa !58
  %379 = load i64, ptr %13, align 8, !tbaa !58
  %380 = add nsw i64 1, %379
  %381 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %382 = trunc i8 %381 to i1
  %383 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEPKNS_9ae_vectorEllbPNS_8ae_stateE(ptr noundef %375, ptr noundef %377, i64 noundef %378, i64 noundef %380, i1 noundef zeroext %382, ptr noundef %383)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %384

384:                                              ; preds = %403, %371
  %385 = load i64, ptr %6, align 8, !tbaa !58
  %386 = load i64, ptr %12, align 8, !tbaa !58
  %387 = sub nsw i64 %386, 1
  %388 = icmp sle i64 %385, %387
  br i1 %388, label %389, label %406

389:                                              ; preds = %384
  %390 = load ptr, ptr %4, align 8, !tbaa !5
  %391 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %390, i32 0, i32 10
  %392 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %391, i32 0, i32 4
  %393 = load ptr, ptr %392, align 8, !tbaa !57
  %394 = load i64, ptr %6, align 8, !tbaa !58
  %395 = getelementptr inbounds double, ptr %393, i64 %394
  %396 = load double, ptr %395, align 8, !tbaa !62
  %397 = load ptr, ptr %4, align 8, !tbaa !5
  %398 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %397, i32 0, i32 84
  %399 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %398, i32 0, i32 4
  %400 = load ptr, ptr %399, align 8, !tbaa !57
  %401 = load i64, ptr %6, align 8, !tbaa !58
  %402 = getelementptr inbounds double, ptr %400, i64 %401
  store double %396, ptr %402, align 8, !tbaa !62
  br label %403

403:                                              ; preds = %389
  %404 = load i64, ptr %6, align 8, !tbaa !58
  %405 = add nsw i64 %404, 1
  store i64 %405, ptr %6, align 8, !tbaa !58
  br label %384, !llvm.loop !81

406:                                              ; preds = %384
  %407 = load ptr, ptr %4, align 8, !tbaa !5
  %408 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %407, i32 0, i32 19
  %409 = load i64, ptr %408, align 8, !tbaa !83
  %410 = icmp eq i64 %409, 1
  br i1 %410, label %411, label %460

411:                                              ; preds = %406
  %412 = load ptr, ptr %4, align 8, !tbaa !5
  %413 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %412, i32 0, i32 23
  %414 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %413, i32 0, i32 0
  %415 = load i64, ptr %414, align 8, !tbaa !84
  %416 = load ptr, ptr %4, align 8, !tbaa !5
  %417 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %416, i32 0, i32 16
  %418 = load i64, ptr %417, align 8, !tbaa !78
  %419 = add nsw i64 1, %418
  %420 = icmp ne i64 %415, %419
  br i1 %420, label %421, label %429

421:                                              ; preds = %411
  %422 = load ptr, ptr %4, align 8, !tbaa !5
  %423 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %422, i32 0, i32 23
  %424 = load ptr, ptr %4, align 8, !tbaa !5
  %425 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %424, i32 0, i32 16
  %426 = load i64, ptr %425, align 8, !tbaa !78
  %427 = add nsw i64 1, %426
  %428 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %423, i64 noundef %427, ptr noundef %428)
  br label %429

429:                                              ; preds = %421, %411
  %430 = load ptr, ptr %4, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %430, i32 0, i32 24
  %432 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %431, i32 0, i32 0
  %433 = load i64, ptr %432, align 8, !tbaa !85
  %434 = load ptr, ptr %4, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %434, i32 0, i32 16
  %436 = load i64, ptr %435, align 8, !tbaa !78
  %437 = add nsw i64 1, %436
  %438 = icmp ne i64 %433, %437
  br i1 %438, label %448, label %439

439:                                              ; preds = %429
  %440 = load ptr, ptr %4, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %440, i32 0, i32 24
  %442 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %441, i32 0, i32 1
  %443 = load i64, ptr %442, align 8, !tbaa !86
  %444 = load ptr, ptr %4, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %444, i32 0, i32 3
  %446 = load i64, ptr %445, align 8, !tbaa !75
  %447 = icmp ne i64 %443, %446
  br i1 %447, label %448, label %459

448:                                              ; preds = %439, %429
  %449 = load ptr, ptr %4, align 8, !tbaa !5
  %450 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %449, i32 0, i32 24
  %451 = load ptr, ptr %4, align 8, !tbaa !5
  %452 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %451, i32 0, i32 16
  %453 = load i64, ptr %452, align 8, !tbaa !78
  %454 = add nsw i64 1, %453
  %455 = load ptr, ptr %4, align 8, !tbaa !5
  %456 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %455, i32 0, i32 3
  %457 = load i64, ptr %456, align 8, !tbaa !75
  %458 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %450, i64 noundef %454, i64 noundef %457, ptr noundef %458)
  br label %459

459:                                              ; preds = %448, %439
  br label %460

460:                                              ; preds = %459, %406
  %461 = load ptr, ptr %4, align 8, !tbaa !5
  %462 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %461, i32 0, i32 19
  %463 = load i64, ptr %462, align 8, !tbaa !83
  %464 = icmp eq i64 %463, 2
  br i1 %464, label %465, label %502

465:                                              ; preds = %460
  %466 = load ptr, ptr %4, align 8, !tbaa !5
  %467 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %466, i32 0, i32 8
  %468 = load double, ptr %467, align 8, !tbaa !87
  %469 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %468, double noundef 0.000000e+00)
  br i1 %469, label %470, label %475

470:                                              ; preds = %465
  %471 = load i64, ptr %12, align 8, !tbaa !58
  %472 = load ptr, ptr %4, align 8, !tbaa !5
  %473 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %472, i32 0, i32 36
  %474 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %471, ptr noundef %473, ptr noundef %474)
  br label %483

475:                                              ; preds = %465
  %476 = load i64, ptr %12, align 8, !tbaa !58
  %477 = load i64, ptr %12, align 8, !tbaa !58
  %478 = mul nsw i64 6, %477
  %479 = add nsw i64 %476, %478
  %480 = load ptr, ptr %4, align 8, !tbaa !5
  %481 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %480, i32 0, i32 36
  %482 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %479, ptr noundef %481, ptr noundef %482)
  br label %483

483:                                              ; preds = %475, %470
  %484 = load i64, ptr %13, align 8, !tbaa !58
  %485 = add nsw i64 1, %484
  %486 = load ptr, ptr %4, align 8, !tbaa !5
  %487 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %486, i32 0, i32 37
  %488 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %485, ptr noundef %487, ptr noundef %488)
  %489 = load i64, ptr %13, align 8, !tbaa !58
  %490 = add nsw i64 1, %489
  %491 = load ptr, ptr %4, align 8, !tbaa !5
  %492 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %491, i32 0, i32 42
  %493 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %490, ptr noundef %492, ptr noundef %493)
  %494 = load i64, ptr %12, align 8, !tbaa !58
  %495 = load ptr, ptr %4, align 8, !tbaa !5
  %496 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %495, i32 0, i32 43
  %497 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %494, ptr noundef %496, ptr noundef %497)
  %498 = load i64, ptr %12, align 8, !tbaa !58
  %499 = load ptr, ptr %4, align 8, !tbaa !5
  %500 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %499, i32 0, i32 40
  %501 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %498, ptr noundef %500, ptr noundef %501)
  br label %502

502:                                              ; preds = %483, %460
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %503

503:                                              ; preds = %569, %502
  %504 = load i64, ptr %6, align 8, !tbaa !58
  %505 = load i64, ptr %12, align 8, !tbaa !58
  %506 = sub nsw i64 %505, 1
  %507 = icmp sle i64 %504, %506
  br i1 %507, label %508, label %572

508:                                              ; preds = %503
  %509 = load ptr, ptr %4, align 8, !tbaa !5
  %510 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %509, i32 0, i32 13
  %511 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %510, i32 0, i32 4
  %512 = load ptr, ptr %511, align 8, !tbaa !57
  %513 = load i64, ptr %6, align 8, !tbaa !58
  %514 = getelementptr inbounds i8, ptr %512, i64 %513
  %515 = load i8, ptr %514, align 1, !tbaa !59, !range !60, !noundef !61
  %516 = trunc i8 %515 to i1
  br i1 %516, label %517, label %568

517:                                              ; preds = %508
  %518 = load ptr, ptr %4, align 8, !tbaa !5
  %519 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %518, i32 0, i32 14
  %520 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %519, i32 0, i32 4
  %521 = load ptr, ptr %520, align 8, !tbaa !57
  %522 = load i64, ptr %6, align 8, !tbaa !58
  %523 = getelementptr inbounds i8, ptr %521, i64 %522
  %524 = load i8, ptr %523, align 1, !tbaa !59, !range !60, !noundef !61
  %525 = trunc i8 %524 to i1
  br i1 %525, label %526, label %568

526:                                              ; preds = %517
  %527 = load ptr, ptr %4, align 8, !tbaa !5
  %528 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %527, i32 0, i32 11
  %529 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %528, i32 0, i32 4
  %530 = load ptr, ptr %529, align 8, !tbaa !57
  %531 = load i64, ptr %6, align 8, !tbaa !58
  %532 = getelementptr inbounds double, ptr %530, i64 %531
  %533 = load double, ptr %532, align 8, !tbaa !62
  %534 = load ptr, ptr %4, align 8, !tbaa !5
  %535 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %534, i32 0, i32 12
  %536 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %535, i32 0, i32 4
  %537 = load ptr, ptr %536, align 8, !tbaa !57
  %538 = load i64, ptr %6, align 8, !tbaa !58
  %539 = getelementptr inbounds double, ptr %537, i64 %538
  %540 = load double, ptr %539, align 8, !tbaa !62
  %541 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %533, double noundef %540)
  br i1 %541, label %542, label %567

542:                                              ; preds = %526
  %543 = load ptr, ptr %4, align 8, !tbaa !5
  %544 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %543, i32 0, i32 88
  store i64 -3, ptr %544, align 8, !tbaa !64
  %545 = load ptr, ptr %4, align 8, !tbaa !5
  %546 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %545, i32 0, i32 11
  %547 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %546, i32 0, i32 4
  %548 = load ptr, ptr %547, align 8, !tbaa !57
  %549 = load i64, ptr %6, align 8, !tbaa !58
  %550 = getelementptr inbounds double, ptr %548, i64 %549
  %551 = load double, ptr %550, align 8, !tbaa !62
  %552 = load ptr, ptr %4, align 8, !tbaa !5
  %553 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %552, i32 0, i32 12
  %554 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %553, i32 0, i32 4
  %555 = load ptr, ptr %554, align 8, !tbaa !57
  %556 = load i64, ptr %6, align 8, !tbaa !58
  %557 = getelementptr inbounds double, ptr %555, i64 %556
  %558 = load double, ptr %557, align 8, !tbaa !62
  %559 = fsub double %551, %558
  %560 = load ptr, ptr %4, align 8, !tbaa !5
  %561 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %560, i32 0, i32 89
  store double %559, ptr %561, align 8, !tbaa !69
  %562 = load i64, ptr %6, align 8, !tbaa !58
  %563 = load ptr, ptr %4, align 8, !tbaa !5
  %564 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %563, i32 0, i32 90
  store i64 %562, ptr %564, align 8, !tbaa !70
  store i8 0, ptr %20, align 1, !tbaa !59
  %565 = load i8, ptr %20, align 1, !tbaa !59, !range !60, !noundef !61
  %566 = trunc i8 %565 to i1
  store i1 %566, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %4127

567:                                              ; preds = %526
  br label %568

568:                                              ; preds = %567, %517, %508
  br label %569

569:                                              ; preds = %568
  %570 = load i64, ptr %6, align 8, !tbaa !58
  %571 = add nsw i64 %570, 1
  store i64 %571, ptr %6, align 8, !tbaa !58
  br label %503, !llvm.loop !88

572:                                              ; preds = %503
  %573 = load ptr, ptr %4, align 8, !tbaa !5
  %574 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %573, i32 0, i32 8
  %575 = load double, ptr %574, align 8, !tbaa !87
  %576 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %575, double noundef 0.000000e+00)
  br i1 %576, label %577, label %582

577:                                              ; preds = %572
  %578 = load ptr, ptr %4, align 8, !tbaa !5
  %579 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %578, i32 0, i32 9
  %580 = load double, ptr %579, align 8, !tbaa !89
  %581 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %580, double noundef 0.000000e+00)
  br i1 %581, label %583, label %582

582:                                              ; preds = %577, %572
  br label %934

583:                                              ; preds = %577
  br label %584

584:                                              ; preds = %932, %583
  %585 = load ptr, ptr %4, align 8, !tbaa !5
  %586 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %585, i32 0, i32 83
  %587 = load ptr, ptr %4, align 8, !tbaa !5
  %588 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %587, i32 0, i32 52
  %589 = load ptr, ptr %4, align 8, !tbaa !5
  %590 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %589, i32 0, i32 10
  %591 = load ptr, ptr %4, align 8, !tbaa !5
  %592 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %591, i32 0, i32 11
  %593 = load ptr, ptr %4, align 8, !tbaa !5
  %594 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %593, i32 0, i32 12
  %595 = load ptr, ptr %4, align 8, !tbaa !5
  %596 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %595, i32 0, i32 9
  %597 = load double, ptr %596, align 8, !tbaa !89
  %598 = load ptr, ptr %5, align 8, !tbaa !5
  %599 = call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_S4_bdPNS_8ae_stateE(ptr noundef %586, ptr noundef %588, ptr noundef %590, ptr noundef %592, ptr noundef %594, i1 noundef zeroext true, double noundef %597, ptr noundef %598)
  br i1 %599, label %601, label %600

600:                                              ; preds = %584
  br label %933

601:                                              ; preds = %584
  %602 = load ptr, ptr %4, align 8, !tbaa !5
  %603 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %602, i32 0, i32 19
  %604 = load i64, ptr %603, align 8, !tbaa !83
  %605 = icmp ne i64 %604, 2
  br i1 %605, label %606, label %607

606:                                              ; preds = %601
  br label %835

607:                                              ; preds = %601
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %608, i32 0, i32 20
  %610 = load i8, ptr %609, align 8, !tbaa !90, !range !60, !noundef !61
  %611 = trunc i8 %610 to i1
  br i1 %611, label %613, label %612

612:                                              ; preds = %607
  br label %742

613:                                              ; preds = %607
  %614 = load ptr, ptr %4, align 8, !tbaa !5
  %615 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %614, i32 0, i32 28
  store i64 1, ptr %615, align 8, !tbaa !91
  %616 = load ptr, ptr %4, align 8, !tbaa !5
  %617 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %616, i32 0, i32 31
  store i64 1, ptr %617, align 8, !tbaa !92
  %618 = load i64, ptr %13, align 8, !tbaa !58
  %619 = add nsw i64 1, %618
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %620, i32 0, i32 32
  store i64 %619, ptr %621, align 8, !tbaa !93
  %622 = load i64, ptr %12, align 8, !tbaa !58
  %623 = load ptr, ptr %4, align 8, !tbaa !5
  %624 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %623, i32 0, i32 33
  store i64 %622, ptr %624, align 8, !tbaa !94
  %625 = load ptr, ptr %4, align 8, !tbaa !5
  %626 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %625, i32 0, i32 34
  store i64 0, ptr %626, align 8, !tbaa !95
  %627 = load i64, ptr %12, align 8, !tbaa !58
  %628 = load ptr, ptr %4, align 8, !tbaa !5
  %629 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %628, i32 0, i32 83
  %630 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %629, i32 0, i32 50
  %631 = load ptr, ptr %4, align 8, !tbaa !5
  %632 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %631, i32 0, i32 36
  %633 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %627, ptr noundef %630, ptr noundef %632, ptr noundef %633)
  %634 = load ptr, ptr %4, align 8, !tbaa !5
  %635 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %634, i32 0, i32 46
  %636 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %635, i32 0, i32 0
  store i32 0, ptr %636, align 8, !tbaa !9
  br label %4022

637:                                              ; preds = %137
  %638 = load ptr, ptr %4, align 8, !tbaa !5
  %639 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %638, i32 0, i32 39
  %640 = load ptr, ptr %5, align 8, !tbaa !5
  %641 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %639, ptr noundef %640)
  %642 = load ptr, ptr %4, align 8, !tbaa !5
  %643 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %642, i32 0, i32 31
  %644 = load i64, ptr %643, align 8, !tbaa !92
  %645 = load ptr, ptr %4, align 8, !tbaa !5
  %646 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %645, i32 0, i32 32
  %647 = load i64, ptr %646, align 8, !tbaa !93
  %648 = mul nsw i64 %644, %647
  %649 = icmp eq i64 %641, %648
  %650 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %649, ptr noundef @.str.1623, ptr noundef %650)
  %651 = load ptr, ptr %4, align 8, !tbaa !5
  %652 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %651, i32 0, i32 39
  %653 = load ptr, ptr %5, align 8, !tbaa !5
  %654 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %652, ptr noundef %653)
  %655 = load ptr, ptr %4, align 8, !tbaa !5
  %656 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %655, i32 0, i32 33
  %657 = load i64, ptr %656, align 8, !tbaa !94
  %658 = icmp eq i64 %654, %657
  %659 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %658, ptr noundef @.str.1624, ptr noundef %659)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %660

660:                                              ; preds = %738, %637
  %661 = load i64, ptr %6, align 8, !tbaa !58
  %662 = load i64, ptr %13, align 8, !tbaa !58
  %663 = icmp sle i64 %661, %662
  br i1 %663, label %664, label %741

664:                                              ; preds = %660
  %665 = load ptr, ptr %4, align 8, !tbaa !5
  %666 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %665, i32 0, i32 37
  %667 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %666, i32 0, i32 4
  %668 = load ptr, ptr %667, align 8, !tbaa !57
  %669 = load i64, ptr %6, align 8, !tbaa !58
  %670 = getelementptr inbounds double, ptr %668, i64 %669
  %671 = load double, ptr %670, align 8, !tbaa !62
  %672 = load ptr, ptr %4, align 8, !tbaa !5
  %673 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %672, i32 0, i32 83
  %674 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %673, i32 0, i32 51
  %675 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %674, i32 0, i32 4
  %676 = load ptr, ptr %675, align 8, !tbaa !57
  %677 = load i64, ptr %6, align 8, !tbaa !58
  %678 = getelementptr inbounds double, ptr %676, i64 %677
  store double %671, ptr %678, align 8, !tbaa !62
  %679 = load i64, ptr %12, align 8, !tbaa !58
  %680 = load ptr, ptr %4, align 8, !tbaa !5
  %681 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %680, i32 0, i32 83
  %682 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %681, i32 0, i32 52
  %683 = load i64, ptr %6, align 8, !tbaa !58
  %684 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %679, double noundef 0.000000e+00, ptr noundef %682, i64 noundef %683, ptr noundef %684)
  %685 = load ptr, ptr %4, align 8, !tbaa !5
  %686 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %685, i32 0, i32 39
  %687 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %686, i32 0, i32 2
  %688 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %687, i32 0, i32 4
  %689 = load ptr, ptr %688, align 8, !tbaa !57
  %690 = load i64, ptr %6, align 8, !tbaa !58
  %691 = getelementptr inbounds i64, ptr %689, i64 %690
  %692 = load i64, ptr %691, align 8, !tbaa !58
  store i64 %692, ptr %9, align 8, !tbaa !58
  %693 = load ptr, ptr %4, align 8, !tbaa !5
  %694 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %693, i32 0, i32 39
  %695 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %694, i32 0, i32 2
  %696 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %695, i32 0, i32 4
  %697 = load ptr, ptr %696, align 8, !tbaa !57
  %698 = load i64, ptr %6, align 8, !tbaa !58
  %699 = add nsw i64 %698, 1
  %700 = getelementptr inbounds i64, ptr %697, i64 %699
  %701 = load i64, ptr %700, align 8, !tbaa !58
  %702 = sub nsw i64 %701, 1
  store i64 %702, ptr %10, align 8, !tbaa !58
  %703 = load i64, ptr %9, align 8, !tbaa !58
  store i64 %703, ptr %11, align 8, !tbaa !58
  br label %704

704:                                              ; preds = %734, %664
  %705 = load i64, ptr %11, align 8, !tbaa !58
  %706 = load i64, ptr %10, align 8, !tbaa !58
  %707 = icmp sle i64 %705, %706
  br i1 %707, label %708, label %737

708:                                              ; preds = %704
  %709 = load ptr, ptr %4, align 8, !tbaa !5
  %710 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %709, i32 0, i32 39
  %711 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %710, i32 0, i32 0
  %712 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %711, i32 0, i32 4
  %713 = load ptr, ptr %712, align 8, !tbaa !57
  %714 = load i64, ptr %11, align 8, !tbaa !58
  %715 = getelementptr inbounds double, ptr %713, i64 %714
  %716 = load double, ptr %715, align 8, !tbaa !62
  %717 = load ptr, ptr %4, align 8, !tbaa !5
  %718 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %717, i32 0, i32 83
  %719 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %718, i32 0, i32 52
  %720 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %719, i32 0, i32 6
  %721 = load ptr, ptr %720, align 8, !tbaa !57
  %722 = load i64, ptr %6, align 8, !tbaa !58
  %723 = getelementptr inbounds ptr, ptr %721, i64 %722
  %724 = load ptr, ptr %723, align 8, !tbaa !5
  %725 = load ptr, ptr %4, align 8, !tbaa !5
  %726 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %725, i32 0, i32 39
  %727 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %726, i32 0, i32 1
  %728 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %727, i32 0, i32 4
  %729 = load ptr, ptr %728, align 8, !tbaa !57
  %730 = load i64, ptr %11, align 8, !tbaa !58
  %731 = getelementptr inbounds i64, ptr %729, i64 %730
  %732 = load i64, ptr %731, align 8, !tbaa !58
  %733 = getelementptr inbounds double, ptr %724, i64 %732
  store double %716, ptr %733, align 8, !tbaa !62
  br label %734

734:                                              ; preds = %708
  %735 = load i64, ptr %11, align 8, !tbaa !58
  %736 = add nsw i64 %735, 1
  store i64 %736, ptr %11, align 8, !tbaa !58
  br label %704, !llvm.loop !96

737:                                              ; preds = %704
  br label %738

738:                                              ; preds = %737
  %739 = load i64, ptr %6, align 8, !tbaa !58
  %740 = add nsw i64 %739, 1
  store i64 %740, ptr %6, align 8, !tbaa !58
  br label %660, !llvm.loop !97

741:                                              ; preds = %660
  br label %834

742:                                              ; preds = %612
  %743 = load ptr, ptr %4, align 8, !tbaa !5
  %744 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %743, i32 0, i32 28
  store i64 2, ptr %744, align 8, !tbaa !91
  %745 = load ptr, ptr %4, align 8, !tbaa !5
  %746 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %745, i32 0, i32 31
  store i64 1, ptr %746, align 8, !tbaa !92
  %747 = load i64, ptr %13, align 8, !tbaa !58
  %748 = add nsw i64 1, %747
  %749 = load ptr, ptr %4, align 8, !tbaa !5
  %750 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %749, i32 0, i32 32
  store i64 %748, ptr %750, align 8, !tbaa !93
  %751 = load i64, ptr %12, align 8, !tbaa !58
  %752 = load ptr, ptr %4, align 8, !tbaa !5
  %753 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %752, i32 0, i32 33
  store i64 %751, ptr %753, align 8, !tbaa !94
  %754 = load ptr, ptr %4, align 8, !tbaa !5
  %755 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %754, i32 0, i32 34
  store i64 0, ptr %755, align 8, !tbaa !95
  %756 = load i64, ptr %12, align 8, !tbaa !58
  %757 = load ptr, ptr %4, align 8, !tbaa !5
  %758 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %757, i32 0, i32 83
  %759 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %758, i32 0, i32 50
  %760 = load ptr, ptr %4, align 8, !tbaa !5
  %761 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %760, i32 0, i32 36
  %762 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %756, ptr noundef %759, ptr noundef %761, ptr noundef %762)
  %763 = load i64, ptr %12, align 8, !tbaa !58
  %764 = load i64, ptr %13, align 8, !tbaa !58
  %765 = add nsw i64 1, %764
  %766 = mul nsw i64 %763, %765
  %767 = load ptr, ptr %4, align 8, !tbaa !5
  %768 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %767, i32 0, i32 38
  %769 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %766, ptr noundef %768, ptr noundef %769)
  %770 = load i64, ptr %13, align 8, !tbaa !58
  %771 = add nsw i64 1, %770
  %772 = load i64, ptr %12, align 8, !tbaa !58
  %773 = load ptr, ptr %4, align 8, !tbaa !5
  %774 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %773, i32 0, i32 44
  %775 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %771, i64 noundef %772, ptr noundef %774, ptr noundef %775)
  %776 = load ptr, ptr %4, align 8, !tbaa !5
  %777 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %776, i32 0, i32 46
  %778 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %777, i32 0, i32 0
  store i32 1, ptr %778, align 8, !tbaa !9
  br label %4022

779:                                              ; preds = %144
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %780

780:                                              ; preds = %830, %779
  %781 = load i64, ptr %6, align 8, !tbaa !58
  %782 = load i64, ptr %13, align 8, !tbaa !58
  %783 = icmp sle i64 %781, %782
  br i1 %783, label %784, label %833

784:                                              ; preds = %780
  %785 = load ptr, ptr %4, align 8, !tbaa !5
  %786 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %785, i32 0, i32 37
  %787 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %786, i32 0, i32 4
  %788 = load ptr, ptr %787, align 8, !tbaa !57
  %789 = load i64, ptr %6, align 8, !tbaa !58
  %790 = getelementptr inbounds double, ptr %788, i64 %789
  %791 = load double, ptr %790, align 8, !tbaa !62
  %792 = load ptr, ptr %4, align 8, !tbaa !5
  %793 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %792, i32 0, i32 83
  %794 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %793, i32 0, i32 51
  %795 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %794, i32 0, i32 4
  %796 = load ptr, ptr %795, align 8, !tbaa !57
  %797 = load i64, ptr %6, align 8, !tbaa !58
  %798 = getelementptr inbounds double, ptr %796, i64 %797
  store double %791, ptr %798, align 8, !tbaa !62
  store i64 0, ptr %8, align 8, !tbaa !58
  br label %799

799:                                              ; preds = %826, %784
  %800 = load i64, ptr %8, align 8, !tbaa !58
  %801 = load i64, ptr %12, align 8, !tbaa !58
  %802 = sub nsw i64 %801, 1
  %803 = icmp sle i64 %800, %802
  br i1 %803, label %804, label %829

804:                                              ; preds = %799
  %805 = load ptr, ptr %4, align 8, !tbaa !5
  %806 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %805, i32 0, i32 38
  %807 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %806, i32 0, i32 4
  %808 = load ptr, ptr %807, align 8, !tbaa !57
  %809 = load i64, ptr %6, align 8, !tbaa !58
  %810 = load i64, ptr %12, align 8, !tbaa !58
  %811 = mul nsw i64 %809, %810
  %812 = load i64, ptr %8, align 8, !tbaa !58
  %813 = add nsw i64 %811, %812
  %814 = getelementptr inbounds double, ptr %808, i64 %813
  %815 = load double, ptr %814, align 8, !tbaa !62
  %816 = load ptr, ptr %4, align 8, !tbaa !5
  %817 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %816, i32 0, i32 83
  %818 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %817, i32 0, i32 52
  %819 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %818, i32 0, i32 6
  %820 = load ptr, ptr %819, align 8, !tbaa !57
  %821 = load i64, ptr %6, align 8, !tbaa !58
  %822 = getelementptr inbounds ptr, ptr %820, i64 %821
  %823 = load ptr, ptr %822, align 8, !tbaa !5
  %824 = load i64, ptr %8, align 8, !tbaa !58
  %825 = getelementptr inbounds double, ptr %823, i64 %824
  store double %815, ptr %825, align 8, !tbaa !62
  br label %826

826:                                              ; preds = %804
  %827 = load i64, ptr %8, align 8, !tbaa !58
  %828 = add nsw i64 %827, 1
  store i64 %828, ptr %8, align 8, !tbaa !58
  br label %799, !llvm.loop !98

829:                                              ; preds = %799
  br label %830

830:                                              ; preds = %829
  %831 = load i64, ptr %6, align 8, !tbaa !58
  %832 = add nsw i64 %831, 1
  store i64 %832, ptr %6, align 8, !tbaa !58
  br label %780, !llvm.loop !99

833:                                              ; preds = %780
  br label %834

834:                                              ; preds = %833, %741
  br label %932

835:                                              ; preds = %606
  %836 = load ptr, ptr %4, align 8, !tbaa !5
  %837 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %836, i32 0, i32 19
  %838 = load i64, ptr %837, align 8, !tbaa !83
  %839 = icmp eq i64 %838, 1
  %840 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %839, ptr noundef @.str.1625, ptr noundef %840)
  %841 = load ptr, ptr %4, align 8, !tbaa !5
  %842 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %841, i32 0, i32 20
  %843 = load i8, ptr %842, align 8, !tbaa !90, !range !60, !noundef !61
  %844 = trunc i8 %843 to i1
  %845 = xor i1 %844, true
  %846 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %845, ptr noundef @.str.1626, ptr noundef %846)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %847

847:                                              ; preds = %867, %835
  %848 = load i64, ptr %6, align 8, !tbaa !58
  %849 = load i64, ptr %12, align 8, !tbaa !58
  %850 = sub nsw i64 %849, 1
  %851 = icmp sle i64 %848, %850
  br i1 %851, label %852, label %870

852:                                              ; preds = %847
  %853 = load ptr, ptr %4, align 8, !tbaa !5
  %854 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %853, i32 0, i32 83
  %855 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %854, i32 0, i32 50
  %856 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %855, i32 0, i32 4
  %857 = load ptr, ptr %856, align 8, !tbaa !57
  %858 = load i64, ptr %6, align 8, !tbaa !58
  %859 = getelementptr inbounds double, ptr %857, i64 %858
  %860 = load double, ptr %859, align 8, !tbaa !62
  %861 = load ptr, ptr %4, align 8, !tbaa !5
  %862 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %861, i32 0, i32 21
  %863 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %862, i32 0, i32 4
  %864 = load ptr, ptr %863, align 8, !tbaa !57
  %865 = load i64, ptr %6, align 8, !tbaa !58
  %866 = getelementptr inbounds double, ptr %864, i64 %865
  store double %860, ptr %866, align 8, !tbaa !62
  br label %867

867:                                              ; preds = %852
  %868 = load i64, ptr %6, align 8, !tbaa !58
  %869 = add nsw i64 %868, 1
  store i64 %869, ptr %6, align 8, !tbaa !58
  br label %847, !llvm.loop !100

870:                                              ; preds = %847
  %871 = load ptr, ptr %4, align 8, !tbaa !5
  %872 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %871, i32 0, i32 25
  store i8 1, ptr %872, align 8, !tbaa !101
  %873 = load ptr, ptr %4, align 8, !tbaa !5
  %874 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %873, i32 0, i32 46
  %875 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %874, i32 0, i32 0
  store i32 2, ptr %875, align 8, !tbaa !9
  br label %4022

876:                                              ; preds = %151
  %877 = load ptr, ptr %4, align 8, !tbaa !5
  %878 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %877, i32 0, i32 25
  store i8 0, ptr %878, align 8, !tbaa !101
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %879

879:                                              ; preds = %928, %876
  %880 = load i64, ptr %6, align 8, !tbaa !58
  %881 = load i64, ptr %13, align 8, !tbaa !58
  %882 = icmp sle i64 %880, %881
  br i1 %882, label %883, label %931

883:                                              ; preds = %879
  %884 = load ptr, ptr %4, align 8, !tbaa !5
  %885 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %884, i32 0, i32 23
  %886 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %885, i32 0, i32 4
  %887 = load ptr, ptr %886, align 8, !tbaa !57
  %888 = load i64, ptr %6, align 8, !tbaa !58
  %889 = getelementptr inbounds double, ptr %887, i64 %888
  %890 = load double, ptr %889, align 8, !tbaa !62
  %891 = load ptr, ptr %4, align 8, !tbaa !5
  %892 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %891, i32 0, i32 83
  %893 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %892, i32 0, i32 51
  %894 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %893, i32 0, i32 4
  %895 = load ptr, ptr %894, align 8, !tbaa !57
  %896 = load i64, ptr %6, align 8, !tbaa !58
  %897 = getelementptr inbounds double, ptr %895, i64 %896
  store double %890, ptr %897, align 8, !tbaa !62
  store i64 0, ptr %8, align 8, !tbaa !58
  br label %898

898:                                              ; preds = %924, %883
  %899 = load i64, ptr %8, align 8, !tbaa !58
  %900 = load i64, ptr %12, align 8, !tbaa !58
  %901 = sub nsw i64 %900, 1
  %902 = icmp sle i64 %899, %901
  br i1 %902, label %903, label %927

903:                                              ; preds = %898
  %904 = load ptr, ptr %4, align 8, !tbaa !5
  %905 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %904, i32 0, i32 24
  %906 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %905, i32 0, i32 6
  %907 = load ptr, ptr %906, align 8, !tbaa !57
  %908 = load i64, ptr %6, align 8, !tbaa !58
  %909 = getelementptr inbounds ptr, ptr %907, i64 %908
  %910 = load ptr, ptr %909, align 8, !tbaa !5
  %911 = load i64, ptr %8, align 8, !tbaa !58
  %912 = getelementptr inbounds double, ptr %910, i64 %911
  %913 = load double, ptr %912, align 8, !tbaa !62
  %914 = load ptr, ptr %4, align 8, !tbaa !5
  %915 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %914, i32 0, i32 83
  %916 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %915, i32 0, i32 52
  %917 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %916, i32 0, i32 6
  %918 = load ptr, ptr %917, align 8, !tbaa !57
  %919 = load i64, ptr %6, align 8, !tbaa !58
  %920 = getelementptr inbounds ptr, ptr %918, i64 %919
  %921 = load ptr, ptr %920, align 8, !tbaa !5
  %922 = load i64, ptr %8, align 8, !tbaa !58
  %923 = getelementptr inbounds double, ptr %921, i64 %922
  store double %913, ptr %923, align 8, !tbaa !62
  br label %924

924:                                              ; preds = %903
  %925 = load i64, ptr %8, align 8, !tbaa !58
  %926 = add nsw i64 %925, 1
  store i64 %926, ptr %8, align 8, !tbaa !58
  br label %898, !llvm.loop !102

927:                                              ; preds = %898
  br label %928

928:                                              ; preds = %927
  %929 = load i64, ptr %6, align 8, !tbaa !58
  %930 = add nsw i64 %929, 1
  store i64 %930, ptr %6, align 8, !tbaa !58
  br label %879, !llvm.loop !103

931:                                              ; preds = %879
  br label %932

932:                                              ; preds = %931, %834
  br label %584

933:                                              ; preds = %600
  br label %934

934:                                              ; preds = %933, %582
  %935 = load ptr, ptr %4, align 8, !tbaa !5
  %936 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %935, i32 0, i32 8
  %937 = load double, ptr %936, align 8, !tbaa !87
  %938 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %937, double noundef 0.000000e+00)
  br i1 %938, label %939, label %969

939:                                              ; preds = %934
  %940 = load ptr, ptr %4, align 8, !tbaa !5
  %941 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %940, i32 0, i32 53
  %942 = load i64, ptr %12, align 8, !tbaa !58
  %943 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %941, i64 noundef %942, ptr noundef %943)
  %944 = load ptr, ptr %4, align 8, !tbaa !5
  %945 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %944, i32 0, i32 54
  %946 = load i64, ptr %13, align 8, !tbaa !58
  %947 = add nsw i64 1, %946
  %948 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %945, i64 noundef %947, ptr noundef %948)
  %949 = load ptr, ptr %4, align 8, !tbaa !5
  %950 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %949, i32 0, i32 56
  %951 = load i64, ptr %13, align 8, !tbaa !58
  %952 = add nsw i64 1, %951
  %953 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %950, i64 noundef %952, ptr noundef %953)
  %954 = load ptr, ptr %4, align 8, !tbaa !5
  %955 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %954, i32 0, i32 57
  %956 = load i64, ptr %13, align 8, !tbaa !58
  %957 = add nsw i64 1, %956
  %958 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %955, i64 noundef %957, ptr noundef %958)
  %959 = load ptr, ptr %4, align 8, !tbaa !5
  %960 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %959, i32 0, i32 58
  %961 = load i64, ptr %13, align 8, !tbaa !58
  %962 = add nsw i64 1, %961
  %963 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %960, i64 noundef %962, ptr noundef %963)
  %964 = load ptr, ptr %4, align 8, !tbaa !5
  %965 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %964, i32 0, i32 59
  %966 = load i64, ptr %13, align 8, !tbaa !58
  %967 = add nsw i64 1, %966
  %968 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %965, i64 noundef %967, ptr noundef %968)
  br label %969

969:                                              ; preds = %939, %934
  store i8 0, ptr %17, align 1, !tbaa !59
  %970 = load ptr, ptr %4, align 8, !tbaa !5
  %971 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %970, i32 0, i32 2
  %972 = load i64, ptr %971, align 8, !tbaa !80
  %973 = icmp eq i64 %972, 0
  br i1 %973, label %974, label %1021

974:                                              ; preds = %969
  %975 = load ptr, ptr %4, align 8, !tbaa !5
  %976 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %975, i32 0, i32 15
  %977 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl18xlcconverttosparseEPNS_18xlinearconstraintsEPNS_8ae_stateE(ptr noundef %976, ptr noundef %977)
  %978 = load ptr, ptr %4, align 8, !tbaa !5
  %979 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %978, i32 0, i32 11
  %980 = load ptr, ptr %4, align 8, !tbaa !5
  %981 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %980, i32 0, i32 12
  %982 = load ptr, ptr %4, align 8, !tbaa !5
  %983 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %982, i32 0, i32 10
  %984 = load ptr, ptr %4, align 8, !tbaa !5
  %985 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %984, i32 0, i32 52
  %986 = load i64, ptr %12, align 8, !tbaa !58
  %987 = load ptr, ptr %4, align 8, !tbaa !5
  %988 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %987, i32 0, i32 15
  %989 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %988, i32 0, i32 14
  %990 = load ptr, ptr %4, align 8, !tbaa !5
  %991 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %990, i32 0, i32 15
  %992 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %991, i32 0, i32 15
  %993 = load ptr, ptr %4, align 8, !tbaa !5
  %994 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %993, i32 0, i32 15
  %995 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %994, i32 0, i32 16
  %996 = load ptr, ptr %4, align 8, !tbaa !5
  %997 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %996, i32 0, i32 15
  %998 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %997, i32 0, i32 12
  %999 = load ptr, ptr %4, align 8, !tbaa !5
  %1000 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %999, i32 0, i32 15
  %1001 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1000, i32 0, i32 2
  %1002 = load i64, ptr %1001, align 8, !tbaa !76
  %1003 = load ptr, ptr %4, align 8, !tbaa !5
  %1004 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1003, i32 0, i32 15
  %1005 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1004, i32 0, i32 1
  %1006 = load i64, ptr %1005, align 8, !tbaa !77
  %1007 = add nsw i64 %1002, %1006
  %1008 = load ptr, ptr %4, align 8, !tbaa !5
  %1009 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1008, i32 0, i32 17
  %1010 = load ptr, ptr %4, align 8, !tbaa !5
  %1011 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1010, i32 0, i32 18
  %1012 = load i64, ptr %13, align 8, !tbaa !58
  %1013 = load ptr, ptr %4, align 8, !tbaa !5
  %1014 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1013, i32 0, i32 4
  %1015 = load ptr, ptr %4, align 8, !tbaa !5
  %1016 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1015, i32 0, i32 5
  %1017 = load i64, ptr %1016, align 8, !tbaa !104
  %1018 = load ptr, ptr %4, align 8, !tbaa !5
  %1019 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1018, i32 0, i32 75
  %1020 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13minaulinitbufEPKNS_9ae_vectorES2_S2_S2_lPKNS_12sparsematrixES2_S2_S2_lS2_S2_lPKNS_19nlpstoppingcriteriaElPNS_11minaulstateEPNS_8ae_stateE(ptr noundef %979, ptr noundef %981, ptr noundef %983, ptr noundef %985, i64 noundef %986, ptr noundef %989, ptr noundef %992, ptr noundef %995, ptr noundef %998, i64 noundef %1007, ptr noundef %1009, ptr noundef %1011, i64 noundef %1012, ptr noundef %1014, i64 noundef %1017, ptr noundef %1019, ptr noundef %1020)
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1021

1021:                                             ; preds = %974, %969
  %1022 = load ptr, ptr %4, align 8, !tbaa !5
  %1023 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1022, i32 0, i32 2
  %1024 = load i64, ptr %1023, align 8, !tbaa !80
  %1025 = icmp eq i64 %1024, 2
  br i1 %1025, label %1031, label %1026

1026:                                             ; preds = %1021
  %1027 = load ptr, ptr %4, align 8, !tbaa !5
  %1028 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1027, i32 0, i32 2
  %1029 = load i64, ptr %1028, align 8, !tbaa !80
  %1030 = icmp eq i64 %1029, 3
  br i1 %1030, label %1031, label %1089

1031:                                             ; preds = %1026, %1021
  %1032 = load ptr, ptr %4, align 8, !tbaa !5
  %1033 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1032, i32 0, i32 15
  %1034 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl15xlcconverttooldEPNS_18xlinearconstraintsEPNS_8ae_stateE(ptr noundef %1033, ptr noundef %1034)
  %1035 = load ptr, ptr %4, align 8, !tbaa !5
  %1036 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1035, i32 0, i32 17
  %1037 = load ptr, ptr %4, align 8, !tbaa !5
  %1038 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1037, i32 0, i32 18
  %1039 = load i64, ptr %13, align 8, !tbaa !58
  %1040 = load ptr, ptr %4, align 8, !tbaa !5
  %1041 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1040, i32 0, i32 100
  %1042 = load ptr, ptr %4, align 8, !tbaa !5
  %1043 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1042, i32 0, i32 101
  %1044 = load ptr, ptr %4, align 8, !tbaa !5
  %1045 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1044, i32 0, i32 102
  %1046 = load ptr, ptr %4, align 8, !tbaa !5
  %1047 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1046, i32 0, i32 103
  %1048 = load ptr, ptr %4, align 8, !tbaa !5
  %1049 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1048, i32 0, i32 104
  %1050 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl31converttwosidednlctoonesidedoldEPKNS_9ae_vectorES2_lPS0_S3_S3_PlS4_PNS_8ae_stateE(ptr noundef %1036, ptr noundef %1038, i64 noundef %1039, ptr noundef %1041, ptr noundef %1043, ptr noundef %1045, ptr noundef %1047, ptr noundef %1049, ptr noundef %1050)
  %1051 = load ptr, ptr %4, align 8, !tbaa !5
  %1052 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1051, i32 0, i32 11
  %1053 = load ptr, ptr %4, align 8, !tbaa !5
  %1054 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1053, i32 0, i32 12
  %1055 = load ptr, ptr %4, align 8, !tbaa !5
  %1056 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1055, i32 0, i32 10
  %1057 = load ptr, ptr %4, align 8, !tbaa !5
  %1058 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1057, i32 0, i32 52
  %1059 = load i64, ptr %12, align 8, !tbaa !58
  %1060 = load ptr, ptr %4, align 8, !tbaa !5
  %1061 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1060, i32 0, i32 15
  %1062 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1061, i32 0, i32 11
  %1063 = load ptr, ptr %4, align 8, !tbaa !5
  %1064 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1063, i32 0, i32 15
  %1065 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1064, i32 0, i32 12
  %1066 = load ptr, ptr %4, align 8, !tbaa !5
  %1067 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1066, i32 0, i32 15
  %1068 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1067, i32 0, i32 9
  %1069 = load i64, ptr %1068, align 8, !tbaa !105
  %1070 = load ptr, ptr %4, align 8, !tbaa !5
  %1071 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1070, i32 0, i32 15
  %1072 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1071, i32 0, i32 10
  %1073 = load i64, ptr %1072, align 8, !tbaa !106
  %1074 = load ptr, ptr %4, align 8, !tbaa !5
  %1075 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1074, i32 0, i32 103
  %1076 = load i64, ptr %1075, align 8, !tbaa !107
  %1077 = load ptr, ptr %4, align 8, !tbaa !5
  %1078 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1077, i32 0, i32 104
  %1079 = load i64, ptr %1078, align 8, !tbaa !108
  %1080 = load ptr, ptr %4, align 8, !tbaa !5
  %1081 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1080, i32 0, i32 4
  %1082 = load ptr, ptr %4, align 8, !tbaa !5
  %1083 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1082, i32 0, i32 2
  %1084 = load i64, ptr %1083, align 8, !tbaa !80
  %1085 = icmp eq i64 %1084, 3
  %1086 = load ptr, ptr %4, align 8, !tbaa !5
  %1087 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1086, i32 0, i32 80
  %1088 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13minsqpinitbufEPKNS_9ae_vectorES2_S2_S2_lPKNS_9ae_matrixES2_llllPKNS_19nlpstoppingcriteriaEbPNS_11minsqpstateEPNS_8ae_stateE(ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i64 noundef %1059, ptr noundef %1062, ptr noundef %1065, i64 noundef %1069, i64 noundef %1073, i64 noundef %1076, i64 noundef %1079, ptr noundef %1081, i1 noundef zeroext %1085, ptr noundef %1087, ptr noundef %1088)
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1089

1089:                                             ; preds = %1031, %1026
  %1090 = load ptr, ptr %4, align 8, !tbaa !5
  %1091 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1090, i32 0, i32 2
  %1092 = load i64, ptr %1091, align 8, !tbaa !80
  %1093 = icmp eq i64 %1092, 4
  br i1 %1093, label %1099, label %1094

1094:                                             ; preds = %1089
  %1095 = load ptr, ptr %4, align 8, !tbaa !5
  %1096 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1095, i32 0, i32 2
  %1097 = load i64, ptr %1096, align 8, !tbaa !80
  %1098 = icmp eq i64 %1097, 5
  br i1 %1098, label %1099, label %1147

1099:                                             ; preds = %1094, %1089
  %1100 = load ptr, ptr %4, align 8, !tbaa !5
  %1101 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1100, i32 0, i32 15
  %1102 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl18xlcconverttosparseEPNS_18xlinearconstraintsEPNS_8ae_stateE(ptr noundef %1101, ptr noundef %1102)
  %1103 = load ptr, ptr %4, align 8, !tbaa !5
  %1104 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1103, i32 0, i32 11
  %1105 = load ptr, ptr %4, align 8, !tbaa !5
  %1106 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1105, i32 0, i32 12
  %1107 = load ptr, ptr %4, align 8, !tbaa !5
  %1108 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1107, i32 0, i32 10
  %1109 = load ptr, ptr %4, align 8, !tbaa !5
  %1110 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1109, i32 0, i32 52
  %1111 = load i64, ptr %12, align 8, !tbaa !58
  %1112 = load ptr, ptr %4, align 8, !tbaa !5
  %1113 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1112, i32 0, i32 15
  %1114 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1113, i32 0, i32 14
  %1115 = load ptr, ptr %4, align 8, !tbaa !5
  %1116 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1115, i32 0, i32 15
  %1117 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1116, i32 0, i32 15
  %1118 = load ptr, ptr %4, align 8, !tbaa !5
  %1119 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1118, i32 0, i32 15
  %1120 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1119, i32 0, i32 16
  %1121 = load ptr, ptr %4, align 8, !tbaa !5
  %1122 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1121, i32 0, i32 15
  %1123 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1122, i32 0, i32 12
  %1124 = load ptr, ptr %4, align 8, !tbaa !5
  %1125 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1124, i32 0, i32 15
  %1126 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1125, i32 0, i32 2
  %1127 = load i64, ptr %1126, align 8, !tbaa !76
  %1128 = load ptr, ptr %4, align 8, !tbaa !5
  %1129 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1128, i32 0, i32 15
  %1130 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %1129, i32 0, i32 1
  %1131 = load i64, ptr %1130, align 8, !tbaa !77
  %1132 = add nsw i64 %1127, %1131
  %1133 = load ptr, ptr %4, align 8, !tbaa !5
  %1134 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1133, i32 0, i32 17
  %1135 = load ptr, ptr %4, align 8, !tbaa !5
  %1136 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1135, i32 0, i32 18
  %1137 = load i64, ptr %13, align 8, !tbaa !58
  %1138 = load ptr, ptr %4, align 8, !tbaa !5
  %1139 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1138, i32 0, i32 4
  %1140 = load ptr, ptr %4, align 8, !tbaa !5
  %1141 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1140, i32 0, i32 2
  %1142 = load i64, ptr %1141, align 8, !tbaa !80
  %1143 = icmp eq i64 %1142, 5
  %1144 = load ptr, ptr %4, align 8, !tbaa !5
  %1145 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1144, i32 0, i32 81
  %1146 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl14minfsqpinitbufEPKNS_9ae_vectorES2_S2_S2_lPKNS_12sparsematrixES2_S2_S2_lS2_S2_lPKNS_19nlpstoppingcriteriaEbPNS_12minfsqpstateEPNS_8ae_stateE(ptr noundef %1104, ptr noundef %1106, ptr noundef %1108, ptr noundef %1110, i64 noundef %1111, ptr noundef %1114, ptr noundef %1117, ptr noundef %1120, ptr noundef %1123, i64 noundef %1132, ptr noundef %1134, ptr noundef %1136, i64 noundef %1137, ptr noundef %1139, i1 noundef zeroext %1143, ptr noundef %1145, ptr noundef %1146)
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1147

1147:                                             ; preds = %1099, %1094
  %1148 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %1149 = trunc i8 %1148 to i1
  %1150 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1149, ptr noundef @.str.1627, ptr noundef %1150)
  br label %1151

1151:                                             ; preds = %3623, %1147
  %1152 = load ptr, ptr %4, align 8, !tbaa !5
  %1153 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL25minnlc_clearrequestfieldsEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %1152, ptr noundef %1153)
  store i64 0, ptr %18, align 8, !tbaa !58
  store i8 1, ptr %19, align 1, !tbaa !59
  store i8 0, ptr %17, align 1, !tbaa !59
  %1154 = load ptr, ptr %4, align 8, !tbaa !5
  %1155 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1154, i32 0, i32 2
  %1156 = load i64, ptr %1155, align 8, !tbaa !80
  %1157 = icmp eq i64 %1156, 0
  br i1 %1157, label %1158, label %1277

1158:                                             ; preds = %1151
  %1159 = load ptr, ptr %4, align 8, !tbaa !5
  %1160 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1159, i32 0, i32 75
  %1161 = load ptr, ptr %4, align 8, !tbaa !5
  %1162 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1161, i32 0, i32 83
  %1163 = load ptr, ptr %4, align 8, !tbaa !5
  %1164 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1163, i32 0, i32 79
  %1165 = load i8, ptr %1164, align 8, !tbaa !63, !range !60, !noundef !61
  %1166 = trunc i8 %1165 to i1
  %1167 = load ptr, ptr %5, align 8, !tbaa !5
  %1168 = call noundef zeroext i1 @_ZN11alglib_impl15minauliterationEPNS_11minaulstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %1160, ptr noundef %1162, i1 noundef zeroext %1166, ptr noundef %1167)
  br i1 %1168, label %1170, label %1169

1169:                                             ; preds = %1158
  br label %3627

1170:                                             ; preds = %1158
  %1171 = load ptr, ptr %4, align 8, !tbaa !5
  %1172 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1171, i32 0, i32 75
  %1173 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1172, i32 0, i32 27
  %1174 = load i8, ptr %1173, align 8, !tbaa !109, !range !60, !noundef !61
  %1175 = trunc i8 %1174 to i1
  br i1 %1175, label %1176, label %1215

1176:                                             ; preds = %1170
  %1177 = load ptr, ptr %4, align 8, !tbaa !5
  %1178 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1177, i32 0, i32 19
  %1179 = load i64, ptr %1178, align 8, !tbaa !83
  %1180 = icmp eq i64 %1179, 2
  br i1 %1180, label %1181, label %1195

1181:                                             ; preds = %1176
  %1182 = load ptr, ptr %4, align 8, !tbaa !5
  %1183 = load ptr, ptr %4, align 8, !tbaa !5
  %1184 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1183, i32 0, i32 75
  %1185 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1184, i32 0, i32 23
  %1186 = load ptr, ptr %4, align 8, !tbaa !5
  %1187 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1186, i32 0, i32 75
  %1188 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1187, i32 0, i32 6
  %1189 = load ptr, ptr %4, align 8, !tbaa !5
  %1190 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1189, i32 0, i32 75
  %1191 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1190, i32 0, i32 7
  %1192 = load ptr, ptr %4, align 8, !tbaa !5
  %1193 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1192, i32 0, i32 36
  %1194 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1182, ptr noundef %1185, ptr noundef %1188, ptr noundef %1191, ptr noundef %1193, ptr noundef %1194)
  br label %1214

1195:                                             ; preds = %1176
  %1196 = load ptr, ptr %4, align 8, !tbaa !5
  %1197 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1196, i32 0, i32 19
  %1198 = load i64, ptr %1197, align 8, !tbaa !83
  %1199 = icmp eq i64 %1198, 1
  %1200 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1199, ptr noundef @.str.1628, ptr noundef %1200)
  %1201 = load ptr, ptr %4, align 8, !tbaa !5
  %1202 = load ptr, ptr %4, align 8, !tbaa !5
  %1203 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1202, i32 0, i32 75
  %1204 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1203, i32 0, i32 23
  %1205 = load ptr, ptr %4, align 8, !tbaa !5
  %1206 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1205, i32 0, i32 75
  %1207 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1206, i32 0, i32 6
  %1208 = load ptr, ptr %4, align 8, !tbaa !5
  %1209 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1208, i32 0, i32 75
  %1210 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1209, i32 0, i32 7
  %1211 = load ptr, ptr %4, align 8, !tbaa !5
  %1212 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1211, i32 0, i32 21
  %1213 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1201, ptr noundef %1204, ptr noundef %1207, ptr noundef %1210, ptr noundef %1212, ptr noundef %1213)
  br label %1214

1214:                                             ; preds = %1195, %1181
  store i64 2, ptr %18, align 8, !tbaa !58
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1215

1215:                                             ; preds = %1214, %1170
  %1216 = load ptr, ptr %4, align 8, !tbaa !5
  %1217 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1216, i32 0, i32 75
  %1218 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1217, i32 0, i32 29
  %1219 = load i8, ptr %1218, align 2, !tbaa !110, !range !60, !noundef !61
  %1220 = trunc i8 %1219 to i1
  br i1 %1220, label %1221, label %1276

1221:                                             ; preds = %1215
  %1222 = load ptr, ptr %4, align 8, !tbaa !5
  %1223 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1222, i32 0, i32 19
  %1224 = load i64, ptr %1223, align 8, !tbaa !83
  %1225 = icmp eq i64 %1224, 2
  br i1 %1225, label %1226, label %1250

1226:                                             ; preds = %1221
  %1227 = load i64, ptr %12, align 8, !tbaa !58
  %1228 = load ptr, ptr %4, align 8, !tbaa !5
  %1229 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1228, i32 0, i32 29
  %1230 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1227, ptr noundef %1229, ptr noundef %1230)
  %1231 = load ptr, ptr %4, align 8, !tbaa !5
  %1232 = load ptr, ptr %4, align 8, !tbaa !5
  %1233 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1232, i32 0, i32 75
  %1234 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1233, i32 0, i32 23
  %1235 = load ptr, ptr %4, align 8, !tbaa !5
  %1236 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1235, i32 0, i32 75
  %1237 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1236, i32 0, i32 6
  %1238 = load ptr, ptr %4, align 8, !tbaa !5
  %1239 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1238, i32 0, i32 75
  %1240 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1239, i32 0, i32 7
  %1241 = load ptr, ptr %4, align 8, !tbaa !5
  %1242 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1241, i32 0, i32 29
  %1243 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1231, ptr noundef %1234, ptr noundef %1237, ptr noundef %1240, ptr noundef %1242, ptr noundef %1243)
  %1244 = load ptr, ptr %4, align 8, !tbaa !5
  %1245 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1244, i32 0, i32 75
  %1246 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1245, i32 0, i32 26
  %1247 = load double, ptr %1246, align 8, !tbaa !111
  %1248 = load ptr, ptr %4, align 8, !tbaa !5
  %1249 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1248, i32 0, i32 30
  store double %1247, ptr %1249, align 8, !tbaa !112
  br label %1275

1250:                                             ; preds = %1221
  %1251 = load ptr, ptr %4, align 8, !tbaa !5
  %1252 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1251, i32 0, i32 19
  %1253 = load i64, ptr %1252, align 8, !tbaa !83
  %1254 = icmp eq i64 %1253, 1
  %1255 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1254, ptr noundef @.str.1629, ptr noundef %1255)
  %1256 = load ptr, ptr %4, align 8, !tbaa !5
  %1257 = load ptr, ptr %4, align 8, !tbaa !5
  %1258 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1257, i32 0, i32 75
  %1259 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1258, i32 0, i32 23
  %1260 = load ptr, ptr %4, align 8, !tbaa !5
  %1261 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1260, i32 0, i32 75
  %1262 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1261, i32 0, i32 6
  %1263 = load ptr, ptr %4, align 8, !tbaa !5
  %1264 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1263, i32 0, i32 75
  %1265 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1264, i32 0, i32 7
  %1266 = load ptr, ptr %4, align 8, !tbaa !5
  %1267 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1266, i32 0, i32 21
  %1268 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1256, ptr noundef %1259, ptr noundef %1262, ptr noundef %1265, ptr noundef %1267, ptr noundef %1268)
  %1269 = load ptr, ptr %4, align 8, !tbaa !5
  %1270 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1269, i32 0, i32 75
  %1271 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1270, i32 0, i32 26
  %1272 = load double, ptr %1271, align 8, !tbaa !111
  %1273 = load ptr, ptr %4, align 8, !tbaa !5
  %1274 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1273, i32 0, i32 22
  store double %1272, ptr %1274, align 8, !tbaa !113
  br label %1275

1275:                                             ; preds = %1250, %1226
  store i64 -1, ptr %18, align 8, !tbaa !58
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1276

1276:                                             ; preds = %1275, %1215
  br label %1277

1277:                                             ; preds = %1276, %1151
  %1278 = load ptr, ptr %4, align 8, !tbaa !5
  %1279 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1278, i32 0, i32 2
  %1280 = load i64, ptr %1279, align 8, !tbaa !80
  %1281 = icmp eq i64 %1280, 2
  br i1 %1281, label %1287, label %1282

1282:                                             ; preds = %1277
  %1283 = load ptr, ptr %4, align 8, !tbaa !5
  %1284 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1283, i32 0, i32 2
  %1285 = load i64, ptr %1284, align 8, !tbaa !80
  %1286 = icmp eq i64 %1285, 3
  br i1 %1286, label %1287, label %1406

1287:                                             ; preds = %1282, %1277
  %1288 = load ptr, ptr %4, align 8, !tbaa !5
  %1289 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1288, i32 0, i32 80
  %1290 = load ptr, ptr %4, align 8, !tbaa !5
  %1291 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1290, i32 0, i32 83
  %1292 = load ptr, ptr %4, align 8, !tbaa !5
  %1293 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1292, i32 0, i32 79
  %1294 = load i8, ptr %1293, align 8, !tbaa !63, !range !60, !noundef !61
  %1295 = trunc i8 %1294 to i1
  %1296 = load ptr, ptr %5, align 8, !tbaa !5
  %1297 = call noundef zeroext i1 @_ZN11alglib_impl15minsqpiterationEPNS_11minsqpstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %1289, ptr noundef %1291, i1 noundef zeroext %1295, ptr noundef %1296)
  br i1 %1297, label %1299, label %1298

1298:                                             ; preds = %1287
  br label %3627

1299:                                             ; preds = %1287
  %1300 = load ptr, ptr %4, align 8, !tbaa !5
  %1301 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1300, i32 0, i32 80
  %1302 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1301, i32 0, i32 19
  %1303 = load i8, ptr %1302, align 8, !tbaa !114, !range !60, !noundef !61
  %1304 = trunc i8 %1303 to i1
  br i1 %1304, label %1305, label %1344

1305:                                             ; preds = %1299
  %1306 = load ptr, ptr %4, align 8, !tbaa !5
  %1307 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1306, i32 0, i32 19
  %1308 = load i64, ptr %1307, align 8, !tbaa !83
  %1309 = icmp eq i64 %1308, 2
  br i1 %1309, label %1310, label %1324

1310:                                             ; preds = %1305
  %1311 = load ptr, ptr %4, align 8, !tbaa !5
  %1312 = load ptr, ptr %4, align 8, !tbaa !5
  %1313 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1312, i32 0, i32 80
  %1314 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1313, i32 0, i32 15
  %1315 = load ptr, ptr %4, align 8, !tbaa !5
  %1316 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1315, i32 0, i32 80
  %1317 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1316, i32 0, i32 11
  %1318 = load ptr, ptr %4, align 8, !tbaa !5
  %1319 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1318, i32 0, i32 80
  %1320 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1319, i32 0, i32 12
  %1321 = load ptr, ptr %4, align 8, !tbaa !5
  %1322 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1321, i32 0, i32 36
  %1323 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1311, ptr noundef %1314, ptr noundef %1317, ptr noundef %1320, ptr noundef %1322, ptr noundef %1323)
  br label %1343

1324:                                             ; preds = %1305
  %1325 = load ptr, ptr %4, align 8, !tbaa !5
  %1326 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1325, i32 0, i32 19
  %1327 = load i64, ptr %1326, align 8, !tbaa !83
  %1328 = icmp eq i64 %1327, 1
  %1329 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1328, ptr noundef @.str.1630, ptr noundef %1329)
  %1330 = load ptr, ptr %4, align 8, !tbaa !5
  %1331 = load ptr, ptr %4, align 8, !tbaa !5
  %1332 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1331, i32 0, i32 80
  %1333 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1332, i32 0, i32 15
  %1334 = load ptr, ptr %4, align 8, !tbaa !5
  %1335 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1334, i32 0, i32 80
  %1336 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1335, i32 0, i32 11
  %1337 = load ptr, ptr %4, align 8, !tbaa !5
  %1338 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1337, i32 0, i32 80
  %1339 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1338, i32 0, i32 12
  %1340 = load ptr, ptr %4, align 8, !tbaa !5
  %1341 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1340, i32 0, i32 21
  %1342 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1330, ptr noundef %1333, ptr noundef %1336, ptr noundef %1339, ptr noundef %1341, ptr noundef %1342)
  br label %1343

1343:                                             ; preds = %1324, %1310
  store i64 2, ptr %18, align 8, !tbaa !58
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1344

1344:                                             ; preds = %1343, %1299
  %1345 = load ptr, ptr %4, align 8, !tbaa !5
  %1346 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1345, i32 0, i32 80
  %1347 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1346, i32 0, i32 20
  %1348 = load i8, ptr %1347, align 1, !tbaa !115, !range !60, !noundef !61
  %1349 = trunc i8 %1348 to i1
  br i1 %1349, label %1350, label %1405

1350:                                             ; preds = %1344
  %1351 = load ptr, ptr %4, align 8, !tbaa !5
  %1352 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1351, i32 0, i32 19
  %1353 = load i64, ptr %1352, align 8, !tbaa !83
  %1354 = icmp eq i64 %1353, 2
  br i1 %1354, label %1355, label %1379

1355:                                             ; preds = %1350
  %1356 = load i64, ptr %12, align 8, !tbaa !58
  %1357 = load ptr, ptr %4, align 8, !tbaa !5
  %1358 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1357, i32 0, i32 29
  %1359 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1356, ptr noundef %1358, ptr noundef %1359)
  %1360 = load ptr, ptr %4, align 8, !tbaa !5
  %1361 = load ptr, ptr %4, align 8, !tbaa !5
  %1362 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1361, i32 0, i32 80
  %1363 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1362, i32 0, i32 15
  %1364 = load ptr, ptr %4, align 8, !tbaa !5
  %1365 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1364, i32 0, i32 80
  %1366 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1365, i32 0, i32 11
  %1367 = load ptr, ptr %4, align 8, !tbaa !5
  %1368 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1367, i32 0, i32 80
  %1369 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1368, i32 0, i32 12
  %1370 = load ptr, ptr %4, align 8, !tbaa !5
  %1371 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1370, i32 0, i32 29
  %1372 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1360, ptr noundef %1363, ptr noundef %1366, ptr noundef %1369, ptr noundef %1371, ptr noundef %1372)
  %1373 = load ptr, ptr %4, align 8, !tbaa !5
  %1374 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1373, i32 0, i32 80
  %1375 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1374, i32 0, i32 18
  %1376 = load double, ptr %1375, align 8, !tbaa !116
  %1377 = load ptr, ptr %4, align 8, !tbaa !5
  %1378 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1377, i32 0, i32 30
  store double %1376, ptr %1378, align 8, !tbaa !112
  br label %1404

1379:                                             ; preds = %1350
  %1380 = load ptr, ptr %4, align 8, !tbaa !5
  %1381 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1380, i32 0, i32 19
  %1382 = load i64, ptr %1381, align 8, !tbaa !83
  %1383 = icmp eq i64 %1382, 1
  %1384 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1383, ptr noundef @.str.1631, ptr noundef %1384)
  %1385 = load ptr, ptr %4, align 8, !tbaa !5
  %1386 = load ptr, ptr %4, align 8, !tbaa !5
  %1387 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1386, i32 0, i32 80
  %1388 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1387, i32 0, i32 15
  %1389 = load ptr, ptr %4, align 8, !tbaa !5
  %1390 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1389, i32 0, i32 80
  %1391 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1390, i32 0, i32 11
  %1392 = load ptr, ptr %4, align 8, !tbaa !5
  %1393 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1392, i32 0, i32 80
  %1394 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1393, i32 0, i32 12
  %1395 = load ptr, ptr %4, align 8, !tbaa !5
  %1396 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1395, i32 0, i32 21
  %1397 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1385, ptr noundef %1388, ptr noundef %1391, ptr noundef %1394, ptr noundef %1396, ptr noundef %1397)
  %1398 = load ptr, ptr %4, align 8, !tbaa !5
  %1399 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1398, i32 0, i32 80
  %1400 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %1399, i32 0, i32 18
  %1401 = load double, ptr %1400, align 8, !tbaa !116
  %1402 = load ptr, ptr %4, align 8, !tbaa !5
  %1403 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1402, i32 0, i32 22
  store double %1401, ptr %1403, align 8, !tbaa !113
  br label %1404

1404:                                             ; preds = %1379, %1355
  store i64 -1, ptr %18, align 8, !tbaa !58
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1405

1405:                                             ; preds = %1404, %1344
  br label %1406

1406:                                             ; preds = %1405, %1282
  %1407 = load ptr, ptr %4, align 8, !tbaa !5
  %1408 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1407, i32 0, i32 2
  %1409 = load i64, ptr %1408, align 8, !tbaa !80
  %1410 = icmp eq i64 %1409, 4
  br i1 %1410, label %1416, label %1411

1411:                                             ; preds = %1406
  %1412 = load ptr, ptr %4, align 8, !tbaa !5
  %1413 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1412, i32 0, i32 2
  %1414 = load i64, ptr %1413, align 8, !tbaa !80
  %1415 = icmp eq i64 %1414, 5
  br i1 %1415, label %1416, label %1535

1416:                                             ; preds = %1411, %1406
  %1417 = load ptr, ptr %4, align 8, !tbaa !5
  %1418 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1417, i32 0, i32 81
  %1419 = load ptr, ptr %4, align 8, !tbaa !5
  %1420 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1419, i32 0, i32 83
  %1421 = load ptr, ptr %4, align 8, !tbaa !5
  %1422 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1421, i32 0, i32 79
  %1423 = load i8, ptr %1422, align 8, !tbaa !63, !range !60, !noundef !61
  %1424 = trunc i8 %1423 to i1
  %1425 = load ptr, ptr %5, align 8, !tbaa !5
  %1426 = call noundef zeroext i1 @_ZN11alglib_impl16minfsqpiterationEPNS_12minfsqpstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %1418, ptr noundef %1420, i1 noundef zeroext %1424, ptr noundef %1425)
  br i1 %1426, label %1428, label %1427

1427:                                             ; preds = %1416
  br label %3627

1428:                                             ; preds = %1416
  %1429 = load ptr, ptr %4, align 8, !tbaa !5
  %1430 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1429, i32 0, i32 81
  %1431 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1430, i32 0, i32 32
  %1432 = load i8, ptr %1431, align 8, !tbaa !117, !range !60, !noundef !61
  %1433 = trunc i8 %1432 to i1
  br i1 %1433, label %1434, label %1473

1434:                                             ; preds = %1428
  %1435 = load ptr, ptr %4, align 8, !tbaa !5
  %1436 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1435, i32 0, i32 19
  %1437 = load i64, ptr %1436, align 8, !tbaa !83
  %1438 = icmp eq i64 %1437, 2
  br i1 %1438, label %1439, label %1453

1439:                                             ; preds = %1434
  %1440 = load ptr, ptr %4, align 8, !tbaa !5
  %1441 = load ptr, ptr %4, align 8, !tbaa !5
  %1442 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1441, i32 0, i32 81
  %1443 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1442, i32 0, i32 28
  %1444 = load ptr, ptr %4, align 8, !tbaa !5
  %1445 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1444, i32 0, i32 81
  %1446 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1445, i32 0, i32 14
  %1447 = load ptr, ptr %4, align 8, !tbaa !5
  %1448 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1447, i32 0, i32 81
  %1449 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1448, i32 0, i32 15
  %1450 = load ptr, ptr %4, align 8, !tbaa !5
  %1451 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1450, i32 0, i32 36
  %1452 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1440, ptr noundef %1443, ptr noundef %1446, ptr noundef %1449, ptr noundef %1451, ptr noundef %1452)
  br label %1472

1453:                                             ; preds = %1434
  %1454 = load ptr, ptr %4, align 8, !tbaa !5
  %1455 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1454, i32 0, i32 19
  %1456 = load i64, ptr %1455, align 8, !tbaa !83
  %1457 = icmp eq i64 %1456, 1
  %1458 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1457, ptr noundef @.str.1630, ptr noundef %1458)
  %1459 = load ptr, ptr %4, align 8, !tbaa !5
  %1460 = load ptr, ptr %4, align 8, !tbaa !5
  %1461 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1460, i32 0, i32 81
  %1462 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1461, i32 0, i32 28
  %1463 = load ptr, ptr %4, align 8, !tbaa !5
  %1464 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1463, i32 0, i32 81
  %1465 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1464, i32 0, i32 14
  %1466 = load ptr, ptr %4, align 8, !tbaa !5
  %1467 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1466, i32 0, i32 81
  %1468 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1467, i32 0, i32 15
  %1469 = load ptr, ptr %4, align 8, !tbaa !5
  %1470 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1469, i32 0, i32 21
  %1471 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1459, ptr noundef %1462, ptr noundef %1465, ptr noundef %1468, ptr noundef %1470, ptr noundef %1471)
  br label %1472

1472:                                             ; preds = %1453, %1439
  store i64 2, ptr %18, align 8, !tbaa !58
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1473

1473:                                             ; preds = %1472, %1428
  %1474 = load ptr, ptr %4, align 8, !tbaa !5
  %1475 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1474, i32 0, i32 81
  %1476 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1475, i32 0, i32 33
  %1477 = load i8, ptr %1476, align 1, !tbaa !118, !range !60, !noundef !61
  %1478 = trunc i8 %1477 to i1
  br i1 %1478, label %1479, label %1534

1479:                                             ; preds = %1473
  %1480 = load ptr, ptr %4, align 8, !tbaa !5
  %1481 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1480, i32 0, i32 19
  %1482 = load i64, ptr %1481, align 8, !tbaa !83
  %1483 = icmp eq i64 %1482, 2
  br i1 %1483, label %1484, label %1508

1484:                                             ; preds = %1479
  %1485 = load i64, ptr %12, align 8, !tbaa !58
  %1486 = load ptr, ptr %4, align 8, !tbaa !5
  %1487 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1486, i32 0, i32 29
  %1488 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1485, ptr noundef %1487, ptr noundef %1488)
  %1489 = load ptr, ptr %4, align 8, !tbaa !5
  %1490 = load ptr, ptr %4, align 8, !tbaa !5
  %1491 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1490, i32 0, i32 81
  %1492 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1491, i32 0, i32 28
  %1493 = load ptr, ptr %4, align 8, !tbaa !5
  %1494 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1493, i32 0, i32 81
  %1495 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1494, i32 0, i32 14
  %1496 = load ptr, ptr %4, align 8, !tbaa !5
  %1497 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1496, i32 0, i32 81
  %1498 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1497, i32 0, i32 15
  %1499 = load ptr, ptr %4, align 8, !tbaa !5
  %1500 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1499, i32 0, i32 29
  %1501 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1489, ptr noundef %1492, ptr noundef %1495, ptr noundef %1498, ptr noundef %1500, ptr noundef %1501)
  %1502 = load ptr, ptr %4, align 8, !tbaa !5
  %1503 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1502, i32 0, i32 81
  %1504 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1503, i32 0, i32 31
  %1505 = load double, ptr %1504, align 8, !tbaa !119
  %1506 = load ptr, ptr %4, align 8, !tbaa !5
  %1507 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1506, i32 0, i32 30
  store double %1505, ptr %1507, align 8, !tbaa !112
  br label %1533

1508:                                             ; preds = %1479
  %1509 = load ptr, ptr %4, align 8, !tbaa !5
  %1510 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1509, i32 0, i32 19
  %1511 = load i64, ptr %1510, align 8, !tbaa !83
  %1512 = icmp eq i64 %1511, 1
  %1513 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1512, ptr noundef @.str.1631, ptr noundef %1513)
  %1514 = load ptr, ptr %4, align 8, !tbaa !5
  %1515 = load ptr, ptr %4, align 8, !tbaa !5
  %1516 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1515, i32 0, i32 81
  %1517 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1516, i32 0, i32 28
  %1518 = load ptr, ptr %4, align 8, !tbaa !5
  %1519 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1518, i32 0, i32 81
  %1520 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1519, i32 0, i32 14
  %1521 = load ptr, ptr %4, align 8, !tbaa !5
  %1522 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1521, i32 0, i32 81
  %1523 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1522, i32 0, i32 15
  %1524 = load ptr, ptr %4, align 8, !tbaa !5
  %1525 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1524, i32 0, i32 21
  %1526 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %1514, ptr noundef %1517, ptr noundef %1520, ptr noundef %1523, ptr noundef %1525, ptr noundef %1526)
  %1527 = load ptr, ptr %4, align 8, !tbaa !5
  %1528 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1527, i32 0, i32 81
  %1529 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %1528, i32 0, i32 31
  %1530 = load double, ptr %1529, align 8, !tbaa !119
  %1531 = load ptr, ptr %4, align 8, !tbaa !5
  %1532 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1531, i32 0, i32 22
  store double %1530, ptr %1532, align 8, !tbaa !113
  br label %1533

1533:                                             ; preds = %1508, %1484
  store i64 -1, ptr %18, align 8, !tbaa !58
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1534

1534:                                             ; preds = %1533, %1473
  br label %1535

1535:                                             ; preds = %1534, %1411
  %1536 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %1537 = trunc i8 %1536 to i1
  %1538 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1537, ptr noundef @.str.1632, ptr noundef %1538)
  store i8 0, ptr %17, align 1, !tbaa !59
  %1539 = load i64, ptr %18, align 8, !tbaa !58
  %1540 = icmp ne i64 %1539, -1
  br i1 %1540, label %1541, label %1542

1541:                                             ; preds = %1535
  br label %1580

1542:                                             ; preds = %1535
  %1543 = load ptr, ptr %4, align 8, !tbaa !5
  %1544 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1543, i32 0, i32 6
  %1545 = load i8, ptr %1544, align 8, !tbaa !120, !range !60, !noundef !61
  %1546 = trunc i8 %1545 to i1
  br i1 %1546, label %1548, label %1547

1547:                                             ; preds = %1542
  br label %1579

1548:                                             ; preds = %1542
  %1549 = load ptr, ptr %4, align 8, !tbaa !5
  %1550 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1549, i32 0, i32 19
  %1551 = load i64, ptr %1550, align 8, !tbaa !83
  %1552 = icmp ne i64 %1551, 2
  br i1 %1552, label %1553, label %1554

1553:                                             ; preds = %1548
  br label %1564

1554:                                             ; preds = %1548
  %1555 = load ptr, ptr %4, align 8, !tbaa !5
  %1556 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1555, i32 0, i32 28
  store i64 -1, ptr %1556, align 8, !tbaa !91
  %1557 = load i64, ptr %12, align 8, !tbaa !58
  %1558 = load ptr, ptr %4, align 8, !tbaa !5
  %1559 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1558, i32 0, i32 33
  store i64 %1557, ptr %1559, align 8, !tbaa !94
  %1560 = load ptr, ptr %4, align 8, !tbaa !5
  %1561 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1560, i32 0, i32 46
  %1562 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1561, i32 0, i32 0
  store i32 3, ptr %1562, align 8, !tbaa !9
  br label %4022

1563:                                             ; preds = %158
  br label %1578

1564:                                             ; preds = %1553
  %1565 = load ptr, ptr %4, align 8, !tbaa !5
  %1566 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1565, i32 0, i32 19
  %1567 = load i64, ptr %1566, align 8, !tbaa !83
  %1568 = icmp eq i64 %1567, 1
  %1569 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1568, ptr noundef @.str.1633, ptr noundef %1569)
  %1570 = load ptr, ptr %4, align 8, !tbaa !5
  %1571 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1570, i32 0, i32 27
  store i8 1, ptr %1571, align 2, !tbaa !121
  %1572 = load ptr, ptr %4, align 8, !tbaa !5
  %1573 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1572, i32 0, i32 46
  %1574 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1573, i32 0, i32 0
  store i32 4, ptr %1574, align 8, !tbaa !9
  br label %4022

1575:                                             ; preds = %165
  %1576 = load ptr, ptr %4, align 8, !tbaa !5
  %1577 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1576, i32 0, i32 27
  store i8 0, ptr %1577, align 2, !tbaa !121
  br label %1578

1578:                                             ; preds = %1575, %1563
  br label %1579

1579:                                             ; preds = %1578, %1547
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %1580

1580:                                             ; preds = %1579, %1541
  %1581 = load i64, ptr %18, align 8, !tbaa !58
  %1582 = icmp eq i64 %1581, 2
  br i1 %1582, label %1583, label %1588

1583:                                             ; preds = %1580
  %1584 = load ptr, ptr %4, align 8, !tbaa !5
  %1585 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1584, i32 0, i32 8
  %1586 = load double, ptr %1585, align 8, !tbaa !87
  %1587 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1586, double noundef 0.000000e+00)
  br i1 %1587, label %1589, label %1588

1588:                                             ; preds = %1583, %1580
  br label %2699

1589:                                             ; preds = %1583
  store i8 1, ptr %19, align 1, !tbaa !59
  %1590 = load ptr, ptr %4, align 8, !tbaa !5
  %1591 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1590, i32 0, i32 19
  %1592 = load i64, ptr %1591, align 8, !tbaa !83
  %1593 = icmp ne i64 %1592, 2
  br i1 %1593, label %1594, label %1595

1594:                                             ; preds = %1589
  br label %2029

1595:                                             ; preds = %1589
  %1596 = load ptr, ptr %4, align 8, !tbaa !5
  %1597 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1596, i32 0, i32 28
  store i64 5, ptr %1597, align 8, !tbaa !91
  %1598 = load ptr, ptr %4, align 8, !tbaa !5
  %1599 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1598, i32 0, i32 31
  store i64 1, ptr %1599, align 8, !tbaa !92
  %1600 = load i64, ptr %13, align 8, !tbaa !58
  %1601 = add nsw i64 1, %1600
  %1602 = load ptr, ptr %4, align 8, !tbaa !5
  %1603 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1602, i32 0, i32 32
  store i64 %1601, ptr %1603, align 8, !tbaa !93
  %1604 = load i64, ptr %12, align 8, !tbaa !58
  %1605 = load ptr, ptr %4, align 8, !tbaa !5
  %1606 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1605, i32 0, i32 33
  store i64 %1604, ptr %1606, align 8, !tbaa !94
  %1607 = load ptr, ptr %4, align 8, !tbaa !5
  %1608 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1607, i32 0, i32 34
  store i64 0, ptr %1608, align 8, !tbaa !95
  %1609 = load ptr, ptr %4, align 8, !tbaa !5
  %1610 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1609, i32 0, i32 35
  store i64 2, ptr %1610, align 8, !tbaa !122
  %1611 = load i64, ptr %12, align 8, !tbaa !58
  %1612 = load i64, ptr %13, align 8, !tbaa !58
  %1613 = add nsw i64 1, %1612
  %1614 = mul nsw i64 %1611, %1613
  %1615 = load ptr, ptr %4, align 8, !tbaa !5
  %1616 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1615, i32 0, i32 38
  %1617 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1614, ptr noundef %1616, ptr noundef %1617)
  %1618 = load i64, ptr %13, align 8, !tbaa !58
  %1619 = add nsw i64 1, %1618
  %1620 = load i64, ptr %12, align 8, !tbaa !58
  %1621 = load ptr, ptr %4, align 8, !tbaa !5
  %1622 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1621, i32 0, i32 44
  %1623 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1619, i64 noundef %1620, ptr noundef %1622, ptr noundef %1623)
  %1624 = load ptr, ptr %4, align 8, !tbaa !5
  %1625 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1624, i32 0, i32 36
  %1626 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1625, i32 0, i32 0
  %1627 = load i64, ptr %1626, align 8, !tbaa !123
  %1628 = load i64, ptr %12, align 8, !tbaa !58
  %1629 = load ptr, ptr %4, align 8, !tbaa !5
  %1630 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1629, i32 0, i32 35
  %1631 = load i64, ptr %1630, align 8, !tbaa !122
  %1632 = mul nsw i64 %1631, 3
  %1633 = load i64, ptr %12, align 8, !tbaa !58
  %1634 = mul nsw i64 %1632, %1633
  %1635 = add nsw i64 %1628, %1634
  %1636 = icmp sge i64 %1627, %1635
  %1637 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1636, ptr noundef @.str.1634, ptr noundef %1637)
  %1638 = load i64, ptr %12, align 8, !tbaa !58
  %1639 = load ptr, ptr %4, align 8, !tbaa !5
  %1640 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1639, i32 0, i32 36
  %1641 = load ptr, ptr %4, align 8, !tbaa !5
  %1642 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1641, i32 0, i32 53
  %1643 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1638, ptr noundef %1640, ptr noundef %1642, ptr noundef %1643)
  %1644 = load ptr, ptr %4, align 8, !tbaa !5
  %1645 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1644, i32 0, i32 35
  %1646 = load i64, ptr %1645, align 8, !tbaa !122
  %1647 = mul nsw i64 %1646, 3
  %1648 = load i64, ptr %12, align 8, !tbaa !58
  %1649 = mul nsw i64 %1647, %1648
  %1650 = load ptr, ptr %4, align 8, !tbaa !5
  %1651 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1650, i32 0, i32 36
  %1652 = load i64, ptr %12, align 8, !tbaa !58
  %1653 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rsetvxEldPNS_9ae_vectorElPNS_8ae_stateE(i64 noundef %1649, double noundef 0.000000e+00, ptr noundef %1651, i64 noundef %1652, ptr noundef %1653)
  store i64 0, ptr %8, align 8, !tbaa !58
  br label %1654

1654:                                             ; preds = %2007, %1595
  %1655 = load i64, ptr %8, align 8, !tbaa !58
  %1656 = load i64, ptr %12, align 8, !tbaa !58
  %1657 = sub nsw i64 %1656, 1
  %1658 = icmp sle i64 %1655, %1657
  br i1 %1658, label %1659, label %2010

1659:                                             ; preds = %1654
  %1660 = load ptr, ptr %4, align 8, !tbaa !5
  %1661 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1660, i32 0, i32 53
  %1662 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1661, i32 0, i32 4
  %1663 = load ptr, ptr %1662, align 8, !tbaa !57
  %1664 = load i64, ptr %8, align 8, !tbaa !58
  %1665 = getelementptr inbounds double, ptr %1663, i64 %1664
  %1666 = load double, ptr %1665, align 8, !tbaa !62
  %1667 = load ptr, ptr %4, align 8, !tbaa !5
  %1668 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1667, i32 0, i32 10
  %1669 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1668, i32 0, i32 4
  %1670 = load ptr, ptr %1669, align 8, !tbaa !57
  %1671 = load i64, ptr %8, align 8, !tbaa !58
  %1672 = getelementptr inbounds double, ptr %1670, i64 %1671
  %1673 = load double, ptr %1672, align 8, !tbaa !62
  %1674 = load ptr, ptr %4, align 8, !tbaa !5
  %1675 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1674, i32 0, i32 8
  %1676 = load double, ptr %1675, align 8, !tbaa !87
  %1677 = fneg double %1673
  %1678 = call double @llvm.fmuladd.f64(double %1677, double %1676, double %1666)
  store double %1678, ptr %15, align 8, !tbaa !62
  %1679 = load ptr, ptr %4, align 8, !tbaa !5
  %1680 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1679, i32 0, i32 53
  %1681 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1680, i32 0, i32 4
  %1682 = load ptr, ptr %1681, align 8, !tbaa !57
  %1683 = load i64, ptr %8, align 8, !tbaa !58
  %1684 = getelementptr inbounds double, ptr %1682, i64 %1683
  %1685 = load double, ptr %1684, align 8, !tbaa !62
  %1686 = load ptr, ptr %4, align 8, !tbaa !5
  %1687 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1686, i32 0, i32 10
  %1688 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1687, i32 0, i32 4
  %1689 = load ptr, ptr %1688, align 8, !tbaa !57
  %1690 = load i64, ptr %8, align 8, !tbaa !58
  %1691 = getelementptr inbounds double, ptr %1689, i64 %1690
  %1692 = load double, ptr %1691, align 8, !tbaa !62
  %1693 = load ptr, ptr %4, align 8, !tbaa !5
  %1694 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1693, i32 0, i32 8
  %1695 = load double, ptr %1694, align 8, !tbaa !87
  %1696 = call double @llvm.fmuladd.f64(double %1692, double %1695, double %1685)
  store double %1696, ptr %16, align 8, !tbaa !62
  %1697 = load ptr, ptr %4, align 8, !tbaa !5
  %1698 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1697, i32 0, i32 13
  %1699 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1698, i32 0, i32 4
  %1700 = load ptr, ptr %1699, align 8, !tbaa !57
  %1701 = load i64, ptr %8, align 8, !tbaa !58
  %1702 = getelementptr inbounds i8, ptr %1700, i64 %1701
  %1703 = load i8, ptr %1702, align 1, !tbaa !59, !range !60, !noundef !61
  %1704 = trunc i8 %1703 to i1
  br i1 %1704, label %1705, label %1715

1705:                                             ; preds = %1659
  %1706 = load double, ptr %15, align 8, !tbaa !62
  %1707 = load ptr, ptr %4, align 8, !tbaa !5
  %1708 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1707, i32 0, i32 11
  %1709 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1708, i32 0, i32 4
  %1710 = load ptr, ptr %1709, align 8, !tbaa !57
  %1711 = load i64, ptr %8, align 8, !tbaa !58
  %1712 = getelementptr inbounds double, ptr %1710, i64 %1711
  %1713 = load double, ptr %1712, align 8, !tbaa !62
  %1714 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1706, double noundef %1713)
  br i1 %1714, label %1734, label %1715

1715:                                             ; preds = %1705, %1659
  %1716 = load ptr, ptr %4, align 8, !tbaa !5
  %1717 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1716, i32 0, i32 14
  %1718 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1717, i32 0, i32 4
  %1719 = load ptr, ptr %1718, align 8, !tbaa !57
  %1720 = load i64, ptr %8, align 8, !tbaa !58
  %1721 = getelementptr inbounds i8, ptr %1719, i64 %1720
  %1722 = load i8, ptr %1721, align 1, !tbaa !59, !range !60, !noundef !61
  %1723 = trunc i8 %1722 to i1
  br i1 %1723, label %1724, label %1855

1724:                                             ; preds = %1715
  %1725 = load double, ptr %16, align 8, !tbaa !62
  %1726 = load ptr, ptr %4, align 8, !tbaa !5
  %1727 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1726, i32 0, i32 12
  %1728 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1727, i32 0, i32 4
  %1729 = load ptr, ptr %1728, align 8, !tbaa !57
  %1730 = load i64, ptr %8, align 8, !tbaa !58
  %1731 = getelementptr inbounds double, ptr %1729, i64 %1730
  %1732 = load double, ptr %1731, align 8, !tbaa !62
  %1733 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1725, double noundef %1732)
  br i1 %1733, label %1734, label %1855

1734:                                             ; preds = %1724, %1705
  %1735 = load ptr, ptr %4, align 8, !tbaa !5
  %1736 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1735, i32 0, i32 13
  %1737 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1736, i32 0, i32 4
  %1738 = load ptr, ptr %1737, align 8, !tbaa !57
  %1739 = load i64, ptr %8, align 8, !tbaa !58
  %1740 = getelementptr inbounds i8, ptr %1738, i64 %1739
  %1741 = load i8, ptr %1740, align 1, !tbaa !59, !range !60, !noundef !61
  %1742 = trunc i8 %1741 to i1
  br i1 %1742, label %1743, label %1761

1743:                                             ; preds = %1734
  %1744 = load double, ptr %15, align 8, !tbaa !62
  %1745 = load ptr, ptr %4, align 8, !tbaa !5
  %1746 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1745, i32 0, i32 11
  %1747 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1746, i32 0, i32 4
  %1748 = load ptr, ptr %1747, align 8, !tbaa !57
  %1749 = load i64, ptr %8, align 8, !tbaa !58
  %1750 = getelementptr inbounds double, ptr %1748, i64 %1749
  %1751 = load double, ptr %1750, align 8, !tbaa !62
  %1752 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1744, double noundef %1751)
  br i1 %1752, label %1753, label %1761

1753:                                             ; preds = %1743
  %1754 = load ptr, ptr %4, align 8, !tbaa !5
  %1755 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1754, i32 0, i32 11
  %1756 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1755, i32 0, i32 4
  %1757 = load ptr, ptr %1756, align 8, !tbaa !57
  %1758 = load i64, ptr %8, align 8, !tbaa !58
  %1759 = getelementptr inbounds double, ptr %1757, i64 %1758
  %1760 = load double, ptr %1759, align 8, !tbaa !62
  store double %1760, ptr %15, align 8, !tbaa !62
  br label %1761

1761:                                             ; preds = %1753, %1743, %1734
  %1762 = load ptr, ptr %4, align 8, !tbaa !5
  %1763 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1762, i32 0, i32 14
  %1764 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1763, i32 0, i32 4
  %1765 = load ptr, ptr %1764, align 8, !tbaa !57
  %1766 = load i64, ptr %8, align 8, !tbaa !58
  %1767 = getelementptr inbounds i8, ptr %1765, i64 %1766
  %1768 = load i8, ptr %1767, align 1, !tbaa !59, !range !60, !noundef !61
  %1769 = trunc i8 %1768 to i1
  br i1 %1769, label %1770, label %1788

1770:                                             ; preds = %1761
  %1771 = load double, ptr %16, align 8, !tbaa !62
  %1772 = load ptr, ptr %4, align 8, !tbaa !5
  %1773 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1772, i32 0, i32 12
  %1774 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1773, i32 0, i32 4
  %1775 = load ptr, ptr %1774, align 8, !tbaa !57
  %1776 = load i64, ptr %8, align 8, !tbaa !58
  %1777 = getelementptr inbounds double, ptr %1775, i64 %1776
  %1778 = load double, ptr %1777, align 8, !tbaa !62
  %1779 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1771, double noundef %1778)
  br i1 %1779, label %1780, label %1788

1780:                                             ; preds = %1770
  %1781 = load ptr, ptr %4, align 8, !tbaa !5
  %1782 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1781, i32 0, i32 12
  %1783 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1782, i32 0, i32 4
  %1784 = load ptr, ptr %1783, align 8, !tbaa !57
  %1785 = load i64, ptr %8, align 8, !tbaa !58
  %1786 = getelementptr inbounds double, ptr %1784, i64 %1785
  %1787 = load double, ptr %1786, align 8, !tbaa !62
  store double %1787, ptr %16, align 8, !tbaa !62
  br label %1788

1788:                                             ; preds = %1780, %1770, %1761
  %1789 = load double, ptr %15, align 8, !tbaa !62
  %1790 = load double, ptr %16, align 8, !tbaa !62
  %1791 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1789, double noundef %1790)
  %1792 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1791, ptr noundef @.str.1635, ptr noundef %1792)
  %1793 = load double, ptr %15, align 8, !tbaa !62
  %1794 = load double, ptr %16, align 8, !tbaa !62
  %1795 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1793, double noundef %1794)
  br i1 %1795, label %1796, label %1797

1796:                                             ; preds = %1788
  br label %2007

1797:                                             ; preds = %1788
  %1798 = load double, ptr %16, align 8, !tbaa !62
  %1799 = load ptr, ptr %4, align 8, !tbaa !5
  %1800 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1799, i32 0, i32 36
  %1801 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1800, i32 0, i32 4
  %1802 = load ptr, ptr %1801, align 8, !tbaa !57
  %1803 = load i64, ptr %12, align 8, !tbaa !58
  %1804 = load ptr, ptr %4, align 8, !tbaa !5
  %1805 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1804, i32 0, i32 35
  %1806 = load i64, ptr %1805, align 8, !tbaa !122
  %1807 = mul nsw i64 %1806, 3
  %1808 = load i64, ptr %8, align 8, !tbaa !58
  %1809 = mul nsw i64 %1807, %1808
  %1810 = add nsw i64 %1803, %1809
  %1811 = add nsw i64 %1810, 3
  %1812 = add nsw i64 %1811, 0
  %1813 = getelementptr inbounds double, ptr %1802, i64 %1812
  store double %1798, ptr %1813, align 8, !tbaa !62
  %1814 = load double, ptr %15, align 8, !tbaa !62
  %1815 = load ptr, ptr %4, align 8, !tbaa !5
  %1816 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1815, i32 0, i32 36
  %1817 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1816, i32 0, i32 4
  %1818 = load ptr, ptr %1817, align 8, !tbaa !57
  %1819 = load i64, ptr %12, align 8, !tbaa !58
  %1820 = load ptr, ptr %4, align 8, !tbaa !5
  %1821 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1820, i32 0, i32 35
  %1822 = load i64, ptr %1821, align 8, !tbaa !122
  %1823 = mul nsw i64 %1822, 3
  %1824 = load i64, ptr %8, align 8, !tbaa !58
  %1825 = mul nsw i64 %1823, %1824
  %1826 = add nsw i64 %1819, %1825
  %1827 = add nsw i64 %1826, 3
  %1828 = add nsw i64 %1827, 1
  %1829 = getelementptr inbounds double, ptr %1818, i64 %1828
  store double %1814, ptr %1829, align 8, !tbaa !62
  %1830 = load double, ptr %16, align 8, !tbaa !62
  %1831 = load double, ptr %15, align 8, !tbaa !62
  %1832 = fsub double %1830, %1831
  %1833 = fdiv double 1.000000e+00, %1832
  %1834 = load ptr, ptr %4, align 8, !tbaa !5
  %1835 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1834, i32 0, i32 36
  %1836 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1835, i32 0, i32 4
  %1837 = load ptr, ptr %1836, align 8, !tbaa !57
  %1838 = load i64, ptr %12, align 8, !tbaa !58
  %1839 = load ptr, ptr %4, align 8, !tbaa !5
  %1840 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1839, i32 0, i32 35
  %1841 = load i64, ptr %1840, align 8, !tbaa !122
  %1842 = mul nsw i64 %1841, 3
  %1843 = load i64, ptr %8, align 8, !tbaa !58
  %1844 = mul nsw i64 %1842, %1843
  %1845 = add nsw i64 %1838, %1844
  %1846 = add nsw i64 %1845, 3
  %1847 = add nsw i64 %1846, 2
  %1848 = getelementptr inbounds double, ptr %1837, i64 %1847
  store double %1833, ptr %1848, align 8, !tbaa !62
  %1849 = load ptr, ptr %4, align 8, !tbaa !5
  %1850 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1849, i32 0, i32 87
  %1851 = load i64, ptr %1850, align 8, !tbaa !67
  %1852 = add nsw i64 %1851, 2
  %1853 = load ptr, ptr %4, align 8, !tbaa !5
  %1854 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1853, i32 0, i32 87
  store i64 %1852, ptr %1854, align 8, !tbaa !67
  br label %2006

1855:                                             ; preds = %1724, %1715
  %1856 = load ptr, ptr %4, align 8, !tbaa !5
  %1857 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1856, i32 0, i32 53
  %1858 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1857, i32 0, i32 4
  %1859 = load ptr, ptr %1858, align 8, !tbaa !57
  %1860 = load i64, ptr %8, align 8, !tbaa !58
  %1861 = getelementptr inbounds double, ptr %1859, i64 %1860
  %1862 = load double, ptr %1861, align 8, !tbaa !62
  %1863 = load ptr, ptr %4, align 8, !tbaa !5
  %1864 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1863, i32 0, i32 10
  %1865 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1864, i32 0, i32 4
  %1866 = load ptr, ptr %1865, align 8, !tbaa !57
  %1867 = load i64, ptr %8, align 8, !tbaa !58
  %1868 = getelementptr inbounds double, ptr %1866, i64 %1867
  %1869 = load double, ptr %1868, align 8, !tbaa !62
  %1870 = fmul double 5.000000e-01, %1869
  %1871 = load ptr, ptr %4, align 8, !tbaa !5
  %1872 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1871, i32 0, i32 8
  %1873 = load double, ptr %1872, align 8, !tbaa !87
  %1874 = call double @llvm.fmuladd.f64(double %1870, double %1873, double %1862)
  %1875 = load ptr, ptr %4, align 8, !tbaa !5
  %1876 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1875, i32 0, i32 36
  %1877 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1876, i32 0, i32 4
  %1878 = load ptr, ptr %1877, align 8, !tbaa !57
  %1879 = load i64, ptr %12, align 8, !tbaa !58
  %1880 = load ptr, ptr %4, align 8, !tbaa !5
  %1881 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1880, i32 0, i32 35
  %1882 = load i64, ptr %1881, align 8, !tbaa !122
  %1883 = mul nsw i64 %1882, 3
  %1884 = load i64, ptr %8, align 8, !tbaa !58
  %1885 = mul nsw i64 %1883, %1884
  %1886 = add nsw i64 %1879, %1885
  %1887 = add nsw i64 %1886, 0
  %1888 = add nsw i64 %1887, 0
  %1889 = getelementptr inbounds double, ptr %1878, i64 %1888
  store double %1874, ptr %1889, align 8, !tbaa !62
  %1890 = load ptr, ptr %4, align 8, !tbaa !5
  %1891 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1890, i32 0, i32 53
  %1892 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1891, i32 0, i32 4
  %1893 = load ptr, ptr %1892, align 8, !tbaa !57
  %1894 = load i64, ptr %8, align 8, !tbaa !58
  %1895 = getelementptr inbounds double, ptr %1893, i64 %1894
  %1896 = load double, ptr %1895, align 8, !tbaa !62
  %1897 = load ptr, ptr %4, align 8, !tbaa !5
  %1898 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1897, i32 0, i32 10
  %1899 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1898, i32 0, i32 4
  %1900 = load ptr, ptr %1899, align 8, !tbaa !57
  %1901 = load i64, ptr %8, align 8, !tbaa !58
  %1902 = getelementptr inbounds double, ptr %1900, i64 %1901
  %1903 = load double, ptr %1902, align 8, !tbaa !62
  %1904 = fmul double 5.000000e-01, %1903
  %1905 = load ptr, ptr %4, align 8, !tbaa !5
  %1906 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1905, i32 0, i32 8
  %1907 = load double, ptr %1906, align 8, !tbaa !87
  %1908 = fneg double %1904
  %1909 = call double @llvm.fmuladd.f64(double %1908, double %1907, double %1896)
  %1910 = load ptr, ptr %4, align 8, !tbaa !5
  %1911 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1910, i32 0, i32 36
  %1912 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1911, i32 0, i32 4
  %1913 = load ptr, ptr %1912, align 8, !tbaa !57
  %1914 = load i64, ptr %12, align 8, !tbaa !58
  %1915 = load ptr, ptr %4, align 8, !tbaa !5
  %1916 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1915, i32 0, i32 35
  %1917 = load i64, ptr %1916, align 8, !tbaa !122
  %1918 = mul nsw i64 %1917, 3
  %1919 = load i64, ptr %8, align 8, !tbaa !58
  %1920 = mul nsw i64 %1918, %1919
  %1921 = add nsw i64 %1914, %1920
  %1922 = add nsw i64 %1921, 0
  %1923 = add nsw i64 %1922, 1
  %1924 = getelementptr inbounds double, ptr %1913, i64 %1923
  store double %1909, ptr %1924, align 8, !tbaa !62
  %1925 = load ptr, ptr %4, align 8, !tbaa !5
  %1926 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1925, i32 0, i32 36
  %1927 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1926, i32 0, i32 4
  %1928 = load ptr, ptr %1927, align 8, !tbaa !57
  %1929 = load i64, ptr %12, align 8, !tbaa !58
  %1930 = load ptr, ptr %4, align 8, !tbaa !5
  %1931 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1930, i32 0, i32 35
  %1932 = load i64, ptr %1931, align 8, !tbaa !122
  %1933 = mul nsw i64 %1932, 3
  %1934 = load i64, ptr %8, align 8, !tbaa !58
  %1935 = mul nsw i64 %1933, %1934
  %1936 = add nsw i64 %1929, %1935
  %1937 = add nsw i64 %1936, 0
  %1938 = add nsw i64 %1937, 2
  %1939 = getelementptr inbounds double, ptr %1928, i64 %1938
  store double -8.000000e+00, ptr %1939, align 8, !tbaa !62
  %1940 = load double, ptr %16, align 8, !tbaa !62
  %1941 = load ptr, ptr %4, align 8, !tbaa !5
  %1942 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1941, i32 0, i32 36
  %1943 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1942, i32 0, i32 4
  %1944 = load ptr, ptr %1943, align 8, !tbaa !57
  %1945 = load i64, ptr %12, align 8, !tbaa !58
  %1946 = load ptr, ptr %4, align 8, !tbaa !5
  %1947 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1946, i32 0, i32 35
  %1948 = load i64, ptr %1947, align 8, !tbaa !122
  %1949 = mul nsw i64 %1948, 3
  %1950 = load i64, ptr %8, align 8, !tbaa !58
  %1951 = mul nsw i64 %1949, %1950
  %1952 = add nsw i64 %1945, %1951
  %1953 = add nsw i64 %1952, 3
  %1954 = add nsw i64 %1953, 0
  %1955 = getelementptr inbounds double, ptr %1944, i64 %1954
  store double %1940, ptr %1955, align 8, !tbaa !62
  %1956 = load double, ptr %15, align 8, !tbaa !62
  %1957 = load ptr, ptr %4, align 8, !tbaa !5
  %1958 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1957, i32 0, i32 36
  %1959 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1958, i32 0, i32 4
  %1960 = load ptr, ptr %1959, align 8, !tbaa !57
  %1961 = load i64, ptr %12, align 8, !tbaa !58
  %1962 = load ptr, ptr %4, align 8, !tbaa !5
  %1963 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1962, i32 0, i32 35
  %1964 = load i64, ptr %1963, align 8, !tbaa !122
  %1965 = mul nsw i64 %1964, 3
  %1966 = load i64, ptr %8, align 8, !tbaa !58
  %1967 = mul nsw i64 %1965, %1966
  %1968 = add nsw i64 %1961, %1967
  %1969 = add nsw i64 %1968, 3
  %1970 = add nsw i64 %1969, 1
  %1971 = getelementptr inbounds double, ptr %1960, i64 %1970
  store double %1956, ptr %1971, align 8, !tbaa !62
  %1972 = load ptr, ptr %4, align 8, !tbaa !5
  %1973 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1972, i32 0, i32 8
  %1974 = load double, ptr %1973, align 8, !tbaa !87
  %1975 = fmul double 6.000000e+00, %1974
  %1976 = load ptr, ptr %4, align 8, !tbaa !5
  %1977 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1976, i32 0, i32 10
  %1978 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1977, i32 0, i32 4
  %1979 = load ptr, ptr %1978, align 8, !tbaa !57
  %1980 = load i64, ptr %8, align 8, !tbaa !58
  %1981 = getelementptr inbounds double, ptr %1979, i64 %1980
  %1982 = load double, ptr %1981, align 8, !tbaa !62
  %1983 = fmul double %1975, %1982
  %1984 = fdiv double -1.000000e+00, %1983
  %1985 = load ptr, ptr %4, align 8, !tbaa !5
  %1986 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1985, i32 0, i32 36
  %1987 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1986, i32 0, i32 4
  %1988 = load ptr, ptr %1987, align 8, !tbaa !57
  %1989 = load i64, ptr %12, align 8, !tbaa !58
  %1990 = load ptr, ptr %4, align 8, !tbaa !5
  %1991 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1990, i32 0, i32 35
  %1992 = load i64, ptr %1991, align 8, !tbaa !122
  %1993 = mul nsw i64 %1992, 3
  %1994 = load i64, ptr %8, align 8, !tbaa !58
  %1995 = mul nsw i64 %1993, %1994
  %1996 = add nsw i64 %1989, %1995
  %1997 = add nsw i64 %1996, 3
  %1998 = add nsw i64 %1997, 2
  %1999 = getelementptr inbounds double, ptr %1988, i64 %1998
  store double %1984, ptr %1999, align 8, !tbaa !62
  %2000 = load ptr, ptr %4, align 8, !tbaa !5
  %2001 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2000, i32 0, i32 87
  %2002 = load i64, ptr %2001, align 8, !tbaa !67
  %2003 = add nsw i64 %2002, 4
  %2004 = load ptr, ptr %4, align 8, !tbaa !5
  %2005 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2004, i32 0, i32 87
  store i64 %2003, ptr %2005, align 8, !tbaa !67
  br label %2006

2006:                                             ; preds = %1855, %1797
  br label %2007

2007:                                             ; preds = %2006, %1796
  %2008 = load i64, ptr %8, align 8, !tbaa !58
  %2009 = add nsw i64 %2008, 1
  store i64 %2009, ptr %8, align 8, !tbaa !58
  br label %1654, !llvm.loop !124

2010:                                             ; preds = %1654
  %2011 = load i64, ptr %12, align 8, !tbaa !58
  %2012 = load ptr, ptr %4, align 8, !tbaa !5
  %2013 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2012, i32 0, i32 53
  %2014 = load ptr, ptr %4, align 8, !tbaa !5
  %2015 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2014, i32 0, i32 21
  %2016 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2011, ptr noundef %2013, ptr noundef %2015, ptr noundef %2016)
  %2017 = load ptr, ptr %4, align 8, !tbaa !5
  %2018 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2017, i32 0, i32 46
  %2019 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2018, i32 0, i32 0
  store i32 5, ptr %2019, align 8, !tbaa !9
  br label %4022

2020:                                             ; preds = %172
  %2021 = load ptr, ptr %4, align 8, !tbaa !5
  %2022 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2021, i32 0, i32 26
  store i8 0, ptr %2022, align 1, !tbaa !125
  %2023 = load ptr, ptr %4, align 8, !tbaa !5
  %2024 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2023, i32 0, i32 87
  %2025 = load i64, ptr %2024, align 8, !tbaa !67
  %2026 = add nsw i64 %2025, 1
  %2027 = load ptr, ptr %4, align 8, !tbaa !5
  %2028 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2027, i32 0, i32 87
  store i64 %2026, ptr %2028, align 8, !tbaa !67
  br label %2698

2029:                                             ; preds = %1594
  %2030 = load ptr, ptr %4, align 8, !tbaa !5
  %2031 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2030, i32 0, i32 19
  %2032 = load i64, ptr %2031, align 8, !tbaa !83
  %2033 = icmp eq i64 %2032, 1
  %2034 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2033, ptr noundef @.str.1636, ptr noundef %2034)
  %2035 = load ptr, ptr %4, align 8, !tbaa !5
  %2036 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2035, i32 0, i32 24
  %2037 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2036, i32 0, i32 0
  %2038 = load i64, ptr %2037, align 8, !tbaa !85
  %2039 = load i64, ptr %13, align 8, !tbaa !58
  %2040 = add nsw i64 1, %2039
  %2041 = icmp eq i64 %2038, %2040
  br i1 %2041, label %2042, label %2049

2042:                                             ; preds = %2029
  %2043 = load ptr, ptr %4, align 8, !tbaa !5
  %2044 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2043, i32 0, i32 24
  %2045 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2044, i32 0, i32 1
  %2046 = load i64, ptr %2045, align 8, !tbaa !86
  %2047 = load i64, ptr %12, align 8, !tbaa !58
  %2048 = icmp eq i64 %2046, %2047
  br label %2049

2049:                                             ; preds = %2042, %2029
  %2050 = phi i1 [ false, %2029 ], [ %2048, %2042 ]
  %2051 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2050, ptr noundef @.str.1637, ptr noundef %2051)
  %2052 = load i64, ptr %12, align 8, !tbaa !58
  %2053 = load ptr, ptr %4, align 8, !tbaa !5
  %2054 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2053, i32 0, i32 74
  %2055 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2052, double noundef 0.000000e+00, ptr noundef %2054, ptr noundef %2055)
  %2056 = load ptr, ptr %4, align 8, !tbaa !5
  %2057 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2056, i32 0, i32 26
  store i8 1, ptr %2057, align 1, !tbaa !125
  %2058 = load i64, ptr %12, align 8, !tbaa !58
  %2059 = load ptr, ptr %4, align 8, !tbaa !5
  %2060 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2059, i32 0, i32 21
  %2061 = load ptr, ptr %4, align 8, !tbaa !5
  %2062 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2061, i32 0, i32 53
  %2063 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2058, ptr noundef %2060, ptr noundef %2062, ptr noundef %2063)
  store i64 0, ptr %8, align 8, !tbaa !58
  br label %2064

2064:                                             ; preds = %2589, %2049
  %2065 = load i64, ptr %8, align 8, !tbaa !58
  %2066 = load i64, ptr %12, align 8, !tbaa !58
  %2067 = sub nsw i64 %2066, 1
  %2068 = icmp sgt i64 %2065, %2067
  br i1 %2068, label %2069, label %2070

2069:                                             ; preds = %2064
  br label %2592

2070:                                             ; preds = %2064
  %2071 = load ptr, ptr %4, align 8, !tbaa !5
  %2072 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2071, i32 0, i32 53
  %2073 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2072, i32 0, i32 4
  %2074 = load ptr, ptr %2073, align 8, !tbaa !57
  %2075 = load i64, ptr %8, align 8, !tbaa !58
  %2076 = getelementptr inbounds double, ptr %2074, i64 %2075
  %2077 = load double, ptr %2076, align 8, !tbaa !62
  %2078 = load ptr, ptr %4, align 8, !tbaa !5
  %2079 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2078, i32 0, i32 10
  %2080 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2079, i32 0, i32 4
  %2081 = load ptr, ptr %2080, align 8, !tbaa !57
  %2082 = load i64, ptr %8, align 8, !tbaa !58
  %2083 = getelementptr inbounds double, ptr %2081, i64 %2082
  %2084 = load double, ptr %2083, align 8, !tbaa !62
  %2085 = load ptr, ptr %4, align 8, !tbaa !5
  %2086 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2085, i32 0, i32 8
  %2087 = load double, ptr %2086, align 8, !tbaa !87
  %2088 = fneg double %2084
  %2089 = call double @llvm.fmuladd.f64(double %2088, double %2087, double %2077)
  store double %2089, ptr %15, align 8, !tbaa !62
  %2090 = load ptr, ptr %4, align 8, !tbaa !5
  %2091 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2090, i32 0, i32 53
  %2092 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2091, i32 0, i32 4
  %2093 = load ptr, ptr %2092, align 8, !tbaa !57
  %2094 = load i64, ptr %8, align 8, !tbaa !58
  %2095 = getelementptr inbounds double, ptr %2093, i64 %2094
  %2096 = load double, ptr %2095, align 8, !tbaa !62
  %2097 = load ptr, ptr %4, align 8, !tbaa !5
  %2098 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2097, i32 0, i32 10
  %2099 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2098, i32 0, i32 4
  %2100 = load ptr, ptr %2099, align 8, !tbaa !57
  %2101 = load i64, ptr %8, align 8, !tbaa !58
  %2102 = getelementptr inbounds double, ptr %2100, i64 %2101
  %2103 = load double, ptr %2102, align 8, !tbaa !62
  %2104 = load ptr, ptr %4, align 8, !tbaa !5
  %2105 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2104, i32 0, i32 8
  %2106 = load double, ptr %2105, align 8, !tbaa !87
  %2107 = call double @llvm.fmuladd.f64(double %2103, double %2106, double %2096)
  store double %2107, ptr %16, align 8, !tbaa !62
  %2108 = load ptr, ptr %4, align 8, !tbaa !5
  %2109 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2108, i32 0, i32 13
  %2110 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2109, i32 0, i32 4
  %2111 = load ptr, ptr %2110, align 8, !tbaa !57
  %2112 = load i64, ptr %8, align 8, !tbaa !58
  %2113 = getelementptr inbounds i8, ptr %2111, i64 %2112
  %2114 = load i8, ptr %2113, align 1, !tbaa !59, !range !60, !noundef !61
  %2115 = trunc i8 %2114 to i1
  br i1 %2115, label %2116, label %2126

2116:                                             ; preds = %2070
  %2117 = load double, ptr %15, align 8, !tbaa !62
  %2118 = load ptr, ptr %4, align 8, !tbaa !5
  %2119 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2118, i32 0, i32 11
  %2120 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2119, i32 0, i32 4
  %2121 = load ptr, ptr %2120, align 8, !tbaa !57
  %2122 = load i64, ptr %8, align 8, !tbaa !58
  %2123 = getelementptr inbounds double, ptr %2121, i64 %2122
  %2124 = load double, ptr %2123, align 8, !tbaa !62
  %2125 = fcmp olt double %2117, %2124
  br i1 %2125, label %2146, label %2126

2126:                                             ; preds = %2116, %2070
  %2127 = load ptr, ptr %4, align 8, !tbaa !5
  %2128 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2127, i32 0, i32 14
  %2129 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2128, i32 0, i32 4
  %2130 = load ptr, ptr %2129, align 8, !tbaa !57
  %2131 = load i64, ptr %8, align 8, !tbaa !58
  %2132 = getelementptr inbounds i8, ptr %2130, i64 %2131
  %2133 = load i8, ptr %2132, align 1, !tbaa !59, !range !60, !noundef !61
  %2134 = trunc i8 %2133 to i1
  br i1 %2134, label %2135, label %2145

2135:                                             ; preds = %2126
  %2136 = load double, ptr %16, align 8, !tbaa !62
  %2137 = load ptr, ptr %4, align 8, !tbaa !5
  %2138 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2137, i32 0, i32 12
  %2139 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2138, i32 0, i32 4
  %2140 = load ptr, ptr %2139, align 8, !tbaa !57
  %2141 = load i64, ptr %8, align 8, !tbaa !58
  %2142 = getelementptr inbounds double, ptr %2140, i64 %2141
  %2143 = load double, ptr %2142, align 8, !tbaa !62
  %2144 = fcmp ogt double %2136, %2143
  br i1 %2144, label %2146, label %2145

2145:                                             ; preds = %2135, %2126
  br label %2329

2146:                                             ; preds = %2135, %2116
  %2147 = load ptr, ptr %4, align 8, !tbaa !5
  %2148 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2147, i32 0, i32 13
  %2149 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2148, i32 0, i32 4
  %2150 = load ptr, ptr %2149, align 8, !tbaa !57
  %2151 = load i64, ptr %8, align 8, !tbaa !58
  %2152 = getelementptr inbounds i8, ptr %2150, i64 %2151
  %2153 = load i8, ptr %2152, align 1, !tbaa !59, !range !60, !noundef !61
  %2154 = trunc i8 %2153 to i1
  br i1 %2154, label %2155, label %2173

2155:                                             ; preds = %2146
  %2156 = load double, ptr %15, align 8, !tbaa !62
  %2157 = load ptr, ptr %4, align 8, !tbaa !5
  %2158 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2157, i32 0, i32 11
  %2159 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2158, i32 0, i32 4
  %2160 = load ptr, ptr %2159, align 8, !tbaa !57
  %2161 = load i64, ptr %8, align 8, !tbaa !58
  %2162 = getelementptr inbounds double, ptr %2160, i64 %2161
  %2163 = load double, ptr %2162, align 8, !tbaa !62
  %2164 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2156, double noundef %2163)
  br i1 %2164, label %2165, label %2173

2165:                                             ; preds = %2155
  %2166 = load ptr, ptr %4, align 8, !tbaa !5
  %2167 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2166, i32 0, i32 11
  %2168 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2167, i32 0, i32 4
  %2169 = load ptr, ptr %2168, align 8, !tbaa !57
  %2170 = load i64, ptr %8, align 8, !tbaa !58
  %2171 = getelementptr inbounds double, ptr %2169, i64 %2170
  %2172 = load double, ptr %2171, align 8, !tbaa !62
  store double %2172, ptr %15, align 8, !tbaa !62
  br label %2173

2173:                                             ; preds = %2165, %2155, %2146
  %2174 = load ptr, ptr %4, align 8, !tbaa !5
  %2175 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2174, i32 0, i32 14
  %2176 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2175, i32 0, i32 4
  %2177 = load ptr, ptr %2176, align 8, !tbaa !57
  %2178 = load i64, ptr %8, align 8, !tbaa !58
  %2179 = getelementptr inbounds i8, ptr %2177, i64 %2178
  %2180 = load i8, ptr %2179, align 1, !tbaa !59, !range !60, !noundef !61
  %2181 = trunc i8 %2180 to i1
  br i1 %2181, label %2182, label %2200

2182:                                             ; preds = %2173
  %2183 = load double, ptr %16, align 8, !tbaa !62
  %2184 = load ptr, ptr %4, align 8, !tbaa !5
  %2185 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2184, i32 0, i32 12
  %2186 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2185, i32 0, i32 4
  %2187 = load ptr, ptr %2186, align 8, !tbaa !57
  %2188 = load i64, ptr %8, align 8, !tbaa !58
  %2189 = getelementptr inbounds double, ptr %2187, i64 %2188
  %2190 = load double, ptr %2189, align 8, !tbaa !62
  %2191 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2183, double noundef %2190)
  br i1 %2191, label %2192, label %2200

2192:                                             ; preds = %2182
  %2193 = load ptr, ptr %4, align 8, !tbaa !5
  %2194 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2193, i32 0, i32 12
  %2195 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2194, i32 0, i32 4
  %2196 = load ptr, ptr %2195, align 8, !tbaa !57
  %2197 = load i64, ptr %8, align 8, !tbaa !58
  %2198 = getelementptr inbounds double, ptr %2196, i64 %2197
  %2199 = load double, ptr %2198, align 8, !tbaa !62
  store double %2199, ptr %16, align 8, !tbaa !62
  br label %2200

2200:                                             ; preds = %2192, %2182, %2173
  %2201 = load double, ptr %15, align 8, !tbaa !62
  %2202 = load double, ptr %16, align 8, !tbaa !62
  %2203 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2201, double noundef %2202)
  %2204 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2203, ptr noundef @.str.1635, ptr noundef %2204)
  %2205 = load double, ptr %15, align 8, !tbaa !62
  %2206 = load double, ptr %16, align 8, !tbaa !62
  %2207 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2205, double noundef %2206)
  br i1 %2207, label %2208, label %2227

2208:                                             ; preds = %2200
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %2209

2209:                                             ; preds = %2223, %2208
  %2210 = load i64, ptr %6, align 8, !tbaa !58
  %2211 = load i64, ptr %13, align 8, !tbaa !58
  %2212 = icmp sle i64 %2210, %2211
  br i1 %2212, label %2213, label %2226

2213:                                             ; preds = %2209
  %2214 = load ptr, ptr %4, align 8, !tbaa !5
  %2215 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2214, i32 0, i32 24
  %2216 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2215, i32 0, i32 6
  %2217 = load ptr, ptr %2216, align 8, !tbaa !57
  %2218 = load i64, ptr %6, align 8, !tbaa !58
  %2219 = getelementptr inbounds ptr, ptr %2217, i64 %2218
  %2220 = load ptr, ptr %2219, align 8, !tbaa !5
  %2221 = load i64, ptr %8, align 8, !tbaa !58
  %2222 = getelementptr inbounds double, ptr %2220, i64 %2221
  store double 0.000000e+00, ptr %2222, align 8, !tbaa !62
  br label %2223

2223:                                             ; preds = %2213
  %2224 = load i64, ptr %6, align 8, !tbaa !58
  %2225 = add nsw i64 %2224, 1
  store i64 %2225, ptr %6, align 8, !tbaa !58
  br label %2209, !llvm.loop !126

2226:                                             ; preds = %2209
  br label %2589

2227:                                             ; preds = %2200
  %2228 = load i64, ptr %12, align 8, !tbaa !58
  %2229 = load ptr, ptr %4, align 8, !tbaa !5
  %2230 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2229, i32 0, i32 53
  %2231 = load ptr, ptr %4, align 8, !tbaa !5
  %2232 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2231, i32 0, i32 21
  %2233 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2228, ptr noundef %2230, ptr noundef %2232, ptr noundef %2233)
  %2234 = load double, ptr %15, align 8, !tbaa !62
  %2235 = load ptr, ptr %4, align 8, !tbaa !5
  %2236 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2235, i32 0, i32 21
  %2237 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2236, i32 0, i32 4
  %2238 = load ptr, ptr %2237, align 8, !tbaa !57
  %2239 = load i64, ptr %8, align 8, !tbaa !58
  %2240 = getelementptr inbounds double, ptr %2238, i64 %2239
  store double %2234, ptr %2240, align 8, !tbaa !62
  %2241 = load ptr, ptr %4, align 8, !tbaa !5
  %2242 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2241, i32 0, i32 46
  %2243 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2242, i32 0, i32 0
  store i32 6, ptr %2243, align 8, !tbaa !9
  br label %4022

2244:                                             ; preds = %179
  %2245 = load i64, ptr %13, align 8, !tbaa !58
  %2246 = add nsw i64 1, %2245
  %2247 = load ptr, ptr %4, align 8, !tbaa !5
  %2248 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2247, i32 0, i32 23
  %2249 = load ptr, ptr %4, align 8, !tbaa !5
  %2250 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2249, i32 0, i32 57
  %2251 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2246, ptr noundef %2248, ptr noundef %2250, ptr noundef %2251)
  %2252 = load i64, ptr %12, align 8, !tbaa !58
  %2253 = load ptr, ptr %4, align 8, !tbaa !5
  %2254 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2253, i32 0, i32 53
  %2255 = load ptr, ptr %4, align 8, !tbaa !5
  %2256 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2255, i32 0, i32 21
  %2257 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2252, ptr noundef %2254, ptr noundef %2256, ptr noundef %2257)
  %2258 = load double, ptr %16, align 8, !tbaa !62
  %2259 = load ptr, ptr %4, align 8, !tbaa !5
  %2260 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2259, i32 0, i32 21
  %2261 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2260, i32 0, i32 4
  %2262 = load ptr, ptr %2261, align 8, !tbaa !57
  %2263 = load i64, ptr %8, align 8, !tbaa !58
  %2264 = getelementptr inbounds double, ptr %2262, i64 %2263
  store double %2258, ptr %2264, align 8, !tbaa !62
  %2265 = load ptr, ptr %4, align 8, !tbaa !5
  %2266 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2265, i32 0, i32 46
  %2267 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2266, i32 0, i32 0
  store i32 7, ptr %2267, align 8, !tbaa !9
  br label %4022

2268:                                             ; preds = %186
  %2269 = load i64, ptr %13, align 8, !tbaa !58
  %2270 = add nsw i64 1, %2269
  %2271 = load ptr, ptr %4, align 8, !tbaa !5
  %2272 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2271, i32 0, i32 23
  %2273 = load ptr, ptr %4, align 8, !tbaa !5
  %2274 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2273, i32 0, i32 58
  %2275 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2270, ptr noundef %2272, ptr noundef %2274, ptr noundef %2275)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %2276

2276:                                             ; preds = %2309, %2268
  %2277 = load i64, ptr %6, align 8, !tbaa !58
  %2278 = load i64, ptr %13, align 8, !tbaa !58
  %2279 = icmp sle i64 %2277, %2278
  br i1 %2279, label %2280, label %2312

2280:                                             ; preds = %2276
  %2281 = load ptr, ptr %4, align 8, !tbaa !5
  %2282 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2281, i32 0, i32 58
  %2283 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2282, i32 0, i32 4
  %2284 = load ptr, ptr %2283, align 8, !tbaa !57
  %2285 = load i64, ptr %6, align 8, !tbaa !58
  %2286 = getelementptr inbounds double, ptr %2284, i64 %2285
  %2287 = load double, ptr %2286, align 8, !tbaa !62
  %2288 = load ptr, ptr %4, align 8, !tbaa !5
  %2289 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2288, i32 0, i32 57
  %2290 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2289, i32 0, i32 4
  %2291 = load ptr, ptr %2290, align 8, !tbaa !57
  %2292 = load i64, ptr %6, align 8, !tbaa !58
  %2293 = getelementptr inbounds double, ptr %2291, i64 %2292
  %2294 = load double, ptr %2293, align 8, !tbaa !62
  %2295 = fsub double %2287, %2294
  %2296 = load double, ptr %16, align 8, !tbaa !62
  %2297 = load double, ptr %15, align 8, !tbaa !62
  %2298 = fsub double %2296, %2297
  %2299 = fdiv double %2295, %2298
  %2300 = load ptr, ptr %4, align 8, !tbaa !5
  %2301 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2300, i32 0, i32 24
  %2302 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2301, i32 0, i32 6
  %2303 = load ptr, ptr %2302, align 8, !tbaa !57
  %2304 = load i64, ptr %6, align 8, !tbaa !58
  %2305 = getelementptr inbounds ptr, ptr %2303, i64 %2304
  %2306 = load ptr, ptr %2305, align 8, !tbaa !5
  %2307 = load i64, ptr %8, align 8, !tbaa !58
  %2308 = getelementptr inbounds double, ptr %2306, i64 %2307
  store double %2299, ptr %2308, align 8, !tbaa !62
  br label %2309

2309:                                             ; preds = %2280
  %2310 = load i64, ptr %6, align 8, !tbaa !58
  %2311 = add nsw i64 %2310, 1
  store i64 %2311, ptr %6, align 8, !tbaa !58
  br label %2276, !llvm.loop !127

2312:                                             ; preds = %2276
  %2313 = load ptr, ptr %4, align 8, !tbaa !5
  %2314 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2313, i32 0, i32 87
  %2315 = load i64, ptr %2314, align 8, !tbaa !67
  %2316 = add nsw i64 %2315, 2
  %2317 = load ptr, ptr %4, align 8, !tbaa !5
  %2318 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2317, i32 0, i32 87
  store i64 %2316, ptr %2318, align 8, !tbaa !67
  %2319 = load double, ptr %16, align 8, !tbaa !62
  %2320 = load double, ptr %15, align 8, !tbaa !62
  %2321 = fsub double %2319, %2320
  %2322 = fdiv double 0x3CF6849B86A12B9C, %2321
  %2323 = load ptr, ptr %4, align 8, !tbaa !5
  %2324 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2323, i32 0, i32 74
  %2325 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2324, i32 0, i32 4
  %2326 = load ptr, ptr %2325, align 8, !tbaa !57
  %2327 = load i64, ptr %8, align 8, !tbaa !58
  %2328 = getelementptr inbounds double, ptr %2326, i64 %2327
  store double %2322, ptr %2328, align 8, !tbaa !62
  br label %2588

2329:                                             ; preds = %2145
  %2330 = load i64, ptr %12, align 8, !tbaa !58
  %2331 = load ptr, ptr %4, align 8, !tbaa !5
  %2332 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2331, i32 0, i32 53
  %2333 = load ptr, ptr %4, align 8, !tbaa !5
  %2334 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2333, i32 0, i32 21
  %2335 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2330, ptr noundef %2332, ptr noundef %2334, ptr noundef %2335)
  %2336 = load ptr, ptr %4, align 8, !tbaa !5
  %2337 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2336, i32 0, i32 21
  %2338 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2337, i32 0, i32 4
  %2339 = load ptr, ptr %2338, align 8, !tbaa !57
  %2340 = load i64, ptr %8, align 8, !tbaa !58
  %2341 = getelementptr inbounds double, ptr %2339, i64 %2340
  %2342 = load double, ptr %2341, align 8, !tbaa !62
  %2343 = load ptr, ptr %4, align 8, !tbaa !5
  %2344 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2343, i32 0, i32 10
  %2345 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2344, i32 0, i32 4
  %2346 = load ptr, ptr %2345, align 8, !tbaa !57
  %2347 = load i64, ptr %8, align 8, !tbaa !58
  %2348 = getelementptr inbounds double, ptr %2346, i64 %2347
  %2349 = load double, ptr %2348, align 8, !tbaa !62
  %2350 = load ptr, ptr %4, align 8, !tbaa !5
  %2351 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2350, i32 0, i32 8
  %2352 = load double, ptr %2351, align 8, !tbaa !87
  %2353 = fneg double %2349
  %2354 = call double @llvm.fmuladd.f64(double %2353, double %2352, double %2342)
  %2355 = load ptr, ptr %4, align 8, !tbaa !5
  %2356 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2355, i32 0, i32 21
  %2357 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2356, i32 0, i32 4
  %2358 = load ptr, ptr %2357, align 8, !tbaa !57
  %2359 = load i64, ptr %8, align 8, !tbaa !58
  %2360 = getelementptr inbounds double, ptr %2358, i64 %2359
  store double %2354, ptr %2360, align 8, !tbaa !62
  %2361 = load ptr, ptr %4, align 8, !tbaa !5
  %2362 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2361, i32 0, i32 46
  %2363 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2362, i32 0, i32 0
  store i32 8, ptr %2363, align 8, !tbaa !9
  br label %4022

2364:                                             ; preds = %193
  %2365 = load i64, ptr %13, align 8, !tbaa !58
  %2366 = add nsw i64 1, %2365
  %2367 = load ptr, ptr %4, align 8, !tbaa !5
  %2368 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2367, i32 0, i32 23
  %2369 = load ptr, ptr %4, align 8, !tbaa !5
  %2370 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2369, i32 0, i32 56
  %2371 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2366, ptr noundef %2368, ptr noundef %2370, ptr noundef %2371)
  %2372 = load i64, ptr %12, align 8, !tbaa !58
  %2373 = load ptr, ptr %4, align 8, !tbaa !5
  %2374 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2373, i32 0, i32 53
  %2375 = load ptr, ptr %4, align 8, !tbaa !5
  %2376 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2375, i32 0, i32 21
  %2377 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2372, ptr noundef %2374, ptr noundef %2376, ptr noundef %2377)
  %2378 = load ptr, ptr %4, align 8, !tbaa !5
  %2379 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2378, i32 0, i32 21
  %2380 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2379, i32 0, i32 4
  %2381 = load ptr, ptr %2380, align 8, !tbaa !57
  %2382 = load i64, ptr %8, align 8, !tbaa !58
  %2383 = getelementptr inbounds double, ptr %2381, i64 %2382
  %2384 = load double, ptr %2383, align 8, !tbaa !62
  %2385 = load ptr, ptr %4, align 8, !tbaa !5
  %2386 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2385, i32 0, i32 10
  %2387 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2386, i32 0, i32 4
  %2388 = load ptr, ptr %2387, align 8, !tbaa !57
  %2389 = load i64, ptr %8, align 8, !tbaa !58
  %2390 = getelementptr inbounds double, ptr %2388, i64 %2389
  %2391 = load double, ptr %2390, align 8, !tbaa !62
  %2392 = fmul double 5.000000e-01, %2391
  %2393 = load ptr, ptr %4, align 8, !tbaa !5
  %2394 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2393, i32 0, i32 8
  %2395 = load double, ptr %2394, align 8, !tbaa !87
  %2396 = fneg double %2392
  %2397 = call double @llvm.fmuladd.f64(double %2396, double %2395, double %2384)
  %2398 = load ptr, ptr %4, align 8, !tbaa !5
  %2399 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2398, i32 0, i32 21
  %2400 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2399, i32 0, i32 4
  %2401 = load ptr, ptr %2400, align 8, !tbaa !57
  %2402 = load i64, ptr %8, align 8, !tbaa !58
  %2403 = getelementptr inbounds double, ptr %2401, i64 %2402
  store double %2397, ptr %2403, align 8, !tbaa !62
  %2404 = load ptr, ptr %4, align 8, !tbaa !5
  %2405 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2404, i32 0, i32 46
  %2406 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2405, i32 0, i32 0
  store i32 9, ptr %2406, align 8, !tbaa !9
  br label %4022

2407:                                             ; preds = %200
  %2408 = load i64, ptr %13, align 8, !tbaa !58
  %2409 = add nsw i64 1, %2408
  %2410 = load ptr, ptr %4, align 8, !tbaa !5
  %2411 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2410, i32 0, i32 23
  %2412 = load ptr, ptr %4, align 8, !tbaa !5
  %2413 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2412, i32 0, i32 57
  %2414 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2409, ptr noundef %2411, ptr noundef %2413, ptr noundef %2414)
  %2415 = load i64, ptr %12, align 8, !tbaa !58
  %2416 = load ptr, ptr %4, align 8, !tbaa !5
  %2417 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2416, i32 0, i32 53
  %2418 = load ptr, ptr %4, align 8, !tbaa !5
  %2419 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2418, i32 0, i32 21
  %2420 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2415, ptr noundef %2417, ptr noundef %2419, ptr noundef %2420)
  %2421 = load ptr, ptr %4, align 8, !tbaa !5
  %2422 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2421, i32 0, i32 21
  %2423 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2422, i32 0, i32 4
  %2424 = load ptr, ptr %2423, align 8, !tbaa !57
  %2425 = load i64, ptr %8, align 8, !tbaa !58
  %2426 = getelementptr inbounds double, ptr %2424, i64 %2425
  %2427 = load double, ptr %2426, align 8, !tbaa !62
  %2428 = load ptr, ptr %4, align 8, !tbaa !5
  %2429 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2428, i32 0, i32 10
  %2430 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2429, i32 0, i32 4
  %2431 = load ptr, ptr %2430, align 8, !tbaa !57
  %2432 = load i64, ptr %8, align 8, !tbaa !58
  %2433 = getelementptr inbounds double, ptr %2431, i64 %2432
  %2434 = load double, ptr %2433, align 8, !tbaa !62
  %2435 = fmul double 5.000000e-01, %2434
  %2436 = load ptr, ptr %4, align 8, !tbaa !5
  %2437 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2436, i32 0, i32 8
  %2438 = load double, ptr %2437, align 8, !tbaa !87
  %2439 = call double @llvm.fmuladd.f64(double %2435, double %2438, double %2427)
  %2440 = load ptr, ptr %4, align 8, !tbaa !5
  %2441 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2440, i32 0, i32 21
  %2442 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2441, i32 0, i32 4
  %2443 = load ptr, ptr %2442, align 8, !tbaa !57
  %2444 = load i64, ptr %8, align 8, !tbaa !58
  %2445 = getelementptr inbounds double, ptr %2443, i64 %2444
  store double %2439, ptr %2445, align 8, !tbaa !62
  %2446 = load ptr, ptr %4, align 8, !tbaa !5
  %2447 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2446, i32 0, i32 46
  %2448 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2447, i32 0, i32 0
  store i32 10, ptr %2448, align 8, !tbaa !9
  br label %4022

2449:                                             ; preds = %207
  %2450 = load i64, ptr %13, align 8, !tbaa !58
  %2451 = add nsw i64 1, %2450
  %2452 = load ptr, ptr %4, align 8, !tbaa !5
  %2453 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2452, i32 0, i32 23
  %2454 = load ptr, ptr %4, align 8, !tbaa !5
  %2455 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2454, i32 0, i32 58
  %2456 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2451, ptr noundef %2453, ptr noundef %2455, ptr noundef %2456)
  %2457 = load i64, ptr %12, align 8, !tbaa !58
  %2458 = load ptr, ptr %4, align 8, !tbaa !5
  %2459 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2458, i32 0, i32 53
  %2460 = load ptr, ptr %4, align 8, !tbaa !5
  %2461 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2460, i32 0, i32 21
  %2462 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2457, ptr noundef %2459, ptr noundef %2461, ptr noundef %2462)
  %2463 = load ptr, ptr %4, align 8, !tbaa !5
  %2464 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2463, i32 0, i32 21
  %2465 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2464, i32 0, i32 4
  %2466 = load ptr, ptr %2465, align 8, !tbaa !57
  %2467 = load i64, ptr %8, align 8, !tbaa !58
  %2468 = getelementptr inbounds double, ptr %2466, i64 %2467
  %2469 = load double, ptr %2468, align 8, !tbaa !62
  %2470 = load ptr, ptr %4, align 8, !tbaa !5
  %2471 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2470, i32 0, i32 10
  %2472 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2471, i32 0, i32 4
  %2473 = load ptr, ptr %2472, align 8, !tbaa !57
  %2474 = load i64, ptr %8, align 8, !tbaa !58
  %2475 = getelementptr inbounds double, ptr %2473, i64 %2474
  %2476 = load double, ptr %2475, align 8, !tbaa !62
  %2477 = load ptr, ptr %4, align 8, !tbaa !5
  %2478 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2477, i32 0, i32 8
  %2479 = load double, ptr %2478, align 8, !tbaa !87
  %2480 = call double @llvm.fmuladd.f64(double %2476, double %2479, double %2469)
  %2481 = load ptr, ptr %4, align 8, !tbaa !5
  %2482 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2481, i32 0, i32 21
  %2483 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2482, i32 0, i32 4
  %2484 = load ptr, ptr %2483, align 8, !tbaa !57
  %2485 = load i64, ptr %8, align 8, !tbaa !58
  %2486 = getelementptr inbounds double, ptr %2484, i64 %2485
  store double %2480, ptr %2486, align 8, !tbaa !62
  %2487 = load ptr, ptr %4, align 8, !tbaa !5
  %2488 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2487, i32 0, i32 46
  %2489 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2488, i32 0, i32 0
  store i32 11, ptr %2489, align 8, !tbaa !9
  br label %4022

2490:                                             ; preds = %214
  %2491 = load i64, ptr %13, align 8, !tbaa !58
  %2492 = add nsw i64 1, %2491
  %2493 = load ptr, ptr %4, align 8, !tbaa !5
  %2494 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2493, i32 0, i32 23
  %2495 = load ptr, ptr %4, align 8, !tbaa !5
  %2496 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2495, i32 0, i32 59
  %2497 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2492, ptr noundef %2494, ptr noundef %2496, ptr noundef %2497)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %2498

2498:                                             ; preds = %2557, %2490
  %2499 = load i64, ptr %6, align 8, !tbaa !58
  %2500 = load i64, ptr %13, align 8, !tbaa !58
  %2501 = icmp sle i64 %2499, %2500
  br i1 %2501, label %2502, label %2560

2502:                                             ; preds = %2498
  %2503 = load ptr, ptr %4, align 8, !tbaa !5
  %2504 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2503, i32 0, i32 58
  %2505 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2504, i32 0, i32 4
  %2506 = load ptr, ptr %2505, align 8, !tbaa !57
  %2507 = load i64, ptr %6, align 8, !tbaa !58
  %2508 = getelementptr inbounds double, ptr %2506, i64 %2507
  %2509 = load double, ptr %2508, align 8, !tbaa !62
  %2510 = load ptr, ptr %4, align 8, !tbaa !5
  %2511 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2510, i32 0, i32 57
  %2512 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2511, i32 0, i32 4
  %2513 = load ptr, ptr %2512, align 8, !tbaa !57
  %2514 = load i64, ptr %6, align 8, !tbaa !58
  %2515 = getelementptr inbounds double, ptr %2513, i64 %2514
  %2516 = load double, ptr %2515, align 8, !tbaa !62
  %2517 = fsub double %2509, %2516
  %2518 = load ptr, ptr %4, align 8, !tbaa !5
  %2519 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2518, i32 0, i32 59
  %2520 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2519, i32 0, i32 4
  %2521 = load ptr, ptr %2520, align 8, !tbaa !57
  %2522 = load i64, ptr %6, align 8, !tbaa !58
  %2523 = getelementptr inbounds double, ptr %2521, i64 %2522
  %2524 = load double, ptr %2523, align 8, !tbaa !62
  %2525 = load ptr, ptr %4, align 8, !tbaa !5
  %2526 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2525, i32 0, i32 56
  %2527 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2526, i32 0, i32 4
  %2528 = load ptr, ptr %2527, align 8, !tbaa !57
  %2529 = load i64, ptr %6, align 8, !tbaa !58
  %2530 = getelementptr inbounds double, ptr %2528, i64 %2529
  %2531 = load double, ptr %2530, align 8, !tbaa !62
  %2532 = fsub double %2524, %2531
  %2533 = fneg double %2532
  %2534 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %2517, double %2533)
  %2535 = load ptr, ptr %4, align 8, !tbaa !5
  %2536 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2535, i32 0, i32 8
  %2537 = load double, ptr %2536, align 8, !tbaa !87
  %2538 = fmul double 6.000000e+00, %2537
  %2539 = load ptr, ptr %4, align 8, !tbaa !5
  %2540 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2539, i32 0, i32 10
  %2541 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2540, i32 0, i32 4
  %2542 = load ptr, ptr %2541, align 8, !tbaa !57
  %2543 = load i64, ptr %8, align 8, !tbaa !58
  %2544 = getelementptr inbounds double, ptr %2542, i64 %2543
  %2545 = load double, ptr %2544, align 8, !tbaa !62
  %2546 = fmul double %2538, %2545
  %2547 = fdiv double %2534, %2546
  %2548 = load ptr, ptr %4, align 8, !tbaa !5
  %2549 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2548, i32 0, i32 24
  %2550 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2549, i32 0, i32 6
  %2551 = load ptr, ptr %2550, align 8, !tbaa !57
  %2552 = load i64, ptr %6, align 8, !tbaa !58
  %2553 = getelementptr inbounds ptr, ptr %2551, i64 %2552
  %2554 = load ptr, ptr %2553, align 8, !tbaa !5
  %2555 = load i64, ptr %8, align 8, !tbaa !58
  %2556 = getelementptr inbounds double, ptr %2554, i64 %2555
  store double %2547, ptr %2556, align 8, !tbaa !62
  br label %2557

2557:                                             ; preds = %2502
  %2558 = load i64, ptr %6, align 8, !tbaa !58
  %2559 = add nsw i64 %2558, 1
  store i64 %2559, ptr %6, align 8, !tbaa !58
  br label %2498, !llvm.loop !128

2560:                                             ; preds = %2498
  %2561 = load ptr, ptr %4, align 8, !tbaa !5
  %2562 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2561, i32 0, i32 87
  %2563 = load i64, ptr %2562, align 8, !tbaa !67
  %2564 = add nsw i64 %2563, 4
  %2565 = load ptr, ptr %4, align 8, !tbaa !5
  %2566 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2565, i32 0, i32 87
  store i64 %2564, ptr %2566, align 8, !tbaa !67
  %2567 = load ptr, ptr %4, align 8, !tbaa !5
  %2568 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2567, i32 0, i32 8
  %2569 = load double, ptr %2568, align 8, !tbaa !87
  %2570 = fmul double 3.000000e+00, %2569
  %2571 = load ptr, ptr %4, align 8, !tbaa !5
  %2572 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2571, i32 0, i32 10
  %2573 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2572, i32 0, i32 4
  %2574 = load ptr, ptr %2573, align 8, !tbaa !57
  %2575 = load i64, ptr %8, align 8, !tbaa !58
  %2576 = getelementptr inbounds double, ptr %2574, i64 %2575
  %2577 = load double, ptr %2576, align 8, !tbaa !62
  %2578 = fmul double %2570, %2577
  %2579 = fdiv double 0x3D16849B86A12B9C, %2578
  %2580 = load ptr, ptr %5, align 8, !tbaa !5
  %2581 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2579, ptr noundef %2580)
  %2582 = load ptr, ptr %4, align 8, !tbaa !5
  %2583 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2582, i32 0, i32 74
  %2584 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2583, i32 0, i32 4
  %2585 = load ptr, ptr %2584, align 8, !tbaa !57
  %2586 = load i64, ptr %8, align 8, !tbaa !58
  %2587 = getelementptr inbounds double, ptr %2585, i64 %2586
  store double %2581, ptr %2587, align 8, !tbaa !62
  br label %2588

2588:                                             ; preds = %2560, %2312
  br label %2589

2589:                                             ; preds = %2588, %2226
  %2590 = load i64, ptr %8, align 8, !tbaa !58
  %2591 = add nsw i64 %2590, 1
  store i64 %2591, ptr %8, align 8, !tbaa !58
  br label %2064

2592:                                             ; preds = %2069
  %2593 = load i64, ptr %12, align 8, !tbaa !58
  %2594 = load ptr, ptr %4, align 8, !tbaa !5
  %2595 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2594, i32 0, i32 53
  %2596 = load ptr, ptr %4, align 8, !tbaa !5
  %2597 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2596, i32 0, i32 21
  %2598 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2593, ptr noundef %2595, ptr noundef %2597, ptr noundef %2598)
  %2599 = load ptr, ptr %4, align 8, !tbaa !5
  %2600 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2599, i32 0, i32 46
  %2601 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2600, i32 0, i32 0
  store i32 12, ptr %2601, align 8, !tbaa !9
  br label %4022

2602:                                             ; preds = %221
  %2603 = load ptr, ptr %4, align 8, !tbaa !5
  %2604 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2603, i32 0, i32 26
  store i8 0, ptr %2604, align 1, !tbaa !125
  %2605 = load ptr, ptr %4, align 8, !tbaa !5
  %2606 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2605, i32 0, i32 87
  %2607 = load i64, ptr %2606, align 8, !tbaa !67
  %2608 = add nsw i64 %2607, 1
  %2609 = load ptr, ptr %4, align 8, !tbaa !5
  %2610 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2609, i32 0, i32 87
  store i64 %2608, ptr %2610, align 8, !tbaa !67
  %2611 = load i64, ptr %13, align 8, !tbaa !58
  %2612 = add nsw i64 1, %2611
  %2613 = load ptr, ptr %4, align 8, !tbaa !5
  %2614 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2613, i32 0, i32 73
  %2615 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2612, ptr noundef %2614, ptr noundef %2615)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %2616

2616:                                             ; preds = %2636, %2602
  %2617 = load i64, ptr %6, align 8, !tbaa !58
  %2618 = load i64, ptr %13, align 8, !tbaa !58
  %2619 = icmp sle i64 %2617, %2618
  br i1 %2619, label %2620, label %2639

2620:                                             ; preds = %2616
  %2621 = load ptr, ptr %4, align 8, !tbaa !5
  %2622 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2621, i32 0, i32 23
  %2623 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2622, i32 0, i32 4
  %2624 = load ptr, ptr %2623, align 8, !tbaa !57
  %2625 = load i64, ptr %6, align 8, !tbaa !58
  %2626 = getelementptr inbounds double, ptr %2624, i64 %2625
  %2627 = load double, ptr %2626, align 8, !tbaa !62
  %2628 = load ptr, ptr %5, align 8, !tbaa !5
  %2629 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2627, ptr noundef %2628)
  %2630 = load ptr, ptr %4, align 8, !tbaa !5
  %2631 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2630, i32 0, i32 73
  %2632 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2631, i32 0, i32 4
  %2633 = load ptr, ptr %2632, align 8, !tbaa !57
  %2634 = load i64, ptr %6, align 8, !tbaa !58
  %2635 = getelementptr inbounds double, ptr %2633, i64 %2634
  store double %2629, ptr %2635, align 8, !tbaa !62
  br label %2636

2636:                                             ; preds = %2620
  %2637 = load i64, ptr %6, align 8, !tbaa !58
  %2638 = add nsw i64 %2637, 1
  store i64 %2638, ptr %6, align 8, !tbaa !58
  br label %2616, !llvm.loop !129

2639:                                             ; preds = %2616
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %2640

2640:                                             ; preds = %2694, %2639
  %2641 = load i64, ptr %6, align 8, !tbaa !58
  %2642 = load i64, ptr %13, align 8, !tbaa !58
  %2643 = icmp sle i64 %2641, %2642
  br i1 %2643, label %2644, label %2697

2644:                                             ; preds = %2640
  store i64 0, ptr %7, align 8, !tbaa !58
  br label %2645

2645:                                             ; preds = %2690, %2644
  %2646 = load i64, ptr %7, align 8, !tbaa !58
  %2647 = load i64, ptr %12, align 8, !tbaa !58
  %2648 = sub nsw i64 %2647, 1
  %2649 = icmp sle i64 %2646, %2648
  br i1 %2649, label %2650, label %2693

2650:                                             ; preds = %2645
  %2651 = load ptr, ptr %4, align 8, !tbaa !5
  %2652 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2651, i32 0, i32 24
  %2653 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2652, i32 0, i32 6
  %2654 = load ptr, ptr %2653, align 8, !tbaa !57
  %2655 = load i64, ptr %6, align 8, !tbaa !58
  %2656 = getelementptr inbounds ptr, ptr %2654, i64 %2655
  %2657 = load ptr, ptr %2656, align 8, !tbaa !5
  %2658 = load i64, ptr %7, align 8, !tbaa !58
  %2659 = getelementptr inbounds double, ptr %2657, i64 %2658
  %2660 = load double, ptr %2659, align 8, !tbaa !62
  %2661 = load ptr, ptr %5, align 8, !tbaa !5
  %2662 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2660, ptr noundef %2661)
  %2663 = load ptr, ptr %4, align 8, !tbaa !5
  %2664 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2663, i32 0, i32 73
  %2665 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2664, i32 0, i32 4
  %2666 = load ptr, ptr %2665, align 8, !tbaa !57
  %2667 = load i64, ptr %6, align 8, !tbaa !58
  %2668 = getelementptr inbounds double, ptr %2666, i64 %2667
  %2669 = load double, ptr %2668, align 8, !tbaa !62
  %2670 = load ptr, ptr %4, align 8, !tbaa !5
  %2671 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2670, i32 0, i32 74
  %2672 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2671, i32 0, i32 4
  %2673 = load ptr, ptr %2672, align 8, !tbaa !57
  %2674 = load i64, ptr %7, align 8, !tbaa !58
  %2675 = getelementptr inbounds double, ptr %2673, i64 %2674
  %2676 = load double, ptr %2675, align 8, !tbaa !62
  %2677 = fmul double %2669, %2676
  %2678 = fcmp ole double %2662, %2677
  br i1 %2678, label %2679, label %2689

2679:                                             ; preds = %2650
  %2680 = load ptr, ptr %4, align 8, !tbaa !5
  %2681 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2680, i32 0, i32 24
  %2682 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2681, i32 0, i32 6
  %2683 = load ptr, ptr %2682, align 8, !tbaa !57
  %2684 = load i64, ptr %6, align 8, !tbaa !58
  %2685 = getelementptr inbounds ptr, ptr %2683, i64 %2684
  %2686 = load ptr, ptr %2685, align 8, !tbaa !5
  %2687 = load i64, ptr %7, align 8, !tbaa !58
  %2688 = getelementptr inbounds double, ptr %2686, i64 %2687
  store double 0.000000e+00, ptr %2688, align 8, !tbaa !62
  br label %2689

2689:                                             ; preds = %2679, %2650
  br label %2690

2690:                                             ; preds = %2689
  %2691 = load i64, ptr %7, align 8, !tbaa !58
  %2692 = add nsw i64 %2691, 1
  store i64 %2692, ptr %7, align 8, !tbaa !58
  br label %2645, !llvm.loop !130

2693:                                             ; preds = %2645
  br label %2694

2694:                                             ; preds = %2693
  %2695 = load i64, ptr %6, align 8, !tbaa !58
  %2696 = add nsw i64 %2695, 1
  store i64 %2696, ptr %6, align 8, !tbaa !58
  br label %2640, !llvm.loop !131

2697:                                             ; preds = %2640
  br label %2698

2698:                                             ; preds = %2697, %2020
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %2699

2699:                                             ; preds = %2698, %1588
  %2700 = load i64, ptr %18, align 8, !tbaa !58
  %2701 = icmp eq i64 %2700, 2
  br i1 %2701, label %2702, label %2707

2702:                                             ; preds = %2699
  %2703 = load ptr, ptr %4, align 8, !tbaa !5
  %2704 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2703, i32 0, i32 8
  %2705 = load double, ptr %2704, align 8, !tbaa !87
  %2706 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2705, double noundef 0.000000e+00)
  br i1 %2706, label %2708, label %2707

2707:                                             ; preds = %2702, %2699
  br label %2841

2708:                                             ; preds = %2702
  %2709 = load ptr, ptr %4, align 8, !tbaa !5
  %2710 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2709, i32 0, i32 20
  %2711 = load i8, ptr %2710, align 8, !tbaa !90, !range !60, !noundef !61
  %2712 = trunc i8 %2711 to i1
  br i1 %2712, label %2714, label %2713

2713:                                             ; preds = %2708
  br label %2765

2714:                                             ; preds = %2708
  store i8 0, ptr %19, align 1, !tbaa !59
  %2715 = load ptr, ptr %4, align 8, !tbaa !5
  %2716 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2715, i32 0, i32 19
  %2717 = load i64, ptr %2716, align 8, !tbaa !83
  %2718 = icmp eq i64 %2717, 2
  %2719 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2718, ptr noundef @.str.1638, ptr noundef %2719)
  %2720 = load ptr, ptr %4, align 8, !tbaa !5
  %2721 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2720, i32 0, i32 28
  store i64 1, ptr %2721, align 8, !tbaa !91
  %2722 = load ptr, ptr %4, align 8, !tbaa !5
  %2723 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2722, i32 0, i32 31
  store i64 1, ptr %2723, align 8, !tbaa !92
  %2724 = load i64, ptr %13, align 8, !tbaa !58
  %2725 = add nsw i64 1, %2724
  %2726 = load ptr, ptr %4, align 8, !tbaa !5
  %2727 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2726, i32 0, i32 32
  store i64 %2725, ptr %2727, align 8, !tbaa !93
  %2728 = load i64, ptr %12, align 8, !tbaa !58
  %2729 = load ptr, ptr %4, align 8, !tbaa !5
  %2730 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2729, i32 0, i32 33
  store i64 %2728, ptr %2730, align 8, !tbaa !94
  %2731 = load ptr, ptr %4, align 8, !tbaa !5
  %2732 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2731, i32 0, i32 34
  store i64 0, ptr %2732, align 8, !tbaa !95
  %2733 = load ptr, ptr %4, align 8, !tbaa !5
  %2734 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2733, i32 0, i32 39
  %2735 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2734, i32 0, i32 6
  store i64 -1, ptr %2735, align 8, !tbaa !132
  %2736 = load ptr, ptr %4, align 8, !tbaa !5
  %2737 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2736, i32 0, i32 39
  %2738 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2737, i32 0, i32 7
  store i64 -1, ptr %2738, align 8, !tbaa !133
  %2739 = load ptr, ptr %4, align 8, !tbaa !5
  %2740 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2739, i32 0, i32 46
  %2741 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2740, i32 0, i32 0
  store i32 13, ptr %2741, align 8, !tbaa !9
  br label %4022

2742:                                             ; preds = %228
  %2743 = load ptr, ptr %4, align 8, !tbaa !5
  %2744 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2743, i32 0, i32 39
  %2745 = load ptr, ptr %5, align 8, !tbaa !5
  %2746 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %2744, ptr noundef %2745)
  %2747 = load ptr, ptr %4, align 8, !tbaa !5
  %2748 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2747, i32 0, i32 31
  %2749 = load i64, ptr %2748, align 8, !tbaa !92
  %2750 = load ptr, ptr %4, align 8, !tbaa !5
  %2751 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2750, i32 0, i32 32
  %2752 = load i64, ptr %2751, align 8, !tbaa !93
  %2753 = mul nsw i64 %2749, %2752
  %2754 = icmp eq i64 %2746, %2753
  %2755 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2754, ptr noundef @.str.1639, ptr noundef %2755)
  %2756 = load ptr, ptr %4, align 8, !tbaa !5
  %2757 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2756, i32 0, i32 39
  %2758 = load ptr, ptr %5, align 8, !tbaa !5
  %2759 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %2757, ptr noundef %2758)
  %2760 = load ptr, ptr %4, align 8, !tbaa !5
  %2761 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2760, i32 0, i32 33
  %2762 = load i64, ptr %2761, align 8, !tbaa !94
  %2763 = icmp eq i64 %2759, %2762
  %2764 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2763, ptr noundef @.str.1639, ptr noundef %2764)
  br label %2834

2765:                                             ; preds = %2713
  store i8 1, ptr %19, align 1, !tbaa !59
  %2766 = load ptr, ptr %4, align 8, !tbaa !5
  %2767 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2766, i32 0, i32 19
  %2768 = load i64, ptr %2767, align 8, !tbaa !83
  %2769 = icmp ne i64 %2768, 2
  br i1 %2769, label %2770, label %2771

2770:                                             ; preds = %2765
  br label %2802

2771:                                             ; preds = %2765
  %2772 = load ptr, ptr %4, align 8, !tbaa !5
  %2773 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2772, i32 0, i32 28
  store i64 2, ptr %2773, align 8, !tbaa !91
  %2774 = load ptr, ptr %4, align 8, !tbaa !5
  %2775 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2774, i32 0, i32 31
  store i64 1, ptr %2775, align 8, !tbaa !92
  %2776 = load i64, ptr %13, align 8, !tbaa !58
  %2777 = add nsw i64 1, %2776
  %2778 = load ptr, ptr %4, align 8, !tbaa !5
  %2779 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2778, i32 0, i32 32
  store i64 %2777, ptr %2779, align 8, !tbaa !93
  %2780 = load i64, ptr %12, align 8, !tbaa !58
  %2781 = load ptr, ptr %4, align 8, !tbaa !5
  %2782 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2781, i32 0, i32 33
  store i64 %2780, ptr %2782, align 8, !tbaa !94
  %2783 = load ptr, ptr %4, align 8, !tbaa !5
  %2784 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2783, i32 0, i32 34
  store i64 0, ptr %2784, align 8, !tbaa !95
  %2785 = load i64, ptr %12, align 8, !tbaa !58
  %2786 = load i64, ptr %13, align 8, !tbaa !58
  %2787 = add nsw i64 1, %2786
  %2788 = mul nsw i64 %2785, %2787
  %2789 = load ptr, ptr %4, align 8, !tbaa !5
  %2790 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2789, i32 0, i32 38
  %2791 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2788, ptr noundef %2790, ptr noundef %2791)
  %2792 = load i64, ptr %13, align 8, !tbaa !58
  %2793 = add nsw i64 1, %2792
  %2794 = load i64, ptr %12, align 8, !tbaa !58
  %2795 = load ptr, ptr %4, align 8, !tbaa !5
  %2796 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2795, i32 0, i32 44
  %2797 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %2793, i64 noundef %2794, ptr noundef %2796, ptr noundef %2797)
  %2798 = load ptr, ptr %4, align 8, !tbaa !5
  %2799 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2798, i32 0, i32 46
  %2800 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2799, i32 0, i32 0
  store i32 14, ptr %2800, align 8, !tbaa !9
  br label %4022

2801:                                             ; preds = %235
  br label %2833

2802:                                             ; preds = %2770
  %2803 = load ptr, ptr %4, align 8, !tbaa !5
  %2804 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2803, i32 0, i32 19
  %2805 = load i64, ptr %2804, align 8, !tbaa !83
  %2806 = icmp eq i64 %2805, 1
  %2807 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2806, ptr noundef @.str.1640, ptr noundef %2807)
  %2808 = load ptr, ptr %4, align 8, !tbaa !5
  %2809 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2808, i32 0, i32 24
  %2810 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2809, i32 0, i32 0
  %2811 = load i64, ptr %2810, align 8, !tbaa !85
  %2812 = load i64, ptr %13, align 8, !tbaa !58
  %2813 = add nsw i64 1, %2812
  %2814 = icmp eq i64 %2811, %2813
  br i1 %2814, label %2815, label %2822

2815:                                             ; preds = %2802
  %2816 = load ptr, ptr %4, align 8, !tbaa !5
  %2817 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2816, i32 0, i32 24
  %2818 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2817, i32 0, i32 1
  %2819 = load i64, ptr %2818, align 8, !tbaa !86
  %2820 = load i64, ptr %12, align 8, !tbaa !58
  %2821 = icmp eq i64 %2819, %2820
  br label %2822

2822:                                             ; preds = %2815, %2802
  %2823 = phi i1 [ false, %2802 ], [ %2821, %2815 ]
  %2824 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2823, ptr noundef @.str.1637, ptr noundef %2824)
  %2825 = load ptr, ptr %4, align 8, !tbaa !5
  %2826 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2825, i32 0, i32 25
  store i8 1, ptr %2826, align 8, !tbaa !101
  %2827 = load ptr, ptr %4, align 8, !tbaa !5
  %2828 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2827, i32 0, i32 46
  %2829 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2828, i32 0, i32 0
  store i32 15, ptr %2829, align 8, !tbaa !9
  br label %4022

2830:                                             ; preds = %242
  %2831 = load ptr, ptr %4, align 8, !tbaa !5
  %2832 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2831, i32 0, i32 25
  store i8 0, ptr %2832, align 8, !tbaa !101
  br label %2833

2833:                                             ; preds = %2830, %2801
  br label %2834

2834:                                             ; preds = %2833, %2742
  %2835 = load ptr, ptr %4, align 8, !tbaa !5
  %2836 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2835, i32 0, i32 87
  %2837 = load i64, ptr %2836, align 8, !tbaa !67
  %2838 = add nsw i64 %2837, 1
  %2839 = load ptr, ptr %4, align 8, !tbaa !5
  %2840 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2839, i32 0, i32 87
  store i64 %2838, ptr %2840, align 8, !tbaa !67
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %2841

2841:                                             ; preds = %2834, %2707
  %2842 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %2843 = trunc i8 %2842 to i1
  %2844 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2843, ptr noundef @.str.1641, ptr noundef %2844)
  %2845 = load i64, ptr %18, align 8, !tbaa !58
  %2846 = icmp eq i64 %2845, -1
  br i1 %2846, label %2853, label %2847

2847:                                             ; preds = %2841
  %2848 = load i64, ptr %18, align 8, !tbaa !58
  %2849 = icmp eq i64 %2848, 1
  br i1 %2849, label %2853, label %2850

2850:                                             ; preds = %2847
  %2851 = load i64, ptr %18, align 8, !tbaa !58
  %2852 = icmp eq i64 %2851, 2
  br label %2853

2853:                                             ; preds = %2850, %2847, %2841
  %2854 = phi i1 [ true, %2847 ], [ true, %2841 ], [ %2852, %2850 ]
  %2855 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2854, ptr noundef @.str.1642, ptr noundef %2855)
  store i8 0, ptr %17, align 1, !tbaa !59
  %2856 = load i64, ptr %18, align 8, !tbaa !58
  %2857 = icmp eq i64 %2856, -1
  br i1 %2857, label %2858, label %2859

2858:                                             ; preds = %2853
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %2859

2859:                                             ; preds = %2858, %2853
  %2860 = load i64, ptr %18, align 8, !tbaa !58
  %2861 = icmp eq i64 %2860, 2
  br i1 %2861, label %2862, label %3623

2862:                                             ; preds = %2859
  %2863 = load ptr, ptr %4, align 8, !tbaa !5
  %2864 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2863, i32 0, i32 2
  %2865 = load i64, ptr %2864, align 8, !tbaa !80
  %2866 = icmp eq i64 %2865, 0
  br i1 %2866, label %2867, label %3126

2867:                                             ; preds = %2862
  %2868 = load ptr, ptr %4, align 8, !tbaa !5
  %2869 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2868, i32 0, i32 19
  %2870 = load i64, ptr %2869, align 8, !tbaa !83
  %2871 = icmp eq i64 %2870, 1
  br i1 %2871, label %2877, label %2872

2872:                                             ; preds = %2867
  %2873 = load ptr, ptr %4, align 8, !tbaa !5
  %2874 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2873, i32 0, i32 19
  %2875 = load i64, ptr %2874, align 8, !tbaa !83
  %2876 = icmp eq i64 %2875, 2
  br label %2877

2877:                                             ; preds = %2872, %2867
  %2878 = phi i1 [ true, %2867 ], [ %2876, %2872 ]
  %2879 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2878, ptr noundef @.str.1643, ptr noundef %2879)
  %2880 = load ptr, ptr %4, align 8, !tbaa !5
  %2881 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2880, i32 0, i32 19
  %2882 = load i64, ptr %2881, align 8, !tbaa !83
  %2883 = icmp eq i64 %2882, 2
  br i1 %2883, label %2884, label %2893

2884:                                             ; preds = %2877
  %2885 = load i64, ptr %13, align 8, !tbaa !58
  %2886 = add nsw i64 1, %2885
  %2887 = load ptr, ptr %4, align 8, !tbaa !5
  %2888 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2887, i32 0, i32 37
  %2889 = load ptr, ptr %4, align 8, !tbaa !5
  %2890 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2889, i32 0, i32 75
  %2891 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2890, i32 0, i32 24
  %2892 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2886, ptr noundef %2888, ptr noundef %2891, ptr noundef %2892)
  br label %2902

2893:                                             ; preds = %2877
  %2894 = load i64, ptr %13, align 8, !tbaa !58
  %2895 = add nsw i64 1, %2894
  %2896 = load ptr, ptr %4, align 8, !tbaa !5
  %2897 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2896, i32 0, i32 23
  %2898 = load ptr, ptr %4, align 8, !tbaa !5
  %2899 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2898, i32 0, i32 75
  %2900 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2899, i32 0, i32 24
  %2901 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2895, ptr noundef %2897, ptr noundef %2900, ptr noundef %2901)
  br label %2902

2902:                                             ; preds = %2893, %2884
  %2903 = load i8, ptr %19, align 1, !tbaa !59, !range !60, !noundef !61
  %2904 = trunc i8 %2903 to i1
  br i1 %2904, label %2905, label %3112

2905:                                             ; preds = %2902
  %2906 = load ptr, ptr %4, align 8, !tbaa !5
  %2907 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2906, i32 0, i32 75
  %2908 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2907, i32 0, i32 25
  %2909 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2908, i32 0, i32 5
  store i64 1, ptr %2909, align 8, !tbaa !134
  %2910 = load i64, ptr %13, align 8, !tbaa !58
  %2911 = add nsw i64 1, %2910
  %2912 = load ptr, ptr %4, align 8, !tbaa !5
  %2913 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2912, i32 0, i32 75
  %2914 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2913, i32 0, i32 25
  %2915 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2914, i32 0, i32 6
  store i64 %2911, ptr %2915, align 8, !tbaa !135
  %2916 = load i64, ptr %12, align 8, !tbaa !58
  %2917 = load ptr, ptr %4, align 8, !tbaa !5
  %2918 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2917, i32 0, i32 75
  %2919 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2918, i32 0, i32 25
  %2920 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2919, i32 0, i32 7
  store i64 %2916, ptr %2920, align 8, !tbaa !136
  %2921 = load ptr, ptr %4, align 8, !tbaa !5
  %2922 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2921, i32 0, i32 75
  %2923 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2922, i32 0, i32 25
  %2924 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2923, i32 0, i32 6
  %2925 = load i64, ptr %2924, align 8, !tbaa !135
  %2926 = add nsw i64 %2925, 1
  %2927 = load ptr, ptr %4, align 8, !tbaa !5
  %2928 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2927, i32 0, i32 75
  %2929 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2928, i32 0, i32 25
  %2930 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2929, i32 0, i32 2
  %2931 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2926, ptr noundef %2930, ptr noundef %2931)
  %2932 = load ptr, ptr %4, align 8, !tbaa !5
  %2933 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2932, i32 0, i32 75
  %2934 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2933, i32 0, i32 25
  %2935 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2934, i32 0, i32 2
  %2936 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2935, i32 0, i32 4
  %2937 = load ptr, ptr %2936, align 8, !tbaa !57
  %2938 = getelementptr inbounds i64, ptr %2937, i64 0
  store i64 0, ptr %2938, align 8, !tbaa !58
  store i64 0, ptr %14, align 8, !tbaa !58
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %2939

2939:                                             ; preds = %3099, %2905
  %2940 = load i64, ptr %6, align 8, !tbaa !58
  %2941 = load i64, ptr %13, align 8, !tbaa !58
  %2942 = icmp sle i64 %2940, %2941
  br i1 %2942, label %2943, label %3102

2943:                                             ; preds = %2939
  %2944 = load i64, ptr %14, align 8, !tbaa !58
  %2945 = load i64, ptr %12, align 8, !tbaa !58
  %2946 = add nsw i64 %2944, %2945
  %2947 = load ptr, ptr %4, align 8, !tbaa !5
  %2948 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2947, i32 0, i32 75
  %2949 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2948, i32 0, i32 25
  %2950 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2949, i32 0, i32 1
  %2951 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2946, ptr noundef %2950, ptr noundef %2951)
  %2952 = load i64, ptr %14, align 8, !tbaa !58
  %2953 = load i64, ptr %12, align 8, !tbaa !58
  %2954 = add nsw i64 %2952, %2953
  %2955 = load ptr, ptr %4, align 8, !tbaa !5
  %2956 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2955, i32 0, i32 75
  %2957 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2956, i32 0, i32 25
  %2958 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2957, i32 0, i32 0
  %2959 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2954, ptr noundef %2958, ptr noundef %2959)
  %2960 = load ptr, ptr %4, align 8, !tbaa !5
  %2961 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2960, i32 0, i32 19
  %2962 = load i64, ptr %2961, align 8, !tbaa !83
  %2963 = icmp eq i64 %2962, 2
  br i1 %2963, label %2964, label %3027

2964:                                             ; preds = %2943
  store i64 0, ptr %7, align 8, !tbaa !58
  br label %2965

2965:                                             ; preds = %3023, %2964
  %2966 = load i64, ptr %7, align 8, !tbaa !58
  %2967 = load i64, ptr %12, align 8, !tbaa !58
  %2968 = sub nsw i64 %2967, 1
  %2969 = icmp sle i64 %2966, %2968
  br i1 %2969, label %2970, label %3026

2970:                                             ; preds = %2965
  %2971 = load ptr, ptr %4, align 8, !tbaa !5
  %2972 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2971, i32 0, i32 38
  %2973 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2972, i32 0, i32 4
  %2974 = load ptr, ptr %2973, align 8, !tbaa !57
  %2975 = load i64, ptr %6, align 8, !tbaa !58
  %2976 = load i64, ptr %12, align 8, !tbaa !58
  %2977 = mul nsw i64 %2975, %2976
  %2978 = load i64, ptr %7, align 8, !tbaa !58
  %2979 = add nsw i64 %2977, %2978
  %2980 = getelementptr inbounds double, ptr %2974, i64 %2979
  %2981 = load double, ptr %2980, align 8, !tbaa !62
  %2982 = fcmp une double %2981, 0.000000e+00
  br i1 %2982, label %2983, label %3022

2983:                                             ; preds = %2970
  %2984 = load i64, ptr %7, align 8, !tbaa !58
  %2985 = load ptr, ptr %4, align 8, !tbaa !5
  %2986 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2985, i32 0, i32 75
  %2987 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2986, i32 0, i32 25
  %2988 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2987, i32 0, i32 1
  %2989 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2988, i32 0, i32 4
  %2990 = load ptr, ptr %2989, align 8, !tbaa !57
  %2991 = load i64, ptr %14, align 8, !tbaa !58
  %2992 = getelementptr inbounds i64, ptr %2990, i64 %2991
  store i64 %2984, ptr %2992, align 8, !tbaa !58
  %2993 = load ptr, ptr %4, align 8, !tbaa !5
  %2994 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2993, i32 0, i32 38
  %2995 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2994, i32 0, i32 4
  %2996 = load ptr, ptr %2995, align 8, !tbaa !57
  %2997 = load i64, ptr %6, align 8, !tbaa !58
  %2998 = load i64, ptr %12, align 8, !tbaa !58
  %2999 = mul nsw i64 %2997, %2998
  %3000 = load i64, ptr %7, align 8, !tbaa !58
  %3001 = add nsw i64 %2999, %3000
  %3002 = getelementptr inbounds double, ptr %2996, i64 %3001
  %3003 = load double, ptr %3002, align 8, !tbaa !62
  %3004 = load ptr, ptr %4, align 8, !tbaa !5
  %3005 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3004, i32 0, i32 10
  %3006 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3005, i32 0, i32 4
  %3007 = load ptr, ptr %3006, align 8, !tbaa !57
  %3008 = load i64, ptr %7, align 8, !tbaa !58
  %3009 = getelementptr inbounds double, ptr %3007, i64 %3008
  %3010 = load double, ptr %3009, align 8, !tbaa !62
  %3011 = fmul double %3003, %3010
  %3012 = load ptr, ptr %4, align 8, !tbaa !5
  %3013 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3012, i32 0, i32 75
  %3014 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3013, i32 0, i32 25
  %3015 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3014, i32 0, i32 0
  %3016 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3015, i32 0, i32 4
  %3017 = load ptr, ptr %3016, align 8, !tbaa !57
  %3018 = load i64, ptr %14, align 8, !tbaa !58
  %3019 = getelementptr inbounds double, ptr %3017, i64 %3018
  store double %3011, ptr %3019, align 8, !tbaa !62
  %3020 = load i64, ptr %14, align 8, !tbaa !58
  %3021 = add nsw i64 %3020, 1
  store i64 %3021, ptr %14, align 8, !tbaa !58
  br label %3022

3022:                                             ; preds = %2983, %2970
  br label %3023

3023:                                             ; preds = %3022
  %3024 = load i64, ptr %7, align 8, !tbaa !58
  %3025 = add nsw i64 %3024, 1
  store i64 %3025, ptr %7, align 8, !tbaa !58
  br label %2965, !llvm.loop !137

3026:                                             ; preds = %2965
  br label %3088

3027:                                             ; preds = %2943
  store i64 0, ptr %7, align 8, !tbaa !58
  br label %3028

3028:                                             ; preds = %3084, %3027
  %3029 = load i64, ptr %7, align 8, !tbaa !58
  %3030 = load i64, ptr %12, align 8, !tbaa !58
  %3031 = sub nsw i64 %3030, 1
  %3032 = icmp sle i64 %3029, %3031
  br i1 %3032, label %3033, label %3087

3033:                                             ; preds = %3028
  %3034 = load ptr, ptr %4, align 8, !tbaa !5
  %3035 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3034, i32 0, i32 24
  %3036 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3035, i32 0, i32 6
  %3037 = load ptr, ptr %3036, align 8, !tbaa !57
  %3038 = load i64, ptr %6, align 8, !tbaa !58
  %3039 = getelementptr inbounds ptr, ptr %3037, i64 %3038
  %3040 = load ptr, ptr %3039, align 8, !tbaa !5
  %3041 = load i64, ptr %7, align 8, !tbaa !58
  %3042 = getelementptr inbounds double, ptr %3040, i64 %3041
  %3043 = load double, ptr %3042, align 8, !tbaa !62
  %3044 = fcmp une double %3043, 0.000000e+00
  br i1 %3044, label %3045, label %3083

3045:                                             ; preds = %3033
  %3046 = load i64, ptr %7, align 8, !tbaa !58
  %3047 = load ptr, ptr %4, align 8, !tbaa !5
  %3048 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3047, i32 0, i32 75
  %3049 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3048, i32 0, i32 25
  %3050 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3049, i32 0, i32 1
  %3051 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3050, i32 0, i32 4
  %3052 = load ptr, ptr %3051, align 8, !tbaa !57
  %3053 = load i64, ptr %14, align 8, !tbaa !58
  %3054 = getelementptr inbounds i64, ptr %3052, i64 %3053
  store i64 %3046, ptr %3054, align 8, !tbaa !58
  %3055 = load ptr, ptr %4, align 8, !tbaa !5
  %3056 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3055, i32 0, i32 24
  %3057 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3056, i32 0, i32 6
  %3058 = load ptr, ptr %3057, align 8, !tbaa !57
  %3059 = load i64, ptr %6, align 8, !tbaa !58
  %3060 = getelementptr inbounds ptr, ptr %3058, i64 %3059
  %3061 = load ptr, ptr %3060, align 8, !tbaa !5
  %3062 = load i64, ptr %7, align 8, !tbaa !58
  %3063 = getelementptr inbounds double, ptr %3061, i64 %3062
  %3064 = load double, ptr %3063, align 8, !tbaa !62
  %3065 = load ptr, ptr %4, align 8, !tbaa !5
  %3066 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3065, i32 0, i32 10
  %3067 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3066, i32 0, i32 4
  %3068 = load ptr, ptr %3067, align 8, !tbaa !57
  %3069 = load i64, ptr %7, align 8, !tbaa !58
  %3070 = getelementptr inbounds double, ptr %3068, i64 %3069
  %3071 = load double, ptr %3070, align 8, !tbaa !62
  %3072 = fmul double %3064, %3071
  %3073 = load ptr, ptr %4, align 8, !tbaa !5
  %3074 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3073, i32 0, i32 75
  %3075 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3074, i32 0, i32 25
  %3076 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3075, i32 0, i32 0
  %3077 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3076, i32 0, i32 4
  %3078 = load ptr, ptr %3077, align 8, !tbaa !57
  %3079 = load i64, ptr %14, align 8, !tbaa !58
  %3080 = getelementptr inbounds double, ptr %3078, i64 %3079
  store double %3072, ptr %3080, align 8, !tbaa !62
  %3081 = load i64, ptr %14, align 8, !tbaa !58
  %3082 = add nsw i64 %3081, 1
  store i64 %3082, ptr %14, align 8, !tbaa !58
  br label %3083

3083:                                             ; preds = %3045, %3033
  br label %3084

3084:                                             ; preds = %3083
  %3085 = load i64, ptr %7, align 8, !tbaa !58
  %3086 = add nsw i64 %3085, 1
  store i64 %3086, ptr %7, align 8, !tbaa !58
  br label %3028, !llvm.loop !138

3087:                                             ; preds = %3028
  br label %3088

3088:                                             ; preds = %3087, %3026
  %3089 = load i64, ptr %14, align 8, !tbaa !58
  %3090 = load ptr, ptr %4, align 8, !tbaa !5
  %3091 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3090, i32 0, i32 75
  %3092 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3091, i32 0, i32 25
  %3093 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3092, i32 0, i32 2
  %3094 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3093, i32 0, i32 4
  %3095 = load ptr, ptr %3094, align 8, !tbaa !57
  %3096 = load i64, ptr %6, align 8, !tbaa !58
  %3097 = add nsw i64 %3096, 1
  %3098 = getelementptr inbounds i64, ptr %3095, i64 %3097
  store i64 %3089, ptr %3098, align 8, !tbaa !58
  br label %3099

3099:                                             ; preds = %3088
  %3100 = load i64, ptr %6, align 8, !tbaa !58
  %3101 = add nsw i64 %3100, 1
  store i64 %3101, ptr %6, align 8, !tbaa !58
  br label %2939, !llvm.loop !139

3102:                                             ; preds = %2939
  %3103 = load i64, ptr %14, align 8, !tbaa !58
  %3104 = load ptr, ptr %4, align 8, !tbaa !5
  %3105 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3104, i32 0, i32 75
  %3106 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3105, i32 0, i32 25
  %3107 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3106, i32 0, i32 9
  store i64 %3103, ptr %3107, align 8, !tbaa !140
  %3108 = load ptr, ptr %4, align 8, !tbaa !5
  %3109 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3108, i32 0, i32 75
  %3110 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3109, i32 0, i32 25
  %3111 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl15sparseinitduidxEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %3110, ptr noundef %3111)
  br label %3125

3112:                                             ; preds = %2902
  %3113 = load ptr, ptr %4, align 8, !tbaa !5
  %3114 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3113, i32 0, i32 39
  %3115 = load ptr, ptr %4, align 8, !tbaa !5
  %3116 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3115, i32 0, i32 75
  %3117 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3116, i32 0, i32 25
  %3118 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %3114, ptr noundef %3117, ptr noundef %3118)
  %3119 = load ptr, ptr %4, align 8, !tbaa !5
  %3120 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3119, i32 0, i32 75
  %3121 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3120, i32 0, i32 25
  %3122 = load ptr, ptr %4, align 8, !tbaa !5
  %3123 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3122, i32 0, i32 10
  %3124 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %3121, ptr noundef %3123, ptr noundef %3124)
  br label %3125

3125:                                             ; preds = %3112, %3102
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %3126

3126:                                             ; preds = %3125, %2862
  %3127 = load ptr, ptr %4, align 8, !tbaa !5
  %3128 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3127, i32 0, i32 2
  %3129 = load i64, ptr %3128, align 8, !tbaa !80
  %3130 = icmp eq i64 %3129, 2
  br i1 %3130, label %3136, label %3131

3131:                                             ; preds = %3126
  %3132 = load ptr, ptr %4, align 8, !tbaa !5
  %3133 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3132, i32 0, i32 2
  %3134 = load i64, ptr %3133, align 8, !tbaa !80
  %3135 = icmp eq i64 %3134, 3
  br i1 %3135, label %3136, label %3535

3136:                                             ; preds = %3131, %3126
  %3137 = load ptr, ptr %4, align 8, !tbaa !5
  %3138 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3137, i32 0, i32 19
  %3139 = load i64, ptr %3138, align 8, !tbaa !83
  %3140 = icmp eq i64 %3139, 2
  br i1 %3140, label %3141, label %3409

3141:                                             ; preds = %3136
  %3142 = load ptr, ptr %4, align 8, !tbaa !5
  %3143 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3142, i32 0, i32 37
  %3144 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3143, i32 0, i32 4
  %3145 = load ptr, ptr %3144, align 8, !tbaa !57
  %3146 = getelementptr inbounds double, ptr %3145, i64 0
  %3147 = load double, ptr %3146, align 8, !tbaa !62
  %3148 = load ptr, ptr %4, align 8, !tbaa !5
  %3149 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3148, i32 0, i32 80
  %3150 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3149, i32 0, i32 16
  %3151 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3150, i32 0, i32 4
  %3152 = load ptr, ptr %3151, align 8, !tbaa !57
  %3153 = getelementptr inbounds double, ptr %3152, i64 0
  store double %3147, ptr %3153, align 8, !tbaa !62
  %3154 = load i8, ptr %19, align 1, !tbaa !59, !range !60, !noundef !61
  %3155 = trunc i8 %3154 to i1
  br i1 %3155, label %3211, label %3156

3156:                                             ; preds = %3141
  %3157 = load i64, ptr %12, align 8, !tbaa !58
  %3158 = load ptr, ptr %4, align 8, !tbaa !5
  %3159 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3158, i32 0, i32 80
  %3160 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3159, i32 0, i32 17
  %3161 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3157, double noundef 0.000000e+00, ptr noundef %3160, i64 noundef 0, ptr noundef %3161)
  %3162 = load ptr, ptr %4, align 8, !tbaa !5
  %3163 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3162, i32 0, i32 39
  %3164 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3163, i32 0, i32 2
  %3165 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3164, i32 0, i32 4
  %3166 = load ptr, ptr %3165, align 8, !tbaa !57
  %3167 = getelementptr inbounds i64, ptr %3166, i64 0
  %3168 = load i64, ptr %3167, align 8, !tbaa !58
  store i64 %3168, ptr %9, align 8, !tbaa !58
  %3169 = load ptr, ptr %4, align 8, !tbaa !5
  %3170 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3169, i32 0, i32 39
  %3171 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3170, i32 0, i32 2
  %3172 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3171, i32 0, i32 4
  %3173 = load ptr, ptr %3172, align 8, !tbaa !57
  %3174 = getelementptr inbounds i64, ptr %3173, i64 1
  %3175 = load i64, ptr %3174, align 8, !tbaa !58
  %3176 = sub nsw i64 %3175, 1
  store i64 %3176, ptr %10, align 8, !tbaa !58
  %3177 = load i64, ptr %9, align 8, !tbaa !58
  store i64 %3177, ptr %11, align 8, !tbaa !58
  br label %3178

3178:                                             ; preds = %3207, %3156
  %3179 = load i64, ptr %11, align 8, !tbaa !58
  %3180 = load i64, ptr %10, align 8, !tbaa !58
  %3181 = icmp sle i64 %3179, %3180
  br i1 %3181, label %3182, label %3210

3182:                                             ; preds = %3178
  %3183 = load ptr, ptr %4, align 8, !tbaa !5
  %3184 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3183, i32 0, i32 39
  %3185 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3184, i32 0, i32 0
  %3186 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3185, i32 0, i32 4
  %3187 = load ptr, ptr %3186, align 8, !tbaa !57
  %3188 = load i64, ptr %11, align 8, !tbaa !58
  %3189 = getelementptr inbounds double, ptr %3187, i64 %3188
  %3190 = load double, ptr %3189, align 8, !tbaa !62
  %3191 = load ptr, ptr %4, align 8, !tbaa !5
  %3192 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3191, i32 0, i32 80
  %3193 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3192, i32 0, i32 17
  %3194 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3193, i32 0, i32 6
  %3195 = load ptr, ptr %3194, align 8, !tbaa !57
  %3196 = getelementptr inbounds ptr, ptr %3195, i64 0
  %3197 = load ptr, ptr %3196, align 8, !tbaa !5
  %3198 = load ptr, ptr %4, align 8, !tbaa !5
  %3199 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3198, i32 0, i32 39
  %3200 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3199, i32 0, i32 1
  %3201 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3200, i32 0, i32 4
  %3202 = load ptr, ptr %3201, align 8, !tbaa !57
  %3203 = load i64, ptr %11, align 8, !tbaa !58
  %3204 = getelementptr inbounds i64, ptr %3202, i64 %3203
  %3205 = load i64, ptr %3204, align 8, !tbaa !58
  %3206 = getelementptr inbounds double, ptr %3197, i64 %3205
  store double %3190, ptr %3206, align 8, !tbaa !62
  br label %3207

3207:                                             ; preds = %3182
  %3208 = load i64, ptr %11, align 8, !tbaa !58
  %3209 = add nsw i64 %3208, 1
  store i64 %3209, ptr %11, align 8, !tbaa !58
  br label %3178, !llvm.loop !141

3210:                                             ; preds = %3178
  br label %3219

3211:                                             ; preds = %3141
  %3212 = load i64, ptr %12, align 8, !tbaa !58
  %3213 = load ptr, ptr %4, align 8, !tbaa !5
  %3214 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3213, i32 0, i32 38
  %3215 = load ptr, ptr %4, align 8, !tbaa !5
  %3216 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3215, i32 0, i32 80
  %3217 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3216, i32 0, i32 17
  %3218 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3212, ptr noundef %3214, ptr noundef %3217, i64 noundef 0, ptr noundef %3218)
  br label %3219

3219:                                             ; preds = %3211, %3210
  %3220 = load i64, ptr %12, align 8, !tbaa !58
  %3221 = load ptr, ptr %4, align 8, !tbaa !5
  %3222 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3221, i32 0, i32 10
  %3223 = load ptr, ptr %4, align 8, !tbaa !5
  %3224 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3223, i32 0, i32 80
  %3225 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3224, i32 0, i32 17
  %3226 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3220, ptr noundef %3222, ptr noundef %3225, i64 noundef 0, ptr noundef %3226)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %3227

3227:                                             ; preds = %3405, %3219
  %3228 = load i64, ptr %6, align 8, !tbaa !58
  %3229 = load ptr, ptr %4, align 8, !tbaa !5
  %3230 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3229, i32 0, i32 103
  %3231 = load i64, ptr %3230, align 8, !tbaa !107
  %3232 = load ptr, ptr %4, align 8, !tbaa !5
  %3233 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3232, i32 0, i32 104
  %3234 = load i64, ptr %3233, align 8, !tbaa !108
  %3235 = add nsw i64 %3231, %3234
  %3236 = sub nsw i64 %3235, 1
  %3237 = icmp sle i64 %3228, %3236
  br i1 %3237, label %3238, label %3408

3238:                                             ; preds = %3227
  %3239 = load ptr, ptr %4, align 8, !tbaa !5
  %3240 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3239, i32 0, i32 37
  %3241 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3240, i32 0, i32 4
  %3242 = load ptr, ptr %3241, align 8, !tbaa !57
  %3243 = load ptr, ptr %4, align 8, !tbaa !5
  %3244 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3243, i32 0, i32 100
  %3245 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3244, i32 0, i32 4
  %3246 = load ptr, ptr %3245, align 8, !tbaa !57
  %3247 = load i64, ptr %6, align 8, !tbaa !58
  %3248 = getelementptr inbounds i64, ptr %3246, i64 %3247
  %3249 = load i64, ptr %3248, align 8, !tbaa !58
  %3250 = add nsw i64 1, %3249
  %3251 = getelementptr inbounds double, ptr %3242, i64 %3250
  %3252 = load double, ptr %3251, align 8, !tbaa !62
  %3253 = load ptr, ptr %4, align 8, !tbaa !5
  %3254 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3253, i32 0, i32 101
  %3255 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3254, i32 0, i32 4
  %3256 = load ptr, ptr %3255, align 8, !tbaa !57
  %3257 = load i64, ptr %6, align 8, !tbaa !58
  %3258 = getelementptr inbounds double, ptr %3256, i64 %3257
  %3259 = load double, ptr %3258, align 8, !tbaa !62
  %3260 = load ptr, ptr %4, align 8, !tbaa !5
  %3261 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3260, i32 0, i32 102
  %3262 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3261, i32 0, i32 4
  %3263 = load ptr, ptr %3262, align 8, !tbaa !57
  %3264 = load i64, ptr %6, align 8, !tbaa !58
  %3265 = getelementptr inbounds double, ptr %3263, i64 %3264
  %3266 = load double, ptr %3265, align 8, !tbaa !62
  %3267 = call double @llvm.fmuladd.f64(double %3252, double %3259, double %3266)
  %3268 = load ptr, ptr %4, align 8, !tbaa !5
  %3269 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3268, i32 0, i32 80
  %3270 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3269, i32 0, i32 16
  %3271 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3270, i32 0, i32 4
  %3272 = load ptr, ptr %3271, align 8, !tbaa !57
  %3273 = load i64, ptr %6, align 8, !tbaa !58
  %3274 = add nsw i64 %3273, 1
  %3275 = getelementptr inbounds double, ptr %3272, i64 %3274
  store double %3267, ptr %3275, align 8, !tbaa !62
  %3276 = load ptr, ptr %4, align 8, !tbaa !5
  %3277 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3276, i32 0, i32 100
  %3278 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3277, i32 0, i32 4
  %3279 = load ptr, ptr %3278, align 8, !tbaa !57
  %3280 = load i64, ptr %6, align 8, !tbaa !58
  %3281 = getelementptr inbounds i64, ptr %3279, i64 %3280
  %3282 = load i64, ptr %3281, align 8, !tbaa !58
  %3283 = add nsw i64 1, %3282
  store i64 %3283, ptr %8, align 8, !tbaa !58
  %3284 = load i8, ptr %19, align 1, !tbaa !59, !range !60, !noundef !61
  %3285 = trunc i8 %3284 to i1
  br i1 %3285, label %3348, label %3286

3286:                                             ; preds = %3238
  %3287 = load i64, ptr %12, align 8, !tbaa !58
  %3288 = load ptr, ptr %4, align 8, !tbaa !5
  %3289 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3288, i32 0, i32 80
  %3290 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3289, i32 0, i32 17
  %3291 = load i64, ptr %6, align 8, !tbaa !58
  %3292 = add nsw i64 %3291, 1
  %3293 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3287, double noundef 0.000000e+00, ptr noundef %3290, i64 noundef %3292, ptr noundef %3293)
  %3294 = load ptr, ptr %4, align 8, !tbaa !5
  %3295 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3294, i32 0, i32 39
  %3296 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3295, i32 0, i32 2
  %3297 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3296, i32 0, i32 4
  %3298 = load ptr, ptr %3297, align 8, !tbaa !57
  %3299 = load i64, ptr %8, align 8, !tbaa !58
  %3300 = getelementptr inbounds i64, ptr %3298, i64 %3299
  %3301 = load i64, ptr %3300, align 8, !tbaa !58
  store i64 %3301, ptr %9, align 8, !tbaa !58
  %3302 = load ptr, ptr %4, align 8, !tbaa !5
  %3303 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3302, i32 0, i32 39
  %3304 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3303, i32 0, i32 2
  %3305 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3304, i32 0, i32 4
  %3306 = load ptr, ptr %3305, align 8, !tbaa !57
  %3307 = load i64, ptr %8, align 8, !tbaa !58
  %3308 = add nsw i64 %3307, 1
  %3309 = getelementptr inbounds i64, ptr %3306, i64 %3308
  %3310 = load i64, ptr %3309, align 8, !tbaa !58
  %3311 = sub nsw i64 %3310, 1
  store i64 %3311, ptr %10, align 8, !tbaa !58
  %3312 = load i64, ptr %9, align 8, !tbaa !58
  store i64 %3312, ptr %11, align 8, !tbaa !58
  br label %3313

3313:                                             ; preds = %3344, %3286
  %3314 = load i64, ptr %11, align 8, !tbaa !58
  %3315 = load i64, ptr %10, align 8, !tbaa !58
  %3316 = icmp sle i64 %3314, %3315
  br i1 %3316, label %3317, label %3347

3317:                                             ; preds = %3313
  %3318 = load ptr, ptr %4, align 8, !tbaa !5
  %3319 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3318, i32 0, i32 39
  %3320 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3319, i32 0, i32 0
  %3321 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3320, i32 0, i32 4
  %3322 = load ptr, ptr %3321, align 8, !tbaa !57
  %3323 = load i64, ptr %11, align 8, !tbaa !58
  %3324 = getelementptr inbounds double, ptr %3322, i64 %3323
  %3325 = load double, ptr %3324, align 8, !tbaa !62
  %3326 = load ptr, ptr %4, align 8, !tbaa !5
  %3327 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3326, i32 0, i32 80
  %3328 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3327, i32 0, i32 17
  %3329 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3328, i32 0, i32 6
  %3330 = load ptr, ptr %3329, align 8, !tbaa !57
  %3331 = load i64, ptr %6, align 8, !tbaa !58
  %3332 = add nsw i64 %3331, 1
  %3333 = getelementptr inbounds ptr, ptr %3330, i64 %3332
  %3334 = load ptr, ptr %3333, align 8, !tbaa !5
  %3335 = load ptr, ptr %4, align 8, !tbaa !5
  %3336 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3335, i32 0, i32 39
  %3337 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %3336, i32 0, i32 1
  %3338 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3337, i32 0, i32 4
  %3339 = load ptr, ptr %3338, align 8, !tbaa !57
  %3340 = load i64, ptr %11, align 8, !tbaa !58
  %3341 = getelementptr inbounds i64, ptr %3339, i64 %3340
  %3342 = load i64, ptr %3341, align 8, !tbaa !58
  %3343 = getelementptr inbounds double, ptr %3334, i64 %3342
  store double %3325, ptr %3343, align 8, !tbaa !62
  br label %3344

3344:                                             ; preds = %3317
  %3345 = load i64, ptr %11, align 8, !tbaa !58
  %3346 = add nsw i64 %3345, 1
  store i64 %3346, ptr %11, align 8, !tbaa !58
  br label %3313, !llvm.loop !142

3347:                                             ; preds = %3313
  br label %3381

3348:                                             ; preds = %3238
  store i64 0, ptr %7, align 8, !tbaa !58
  br label %3349

3349:                                             ; preds = %3377, %3348
  %3350 = load i64, ptr %7, align 8, !tbaa !58
  %3351 = load i64, ptr %12, align 8, !tbaa !58
  %3352 = sub nsw i64 %3351, 1
  %3353 = icmp sle i64 %3350, %3352
  br i1 %3353, label %3354, label %3380

3354:                                             ; preds = %3349
  %3355 = load ptr, ptr %4, align 8, !tbaa !5
  %3356 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3355, i32 0, i32 38
  %3357 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3356, i32 0, i32 4
  %3358 = load ptr, ptr %3357, align 8, !tbaa !57
  %3359 = load i64, ptr %8, align 8, !tbaa !58
  %3360 = load i64, ptr %12, align 8, !tbaa !58
  %3361 = mul nsw i64 %3359, %3360
  %3362 = load i64, ptr %7, align 8, !tbaa !58
  %3363 = add nsw i64 %3361, %3362
  %3364 = getelementptr inbounds double, ptr %3358, i64 %3363
  %3365 = load double, ptr %3364, align 8, !tbaa !62
  %3366 = load ptr, ptr %4, align 8, !tbaa !5
  %3367 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3366, i32 0, i32 80
  %3368 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3367, i32 0, i32 17
  %3369 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3368, i32 0, i32 6
  %3370 = load ptr, ptr %3369, align 8, !tbaa !57
  %3371 = load i64, ptr %6, align 8, !tbaa !58
  %3372 = add nsw i64 %3371, 1
  %3373 = getelementptr inbounds ptr, ptr %3370, i64 %3372
  %3374 = load ptr, ptr %3373, align 8, !tbaa !5
  %3375 = load i64, ptr %7, align 8, !tbaa !58
  %3376 = getelementptr inbounds double, ptr %3374, i64 %3375
  store double %3365, ptr %3376, align 8, !tbaa !62
  br label %3377

3377:                                             ; preds = %3354
  %3378 = load i64, ptr %7, align 8, !tbaa !58
  %3379 = add nsw i64 %3378, 1
  store i64 %3379, ptr %7, align 8, !tbaa !58
  br label %3349, !llvm.loop !143

3380:                                             ; preds = %3349
  br label %3381

3381:                                             ; preds = %3380, %3347
  %3382 = load i64, ptr %12, align 8, !tbaa !58
  %3383 = load ptr, ptr %4, align 8, !tbaa !5
  %3384 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3383, i32 0, i32 10
  %3385 = load ptr, ptr %4, align 8, !tbaa !5
  %3386 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3385, i32 0, i32 80
  %3387 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3386, i32 0, i32 17
  %3388 = load i64, ptr %6, align 8, !tbaa !58
  %3389 = add nsw i64 %3388, 1
  %3390 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3382, ptr noundef %3384, ptr noundef %3387, i64 noundef %3389, ptr noundef %3390)
  %3391 = load i64, ptr %12, align 8, !tbaa !58
  %3392 = load ptr, ptr %4, align 8, !tbaa !5
  %3393 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3392, i32 0, i32 101
  %3394 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3393, i32 0, i32 4
  %3395 = load ptr, ptr %3394, align 8, !tbaa !57
  %3396 = load i64, ptr %6, align 8, !tbaa !58
  %3397 = getelementptr inbounds double, ptr %3395, i64 %3396
  %3398 = load double, ptr %3397, align 8, !tbaa !62
  %3399 = load ptr, ptr %4, align 8, !tbaa !5
  %3400 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3399, i32 0, i32 80
  %3401 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3400, i32 0, i32 17
  %3402 = load i64, ptr %6, align 8, !tbaa !58
  %3403 = add nsw i64 %3402, 1
  %3404 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3391, double noundef %3398, ptr noundef %3401, i64 noundef %3403, ptr noundef %3404)
  br label %3405

3405:                                             ; preds = %3381
  %3406 = load i64, ptr %6, align 8, !tbaa !58
  %3407 = add nsw i64 %3406, 1
  store i64 %3407, ptr %6, align 8, !tbaa !58
  br label %3227, !llvm.loop !144

3408:                                             ; preds = %3227
  br label %3534

3409:                                             ; preds = %3136
  %3410 = load ptr, ptr %4, align 8, !tbaa !5
  %3411 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3410, i32 0, i32 19
  %3412 = load i64, ptr %3411, align 8, !tbaa !83
  %3413 = icmp eq i64 %3412, 1
  %3414 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3413, ptr noundef @.str.1644, ptr noundef %3414)
  %3415 = load ptr, ptr %4, align 8, !tbaa !5
  %3416 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3415, i32 0, i32 23
  %3417 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3416, i32 0, i32 4
  %3418 = load ptr, ptr %3417, align 8, !tbaa !57
  %3419 = getelementptr inbounds double, ptr %3418, i64 0
  %3420 = load double, ptr %3419, align 8, !tbaa !62
  %3421 = load ptr, ptr %4, align 8, !tbaa !5
  %3422 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3421, i32 0, i32 80
  %3423 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3422, i32 0, i32 16
  %3424 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3423, i32 0, i32 4
  %3425 = load ptr, ptr %3424, align 8, !tbaa !57
  %3426 = getelementptr inbounds double, ptr %3425, i64 0
  store double %3420, ptr %3426, align 8, !tbaa !62
  %3427 = load i64, ptr %12, align 8, !tbaa !58
  %3428 = load ptr, ptr %4, align 8, !tbaa !5
  %3429 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3428, i32 0, i32 24
  %3430 = load ptr, ptr %4, align 8, !tbaa !5
  %3431 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3430, i32 0, i32 80
  %3432 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3431, i32 0, i32 17
  %3433 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %3427, ptr noundef %3429, i64 noundef 0, ptr noundef %3432, i64 noundef 0, ptr noundef %3433)
  %3434 = load i64, ptr %12, align 8, !tbaa !58
  %3435 = load ptr, ptr %4, align 8, !tbaa !5
  %3436 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3435, i32 0, i32 10
  %3437 = load ptr, ptr %4, align 8, !tbaa !5
  %3438 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3437, i32 0, i32 80
  %3439 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3438, i32 0, i32 17
  %3440 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3434, ptr noundef %3436, ptr noundef %3439, i64 noundef 0, ptr noundef %3440)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %3441

3441:                                             ; preds = %3530, %3409
  %3442 = load i64, ptr %6, align 8, !tbaa !58
  %3443 = load ptr, ptr %4, align 8, !tbaa !5
  %3444 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3443, i32 0, i32 103
  %3445 = load i64, ptr %3444, align 8, !tbaa !107
  %3446 = load ptr, ptr %4, align 8, !tbaa !5
  %3447 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3446, i32 0, i32 104
  %3448 = load i64, ptr %3447, align 8, !tbaa !108
  %3449 = add nsw i64 %3445, %3448
  %3450 = sub nsw i64 %3449, 1
  %3451 = icmp sle i64 %3442, %3450
  br i1 %3451, label %3452, label %3533

3452:                                             ; preds = %3441
  %3453 = load ptr, ptr %4, align 8, !tbaa !5
  %3454 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3453, i32 0, i32 23
  %3455 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3454, i32 0, i32 4
  %3456 = load ptr, ptr %3455, align 8, !tbaa !57
  %3457 = load ptr, ptr %4, align 8, !tbaa !5
  %3458 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3457, i32 0, i32 100
  %3459 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3458, i32 0, i32 4
  %3460 = load ptr, ptr %3459, align 8, !tbaa !57
  %3461 = load i64, ptr %6, align 8, !tbaa !58
  %3462 = getelementptr inbounds i64, ptr %3460, i64 %3461
  %3463 = load i64, ptr %3462, align 8, !tbaa !58
  %3464 = add nsw i64 1, %3463
  %3465 = getelementptr inbounds double, ptr %3456, i64 %3464
  %3466 = load double, ptr %3465, align 8, !tbaa !62
  %3467 = load ptr, ptr %4, align 8, !tbaa !5
  %3468 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3467, i32 0, i32 101
  %3469 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3468, i32 0, i32 4
  %3470 = load ptr, ptr %3469, align 8, !tbaa !57
  %3471 = load i64, ptr %6, align 8, !tbaa !58
  %3472 = getelementptr inbounds double, ptr %3470, i64 %3471
  %3473 = load double, ptr %3472, align 8, !tbaa !62
  %3474 = load ptr, ptr %4, align 8, !tbaa !5
  %3475 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3474, i32 0, i32 102
  %3476 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3475, i32 0, i32 4
  %3477 = load ptr, ptr %3476, align 8, !tbaa !57
  %3478 = load i64, ptr %6, align 8, !tbaa !58
  %3479 = getelementptr inbounds double, ptr %3477, i64 %3478
  %3480 = load double, ptr %3479, align 8, !tbaa !62
  %3481 = call double @llvm.fmuladd.f64(double %3466, double %3473, double %3480)
  %3482 = load ptr, ptr %4, align 8, !tbaa !5
  %3483 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3482, i32 0, i32 80
  %3484 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3483, i32 0, i32 16
  %3485 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3484, i32 0, i32 4
  %3486 = load ptr, ptr %3485, align 8, !tbaa !57
  %3487 = load i64, ptr %6, align 8, !tbaa !58
  %3488 = add nsw i64 %3487, 1
  %3489 = getelementptr inbounds double, ptr %3486, i64 %3488
  store double %3481, ptr %3489, align 8, !tbaa !62
  %3490 = load i64, ptr %12, align 8, !tbaa !58
  %3491 = load ptr, ptr %4, align 8, !tbaa !5
  %3492 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3491, i32 0, i32 24
  %3493 = load ptr, ptr %4, align 8, !tbaa !5
  %3494 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3493, i32 0, i32 100
  %3495 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3494, i32 0, i32 4
  %3496 = load ptr, ptr %3495, align 8, !tbaa !57
  %3497 = load i64, ptr %6, align 8, !tbaa !58
  %3498 = getelementptr inbounds i64, ptr %3496, i64 %3497
  %3499 = load i64, ptr %3498, align 8, !tbaa !58
  %3500 = add nsw i64 1, %3499
  %3501 = load ptr, ptr %4, align 8, !tbaa !5
  %3502 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3501, i32 0, i32 80
  %3503 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3502, i32 0, i32 17
  %3504 = load i64, ptr %6, align 8, !tbaa !58
  %3505 = add nsw i64 %3504, 1
  %3506 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %3490, ptr noundef %3492, i64 noundef %3500, ptr noundef %3503, i64 noundef %3505, ptr noundef %3506)
  %3507 = load i64, ptr %12, align 8, !tbaa !58
  %3508 = load ptr, ptr %4, align 8, !tbaa !5
  %3509 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3508, i32 0, i32 10
  %3510 = load ptr, ptr %4, align 8, !tbaa !5
  %3511 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3510, i32 0, i32 80
  %3512 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3511, i32 0, i32 17
  %3513 = load i64, ptr %6, align 8, !tbaa !58
  %3514 = add nsw i64 %3513, 1
  %3515 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3507, ptr noundef %3509, ptr noundef %3512, i64 noundef %3514, ptr noundef %3515)
  %3516 = load i64, ptr %12, align 8, !tbaa !58
  %3517 = load ptr, ptr %4, align 8, !tbaa !5
  %3518 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3517, i32 0, i32 101
  %3519 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3518, i32 0, i32 4
  %3520 = load ptr, ptr %3519, align 8, !tbaa !57
  %3521 = load i64, ptr %6, align 8, !tbaa !58
  %3522 = getelementptr inbounds double, ptr %3520, i64 %3521
  %3523 = load double, ptr %3522, align 8, !tbaa !62
  %3524 = load ptr, ptr %4, align 8, !tbaa !5
  %3525 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3524, i32 0, i32 80
  %3526 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3525, i32 0, i32 17
  %3527 = load i64, ptr %6, align 8, !tbaa !58
  %3528 = add nsw i64 %3527, 1
  %3529 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %3516, double noundef %3523, ptr noundef %3526, i64 noundef %3528, ptr noundef %3529)
  br label %3530

3530:                                             ; preds = %3452
  %3531 = load i64, ptr %6, align 8, !tbaa !58
  %3532 = add nsw i64 %3531, 1
  store i64 %3532, ptr %6, align 8, !tbaa !58
  br label %3441, !llvm.loop !145

3533:                                             ; preds = %3441
  br label %3534

3534:                                             ; preds = %3533, %3408
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %3535

3535:                                             ; preds = %3534, %3131
  %3536 = load ptr, ptr %4, align 8, !tbaa !5
  %3537 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3536, i32 0, i32 2
  %3538 = load i64, ptr %3537, align 8, !tbaa !80
  %3539 = icmp eq i64 %3538, 4
  br i1 %3539, label %3545, label %3540

3540:                                             ; preds = %3535
  %3541 = load ptr, ptr %4, align 8, !tbaa !5
  %3542 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3541, i32 0, i32 2
  %3543 = load i64, ptr %3542, align 8, !tbaa !80
  %3544 = icmp eq i64 %3543, 5
  br i1 %3544, label %3545, label %3622

3545:                                             ; preds = %3540, %3535
  %3546 = load ptr, ptr %4, align 8, !tbaa !5
  %3547 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3546, i32 0, i32 19
  %3548 = load i64, ptr %3547, align 8, !tbaa !83
  %3549 = icmp eq i64 %3548, 2
  br i1 %3549, label %3550, label %3587

3550:                                             ; preds = %3545
  %3551 = load i64, ptr %13, align 8, !tbaa !58
  %3552 = add nsw i64 %3551, 1
  %3553 = load ptr, ptr %4, align 8, !tbaa !5
  %3554 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3553, i32 0, i32 37
  %3555 = load ptr, ptr %4, align 8, !tbaa !5
  %3556 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3555, i32 0, i32 81
  %3557 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3556, i32 0, i32 29
  %3558 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %3552, ptr noundef %3554, ptr noundef %3557, ptr noundef %3558)
  %3559 = load i8, ptr %19, align 1, !tbaa !59, !range !60, !noundef !61
  %3560 = trunc i8 %3559 to i1
  br i1 %3560, label %3561, label %3573

3561:                                             ; preds = %3550
  %3562 = load ptr, ptr %4, align 8, !tbaa !5
  %3563 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3562, i32 0, i32 38
  %3564 = load ptr, ptr %4, align 8, !tbaa !5
  %3565 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3564, i32 0, i32 16
  %3566 = load i64, ptr %3565, align 8, !tbaa !78
  %3567 = add nsw i64 %3566, 1
  %3568 = load i64, ptr %12, align 8, !tbaa !58
  %3569 = load ptr, ptr %4, align 8, !tbaa !5
  %3570 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3569, i32 0, i32 81
  %3571 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3570, i32 0, i32 30
  %3572 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL20minnlc_crsfromdensevEPKNS_9ae_vectorEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %3563, i64 noundef %3567, i64 noundef %3568, ptr noundef %3571, ptr noundef %3572)
  br label %3580

3573:                                             ; preds = %3550
  %3574 = load ptr, ptr %4, align 8, !tbaa !5
  %3575 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3574, i32 0, i32 39
  %3576 = load ptr, ptr %4, align 8, !tbaa !5
  %3577 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3576, i32 0, i32 81
  %3578 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3577, i32 0, i32 30
  %3579 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %3575, ptr noundef %3578, ptr noundef %3579)
  br label %3580

3580:                                             ; preds = %3573, %3561
  %3581 = load ptr, ptr %4, align 8, !tbaa !5
  %3582 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3581, i32 0, i32 81
  %3583 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3582, i32 0, i32 30
  %3584 = load ptr, ptr %4, align 8, !tbaa !5
  %3585 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3584, i32 0, i32 10
  %3586 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %3583, ptr noundef %3585, ptr noundef %3586)
  br label %3621

3587:                                             ; preds = %3545
  %3588 = load ptr, ptr %4, align 8, !tbaa !5
  %3589 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3588, i32 0, i32 19
  %3590 = load i64, ptr %3589, align 8, !tbaa !83
  %3591 = icmp eq i64 %3590, 1
  %3592 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3591, ptr noundef @.str.1644, ptr noundef %3592)
  %3593 = load i8, ptr %19, align 1, !tbaa !59, !range !60, !noundef !61
  %3594 = trunc i8 %3593 to i1
  %3595 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3594, ptr noundef @.str.1645, ptr noundef %3595)
  %3596 = load i64, ptr %13, align 8, !tbaa !58
  %3597 = add nsw i64 %3596, 1
  %3598 = load ptr, ptr %4, align 8, !tbaa !5
  %3599 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3598, i32 0, i32 23
  %3600 = load ptr, ptr %4, align 8, !tbaa !5
  %3601 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3600, i32 0, i32 81
  %3602 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3601, i32 0, i32 29
  %3603 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %3597, ptr noundef %3599, ptr noundef %3602, ptr noundef %3603)
  %3604 = load ptr, ptr %4, align 8, !tbaa !5
  %3605 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3604, i32 0, i32 24
  %3606 = load ptr, ptr %4, align 8, !tbaa !5
  %3607 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3606, i32 0, i32 16
  %3608 = load i64, ptr %3607, align 8, !tbaa !78
  %3609 = add nsw i64 %3608, 1
  %3610 = load i64, ptr %12, align 8, !tbaa !58
  %3611 = load ptr, ptr %4, align 8, !tbaa !5
  %3612 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3611, i32 0, i32 81
  %3613 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3612, i32 0, i32 30
  %3614 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL19minnlc_crsfromdenseEPKNS_9ae_matrixEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %3605, i64 noundef %3609, i64 noundef %3610, ptr noundef %3613, ptr noundef %3614)
  %3615 = load ptr, ptr %4, align 8, !tbaa !5
  %3616 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3615, i32 0, i32 81
  %3617 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3616, i32 0, i32 30
  %3618 = load ptr, ptr %4, align 8, !tbaa !5
  %3619 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3618, i32 0, i32 10
  %3620 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %3617, ptr noundef %3619, ptr noundef %3620)
  br label %3621

3621:                                             ; preds = %3587, %3580
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %3622

3622:                                             ; preds = %3621, %3540
  br label %3623

3623:                                             ; preds = %3622, %2859
  %3624 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %3625 = trunc i8 %3624 to i1
  %3626 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3625, ptr noundef @.str.1539, ptr noundef %3626)
  br label %1151

3627:                                             ; preds = %1427, %1298, %1169
  store i8 0, ptr %17, align 1, !tbaa !59
  %3628 = load ptr, ptr %4, align 8, !tbaa !5
  %3629 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3628, i32 0, i32 2
  %3630 = load i64, ptr %3629, align 8, !tbaa !80
  %3631 = icmp eq i64 %3630, 0
  br i1 %3631, label %3632, label %3697

3632:                                             ; preds = %3627
  %3633 = load ptr, ptr %4, align 8, !tbaa !5
  %3634 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3633, i32 0, i32 75
  %3635 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3634, i32 0, i32 71
  %3636 = load i64, ptr %3635, align 8, !tbaa !146
  %3637 = load ptr, ptr %4, align 8, !tbaa !5
  %3638 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3637, i32 0, i32 88
  store i64 %3636, ptr %3638, align 8, !tbaa !64
  %3639 = load ptr, ptr %4, align 8, !tbaa !5
  %3640 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3639, i32 0, i32 86
  store i64 1, ptr %3640, align 8, !tbaa !66
  %3641 = load ptr, ptr %4, align 8, !tbaa !5
  %3642 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3641, i32 0, i32 75
  %3643 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3642, i32 0, i32 70
  %3644 = load i64, ptr %3643, align 8, !tbaa !147
  %3645 = load ptr, ptr %4, align 8, !tbaa !5
  %3646 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3645, i32 0, i32 85
  store i64 %3644, ptr %3646, align 8, !tbaa !65
  %3647 = load ptr, ptr %4, align 8, !tbaa !5
  %3648 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3647, i32 0, i32 75
  %3649 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3648, i32 0, i32 73
  %3650 = load double, ptr %3649, align 8, !tbaa !148
  %3651 = load ptr, ptr %4, align 8, !tbaa !5
  %3652 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3651, i32 0, i32 89
  store double %3650, ptr %3652, align 8, !tbaa !69
  %3653 = load ptr, ptr %4, align 8, !tbaa !5
  %3654 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3653, i32 0, i32 75
  %3655 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3654, i32 0, i32 74
  %3656 = load i64, ptr %3655, align 8, !tbaa !149
  %3657 = load ptr, ptr %4, align 8, !tbaa !5
  %3658 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3657, i32 0, i32 90
  store i64 %3656, ptr %3658, align 8, !tbaa !70
  %3659 = load ptr, ptr %4, align 8, !tbaa !5
  %3660 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3659, i32 0, i32 75
  %3661 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3660, i32 0, i32 75
  %3662 = load double, ptr %3661, align 8, !tbaa !150
  %3663 = load ptr, ptr %4, align 8, !tbaa !5
  %3664 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3663, i32 0, i32 91
  store double %3662, ptr %3664, align 8, !tbaa !71
  %3665 = load ptr, ptr %4, align 8, !tbaa !5
  %3666 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3665, i32 0, i32 75
  %3667 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3666, i32 0, i32 76
  %3668 = load i64, ptr %3667, align 8, !tbaa !151
  %3669 = load ptr, ptr %4, align 8, !tbaa !5
  %3670 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3669, i32 0, i32 92
  store i64 %3668, ptr %3670, align 8, !tbaa !72
  %3671 = load ptr, ptr %4, align 8, !tbaa !5
  %3672 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3671, i32 0, i32 75
  %3673 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3672, i32 0, i32 77
  %3674 = load double, ptr %3673, align 8, !tbaa !152
  %3675 = load ptr, ptr %4, align 8, !tbaa !5
  %3676 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3675, i32 0, i32 93
  store double %3674, ptr %3676, align 8, !tbaa !73
  %3677 = load ptr, ptr %4, align 8, !tbaa !5
  %3678 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3677, i32 0, i32 75
  %3679 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3678, i32 0, i32 78
  %3680 = load i64, ptr %3679, align 8, !tbaa !153
  %3681 = load ptr, ptr %4, align 8, !tbaa !5
  %3682 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3681, i32 0, i32 94
  store i64 %3680, ptr %3682, align 8, !tbaa !74
  %3683 = load ptr, ptr %4, align 8, !tbaa !5
  %3684 = load ptr, ptr %4, align 8, !tbaa !5
  %3685 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3684, i32 0, i32 75
  %3686 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3685, i32 0, i32 36
  %3687 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3686, i32 0, i32 3
  %3688 = load ptr, ptr %4, align 8, !tbaa !5
  %3689 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3688, i32 0, i32 75
  %3690 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3689, i32 0, i32 6
  %3691 = load ptr, ptr %4, align 8, !tbaa !5
  %3692 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3691, i32 0, i32 75
  %3693 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3692, i32 0, i32 7
  %3694 = load ptr, ptr %4, align 8, !tbaa !5
  %3695 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3694, i32 0, i32 51
  %3696 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %3683, ptr noundef %3687, ptr noundef %3690, ptr noundef %3693, ptr noundef %3695, ptr noundef %3696)
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %3697

3697:                                             ; preds = %3632, %3627
  %3698 = load ptr, ptr %4, align 8, !tbaa !5
  %3699 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3698, i32 0, i32 2
  %3700 = load i64, ptr %3699, align 8, !tbaa !80
  %3701 = icmp eq i64 %3700, 2
  br i1 %3701, label %3707, label %3702

3702:                                             ; preds = %3697
  %3703 = load ptr, ptr %4, align 8, !tbaa !5
  %3704 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3703, i32 0, i32 2
  %3705 = load i64, ptr %3704, align 8, !tbaa !80
  %3706 = icmp eq i64 %3705, 3
  br i1 %3706, label %3707, label %3776

3707:                                             ; preds = %3702, %3697
  %3708 = load ptr, ptr %4, align 8, !tbaa !5
  %3709 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3708, i32 0, i32 80
  %3710 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3709, i32 0, i32 56
  %3711 = load i64, ptr %3710, align 8, !tbaa !154
  %3712 = load ptr, ptr %4, align 8, !tbaa !5
  %3713 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3712, i32 0, i32 88
  store i64 %3711, ptr %3713, align 8, !tbaa !64
  %3714 = load ptr, ptr %4, align 8, !tbaa !5
  %3715 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3714, i32 0, i32 80
  %3716 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3715, i32 0, i32 55
  %3717 = load i64, ptr %3716, align 8, !tbaa !155
  %3718 = load ptr, ptr %4, align 8, !tbaa !5
  %3719 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3718, i32 0, i32 86
  store i64 %3717, ptr %3719, align 8, !tbaa !66
  %3720 = load ptr, ptr %4, align 8, !tbaa !5
  %3721 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3720, i32 0, i32 80
  %3722 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3721, i32 0, i32 55
  %3723 = load i64, ptr %3722, align 8, !tbaa !155
  %3724 = load ptr, ptr %4, align 8, !tbaa !5
  %3725 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3724, i32 0, i32 85
  store i64 %3723, ptr %3725, align 8, !tbaa !65
  %3726 = load ptr, ptr %4, align 8, !tbaa !5
  %3727 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3726, i32 0, i32 80
  %3728 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3727, i32 0, i32 57
  %3729 = load double, ptr %3728, align 8, !tbaa !156
  %3730 = load ptr, ptr %4, align 8, !tbaa !5
  %3731 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3730, i32 0, i32 89
  store double %3729, ptr %3731, align 8, !tbaa !69
  %3732 = load ptr, ptr %4, align 8, !tbaa !5
  %3733 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3732, i32 0, i32 80
  %3734 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3733, i32 0, i32 58
  %3735 = load i64, ptr %3734, align 8, !tbaa !157
  %3736 = load ptr, ptr %4, align 8, !tbaa !5
  %3737 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3736, i32 0, i32 90
  store i64 %3735, ptr %3737, align 8, !tbaa !70
  %3738 = load ptr, ptr %4, align 8, !tbaa !5
  %3739 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3738, i32 0, i32 80
  %3740 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3739, i32 0, i32 59
  %3741 = load double, ptr %3740, align 8, !tbaa !158
  %3742 = load ptr, ptr %4, align 8, !tbaa !5
  %3743 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3742, i32 0, i32 91
  store double %3741, ptr %3743, align 8, !tbaa !71
  %3744 = load ptr, ptr %4, align 8, !tbaa !5
  %3745 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3744, i32 0, i32 80
  %3746 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3745, i32 0, i32 60
  %3747 = load i64, ptr %3746, align 8, !tbaa !159
  %3748 = load ptr, ptr %4, align 8, !tbaa !5
  %3749 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3748, i32 0, i32 92
  store i64 %3747, ptr %3749, align 8, !tbaa !72
  %3750 = load ptr, ptr %4, align 8, !tbaa !5
  %3751 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3750, i32 0, i32 80
  %3752 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3751, i32 0, i32 61
  %3753 = load double, ptr %3752, align 8, !tbaa !160
  %3754 = load ptr, ptr %4, align 8, !tbaa !5
  %3755 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3754, i32 0, i32 93
  store double %3753, ptr %3755, align 8, !tbaa !73
  %3756 = load ptr, ptr %4, align 8, !tbaa !5
  %3757 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3756, i32 0, i32 80
  %3758 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3757, i32 0, i32 62
  %3759 = load i64, ptr %3758, align 8, !tbaa !161
  %3760 = load ptr, ptr %4, align 8, !tbaa !5
  %3761 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3760, i32 0, i32 94
  store i64 %3759, ptr %3761, align 8, !tbaa !74
  %3762 = load ptr, ptr %4, align 8, !tbaa !5
  %3763 = load ptr, ptr %4, align 8, !tbaa !5
  %3764 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3763, i32 0, i32 80
  %3765 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3764, i32 0, i32 26
  %3766 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3765, i32 0, i32 3
  %3767 = load ptr, ptr %4, align 8, !tbaa !5
  %3768 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3767, i32 0, i32 80
  %3769 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3768, i32 0, i32 11
  %3770 = load ptr, ptr %4, align 8, !tbaa !5
  %3771 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3770, i32 0, i32 80
  %3772 = getelementptr inbounds %"struct.alglib_impl::minsqpstate", ptr %3771, i32 0, i32 12
  %3773 = load ptr, ptr %4, align 8, !tbaa !5
  %3774 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3773, i32 0, i32 51
  %3775 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %3762, ptr noundef %3766, ptr noundef %3769, ptr noundef %3772, ptr noundef %3774, ptr noundef %3775)
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %3776

3776:                                             ; preds = %3707, %3702
  %3777 = load ptr, ptr %4, align 8, !tbaa !5
  %3778 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3777, i32 0, i32 2
  %3779 = load i64, ptr %3778, align 8, !tbaa !80
  %3780 = icmp eq i64 %3779, 4
  br i1 %3780, label %3786, label %3781

3781:                                             ; preds = %3776
  %3782 = load ptr, ptr %4, align 8, !tbaa !5
  %3783 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3782, i32 0, i32 2
  %3784 = load i64, ptr %3783, align 8, !tbaa !80
  %3785 = icmp eq i64 %3784, 5
  br i1 %3785, label %3786, label %4016

3786:                                             ; preds = %3781, %3776
  %3787 = load ptr, ptr %4, align 8, !tbaa !5
  %3788 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3787, i32 0, i32 81
  %3789 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3788, i32 0, i32 66
  %3790 = load i64, ptr %3789, align 8, !tbaa !162
  %3791 = load ptr, ptr %4, align 8, !tbaa !5
  %3792 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3791, i32 0, i32 88
  store i64 %3790, ptr %3792, align 8, !tbaa !64
  %3793 = load ptr, ptr %4, align 8, !tbaa !5
  %3794 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3793, i32 0, i32 81
  %3795 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3794, i32 0, i32 65
  %3796 = load i64, ptr %3795, align 8, !tbaa !163
  %3797 = load ptr, ptr %4, align 8, !tbaa !5
  %3798 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3797, i32 0, i32 86
  store i64 %3796, ptr %3798, align 8, !tbaa !66
  %3799 = load ptr, ptr %4, align 8, !tbaa !5
  %3800 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3799, i32 0, i32 81
  %3801 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3800, i32 0, i32 65
  %3802 = load i64, ptr %3801, align 8, !tbaa !163
  %3803 = load ptr, ptr %4, align 8, !tbaa !5
  %3804 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3803, i32 0, i32 85
  store i64 %3802, ptr %3804, align 8, !tbaa !65
  %3805 = load ptr, ptr %4, align 8, !tbaa !5
  %3806 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3805, i32 0, i32 81
  %3807 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3806, i32 0, i32 67
  %3808 = load double, ptr %3807, align 8, !tbaa !164
  %3809 = load ptr, ptr %4, align 8, !tbaa !5
  %3810 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3809, i32 0, i32 89
  store double %3808, ptr %3810, align 8, !tbaa !69
  %3811 = load ptr, ptr %4, align 8, !tbaa !5
  %3812 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3811, i32 0, i32 81
  %3813 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3812, i32 0, i32 68
  %3814 = load i64, ptr %3813, align 8, !tbaa !165
  %3815 = load ptr, ptr %4, align 8, !tbaa !5
  %3816 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3815, i32 0, i32 90
  store i64 %3814, ptr %3816, align 8, !tbaa !70
  %3817 = load ptr, ptr %4, align 8, !tbaa !5
  %3818 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3817, i32 0, i32 81
  %3819 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3818, i32 0, i32 69
  %3820 = load double, ptr %3819, align 8, !tbaa !166
  %3821 = load ptr, ptr %4, align 8, !tbaa !5
  %3822 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3821, i32 0, i32 91
  store double %3820, ptr %3822, align 8, !tbaa !71
  %3823 = load ptr, ptr %4, align 8, !tbaa !5
  %3824 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3823, i32 0, i32 81
  %3825 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3824, i32 0, i32 70
  %3826 = load i64, ptr %3825, align 8, !tbaa !167
  %3827 = load ptr, ptr %4, align 8, !tbaa !5
  %3828 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3827, i32 0, i32 92
  store i64 %3826, ptr %3828, align 8, !tbaa !72
  %3829 = load ptr, ptr %4, align 8, !tbaa !5
  %3830 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3829, i32 0, i32 81
  %3831 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3830, i32 0, i32 71
  %3832 = load double, ptr %3831, align 8, !tbaa !168
  %3833 = load ptr, ptr %4, align 8, !tbaa !5
  %3834 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3833, i32 0, i32 93
  store double %3832, ptr %3834, align 8, !tbaa !73
  %3835 = load ptr, ptr %4, align 8, !tbaa !5
  %3836 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3835, i32 0, i32 81
  %3837 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3836, i32 0, i32 72
  %3838 = load i64, ptr %3837, align 8, !tbaa !169
  %3839 = load ptr, ptr %4, align 8, !tbaa !5
  %3840 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3839, i32 0, i32 94
  store i64 %3838, ptr %3840, align 8, !tbaa !74
  %3841 = load ptr, ptr %4, align 8, !tbaa !5
  %3842 = load ptr, ptr %4, align 8, !tbaa !5
  %3843 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3842, i32 0, i32 81
  %3844 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3843, i32 0, i32 38
  %3845 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3844, i32 0, i32 3
  %3846 = load ptr, ptr %4, align 8, !tbaa !5
  %3847 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3846, i32 0, i32 81
  %3848 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3847, i32 0, i32 14
  %3849 = load ptr, ptr %4, align 8, !tbaa !5
  %3850 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3849, i32 0, i32 81
  %3851 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3850, i32 0, i32 15
  %3852 = load ptr, ptr %4, align 8, !tbaa !5
  %3853 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3852, i32 0, i32 51
  %3854 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef %3841, ptr noundef %3845, ptr noundef %3848, ptr noundef %3851, ptr noundef %3853, ptr noundef %3854)
  %3855 = load ptr, ptr %4, align 8, !tbaa !5
  %3856 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3855, i32 0, i32 3
  %3857 = load i64, ptr %3856, align 8, !tbaa !75
  %3858 = load ptr, ptr %4, align 8, !tbaa !5
  %3859 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3858, i32 0, i32 81
  %3860 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3859, i32 0, i32 51
  %3861 = load ptr, ptr %4, align 8, !tbaa !5
  %3862 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3861, i32 0, i32 96
  %3863 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %3857, ptr noundef %3860, ptr noundef %3862, ptr noundef %3863)
  %3864 = load ptr, ptr %4, align 8, !tbaa !5
  %3865 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3864, i32 0, i32 3
  %3866 = load i64, ptr %3865, align 8, !tbaa !75
  %3867 = load ptr, ptr %4, align 8, !tbaa !5
  %3868 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3867, i32 0, i32 81
  %3869 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3868, i32 0, i32 51
  %3870 = load ptr, ptr %4, align 8, !tbaa !5
  %3871 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3870, i32 0, i32 97
  %3872 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %3866, ptr noundef %3869, ptr noundef %3871, ptr noundef %3872)
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %3873

3873:                                             ; preds = %3934, %3786
  %3874 = load i64, ptr %6, align 8, !tbaa !58
  %3875 = load ptr, ptr %4, align 8, !tbaa !5
  %3876 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3875, i32 0, i32 3
  %3877 = load i64, ptr %3876, align 8, !tbaa !75
  %3878 = sub nsw i64 %3877, 1
  %3879 = icmp sle i64 %3874, %3878
  br i1 %3879, label %3880, label %3937

3880:                                             ; preds = %3873
  %3881 = load ptr, ptr %4, align 8, !tbaa !5
  %3882 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3881, i32 0, i32 13
  %3883 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3882, i32 0, i32 4
  %3884 = load ptr, ptr %3883, align 8, !tbaa !57
  %3885 = load i64, ptr %6, align 8, !tbaa !58
  %3886 = getelementptr inbounds i8, ptr %3884, i64 %3885
  %3887 = load i8, ptr %3886, align 1, !tbaa !59, !range !60, !noundef !61
  %3888 = trunc i8 %3887 to i1
  br i1 %3888, label %3889, label %3933

3889:                                             ; preds = %3880
  %3890 = load ptr, ptr %4, align 8, !tbaa !5
  %3891 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3890, i32 0, i32 14
  %3892 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3891, i32 0, i32 4
  %3893 = load ptr, ptr %3892, align 8, !tbaa !57
  %3894 = load i64, ptr %6, align 8, !tbaa !58
  %3895 = getelementptr inbounds i8, ptr %3893, i64 %3894
  %3896 = load i8, ptr %3895, align 1, !tbaa !59, !range !60, !noundef !61
  %3897 = trunc i8 %3896 to i1
  br i1 %3897, label %3898, label %3933

3898:                                             ; preds = %3889
  %3899 = load ptr, ptr %4, align 8, !tbaa !5
  %3900 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3899, i32 0, i32 11
  %3901 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3900, i32 0, i32 4
  %3902 = load ptr, ptr %3901, align 8, !tbaa !57
  %3903 = load i64, ptr %6, align 8, !tbaa !58
  %3904 = getelementptr inbounds double, ptr %3902, i64 %3903
  %3905 = load double, ptr %3904, align 8, !tbaa !62
  %3906 = load ptr, ptr %4, align 8, !tbaa !5
  %3907 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3906, i32 0, i32 12
  %3908 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3907, i32 0, i32 4
  %3909 = load ptr, ptr %3908, align 8, !tbaa !57
  %3910 = load i64, ptr %6, align 8, !tbaa !58
  %3911 = getelementptr inbounds double, ptr %3909, i64 %3910
  %3912 = load double, ptr %3911, align 8, !tbaa !62
  %3913 = fcmp oeq double %3905, %3912
  br i1 %3913, label %3914, label %3933

3914:                                             ; preds = %3898
  %3915 = load ptr, ptr %4, align 8, !tbaa !5
  %3916 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3915, i32 0, i32 96
  %3917 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3916, i32 0, i32 4
  %3918 = load ptr, ptr %3917, align 8, !tbaa !57
  %3919 = load i64, ptr %6, align 8, !tbaa !58
  %3920 = getelementptr inbounds double, ptr %3918, i64 %3919
  store double 0.000000e+00, ptr %3920, align 8, !tbaa !62
  %3921 = load ptr, ptr %4, align 8, !tbaa !5
  %3922 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3921, i32 0, i32 8
  %3923 = load double, ptr %3922, align 8, !tbaa !87
  %3924 = fcmp une double %3923, 0.000000e+00
  br i1 %3924, label %3925, label %3932

3925:                                             ; preds = %3914
  %3926 = load ptr, ptr %4, align 8, !tbaa !5
  %3927 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3926, i32 0, i32 97
  %3928 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3927, i32 0, i32 4
  %3929 = load ptr, ptr %3928, align 8, !tbaa !57
  %3930 = load i64, ptr %6, align 8, !tbaa !58
  %3931 = getelementptr inbounds double, ptr %3929, i64 %3930
  store double 0.000000e+00, ptr %3931, align 8, !tbaa !62
  br label %3932

3932:                                             ; preds = %3925, %3914
  br label %3933

3933:                                             ; preds = %3932, %3898, %3889, %3880
  br label %3934

3934:                                             ; preds = %3933
  %3935 = load i64, ptr %6, align 8, !tbaa !58
  %3936 = add nsw i64 %3935, 1
  store i64 %3936, ptr %6, align 8, !tbaa !58
  br label %3873, !llvm.loop !170

3937:                                             ; preds = %3873
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %3938

3938:                                             ; preds = %3988, %3937
  %3939 = load i64, ptr %6, align 8, !tbaa !58
  %3940 = load ptr, ptr %4, align 8, !tbaa !5
  %3941 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3940, i32 0, i32 15
  %3942 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %3941, i32 0, i32 2
  %3943 = load i64, ptr %3942, align 8, !tbaa !76
  %3944 = load ptr, ptr %4, align 8, !tbaa !5
  %3945 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3944, i32 0, i32 15
  %3946 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %3945, i32 0, i32 1
  %3947 = load i64, ptr %3946, align 8, !tbaa !77
  %3948 = add nsw i64 %3943, %3947
  %3949 = sub nsw i64 %3948, 1
  %3950 = icmp sle i64 %3939, %3949
  br i1 %3950, label %3951, label %3991

3951:                                             ; preds = %3938
  %3952 = load ptr, ptr %4, align 8, !tbaa !5
  %3953 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3952, i32 0, i32 98
  %3954 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3953, i32 0, i32 4
  %3955 = load ptr, ptr %3954, align 8, !tbaa !57
  %3956 = load ptr, ptr %4, align 8, !tbaa !5
  %3957 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3956, i32 0, i32 15
  %3958 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %3957, i32 0, i32 12
  %3959 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3958, i32 0, i32 4
  %3960 = load ptr, ptr %3959, align 8, !tbaa !57
  %3961 = load i64, ptr %6, align 8, !tbaa !58
  %3962 = getelementptr inbounds i64, ptr %3960, i64 %3961
  %3963 = load i64, ptr %3962, align 8, !tbaa !58
  %3964 = getelementptr inbounds double, ptr %3955, i64 %3963
  %3965 = load double, ptr %3964, align 8, !tbaa !62
  %3966 = load ptr, ptr %4, align 8, !tbaa !5
  %3967 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3966, i32 0, i32 81
  %3968 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3967, i32 0, i32 52
  %3969 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3968, i32 0, i32 4
  %3970 = load ptr, ptr %3969, align 8, !tbaa !57
  %3971 = load i64, ptr %6, align 8, !tbaa !58
  %3972 = getelementptr inbounds double, ptr %3970, i64 %3971
  %3973 = load double, ptr %3972, align 8, !tbaa !62
  %3974 = fadd double %3965, %3973
  %3975 = load ptr, ptr %4, align 8, !tbaa !5
  %3976 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3975, i32 0, i32 98
  %3977 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3976, i32 0, i32 4
  %3978 = load ptr, ptr %3977, align 8, !tbaa !57
  %3979 = load ptr, ptr %4, align 8, !tbaa !5
  %3980 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3979, i32 0, i32 15
  %3981 = getelementptr inbounds %"struct.alglib_impl::xlinearconstraints", ptr %3980, i32 0, i32 12
  %3982 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3981, i32 0, i32 4
  %3983 = load ptr, ptr %3982, align 8, !tbaa !57
  %3984 = load i64, ptr %6, align 8, !tbaa !58
  %3985 = getelementptr inbounds i64, ptr %3983, i64 %3984
  %3986 = load i64, ptr %3985, align 8, !tbaa !58
  %3987 = getelementptr inbounds double, ptr %3978, i64 %3986
  store double %3974, ptr %3987, align 8, !tbaa !62
  br label %3988

3988:                                             ; preds = %3951
  %3989 = load i64, ptr %6, align 8, !tbaa !58
  %3990 = add nsw i64 %3989, 1
  store i64 %3990, ptr %6, align 8, !tbaa !58
  br label %3938, !llvm.loop !171

3991:                                             ; preds = %3938
  store i64 0, ptr %6, align 8, !tbaa !58
  br label %3992

3992:                                             ; preds = %4012, %3991
  %3993 = load i64, ptr %6, align 8, !tbaa !58
  %3994 = load i64, ptr %13, align 8, !tbaa !58
  %3995 = sub nsw i64 %3994, 1
  %3996 = icmp sle i64 %3993, %3995
  br i1 %3996, label %3997, label %4015

3997:                                             ; preds = %3992
  %3998 = load ptr, ptr %4, align 8, !tbaa !5
  %3999 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %3998, i32 0, i32 81
  %4000 = getelementptr inbounds %"struct.alglib_impl::minfsqpstate", ptr %3999, i32 0, i32 53
  %4001 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4000, i32 0, i32 4
  %4002 = load ptr, ptr %4001, align 8, !tbaa !57
  %4003 = load i64, ptr %6, align 8, !tbaa !58
  %4004 = getelementptr inbounds double, ptr %4002, i64 %4003
  %4005 = load double, ptr %4004, align 8, !tbaa !62
  %4006 = load ptr, ptr %4, align 8, !tbaa !5
  %4007 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4006, i32 0, i32 99
  %4008 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4007, i32 0, i32 4
  %4009 = load ptr, ptr %4008, align 8, !tbaa !57
  %4010 = load i64, ptr %6, align 8, !tbaa !58
  %4011 = getelementptr inbounds double, ptr %4009, i64 %4010
  store double %4005, ptr %4011, align 8, !tbaa !62
  br label %4012

4012:                                             ; preds = %3997
  %4013 = load i64, ptr %6, align 8, !tbaa !58
  %4014 = add nsw i64 %4013, 1
  store i64 %4014, ptr %6, align 8, !tbaa !58
  br label %3992, !llvm.loop !172

4015:                                             ; preds = %3992
  store i8 1, ptr %17, align 1, !tbaa !59
  br label %4016

4016:                                             ; preds = %4015, %3781
  %4017 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %4018 = trunc i8 %4017 to i1
  %4019 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %4018, ptr noundef @.str.1646, ptr noundef %4019)
  store i8 0, ptr %20, align 1, !tbaa !59
  %4020 = load i8, ptr %20, align 1, !tbaa !59, !range !60, !noundef !61
  %4021 = trunc i8 %4020 to i1
  store i1 %4021, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %4127

4022:                                             ; preds = %2822, %2771, %2714, %2592, %2449, %2407, %2364, %2329, %2244, %2227, %2010, %1564, %1554, %870, %742, %613
  store i8 1, ptr %20, align 1, !tbaa !59
  %4023 = load i64, ptr %6, align 8, !tbaa !58
  %4024 = load ptr, ptr %4, align 8, !tbaa !5
  %4025 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4024, i32 0, i32 46
  %4026 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4025, i32 0, i32 1
  %4027 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4026, i32 0, i32 4
  %4028 = load ptr, ptr %4027, align 8, !tbaa !57
  %4029 = getelementptr inbounds i64, ptr %4028, i64 0
  store i64 %4023, ptr %4029, align 8, !tbaa !58
  %4030 = load i64, ptr %7, align 8, !tbaa !58
  %4031 = load ptr, ptr %4, align 8, !tbaa !5
  %4032 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4031, i32 0, i32 46
  %4033 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4032, i32 0, i32 1
  %4034 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4033, i32 0, i32 4
  %4035 = load ptr, ptr %4034, align 8, !tbaa !57
  %4036 = getelementptr inbounds i64, ptr %4035, i64 1
  store i64 %4030, ptr %4036, align 8, !tbaa !58
  %4037 = load i64, ptr %8, align 8, !tbaa !58
  %4038 = load ptr, ptr %4, align 8, !tbaa !5
  %4039 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4038, i32 0, i32 46
  %4040 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4039, i32 0, i32 1
  %4041 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4040, i32 0, i32 4
  %4042 = load ptr, ptr %4041, align 8, !tbaa !57
  %4043 = getelementptr inbounds i64, ptr %4042, i64 2
  store i64 %4037, ptr %4043, align 8, !tbaa !58
  %4044 = load i64, ptr %9, align 8, !tbaa !58
  %4045 = load ptr, ptr %4, align 8, !tbaa !5
  %4046 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4045, i32 0, i32 46
  %4047 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4046, i32 0, i32 1
  %4048 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4047, i32 0, i32 4
  %4049 = load ptr, ptr %4048, align 8, !tbaa !57
  %4050 = getelementptr inbounds i64, ptr %4049, i64 3
  store i64 %4044, ptr %4050, align 8, !tbaa !58
  %4051 = load i64, ptr %10, align 8, !tbaa !58
  %4052 = load ptr, ptr %4, align 8, !tbaa !5
  %4053 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4052, i32 0, i32 46
  %4054 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4053, i32 0, i32 1
  %4055 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4054, i32 0, i32 4
  %4056 = load ptr, ptr %4055, align 8, !tbaa !57
  %4057 = getelementptr inbounds i64, ptr %4056, i64 4
  store i64 %4051, ptr %4057, align 8, !tbaa !58
  %4058 = load i64, ptr %11, align 8, !tbaa !58
  %4059 = load ptr, ptr %4, align 8, !tbaa !5
  %4060 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4059, i32 0, i32 46
  %4061 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4060, i32 0, i32 1
  %4062 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4061, i32 0, i32 4
  %4063 = load ptr, ptr %4062, align 8, !tbaa !57
  %4064 = getelementptr inbounds i64, ptr %4063, i64 5
  store i64 %4058, ptr %4064, align 8, !tbaa !58
  %4065 = load i64, ptr %12, align 8, !tbaa !58
  %4066 = load ptr, ptr %4, align 8, !tbaa !5
  %4067 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4066, i32 0, i32 46
  %4068 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4067, i32 0, i32 1
  %4069 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4068, i32 0, i32 4
  %4070 = load ptr, ptr %4069, align 8, !tbaa !57
  %4071 = getelementptr inbounds i64, ptr %4070, i64 6
  store i64 %4065, ptr %4071, align 8, !tbaa !58
  %4072 = load i64, ptr %13, align 8, !tbaa !58
  %4073 = load ptr, ptr %4, align 8, !tbaa !5
  %4074 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4073, i32 0, i32 46
  %4075 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4074, i32 0, i32 1
  %4076 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4075, i32 0, i32 4
  %4077 = load ptr, ptr %4076, align 8, !tbaa !57
  %4078 = getelementptr inbounds i64, ptr %4077, i64 7
  store i64 %4072, ptr %4078, align 8, !tbaa !58
  %4079 = load i64, ptr %14, align 8, !tbaa !58
  %4080 = load ptr, ptr %4, align 8, !tbaa !5
  %4081 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4080, i32 0, i32 46
  %4082 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4081, i32 0, i32 1
  %4083 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4082, i32 0, i32 4
  %4084 = load ptr, ptr %4083, align 8, !tbaa !57
  %4085 = getelementptr inbounds i64, ptr %4084, i64 8
  store i64 %4079, ptr %4085, align 8, !tbaa !58
  %4086 = load i64, ptr %18, align 8, !tbaa !58
  %4087 = load ptr, ptr %4, align 8, !tbaa !5
  %4088 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4087, i32 0, i32 46
  %4089 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4088, i32 0, i32 1
  %4090 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4089, i32 0, i32 4
  %4091 = load ptr, ptr %4090, align 8, !tbaa !57
  %4092 = getelementptr inbounds i64, ptr %4091, i64 9
  store i64 %4086, ptr %4092, align 8, !tbaa !58
  %4093 = load i8, ptr %17, align 1, !tbaa !59, !range !60, !noundef !61
  %4094 = trunc i8 %4093 to i1
  %4095 = load ptr, ptr %4, align 8, !tbaa !5
  %4096 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4095, i32 0, i32 46
  %4097 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4096, i32 0, i32 2
  %4098 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4097, i32 0, i32 4
  %4099 = load ptr, ptr %4098, align 8, !tbaa !57
  %4100 = getelementptr inbounds i8, ptr %4099, i64 0
  %4101 = zext i1 %4094 to i8
  store i8 %4101, ptr %4100, align 1, !tbaa !59
  %4102 = load i8, ptr %19, align 1, !tbaa !59, !range !60, !noundef !61
  %4103 = trunc i8 %4102 to i1
  %4104 = load ptr, ptr %4, align 8, !tbaa !5
  %4105 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4104, i32 0, i32 46
  %4106 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4105, i32 0, i32 2
  %4107 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4106, i32 0, i32 4
  %4108 = load ptr, ptr %4107, align 8, !tbaa !57
  %4109 = getelementptr inbounds i8, ptr %4108, i64 1
  %4110 = zext i1 %4103 to i8
  store i8 %4110, ptr %4109, align 1, !tbaa !59
  %4111 = load double, ptr %15, align 8, !tbaa !62
  %4112 = load ptr, ptr %4, align 8, !tbaa !5
  %4113 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4112, i32 0, i32 46
  %4114 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4113, i32 0, i32 3
  %4115 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4114, i32 0, i32 4
  %4116 = load ptr, ptr %4115, align 8, !tbaa !57
  %4117 = getelementptr inbounds double, ptr %4116, i64 0
  store double %4111, ptr %4117, align 8, !tbaa !62
  %4118 = load double, ptr %16, align 8, !tbaa !62
  %4119 = load ptr, ptr %4, align 8, !tbaa !5
  %4120 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %4119, i32 0, i32 46
  %4121 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %4120, i32 0, i32 3
  %4122 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4121, i32 0, i32 4
  %4123 = load ptr, ptr %4122, align 8, !tbaa !57
  %4124 = getelementptr inbounds double, ptr %4123, i64 1
  store double %4118, ptr %4124, align 8, !tbaa !62
  %4125 = load i8, ptr %20, align 1, !tbaa !59, !range !60, !noundef !61
  %4126 = trunc i8 %4125 to i1
  store i1 %4126, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %4127

4127:                                             ; preds = %4022, %4016, %542
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  %4128 = load i1, ptr %3, align 1
  ret i1 %4128
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL19minnlc_crsfromdenseEPKNS_9ae_matrixEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, i64 noundef, i64 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !21, i64 3992}
!10 = !{!"_ZTSN11alglib_impl11minnlcstateE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !13, i64 32, !12, i64 56, !14, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !15, i64 96, !15, i64 160, !15, i64 224, !15, i64 288, !15, i64 352, !17, i64 416, !12, i64 2232, !15, i64 2240, !15, i64 2304, !12, i64 2368, !14, i64 2376, !15, i64 2384, !11, i64 2448, !15, i64 2456, !18, i64 2520, !14, i64 2600, !14, i64 2601, !14, i64 2602, !12, i64 2608, !15, i64 2616, !11, i64 2680, !12, i64 2688, !12, i64 2696, !12, i64 2704, !12, i64 2712, !12, i64 2720, !15, i64 2728, !15, i64 2792, !15, i64 2856, !19, i64 2920, !15, i64 3288, !15, i64 3352, !15, i64 3416, !15, i64 3480, !18, i64 3544, !19, i64 3624, !20, i64 3992, !20, i64 4256, !15, i64 4520, !15, i64 4584, !18, i64 4648, !15, i64 4728, !15, i64 4792, !15, i64 4856, !15, i64 4920, !15, i64 4984, !15, i64 5048, !15, i64 5112, !15, i64 5176, !15, i64 5240, !15, i64 5304, !15, i64 5368, !15, i64 5432, !15, i64 5496, !15, i64 5560, !18, i64 5624, !18, i64 5704, !15, i64 5784, !15, i64 5848, !15, i64 5912, !15, i64 5976, !11, i64 6040, !14, i64 6048, !15, i64 6056, !15, i64 6120, !22, i64 6184, !19, i64 37712, !15, i64 38080, !15, i64 38144, !14, i64 38208, !37, i64 38216, !49, i64 100960, !12, i64 164120, !52, i64 164128, !15, i64 169832, !12, i64 169896, !12, i64 169904, !12, i64 169912, !12, i64 169920, !11, i64 169928, !12, i64 169936, !11, i64 169944, !12, i64 169952, !11, i64 169960, !12, i64 169968, !12, i64 169976, !15, i64 169984, !15, i64 170048, !15, i64 170112, !15, i64 170176, !15, i64 170240, !15, i64 170304, !15, i64 170368, !12, i64 170432, !12, i64 170440}
!11 = !{!"double", !7, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !11, i64 0, !11, i64 8, !12, i64 16}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_vectorE", !12, i64 0, !12, i64 8, !14, i64 16, !16, i64 24, !7, i64 56}
!16 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!17 = !{!"_ZTSN11alglib_impl18xlinearconstraintsE", !12, i64 0, !12, i64 8, !12, i64 16, !18, i64 24, !19, i64 104, !15, i64 472, !15, i64 536, !15, i64 600, !15, i64 664, !12, i64 728, !12, i64 736, !18, i64 744, !15, i64 824, !15, i64 888, !19, i64 952, !15, i64 1320, !15, i64 1384, !19, i64 1448}
!18 = !{!"_ZTSN11alglib_impl9ae_matrixE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !14, i64 32, !16, i64 40, !7, i64 72}
!19 = !{!"_ZTSN11alglib_impl12sparsematrixE", !15, i64 0, !15, i64 64, !15, i64 128, !15, i64 192, !15, i64 256, !12, i64 320, !12, i64 328, !12, i64 336, !12, i64 344, !12, i64 352, !12, i64 360}
!20 = !{!"_ZTSN11alglib_impl10rcommstateE", !21, i64 0, !15, i64 8, !15, i64 72, !15, i64 136, !15, i64 200}
!21 = !{!"int", !7, i64 0}
!22 = !{!"_ZTSN11alglib_impl11minaulstateE", !12, i64 0, !12, i64 8, !12, i64 16, !15, i64 24, !15, i64 88, !15, i64 152, !15, i64 216, !15, i64 280, !15, i64 344, !15, i64 408, !19, i64 472, !15, i64 840, !15, i64 904, !15, i64 968, !15, i64 1032, !15, i64 1096, !15, i64 1160, !15, i64 1224, !15, i64 1288, !15, i64 1352, !13, i64 1416, !12, i64 1440, !12, i64 1448, !15, i64 1456, !15, i64 1520, !19, i64 1584, !11, i64 1952, !14, i64 1960, !14, i64 1961, !14, i64 1962, !11, i64 1968, !23, i64 1976, !23, i64 2576, !23, i64 3176, !23, i64 3776, !23, i64 4376, !23, i64 4976, !11, i64 5576, !12, i64 5584, !12, i64 5592, !15, i64 5600, !15, i64 5664, !15, i64 5728, !15, i64 5792, !15, i64 5856, !15, i64 5920, !15, i64 5984, !24, i64 6048, !35, i64 22296, !35, i64 25656, !15, i64 29016, !15, i64 29080, !15, i64 29144, !15, i64 29208, !12, i64 29272, !12, i64 29280, !12, i64 29288, !11, i64 29296, !12, i64 29304, !36, i64 29312, !11, i64 29504, !11, i64 29512, !15, i64 29520, !15, i64 29584, !15, i64 29648, !18, i64 29712, !15, i64 29792, !15, i64 29856, !23, i64 29920, !23, i64 30520, !12, i64 31120, !12, i64 31128, !12, i64 31136, !11, i64 31144, !12, i64 31152, !11, i64 31160, !12, i64 31168, !11, i64 31176, !12, i64 31184, !12, i64 31192, !15, i64 31200, !20, i64 31264}
!23 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !12, i64 0, !12, i64 8, !14, i64 16, !15, i64 24, !15, i64 88, !18, i64 152, !19, i64 232}
!24 = !{!"_ZTSN11alglib_impl20minaulpreconditionerE", !12, i64 0, !12, i64 8, !25, i64 16, !19, i64 15080, !12, i64 15448, !18, i64 15456, !18, i64 15536, !12, i64 15616, !18, i64 15624, !15, i64 15704, !15, i64 15768, !15, i64 15832, !15, i64 15896, !18, i64 15960, !18, i64 16040, !15, i64 16120, !15, i64 16184}
!25 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !12, i64 0, !12, i64 8, !12, i64 16, !14, i64 24, !12, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !15, i64 72, !14, i64 136, !14, i64 137, !14, i64 138, !14, i64 139, !14, i64 140, !15, i64 144, !12, i64 208, !15, i64 216, !15, i64 280, !15, i64 344, !15, i64 408, !15, i64 472, !15, i64 536, !14, i64 600, !15, i64 608, !15, i64 672, !15, i64 736, !15, i64 800, !15, i64 864, !15, i64 928, !14, i64 992, !14, i64 993, !26, i64 1000, !15, i64 1512, !15, i64 1576, !15, i64 1640, !15, i64 1704, !15, i64 1768, !15, i64 1832, !27, i64 1896, !27, i64 2040, !27, i64 2184, !27, i64 2328, !27, i64 2472, !27, i64 2616, !15, i64 2760, !15, i64 2824, !15, i64 2888, !15, i64 2952, !15, i64 3016, !29, i64 3080, !34, i64 7464, !15, i64 13816, !15, i64 13880, !15, i64 13944, !15, i64 14008, !15, i64 14072, !15, i64 14136, !19, i64 14200, !19, i64 14568, !15, i64 14936, !15, i64 15000}
!26 = !{!"_ZTSN11alglib_impl9spcholadjE", !15, i64 0, !15, i64 64, !15, i64 128, !15, i64 192, !15, i64 256, !15, i64 320, !15, i64 384, !15, i64 448}
!27 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !16, i64 32, !28, i64 64, !16, i64 112}
!28 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !16, i64 8, !14, i64 40}
!29 = !{!"_ZTSN11alglib_impl9amdbufferE", !12, i64 0, !14, i64 8, !14, i64 9, !15, i64 16, !15, i64 80, !15, i64 144, !30, i64 208, !30, i64 568, !30, i64 928, !31, i64 1288, !32, i64 1496, !33, i64 1968, !15, i64 2120, !15, i64 2184, !15, i64 2248, !33, i64 2312, !33, i64 2464, !33, i64 2616, !33, i64 2768, !33, i64 2920, !33, i64 3072, !15, i64 3224, !12, i64 3288, !33, i64 3296, !33, i64 3448, !30, i64 3600, !33, i64 3960, !15, i64 4112, !15, i64 4176, !15, i64 4240, !18, i64 4304}
!30 = !{!"_ZTSN11alglib_impl8amdknsetE", !12, i64 0, !12, i64 8, !15, i64 16, !15, i64 80, !15, i64 144, !15, i64 208, !15, i64 272, !12, i64 336, !12, i64 344, !12, i64 352}
!31 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !12, i64 0, !15, i64 8, !15, i64 72, !15, i64 136, !12, i64 200}
!32 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !12, i64 0, !14, i64 8, !12, i64 16, !15, i64 24, !15, i64 88, !15, i64 152, !15, i64 216, !15, i64 280, !15, i64 344, !15, i64 408}
!33 = !{!"_ZTSN11alglib_impl5nisetE", !12, i64 0, !12, i64 8, !15, i64 16, !15, i64 80, !12, i64 144}
!34 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !15, i64 0, !15, i64 64, !29, i64 128, !19, i64 4512, !19, i64 4880, !19, i64 5248, !19, i64 5616, !19, i64 5984}
!35 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !12, i64 0, !15, i64 8, !15, i64 72, !12, i64 136, !12, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !11, i64 176, !11, i64 184, !11, i64 192, !11, i64 200, !12, i64 208, !11, i64 216, !11, i64 224, !18, i64 232, !12, i64 312, !11, i64 320, !11, i64 328, !11, i64 336, !12, i64 344, !11, i64 352, !18, i64 360, !18, i64 440, !18, i64 520, !18, i64 600, !14, i64 680, !12, i64 688, !18, i64 696, !18, i64 776, !14, i64 856, !15, i64 864, !14, i64 928, !12, i64 936, !18, i64 944, !15, i64 1024, !15, i64 1088, !18, i64 1152, !15, i64 1232, !15, i64 1296, !14, i64 1360, !15, i64 1368, !11, i64 1432, !11, i64 1440, !12, i64 1448, !18, i64 1456, !15, i64 1536, !15, i64 1600, !15, i64 1664, !15, i64 1728, !15, i64 1792, !15, 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, !15, i64 2560, !15, i64 2624, !18, i64 2688, !15, i64 2768, !18, i64 2832, !18, i64 2912, !18, i64 2992, !18, i64 3072, !18, i64 3152, !15, i64 3232, !15, i64 3296}
!36 = !{!"_ZTSN11alglib_impl11linminstateE", !14, i64 0, !14, i64 1, !12, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !11, i64 96, !11, i64 104, !11, i64 112, !11, i64 120, !11, i64 128, !11, i64 136, !11, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !11, i64 176, !11, i64 184}
!37 = !{!"_ZTSN11alglib_impl11minsqpstateE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !14, i64 40, !15, i64 48, !18, i64 112, !15, i64 192, !15, i64 256, !15, i64 320, !15, i64 384, !15, i64 448, !13, i64 512, !12, i64 536, !15, i64 544, !15, i64 608, !18, i64 672, !11, i64 752, !14, i64 760, !14, i64 761, !11, i64 768, !11, i64 776, !11, i64 784, !12, i64 792, !12, i64 800, !23, i64 808, !15, i64 1408, !15, i64 1472, !15, i64 1536, !15, i64 1600, !38, i64 1664, !35, i64 55416, !48, i64 58776, !12, i64 58912, !15, i64 58920, !15, i64 58984, !23, i64 59048, !23, i64 59648, !23, i64 60248, !23, i64 60848, !15, i64 61448, !15, i64 61512, !15, i64 61576, !15, i64 61640, !15, i64 61704, !15, i64 61768, !15, i64 61832, !15, i64 61896, !15, i64 61960, !15, i64 62024, !15, i64 62088, !15, i64 62152, !15, i64 62216, !15, i64 62280, !12, i64 62344, !12, i64 62352, !11, i64 62360, !12, i64 62368, !11, i64 62376, !12, i64 62384, !11, i64 62392, !12, i64 62400, !46, i64 62408, !46, i64 62432, !46, i64 62456, !20, i64 62480}
!38 = !{!"_ZTSN11alglib_impl15minsqpsubsolverE", !39, i64 0, !43, i64 26648, !15, i64 50544, !15, i64 50608, !15, i64 50672, !15, i64 50736, !15, i64 50800, !19, i64 50864, !19, i64 51232, !15, i64 51600, !18, i64 51664, !15, i64 51744, !18, i64 51808, !19, i64 51888, !15, i64 52256, !15, i64 52320, !15, i64 52384, !15, i64 52448, !15, i64 52512, !15, i64 52576, !15, i64 52640, !15, i64 52704, !18, i64 52768, !15, i64 52848, !15, i64 52912, !18, i64 52976, !15, i64 53056, !12, i64 53120, !19, i64 53128, !15, i64 53496, !15, i64 53560, !15, i64 53624, !15, i64 53688}
!39 = !{!"_ZTSN11alglib_impl9vipmstateE", !14, i64 0, !14, i64 1, !12, i64 8, !12, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !14, i64 48, !15, i64 56, !15, i64 120, !15, i64 184, !11, i64 248, !15, i64 256, !18, i64 320, !19, i64 400, !15, i64 768, !12, i64 832, !14, i64 840, !15, i64 848, !15, i64 912, !15, i64 976, !15, i64 1040, !15, i64 1104, !15, i64 1168, !18, i64 1232, !18, i64 1312, !19, i64 1392, !19, i64 1760, !19, i64 2128, !15, i64 2496, !15, i64 2560, !15, i64 2624, !15, i64 2688, !15, i64 2752, !12, i64 2816, !12, i64 2824, !40, i64 2832, !40, i64 3488, !40, i64 4144, !40, i64 4800, !40, i64 5456, !15, i64 6112, !15, i64 6176, !15, i64 6240, !15, i64 6304, !15, i64 6368, !12, i64 6432, !12, i64 6440, !12, i64 6448, !12, i64 6456, !12, i64 6464, !12, i64 6472, !14, i64 6480, !14, i64 6481, !12, i64 6488, !14, i64 6496, !14, i64 6497, !15, i64 6504, !15, i64 6568, !15, i64 6632, !15, i64 6696, !15, i64 6760, !15, i64 6824, !15, i64 6888, !15, i64 6952, !15, i64 7016, !15, i64 7080, !15, i64 7144, !15, i64 7208, !15, i64 7272, !15, i64 7336, !15, i64 7400, !18, i64 7464, !15, i64 7544, !15, i64 7608, !15, i64 7672, !15, i64 7736, !15, i64 7800, !41, i64 7864, !42, i64 23944, !15, i64 24584, !15, i64 24648, !15, i64 24712, !15, i64 24776, !15, i64 24840, !15, i64 24904, !15, i64 24968, !15, i64 25032, !40, i64 25096, !15, i64 25752, !15, i64 25816, !15, i64 25880, !15, i64 25944, !15, i64 26008, !18, i64 26072, !15, i64 26152, !15, i64 26216, !19, i64 26280}
!40 = !{!"_ZTSN11alglib_impl8vipmvarsE", !12, i64 0, !12, i64 8, !15, i64 16, !15, i64 80, !15, i64 144, !15, i64 208, !15, i64 272, !15, i64 336, !15, i64 400, !15, i64 464, !15, i64 528, !15, i64 592}
!41 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !19, i64 0, !15, i64 368, !15, i64 432, !15, i64 496, !15, i64 560, !12, i64 624, !25, i64 632, !15, i64 15696, !15, i64 15760, !15, i64 15824, !15, i64 15888, !15, i64 15952, !15, i64 16016}
!42 = !{!"_ZTSN11alglib_impl17vipmrighthandsideE", !15, i64 0, !15, i64 64, !15, i64 128, !15, i64 192, !15, i64 256, !15, i64 320, !15, i64 384, !15, i64 448, !15, i64 512, !15, i64 576}
!43 = !{!"_ZTSN11alglib_impl9ipm2stateE", !12, i64 0, !12, i64 8, !12, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !12, i64 48, !14, i64 56, !15, i64 64, !15, i64 128, !15, i64 192, !11, i64 256, !15, i64 264, !19, i64 328, !15, i64 696, !14, i64 760, !11, i64 768, !15, i64 776, !15, i64 840, !15, i64 904, !15, i64 968, !15, i64 1032, !15, i64 1096, !15, i64 1160, !15, i64 1224, !15, i64 1288, !15, i64 1352, !15, i64 1416, !15, i64 1480, !15, i64 1544, !15, i64 1608, !15, i64 1672, !19, i64 1736, !15, i64 2104, !12, i64 2168, !44, i64 2176, !44, i64 2576, !44, i64 2976, !44, i64 3376, !15, i64 3776, !15, i64 3840, !15, i64 3904, !15, i64 3968, !12, i64 4032, !12, i64 4040, !15, i64 4048, !15, i64 4112, !15, i64 4176, !45, i64 4240, !12, i64 4624, !12, i64 4632, !14, i64 4640, !14, i64 4641, !14, i64 4642, !46, i64 4648, !46, i64 4672, !46, i64 4696, !46, i64 4720, !46, i64 4744, !47, i64 4768, !45, i64 21736, !15, i64 22120, !15, i64 22184, !15, i64 22248, !15, i64 22312, !15, i64 22376, !18, i64 22440, !19, i64 22520, !15, i64 22888, !15, i64 22952, !19, i64 23016, !19, i64 23384, !18, i64 23752, !15, i64 23832}
!44 = !{!"_ZTSN11alglib_impl8ipm2varsE", !12, i64 0, !12, i64 8, !15, i64 16, !15, i64 80, !15, i64 144, !15, i64 208, !15, i64 272, !15, i64 336}
!45 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !15, i64 0, !15, i64 64, !15, i64 128, !15, i64 192, !15, i64 256, !15, i64 320}
!46 = !{!"_ZTSN11alglib_impl6stimerE", !12, i64 0, !12, i64 8, !14, i64 16}
!47 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !19, i64 0, !15, i64 368, !25, i64 432, !15, i64 15496, !15, i64 15560, !15, i64 15624, !15, i64 15688, !15, i64 15752, !15, i64 15816, !15, i64 15880, !15, i64 15944, !15, i64 16008, !15, i64 16072, !15, i64 16136, !15, i64 16200, !15, i64 16264, !15, i64 16328, !15, i64 16392, !15, i64 16456, !15, i64 16520, !15, i64 16584, !15, i64 16648, !15, i64 16712, !15, i64 16776, !15, i64 16840, !15, i64 16904}
!48 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !12, i64 0, !12, i64 8, !14, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !28, i64 56, !16, i64 104}
!49 = !{!"_ZTSN11alglib_impl12minfsqpstateE", !12, i64 0, !12, i64 8, !12, i64 16, !14, i64 24, !15, i64 32, !19, i64 96, !15, i64 464, !15, i64 528, !15, i64 592, !15, i64 656, !15, i64 720, !15, i64 784, !15, i64 848, !15, i64 912, !15, i64 976, !15, i64 1040, !15, i64 1104, !15, i64 1168, !15, i64 1232, !15, i64 1296, !15, i64 1360, !15, i64 1424, !15, i64 1488, !15, i64 1552, !11, i64 1616, !11, i64 1624, !13, i64 1632, !12, i64 1656, !15, i64 1664, !15, i64 1728, !19, i64 1792, !11, i64 2160, !14, i64 2168, !14, i64 2169, !11, i64 2176, !11, i64 2184, !12, i64 2192, !12, i64 2200, !23, i64 2208, !15, i64 2808, !15, i64 2872, !50, i64 2936, !35, i64 56768, !15, i64 60128, !15, i64 60192, !23, i64 60256, !23, i64 60856, !15, i64 61456, !15, i64 61520, !15, i64 61584, !51, i64 61648, !15, i64 61816, !15, i64 61880, !15, i64 61944, !15, i64 62008, !15, i64 62072, !15, i64 62136, !15, i64 62200, !15, i64 62264, !15, i64 62328, !15, i64 62392, !15, i64 62456, !15, i64 62520, !15, i64 62584, !15, i64 62648, !12, i64 62712, !12, i64 62720, !11, i64 62728, !12, i64 62736, !11, i64 62744, !12, i64 62752, !11, i64 62760, !12, i64 62768, !46, i64 62776, !46, i64 62800, !46, i64 62824, !46, i64 62848, !46, i64 62872, !20, i64 62896}
!50 = !{!"_ZTSN11alglib_impl16minfsqpsubsolverE", !39, i64 0, !43, i64 26648, !15, i64 50544, !15, i64 50608, !15, i64 50672, !15, i64 50736, !15, i64 50800, !19, i64 50864, !19, i64 51232, !15, i64 51600, !11, i64 51664, !11, i64 51672, !18, i64 51680, !15, i64 51760, !18, i64 51824, !19, i64 51904, !15, i64 52272, !15, i64 52336, !15, i64 52400, !15, i64 52464, !15, i64 52528, !15, i64 52592, !15, i64 52656, !15, i64 52720, !15, i64 52784, !18, i64 52848, !15, i64 52928, !15, i64 52992, !18, i64 53056, !15, i64 53136, !12, i64 53200, !19, i64 53208, !15, i64 53576, !15, i64 53640, !15, i64 53704, !15, i64 53768}
!51 = !{!"_ZTSN11alglib_impl9nlpfilterE", !11, i64 0, !12, i64 8, !11, i64 16, !11, i64 24, !14, i64 32, !15, i64 40, !15, i64 104}
!52 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !12, i64 0, !12, i64 8, !14, i64 16, !15, i64 24, !15, i64 88, !12, i64 152, !15, i64 160, !15, i64 224, !15, i64 288, !18, i64 352, !15, i64 432, !15, i64 496, !12, i64 560, !12, i64 568, !12, i64 576, !11, i64 584, !12, i64 592, !15, i64 600, !15, i64 664, !11, i64 728, !15, i64 736, !15, i64 800, !11, i64 864, !18, i64 872, !18, i64 952, !18, i64 1032, !15, i64 1112, !15, i64 1176, !20, i64 1240, !14, i64 1504, !14, i64 1505, !12, i64 1512, !12, i64 1520, !11, i64 1528, !11, i64 1536, !14, i64 1544, !53, i64 1552, !11, i64 1848, !11, i64 1856, !54, i64 1864, !54, i64 2184, !11, i64 2504, !11, i64 2512, !55, i64 2520, !55, i64 2840, !11, i64 3160, !11, i64 3168, !56, i64 3176, !56, i64 3504, !14, i64 3832, !15, i64 3840, !15, i64 3904, !18, i64 3968, !20, i64 4048, !15, i64 4312, !15, i64 4376, !15, i64 4440, !15, i64 4504, !15, i64 4568, !15, i64 4632, !15, i64 4696, !15, i64 4760, !18, i64 4824, !18, i64 4904, !15, i64 4984, !15, i64 5048, !15, i64 5112, !15, i64 5176, !15, i64 5240, !15, i64 5304, !15, i64 5368, !15, i64 5432, !15, i64 5496, !15, i64 5560, !18, i64 5624}
!53 = !{!"_ZTSN11alglib_impl14optguardreportE", !14, i64 0, !14, i64 1, !12, i64 8, !11, i64 16, !14, i64 24, !14, i64 25, !14, i64 26, !12, i64 32, !11, i64 40, !14, i64 48, !12, i64 56, !12, i64 64, !15, i64 72, !18, i64 136, !18, i64 216}
!54 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !14, i64 0, !12, i64 8, !15, i64 16, !15, i64 80, !12, i64 144, !15, i64 152, !15, i64 216, !12, i64 280, !12, i64 288, !12, i64 296, !12, i64 304, !12, i64 312}
!55 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !14, i64 0, !12, i64 8, !15, i64 16, !15, i64 80, !12, i64 144, !15, i64 152, !15, i64 216, !12, i64 280, !12, i64 288, !12, i64 296, !12, i64 304, !12, i64 312}
!56 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !14, i64 0, !12, i64 8, !12, i64 16, !15, i64 24, !15, i64 88, !12, i64 152, !15, i64 160, !15, i64 224, !12, i64 288, !12, i64 296, !12, i64 304, !12, i64 312, !12, i64 320}
!57 = !{!7, !7, i64 0}
!58 = !{!12, !12, i64 0}
!59 = !{!14, !14, i64 0}
!60 = !{i8 0, i8 2}
!61 = !{}
!62 = !{!11, !11, i64 0}
!63 = !{!10, !14, i64 38208}
!64 = !{!10, !12, i64 169920}
!65 = !{!10, !12, i64 169896}
!66 = !{!10, !12, i64 169904}
!67 = !{!10, !12, i64 169912}
!68 = !{!10, !12, i64 169976}
!69 = !{!10, !11, i64 169928}
!70 = !{!10, !12, i64 169936}
!71 = !{!10, !11, i64 169944}
!72 = !{!10, !12, i64 169952}
!73 = !{!10, !11, i64 169960}
!74 = !{!10, !12, i64 169968}
!75 = !{!10, !12, i64 24}
!76 = !{!10, !12, i64 432}
!77 = !{!10, !12, i64 424}
!78 = !{!10, !12, i64 2232}
!79 = !{!10, !12, i64 164120}
!80 = !{!10, !12, i64 16}
!81 = distinct !{!81, !82}
!82 = !{!"llvm.loop.mustprogress"}
!83 = !{!10, !12, i64 2368}
!84 = !{!10, !12, i64 2456}
!85 = !{!10, !12, i64 2520}
!86 = !{!10, !12, i64 2528}
!87 = !{!10, !11, i64 80}
!88 = distinct !{!88, !82}
!89 = !{!10, !11, i64 88}
!90 = !{!10, !14, i64 2376}
!91 = !{!10, !12, i64 2608}
!92 = !{!10, !12, i64 2688}
!93 = !{!10, !12, i64 2696}
!94 = !{!10, !12, i64 2704}
!95 = !{!10, !12, i64 2712}
!96 = distinct !{!96, !82}
!97 = distinct !{!97, !82}
!98 = distinct !{!98, !82}
!99 = distinct !{!99, !82}
!100 = distinct !{!100, !82}
!101 = !{!10, !14, i64 2600}
!102 = distinct !{!102, !82}
!103 = distinct !{!103, !82}
!104 = !{!10, !12, i64 56}
!105 = !{!10, !12, i64 1144}
!106 = !{!10, !12, i64 1152}
!107 = !{!10, !12, i64 170432}
!108 = !{!10, !12, i64 170440}
!109 = !{!10, !14, i64 8144}
!110 = !{!10, !14, i64 8146}
!111 = !{!10, !11, i64 8136}
!112 = !{!10, !11, i64 2680}
!113 = !{!10, !11, i64 2448}
!114 = !{!10, !14, i64 38976}
!115 = !{!10, !14, i64 38977}
!116 = !{!10, !11, i64 38968}
!117 = !{!10, !14, i64 103128}
!118 = !{!10, !14, i64 103129}
!119 = !{!10, !11, i64 103120}
!120 = !{!10, !14, i64 64}
!121 = !{!10, !14, i64 2602}
!122 = !{!10, !12, i64 2720}
!123 = !{!10, !12, i64 2728}
!124 = distinct !{!124, !82}
!125 = !{!10, !14, i64 2601}
!126 = distinct !{!126, !82}
!127 = distinct !{!127, !82}
!128 = distinct !{!128, !82}
!129 = distinct !{!129, !82}
!130 = distinct !{!130, !82}
!131 = distinct !{!131, !82}
!132 = !{!10, !12, i64 3248}
!133 = !{!10, !12, i64 3256}
!134 = !{!10, !12, i64 8088}
!135 = !{!10, !12, i64 8096}
!136 = !{!10, !12, i64 8104}
!137 = distinct !{!137, !82}
!138 = distinct !{!138, !82}
!139 = distinct !{!139, !82}
!140 = !{!10, !12, i64 8120}
!141 = distinct !{!141, !82}
!142 = distinct !{!142, !82}
!143 = distinct !{!143, !82}
!144 = distinct !{!144, !82}
!145 = distinct !{!145, !82}
!146 = !{!10, !12, i64 37312}
!147 = !{!10, !12, i64 37304}
!148 = !{!10, !11, i64 37328}
!149 = !{!10, !12, i64 37336}
!150 = !{!10, !11, i64 37344}
!151 = !{!10, !12, i64 37352}
!152 = !{!10, !11, i64 37360}
!153 = !{!10, !12, i64 37368}
!154 = !{!10, !12, i64 100568}
!155 = !{!10, !12, i64 100560}
!156 = !{!10, !11, i64 100576}
!157 = !{!10, !12, i64 100584}
!158 = !{!10, !11, i64 100592}
!159 = !{!10, !12, i64 100600}
!160 = !{!10, !11, i64 100608}
!161 = !{!10, !12, i64 100616}
!162 = !{!10, !12, i64 163680}
!163 = !{!10, !12, i64 163672}
!164 = !{!10, !11, i64 163688}
!165 = !{!10, !12, i64 163696}
!166 = !{!10, !11, i64 163704}
!167 = !{!10, !12, i64 163712}
!168 = !{!10, !11, i64 163720}
!169 = !{!10, !12, i64 163728}
!170 = distinct !{!170, !82}
!171 = distinct !{!171, !82}
!172 = distinct !{!172, !82}


; 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.1116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1117 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1249 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1539 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1621 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.1622 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1623 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1624 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1625 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1626 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1627 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1628 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1629 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1630 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1631 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1632 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1633 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1634 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1635 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.1636 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1637 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1638 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1639 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1640 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1641 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1642 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1643 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1644 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1645 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1646 = external hidden unnamed_addr constant [36 x i8], align 1

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1) local_unnamed_addr #1 {
  %3 = getelementptr inbounds i8, ptr %0, i64 3992
  %4 = load i32, ptr %3, align 8, !tbaa !5
  %5 = icmp sgt i32 %4, -1
  br i1 %5, label %6, label %38

6:                                                ; preds = %2
  %7 = getelementptr inbounds i8, ptr %0, i64 4056
  %8 = load ptr, ptr %7, align 8, !tbaa !56
  %9 = load i64, ptr %8, align 8, !tbaa !57
  %10 = getelementptr inbounds i8, ptr %8, i64 8
  %11 = load i64, ptr %10, align 8, !tbaa !57
  %12 = getelementptr inbounds i8, ptr %8, i64 16
  %13 = load i64, ptr %12, align 8, !tbaa !57
  %14 = getelementptr inbounds i8, ptr %8, i64 24
  %15 = load i64, ptr %14, align 8, !tbaa !57
  %16 = getelementptr inbounds i8, ptr %8, i64 32
  %17 = load i64, ptr %16, align 8, !tbaa !57
  %18 = getelementptr inbounds i8, ptr %8, i64 40
  %19 = load i64, ptr %18, align 8, !tbaa !57
  %20 = getelementptr inbounds i8, ptr %8, i64 48
  %21 = load i64, ptr %20, align 8, !tbaa !57
  %22 = getelementptr inbounds i8, ptr %8, i64 56
  %23 = load i64, ptr %22, align 8, !tbaa !57
  %24 = getelementptr inbounds i8, ptr %8, i64 64
  %25 = load i64, ptr %24, align 8, !tbaa !57
  %26 = getelementptr inbounds i8, ptr %8, i64 72
  %27 = load i64, ptr %26, align 8, !tbaa !57
  %28 = getelementptr inbounds i8, ptr %0, i64 4120
  %29 = load ptr, ptr %28, align 8, !tbaa !56
  %30 = load i8, ptr %29, align 1, !tbaa !58, !range !59, !noundef !60
  %31 = getelementptr inbounds i8, ptr %29, i64 1
  %32 = load i8, ptr %31, align 1, !tbaa !58, !range !59, !noundef !60
  %33 = getelementptr inbounds i8, ptr %0, i64 4184
  %34 = load ptr, ptr %33, align 8, !tbaa !56
  %35 = load double, ptr %34, align 8, !tbaa !61
  %36 = getelementptr inbounds i8, ptr %34, i64 8
  %37 = load double, ptr %36, align 8, !tbaa !61
  br label %38

38:                                               ; preds = %2, %6
  %.01515 = phi i64 [ %9, %6 ], [ 359, %2 ]
  %.01492 = phi i64 [ %11, %6 ], [ -58, %2 ]
  %.01472 = phi i64 [ %13, %6 ], [ -919, %2 ]
  %.01454 = phi i64 [ %15, %6 ], [ -909, %2 ]
  %.01436 = phi i64 [ %17, %6 ], [ 81, %2 ]
  %.01415 = phi i64 [ %19, %6 ], [ 255, %2 ]
  %.01404 = phi i64 [ %21, %6 ], [ 74, %2 ]
  %.01393 = phi i64 [ %23, %6 ], [ -788, %2 ]
  %.01375 = phi i64 [ %25, %6 ], [ 809, %2 ]
  %.01367 = phi double [ %35, %6 ], [ -5.260000e+02, %2 ]
  %.01359 = phi double [ %37, %6 ], [ 7.630000e+02, %2 ]
  %.01345 = phi i8 [ %30, %6 ], [ 0, %2 ]
  %.01337 = phi i64 [ %27, %6 ], [ 205, %2 ]
  %.0 = phi i8 [ %32, %6 ], [ 1, %2 ]
  switch i32 %4, label %45 [
    i32 0, label %222
    i32 1, label %.preheader1763
    i32 2, label %369
    i32 3, label %649
    i32 4, label %647
    i32 5, label %820
    i32 6, label %936
    i32 7, label %945
    i32 8, label %1011
    i32 9, label %1029
    i32 10, label %1047
    i32 11, label %1064
    i32 12, label %1128
    i32 13, label %1191
    i32 14, label %1229
    i32 15, label %1227
  ]

.preheader1763:                                   ; preds = %38
  %.not15791808 = icmp slt i64 %.01393, 0
  br i1 %.not15791808, label %.loopexit1762, label %.lr.ph1810

.lr.ph1810:                                       ; preds = %.preheader1763
  %39 = getelementptr inbounds i8, ptr %0, i64 2848
  %40 = getelementptr inbounds i8, ptr %0, i64 168088
  %.not1580.not1802 = icmp sgt i64 %.01404, 0
  %41 = getelementptr inbounds i8, ptr %0, i64 2912
  %42 = getelementptr inbounds i8, ptr %0, i64 168168
  %43 = add nuw i64 %.01393, 1
  %xtraiter2069 = and i64 %.01404, 1
  %44 = icmp eq i64 %.01404, 1
  %unroll_iter2071 = and i64 %.01404, 9223372036854775806
  %lcmp.mod2070.not = icmp eq i64 %xtraiter2069, 0
  br label %294

45:                                               ; preds = %38
  %46 = getelementptr inbounds i8, ptr %0, i64 38208
  store i8 0, ptr %46, align 8, !tbaa !62
  %47 = getelementptr inbounds i8, ptr %0, i64 169920
  %48 = getelementptr inbounds i8, ptr %0, i64 169896
  %49 = getelementptr inbounds i8, ptr %0, i64 169976
  store i64 0, ptr %49, align 8, !tbaa !63
  %50 = getelementptr inbounds i8, ptr %0, i64 169928
  %51 = getelementptr inbounds i8, ptr %0, i64 169936
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %48, i8 0, i64 40, i1 false)
  store i64 -1, ptr %51, align 8, !tbaa !64
  %52 = getelementptr inbounds i8, ptr %0, i64 169944
  store double 0.000000e+00, ptr %52, align 8, !tbaa !65
  %53 = getelementptr inbounds i8, ptr %0, i64 169952
  store i64 -1, ptr %53, align 8, !tbaa !66
  %54 = getelementptr inbounds i8, ptr %0, i64 169960
  store double 0.000000e+00, ptr %54, align 8, !tbaa !67
  %55 = getelementptr inbounds i8, ptr %0, i64 169968
  store i64 -1, ptr %55, align 8, !tbaa !68
  %56 = getelementptr inbounds i8, ptr %0, i64 24
  %57 = load i64, ptr %56, align 8, !tbaa !69
  %58 = getelementptr inbounds i8, ptr %0, i64 169984
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %57, double noundef 0.000000e+00, ptr noundef nonnull %58, ptr noundef %1)
  %59 = load i64, ptr %56, align 8, !tbaa !69
  %60 = getelementptr inbounds i8, ptr %0, i64 170048
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %59, double noundef 0.000000e+00, ptr noundef nonnull %60, ptr noundef %1)
  %61 = getelementptr inbounds i8, ptr %0, i64 432
  %62 = load i64, ptr %61, align 8, !tbaa !70
  %63 = getelementptr inbounds i8, ptr %0, i64 424
  %64 = load i64, ptr %63, align 8, !tbaa !71
  %65 = add nsw i64 %64, %62
  %66 = getelementptr inbounds i8, ptr %0, i64 170112
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %65, double noundef 0.000000e+00, ptr noundef nonnull %66, ptr noundef %1)
  %67 = getelementptr inbounds i8, ptr %0, i64 2232
  %68 = load i64, ptr %67, align 8, !tbaa !72
  %69 = getelementptr inbounds i8, ptr %0, i64 170176
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %68, double noundef 0.000000e+00, ptr noundef nonnull %69, ptr noundef %1)
  %70 = load i64, ptr %56, align 8, !tbaa !69
  %71 = load i64, ptr %67, align 8, !tbaa !72
  tail call void @_ZN11alglib_implL25minnlc_clearrequestfieldsEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %72 = getelementptr inbounds i8, ptr %0, i64 164120
  %73 = load i64, ptr %72, align 8, !tbaa !73
  %spec.select = icmp ult i64 %73, 2
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %spec.select, ptr noundef nonnull @.str.1621, ptr noundef %1)
  %74 = load i64, ptr %72, align 8, !tbaa !73
  %75 = icmp sgt i64 %74, 0
  br i1 %75, label %.critedge, label %76

76:                                               ; preds = %45
  %77 = getelementptr inbounds i8, ptr %0, i64 16
  %78 = load i64, ptr %77, align 8, !tbaa !74
  %79 = icmp eq i64 %78, 0
  br i1 %79, label %80, label %.critedge1604

80:                                               ; preds = %76
  %81 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1249)
  br i1 %81, label %.critedge, label %82

82:                                               ; preds = %80
  %83 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1622)
  br i1 %83, label %.critedge, label %..critedge1604_crit_edge

..critedge1604_crit_edge:                         ; preds = %82
  %.pre = load i64, ptr %77, align 8, !tbaa !74
  br label %.critedge1604

.critedge1604:                                    ; preds = %..critedge1604_crit_edge, %76
  %84 = phi i64 [ %.pre, %..critedge1604_crit_edge ], [ %78, %76 ]
  %.off = add i64 %84, -2
  %switch = icmp ult i64 %.off, 4
  br i1 %switch, label %85, label %.critedge

85:                                               ; preds = %.critedge1604
  %86 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1116)
  br i1 %86, label %.critedge, label %87

87:                                               ; preds = %85
  %88 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1117)
  br label %.critedge

.critedge:                                        ; preds = %.critedge1604, %45, %80, %87, %85, %82
  %89 = phi i1 [ true, %82 ], [ true, %85 ], [ %88, %87 ], [ false, %.critedge1604 ], [ true, %80 ], [ true, %45 ]
  %90 = zext i1 %89 to i8
  %91 = getelementptr inbounds i8, ptr %0, i64 164128
  %92 = getelementptr inbounds i8, ptr %0, i64 96
  %93 = add nsw i64 %71, 1
  tail call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEPKNS_9ae_vectorEllbPNS_8ae_stateE(ptr noundef nonnull %91, ptr noundef nonnull %92, i64 noundef %70, i64 noundef %93, i1 noundef zeroext %89, ptr noundef %1)
  %.not.not1827 = icmp sgt i64 %70, 0
  br i1 %.not.not1827, label %.lr.ph1829, label %._crit_edge1830

.lr.ph1829:                                       ; preds = %.critedge
  %94 = getelementptr inbounds i8, ptr %0, i64 152
  %95 = getelementptr inbounds i8, ptr %0, i64 169888
  %xtraiter2076 = and i64 %70, 3
  %96 = icmp ult i64 %70, 4
  br i1 %96, label %._crit_edge1830.loopexit.unr-lcssa, label %.lr.ph1829.new

.lr.ph1829.new:                                   ; preds = %.lr.ph1829
  %unroll_iter2078 = and i64 %70, 9223372036854775804
  br label %97

97:                                               ; preds = %97, %.lr.ph1829.new
  %.115161828 = phi i64 [ 0, %.lr.ph1829.new ], [ %121, %97 ]
  %niter2079 = phi i64 [ 0, %.lr.ph1829.new ], [ %niter2079.next.3, %97 ]
  %98 = load ptr, ptr %94, align 8, !tbaa !56
  %99 = getelementptr inbounds double, ptr %98, i64 %.115161828
  %100 = load double, ptr %99, align 8, !tbaa !61
  %101 = load ptr, ptr %95, align 8, !tbaa !56
  %102 = getelementptr inbounds double, ptr %101, i64 %.115161828
  store double %100, ptr %102, align 8, !tbaa !61
  %103 = or disjoint i64 %.115161828, 1
  %104 = load ptr, ptr %94, align 8, !tbaa !56
  %105 = getelementptr inbounds double, ptr %104, i64 %103
  %106 = load double, ptr %105, align 8, !tbaa !61
  %107 = load ptr, ptr %95, align 8, !tbaa !56
  %108 = getelementptr inbounds double, ptr %107, i64 %103
  store double %106, ptr %108, align 8, !tbaa !61
  %109 = or disjoint i64 %.115161828, 2
  %110 = load ptr, ptr %94, align 8, !tbaa !56
  %111 = getelementptr inbounds double, ptr %110, i64 %109
  %112 = load double, ptr %111, align 8, !tbaa !61
  %113 = load ptr, ptr %95, align 8, !tbaa !56
  %114 = getelementptr inbounds double, ptr %113, i64 %109
  store double %112, ptr %114, align 8, !tbaa !61
  %115 = or disjoint i64 %.115161828, 3
  %116 = load ptr, ptr %94, align 8, !tbaa !56
  %117 = getelementptr inbounds double, ptr %116, i64 %115
  %118 = load double, ptr %117, align 8, !tbaa !61
  %119 = load ptr, ptr %95, align 8, !tbaa !56
  %120 = getelementptr inbounds double, ptr %119, i64 %115
  store double %118, ptr %120, align 8, !tbaa !61
  %121 = add nuw nsw i64 %.115161828, 4
  %niter2079.next.3 = add i64 %niter2079, 4
  %niter2079.ncmp.3 = icmp eq i64 %niter2079.next.3, %unroll_iter2078
  br i1 %niter2079.ncmp.3, label %._crit_edge1830.loopexit.unr-lcssa, label %97, !llvm.loop !75

._crit_edge1830.loopexit.unr-lcssa:               ; preds = %97, %.lr.ph1829
  %.115161828.unr = phi i64 [ 0, %.lr.ph1829 ], [ %121, %97 ]
  %lcmp.mod2077.not = icmp eq i64 %xtraiter2076, 0
  br i1 %lcmp.mod2077.not, label %._crit_edge1830, label %.epil.preheader2075

.epil.preheader2075:                              ; preds = %._crit_edge1830.loopexit.unr-lcssa, %.epil.preheader2075
  %.115161828.epil = phi i64 [ %127, %.epil.preheader2075 ], [ %.115161828.unr, %._crit_edge1830.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader2075 ], [ 0, %._crit_edge1830.loopexit.unr-lcssa ]
  %122 = load ptr, ptr %94, align 8, !tbaa !56
  %123 = getelementptr inbounds double, ptr %122, i64 %.115161828.epil
  %124 = load double, ptr %123, align 8, !tbaa !61
  %125 = load ptr, ptr %95, align 8, !tbaa !56
  %126 = getelementptr inbounds double, ptr %125, i64 %.115161828.epil
  store double %124, ptr %126, align 8, !tbaa !61
  %127 = add nuw nsw i64 %.115161828.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2076
  br i1 %epil.iter.cmp.not, label %._crit_edge1830, label %.epil.preheader2075, !llvm.loop !77

._crit_edge1830:                                  ; preds = %._crit_edge1830.loopexit.unr-lcssa, %.epil.preheader2075, %.critedge
  %128 = getelementptr inbounds i8, ptr %0, i64 2368
  %129 = load i64, ptr %128, align 8, !tbaa !79
  %130 = icmp eq i64 %129, 1
  br i1 %130, label %131, label %144

131:                                              ; preds = %._crit_edge1830
  %132 = getelementptr inbounds i8, ptr %0, i64 2456
  %133 = load i64, ptr %132, align 8, !tbaa !80
  %134 = load i64, ptr %67, align 8, !tbaa !72
  %135 = add nsw i64 %134, 1
  %.not = icmp eq i64 %133, %135
  br i1 %.not, label %137, label %136

136:                                              ; preds = %131
  tail call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %132, i64 noundef %135, ptr noundef %1)
  %.pre1976 = load i64, ptr %67, align 8, !tbaa !72
  %.pre1985 = add nsw i64 %.pre1976, 1
  br label %137

137:                                              ; preds = %136, %131
  %.pre-phi = phi i64 [ %.pre1985, %136 ], [ %135, %131 ]
  %138 = getelementptr inbounds i8, ptr %0, i64 2520
  %139 = load i64, ptr %138, align 8, !tbaa !81
  %.not1569 = icmp eq i64 %139, %.pre-phi
  %.pre1977 = load i64, ptr %56, align 8, !tbaa !69
  br i1 %.not1569, label %140, label %143

140:                                              ; preds = %137
  %141 = getelementptr inbounds i8, ptr %0, i64 2528
  %142 = load i64, ptr %141, align 8, !tbaa !82
  %.not1570 = icmp eq i64 %142, %.pre1977
  br i1 %.not1570, label %thread-pre-split, label %143

143:                                              ; preds = %140, %137
  tail call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %138, i64 noundef %.pre-phi, i64 noundef %.pre1977, ptr noundef %1)
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %143, %140
  %.pr = load i64, ptr %128, align 8, !tbaa !79
  br label %144

144:                                              ; preds = %thread-pre-split, %._crit_edge1830
  %145 = phi i64 [ %.pr, %thread-pre-split ], [ %129, %._crit_edge1830 ]
  %146 = icmp eq i64 %145, 2
  br i1 %146, label %147, label %157

147:                                              ; preds = %144
  %148 = getelementptr inbounds i8, ptr %0, i64 80
  %149 = load double, ptr %148, align 8, !tbaa !83
  %150 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %149, double noundef 0.000000e+00)
  %151 = mul nsw i64 %70, 7
  %.sink = select i1 %150, i64 %70, i64 %151
  %152 = getelementptr inbounds i8, ptr %0, i64 2728
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.sink, ptr noundef nonnull %152, ptr noundef %1)
  %153 = getelementptr inbounds i8, ptr %0, i64 2792
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %93, ptr noundef nonnull %153, ptr noundef %1)
  %154 = getelementptr inbounds i8, ptr %0, i64 3416
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %93, ptr noundef nonnull %154, ptr noundef %1)
  %155 = getelementptr inbounds i8, ptr %0, i64 3480
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %70, ptr noundef nonnull %155, ptr noundef %1)
  %156 = getelementptr inbounds i8, ptr %0, i64 3288
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %70, ptr noundef nonnull %156, ptr noundef %1)
  br label %157

157:                                              ; preds = %147, %144
  br i1 %.not.not1827, label %.lr.ph1834, label %._crit_edge1835

.lr.ph1834:                                       ; preds = %157
  %158 = getelementptr inbounds i8, ptr %0, i64 344
  %159 = getelementptr inbounds i8, ptr %0, i64 408
  %160 = getelementptr inbounds i8, ptr %0, i64 216
  %161 = getelementptr inbounds i8, ptr %0, i64 280
  br label %162

162:                                              ; preds = %.lr.ph1834, %188
  %.215171832 = phi i64 [ 0, %.lr.ph1834 ], [ %189, %188 ]
  %163 = load ptr, ptr %158, align 8, !tbaa !56
  %164 = getelementptr inbounds i8, ptr %163, i64 %.215171832
  %165 = load i8, ptr %164, align 1, !tbaa !58, !range !59, !noundef !60
  %166 = trunc nuw i8 %165 to i1
  br i1 %166, label %167, label %188

167:                                              ; preds = %162
  %168 = load ptr, ptr %159, align 8, !tbaa !56
  %169 = getelementptr inbounds i8, ptr %168, i64 %.215171832
  %170 = load i8, ptr %169, align 1, !tbaa !58, !range !59, !noundef !60
  %171 = trunc nuw i8 %170 to i1
  br i1 %171, label %172, label %188

172:                                              ; preds = %167
  %173 = load ptr, ptr %160, align 8, !tbaa !56
  %174 = getelementptr inbounds double, ptr %173, i64 %.215171832
  %175 = load double, ptr %174, align 8, !tbaa !61
  %176 = load ptr, ptr %161, align 8, !tbaa !56
  %177 = getelementptr inbounds double, ptr %176, i64 %.215171832
  %178 = load double, ptr %177, align 8, !tbaa !61
  %179 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %175, double noundef %178)
  br i1 %179, label %180, label %188

180:                                              ; preds = %172
  store i64 -3, ptr %47, align 8, !tbaa !84
  %181 = load ptr, ptr %160, align 8, !tbaa !56
  %182 = getelementptr inbounds double, ptr %181, i64 %.215171832
  %183 = load double, ptr %182, align 8, !tbaa !61
  %184 = load ptr, ptr %161, align 8, !tbaa !56
  %185 = getelementptr inbounds double, ptr %184, i64 %.215171832
  %186 = load double, ptr %185, align 8, !tbaa !61
  %187 = fsub double %183, %186
  store double %187, ptr %50, align 8, !tbaa !85
  store i64 %.215171832, ptr %51, align 8, !tbaa !64
  br label %1831

188:                                              ; preds = %162, %167, %172
  %189 = add nuw nsw i64 %.215171832, 1
  %exitcond1963.not = icmp eq i64 %189, %70
  br i1 %exitcond1963.not, label %._crit_edge1835, label %162, !llvm.loop !86

._crit_edge1835:                                  ; preds = %188, %157
  %.21517.lcssa = phi i64 [ 0, %157 ], [ %70, %188 ]
  %190 = getelementptr inbounds i8, ptr %0, i64 80
  %191 = load double, ptr %190, align 8, !tbaa !83
  %192 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %191, double noundef 0.000000e+00)
  br i1 %192, label %193, label %413

193:                                              ; preds = %._crit_edge1835
  %194 = getelementptr inbounds i8, ptr %0, i64 88
  %195 = load double, ptr %194, align 8, !tbaa !87
  %196 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %195, double noundef 0.000000e+00)
  br i1 %196, label %.loopexit1762, label %413

..loopexit1762_crit_edge:                         ; preds = %.loopexit1761
  %197 = add nsw i64 %254, -1
  br label %.loopexit1762

.loopexit1762.loopexit:                           ; preds = %._crit_edge1806
  %smax1958 = tail call i64 @llvm.smax.i64(i64 %.01404, i64 0)
  br label %.loopexit1762

.loopexit1762.loopexit1923:                       ; preds = %._crit_edge1794
  %smax = tail call i64 @llvm.smax.i64(i64 %.01404, i64 0)
  br label %.loopexit1762

.loopexit1762:                                    ; preds = %.loopexit1762.loopexit1923, %.loopexit1762.loopexit, %369, %.preheader1763, %222, %..loopexit1762_crit_edge, %193
  %.31518 = phi i64 [ %.21517.lcssa, %193 ], [ %242, %..loopexit1762_crit_edge ], [ 0, %222 ], [ 0, %.preheader1763 ], [ 0, %369 ], [ %43, %.loopexit1762.loopexit ], [ %375, %.loopexit1762.loopexit1923 ]
  %.11473 = phi i64 [ %.01472, %193 ], [ %.01472, %..loopexit1762_crit_edge ], [ %.01472, %222 ], [ %.01472, %.preheader1763 ], [ %.01472, %369 ], [ %smax1958, %.loopexit1762.loopexit ], [ %smax, %.loopexit1762.loopexit1923 ]
  %.11455 = phi i64 [ %.01454, %193 ], [ %251, %..loopexit1762_crit_edge ], [ %.01454, %222 ], [ %.01454, %.preheader1763 ], [ %.01454, %369 ], [ %.01454, %.loopexit1762.loopexit ], [ %.01454, %.loopexit1762.loopexit1923 ]
  %.11437 = phi i64 [ %.01436, %193 ], [ %197, %..loopexit1762_crit_edge ], [ %.01436, %222 ], [ %.01436, %.preheader1763 ], [ %.01436, %369 ], [ %.01436, %.loopexit1762.loopexit ], [ %.01436, %.loopexit1762.loopexit1923 ]
  %.11416 = phi i64 [ %.01415, %193 ], [ %.31418.lcssa, %..loopexit1762_crit_edge ], [ %.01415, %222 ], [ %.01415, %.preheader1763 ], [ %.01415, %369 ], [ %.01415, %.loopexit1762.loopexit ], [ %.01415, %.loopexit1762.loopexit1923 ]
  %.11405 = phi i64 [ %70, %193 ], [ %.01404, %..loopexit1762_crit_edge ], [ %.01404, %222 ], [ %.01404, %.preheader1763 ], [ %.01404, %369 ], [ %.01404, %.loopexit1762.loopexit ], [ %.01404, %.loopexit1762.loopexit1923 ]
  %.11394 = phi i64 [ %71, %193 ], [ %.01393, %..loopexit1762_crit_edge ], [ %.01393, %222 ], [ %.01393, %.preheader1763 ], [ %.01393, %369 ], [ %.01393, %.loopexit1762.loopexit ], [ %.01393, %.loopexit1762.loopexit1923 ]
  %.11346 = phi i8 [ %90, %193 ], [ %.01345, %..loopexit1762_crit_edge ], [ %.01345, %222 ], [ %.01345, %.preheader1763 ], [ %.01345, %369 ], [ %.01345, %.loopexit1762.loopexit ], [ %.01345, %.loopexit1762.loopexit1923 ]
  %198 = getelementptr inbounds i8, ptr %0, i64 164128
  %199 = getelementptr inbounds i8, ptr %0, i64 4792
  %200 = getelementptr inbounds i8, ptr %0, i64 96
  %201 = getelementptr inbounds i8, ptr %0, i64 160
  %202 = getelementptr inbounds i8, ptr %0, i64 224
  %203 = getelementptr inbounds i8, ptr %0, i64 88
  %204 = load double, ptr %203, align 8, !tbaa !87
  %205 = tail call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_S4_bdPNS_8ae_stateE(ptr noundef nonnull %198, ptr noundef nonnull %199, ptr noundef nonnull %200, ptr noundef nonnull %201, ptr noundef nonnull %202, i1 noundef zeroext true, double noundef %204, ptr noundef %1)
  br i1 %205, label %206, label %413

206:                                              ; preds = %.loopexit1762
  %207 = getelementptr inbounds i8, ptr %0, i64 2368
  %208 = load i64, ptr %207, align 8, !tbaa !79
  %.not1600 = icmp eq i64 %208, 2
  br i1 %.not1600, label %209, label %328

209:                                              ; preds = %206
  %210 = getelementptr inbounds i8, ptr %0, i64 2376
  %211 = load i8, ptr %210, align 8, !tbaa !88, !range !59, !noundef !60
  %212 = trunc nuw i8 %211 to i1
  %213 = getelementptr inbounds i8, ptr %0, i64 2608
  %214 = getelementptr inbounds i8, ptr %0, i64 2688
  %215 = add nsw i64 %.11394, 1
  %216 = getelementptr inbounds i8, ptr %0, i64 2696
  %217 = getelementptr inbounds i8, ptr %0, i64 2704
  %218 = getelementptr inbounds i8, ptr %0, i64 2712
  %219 = getelementptr inbounds i8, ptr %0, i64 167968
  %220 = getelementptr inbounds i8, ptr %0, i64 2728
  br i1 %212, label %221, label %290

221:                                              ; preds = %209
  store i64 1, ptr %213, align 8, !tbaa !89
  store i64 1, ptr %214, align 8, !tbaa !90
  store i64 %215, ptr %216, align 8, !tbaa !91
  store i64 %.11405, ptr %217, align 8, !tbaa !92
  store i64 0, ptr %218, align 8, !tbaa !93
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.11405, ptr noundef nonnull %219, ptr noundef nonnull %220, ptr noundef %1)
  br label %1800

222:                                              ; preds = %38
  %223 = getelementptr inbounds i8, ptr %0, i64 2920
  %224 = tail call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %223, ptr noundef %1)
  %225 = getelementptr inbounds i8, ptr %0, i64 2688
  %226 = load i64, ptr %225, align 8, !tbaa !90
  %227 = getelementptr inbounds i8, ptr %0, i64 2696
  %228 = load i64, ptr %227, align 8, !tbaa !91
  %229 = mul nsw i64 %228, %226
  %230 = icmp eq i64 %224, %229
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %230, ptr noundef nonnull @.str.1623, ptr noundef %1)
  %231 = tail call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %223, ptr noundef %1)
  %232 = getelementptr inbounds i8, ptr %0, i64 2704
  %233 = load i64, ptr %232, align 8, !tbaa !92
  %234 = icmp eq i64 %231, %233
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %234, ptr noundef nonnull @.str.1624, ptr noundef %1)
  %.not15811818 = icmp slt i64 %.01393, 0
  br i1 %.not15811818, label %.loopexit1762, label %.lr.ph1821

.lr.ph1821:                                       ; preds = %222
  %235 = getelementptr inbounds i8, ptr %0, i64 2848
  %236 = getelementptr inbounds i8, ptr %0, i64 168088
  %237 = getelementptr inbounds i8, ptr %0, i64 168096
  %238 = getelementptr inbounds i8, ptr %0, i64 3104
  %239 = getelementptr inbounds i8, ptr %0, i64 2976
  %240 = getelementptr inbounds i8, ptr %0, i64 168168
  %241 = getelementptr inbounds i8, ptr %0, i64 3040
  %242 = add nuw i64 %.01393, 1
  br label %243

.loopexit1761:                                    ; preds = %.lr.ph1816.prol.loopexit, %.lr.ph1816, %243
  %.31418.lcssa = phi i64 [ %251, %243 ], [ %254, %.lr.ph1816 ], [ %254, %.lr.ph1816.prol.loopexit ]
  %exitcond1961.not = icmp eq i64 %.415191819, %.01393
  br i1 %exitcond1961.not, label %..loopexit1762_crit_edge, label %243, !llvm.loop !94

243:                                              ; preds = %.lr.ph1821, %.loopexit1761
  %.415191819 = phi i64 [ 0, %.lr.ph1821 ], [ %252, %.loopexit1761 ]
  %244 = load ptr, ptr %235, align 8, !tbaa !56
  %245 = getelementptr inbounds double, ptr %244, i64 %.415191819
  %246 = load double, ptr %245, align 8, !tbaa !61
  %247 = load ptr, ptr %236, align 8, !tbaa !56
  %248 = getelementptr inbounds double, ptr %247, i64 %.415191819
  store double %246, ptr %248, align 8, !tbaa !61
  tail call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01404, double noundef 0.000000e+00, ptr noundef nonnull %237, i64 noundef %.415191819, ptr noundef %1)
  %249 = load ptr, ptr %238, align 8, !tbaa !56
  %250 = getelementptr inbounds i64, ptr %249, i64 %.415191819
  %251 = load i64, ptr %250, align 8, !tbaa !57
  %252 = add nuw i64 %.415191819, 1
  %253 = getelementptr inbounds i64, ptr %249, i64 %252
  %254 = load i64, ptr %253, align 8, !tbaa !57
  %.not1602.not1813 = icmp slt i64 %251, %254
  br i1 %.not1602.not1813, label %.lr.ph1816.preheader, label %.loopexit1761

.lr.ph1816.preheader:                             ; preds = %243
  %255 = sub i64 %254, %251
  %.neg = add i64 %251, 1
  %xtraiter2073 = and i64 %255, 1
  %lcmp.mod2074.not = icmp eq i64 %xtraiter2073, 0
  br i1 %lcmp.mod2074.not, label %.lr.ph1816.prol.loopexit, label %.lr.ph1816.prol

.lr.ph1816.prol:                                  ; preds = %.lr.ph1816.preheader
  %256 = load ptr, ptr %239, align 8, !tbaa !56
  %257 = getelementptr inbounds double, ptr %256, i64 %251
  %258 = load double, ptr %257, align 8, !tbaa !61
  %259 = load ptr, ptr %240, align 8, !tbaa !56
  %260 = getelementptr inbounds ptr, ptr %259, i64 %.415191819
  %261 = load ptr, ptr %260, align 8, !tbaa !95
  %262 = load ptr, ptr %241, align 8, !tbaa !56
  %263 = getelementptr inbounds i64, ptr %262, i64 %251
  %264 = load i64, ptr %263, align 8, !tbaa !57
  %265 = getelementptr inbounds double, ptr %261, i64 %264
  store double %258, ptr %265, align 8, !tbaa !61
  %266 = add nsw i64 %251, 1
  br label %.lr.ph1816.prol.loopexit

.lr.ph1816.prol.loopexit:                         ; preds = %.lr.ph1816.prol, %.lr.ph1816.preheader
  %.314181814.unr = phi i64 [ %251, %.lr.ph1816.preheader ], [ %266, %.lr.ph1816.prol ]
  %267 = icmp eq i64 %254, %.neg
  br i1 %267, label %.loopexit1761, label %.lr.ph1816

.lr.ph1816:                                       ; preds = %.lr.ph1816.prol.loopexit, %.lr.ph1816
  %.314181814 = phi i64 [ %289, %.lr.ph1816 ], [ %.314181814.unr, %.lr.ph1816.prol.loopexit ]
  %268 = load ptr, ptr %239, align 8, !tbaa !56
  %269 = getelementptr inbounds double, ptr %268, i64 %.314181814
  %270 = load double, ptr %269, align 8, !tbaa !61
  %271 = load ptr, ptr %240, align 8, !tbaa !56
  %272 = getelementptr inbounds ptr, ptr %271, i64 %.415191819
  %273 = load ptr, ptr %272, align 8, !tbaa !95
  %274 = load ptr, ptr %241, align 8, !tbaa !56
  %275 = getelementptr inbounds i64, ptr %274, i64 %.314181814
  %276 = load i64, ptr %275, align 8, !tbaa !57
  %277 = getelementptr inbounds double, ptr %273, i64 %276
  store double %270, ptr %277, align 8, !tbaa !61
  %278 = add nsw i64 %.314181814, 1
  %279 = load ptr, ptr %239, align 8, !tbaa !56
  %280 = getelementptr inbounds double, ptr %279, i64 %278
  %281 = load double, ptr %280, align 8, !tbaa !61
  %282 = load ptr, ptr %240, align 8, !tbaa !56
  %283 = getelementptr inbounds ptr, ptr %282, i64 %.415191819
  %284 = load ptr, ptr %283, align 8, !tbaa !95
  %285 = load ptr, ptr %241, align 8, !tbaa !56
  %286 = getelementptr inbounds i64, ptr %285, i64 %278
  %287 = load i64, ptr %286, align 8, !tbaa !57
  %288 = getelementptr inbounds double, ptr %284, i64 %287
  store double %281, ptr %288, align 8, !tbaa !61
  %289 = add nsw i64 %.314181814, 2
  %exitcond1960.not.1 = icmp eq i64 %289, %254
  br i1 %exitcond1960.not.1, label %.loopexit1761, label %.lr.ph1816, !llvm.loop !96

290:                                              ; preds = %209
  store i64 2, ptr %213, align 8, !tbaa !89
  store i64 1, ptr %214, align 8, !tbaa !90
  store i64 %215, ptr %216, align 8, !tbaa !91
  store i64 %.11405, ptr %217, align 8, !tbaa !92
  store i64 0, ptr %218, align 8, !tbaa !93
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.11405, ptr noundef nonnull %219, ptr noundef nonnull %220, ptr noundef %1)
  %291 = mul nsw i64 %215, %.11405
  %292 = getelementptr inbounds i8, ptr %0, i64 2856
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %291, ptr noundef nonnull %292, ptr noundef %1)
  %293 = getelementptr inbounds i8, ptr %0, i64 3544
  tail call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %215, i64 noundef %.11405, ptr noundef nonnull %293, ptr noundef %1)
  br label %1800

294:                                              ; preds = %.lr.ph1810, %._crit_edge1806
  %.515201809 = phi i64 [ 0, %.lr.ph1810 ], [ %327, %._crit_edge1806 ]
  %295 = load ptr, ptr %39, align 8, !tbaa !56
  %296 = getelementptr inbounds double, ptr %295, i64 %.515201809
  %297 = load double, ptr %296, align 8, !tbaa !61
  %298 = load ptr, ptr %40, align 8, !tbaa !56
  %299 = getelementptr inbounds double, ptr %298, i64 %.515201809
  store double %297, ptr %299, align 8, !tbaa !61
  br i1 %.not1580.not1802, label %.lr.ph1805, label %._crit_edge1806

.lr.ph1805:                                       ; preds = %294
  %300 = mul nuw nsw i64 %.515201809, %.01404
  br i1 %44, label %._crit_edge1806.loopexit.unr-lcssa, label %.lr.ph1805.new

.lr.ph1805.new:                                   ; preds = %.lr.ph1805, %.lr.ph1805.new
  %.314751803 = phi i64 [ %318, %.lr.ph1805.new ], [ 0, %.lr.ph1805 ]
  %niter2072 = phi i64 [ %niter2072.next.1, %.lr.ph1805.new ], [ 0, %.lr.ph1805 ]
  %301 = load ptr, ptr %41, align 8, !tbaa !56
  %302 = getelementptr double, ptr %301, i64 %300
  %303 = getelementptr double, ptr %302, i64 %.314751803
  %304 = load double, ptr %303, align 8, !tbaa !61
  %305 = load ptr, ptr %42, align 8, !tbaa !56
  %306 = getelementptr inbounds ptr, ptr %305, i64 %.515201809
  %307 = load ptr, ptr %306, align 8, !tbaa !95
  %308 = getelementptr inbounds double, ptr %307, i64 %.314751803
  store double %304, ptr %308, align 8, !tbaa !61
  %309 = or disjoint i64 %.314751803, 1
  %310 = load ptr, ptr %41, align 8, !tbaa !56
  %311 = getelementptr double, ptr %310, i64 %300
  %312 = getelementptr double, ptr %311, i64 %309
  %313 = load double, ptr %312, align 8, !tbaa !61
  %314 = load ptr, ptr %42, align 8, !tbaa !56
  %315 = getelementptr inbounds ptr, ptr %314, i64 %.515201809
  %316 = load ptr, ptr %315, align 8, !tbaa !95
  %317 = getelementptr inbounds double, ptr %316, i64 %309
  store double %313, ptr %317, align 8, !tbaa !61
  %318 = add nuw nsw i64 %.314751803, 2
  %niter2072.next.1 = add i64 %niter2072, 2
  %niter2072.ncmp.1 = icmp eq i64 %niter2072.next.1, %unroll_iter2071
  br i1 %niter2072.ncmp.1, label %._crit_edge1806.loopexit.unr-lcssa, label %.lr.ph1805.new, !llvm.loop !97

._crit_edge1806.loopexit.unr-lcssa:               ; preds = %.lr.ph1805.new, %.lr.ph1805
  %.314751803.unr = phi i64 [ 0, %.lr.ph1805 ], [ %318, %.lr.ph1805.new ]
  br i1 %lcmp.mod2070.not, label %._crit_edge1806, label %._crit_edge1806.loopexit.epilog-lcssa

._crit_edge1806.loopexit.epilog-lcssa:            ; preds = %._crit_edge1806.loopexit.unr-lcssa
  %319 = load ptr, ptr %41, align 8, !tbaa !56
  %320 = getelementptr double, ptr %319, i64 %300
  %321 = getelementptr double, ptr %320, i64 %.314751803.unr
  %322 = load double, ptr %321, align 8, !tbaa !61
  %323 = load ptr, ptr %42, align 8, !tbaa !56
  %324 = getelementptr inbounds ptr, ptr %323, i64 %.515201809
  %325 = load ptr, ptr %324, align 8, !tbaa !95
  %326 = getelementptr inbounds double, ptr %325, i64 %.314751803.unr
  store double %322, ptr %326, align 8, !tbaa !61
  br label %._crit_edge1806

._crit_edge1806:                                  ; preds = %._crit_edge1806.loopexit.epilog-lcssa, %._crit_edge1806.loopexit.unr-lcssa, %294
  %327 = add nuw i64 %.515201809, 1
  %exitcond1959.not = icmp eq i64 %.515201809, %.01393
  br i1 %exitcond1959.not, label %.loopexit1762.loopexit, label %294, !llvm.loop !98

328:                                              ; preds = %206
  %329 = icmp eq i64 %208, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %329, ptr noundef nonnull @.str.1625, ptr noundef %1)
  %330 = getelementptr inbounds i8, ptr %0, i64 2376
  %331 = load i8, ptr %330, align 8, !tbaa !88, !range !59, !noundef !60
  %332 = trunc nuw i8 %331 to i1
  %333 = xor i1 %332, true
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %333, ptr noundef nonnull @.str.1626, ptr noundef %1)
  %.not1601.not1914 = icmp sgt i64 %.11405, 0
  br i1 %.not1601.not1914, label %.lr.ph1917, label %._crit_edge1918

.lr.ph1917:                                       ; preds = %328
  %334 = getelementptr inbounds i8, ptr %0, i64 168024
  %335 = getelementptr inbounds i8, ptr %0, i64 2440
  %xtraiter2109 = and i64 %.11405, 3
  %336 = icmp ult i64 %.11405, 4
  br i1 %336, label %._crit_edge1918.loopexit.unr-lcssa, label %.lr.ph1917.new

.lr.ph1917.new:                                   ; preds = %.lr.ph1917
  %unroll_iter2112 = and i64 %.11405, 9223372036854775804
  br label %337

337:                                              ; preds = %337, %.lr.ph1917.new
  %.615211915 = phi i64 [ 0, %.lr.ph1917.new ], [ %361, %337 ]
  %niter2113 = phi i64 [ 0, %.lr.ph1917.new ], [ %niter2113.next.3, %337 ]
  %338 = load ptr, ptr %334, align 8, !tbaa !56
  %339 = getelementptr inbounds double, ptr %338, i64 %.615211915
  %340 = load double, ptr %339, align 8, !tbaa !61
  %341 = load ptr, ptr %335, align 8, !tbaa !56
  %342 = getelementptr inbounds double, ptr %341, i64 %.615211915
  store double %340, ptr %342, align 8, !tbaa !61
  %343 = or disjoint i64 %.615211915, 1
  %344 = load ptr, ptr %334, align 8, !tbaa !56
  %345 = getelementptr inbounds double, ptr %344, i64 %343
  %346 = load double, ptr %345, align 8, !tbaa !61
  %347 = load ptr, ptr %335, align 8, !tbaa !56
  %348 = getelementptr inbounds double, ptr %347, i64 %343
  store double %346, ptr %348, align 8, !tbaa !61
  %349 = or disjoint i64 %.615211915, 2
  %350 = load ptr, ptr %334, align 8, !tbaa !56
  %351 = getelementptr inbounds double, ptr %350, i64 %349
  %352 = load double, ptr %351, align 8, !tbaa !61
  %353 = load ptr, ptr %335, align 8, !tbaa !56
  %354 = getelementptr inbounds double, ptr %353, i64 %349
  store double %352, ptr %354, align 8, !tbaa !61
  %355 = or disjoint i64 %.615211915, 3
  %356 = load ptr, ptr %334, align 8, !tbaa !56
  %357 = getelementptr inbounds double, ptr %356, i64 %355
  %358 = load double, ptr %357, align 8, !tbaa !61
  %359 = load ptr, ptr %335, align 8, !tbaa !56
  %360 = getelementptr inbounds double, ptr %359, i64 %355
  store double %358, ptr %360, align 8, !tbaa !61
  %361 = add nuw nsw i64 %.615211915, 4
  %niter2113.next.3 = add i64 %niter2113, 4
  %niter2113.ncmp.3 = icmp eq i64 %niter2113.next.3, %unroll_iter2112
  br i1 %niter2113.ncmp.3, label %._crit_edge1918.loopexit.unr-lcssa, label %337, !llvm.loop !99

._crit_edge1918.loopexit.unr-lcssa:               ; preds = %337, %.lr.ph1917
  %.615211915.unr = phi i64 [ 0, %.lr.ph1917 ], [ %361, %337 ]
  %lcmp.mod2111.not = icmp eq i64 %xtraiter2109, 0
  br i1 %lcmp.mod2111.not, label %._crit_edge1918, label %.epil.preheader2108

.epil.preheader2108:                              ; preds = %._crit_edge1918.loopexit.unr-lcssa, %.epil.preheader2108
  %.615211915.epil = phi i64 [ %367, %.epil.preheader2108 ], [ %.615211915.unr, %._crit_edge1918.loopexit.unr-lcssa ]
  %epil.iter2110 = phi i64 [ %epil.iter2110.next, %.epil.preheader2108 ], [ 0, %._crit_edge1918.loopexit.unr-lcssa ]
  %362 = load ptr, ptr %334, align 8, !tbaa !56
  %363 = getelementptr inbounds double, ptr %362, i64 %.615211915.epil
  %364 = load double, ptr %363, align 8, !tbaa !61
  %365 = load ptr, ptr %335, align 8, !tbaa !56
  %366 = getelementptr inbounds double, ptr %365, i64 %.615211915.epil
  store double %364, ptr %366, align 8, !tbaa !61
  %367 = add nuw nsw i64 %.615211915.epil, 1
  %epil.iter2110.next = add i64 %epil.iter2110, 1
  %epil.iter2110.cmp.not = icmp eq i64 %epil.iter2110.next, %xtraiter2109
  br i1 %epil.iter2110.cmp.not, label %._crit_edge1918, label %.epil.preheader2108, !llvm.loop !100

._crit_edge1918:                                  ; preds = %._crit_edge1918.loopexit.unr-lcssa, %.epil.preheader2108, %328
  %.61521.lcssa = phi i64 [ 0, %328 ], [ %.11405, %.epil.preheader2108 ], [ %.11405, %._crit_edge1918.loopexit.unr-lcssa ]
  %368 = getelementptr inbounds i8, ptr %0, i64 2600
  store i8 1, ptr %368, align 8, !tbaa !101
  br label %1800

369:                                              ; preds = %38
  %370 = getelementptr inbounds i8, ptr %0, i64 2600
  store i8 0, ptr %370, align 8, !tbaa !101
  %.not15771796 = icmp slt i64 %.01393, 0
  br i1 %.not15771796, label %.loopexit1762, label %.lr.ph1799

.lr.ph1799:                                       ; preds = %369
  %371 = getelementptr inbounds i8, ptr %0, i64 2512
  %372 = getelementptr inbounds i8, ptr %0, i64 168088
  %.not1578.not1790 = icmp sgt i64 %.01404, 0
  %373 = getelementptr inbounds i8, ptr %0, i64 2592
  %374 = getelementptr inbounds i8, ptr %0, i64 168168
  %375 = add nuw i64 %.01393, 1
  %xtraiter2064 = and i64 %.01404, 1
  %376 = icmp eq i64 %.01404, 1
  %unroll_iter2066 = and i64 %.01404, 9223372036854775806
  %lcmp.mod2065.not = icmp eq i64 %xtraiter2064, 0
  br label %377

377:                                              ; preds = %.lr.ph1799, %._crit_edge1794
  %.715221797 = phi i64 [ 0, %.lr.ph1799 ], [ %412, %._crit_edge1794 ]
  %378 = load ptr, ptr %371, align 8, !tbaa !56
  %379 = getelementptr inbounds double, ptr %378, i64 %.715221797
  %380 = load double, ptr %379, align 8, !tbaa !61
  %381 = load ptr, ptr %372, align 8, !tbaa !56
  %382 = getelementptr inbounds double, ptr %381, i64 %.715221797
  store double %380, ptr %382, align 8, !tbaa !61
  br i1 %.not1578.not1790, label %.lr.ph1793.preheader, label %._crit_edge1794

.lr.ph1793.preheader:                             ; preds = %377
  br i1 %376, label %._crit_edge1794.loopexit.unr-lcssa, label %.lr.ph1793

.lr.ph1793:                                       ; preds = %.lr.ph1793.preheader, %.lr.ph1793
  %.514771791 = phi i64 [ %402, %.lr.ph1793 ], [ 0, %.lr.ph1793.preheader ]
  %niter2067 = phi i64 [ %niter2067.next.1, %.lr.ph1793 ], [ 0, %.lr.ph1793.preheader ]
  %383 = load ptr, ptr %373, align 8, !tbaa !56
  %384 = getelementptr inbounds ptr, ptr %383, i64 %.715221797
  %385 = load ptr, ptr %384, align 8, !tbaa !95
  %386 = getelementptr inbounds double, ptr %385, i64 %.514771791
  %387 = load double, ptr %386, align 8, !tbaa !61
  %388 = load ptr, ptr %374, align 8, !tbaa !56
  %389 = getelementptr inbounds ptr, ptr %388, i64 %.715221797
  %390 = load ptr, ptr %389, align 8, !tbaa !95
  %391 = getelementptr inbounds double, ptr %390, i64 %.514771791
  store double %387, ptr %391, align 8, !tbaa !61
  %392 = or disjoint i64 %.514771791, 1
  %393 = load ptr, ptr %373, align 8, !tbaa !56
  %394 = getelementptr inbounds ptr, ptr %393, i64 %.715221797
  %395 = load ptr, ptr %394, align 8, !tbaa !95
  %396 = getelementptr inbounds double, ptr %395, i64 %392
  %397 = load double, ptr %396, align 8, !tbaa !61
  %398 = load ptr, ptr %374, align 8, !tbaa !56
  %399 = getelementptr inbounds ptr, ptr %398, i64 %.715221797
  %400 = load ptr, ptr %399, align 8, !tbaa !95
  %401 = getelementptr inbounds double, ptr %400, i64 %392
  store double %397, ptr %401, align 8, !tbaa !61
  %402 = add nuw nsw i64 %.514771791, 2
  %niter2067.next.1 = add i64 %niter2067, 2
  %niter2067.ncmp.1 = icmp eq i64 %niter2067.next.1, %unroll_iter2066
  br i1 %niter2067.ncmp.1, label %._crit_edge1794.loopexit.unr-lcssa, label %.lr.ph1793, !llvm.loop !102

._crit_edge1794.loopexit.unr-lcssa:               ; preds = %.lr.ph1793, %.lr.ph1793.preheader
  %.514771791.unr = phi i64 [ 0, %.lr.ph1793.preheader ], [ %402, %.lr.ph1793 ]
  br i1 %lcmp.mod2065.not, label %._crit_edge1794, label %.lr.ph1793.epil

.lr.ph1793.epil:                                  ; preds = %._crit_edge1794.loopexit.unr-lcssa
  %403 = load ptr, ptr %373, align 8, !tbaa !56
  %404 = getelementptr inbounds ptr, ptr %403, i64 %.715221797
  %405 = load ptr, ptr %404, align 8, !tbaa !95
  %406 = getelementptr inbounds double, ptr %405, i64 %.514771791.unr
  %407 = load double, ptr %406, align 8, !tbaa !61
  %408 = load ptr, ptr %374, align 8, !tbaa !56
  %409 = getelementptr inbounds ptr, ptr %408, i64 %.715221797
  %410 = load ptr, ptr %409, align 8, !tbaa !95
  %411 = getelementptr inbounds double, ptr %410, i64 %.514771791.unr
  store double %407, ptr %411, align 8, !tbaa !61
  br label %._crit_edge1794

._crit_edge1794:                                  ; preds = %.lr.ph1793.epil, %._crit_edge1794.loopexit.unr-lcssa, %377
  %412 = add nuw i64 %.715221797, 1
  %exitcond1956.not = icmp eq i64 %.715221797, %.01393
  br i1 %exitcond1956.not, label %.loopexit1762.loopexit1923, label %377, !llvm.loop !103

413:                                              ; preds = %.loopexit1762, %._crit_edge1835, %193
  %.81523 = phi i64 [ %.31518, %.loopexit1762 ], [ %.21517.lcssa, %193 ], [ %.21517.lcssa, %._crit_edge1835 ]
  %.61478 = phi i64 [ %.11473, %.loopexit1762 ], [ %.01472, %193 ], [ %.01472, %._crit_edge1835 ]
  %.31457 = phi i64 [ %.11455, %.loopexit1762 ], [ %.01454, %193 ], [ %.01454, %._crit_edge1835 ]
  %.31439 = phi i64 [ %.11437, %.loopexit1762 ], [ %.01436, %193 ], [ %.01436, %._crit_edge1835 ]
  %.41419 = phi i64 [ %.11416, %.loopexit1762 ], [ %.01415, %193 ], [ %.01415, %._crit_edge1835 ]
  %.21406 = phi i64 [ %.11405, %.loopexit1762 ], [ %70, %193 ], [ %70, %._crit_edge1835 ]
  %.21395 = phi i64 [ %.11394, %.loopexit1762 ], [ %71, %193 ], [ %71, %._crit_edge1835 ]
  %414 = getelementptr inbounds i8, ptr %0, i64 80
  %415 = load double, ptr %414, align 8, !tbaa !83
  %416 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %415, double noundef 0.000000e+00)
  br i1 %416, label %417, label %425

417:                                              ; preds = %413
  %418 = getelementptr inbounds i8, ptr %0, i64 4856
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %418, i64 noundef %.21406, ptr noundef %1)
  %419 = getelementptr inbounds i8, ptr %0, i64 4920
  %420 = add nsw i64 %.21395, 1
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %419, i64 noundef %420, ptr noundef %1)
  %421 = getelementptr inbounds i8, ptr %0, i64 5048
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %421, i64 noundef %420, ptr noundef %1)
  %422 = getelementptr inbounds i8, ptr %0, i64 5112
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %422, i64 noundef %420, ptr noundef %1)
  %423 = getelementptr inbounds i8, ptr %0, i64 5176
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %423, i64 noundef %420, ptr noundef %1)
  %424 = getelementptr inbounds i8, ptr %0, i64 5240
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %424, i64 noundef %420, ptr noundef %1)
  br label %425

425:                                              ; preds = %417, %413
  %426 = getelementptr inbounds i8, ptr %0, i64 16
  %427 = load i64, ptr %426, align 8, !tbaa !74
  %428 = icmp eq i64 %427, 0
  br i1 %428, label %429, label %450

429:                                              ; preds = %425
  %430 = getelementptr inbounds i8, ptr %0, i64 416
  tail call void @_ZN11alglib_impl18xlcconverttosparseEPNS_18xlinearconstraintsEPNS_8ae_stateE(ptr noundef nonnull %430, ptr noundef %1)
  %431 = getelementptr inbounds i8, ptr %0, i64 160
  %432 = getelementptr inbounds i8, ptr %0, i64 224
  %433 = getelementptr inbounds i8, ptr %0, i64 96
  %434 = getelementptr inbounds i8, ptr %0, i64 4792
  %435 = getelementptr inbounds i8, ptr %0, i64 1368
  %436 = getelementptr inbounds i8, ptr %0, i64 1736
  %437 = getelementptr inbounds i8, ptr %0, i64 1800
  %438 = getelementptr inbounds i8, ptr %0, i64 1240
  %439 = getelementptr inbounds i8, ptr %0, i64 432
  %440 = load i64, ptr %439, align 8, !tbaa !70
  %441 = getelementptr inbounds i8, ptr %0, i64 424
  %442 = load i64, ptr %441, align 8, !tbaa !71
  %443 = add nsw i64 %442, %440
  %444 = getelementptr inbounds i8, ptr %0, i64 2240
  %445 = getelementptr inbounds i8, ptr %0, i64 2304
  %446 = getelementptr inbounds i8, ptr %0, i64 32
  %447 = getelementptr inbounds i8, ptr %0, i64 56
  %448 = load i64, ptr %447, align 8, !tbaa !104
  %449 = getelementptr inbounds i8, ptr %0, i64 6184
  tail call void @_ZN11alglib_impl13minaulinitbufEPKNS_9ae_vectorES2_S2_S2_lPKNS_12sparsematrixES2_S2_S2_lS2_S2_lPKNS_19nlpstoppingcriteriaElPNS_11minaulstateEPNS_8ae_stateE(ptr noundef nonnull %431, ptr noundef nonnull %432, ptr noundef nonnull %433, ptr noundef nonnull %434, i64 noundef %.21406, ptr noundef nonnull %435, ptr noundef nonnull %436, ptr noundef nonnull %437, ptr noundef nonnull %438, i64 noundef %443, ptr noundef nonnull %444, ptr noundef nonnull %445, i64 noundef %.21395, ptr noundef nonnull %446, i64 noundef %448, ptr noundef nonnull %449, ptr noundef %1)
  %.pre1978 = load i64, ptr %426, align 8, !tbaa !74
  br label %450

450:                                              ; preds = %429, %425
  %451 = phi i64 [ %.pre1978, %429 ], [ %427, %425 ]
  %452 = and i64 %451, -2
  %switch1607 = icmp eq i64 %452, 2
  br i1 %switch1607, label %453, label %478

453:                                              ; preds = %450
  %454 = getelementptr inbounds i8, ptr %0, i64 416
  tail call void @_ZN11alglib_impl15xlcconverttooldEPNS_18xlinearconstraintsEPNS_8ae_stateE(ptr noundef nonnull %454, ptr noundef %1)
  %455 = getelementptr inbounds i8, ptr %0, i64 2240
  %456 = getelementptr inbounds i8, ptr %0, i64 2304
  %457 = getelementptr inbounds i8, ptr %0, i64 170240
  %458 = getelementptr inbounds i8, ptr %0, i64 170304
  %459 = getelementptr inbounds i8, ptr %0, i64 170368
  %460 = getelementptr inbounds i8, ptr %0, i64 170432
  %461 = getelementptr inbounds i8, ptr %0, i64 170440
  tail call void @_ZN11alglib_impl31converttwosidednlctoonesidedoldEPKNS_9ae_vectorES2_lPS0_S3_S3_PlS4_PNS_8ae_stateE(ptr noundef nonnull %455, ptr noundef nonnull %456, i64 noundef %.21395, ptr noundef nonnull %457, ptr noundef nonnull %458, ptr noundef nonnull %459, ptr noundef nonnull %460, ptr noundef nonnull %461, ptr noundef %1)
  %462 = getelementptr inbounds i8, ptr %0, i64 160
  %463 = getelementptr inbounds i8, ptr %0, i64 224
  %464 = getelementptr inbounds i8, ptr %0, i64 96
  %465 = getelementptr inbounds i8, ptr %0, i64 4792
  %466 = getelementptr inbounds i8, ptr %0, i64 1160
  %467 = getelementptr inbounds i8, ptr %0, i64 1240
  %468 = getelementptr inbounds i8, ptr %0, i64 1144
  %469 = load i64, ptr %468, align 8, !tbaa !105
  %470 = getelementptr inbounds i8, ptr %0, i64 1152
  %471 = load i64, ptr %470, align 8, !tbaa !106
  %472 = load i64, ptr %460, align 8, !tbaa !107
  %473 = load i64, ptr %461, align 8, !tbaa !108
  %474 = getelementptr inbounds i8, ptr %0, i64 32
  %475 = load i64, ptr %426, align 8, !tbaa !74
  %476 = icmp eq i64 %475, 3
  %477 = getelementptr inbounds i8, ptr %0, i64 38216
  tail call void @_ZN11alglib_impl13minsqpinitbufEPKNS_9ae_vectorES2_S2_S2_lPKNS_9ae_matrixES2_llllPKNS_19nlpstoppingcriteriaEbPNS_11minsqpstateEPNS_8ae_stateE(ptr noundef nonnull %462, ptr noundef nonnull %463, ptr noundef nonnull %464, ptr noundef nonnull %465, i64 noundef %.21406, ptr noundef nonnull %466, ptr noundef nonnull %467, i64 noundef %469, i64 noundef %471, i64 noundef %472, i64 noundef %473, ptr noundef nonnull %474, i1 noundef zeroext %476, ptr noundef nonnull %477, ptr noundef %1)
  %.pre1979 = load i64, ptr %426, align 8, !tbaa !74
  br label %478

478:                                              ; preds = %450, %453
  %479 = phi i64 [ %.pre1979, %453 ], [ %451, %450 ]
  %.31348 = phi i1 [ true, %453 ], [ %428, %450 ]
  %480 = and i64 %479, -2
  %switch1609 = icmp eq i64 %480, 4
  br i1 %switch1609, label %481, label %502

481:                                              ; preds = %478
  %482 = getelementptr inbounds i8, ptr %0, i64 416
  tail call void @_ZN11alglib_impl18xlcconverttosparseEPNS_18xlinearconstraintsEPNS_8ae_stateE(ptr noundef nonnull %482, ptr noundef %1)
  %483 = getelementptr inbounds i8, ptr %0, i64 160
  %484 = getelementptr inbounds i8, ptr %0, i64 224
  %485 = getelementptr inbounds i8, ptr %0, i64 96
  %486 = getelementptr inbounds i8, ptr %0, i64 4792
  %487 = getelementptr inbounds i8, ptr %0, i64 1368
  %488 = getelementptr inbounds i8, ptr %0, i64 1736
  %489 = getelementptr inbounds i8, ptr %0, i64 1800
  %490 = getelementptr inbounds i8, ptr %0, i64 1240
  %491 = getelementptr inbounds i8, ptr %0, i64 432
  %492 = load i64, ptr %491, align 8, !tbaa !70
  %493 = getelementptr inbounds i8, ptr %0, i64 424
  %494 = load i64, ptr %493, align 8, !tbaa !71
  %495 = add nsw i64 %494, %492
  %496 = getelementptr inbounds i8, ptr %0, i64 2240
  %497 = getelementptr inbounds i8, ptr %0, i64 2304
  %498 = getelementptr inbounds i8, ptr %0, i64 32
  %499 = load i64, ptr %426, align 8, !tbaa !74
  %500 = icmp eq i64 %499, 5
  %501 = getelementptr inbounds i8, ptr %0, i64 100960
  tail call void @_ZN11alglib_impl14minfsqpinitbufEPKNS_9ae_vectorES2_S2_S2_lPKNS_12sparsematrixES2_S2_S2_lS2_S2_lPKNS_19nlpstoppingcriteriaEbPNS_12minfsqpstateEPNS_8ae_stateE(ptr noundef nonnull %483, ptr noundef nonnull %484, ptr noundef nonnull %485, ptr noundef nonnull %486, i64 noundef %.21406, ptr noundef nonnull %487, ptr noundef nonnull %488, ptr noundef nonnull %489, ptr noundef nonnull %490, i64 noundef %495, ptr noundef nonnull %496, ptr noundef nonnull %497, i64 noundef %.21395, ptr noundef nonnull %498, i1 noundef zeroext %500, ptr noundef nonnull %501, ptr noundef %1)
  br label %502

502:                                              ; preds = %478, %481
  %.41349 = phi i1 [ true, %481 ], [ %.31348, %478 ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %.41349, ptr noundef nonnull @.str.1627, ptr noundef %1)
  br label %503

503:                                              ; preds = %1581, %502
  %.91524 = phi i64 [ %.81523, %502 ], [ %.29, %1581 ]
  %.11493 = phi i64 [ %.01492, %502 ], [ %.221514, %1581 ]
  %.71479 = phi i64 [ %.61478, %502 ], [ %.181490, %1581 ]
  %.41458 = phi i64 [ %.31457, %502 ], [ %.161470, %1581 ]
  %.41440 = phi i64 [ %.31439, %502 ], [ %.161452, %1581 ]
  %.51420 = phi i64 [ %.41419, %502 ], [ %.191434, %1581 ]
  %.31407 = phi i64 [ %.21406, %502 ], [ %.914131697, %1581 ]
  %.31396 = phi i64 [ %.21395, %502 ], [ %.9140216981716, %1581 ]
  %.11376 = phi i64 [ %.01375, %502 ], [ %.161391, %1581 ]
  tail call void @_ZN11alglib_implL25minnlc_clearrequestfieldsEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %504 = getelementptr inbounds i8, ptr %0, i64 16
  %505 = load i64, ptr %504, align 8, !tbaa !74
  %506 = icmp eq i64 %505, 0
  br i1 %506, label %507, label %547

507:                                              ; preds = %503
  %508 = getelementptr inbounds i8, ptr %0, i64 6184
  %509 = getelementptr inbounds i8, ptr %0, i64 164128
  %510 = getelementptr inbounds i8, ptr %0, i64 38208
  %511 = load i8, ptr %510, align 8, !tbaa !62, !range !59, !noundef !60
  %512 = trunc nuw i8 %511 to i1
  %513 = tail call noundef zeroext i1 @_ZN11alglib_impl15minauliterationEPNS_11minaulstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef nonnull %508, ptr noundef nonnull %509, i1 noundef zeroext %512, ptr noundef %1)
  br i1 %513, label %514, label %1582

514:                                              ; preds = %507
  %515 = getelementptr inbounds i8, ptr %0, i64 8144
  %516 = load i8, ptr %515, align 8, !tbaa !109, !range !59, !noundef !60
  %517 = trunc nuw i8 %516 to i1
  br i1 %517, label %518, label %528

518:                                              ; preds = %514
  %519 = getelementptr inbounds i8, ptr %0, i64 2368
  %520 = load i64, ptr %519, align 8, !tbaa !79
  %521 = icmp eq i64 %520, 2
  br i1 %521, label %.sink.split, label %522

522:                                              ; preds = %518
  %523 = icmp eq i64 %520, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %523, ptr noundef nonnull @.str.1628, ptr noundef %1)
  br label %.sink.split

.sink.split:                                      ; preds = %518, %522
  %.sink2001 = phi i64 [ 2384, %522 ], [ 2728, %518 ]
  %524 = getelementptr inbounds i8, ptr %0, i64 7640
  %525 = getelementptr inbounds i8, ptr %0, i64 6400
  %526 = getelementptr inbounds i8, ptr %0, i64 6464
  %527 = getelementptr inbounds i8, ptr %0, i64 %.sink2001
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %524, ptr noundef nonnull %525, ptr noundef nonnull %526, ptr noundef nonnull %527, ptr noundef %1)
  br label %528

528:                                              ; preds = %.sink.split, %514
  %.11338 = phi i64 [ 0, %514 ], [ 2, %.sink.split ]
  %529 = getelementptr inbounds i8, ptr %0, i64 8146
  %530 = load i8, ptr %529, align 2, !tbaa !110, !range !59, !noundef !60
  %531 = trunc nuw i8 %530 to i1
  br i1 %531, label %532, label %547

532:                                              ; preds = %528
  %533 = getelementptr inbounds i8, ptr %0, i64 2368
  %534 = load i64, ptr %533, align 8, !tbaa !79
  %535 = icmp eq i64 %534, 2
  %536 = getelementptr inbounds i8, ptr %0, i64 7640
  %537 = getelementptr inbounds i8, ptr %0, i64 6400
  %538 = getelementptr inbounds i8, ptr %0, i64 6464
  br i1 %535, label %539, label %541

539:                                              ; preds = %532
  %540 = getelementptr inbounds i8, ptr %0, i64 2616
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.31407, ptr noundef nonnull %540, ptr noundef %1)
  br label %.sink.split2002

541:                                              ; preds = %532
  %542 = icmp eq i64 %534, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %542, ptr noundef nonnull @.str.1629, ptr noundef %1)
  %543 = getelementptr inbounds i8, ptr %0, i64 2384
  br label %.sink.split2002

.sink.split2002:                                  ; preds = %541, %539
  %.sink2007 = phi ptr [ %540, %539 ], [ %543, %541 ]
  %.sink2005 = phi i64 [ 2680, %539 ], [ 2448, %541 ]
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %536, ptr noundef nonnull %537, ptr noundef nonnull %538, ptr noundef nonnull %.sink2007, ptr noundef %1)
  %544 = getelementptr inbounds i8, ptr %0, i64 8136
  %545 = load double, ptr %544, align 8, !tbaa !111
  %546 = getelementptr inbounds i8, ptr %0, i64 %.sink2005
  store double %545, ptr %546, align 8, !tbaa !61
  br label %547

547:                                              ; preds = %.sink.split2002, %528, %503
  %.61351 = phi i1 [ %517, %528 ], [ false, %503 ], [ true, %.sink.split2002 ]
  %.21339 = phi i64 [ %.11338, %528 ], [ 0, %503 ], [ -1, %.sink.split2002 ]
  %548 = load i64, ptr %504, align 8, !tbaa !74
  %549 = and i64 %548, -2
  %switch1611 = icmp eq i64 %549, 2
  br i1 %switch1611, label %550, label %590

550:                                              ; preds = %547
  %551 = getelementptr inbounds i8, ptr %0, i64 38216
  %552 = getelementptr inbounds i8, ptr %0, i64 164128
  %553 = getelementptr inbounds i8, ptr %0, i64 38208
  %554 = load i8, ptr %553, align 8, !tbaa !62, !range !59, !noundef !60
  %555 = trunc nuw i8 %554 to i1
  %556 = tail call noundef zeroext i1 @_ZN11alglib_impl15minsqpiterationEPNS_11minsqpstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef nonnull %551, ptr noundef nonnull %552, i1 noundef zeroext %555, ptr noundef %1)
  br i1 %556, label %557, label %1582

557:                                              ; preds = %550
  %558 = getelementptr inbounds i8, ptr %0, i64 38976
  %559 = load i8, ptr %558, align 8, !tbaa !112, !range !59, !noundef !60
  %560 = trunc nuw i8 %559 to i1
  br i1 %560, label %561, label %571

561:                                              ; preds = %557
  %562 = getelementptr inbounds i8, ptr %0, i64 2368
  %563 = load i64, ptr %562, align 8, !tbaa !79
  %564 = icmp eq i64 %563, 2
  br i1 %564, label %.sink.split2008, label %565

565:                                              ; preds = %561
  %566 = icmp eq i64 %563, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %566, ptr noundef nonnull @.str.1630, ptr noundef %1)
  br label %.sink.split2008

.sink.split2008:                                  ; preds = %561, %565
  %.sink2013 = phi i64 [ 2384, %565 ], [ 2728, %561 ]
  %567 = getelementptr inbounds i8, ptr %0, i64 38760
  %568 = getelementptr inbounds i8, ptr %0, i64 38600
  %569 = getelementptr inbounds i8, ptr %0, i64 38664
  %570 = getelementptr inbounds i8, ptr %0, i64 %.sink2013
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %567, ptr noundef nonnull %568, ptr noundef nonnull %569, ptr noundef nonnull %570, ptr noundef %1)
  br label %571

571:                                              ; preds = %.sink.split2008, %557
  %.71352 = phi i1 [ %.61351, %557 ], [ true, %.sink.split2008 ]
  %.31340 = phi i64 [ %.21339, %557 ], [ 2, %.sink.split2008 ]
  %572 = getelementptr inbounds i8, ptr %0, i64 38977
  %573 = load i8, ptr %572, align 1, !tbaa !113, !range !59, !noundef !60
  %574 = trunc nuw i8 %573 to i1
  br i1 %574, label %575, label %590

575:                                              ; preds = %571
  %576 = getelementptr inbounds i8, ptr %0, i64 2368
  %577 = load i64, ptr %576, align 8, !tbaa !79
  %578 = icmp eq i64 %577, 2
  %579 = getelementptr inbounds i8, ptr %0, i64 38760
  %580 = getelementptr inbounds i8, ptr %0, i64 38600
  %581 = getelementptr inbounds i8, ptr %0, i64 38664
  br i1 %578, label %582, label %584

582:                                              ; preds = %575
  %583 = getelementptr inbounds i8, ptr %0, i64 2616
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.31407, ptr noundef nonnull %583, ptr noundef %1)
  br label %.sink.split2014

584:                                              ; preds = %575
  %585 = icmp eq i64 %577, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %585, ptr noundef nonnull @.str.1631, ptr noundef %1)
  %586 = getelementptr inbounds i8, ptr %0, i64 2384
  br label %.sink.split2014

.sink.split2014:                                  ; preds = %584, %582
  %.sink2019 = phi ptr [ %583, %582 ], [ %586, %584 ]
  %.sink2017 = phi i64 [ 2680, %582 ], [ 2448, %584 ]
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %579, ptr noundef nonnull %580, ptr noundef nonnull %581, ptr noundef nonnull %.sink2019, ptr noundef %1)
  %587 = getelementptr inbounds i8, ptr %0, i64 38968
  %588 = load double, ptr %587, align 8, !tbaa !114
  %589 = getelementptr inbounds i8, ptr %0, i64 %.sink2017
  store double %588, ptr %589, align 8, !tbaa !61
  br label %590

590:                                              ; preds = %.sink.split2014, %547, %571
  %.81353 = phi i1 [ %.71352, %571 ], [ %.61351, %547 ], [ true, %.sink.split2014 ]
  %.41341 = phi i64 [ %.31340, %571 ], [ %.21339, %547 ], [ -1, %.sink.split2014 ]
  %591 = load i64, ptr %504, align 8, !tbaa !74
  %592 = and i64 %591, -2
  %switch1613 = icmp eq i64 %592, 4
  br i1 %switch1613, label %593, label %633

593:                                              ; preds = %590
  %594 = getelementptr inbounds i8, ptr %0, i64 100960
  %595 = getelementptr inbounds i8, ptr %0, i64 164128
  %596 = getelementptr inbounds i8, ptr %0, i64 38208
  %597 = load i8, ptr %596, align 8, !tbaa !62, !range !59, !noundef !60
  %598 = trunc nuw i8 %597 to i1
  %599 = tail call noundef zeroext i1 @_ZN11alglib_impl16minfsqpiterationEPNS_12minfsqpstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef nonnull %594, ptr noundef nonnull %595, i1 noundef zeroext %598, ptr noundef %1)
  br i1 %599, label %600, label %1582

600:                                              ; preds = %593
  %601 = getelementptr inbounds i8, ptr %0, i64 103128
  %602 = load i8, ptr %601, align 8, !tbaa !115, !range !59, !noundef !60
  %603 = trunc nuw i8 %602 to i1
  br i1 %603, label %604, label %614

604:                                              ; preds = %600
  %605 = getelementptr inbounds i8, ptr %0, i64 2368
  %606 = load i64, ptr %605, align 8, !tbaa !79
  %607 = icmp eq i64 %606, 2
  br i1 %607, label %.sink.split2020, label %608

608:                                              ; preds = %604
  %609 = icmp eq i64 %606, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %609, ptr noundef nonnull @.str.1630, ptr noundef %1)
  br label %.sink.split2020

.sink.split2020:                                  ; preds = %604, %608
  %.sink2025 = phi i64 [ 2384, %608 ], [ 2728, %604 ]
  %610 = getelementptr inbounds i8, ptr %0, i64 102624
  %611 = getelementptr inbounds i8, ptr %0, i64 101936
  %612 = getelementptr inbounds i8, ptr %0, i64 102000
  %613 = getelementptr inbounds i8, ptr %0, i64 %.sink2025
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %610, ptr noundef nonnull %611, ptr noundef nonnull %612, ptr noundef nonnull %613, ptr noundef %1)
  br label %614

614:                                              ; preds = %.sink.split2020, %600
  %.91354 = phi i1 [ %.81353, %600 ], [ true, %.sink.split2020 ]
  %.51342 = phi i64 [ %.41341, %600 ], [ 2, %.sink.split2020 ]
  %615 = getelementptr inbounds i8, ptr %0, i64 103129
  %616 = load i8, ptr %615, align 1, !tbaa !116, !range !59, !noundef !60
  %617 = trunc nuw i8 %616 to i1
  br i1 %617, label %618, label %633

618:                                              ; preds = %614
  %619 = getelementptr inbounds i8, ptr %0, i64 2368
  %620 = load i64, ptr %619, align 8, !tbaa !79
  %621 = icmp eq i64 %620, 2
  %622 = getelementptr inbounds i8, ptr %0, i64 102624
  %623 = getelementptr inbounds i8, ptr %0, i64 101936
  %624 = getelementptr inbounds i8, ptr %0, i64 102000
  br i1 %621, label %625, label %627

625:                                              ; preds = %618
  %626 = getelementptr inbounds i8, ptr %0, i64 2616
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.31407, ptr noundef nonnull %626, ptr noundef %1)
  br label %.thread

627:                                              ; preds = %618
  %628 = icmp eq i64 %620, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %628, ptr noundef nonnull @.str.1631, ptr noundef %1)
  %629 = getelementptr inbounds i8, ptr %0, i64 2384
  br label %.thread

.thread:                                          ; preds = %627, %625
  %.sink2030 = phi ptr [ %629, %627 ], [ %626, %625 ]
  %.sink2028 = phi i64 [ 2448, %627 ], [ 2680, %625 ]
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %622, ptr noundef nonnull %623, ptr noundef nonnull %624, ptr noundef nonnull %.sink2030, ptr noundef %1)
  %630 = getelementptr inbounds i8, ptr %0, i64 103120
  %631 = load double, ptr %630, align 8, !tbaa !117
  %632 = getelementptr inbounds i8, ptr %0, i64 %.sink2028
  store double %631, ptr %632, align 8, !tbaa !61
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.1632, ptr noundef %1)
  br label %634

633:                                              ; preds = %590, %614
  %.101355 = phi i1 [ %.91354, %614 ], [ %.81353, %590 ]
  %.61343 = phi i64 [ %.51342, %614 ], [ %.41341, %590 ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %.101355, ptr noundef nonnull @.str.1632, ptr noundef %1)
  %.not1585 = icmp eq i64 %.61343, -1
  br i1 %.not1585, label %634, label %649

634:                                              ; preds = %.thread, %633
  %635 = getelementptr inbounds i8, ptr %0, i64 64
  %636 = load i8, ptr %635, align 8, !tbaa !118, !range !59, !noundef !60
  %637 = trunc nuw i8 %636 to i1
  br i1 %637, label %638, label %switch.edge.thread1736

switch.edge.thread1736:                           ; preds = %634
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.1641, ptr noundef %1)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.1642, ptr noundef %1)
  br label %1581

638:                                              ; preds = %634
  %639 = getelementptr inbounds i8, ptr %0, i64 2368
  %640 = load i64, ptr %639, align 8, !tbaa !79
  %.not1586 = icmp eq i64 %640, 2
  br i1 %.not1586, label %641, label %644

641:                                              ; preds = %638
  %642 = getelementptr inbounds i8, ptr %0, i64 2608
  store i64 -1, ptr %642, align 8, !tbaa !89
  %643 = getelementptr inbounds i8, ptr %0, i64 2704
  store i64 %.31407, ptr %643, align 8, !tbaa !92
  br label %1800

644:                                              ; preds = %638
  %645 = icmp eq i64 %640, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %645, ptr noundef nonnull @.str.1633, ptr noundef %1)
  %646 = getelementptr inbounds i8, ptr %0, i64 2602
  store i8 1, ptr %646, align 2, !tbaa !119
  br label %1800

647:                                              ; preds = %38
  %648 = getelementptr inbounds i8, ptr %0, i64 2602
  store i8 0, ptr %648, align 2, !tbaa !119
  br label %649

649:                                              ; preds = %647, %38, %633
  %.111526 = phi i64 [ %.91524, %633 ], [ %.01515, %647 ], [ %.01515, %38 ]
  %.31495 = phi i64 [ %.11493, %633 ], [ %.01492, %647 ], [ %.01492, %38 ]
  %.91481 = phi i64 [ %.71479, %633 ], [ %.01472, %647 ], [ %.01472, %38 ]
  %.61460 = phi i64 [ %.41458, %633 ], [ %.01454, %647 ], [ %.01454, %38 ]
  %.61442 = phi i64 [ %.41440, %633 ], [ %.01436, %647 ], [ %.01436, %38 ]
  %.71422 = phi i64 [ %.51420, %633 ], [ %.01415, %647 ], [ %.01415, %38 ]
  %.51409 = phi i64 [ %.31407, %633 ], [ %.01404, %647 ], [ %.01404, %38 ]
  %.51398 = phi i64 [ %.31396, %633 ], [ %.01393, %647 ], [ %.01393, %38 ]
  %.31378 = phi i64 [ %.11376, %633 ], [ %.01375, %647 ], [ %.01375, %38 ]
  %.111356 = phi i8 [ 0, %633 ], [ 1, %647 ], [ 1, %38 ]
  %.8 = phi i64 [ %.61343, %633 ], [ %.01337, %647 ], [ %.01337, %38 ]
  %.2 = phi i8 [ 1, %633 ], [ %.0, %647 ], [ %.0, %38 ]
  %650 = icmp eq i64 %.8, 2
  br i1 %650, label %651, label %.thread1640

651:                                              ; preds = %649
  %652 = getelementptr inbounds i8, ptr %0, i64 80
  %653 = load double, ptr %652, align 8, !tbaa !83
  %654 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %653, double noundef 0.000000e+00)
  br i1 %654, label %655, label %.thread1653

655:                                              ; preds = %651
  %656 = getelementptr inbounds i8, ptr %0, i64 2368
  %657 = load i64, ptr %656, align 8, !tbaa !79
  %.not1596 = icmp eq i64 %657, 2
  %658 = add nsw i64 %.51398, 1
  br i1 %.not1596, label %659, label %825

659:                                              ; preds = %655
  %660 = getelementptr inbounds i8, ptr %0, i64 2608
  store i64 5, ptr %660, align 8, !tbaa !89
  %661 = getelementptr inbounds i8, ptr %0, i64 2688
  store i64 1, ptr %661, align 8, !tbaa !90
  %662 = getelementptr inbounds i8, ptr %0, i64 2696
  store i64 %658, ptr %662, align 8, !tbaa !91
  %663 = getelementptr inbounds i8, ptr %0, i64 2704
  store i64 %.51409, ptr %663, align 8, !tbaa !92
  %664 = getelementptr inbounds i8, ptr %0, i64 2712
  store i64 0, ptr %664, align 8, !tbaa !93
  %665 = getelementptr inbounds i8, ptr %0, i64 2720
  store i64 2, ptr %665, align 8, !tbaa !120
  %666 = mul nsw i64 %658, %.51409
  %667 = getelementptr inbounds i8, ptr %0, i64 2856
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %666, ptr noundef nonnull %667, ptr noundef %1)
  %668 = getelementptr inbounds i8, ptr %0, i64 3544
  tail call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %658, i64 noundef %.51409, ptr noundef nonnull %668, ptr noundef %1)
  %669 = getelementptr inbounds i8, ptr %0, i64 2728
  %670 = load i64, ptr %669, align 8, !tbaa !121
  %671 = load i64, ptr %665, align 8, !tbaa !120
  %672 = mul nsw i64 %671, 3
  %673 = add i64 %672, 1
  %674 = mul i64 %673, %.51409
  %675 = icmp sge i64 %670, %674
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %675, ptr noundef nonnull @.str.1634, ptr noundef %1)
  %676 = getelementptr inbounds i8, ptr %0, i64 4856
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.51409, ptr noundef nonnull %669, ptr noundef nonnull %676, ptr noundef %1)
  %677 = load i64, ptr %665, align 8, !tbaa !120
  %678 = mul i64 %.51409, 3
  %679 = mul i64 %678, %677
  tail call void @_ZN11alglib_impl6rsetvxEldPNS_9ae_vectorElPNS_8ae_stateE(i64 noundef %679, double noundef 0.000000e+00, ptr noundef nonnull %669, i64 noundef %.51409, ptr noundef %1)
  %.not1597.not1906 = icmp sgt i64 %.51409, 0
  br i1 %.not1597.not1906, label %.lr.ph1909, label %._crit_edge1910

.lr.ph1909:                                       ; preds = %659
  %680 = getelementptr inbounds i8, ptr %0, i64 4912
  %681 = getelementptr inbounds i8, ptr %0, i64 152
  %682 = getelementptr inbounds i8, ptr %0, i64 344
  %683 = getelementptr inbounds i8, ptr %0, i64 216
  %684 = getelementptr inbounds i8, ptr %0, i64 408
  %685 = getelementptr inbounds i8, ptr %0, i64 280
  %686 = getelementptr inbounds i8, ptr %0, i64 2784
  %687 = getelementptr inbounds i8, ptr %0, i64 169912
  br label %688

688:                                              ; preds = %.lr.ph1909, %817
  %.1014821907 = phi i64 [ 0, %.lr.ph1909 ], [ %818, %817 ]
  %689 = load ptr, ptr %680, align 8, !tbaa !56
  %690 = getelementptr inbounds double, ptr %689, i64 %.1014821907
  %691 = load double, ptr %690, align 8, !tbaa !61
  %692 = load ptr, ptr %681, align 8, !tbaa !56
  %693 = getelementptr inbounds double, ptr %692, i64 %.1014821907
  %694 = load double, ptr %693, align 8, !tbaa !61
  %695 = load double, ptr %652, align 8, !tbaa !83
  %696 = fneg double %694
  %697 = tail call double @llvm.fmuladd.f64(double %696, double %695, double %691)
  %698 = tail call double @llvm.fmuladd.f64(double %694, double %695, double %691)
  %699 = load ptr, ptr %682, align 8, !tbaa !56
  %700 = getelementptr inbounds i8, ptr %699, i64 %.1014821907
  %701 = load i8, ptr %700, align 1, !tbaa !58, !range !59, !noundef !60
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %708

703:                                              ; preds = %688
  %704 = load ptr, ptr %683, align 8, !tbaa !56
  %705 = getelementptr inbounds double, ptr %704, i64 %.1014821907
  %706 = load double, ptr %705, align 8, !tbaa !61
  %707 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %697, double noundef %706)
  br i1 %707, label %718, label %708

708:                                              ; preds = %703, %688
  %709 = load ptr, ptr %684, align 8, !tbaa !56
  %710 = getelementptr inbounds i8, ptr %709, i64 %.1014821907
  %711 = load i8, ptr %710, align 1, !tbaa !58, !range !59, !noundef !60
  %712 = trunc nuw i8 %711 to i1
  br i1 %712, label %713, label %763

713:                                              ; preds = %708
  %714 = load ptr, ptr %685, align 8, !tbaa !56
  %715 = getelementptr inbounds double, ptr %714, i64 %.1014821907
  %716 = load double, ptr %715, align 8, !tbaa !61
  %717 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %698, double noundef %716)
  br i1 %717, label %718, label %763

718:                                              ; preds = %713, %703
  %719 = load ptr, ptr %682, align 8, !tbaa !56
  %720 = getelementptr inbounds i8, ptr %719, i64 %.1014821907
  %721 = load i8, ptr %720, align 1, !tbaa !58, !range !59, !noundef !60
  %722 = trunc nuw i8 %721 to i1
  br i1 %722, label %723, label %732

723:                                              ; preds = %718
  %724 = load ptr, ptr %683, align 8, !tbaa !56
  %725 = getelementptr inbounds double, ptr %724, i64 %.1014821907
  %726 = load double, ptr %725, align 8, !tbaa !61
  %727 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %697, double noundef %726)
  br i1 %727, label %728, label %732

728:                                              ; preds = %723
  %729 = load ptr, ptr %683, align 8, !tbaa !56
  %730 = getelementptr inbounds double, ptr %729, i64 %.1014821907
  %731 = load double, ptr %730, align 8, !tbaa !61
  br label %732

732:                                              ; preds = %728, %723, %718
  %.21369 = phi double [ %731, %728 ], [ %697, %723 ], [ %697, %718 ]
  %733 = load ptr, ptr %684, align 8, !tbaa !56
  %734 = getelementptr inbounds i8, ptr %733, i64 %.1014821907
  %735 = load i8, ptr %734, align 1, !tbaa !58, !range !59, !noundef !60
  %736 = trunc nuw i8 %735 to i1
  br i1 %736, label %737, label %746

737:                                              ; preds = %732
  %738 = load ptr, ptr %685, align 8, !tbaa !56
  %739 = getelementptr inbounds double, ptr %738, i64 %.1014821907
  %740 = load double, ptr %739, align 8, !tbaa !61
  %741 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %698, double noundef %740)
  br i1 %741, label %742, label %746

742:                                              ; preds = %737
  %743 = load ptr, ptr %685, align 8, !tbaa !56
  %744 = getelementptr inbounds double, ptr %743, i64 %.1014821907
  %745 = load double, ptr %744, align 8, !tbaa !61
  br label %746

746:                                              ; preds = %742, %737, %732
  %.21361 = phi double [ %745, %742 ], [ %698, %737 ], [ %698, %732 ]
  %747 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.21369, double noundef %.21361)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %747, ptr noundef nonnull @.str.1635, ptr noundef %1)
  %748 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %.21369, double noundef %.21361)
  br i1 %748, label %817, label %749

749:                                              ; preds = %746
  %750 = load ptr, ptr %686, align 8, !tbaa !56
  %751 = load i64, ptr %665, align 8, !tbaa !120
  %752 = mul i64 %.1014821907, 3
  %753 = mul i64 %752, %751
  %754 = getelementptr double, ptr %750, i64 %.51409
  %755 = getelementptr double, ptr %754, i64 %753
  %756 = getelementptr i8, ptr %755, i64 24
  store double %.21361, ptr %756, align 8, !tbaa !61
  %757 = load ptr, ptr %686, align 8, !tbaa !56
  %758 = getelementptr double, ptr %757, i64 %.51409
  %759 = getelementptr double, ptr %758, i64 %753
  %760 = getelementptr i8, ptr %759, i64 32
  store double %.21369, ptr %760, align 8, !tbaa !61
  %761 = fsub double %.21361, %.21369
  %762 = fdiv double 1.000000e+00, %761
  br label %.sink.split2031

763:                                              ; preds = %713, %708
  %764 = load ptr, ptr %680, align 8, !tbaa !56
  %765 = getelementptr inbounds double, ptr %764, i64 %.1014821907
  %766 = load double, ptr %765, align 8, !tbaa !61
  %767 = load ptr, ptr %681, align 8, !tbaa !56
  %768 = getelementptr inbounds double, ptr %767, i64 %.1014821907
  %769 = load double, ptr %768, align 8, !tbaa !61
  %770 = fmul double %769, 5.000000e-01
  %771 = load double, ptr %652, align 8, !tbaa !83
  %772 = tail call double @llvm.fmuladd.f64(double %770, double %771, double %766)
  %773 = load ptr, ptr %686, align 8, !tbaa !56
  %774 = load i64, ptr %665, align 8, !tbaa !120
  %775 = mul i64 %.1014821907, 3
  %776 = mul i64 %775, %774
  %777 = getelementptr double, ptr %773, i64 %.51409
  %778 = getelementptr double, ptr %777, i64 %776
  store double %772, ptr %778, align 8, !tbaa !61
  %779 = load ptr, ptr %680, align 8, !tbaa !56
  %780 = getelementptr inbounds double, ptr %779, i64 %.1014821907
  %781 = load double, ptr %780, align 8, !tbaa !61
  %782 = load ptr, ptr %681, align 8, !tbaa !56
  %783 = getelementptr inbounds double, ptr %782, i64 %.1014821907
  %784 = load double, ptr %783, align 8, !tbaa !61
  %785 = load double, ptr %652, align 8, !tbaa !83
  %786 = fmul double %784, -5.000000e-01
  %787 = tail call double @llvm.fmuladd.f64(double %786, double %785, double %781)
  %788 = load ptr, ptr %686, align 8, !tbaa !56
  %789 = getelementptr double, ptr %788, i64 %.51409
  %790 = getelementptr double, ptr %789, i64 %776
  %791 = getelementptr i8, ptr %790, i64 8
  store double %787, ptr %791, align 8, !tbaa !61
  %792 = load ptr, ptr %686, align 8, !tbaa !56
  %793 = getelementptr double, ptr %792, i64 %.51409
  %794 = getelementptr double, ptr %793, i64 %776
  %795 = getelementptr i8, ptr %794, i64 16
  store double -8.000000e+00, ptr %795, align 8, !tbaa !61
  %796 = load ptr, ptr %686, align 8, !tbaa !56
  %797 = getelementptr double, ptr %796, i64 %.51409
  %798 = getelementptr double, ptr %797, i64 %776
  %799 = getelementptr i8, ptr %798, i64 24
  store double %698, ptr %799, align 8, !tbaa !61
  %800 = load ptr, ptr %686, align 8, !tbaa !56
  %801 = getelementptr double, ptr %800, i64 %.51409
  %802 = getelementptr double, ptr %801, i64 %776
  %803 = getelementptr i8, ptr %802, i64 32
  store double %697, ptr %803, align 8, !tbaa !61
  %804 = load double, ptr %652, align 8, !tbaa !83
  %805 = fmul double %804, 6.000000e+00
  %806 = load ptr, ptr %681, align 8, !tbaa !56
  %807 = getelementptr inbounds double, ptr %806, i64 %.1014821907
  %808 = load double, ptr %807, align 8, !tbaa !61
  %809 = fmul double %805, %808
  %810 = fdiv double -1.000000e+00, %809
  br label %.sink.split2031

.sink.split2031:                                  ; preds = %763, %749
  %.sink2039 = phi i64 [ %753, %749 ], [ %776, %763 ]
  %.sink2035 = phi double [ %762, %749 ], [ %810, %763 ]
  %.sink2034 = phi i64 [ 2, %749 ], [ 4, %763 ]
  %.31370.ph = phi double [ %.21369, %749 ], [ %697, %763 ]
  %.31362.ph = phi double [ %.21361, %749 ], [ %698, %763 ]
  %811 = load ptr, ptr %686, align 8, !tbaa !56
  %812 = getelementptr double, ptr %811, i64 %.51409
  %813 = getelementptr double, ptr %812, i64 %.sink2039
  %814 = getelementptr i8, ptr %813, i64 40
  store double %.sink2035, ptr %814, align 8, !tbaa !61
  %815 = load i64, ptr %687, align 8, !tbaa !122
  %816 = add nsw i64 %815, %.sink2034
  store i64 %816, ptr %687, align 8, !tbaa !122
  br label %817

817:                                              ; preds = %.sink.split2031, %746
  %.31370 = phi double [ %.21369, %746 ], [ %.31370.ph, %.sink.split2031 ]
  %.31362 = phi double [ %.21361, %746 ], [ %.31362.ph, %.sink.split2031 ]
  %818 = add nuw nsw i64 %.1014821907, 1
  %exitcond1974.not = icmp eq i64 %818, %.51409
  br i1 %exitcond1974.not, label %._crit_edge1910, label %688, !llvm.loop !123

._crit_edge1910:                                  ; preds = %817, %659
  %.101482.lcssa = phi i64 [ 0, %659 ], [ %.51409, %817 ]
  %.11368.lcssa = phi double [ %.01367, %659 ], [ %.31370, %817 ]
  %.11360.lcssa = phi double [ %.01359, %659 ], [ %.31362, %817 ]
  %819 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.51409, ptr noundef nonnull %676, ptr noundef nonnull %819, ptr noundef %1)
  br label %1800

820:                                              ; preds = %38
  %821 = getelementptr inbounds i8, ptr %0, i64 2601
  store i8 0, ptr %821, align 1, !tbaa !124
  %822 = getelementptr inbounds i8, ptr %0, i64 169912
  %823 = load i64, ptr %822, align 8, !tbaa !122
  %824 = add nsw i64 %823, 1
  store i64 %824, ptr %822, align 8, !tbaa !122
  br label %.loopexit1768

825:                                              ; preds = %655
  %826 = icmp eq i64 %657, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %826, ptr noundef nonnull @.str.1636, ptr noundef %1)
  %827 = getelementptr inbounds i8, ptr %0, i64 2520
  %828 = load i64, ptr %827, align 8, !tbaa !81
  %829 = icmp eq i64 %828, %658
  br i1 %829, label %830, label %834

830:                                              ; preds = %825
  %831 = getelementptr inbounds i8, ptr %0, i64 2528
  %832 = load i64, ptr %831, align 8, !tbaa !82
  %833 = icmp eq i64 %832, %.51409
  br label %834

834:                                              ; preds = %830, %825
  %835 = phi i1 [ false, %825 ], [ %833, %830 ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %835, ptr noundef nonnull @.str.1637, ptr noundef %1)
  %836 = getelementptr inbounds i8, ptr %0, i64 6120
  tail call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.51409, double noundef 0.000000e+00, ptr noundef nonnull %836, ptr noundef %1)
  %837 = getelementptr inbounds i8, ptr %0, i64 2601
  store i8 1, ptr %837, align 1, !tbaa !124
  %838 = getelementptr inbounds i8, ptr %0, i64 2384
  %839 = getelementptr inbounds i8, ptr %0, i64 4856
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.51409, ptr noundef nonnull %838, ptr noundef nonnull %839, ptr noundef %1)
  br label %840

840:                                              ; preds = %.loopexit, %834
  %.121527 = phi i64 [ %.111526, %834 ], [ %.161531, %.loopexit ]
  %.41496 = phi i64 [ %.31495, %834 ], [ %.51497, %.loopexit ]
  %.111483 = phi i64 [ 0, %834 ], [ %1125, %.loopexit ]
  %.71461 = phi i64 [ %.61460, %834 ], [ %.81462, %.loopexit ]
  %.71443 = phi i64 [ %.61442, %834 ], [ %.81444, %.loopexit ]
  %.81423 = phi i64 [ %.71422, %834 ], [ %.91424, %.loopexit ]
  %.61410 = phi i64 [ %.51409, %834 ], [ %.71411, %.loopexit ]
  %.61399 = phi i64 [ %.51398, %834 ], [ %.71400, %.loopexit ]
  %.41379 = phi i64 [ %.31378, %834 ], [ %.51380, %.loopexit ]
  %.41371 = phi double [ %.01367, %834 ], [ %.61373, %.loopexit ]
  %.41363 = phi double [ %.01359, %834 ], [ %.61365, %.loopexit ]
  %.121357 = phi i8 [ %.111356, %834 ], [ %.131358, %.loopexit ]
  %.9 = phi i64 [ 2, %834 ], [ %.10, %.loopexit ]
  %.3 = phi i8 [ 1, %834 ], [ %.4, %.loopexit ]
  %.not1598 = icmp slt i64 %.111483, %.61410
  %841 = getelementptr inbounds i8, ptr %0, i64 4856
  br i1 %.not1598, label %842, label %1126

842:                                              ; preds = %840
  %843 = getelementptr inbounds i8, ptr %0, i64 4912
  %844 = load ptr, ptr %843, align 8, !tbaa !56
  %845 = getelementptr inbounds double, ptr %844, i64 %.111483
  %846 = load double, ptr %845, align 8, !tbaa !61
  %847 = getelementptr inbounds i8, ptr %0, i64 152
  %848 = load ptr, ptr %847, align 8, !tbaa !56
  %849 = getelementptr inbounds double, ptr %848, i64 %.111483
  %850 = load double, ptr %849, align 8, !tbaa !61
  %851 = getelementptr inbounds i8, ptr %0, i64 80
  %852 = load double, ptr %851, align 8, !tbaa !83
  %853 = fneg double %850
  %854 = tail call double @llvm.fmuladd.f64(double %853, double %852, double %846)
  %855 = tail call double @llvm.fmuladd.f64(double %850, double %852, double %846)
  %856 = getelementptr inbounds i8, ptr %0, i64 344
  %857 = load ptr, ptr %856, align 8, !tbaa !56
  %858 = getelementptr inbounds i8, ptr %857, i64 %.111483
  %859 = load i8, ptr %858, align 1, !tbaa !58, !range !59, !noundef !60
  %860 = trunc nuw i8 %859 to i1
  br i1 %860, label %861, label %867

861:                                              ; preds = %842
  %862 = getelementptr inbounds i8, ptr %0, i64 216
  %863 = load ptr, ptr %862, align 8, !tbaa !56
  %864 = getelementptr inbounds double, ptr %863, i64 %.111483
  %865 = load double, ptr %864, align 8, !tbaa !61
  %866 = fcmp olt double %854, %865
  br i1 %866, label %.thread1638, label %867

867:                                              ; preds = %861, %842
  %868 = getelementptr inbounds i8, ptr %0, i64 408
  %869 = load ptr, ptr %868, align 8, !tbaa !56
  %870 = getelementptr inbounds i8, ptr %869, i64 %.111483
  %871 = load i8, ptr %870, align 1, !tbaa !58, !range !59, !noundef !60
  %872 = trunc nuw i8 %871 to i1
  br i1 %872, label %873, label %999

873:                                              ; preds = %867
  %874 = getelementptr inbounds i8, ptr %0, i64 280
  %875 = load ptr, ptr %874, align 8, !tbaa !56
  %876 = getelementptr inbounds double, ptr %875, i64 %.111483
  %877 = load double, ptr %876, align 8, !tbaa !61
  %878 = fcmp ogt double %855, %877
  br i1 %878, label %879, label %999

879:                                              ; preds = %873
  br i1 %860, label %..thread1638_crit_edge, label %887

..thread1638_crit_edge:                           ; preds = %879
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 216
  %.pre1982 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !56
  %.phi.trans.insert1983 = getelementptr inbounds double, ptr %.pre1982, i64 %.111483
  %.pre1984 = load double, ptr %.phi.trans.insert1983, align 8, !tbaa !61
  br label %.thread1638

.thread1638:                                      ; preds = %..thread1638_crit_edge, %861
  %880 = phi double [ %.pre1984, %..thread1638_crit_edge ], [ %865, %861 ]
  %881 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %854, double noundef %880)
  br i1 %881, label %882, label %887

882:                                              ; preds = %.thread1638
  %883 = getelementptr inbounds i8, ptr %0, i64 216
  %884 = load ptr, ptr %883, align 8, !tbaa !56
  %885 = getelementptr inbounds double, ptr %884, i64 %.111483
  %886 = load double, ptr %885, align 8, !tbaa !61
  br label %887

887:                                              ; preds = %882, %.thread1638, %879
  %.51372 = phi double [ %886, %882 ], [ %854, %.thread1638 ], [ %854, %879 ]
  %888 = getelementptr inbounds i8, ptr %0, i64 408
  %889 = load ptr, ptr %888, align 8, !tbaa !56
  %890 = getelementptr inbounds i8, ptr %889, i64 %.111483
  %891 = load i8, ptr %890, align 1, !tbaa !58, !range !59, !noundef !60
  %892 = trunc nuw i8 %891 to i1
  br i1 %892, label %893, label %903

893:                                              ; preds = %887
  %894 = getelementptr inbounds i8, ptr %0, i64 280
  %895 = load ptr, ptr %894, align 8, !tbaa !56
  %896 = getelementptr inbounds double, ptr %895, i64 %.111483
  %897 = load double, ptr %896, align 8, !tbaa !61
  %898 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %855, double noundef %897)
  br i1 %898, label %899, label %903

899:                                              ; preds = %893
  %900 = load ptr, ptr %894, align 8, !tbaa !56
  %901 = getelementptr inbounds double, ptr %900, i64 %.111483
  %902 = load double, ptr %901, align 8, !tbaa !61
  br label %903

903:                                              ; preds = %899, %893, %887
  %.51364 = phi double [ %902, %899 ], [ %855, %893 ], [ %855, %887 ]
  %904 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.51372, double noundef %.51364)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %904, ptr noundef nonnull @.str.1635, ptr noundef %1)
  %905 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %.51372, double noundef %.51364)
  br i1 %905, label %.preheader, label %931

.preheader:                                       ; preds = %903
  %.not15991902 = icmp slt i64 %.61399, 0
  br i1 %.not15991902, label %.loopexit, label %.lr.ph1904

.lr.ph1904:                                       ; preds = %.preheader
  %906 = getelementptr inbounds i8, ptr %0, i64 2592
  %907 = add nuw i64 %.61399, 1
  %908 = add nuw i64 %.61399, 1
  %xtraiter2103 = and i64 %908, 3
  %909 = icmp ult i64 %.61399, 3
  br i1 %909, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph1904.new

.lr.ph1904.new:                                   ; preds = %.lr.ph1904
  %unroll_iter2106 = and i64 %908, -4
  br label %910

910:                                              ; preds = %910, %.lr.ph1904.new
  %.1315281903 = phi i64 [ 0, %.lr.ph1904.new ], [ %930, %910 ]
  %niter2107 = phi i64 [ 0, %.lr.ph1904.new ], [ %niter2107.next.3, %910 ]
  %911 = load ptr, ptr %906, align 8, !tbaa !56
  %912 = getelementptr inbounds ptr, ptr %911, i64 %.1315281903
  %913 = load ptr, ptr %912, align 8, !tbaa !95
  %914 = getelementptr inbounds double, ptr %913, i64 %.111483
  store double 0.000000e+00, ptr %914, align 8, !tbaa !61
  %915 = or disjoint i64 %.1315281903, 1
  %916 = load ptr, ptr %906, align 8, !tbaa !56
  %917 = getelementptr inbounds ptr, ptr %916, i64 %915
  %918 = load ptr, ptr %917, align 8, !tbaa !95
  %919 = getelementptr inbounds double, ptr %918, i64 %.111483
  store double 0.000000e+00, ptr %919, align 8, !tbaa !61
  %920 = or disjoint i64 %.1315281903, 2
  %921 = load ptr, ptr %906, align 8, !tbaa !56
  %922 = getelementptr inbounds ptr, ptr %921, i64 %920
  %923 = load ptr, ptr %922, align 8, !tbaa !95
  %924 = getelementptr inbounds double, ptr %923, i64 %.111483
  store double 0.000000e+00, ptr %924, align 8, !tbaa !61
  %925 = or disjoint i64 %.1315281903, 3
  %926 = load ptr, ptr %906, align 8, !tbaa !56
  %927 = getelementptr inbounds ptr, ptr %926, i64 %925
  %928 = load ptr, ptr %927, align 8, !tbaa !95
  %929 = getelementptr inbounds double, ptr %928, i64 %.111483
  store double 0.000000e+00, ptr %929, align 8, !tbaa !61
  %930 = add nuw i64 %.1315281903, 4
  %niter2107.next.3 = add i64 %niter2107, 4
  %niter2107.ncmp.3 = icmp eq i64 %niter2107.next.3, %unroll_iter2106
  br i1 %niter2107.ncmp.3, label %.loopexit.loopexit.unr-lcssa, label %910, !llvm.loop !125

931:                                              ; preds = %903
  %932 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.61410, ptr noundef nonnull %841, ptr noundef nonnull %932, ptr noundef %1)
  %933 = getelementptr inbounds i8, ptr %0, i64 2440
  %934 = load ptr, ptr %933, align 8, !tbaa !56
  %935 = getelementptr inbounds double, ptr %934, i64 %.111483
  store double %.51372, ptr %935, align 8, !tbaa !61
  br label %1800

936:                                              ; preds = %38
  %937 = add nsw i64 %.01393, 1
  %938 = getelementptr inbounds i8, ptr %0, i64 2456
  %939 = getelementptr inbounds i8, ptr %0, i64 5112
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %937, ptr noundef nonnull %938, ptr noundef nonnull %939, ptr noundef %1)
  %940 = getelementptr inbounds i8, ptr %0, i64 4856
  %941 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01404, ptr noundef nonnull %940, ptr noundef nonnull %941, ptr noundef %1)
  %942 = getelementptr inbounds i8, ptr %0, i64 2440
  %943 = load ptr, ptr %942, align 8, !tbaa !56
  %944 = getelementptr inbounds double, ptr %943, i64 %.01472
  store double %.01359, ptr %944, align 8, !tbaa !61
  br label %1800

945:                                              ; preds = %38
  %946 = add i64 %.01393, 1
  %947 = getelementptr inbounds i8, ptr %0, i64 2456
  %948 = getelementptr inbounds i8, ptr %0, i64 5176
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %946, ptr noundef nonnull %947, ptr noundef nonnull %948, ptr noundef %1)
  %.not15761784 = icmp slt i64 %.01393, 0
  br i1 %.not15761784, label %.._crit_edge1788_crit_edge, label %.lr.ph1787

.._crit_edge1788_crit_edge:                       ; preds = %945
  %.pre1986 = fsub double %.01359, %.01367
  br label %._crit_edge1788

.lr.ph1787:                                       ; preds = %945
  %949 = getelementptr inbounds i8, ptr %0, i64 5232
  %950 = getelementptr inbounds i8, ptr %0, i64 5168
  %951 = fsub double %.01359, %.01367
  %952 = getelementptr inbounds i8, ptr %0, i64 2592
  %953 = icmp eq i64 %.01393, 0
  br i1 %953, label %._crit_edge1788.loopexit.unr-lcssa, label %.lr.ph1787.new

.lr.ph1787.new:                                   ; preds = %.lr.ph1787
  %954 = add nuw i64 %.01393, 1
  %unroll_iter = and i64 %954, -2
  br label %955

955:                                              ; preds = %955, %.lr.ph1787.new
  %.1415291785 = phi i64 [ 0, %.lr.ph1787.new ], [ %981, %955 ]
  %niter = phi i64 [ 0, %.lr.ph1787.new ], [ %niter.next.1, %955 ]
  %956 = load ptr, ptr %949, align 8, !tbaa !56
  %957 = getelementptr inbounds double, ptr %956, i64 %.1415291785
  %958 = load double, ptr %957, align 8, !tbaa !61
  %959 = load ptr, ptr %950, align 8, !tbaa !56
  %960 = getelementptr inbounds double, ptr %959, i64 %.1415291785
  %961 = load double, ptr %960, align 8, !tbaa !61
  %962 = fsub double %958, %961
  %963 = fdiv double %962, %951
  %964 = load ptr, ptr %952, align 8, !tbaa !56
  %965 = getelementptr inbounds ptr, ptr %964, i64 %.1415291785
  %966 = load ptr, ptr %965, align 8, !tbaa !95
  %967 = getelementptr inbounds double, ptr %966, i64 %.01472
  store double %963, ptr %967, align 8, !tbaa !61
  %968 = or disjoint i64 %.1415291785, 1
  %969 = load ptr, ptr %949, align 8, !tbaa !56
  %970 = getelementptr inbounds double, ptr %969, i64 %968
  %971 = load double, ptr %970, align 8, !tbaa !61
  %972 = load ptr, ptr %950, align 8, !tbaa !56
  %973 = getelementptr inbounds double, ptr %972, i64 %968
  %974 = load double, ptr %973, align 8, !tbaa !61
  %975 = fsub double %971, %974
  %976 = fdiv double %975, %951
  %977 = load ptr, ptr %952, align 8, !tbaa !56
  %978 = getelementptr inbounds ptr, ptr %977, i64 %968
  %979 = load ptr, ptr %978, align 8, !tbaa !95
  %980 = getelementptr inbounds double, ptr %979, i64 %.01472
  store double %976, ptr %980, align 8, !tbaa !61
  %981 = add nuw i64 %.1415291785, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge1788.loopexit.unr-lcssa, label %955, !llvm.loop !126

._crit_edge1788.loopexit.unr-lcssa:               ; preds = %955, %.lr.ph1787
  %.1415291785.unr = phi i64 [ 0, %.lr.ph1787 ], [ %981, %955 ]
  %982 = and i64 %.01393, 1
  %lcmp.mod.not.not = icmp eq i64 %982, 0
  br i1 %lcmp.mod.not.not, label %._crit_edge1788.loopexit.epilog-lcssa, label %._crit_edge1788

._crit_edge1788.loopexit.epilog-lcssa:            ; preds = %._crit_edge1788.loopexit.unr-lcssa
  %983 = load ptr, ptr %949, align 8, !tbaa !56
  %984 = getelementptr inbounds double, ptr %983, i64 %.1415291785.unr
  %985 = load double, ptr %984, align 8, !tbaa !61
  %986 = load ptr, ptr %950, align 8, !tbaa !56
  %987 = getelementptr inbounds double, ptr %986, i64 %.1415291785.unr
  %988 = load double, ptr %987, align 8, !tbaa !61
  %989 = fsub double %985, %988
  %990 = fdiv double %989, %951
  %991 = load ptr, ptr %952, align 8, !tbaa !56
  %992 = getelementptr inbounds ptr, ptr %991, i64 %.1415291785.unr
  %993 = load ptr, ptr %992, align 8, !tbaa !95
  %994 = getelementptr inbounds double, ptr %993, i64 %.01472
  store double %990, ptr %994, align 8, !tbaa !61
  br label %._crit_edge1788

._crit_edge1788:                                  ; preds = %._crit_edge1788.loopexit.epilog-lcssa, %._crit_edge1788.loopexit.unr-lcssa, %.._crit_edge1788_crit_edge
  %.pre-phi1987 = phi double [ %.pre1986, %.._crit_edge1788_crit_edge ], [ %951, %._crit_edge1788.loopexit.unr-lcssa ], [ %951, %._crit_edge1788.loopexit.epilog-lcssa ]
  %.141529.lcssa = phi i64 [ 0, %.._crit_edge1788_crit_edge ], [ %946, %._crit_edge1788.loopexit.unr-lcssa ], [ %946, %._crit_edge1788.loopexit.epilog-lcssa ]
  %995 = getelementptr inbounds i8, ptr %0, i64 169912
  %996 = load i64, ptr %995, align 8, !tbaa !122
  %997 = add nsw i64 %996, 2
  store i64 %997, ptr %995, align 8, !tbaa !122
  %998 = fdiv double 0x3CF6849B86A12B9C, %.pre-phi1987
  br label %.loopexit.sink.split

999:                                              ; preds = %867, %873
  %1000 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.61410, ptr noundef nonnull %841, ptr noundef nonnull %1000, ptr noundef %1)
  %1001 = getelementptr inbounds i8, ptr %0, i64 2440
  %1002 = load ptr, ptr %1001, align 8, !tbaa !56
  %1003 = getelementptr inbounds double, ptr %1002, i64 %.111483
  %1004 = load double, ptr %1003, align 8, !tbaa !61
  %1005 = load ptr, ptr %847, align 8, !tbaa !56
  %1006 = getelementptr inbounds double, ptr %1005, i64 %.111483
  %1007 = load double, ptr %1006, align 8, !tbaa !61
  %1008 = load double, ptr %851, align 8, !tbaa !83
  %1009 = fneg double %1007
  %1010 = tail call double @llvm.fmuladd.f64(double %1009, double %1008, double %1004)
  store double %1010, ptr %1003, align 8, !tbaa !61
  br label %1800

1011:                                             ; preds = %38
  %1012 = add nsw i64 %.01393, 1
  %1013 = getelementptr inbounds i8, ptr %0, i64 2456
  %1014 = getelementptr inbounds i8, ptr %0, i64 5048
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1012, ptr noundef nonnull %1013, ptr noundef nonnull %1014, ptr noundef %1)
  %1015 = getelementptr inbounds i8, ptr %0, i64 4856
  %1016 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01404, ptr noundef nonnull %1015, ptr noundef nonnull %1016, ptr noundef %1)
  %1017 = getelementptr inbounds i8, ptr %0, i64 2440
  %1018 = load ptr, ptr %1017, align 8, !tbaa !56
  %1019 = getelementptr inbounds double, ptr %1018, i64 %.01472
  %1020 = load double, ptr %1019, align 8, !tbaa !61
  %1021 = getelementptr inbounds i8, ptr %0, i64 152
  %1022 = load ptr, ptr %1021, align 8, !tbaa !56
  %1023 = getelementptr inbounds double, ptr %1022, i64 %.01472
  %1024 = load double, ptr %1023, align 8, !tbaa !61
  %1025 = getelementptr inbounds i8, ptr %0, i64 80
  %1026 = load double, ptr %1025, align 8, !tbaa !83
  %1027 = fmul double %1024, -5.000000e-01
  %1028 = tail call double @llvm.fmuladd.f64(double %1027, double %1026, double %1020)
  store double %1028, ptr %1019, align 8, !tbaa !61
  br label %1800

1029:                                             ; preds = %38
  %1030 = add nsw i64 %.01393, 1
  %1031 = getelementptr inbounds i8, ptr %0, i64 2456
  %1032 = getelementptr inbounds i8, ptr %0, i64 5112
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1030, ptr noundef nonnull %1031, ptr noundef nonnull %1032, ptr noundef %1)
  %1033 = getelementptr inbounds i8, ptr %0, i64 4856
  %1034 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01404, ptr noundef nonnull %1033, ptr noundef nonnull %1034, ptr noundef %1)
  %1035 = getelementptr inbounds i8, ptr %0, i64 2440
  %1036 = load ptr, ptr %1035, align 8, !tbaa !56
  %1037 = getelementptr inbounds double, ptr %1036, i64 %.01472
  %1038 = load double, ptr %1037, align 8, !tbaa !61
  %1039 = getelementptr inbounds i8, ptr %0, i64 152
  %1040 = load ptr, ptr %1039, align 8, !tbaa !56
  %1041 = getelementptr inbounds double, ptr %1040, i64 %.01472
  %1042 = load double, ptr %1041, align 8, !tbaa !61
  %1043 = fmul double %1042, 5.000000e-01
  %1044 = getelementptr inbounds i8, ptr %0, i64 80
  %1045 = load double, ptr %1044, align 8, !tbaa !83
  %1046 = tail call double @llvm.fmuladd.f64(double %1043, double %1045, double %1038)
  store double %1046, ptr %1037, align 8, !tbaa !61
  br label %1800

1047:                                             ; preds = %38
  %1048 = add nsw i64 %.01393, 1
  %1049 = getelementptr inbounds i8, ptr %0, i64 2456
  %1050 = getelementptr inbounds i8, ptr %0, i64 5176
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1048, ptr noundef nonnull %1049, ptr noundef nonnull %1050, ptr noundef %1)
  %1051 = getelementptr inbounds i8, ptr %0, i64 4856
  %1052 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01404, ptr noundef nonnull %1051, ptr noundef nonnull %1052, ptr noundef %1)
  %1053 = getelementptr inbounds i8, ptr %0, i64 2440
  %1054 = load ptr, ptr %1053, align 8, !tbaa !56
  %1055 = getelementptr inbounds double, ptr %1054, i64 %.01472
  %1056 = load double, ptr %1055, align 8, !tbaa !61
  %1057 = getelementptr inbounds i8, ptr %0, i64 152
  %1058 = load ptr, ptr %1057, align 8, !tbaa !56
  %1059 = getelementptr inbounds double, ptr %1058, i64 %.01472
  %1060 = load double, ptr %1059, align 8, !tbaa !61
  %1061 = getelementptr inbounds i8, ptr %0, i64 80
  %1062 = load double, ptr %1061, align 8, !tbaa !83
  %1063 = tail call double @llvm.fmuladd.f64(double %1060, double %1062, double %1056)
  store double %1063, ptr %1055, align 8, !tbaa !61
  br label %1800

1064:                                             ; preds = %38
  %1065 = add i64 %.01393, 1
  %1066 = getelementptr inbounds i8, ptr %0, i64 2456
  %1067 = getelementptr inbounds i8, ptr %0, i64 5240
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1065, ptr noundef nonnull %1066, ptr noundef nonnull %1067, ptr noundef %1)
  %.not15751781 = icmp slt i64 %.01393, 0
  br i1 %.not15751781, label %._crit_edge, label %.lr.ph1783

.lr.ph1783:                                       ; preds = %1064
  %1068 = getelementptr inbounds i8, ptr %0, i64 5232
  %1069 = getelementptr inbounds i8, ptr %0, i64 5168
  %1070 = getelementptr inbounds i8, ptr %0, i64 5296
  %1071 = getelementptr inbounds i8, ptr %0, i64 5104
  %1072 = getelementptr inbounds i8, ptr %0, i64 80
  %1073 = getelementptr inbounds i8, ptr %0, i64 152
  %1074 = getelementptr inbounds i8, ptr %0, i64 2592
  br label %1075

1075:                                             ; preds = %.lr.ph1783, %1075
  %.1515301782 = phi i64 [ 0, %.lr.ph1783 ], [ %1103, %1075 ]
  %1076 = load ptr, ptr %1068, align 8, !tbaa !56
  %1077 = getelementptr inbounds double, ptr %1076, i64 %.1515301782
  %1078 = load double, ptr %1077, align 8, !tbaa !61
  %1079 = load ptr, ptr %1069, align 8, !tbaa !56
  %1080 = getelementptr inbounds double, ptr %1079, i64 %.1515301782
  %1081 = load double, ptr %1080, align 8, !tbaa !61
  %1082 = fsub double %1078, %1081
  %1083 = load ptr, ptr %1070, align 8, !tbaa !56
  %1084 = getelementptr inbounds double, ptr %1083, i64 %.1515301782
  %1085 = load double, ptr %1084, align 8, !tbaa !61
  %1086 = load ptr, ptr %1071, align 8, !tbaa !56
  %1087 = getelementptr inbounds double, ptr %1086, i64 %.1515301782
  %1088 = load double, ptr %1087, align 8, !tbaa !61
  %1089 = fsub double %1085, %1088
  %1090 = fneg double %1089
  %1091 = tail call double @llvm.fmuladd.f64(double %1082, double 8.000000e+00, double %1090)
  %1092 = load double, ptr %1072, align 8, !tbaa !83
  %1093 = fmul double %1092, 6.000000e+00
  %1094 = load ptr, ptr %1073, align 8, !tbaa !56
  %1095 = getelementptr inbounds double, ptr %1094, i64 %.01472
  %1096 = load double, ptr %1095, align 8, !tbaa !61
  %1097 = fmul double %1093, %1096
  %1098 = fdiv double %1091, %1097
  %1099 = load ptr, ptr %1074, align 8, !tbaa !56
  %1100 = getelementptr inbounds ptr, ptr %1099, i64 %.1515301782
  %1101 = load ptr, ptr %1100, align 8, !tbaa !95
  %1102 = getelementptr inbounds double, ptr %1101, i64 %.01472
  store double %1098, ptr %1102, align 8, !tbaa !61
  %1103 = add nuw i64 %.1515301782, 1
  %exitcond1953.not = icmp eq i64 %.1515301782, %.01393
  br i1 %exitcond1953.not, label %._crit_edge, label %1075, !llvm.loop !127

._crit_edge:                                      ; preds = %1075, %1064
  %.151530.lcssa = phi i64 [ 0, %1064 ], [ %1065, %1075 ]
  %1104 = getelementptr inbounds i8, ptr %0, i64 169912
  %1105 = load i64, ptr %1104, align 8, !tbaa !122
  %1106 = add nsw i64 %1105, 4
  store i64 %1106, ptr %1104, align 8, !tbaa !122
  %1107 = getelementptr inbounds i8, ptr %0, i64 80
  %1108 = load double, ptr %1107, align 8, !tbaa !83
  %1109 = fmul double %1108, 3.000000e+00
  %1110 = getelementptr inbounds i8, ptr %0, i64 152
  %1111 = load ptr, ptr %1110, align 8, !tbaa !56
  %1112 = getelementptr inbounds double, ptr %1111, i64 %.01472
  %1113 = load double, ptr %1112, align 8, !tbaa !61
  %1114 = fmul double %1109, %1113
  %1115 = fdiv double 0x3D16849B86A12B9C, %1114
  %1116 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1115, ptr noundef %1)
  br label %.loopexit.sink.split

.loopexit.sink.split:                             ; preds = %._crit_edge, %._crit_edge1788
  %.sink2041 = phi double [ %998, %._crit_edge1788 ], [ %1116, %._crit_edge ]
  %.161531.ph = phi i64 [ %.141529.lcssa, %._crit_edge1788 ], [ %.151530.lcssa, %._crit_edge ]
  %1117 = getelementptr inbounds i8, ptr %0, i64 6176
  %1118 = load ptr, ptr %1117, align 8, !tbaa !56
  %1119 = getelementptr inbounds double, ptr %1118, i64 %.01472
  store double %.sink2041, ptr %1119, align 8, !tbaa !61
  br label %.loopexit

.loopexit.loopexit.unr-lcssa:                     ; preds = %910, %.lr.ph1904
  %.1315281903.unr = phi i64 [ 0, %.lr.ph1904 ], [ %930, %910 ]
  %lcmp.mod2105.not = icmp eq i64 %xtraiter2103, 0
  br i1 %lcmp.mod2105.not, label %.loopexit, label %.epil.preheader2102

.epil.preheader2102:                              ; preds = %.loopexit.loopexit.unr-lcssa, %.epil.preheader2102
  %.1315281903.epil = phi i64 [ %1124, %.epil.preheader2102 ], [ %.1315281903.unr, %.loopexit.loopexit.unr-lcssa ]
  %epil.iter2104 = phi i64 [ %epil.iter2104.next, %.epil.preheader2102 ], [ 0, %.loopexit.loopexit.unr-lcssa ]
  %1120 = load ptr, ptr %906, align 8, !tbaa !56
  %1121 = getelementptr inbounds ptr, ptr %1120, i64 %.1315281903.epil
  %1122 = load ptr, ptr %1121, align 8, !tbaa !95
  %1123 = getelementptr inbounds double, ptr %1122, i64 %.111483
  store double 0.000000e+00, ptr %1123, align 8, !tbaa !61
  %1124 = add nuw i64 %.1315281903.epil, 1
  %epil.iter2104.next = add i64 %epil.iter2104, 1
  %epil.iter2104.cmp.not = icmp eq i64 %epil.iter2104.next, %xtraiter2103
  br i1 %epil.iter2104.cmp.not, label %.loopexit, label %.epil.preheader2102, !llvm.loop !128

.loopexit:                                        ; preds = %.loopexit.loopexit.unr-lcssa, %.epil.preheader2102, %.loopexit.sink.split, %.preheader
  %.161531 = phi i64 [ 0, %.preheader ], [ %.161531.ph, %.loopexit.sink.split ], [ %907, %.epil.preheader2102 ], [ %907, %.loopexit.loopexit.unr-lcssa ]
  %.51497 = phi i64 [ %.41496, %.preheader ], [ %.01492, %.loopexit.sink.split ], [ %.41496, %.epil.preheader2102 ], [ %.41496, %.loopexit.loopexit.unr-lcssa ]
  %.121484 = phi i64 [ %.111483, %.preheader ], [ %.01472, %.loopexit.sink.split ], [ %.111483, %.epil.preheader2102 ], [ %.111483, %.loopexit.loopexit.unr-lcssa ]
  %.81462 = phi i64 [ %.71461, %.preheader ], [ %.01454, %.loopexit.sink.split ], [ %.71461, %.epil.preheader2102 ], [ %.71461, %.loopexit.loopexit.unr-lcssa ]
  %.81444 = phi i64 [ %.71443, %.preheader ], [ %.01436, %.loopexit.sink.split ], [ %.71443, %.epil.preheader2102 ], [ %.71443, %.loopexit.loopexit.unr-lcssa ]
  %.91424 = phi i64 [ %.81423, %.preheader ], [ %.01415, %.loopexit.sink.split ], [ %.81423, %.epil.preheader2102 ], [ %.81423, %.loopexit.loopexit.unr-lcssa ]
  %.71411 = phi i64 [ %.61410, %.preheader ], [ %.01404, %.loopexit.sink.split ], [ %.61410, %.epil.preheader2102 ], [ %.61410, %.loopexit.loopexit.unr-lcssa ]
  %.71400 = phi i64 [ %.61399, %.preheader ], [ %.01393, %.loopexit.sink.split ], [ %.61399, %.epil.preheader2102 ], [ %.61399, %.loopexit.loopexit.unr-lcssa ]
  %.51380 = phi i64 [ %.41379, %.preheader ], [ %.01375, %.loopexit.sink.split ], [ %.41379, %.epil.preheader2102 ], [ %.41379, %.loopexit.loopexit.unr-lcssa ]
  %.61373 = phi double [ %.51372, %.preheader ], [ %.01367, %.loopexit.sink.split ], [ %.51372, %.epil.preheader2102 ], [ %.51372, %.loopexit.loopexit.unr-lcssa ]
  %.61365 = phi double [ %.51364, %.preheader ], [ %.01359, %.loopexit.sink.split ], [ %.51364, %.epil.preheader2102 ], [ %.51364, %.loopexit.loopexit.unr-lcssa ]
  %.131358 = phi i8 [ %.121357, %.preheader ], [ %.01345, %.loopexit.sink.split ], [ %.121357, %.epil.preheader2102 ], [ %.121357, %.loopexit.loopexit.unr-lcssa ]
  %.10 = phi i64 [ %.9, %.preheader ], [ %.01337, %.loopexit.sink.split ], [ %.9, %.epil.preheader2102 ], [ %.9, %.loopexit.loopexit.unr-lcssa ]
  %.4 = phi i8 [ %.3, %.preheader ], [ %.0, %.loopexit.sink.split ], [ %.3, %.epil.preheader2102 ], [ %.3, %.loopexit.loopexit.unr-lcssa ]
  %1125 = add nsw i64 %.121484, 1
  br label %840

1126:                                             ; preds = %840
  %1127 = getelementptr inbounds i8, ptr %0, i64 2384
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.61410, ptr noundef nonnull %841, ptr noundef nonnull %1127, ptr noundef %1)
  br label %1800

1128:                                             ; preds = %38
  %1129 = getelementptr inbounds i8, ptr %0, i64 2601
  store i8 0, ptr %1129, align 1, !tbaa !124
  %1130 = getelementptr inbounds i8, ptr %0, i64 169912
  %1131 = load i64, ptr %1130, align 8, !tbaa !122
  %1132 = add nsw i64 %1131, 1
  store i64 %1132, ptr %1130, align 8, !tbaa !122
  %1133 = add i64 %.01393, 1
  %1134 = getelementptr inbounds i8, ptr %0, i64 6056
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1133, ptr noundef nonnull %1134, ptr noundef %1)
  %.not15721771 = icmp slt i64 %.01393, 0
  br i1 %.not15721771, label %.loopexit1768, label %.lr.ph

.lr.ph:                                           ; preds = %1128
  %1135 = getelementptr inbounds i8, ptr %0, i64 2512
  %1136 = getelementptr inbounds i8, ptr %0, i64 6112
  br label %1163

.preheader1767:                                   ; preds = %1163
  br i1 %.not15721771, label %.loopexit1768, label %.preheader1766.lr.ph

.preheader1766.lr.ph:                             ; preds = %.preheader1767
  %.not1574.not1773 = icmp sgt i64 %.01404, 0
  %1137 = getelementptr inbounds i8, ptr %0, i64 2592
  %1138 = getelementptr inbounds i8, ptr %0, i64 6112
  %1139 = getelementptr inbounds i8, ptr %0, i64 6176
  br i1 %.not1574.not1773, label %.preheader1766.us, label %.loopexit1768

.preheader1766.us:                                ; preds = %.preheader1766.lr.ph, %._crit_edge.us
  %.1815331777.us = phi i64 [ %1162, %._crit_edge.us ], [ 0, %.preheader1766.lr.ph ]
  br label %1140

1140:                                             ; preds = %.preheader1766.us, %1160
  %.714991774.us = phi i64 [ 0, %.preheader1766.us ], [ %1161, %1160 ]
  %1141 = load ptr, ptr %1137, align 8, !tbaa !56
  %1142 = getelementptr inbounds ptr, ptr %1141, i64 %.1815331777.us
  %1143 = load ptr, ptr %1142, align 8, !tbaa !95
  %1144 = getelementptr inbounds double, ptr %1143, i64 %.714991774.us
  %1145 = load double, ptr %1144, align 8, !tbaa !61
  %1146 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1145, ptr noundef %1)
  %1147 = load ptr, ptr %1138, align 8, !tbaa !56
  %1148 = getelementptr inbounds double, ptr %1147, i64 %.1815331777.us
  %1149 = load double, ptr %1148, align 8, !tbaa !61
  %1150 = load ptr, ptr %1139, align 8, !tbaa !56
  %1151 = getelementptr inbounds double, ptr %1150, i64 %.714991774.us
  %1152 = load double, ptr %1151, align 8, !tbaa !61
  %1153 = fmul double %1149, %1152
  %1154 = fcmp ugt double %1146, %1153
  br i1 %1154, label %1160, label %1155

1155:                                             ; preds = %1140
  %1156 = load ptr, ptr %1137, align 8, !tbaa !56
  %1157 = getelementptr inbounds ptr, ptr %1156, i64 %.1815331777.us
  %1158 = load ptr, ptr %1157, align 8, !tbaa !95
  %1159 = getelementptr inbounds double, ptr %1158, i64 %.714991774.us
  store double 0.000000e+00, ptr %1159, align 8, !tbaa !61
  br label %1160

1160:                                             ; preds = %1155, %1140
  %1161 = add nuw nsw i64 %.714991774.us, 1
  %exitcond1951.not = icmp eq i64 %1161, %.01404
  br i1 %exitcond1951.not, label %._crit_edge.us, label %1140, !llvm.loop !129

._crit_edge.us:                                   ; preds = %1160
  %1162 = add nuw i64 %.1815331777.us, 1
  %exitcond1952.not = icmp eq i64 %.1815331777.us, %.01393
  br i1 %exitcond1952.not, label %.loopexit1768, label %.preheader1766.us, !llvm.loop !130

1163:                                             ; preds = %.lr.ph, %1163
  %.1715321772 = phi i64 [ 0, %.lr.ph ], [ %1170, %1163 ]
  %1164 = load ptr, ptr %1135, align 8, !tbaa !56
  %1165 = getelementptr inbounds double, ptr %1164, i64 %.1715321772
  %1166 = load double, ptr %1165, align 8, !tbaa !61
  %1167 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1166, ptr noundef %1)
  %1168 = load ptr, ptr %1136, align 8, !tbaa !56
  %1169 = getelementptr inbounds double, ptr %1168, i64 %.1715321772
  store double %1167, ptr %1169, align 8, !tbaa !61
  %1170 = add nuw i64 %.1715321772, 1
  %exitcond.not = icmp eq i64 %.1715321772, %.01393
  br i1 %exitcond.not, label %.preheader1767, label %1163, !llvm.loop !131

.loopexit1768:                                    ; preds = %._crit_edge.us, %1128, %.preheader1766.lr.ph, %.preheader1767, %820
  %.201535 = phi i64 [ %.01515, %820 ], [ 0, %.preheader1767 ], [ %1133, %.preheader1766.lr.ph ], [ 0, %1128 ], [ %1133, %._crit_edge.us ]
  %.91501 = phi i64 [ %.01492, %820 ], [ %.01492, %.preheader1767 ], [ 0, %.preheader1766.lr.ph ], [ %.01492, %1128 ], [ %.01404, %._crit_edge.us ]
  %1171 = icmp eq i64 %.01337, 2
  br i1 %1171, label %.thread1653, label %.thread1640

.thread1653:                                      ; preds = %651, %.loopexit1768
  %.51676 = phi i8 [ %.0, %.loopexit1768 ], [ %.2, %651 ]
  %.141675 = phi i8 [ 1, %.loopexit1768 ], [ %.111356, %651 ]
  %.613811674 = phi i64 [ %.01375, %.loopexit1768 ], [ %.31378, %651 ]
  %.814011673 = phi i64 [ %.01393, %.loopexit1768 ], [ %.51398, %651 ]
  %.814121672 = phi i64 [ %.01404, %.loopexit1768 ], [ %.51409, %651 ]
  %.1014251671 = phi i64 [ %.01415, %.loopexit1768 ], [ %.71422, %651 ]
  %.914451670 = phi i64 [ %.01436, %.loopexit1768 ], [ %.61442, %651 ]
  %.914631669 = phi i64 [ %.01454, %.loopexit1768 ], [ %.61460, %651 ]
  %.1314851668 = phi i64 [ %.01472, %.loopexit1768 ], [ %.91481, %651 ]
  %.915011667 = phi i64 [ %.91501, %.loopexit1768 ], [ %.31495, %651 ]
  %.2015351666 = phi i64 [ %.201535, %.loopexit1768 ], [ %.111526, %651 ]
  %1172 = getelementptr inbounds i8, ptr %0, i64 80
  %1173 = load double, ptr %1172, align 8, !tbaa !83
  %1174 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1173, double noundef 0.000000e+00)
  br i1 %1174, label %1176, label %switch.edge.thread

switch.edge.thread:                               ; preds = %.thread1653
  %1175 = trunc nuw i8 %.141675 to i1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1175, ptr noundef nonnull @.str.1641, ptr noundef %1)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.1642, ptr noundef %1)
  br label %1238

1176:                                             ; preds = %.thread1653
  %1177 = getelementptr inbounds i8, ptr %0, i64 2376
  %1178 = load i8, ptr %1177, align 8, !tbaa !88, !range !59, !noundef !60
  %1179 = trunc nuw i8 %1178 to i1
  %1180 = getelementptr inbounds i8, ptr %0, i64 2368
  %1181 = load i64, ptr %1180, align 8, !tbaa !79
  %1182 = icmp eq i64 %1181, 2
  br i1 %1179, label %1183, label %1204

1183:                                             ; preds = %1176
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1182, ptr noundef nonnull @.str.1638, ptr noundef %1)
  %1184 = getelementptr inbounds i8, ptr %0, i64 2608
  store i64 1, ptr %1184, align 8, !tbaa !89
  %1185 = getelementptr inbounds i8, ptr %0, i64 2688
  store i64 1, ptr %1185, align 8, !tbaa !90
  %1186 = add nsw i64 %.814011673, 1
  %1187 = getelementptr inbounds i8, ptr %0, i64 2696
  store i64 %1186, ptr %1187, align 8, !tbaa !91
  %1188 = getelementptr inbounds i8, ptr %0, i64 2704
  store i64 %.814121672, ptr %1188, align 8, !tbaa !92
  %1189 = getelementptr inbounds i8, ptr %0, i64 2712
  store i64 0, ptr %1189, align 8, !tbaa !93
  %1190 = getelementptr inbounds i8, ptr %0, i64 3248
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1190, i8 -1, i64 16, i1 false)
  br label %1800

1191:                                             ; preds = %38
  %1192 = getelementptr inbounds i8, ptr %0, i64 2920
  %1193 = tail call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %1192, ptr noundef %1)
  %1194 = getelementptr inbounds i8, ptr %0, i64 2688
  %1195 = load i64, ptr %1194, align 8, !tbaa !90
  %1196 = getelementptr inbounds i8, ptr %0, i64 2696
  %1197 = load i64, ptr %1196, align 8, !tbaa !91
  %1198 = mul nsw i64 %1197, %1195
  %1199 = icmp eq i64 %1193, %1198
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1199, ptr noundef nonnull @.str.1639, ptr noundef %1)
  %1200 = tail call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %1192, ptr noundef %1)
  %1201 = getelementptr inbounds i8, ptr %0, i64 2704
  %1202 = load i64, ptr %1201, align 8, !tbaa !92
  %1203 = icmp eq i64 %1200, %1202
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1203, ptr noundef nonnull @.str.1639, ptr noundef %1)
  br label %1229

1204:                                             ; preds = %1176
  %1205 = add nsw i64 %.814011673, 1
  br i1 %1182, label %1206, label %1215

1206:                                             ; preds = %1204
  %1207 = getelementptr inbounds i8, ptr %0, i64 2608
  store i64 2, ptr %1207, align 8, !tbaa !89
  %1208 = getelementptr inbounds i8, ptr %0, i64 2688
  store i64 1, ptr %1208, align 8, !tbaa !90
  %1209 = getelementptr inbounds i8, ptr %0, i64 2696
  store i64 %1205, ptr %1209, align 8, !tbaa !91
  %1210 = getelementptr inbounds i8, ptr %0, i64 2704
  store i64 %.814121672, ptr %1210, align 8, !tbaa !92
  %1211 = getelementptr inbounds i8, ptr %0, i64 2712
  store i64 0, ptr %1211, align 8, !tbaa !93
  %1212 = mul nsw i64 %.814121672, %1205
  %1213 = getelementptr inbounds i8, ptr %0, i64 2856
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1212, ptr noundef nonnull %1213, ptr noundef %1)
  %1214 = getelementptr inbounds i8, ptr %0, i64 3544
  tail call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1205, i64 noundef %.814121672, ptr noundef nonnull %1214, ptr noundef %1)
  br label %1800

1215:                                             ; preds = %1204
  %1216 = icmp eq i64 %1181, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1216, ptr noundef nonnull @.str.1640, ptr noundef %1)
  %1217 = getelementptr inbounds i8, ptr %0, i64 2520
  %1218 = load i64, ptr %1217, align 8, !tbaa !81
  %1219 = icmp eq i64 %1218, %1205
  br i1 %1219, label %1220, label %1224

1220:                                             ; preds = %1215
  %1221 = getelementptr inbounds i8, ptr %0, i64 2528
  %1222 = load i64, ptr %1221, align 8, !tbaa !82
  %1223 = icmp eq i64 %1222, %.814121672
  br label %1224

1224:                                             ; preds = %1220, %1215
  %1225 = phi i1 [ false, %1215 ], [ %1223, %1220 ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1225, ptr noundef nonnull @.str.1637, ptr noundef %1)
  %1226 = getelementptr inbounds i8, ptr %0, i64 2600
  store i8 1, ptr %1226, align 8, !tbaa !101
  br label %1800

1227:                                             ; preds = %38
  %1228 = getelementptr inbounds i8, ptr %0, i64 2600
  store i8 0, ptr %1228, align 8, !tbaa !101
  br label %1229

1229:                                             ; preds = %38, %1227, %1191
  %1230 = getelementptr inbounds i8, ptr %0, i64 169912
  %1231 = load i64, ptr %1230, align 8, !tbaa !122
  %1232 = add nsw i64 %1231, 1
  store i64 %1232, ptr %1230, align 8, !tbaa !122
  br label %.thread1640

.thread1640:                                      ; preds = %649, %.loopexit1768, %1229
  %.211536 = phi i64 [ %.201535, %.loopexit1768 ], [ %.01515, %1229 ], [ %.111526, %649 ]
  %.101502 = phi i64 [ %.91501, %.loopexit1768 ], [ %.01492, %1229 ], [ %.31495, %649 ]
  %.141486 = phi i64 [ %.01472, %.loopexit1768 ], [ %.01472, %1229 ], [ %.91481, %649 ]
  %.101464 = phi i64 [ %.01454, %.loopexit1768 ], [ %.01454, %1229 ], [ %.61460, %649 ]
  %.101446 = phi i64 [ %.01436, %.loopexit1768 ], [ %.01436, %1229 ], [ %.61442, %649 ]
  %.111426 = phi i64 [ %.01415, %.loopexit1768 ], [ %.01415, %1229 ], [ %.71422, %649 ]
  %.91413 = phi i64 [ %.01404, %.loopexit1768 ], [ %.01404, %1229 ], [ %.51409, %649 ]
  %.91402 = phi i64 [ %.01393, %.loopexit1768 ], [ %.01393, %1229 ], [ %.51398, %649 ]
  %.71382 = phi i64 [ %.01375, %.loopexit1768 ], [ %.01375, %1229 ], [ %.31378, %649 ]
  %.15 = phi i8 [ 1, %.loopexit1768 ], [ 1, %1229 ], [ %.111356, %649 ]
  %.12 = phi i64 [ %.01337, %.loopexit1768 ], [ %.01337, %1229 ], [ %.8, %649 ]
  %.6 = phi i8 [ %.0, %.loopexit1768 ], [ %.0, %1229 ], [ %.2, %649 ]
  %1233 = trunc nuw i8 %.15 to i1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1233, ptr noundef nonnull @.str.1641, ptr noundef %1)
  %1234 = icmp eq i64 %.12, -1
  %switch.tableidx = add i64 %.12, 1
  %1235 = icmp ult i64 %switch.tableidx, 4
  %switch.cast = trunc i64 %switch.tableidx to i4
  %switch.downshift = lshr i4 -3, %switch.cast
  %switch.masked = trunc i4 %switch.downshift to i1
  %1236 = select i1 %1235, i1 %switch.masked, i1 false
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1236, ptr noundef nonnull @.str.1642, ptr noundef %1)
  %1237 = icmp eq i64 %.12, 2
  br i1 %1237, label %1238, label %1581

1238:                                             ; preds = %switch.edge.thread, %.thread1640
  %.21153616901723 = phi i64 [ %.2015351666, %switch.edge.thread ], [ %.211536, %.thread1640 ]
  %.10150216911722 = phi i64 [ %.915011667, %switch.edge.thread ], [ %.101502, %.thread1640 ]
  %.14148616921721 = phi i64 [ %.1314851668, %switch.edge.thread ], [ %.141486, %.thread1640 ]
  %.10146416931720 = phi i64 [ %.914631669, %switch.edge.thread ], [ %.101464, %.thread1640 ]
  %.10144616941719 = phi i64 [ %.914451670, %switch.edge.thread ], [ %.101446, %.thread1640 ]
  %.11142616951718 = phi i64 [ %.1014251671, %switch.edge.thread ], [ %.111426, %.thread1640 ]
  %.9141316961717 = phi i64 [ %.814121672, %switch.edge.thread ], [ %.91413, %.thread1640 ]
  %.9140216981715 = phi i64 [ %.814011673, %switch.edge.thread ], [ %.91402, %.thread1640 ]
  %.7138216991714 = phi i64 [ %.613811674, %switch.edge.thread ], [ %.71382, %.thread1640 ]
  %.617011713 = phi i8 [ %.51676, %switch.edge.thread ], [ %.6, %.thread1640 ]
  %1239 = phi i1 [ false, %switch.edge.thread ], [ %1234, %.thread1640 ]
  %1240 = getelementptr inbounds i8, ptr %0, i64 16
  %1241 = load i64, ptr %1240, align 8, !tbaa !74
  %1242 = icmp eq i64 %1241, 0
  br i1 %1242, label %1243, label %1326

1243:                                             ; preds = %1238
  %1244 = getelementptr inbounds i8, ptr %0, i64 2368
  %1245 = load i64, ptr %1244, align 8, !tbaa !79
  %1246 = add i64 %1245, -1
  %spec.select1605 = icmp ult i64 %1246, 2
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %spec.select1605, ptr noundef nonnull @.str.1643, ptr noundef %1)
  %1247 = load i64, ptr %1244, align 8, !tbaa !79
  %1248 = icmp eq i64 %1247, 2
  %1249 = add nsw i64 %.9140216981715, 1
  %1250 = getelementptr inbounds i8, ptr %0, i64 7704
  %. = select i1 %1248, i64 2792, i64 2456
  %1251 = getelementptr inbounds i8, ptr %0, i64 %.
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1249, ptr noundef nonnull %1251, ptr noundef nonnull %1250, ptr noundef %1)
  %1252 = trunc nuw i8 %.617011713 to i1
  br i1 %1252, label %1253, label %1322

1253:                                             ; preds = %1243
  %1254 = getelementptr inbounds i8, ptr %0, i64 7768
  %1255 = getelementptr inbounds i8, ptr %0, i64 8088
  store i64 1, ptr %1255, align 8, !tbaa !132
  %1256 = add i64 %.9140216981715, 1
  %1257 = getelementptr inbounds i8, ptr %0, i64 8096
  store i64 %1256, ptr %1257, align 8, !tbaa !133
  %1258 = getelementptr inbounds i8, ptr %0, i64 8104
  store i64 %.9141316961717, ptr %1258, align 8, !tbaa !134
  %1259 = add nsw i64 %.9140216981715, 2
  %1260 = getelementptr inbounds i8, ptr %0, i64 7896
  tail call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1259, ptr noundef nonnull %1260, ptr noundef %1)
  %1261 = getelementptr inbounds i8, ptr %0, i64 7952
  %1262 = load ptr, ptr %1261, align 8, !tbaa !56
  store i64 0, ptr %1262, align 8, !tbaa !57
  %.not15871859 = icmp slt i64 %.9140216981715, 0
  br i1 %.not15871859, label %._crit_edge1865, label %.lr.ph1864

.lr.ph1864:                                       ; preds = %1253
  %1263 = getelementptr inbounds i8, ptr %0, i64 7832
  %.not1593.not1847 = icmp sgt i64 %.9141316961717, 0
  %1264 = getelementptr inbounds i8, ptr %0, i64 2592
  %1265 = getelementptr inbounds i8, ptr %0, i64 7888
  %1266 = getelementptr inbounds i8, ptr %0, i64 152
  %1267 = getelementptr inbounds i8, ptr %0, i64 7824
  %1268 = getelementptr inbounds i8, ptr %0, i64 2912
  br label %1269

1269:                                             ; preds = %.lr.ph1864, %.loopexit1755
  %.813831862 = phi i64 [ 0, %.lr.ph1864 ], [ %.131388, %.loopexit1755 ]
  %.2215371860 = phi i64 [ 0, %.lr.ph1864 ], [ %1319, %.loopexit1755 ]
  %1270 = add nsw i64 %.813831862, %.9141316961717
  tail call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1270, ptr noundef nonnull %1263, ptr noundef %1)
  tail call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1270, ptr noundef nonnull %1254, ptr noundef %1)
  %1271 = load i64, ptr %1244, align 8, !tbaa !79
  %1272 = icmp eq i64 %1271, 2
  br i1 %1272, label %.preheader1754, label %.preheader1756

.preheader1756:                                   ; preds = %1269
  br i1 %.not1593.not1847, label %.lr.ph1850, label %.loopexit1755

.preheader1754:                                   ; preds = %1269
  br i1 %.not1593.not1847, label %.lr.ph1856, label %.loopexit1755

.lr.ph1856:                                       ; preds = %.preheader1754
  %1273 = mul nsw i64 %.2215371860, %.9141316961717
  br label %1274

1274:                                             ; preds = %.lr.ph1856, %1293
  %.913841855 = phi i64 [ %.813831862, %.lr.ph1856 ], [ %.101385, %1293 ]
  %.1215041854 = phi i64 [ 0, %.lr.ph1856 ], [ %1294, %1293 ]
  %1275 = load ptr, ptr %1268, align 8, !tbaa !56
  %1276 = add nsw i64 %.1215041854, %1273
  %1277 = getelementptr inbounds double, ptr %1275, i64 %1276
  %1278 = load double, ptr %1277, align 8, !tbaa !61
  %1279 = fcmp une double %1278, 0.000000e+00
  br i1 %1279, label %1280, label %1293

1280:                                             ; preds = %1274
  %1281 = load ptr, ptr %1265, align 8, !tbaa !56
  %1282 = getelementptr inbounds i64, ptr %1281, i64 %.913841855
  store i64 %.1215041854, ptr %1282, align 8, !tbaa !57
  %1283 = load ptr, ptr %1268, align 8, !tbaa !56
  %1284 = getelementptr inbounds double, ptr %1283, i64 %1276
  %1285 = load double, ptr %1284, align 8, !tbaa !61
  %1286 = load ptr, ptr %1266, align 8, !tbaa !56
  %1287 = getelementptr inbounds double, ptr %1286, i64 %.1215041854
  %1288 = load double, ptr %1287, align 8, !tbaa !61
  %1289 = fmul double %1285, %1288
  %1290 = load ptr, ptr %1267, align 8, !tbaa !56
  %1291 = getelementptr inbounds double, ptr %1290, i64 %.913841855
  store double %1289, ptr %1291, align 8, !tbaa !61
  %1292 = add nsw i64 %.913841855, 1
  br label %1293

1293:                                             ; preds = %1274, %1280
  %.101385 = phi i64 [ %1292, %1280 ], [ %.913841855, %1274 ]
  %1294 = add nuw nsw i64 %.1215041854, 1
  %exitcond1968.not = icmp eq i64 %1294, %.9141316961717
  br i1 %exitcond1968.not, label %.loopexit1755, label %1274, !llvm.loop !135

.lr.ph1850:                                       ; preds = %.preheader1756, %1316
  %.1113861849 = phi i64 [ %.121387, %1316 ], [ %.813831862, %.preheader1756 ]
  %.1315051848 = phi i64 [ %1317, %1316 ], [ 0, %.preheader1756 ]
  %1295 = load ptr, ptr %1264, align 8, !tbaa !56
  %1296 = getelementptr inbounds ptr, ptr %1295, i64 %.2215371860
  %1297 = load ptr, ptr %1296, align 8, !tbaa !95
  %1298 = getelementptr inbounds double, ptr %1297, i64 %.1315051848
  %1299 = load double, ptr %1298, align 8, !tbaa !61
  %1300 = fcmp une double %1299, 0.000000e+00
  br i1 %1300, label %1301, label %1316

1301:                                             ; preds = %.lr.ph1850
  %1302 = load ptr, ptr %1265, align 8, !tbaa !56
  %1303 = getelementptr inbounds i64, ptr %1302, i64 %.1113861849
  store i64 %.1315051848, ptr %1303, align 8, !tbaa !57
  %1304 = load ptr, ptr %1264, align 8, !tbaa !56
  %1305 = getelementptr inbounds ptr, ptr %1304, i64 %.2215371860
  %1306 = load ptr, ptr %1305, align 8, !tbaa !95
  %1307 = getelementptr inbounds double, ptr %1306, i64 %.1315051848
  %1308 = load double, ptr %1307, align 8, !tbaa !61
  %1309 = load ptr, ptr %1266, align 8, !tbaa !56
  %1310 = getelementptr inbounds double, ptr %1309, i64 %.1315051848
  %1311 = load double, ptr %1310, align 8, !tbaa !61
  %1312 = fmul double %1308, %1311
  %1313 = load ptr, ptr %1267, align 8, !tbaa !56
  %1314 = getelementptr inbounds double, ptr %1313, i64 %.1113861849
  store double %1312, ptr %1314, align 8, !tbaa !61
  %1315 = add nsw i64 %.1113861849, 1
  br label %1316

1316:                                             ; preds = %.lr.ph1850, %1301
  %.121387 = phi i64 [ %1315, %1301 ], [ %.1113861849, %.lr.ph1850 ]
  %1317 = add nuw nsw i64 %.1315051848, 1
  %exitcond1967.not = icmp eq i64 %1317, %.9141316961717
  br i1 %exitcond1967.not, label %.loopexit1755, label %.lr.ph1850, !llvm.loop !136

.loopexit1755:                                    ; preds = %1316, %1293, %.preheader1756, %.preheader1754
  %.141506 = phi i64 [ 0, %.preheader1754 ], [ 0, %.preheader1756 ], [ %.9141316961717, %1293 ], [ %.9141316961717, %1316 ]
  %.131388 = phi i64 [ %.813831862, %.preheader1754 ], [ %.813831862, %.preheader1756 ], [ %.101385, %1293 ], [ %.121387, %1316 ]
  %1318 = load ptr, ptr %1261, align 8, !tbaa !56
  %1319 = add nuw i64 %.2215371860, 1
  %1320 = getelementptr inbounds i64, ptr %1318, i64 %1319
  store i64 %.131388, ptr %1320, align 8, !tbaa !57
  %exitcond1969.not = icmp eq i64 %.2215371860, %.9140216981715
  br i1 %exitcond1969.not, label %._crit_edge1865, label %1269, !llvm.loop !137

._crit_edge1865:                                  ; preds = %.loopexit1755, %1253
  %.221537.lcssa = phi i64 [ 0, %1253 ], [ %1256, %.loopexit1755 ]
  %.111503.lcssa = phi i64 [ %.10150216911722, %1253 ], [ %.141506, %.loopexit1755 ]
  %.81383.lcssa = phi i64 [ 0, %1253 ], [ %.131388, %.loopexit1755 ]
  %1321 = getelementptr inbounds i8, ptr %0, i64 8120
  store i64 %.81383.lcssa, ptr %1321, align 8, !tbaa !138
  tail call void @_ZN11alglib_impl15sparseinitduidxEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %1254, ptr noundef %1)
  br label %1326

1322:                                             ; preds = %1243
  %1323 = getelementptr inbounds i8, ptr %0, i64 2920
  %1324 = getelementptr inbounds i8, ptr %0, i64 7768
  tail call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %1323, ptr noundef nonnull %1324, ptr noundef %1)
  %1325 = getelementptr inbounds i8, ptr %0, i64 96
  tail call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1324, ptr noundef nonnull %1325, ptr noundef %1)
  br label %1326

1326:                                             ; preds = %._crit_edge1865, %1322, %1238
  %.24 = phi i64 [ %.21153616901723, %1238 ], [ %.221537.lcssa, %._crit_edge1865 ], [ %.21153616901723, %1322 ]
  %.161508 = phi i64 [ %.10150216911722, %1238 ], [ %.111503.lcssa, %._crit_edge1865 ], [ %.10150216911722, %1322 ]
  %.151390 = phi i64 [ %.7138216991714, %1238 ], [ %.81383.lcssa, %._crit_edge1865 ], [ %.7138216991714, %1322 ]
  %.16 = phi i1 [ %1239, %1238 ], [ true, %._crit_edge1865 ], [ true, %1322 ]
  %1327 = load i64, ptr %1240, align 8, !tbaa !74
  %1328 = and i64 %1327, -2
  %switch1615 = icmp eq i64 %1328, 2
  br i1 %switch1615, label %1329, label %.loopexit1751

1329:                                             ; preds = %1326
  %1330 = getelementptr inbounds i8, ptr %0, i64 2368
  %1331 = load i64, ptr %1330, align 8, !tbaa !79
  %1332 = icmp eq i64 %1331, 2
  br i1 %1332, label %1333, label %1500

1333:                                             ; preds = %1329
  %1334 = getelementptr inbounds i8, ptr %0, i64 2848
  %1335 = load ptr, ptr %1334, align 8, !tbaa !56
  %1336 = load double, ptr %1335, align 8, !tbaa !61
  %1337 = getelementptr inbounds i8, ptr %0, i64 38880
  %1338 = load ptr, ptr %1337, align 8, !tbaa !56
  store double %1336, ptr %1338, align 8, !tbaa !61
  %1339 = trunc nuw i8 %.617011713 to i1
  br i1 %1339, label %1383, label %1340

1340:                                             ; preds = %1333
  %1341 = getelementptr inbounds i8, ptr %0, i64 38888
  tail call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, double noundef 0.000000e+00, ptr noundef nonnull %1341, i64 noundef 0, ptr noundef %1)
  %1342 = getelementptr inbounds i8, ptr %0, i64 3104
  %1343 = load ptr, ptr %1342, align 8, !tbaa !56
  %1344 = load i64, ptr %1343, align 8, !tbaa !57
  %1345 = getelementptr inbounds i8, ptr %1343, i64 8
  %1346 = load i64, ptr %1345, align 8, !tbaa !57
  %1347 = add nsw i64 %1346, -1
  %.not1589.not1874 = icmp slt i64 %1344, %1346
  br i1 %.not1589.not1874, label %.lr.ph1877, label %.loopexit1752

.lr.ph1877:                                       ; preds = %1340
  %1348 = getelementptr inbounds i8, ptr %0, i64 2976
  %1349 = getelementptr inbounds i8, ptr %0, i64 38960
  %1350 = getelementptr inbounds i8, ptr %0, i64 3040
  %1351 = sub i64 %1346, %1344
  %.neg2114 = add i64 %1344, 1
  %xtraiter2092 = and i64 %1351, 1
  %lcmp.mod2093.not = icmp eq i64 %xtraiter2092, 0
  br i1 %lcmp.mod2093.not, label %.prol.loopexit, label %.prol.loopexit.unr-lcssa

.prol.loopexit.unr-lcssa:                         ; preds = %.lr.ph1877
  %1352 = load ptr, ptr %1348, align 8, !tbaa !56
  %1353 = getelementptr inbounds double, ptr %1352, i64 %1344
  %1354 = load double, ptr %1353, align 8, !tbaa !61
  %1355 = load ptr, ptr %1349, align 8, !tbaa !56
  %1356 = load ptr, ptr %1355, align 8, !tbaa !95
  %1357 = load ptr, ptr %1350, align 8, !tbaa !56
  %1358 = getelementptr inbounds i64, ptr %1357, i64 %1344
  %1359 = load i64, ptr %1358, align 8, !tbaa !57
  %1360 = getelementptr inbounds double, ptr %1356, i64 %1359
  store double %1354, ptr %1360, align 8, !tbaa !61
  %1361 = add nsw i64 %1344, 1
  br label %.prol.loopexit

.prol.loopexit:                                   ; preds = %.prol.loopexit.unr-lcssa, %.lr.ph1877
  %.1214271875.unr = phi i64 [ %1344, %.lr.ph1877 ], [ %1361, %.prol.loopexit.unr-lcssa ]
  %1362 = icmp eq i64 %1346, %.neg2114
  br i1 %1362, label %.loopexit1752, label %.lr.ph1877.new

.lr.ph1877.new:                                   ; preds = %.prol.loopexit, %.lr.ph1877.new
  %.1214271875 = phi i64 [ %1382, %.lr.ph1877.new ], [ %.1214271875.unr, %.prol.loopexit ]
  %1363 = load ptr, ptr %1348, align 8, !tbaa !56
  %1364 = getelementptr inbounds double, ptr %1363, i64 %.1214271875
  %1365 = load double, ptr %1364, align 8, !tbaa !61
  %1366 = load ptr, ptr %1349, align 8, !tbaa !56
  %1367 = load ptr, ptr %1366, align 8, !tbaa !95
  %1368 = load ptr, ptr %1350, align 8, !tbaa !56
  %1369 = getelementptr inbounds i64, ptr %1368, i64 %.1214271875
  %1370 = load i64, ptr %1369, align 8, !tbaa !57
  %1371 = getelementptr inbounds double, ptr %1367, i64 %1370
  store double %1365, ptr %1371, align 8, !tbaa !61
  %1372 = add nsw i64 %.1214271875, 1
  %1373 = load ptr, ptr %1348, align 8, !tbaa !56
  %1374 = getelementptr inbounds double, ptr %1373, i64 %1372
  %1375 = load double, ptr %1374, align 8, !tbaa !61
  %1376 = load ptr, ptr %1349, align 8, !tbaa !56
  %1377 = load ptr, ptr %1376, align 8, !tbaa !95
  %1378 = load ptr, ptr %1350, align 8, !tbaa !56
  %1379 = getelementptr inbounds i64, ptr %1378, i64 %1372
  %1380 = load i64, ptr %1379, align 8, !tbaa !57
  %1381 = getelementptr inbounds double, ptr %1377, i64 %1380
  store double %1375, ptr %1381, align 8, !tbaa !61
  %1382 = add nsw i64 %.1214271875, 2
  %exitcond1970.not.1 = icmp eq i64 %1382, %1346
  br i1 %exitcond1970.not.1, label %.loopexit1752, label %.lr.ph1877.new, !llvm.loop !139

1383:                                             ; preds = %1333
  %1384 = getelementptr inbounds i8, ptr %0, i64 2856
  %1385 = getelementptr inbounds i8, ptr %0, i64 38888
  tail call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, ptr noundef nonnull %1384, ptr noundef nonnull %1385, i64 noundef 0, ptr noundef %1)
  br label %.loopexit1752

.loopexit1752:                                    ; preds = %.prol.loopexit, %.lr.ph1877.new, %1340, %1383
  %.111465 = phi i64 [ %.10146416931720, %1383 ], [ %1344, %1340 ], [ %1344, %.lr.ph1877.new ], [ %1344, %.prol.loopexit ]
  %.111447 = phi i64 [ %.10144616941719, %1383 ], [ %1347, %1340 ], [ %1347, %.lr.ph1877.new ], [ %1347, %.prol.loopexit ]
  %.131428 = phi i64 [ %.11142616951718, %1383 ], [ %1344, %1340 ], [ %1346, %.lr.ph1877.new ], [ %1346, %.prol.loopexit ]
  %1386 = getelementptr inbounds i8, ptr %0, i64 96
  %1387 = getelementptr inbounds i8, ptr %0, i64 38888
  tail call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, ptr noundef nonnull %1386, ptr noundef nonnull %1387, i64 noundef 0, ptr noundef %1)
  %1388 = getelementptr inbounds i8, ptr %0, i64 170432
  %1389 = getelementptr inbounds i8, ptr %0, i64 170440
  %1390 = load i64, ptr %1388, align 8, !tbaa !107
  %1391 = load i64, ptr %1389, align 8, !tbaa !108
  %1392 = add nsw i64 %1391, %1390
  %.not1590.not1888 = icmp sgt i64 %1392, 0
  br i1 %.not1590.not1888, label %.lr.ph1895, label %.loopexit1751

.lr.ph1895:                                       ; preds = %.loopexit1752
  %1393 = getelementptr inbounds i8, ptr %0, i64 170296
  %1394 = getelementptr inbounds i8, ptr %0, i64 170360
  %1395 = getelementptr inbounds i8, ptr %0, i64 170424
  %1396 = getelementptr inbounds i8, ptr %0, i64 3104
  %1397 = getelementptr inbounds i8, ptr %0, i64 2976
  %1398 = getelementptr inbounds i8, ptr %0, i64 38960
  %1399 = getelementptr inbounds i8, ptr %0, i64 3040
  %.not1592.not1884 = icmp sgt i64 %.9141316961717, 0
  %1400 = getelementptr inbounds i8, ptr %0, i64 2912
  %xtraiter2097 = and i64 %.9141316961717, 1
  %1401 = icmp eq i64 %.9141316961717, 1
  %unroll_iter2100 = and i64 %.9141316961717, 9223372036854775806
  %lcmp.mod2099.not = icmp eq i64 %xtraiter2097, 0
  br label %1402

1402:                                             ; preds = %.lr.ph1895, %.loopexit1749
  %.1414291893 = phi i64 [ %.131428, %.lr.ph1895 ], [ %.161431, %.loopexit1749 ]
  %.1214481892 = phi i64 [ %.111447, %.lr.ph1895 ], [ %.131449, %.loopexit1749 ]
  %.1214661891 = phi i64 [ %.111465, %.lr.ph1895 ], [ %.131467, %.loopexit1749 ]
  %.1715091890 = phi i64 [ %.161508, %.lr.ph1895 ], [ %.191511, %.loopexit1749 ]
  %.251889 = phi i64 [ 0, %.lr.ph1895 ], [ %1418, %.loopexit1749 ]
  %1403 = load ptr, ptr %1334, align 8, !tbaa !56
  %1404 = load ptr, ptr %1393, align 8, !tbaa !56
  %1405 = getelementptr inbounds i64, ptr %1404, i64 %.251889
  %1406 = load i64, ptr %1405, align 8, !tbaa !57
  %1407 = getelementptr double, ptr %1403, i64 %1406
  %1408 = getelementptr i8, ptr %1407, i64 8
  %1409 = load double, ptr %1408, align 8, !tbaa !61
  %1410 = load ptr, ptr %1394, align 8, !tbaa !56
  %1411 = getelementptr inbounds double, ptr %1410, i64 %.251889
  %1412 = load double, ptr %1411, align 8, !tbaa !61
  %1413 = load ptr, ptr %1395, align 8, !tbaa !56
  %1414 = getelementptr inbounds double, ptr %1413, i64 %.251889
  %1415 = load double, ptr %1414, align 8, !tbaa !61
  %1416 = tail call double @llvm.fmuladd.f64(double %1409, double %1412, double %1415)
  %1417 = load ptr, ptr %1337, align 8, !tbaa !56
  %1418 = add nuw nsw i64 %.251889, 1
  %1419 = getelementptr inbounds double, ptr %1417, i64 %1418
  store double %1416, ptr %1419, align 8, !tbaa !61
  %1420 = load ptr, ptr %1393, align 8, !tbaa !56
  %1421 = getelementptr inbounds i64, ptr %1420, i64 %.251889
  %1422 = load i64, ptr %1421, align 8, !tbaa !57
  %1423 = add nsw i64 %1422, 1
  br i1 %1339, label %.preheader1748, label %1425

.preheader1748:                                   ; preds = %1402
  br i1 %.not1592.not1884, label %.lr.ph1886, label %.loopexit1749

.lr.ph1886:                                       ; preds = %.preheader1748
  %1424 = mul nsw i64 %1423, %.9141316961717
  br i1 %1401, label %.loopexit1749.loopexit.unr-lcssa, label %.lr.ph1886.new

1425:                                             ; preds = %1402
  tail call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, double noundef 0.000000e+00, ptr noundef nonnull %1387, i64 noundef %1418, ptr noundef %1)
  %1426 = load ptr, ptr %1396, align 8, !tbaa !56
  %1427 = getelementptr inbounds i64, ptr %1426, i64 %1423
  %1428 = load i64, ptr %1427, align 8, !tbaa !57
  %1429 = getelementptr i64, ptr %1426, i64 %1422
  %1430 = getelementptr i8, ptr %1429, i64 16
  %1431 = load i64, ptr %1430, align 8, !tbaa !57
  %1432 = add nsw i64 %1431, -1
  %.not1591.not1879 = icmp slt i64 %1428, %1431
  br i1 %.not1591.not1879, label %.lr.ph1882.preheader, label %.loopexit1749

.lr.ph1882.preheader:                             ; preds = %1425
  %1433 = sub i64 %1431, %1428
  %.neg2115 = add i64 %1428, 1
  %xtraiter2094 = and i64 %1433, 1
  %lcmp.mod2095.not = icmp eq i64 %xtraiter2094, 0
  br i1 %lcmp.mod2095.not, label %.lr.ph1882.prol.loopexit, label %.lr.ph1882.prol

.lr.ph1882.prol:                                  ; preds = %.lr.ph1882.preheader
  %1434 = load ptr, ptr %1397, align 8, !tbaa !56
  %1435 = getelementptr inbounds double, ptr %1434, i64 %1428
  %1436 = load double, ptr %1435, align 8, !tbaa !61
  %1437 = load ptr, ptr %1398, align 8, !tbaa !56
  %1438 = getelementptr inbounds ptr, ptr %1437, i64 %1418
  %1439 = load ptr, ptr %1438, align 8, !tbaa !95
  %1440 = load ptr, ptr %1399, align 8, !tbaa !56
  %1441 = getelementptr inbounds i64, ptr %1440, i64 %1428
  %1442 = load i64, ptr %1441, align 8, !tbaa !57
  %1443 = getelementptr inbounds double, ptr %1439, i64 %1442
  store double %1436, ptr %1443, align 8, !tbaa !61
  %1444 = add nsw i64 %1428, 1
  br label %.lr.ph1882.prol.loopexit

.lr.ph1882.prol.loopexit:                         ; preds = %.lr.ph1882.prol, %.lr.ph1882.preheader
  %.1514301880.unr = phi i64 [ %1428, %.lr.ph1882.preheader ], [ %1444, %.lr.ph1882.prol ]
  %1445 = icmp eq i64 %1431, %.neg2115
  br i1 %1445, label %.loopexit1749, label %.lr.ph1882

.lr.ph1882:                                       ; preds = %.lr.ph1882.prol.loopexit, %.lr.ph1882
  %.1514301880 = phi i64 [ %1467, %.lr.ph1882 ], [ %.1514301880.unr, %.lr.ph1882.prol.loopexit ]
  %1446 = load ptr, ptr %1397, align 8, !tbaa !56
  %1447 = getelementptr inbounds double, ptr %1446, i64 %.1514301880
  %1448 = load double, ptr %1447, align 8, !tbaa !61
  %1449 = load ptr, ptr %1398, align 8, !tbaa !56
  %1450 = getelementptr inbounds ptr, ptr %1449, i64 %1418
  %1451 = load ptr, ptr %1450, align 8, !tbaa !95
  %1452 = load ptr, ptr %1399, align 8, !tbaa !56
  %1453 = getelementptr inbounds i64, ptr %1452, i64 %.1514301880
  %1454 = load i64, ptr %1453, align 8, !tbaa !57
  %1455 = getelementptr inbounds double, ptr %1451, i64 %1454
  store double %1448, ptr %1455, align 8, !tbaa !61
  %1456 = add nsw i64 %.1514301880, 1
  %1457 = load ptr, ptr %1397, align 8, !tbaa !56
  %1458 = getelementptr inbounds double, ptr %1457, i64 %1456
  %1459 = load double, ptr %1458, align 8, !tbaa !61
  %1460 = load ptr, ptr %1398, align 8, !tbaa !56
  %1461 = getelementptr inbounds ptr, ptr %1460, i64 %1418
  %1462 = load ptr, ptr %1461, align 8, !tbaa !95
  %1463 = load ptr, ptr %1399, align 8, !tbaa !56
  %1464 = getelementptr inbounds i64, ptr %1463, i64 %1456
  %1465 = load i64, ptr %1464, align 8, !tbaa !57
  %1466 = getelementptr inbounds double, ptr %1462, i64 %1465
  store double %1459, ptr %1466, align 8, !tbaa !61
  %1467 = add nsw i64 %.1514301880, 2
  %exitcond1971.not.1 = icmp eq i64 %1467, %1431
  br i1 %exitcond1971.not.1, label %.loopexit1749, label %.lr.ph1882, !llvm.loop !140

.lr.ph1886.new:                                   ; preds = %.lr.ph1886, %.lr.ph1886.new
  %.1815101885 = phi i64 [ %1485, %.lr.ph1886.new ], [ 0, %.lr.ph1886 ]
  %niter2101 = phi i64 [ %niter2101.next.1, %.lr.ph1886.new ], [ 0, %.lr.ph1886 ]
  %1468 = load ptr, ptr %1400, align 8, !tbaa !56
  %1469 = getelementptr double, ptr %1468, i64 %1424
  %1470 = getelementptr double, ptr %1469, i64 %.1815101885
  %1471 = load double, ptr %1470, align 8, !tbaa !61
  %1472 = load ptr, ptr %1398, align 8, !tbaa !56
  %1473 = getelementptr inbounds ptr, ptr %1472, i64 %1418
  %1474 = load ptr, ptr %1473, align 8, !tbaa !95
  %1475 = getelementptr inbounds double, ptr %1474, i64 %.1815101885
  store double %1471, ptr %1475, align 8, !tbaa !61
  %1476 = or disjoint i64 %.1815101885, 1
  %1477 = load ptr, ptr %1400, align 8, !tbaa !56
  %1478 = getelementptr double, ptr %1477, i64 %1424
  %1479 = getelementptr double, ptr %1478, i64 %1476
  %1480 = load double, ptr %1479, align 8, !tbaa !61
  %1481 = load ptr, ptr %1398, align 8, !tbaa !56
  %1482 = getelementptr inbounds ptr, ptr %1481, i64 %1418
  %1483 = load ptr, ptr %1482, align 8, !tbaa !95
  %1484 = getelementptr inbounds double, ptr %1483, i64 %1476
  store double %1480, ptr %1484, align 8, !tbaa !61
  %1485 = add nuw nsw i64 %.1815101885, 2
  %niter2101.next.1 = add i64 %niter2101, 2
  %niter2101.ncmp.1 = icmp eq i64 %niter2101.next.1, %unroll_iter2100
  br i1 %niter2101.ncmp.1, label %.loopexit1749.loopexit.unr-lcssa, label %.lr.ph1886.new, !llvm.loop !141

.loopexit1749.loopexit.unr-lcssa:                 ; preds = %.lr.ph1886.new, %.lr.ph1886
  %.1815101885.unr = phi i64 [ 0, %.lr.ph1886 ], [ %1485, %.lr.ph1886.new ]
  br i1 %lcmp.mod2099.not, label %.loopexit1749, label %.loopexit1749.loopexit.epilog-lcssa

.loopexit1749.loopexit.epilog-lcssa:              ; preds = %.loopexit1749.loopexit.unr-lcssa
  %1486 = load ptr, ptr %1400, align 8, !tbaa !56
  %1487 = getelementptr double, ptr %1486, i64 %1424
  %1488 = getelementptr double, ptr %1487, i64 %.1815101885.unr
  %1489 = load double, ptr %1488, align 8, !tbaa !61
  %1490 = load ptr, ptr %1398, align 8, !tbaa !56
  %1491 = getelementptr inbounds ptr, ptr %1490, i64 %1418
  %1492 = load ptr, ptr %1491, align 8, !tbaa !95
  %1493 = getelementptr inbounds double, ptr %1492, i64 %.1815101885.unr
  store double %1489, ptr %1493, align 8, !tbaa !61
  br label %.loopexit1749

.loopexit1749:                                    ; preds = %.lr.ph1882.prol.loopexit, %.lr.ph1882, %.loopexit1749.loopexit.epilog-lcssa, %.loopexit1749.loopexit.unr-lcssa, %1425, %.preheader1748
  %.191511 = phi i64 [ 0, %.preheader1748 ], [ %.1715091890, %1425 ], [ %.9141316961717, %.loopexit1749.loopexit.unr-lcssa ], [ %.9141316961717, %.loopexit1749.loopexit.epilog-lcssa ], [ %.1715091890, %.lr.ph1882 ], [ %.1715091890, %.lr.ph1882.prol.loopexit ]
  %.131467 = phi i64 [ %.1214661891, %.preheader1748 ], [ %1428, %1425 ], [ %.1214661891, %.loopexit1749.loopexit.unr-lcssa ], [ %.1214661891, %.loopexit1749.loopexit.epilog-lcssa ], [ %1428, %.lr.ph1882 ], [ %1428, %.lr.ph1882.prol.loopexit ]
  %.131449 = phi i64 [ %.1214481892, %.preheader1748 ], [ %1432, %1425 ], [ %.1214481892, %.loopexit1749.loopexit.unr-lcssa ], [ %.1214481892, %.loopexit1749.loopexit.epilog-lcssa ], [ %1432, %.lr.ph1882 ], [ %1432, %.lr.ph1882.prol.loopexit ]
  %.161431 = phi i64 [ %.1414291893, %.preheader1748 ], [ %1428, %1425 ], [ %.1414291893, %.loopexit1749.loopexit.unr-lcssa ], [ %.1414291893, %.loopexit1749.loopexit.epilog-lcssa ], [ %1431, %.lr.ph1882 ], [ %1431, %.lr.ph1882.prol.loopexit ]
  tail call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, ptr noundef nonnull %1386, ptr noundef nonnull %1387, i64 noundef %1418, ptr noundef %1)
  %1494 = load ptr, ptr %1394, align 8, !tbaa !56
  %1495 = getelementptr inbounds double, ptr %1494, i64 %.251889
  %1496 = load double, ptr %1495, align 8, !tbaa !61
  tail call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, double noundef %1496, ptr noundef nonnull %1387, i64 noundef %1418, ptr noundef %1)
  %1497 = load i64, ptr %1388, align 8, !tbaa !107
  %1498 = load i64, ptr %1389, align 8, !tbaa !108
  %1499 = add nsw i64 %1498, %1497
  %.not1590.not = icmp slt i64 %1418, %1499
  br i1 %.not1590.not, label %1402, label %.loopexit1751, !llvm.loop !142

1500:                                             ; preds = %1329
  %1501 = icmp eq i64 %1331, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1501, ptr noundef nonnull @.str.1644, ptr noundef %1)
  %1502 = getelementptr inbounds i8, ptr %0, i64 2512
  %1503 = load ptr, ptr %1502, align 8, !tbaa !56
  %1504 = load double, ptr %1503, align 8, !tbaa !61
  %1505 = getelementptr inbounds i8, ptr %0, i64 38880
  %1506 = load ptr, ptr %1505, align 8, !tbaa !56
  store double %1504, ptr %1506, align 8, !tbaa !61
  %1507 = getelementptr inbounds i8, ptr %0, i64 2520
  %1508 = getelementptr inbounds i8, ptr %0, i64 38888
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.9141316961717, ptr noundef nonnull %1507, i64 noundef 0, ptr noundef nonnull %1508, i64 noundef 0, ptr noundef %1)
  %1509 = getelementptr inbounds i8, ptr %0, i64 96
  tail call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, ptr noundef nonnull %1509, ptr noundef nonnull %1508, i64 noundef 0, ptr noundef %1)
  %1510 = getelementptr inbounds i8, ptr %0, i64 170432
  %1511 = getelementptr inbounds i8, ptr %0, i64 170440
  %1512 = load i64, ptr %1510, align 8, !tbaa !107
  %1513 = load i64, ptr %1511, align 8, !tbaa !108
  %1514 = add nsw i64 %1513, %1512
  %.not1588.not1869 = icmp sgt i64 %1514, 0
  br i1 %.not1588.not1869, label %.lr.ph1872, label %.loopexit1751

.lr.ph1872:                                       ; preds = %1500
  %1515 = getelementptr inbounds i8, ptr %0, i64 170296
  %1516 = getelementptr inbounds i8, ptr %0, i64 170360
  %1517 = getelementptr inbounds i8, ptr %0, i64 170424
  br label %1518

1518:                                             ; preds = %.lr.ph1872, %1518
  %.261870 = phi i64 [ 0, %.lr.ph1872 ], [ %1534, %1518 ]
  %1519 = load ptr, ptr %1502, align 8, !tbaa !56
  %1520 = load ptr, ptr %1515, align 8, !tbaa !56
  %1521 = getelementptr inbounds i64, ptr %1520, i64 %.261870
  %1522 = load i64, ptr %1521, align 8, !tbaa !57
  %1523 = getelementptr double, ptr %1519, i64 %1522
  %1524 = getelementptr i8, ptr %1523, i64 8
  %1525 = load double, ptr %1524, align 8, !tbaa !61
  %1526 = load ptr, ptr %1516, align 8, !tbaa !56
  %1527 = getelementptr inbounds double, ptr %1526, i64 %.261870
  %1528 = load double, ptr %1527, align 8, !tbaa !61
  %1529 = load ptr, ptr %1517, align 8, !tbaa !56
  %1530 = getelementptr inbounds double, ptr %1529, i64 %.261870
  %1531 = load double, ptr %1530, align 8, !tbaa !61
  %1532 = tail call double @llvm.fmuladd.f64(double %1525, double %1528, double %1531)
  %1533 = load ptr, ptr %1505, align 8, !tbaa !56
  %1534 = add nuw nsw i64 %.261870, 1
  %1535 = getelementptr inbounds double, ptr %1533, i64 %1534
  store double %1532, ptr %1535, align 8, !tbaa !61
  %1536 = load ptr, ptr %1515, align 8, !tbaa !56
  %1537 = getelementptr inbounds i64, ptr %1536, i64 %.261870
  %1538 = load i64, ptr %1537, align 8, !tbaa !57
  %1539 = add nsw i64 %1538, 1
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.9141316961717, ptr noundef nonnull %1507, i64 noundef %1539, ptr noundef nonnull %1508, i64 noundef %1534, ptr noundef %1)
  tail call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, ptr noundef nonnull %1509, ptr noundef nonnull %1508, i64 noundef %1534, ptr noundef %1)
  %1540 = load ptr, ptr %1516, align 8, !tbaa !56
  %1541 = getelementptr inbounds double, ptr %1540, i64 %.261870
  %1542 = load double, ptr %1541, align 8, !tbaa !61
  tail call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.9141316961717, double noundef %1542, ptr noundef nonnull %1508, i64 noundef %1534, ptr noundef %1)
  %1543 = load i64, ptr %1510, align 8, !tbaa !107
  %1544 = load i64, ptr %1511, align 8, !tbaa !108
  %1545 = add nsw i64 %1544, %1543
  %.not1588.not = icmp slt i64 %1534, %1545
  br i1 %.not1588.not, label %1518, label %.loopexit1751, !llvm.loop !143

.loopexit1751:                                    ; preds = %1518, %.loopexit1749, %1500, %.loopexit1752, %1326
  %.28 = phi i64 [ %.24, %1326 ], [ 0, %.loopexit1752 ], [ 0, %1500 ], [ %1418, %.loopexit1749 ], [ %1534, %1518 ]
  %.211513 = phi i64 [ %.161508, %1326 ], [ %.161508, %.loopexit1752 ], [ %.161508, %1500 ], [ %.191511, %.loopexit1749 ], [ %.161508, %1518 ]
  %.171489 = phi i64 [ %.14148616921721, %1326 ], [ %.14148616921721, %.loopexit1752 ], [ %.14148616921721, %1500 ], [ %1423, %.loopexit1749 ], [ %.14148616921721, %1518 ]
  %.151469 = phi i64 [ %.10146416931720, %1326 ], [ %.111465, %.loopexit1752 ], [ %.10146416931720, %1500 ], [ %.131467, %.loopexit1749 ], [ %.10146416931720, %1518 ]
  %.151451 = phi i64 [ %.10144616941719, %1326 ], [ %.111447, %.loopexit1752 ], [ %.10144616941719, %1500 ], [ %.131449, %.loopexit1749 ], [ %.10144616941719, %1518 ]
  %.181433 = phi i64 [ %.11142616951718, %1326 ], [ %.131428, %.loopexit1752 ], [ %.11142616951718, %1500 ], [ %.161431, %.loopexit1749 ], [ %.11142616951718, %1518 ]
  %.17 = phi i1 [ %.16, %1326 ], [ true, %.loopexit1752 ], [ true, %1500 ], [ true, %.loopexit1749 ], [ true, %1518 ]
  %1546 = load i64, ptr %1240, align 8, !tbaa !74
  %1547 = and i64 %1546, -2
  %switch1617 = icmp eq i64 %1547, 4
  br i1 %switch1617, label %1548, label %1581

1548:                                             ; preds = %.loopexit1751
  %1549 = getelementptr inbounds i8, ptr %0, i64 2368
  %1550 = load i64, ptr %1549, align 8, !tbaa !79
  %1551 = icmp eq i64 %1550, 2
  br i1 %1551, label %1552, label %1569

1552:                                             ; preds = %1548
  %1553 = add nsw i64 %.9140216981715, 1
  %1554 = getelementptr inbounds i8, ptr %0, i64 2792
  %1555 = getelementptr inbounds i8, ptr %0, i64 102688
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1553, ptr noundef nonnull %1554, ptr noundef nonnull %1555, ptr noundef %1)
  %1556 = trunc nuw i8 %.617011713 to i1
  br i1 %1556, label %1557, label %1563

1557:                                             ; preds = %1552
  %1558 = getelementptr inbounds i8, ptr %0, i64 2856
  %1559 = getelementptr inbounds i8, ptr %0, i64 2232
  %1560 = load i64, ptr %1559, align 8, !tbaa !72
  %1561 = add nsw i64 %1560, 1
  %1562 = getelementptr inbounds i8, ptr %0, i64 102752
  tail call void @_ZN11alglib_implL20minnlc_crsfromdensevEPKNS_9ae_vectorEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %1558, i64 noundef %1561, i64 noundef %.9141316961717, ptr noundef nonnull %1562, ptr noundef %1)
  br label %1566

1563:                                             ; preds = %1552
  %1564 = getelementptr inbounds i8, ptr %0, i64 2920
  %1565 = getelementptr inbounds i8, ptr %0, i64 102752
  tail call void @_ZN11alglib_impl18sparsecopytocrsbufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %1564, ptr noundef nonnull %1565, ptr noundef %1)
  br label %1566

1566:                                             ; preds = %1563, %1557
  %1567 = getelementptr inbounds i8, ptr %0, i64 102752
  %1568 = getelementptr inbounds i8, ptr %0, i64 96
  tail call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1567, ptr noundef nonnull %1568, ptr noundef %1)
  br label %1581

1569:                                             ; preds = %1548
  %1570 = icmp eq i64 %1550, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1570, ptr noundef nonnull @.str.1644, ptr noundef %1)
  %1571 = trunc nuw i8 %.617011713 to i1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1571, ptr noundef nonnull @.str.1645, ptr noundef %1)
  %1572 = add nsw i64 %.9140216981715, 1
  %1573 = getelementptr inbounds i8, ptr %0, i64 2456
  %1574 = getelementptr inbounds i8, ptr %0, i64 102688
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1572, ptr noundef nonnull %1573, ptr noundef nonnull %1574, ptr noundef %1)
  %1575 = getelementptr inbounds i8, ptr %0, i64 2520
  %1576 = getelementptr inbounds i8, ptr %0, i64 2232
  %1577 = load i64, ptr %1576, align 8, !tbaa !72
  %1578 = add nsw i64 %1577, 1
  %1579 = getelementptr inbounds i8, ptr %0, i64 102752
  tail call void @_ZN11alglib_implL19minnlc_crsfromdenseEPKNS_9ae_matrixEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %1575, i64 noundef %1578, i64 noundef %.9141316961717, ptr noundef nonnull %1579, ptr noundef %1)
  %1580 = getelementptr inbounds i8, ptr %0, i64 96
  tail call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1579, ptr noundef nonnull %1580, ptr noundef %1)
  br label %1581

1581:                                             ; preds = %switch.edge.thread1736, %.loopexit1751, %1566, %1569, %.thread1640
  %.9140216981716 = phi i64 [ %.91402, %.thread1640 ], [ %.9140216981715, %.loopexit1751 ], [ %.9140216981715, %1569 ], [ %.9140216981715, %1566 ], [ %.31396, %switch.edge.thread1736 ]
  %.914131697 = phi i64 [ %.91413, %.thread1640 ], [ %.9141316961717, %.loopexit1751 ], [ %.9141316961717, %1569 ], [ %.9141316961717, %1566 ], [ %.31407, %switch.edge.thread1736 ]
  %.29 = phi i64 [ %.211536, %.thread1640 ], [ %.28, %.loopexit1751 ], [ %.28, %1569 ], [ %.28, %1566 ], [ %.91524, %switch.edge.thread1736 ]
  %.221514 = phi i64 [ %.101502, %.thread1640 ], [ %.211513, %.loopexit1751 ], [ %.211513, %1569 ], [ %.211513, %1566 ], [ %.11493, %switch.edge.thread1736 ]
  %.181490 = phi i64 [ %.141486, %.thread1640 ], [ %.171489, %.loopexit1751 ], [ %.171489, %1569 ], [ %.171489, %1566 ], [ %.71479, %switch.edge.thread1736 ]
  %.161470 = phi i64 [ %.101464, %.thread1640 ], [ %.151469, %.loopexit1751 ], [ %.151469, %1569 ], [ %.151469, %1566 ], [ %.41458, %switch.edge.thread1736 ]
  %.161452 = phi i64 [ %.101446, %.thread1640 ], [ %.151451, %.loopexit1751 ], [ %.151451, %1569 ], [ %.151451, %1566 ], [ %.41440, %switch.edge.thread1736 ]
  %.191434 = phi i64 [ %.111426, %.thread1640 ], [ %.181433, %.loopexit1751 ], [ %.181433, %1569 ], [ %.181433, %1566 ], [ %.51420, %switch.edge.thread1736 ]
  %.161391 = phi i64 [ %.71382, %.thread1640 ], [ %.151390, %.loopexit1751 ], [ %.151390, %1569 ], [ %.151390, %1566 ], [ %.11376, %switch.edge.thread1736 ]
  %.18 = phi i1 [ %1234, %.thread1640 ], [ %.17, %.loopexit1751 ], [ true, %1569 ], [ true, %1566 ], [ true, %switch.edge.thread1736 ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %.18, ptr noundef nonnull @.str.1539, ptr noundef %1)
  br label %503

1582:                                             ; preds = %593, %550, %507
  %1583 = load i64, ptr %504, align 8, !tbaa !74
  %1584 = icmp eq i64 %1583, 0
  br i1 %1584, label %1585, label %1615

1585:                                             ; preds = %1582
  %1586 = getelementptr inbounds i8, ptr %0, i64 37312
  %1587 = load i64, ptr %1586, align 8, !tbaa !144
  %1588 = getelementptr inbounds i8, ptr %0, i64 169920
  store i64 %1587, ptr %1588, align 8, !tbaa !84
  %1589 = getelementptr inbounds i8, ptr %0, i64 169904
  store i64 1, ptr %1589, align 8, !tbaa !145
  %1590 = getelementptr inbounds i8, ptr %0, i64 37304
  %1591 = load i64, ptr %1590, align 8, !tbaa !146
  %1592 = getelementptr inbounds i8, ptr %0, i64 169896
  store i64 %1591, ptr %1592, align 8, !tbaa !147
  %1593 = getelementptr inbounds i8, ptr %0, i64 37328
  %1594 = load double, ptr %1593, align 8, !tbaa !148
  %1595 = getelementptr inbounds i8, ptr %0, i64 169928
  store double %1594, ptr %1595, align 8, !tbaa !85
  %1596 = getelementptr inbounds i8, ptr %0, i64 37336
  %1597 = load i64, ptr %1596, align 8, !tbaa !149
  %1598 = getelementptr inbounds i8, ptr %0, i64 169936
  store i64 %1597, ptr %1598, align 8, !tbaa !64
  %1599 = getelementptr inbounds i8, ptr %0, i64 37344
  %1600 = load double, ptr %1599, align 8, !tbaa !150
  %1601 = getelementptr inbounds i8, ptr %0, i64 169944
  store double %1600, ptr %1601, align 8, !tbaa !65
  %1602 = getelementptr inbounds i8, ptr %0, i64 37352
  %1603 = load i64, ptr %1602, align 8, !tbaa !151
  %1604 = getelementptr inbounds i8, ptr %0, i64 169952
  store i64 %1603, ptr %1604, align 8, !tbaa !66
  %1605 = getelementptr inbounds i8, ptr %0, i64 37360
  %1606 = load double, ptr %1605, align 8, !tbaa !152
  %1607 = getelementptr inbounds i8, ptr %0, i64 169960
  store double %1606, ptr %1607, align 8, !tbaa !67
  %1608 = getelementptr inbounds i8, ptr %0, i64 37368
  %1609 = load i64, ptr %1608, align 8, !tbaa !153
  %1610 = getelementptr inbounds i8, ptr %0, i64 169968
  store i64 %1609, ptr %1610, align 8, !tbaa !68
  %1611 = getelementptr inbounds i8, ptr %0, i64 11184
  %1612 = getelementptr inbounds i8, ptr %0, i64 6400
  %1613 = getelementptr inbounds i8, ptr %0, i64 6464
  %1614 = getelementptr inbounds i8, ptr %0, i64 4728
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1611, ptr noundef nonnull %1612, ptr noundef nonnull %1613, ptr noundef nonnull %1614, ptr noundef %1)
  %.pre1980 = load i64, ptr %504, align 8, !tbaa !74
  br label %1615

1615:                                             ; preds = %1585, %1582
  %1616 = phi i64 [ %.pre1980, %1585 ], [ %1583, %1582 ]
  %1617 = and i64 %1616, -2
  %switch1619 = icmp eq i64 %1617, 2
  br i1 %switch1619, label %1618, label %1648

1618:                                             ; preds = %1615
  %1619 = getelementptr inbounds i8, ptr %0, i64 100568
  %1620 = load i64, ptr %1619, align 8, !tbaa !154
  %1621 = getelementptr inbounds i8, ptr %0, i64 169920
  store i64 %1620, ptr %1621, align 8, !tbaa !84
  %1622 = getelementptr inbounds i8, ptr %0, i64 100560
  %1623 = load i64, ptr %1622, align 8, !tbaa !155
  %1624 = getelementptr inbounds i8, ptr %0, i64 169904
  store i64 %1623, ptr %1624, align 8, !tbaa !145
  %1625 = getelementptr inbounds i8, ptr %0, i64 169896
  store i64 %1623, ptr %1625, align 8, !tbaa !147
  %1626 = getelementptr inbounds i8, ptr %0, i64 100576
  %1627 = load double, ptr %1626, align 8, !tbaa !156
  %1628 = getelementptr inbounds i8, ptr %0, i64 169928
  store double %1627, ptr %1628, align 8, !tbaa !85
  %1629 = getelementptr inbounds i8, ptr %0, i64 100584
  %1630 = load i64, ptr %1629, align 8, !tbaa !157
  %1631 = getelementptr inbounds i8, ptr %0, i64 169936
  store i64 %1630, ptr %1631, align 8, !tbaa !64
  %1632 = getelementptr inbounds i8, ptr %0, i64 100592
  %1633 = load double, ptr %1632, align 8, !tbaa !158
  %1634 = getelementptr inbounds i8, ptr %0, i64 169944
  store double %1633, ptr %1634, align 8, !tbaa !65
  %1635 = getelementptr inbounds i8, ptr %0, i64 100600
  %1636 = load i64, ptr %1635, align 8, !tbaa !159
  %1637 = getelementptr inbounds i8, ptr %0, i64 169952
  store i64 %1636, ptr %1637, align 8, !tbaa !66
  %1638 = getelementptr inbounds i8, ptr %0, i64 100608
  %1639 = load double, ptr %1638, align 8, !tbaa !160
  %1640 = getelementptr inbounds i8, ptr %0, i64 169960
  store double %1639, ptr %1640, align 8, !tbaa !67
  %1641 = getelementptr inbounds i8, ptr %0, i64 100616
  %1642 = load i64, ptr %1641, align 8, !tbaa !161
  %1643 = getelementptr inbounds i8, ptr %0, i64 169968
  store i64 %1642, ptr %1643, align 8, !tbaa !68
  %1644 = getelementptr inbounds i8, ptr %0, i64 39048
  %1645 = getelementptr inbounds i8, ptr %0, i64 38600
  %1646 = getelementptr inbounds i8, ptr %0, i64 38664
  %1647 = getelementptr inbounds i8, ptr %0, i64 4728
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1644, ptr noundef nonnull %1645, ptr noundef nonnull %1646, ptr noundef nonnull %1647, ptr noundef %1)
  %.pre1981 = load i64, ptr %504, align 8, !tbaa !74
  br label %1648

1648:                                             ; preds = %1615, %1618
  %1649 = phi i64 [ %.pre1981, %1618 ], [ %1616, %1615 ]
  %.20 = phi i1 [ true, %1618 ], [ %1584, %1615 ]
  %1650 = and i64 %1649, -2
  %switch1621 = icmp eq i64 %1650, 4
  br i1 %switch1621, label %1651, label %.loopexit1759

1651:                                             ; preds = %1648
  %1652 = getelementptr inbounds i8, ptr %0, i64 163680
  %1653 = load i64, ptr %1652, align 8, !tbaa !162
  %1654 = getelementptr inbounds i8, ptr %0, i64 169920
  store i64 %1653, ptr %1654, align 8, !tbaa !84
  %1655 = getelementptr inbounds i8, ptr %0, i64 163672
  %1656 = load i64, ptr %1655, align 8, !tbaa !163
  %1657 = getelementptr inbounds i8, ptr %0, i64 169904
  store i64 %1656, ptr %1657, align 8, !tbaa !145
  %1658 = getelementptr inbounds i8, ptr %0, i64 169896
  store i64 %1656, ptr %1658, align 8, !tbaa !147
  %1659 = getelementptr inbounds i8, ptr %0, i64 163688
  %1660 = load double, ptr %1659, align 8, !tbaa !164
  %1661 = getelementptr inbounds i8, ptr %0, i64 169928
  store double %1660, ptr %1661, align 8, !tbaa !85
  %1662 = getelementptr inbounds i8, ptr %0, i64 163696
  %1663 = load i64, ptr %1662, align 8, !tbaa !165
  %1664 = getelementptr inbounds i8, ptr %0, i64 169936
  store i64 %1663, ptr %1664, align 8, !tbaa !64
  %1665 = getelementptr inbounds i8, ptr %0, i64 163704
  %1666 = load double, ptr %1665, align 8, !tbaa !166
  %1667 = getelementptr inbounds i8, ptr %0, i64 169944
  store double %1666, ptr %1667, align 8, !tbaa !65
  %1668 = getelementptr inbounds i8, ptr %0, i64 163712
  %1669 = load i64, ptr %1668, align 8, !tbaa !167
  %1670 = getelementptr inbounds i8, ptr %0, i64 169952
  store i64 %1669, ptr %1670, align 8, !tbaa !66
  %1671 = getelementptr inbounds i8, ptr %0, i64 163720
  %1672 = load double, ptr %1671, align 8, !tbaa !168
  %1673 = getelementptr inbounds i8, ptr %0, i64 169960
  store double %1672, ptr %1673, align 8, !tbaa !67
  %1674 = getelementptr inbounds i8, ptr %0, i64 163728
  %1675 = load i64, ptr %1674, align 8, !tbaa !169
  %1676 = getelementptr inbounds i8, ptr %0, i64 169968
  store i64 %1675, ptr %1676, align 8, !tbaa !68
  %1677 = getelementptr inbounds i8, ptr %0, i64 103192
  %1678 = getelementptr inbounds i8, ptr %0, i64 101936
  %1679 = getelementptr inbounds i8, ptr %0, i64 102000
  %1680 = getelementptr inbounds i8, ptr %0, i64 4728
  tail call void @_ZN11alglib_implL14minnlc_unscaleEPKNS_11minnlcstateEPKNS_9ae_vectorES5_S5_PS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1677, ptr noundef nonnull %1678, ptr noundef nonnull %1679, ptr noundef nonnull %1680, ptr noundef %1)
  %1681 = getelementptr inbounds i8, ptr %0, i64 24
  %1682 = load i64, ptr %1681, align 8, !tbaa !69
  %1683 = getelementptr inbounds i8, ptr %0, i64 162776
  %1684 = getelementptr inbounds i8, ptr %0, i64 169984
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1682, ptr noundef nonnull %1683, ptr noundef nonnull %1684, ptr noundef %1)
  %1685 = load i64, ptr %1681, align 8, !tbaa !69
  %1686 = getelementptr inbounds i8, ptr %0, i64 170048
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1685, ptr noundef nonnull %1683, ptr noundef nonnull %1686, ptr noundef %1)
  %1687 = load i64, ptr %1681, align 8, !tbaa !69
  %.not1582.not1837 = icmp sgt i64 %1687, 0
  br i1 %.not1582.not1837, label %.lr.ph1840, label %.preheader1760

.lr.ph1840:                                       ; preds = %1651
  %1688 = getelementptr inbounds i8, ptr %0, i64 344
  %1689 = getelementptr inbounds i8, ptr %0, i64 408
  %1690 = getelementptr inbounds i8, ptr %0, i64 216
  %1691 = getelementptr inbounds i8, ptr %0, i64 280
  %1692 = getelementptr inbounds i8, ptr %0, i64 170040
  %1693 = getelementptr inbounds i8, ptr %0, i64 80
  %1694 = getelementptr inbounds i8, ptr %0, i64 170104
  br label %1705

.preheader1760:                                   ; preds = %1731, %1651
  %1695 = getelementptr inbounds i8, ptr %0, i64 432
  %1696 = load i64, ptr %1695, align 8, !tbaa !70
  %1697 = getelementptr inbounds i8, ptr %0, i64 424
  %1698 = load i64, ptr %1697, align 8, !tbaa !71
  %1699 = add nsw i64 %1698, %1696
  %.not1583.not1841 = icmp sgt i64 %1699, 0
  br i1 %.not1583.not1841, label %.lr.ph1843, label %.preheader1758

.lr.ph1843:                                       ; preds = %.preheader1760
  %1700 = getelementptr inbounds i8, ptr %0, i64 170168
  %1701 = getelementptr inbounds i8, ptr %0, i64 1296
  %1702 = getelementptr inbounds i8, ptr %0, i64 162896
  %1703 = add i64 %1696, %1698
  %xtraiter2081 = and i64 %1699, 1
  %1704 = icmp eq i64 %1703, 1
  br i1 %1704, label %.preheader1758.loopexit.unr-lcssa, label %.lr.ph1843.new

.lr.ph1843.new:                                   ; preds = %.lr.ph1843
  %unroll_iter2084 = and i64 %1699, 9223372036854775806
  br label %1746

1705:                                             ; preds = %.lr.ph1840, %1731
  %.301838 = phi i64 [ 0, %.lr.ph1840 ], [ %1732, %1731 ]
  %1706 = load ptr, ptr %1688, align 8, !tbaa !56
  %1707 = getelementptr inbounds i8, ptr %1706, i64 %.301838
  %1708 = load i8, ptr %1707, align 1, !tbaa !58, !range !59, !noundef !60
  %1709 = trunc nuw i8 %1708 to i1
  br i1 %1709, label %1710, label %1731

1710:                                             ; preds = %1705
  %1711 = load ptr, ptr %1689, align 8, !tbaa !56
  %1712 = getelementptr inbounds i8, ptr %1711, i64 %.301838
  %1713 = load i8, ptr %1712, align 1, !tbaa !58, !range !59, !noundef !60
  %1714 = trunc nuw i8 %1713 to i1
  br i1 %1714, label %1715, label %1731

1715:                                             ; preds = %1710
  %1716 = load ptr, ptr %1690, align 8, !tbaa !56
  %1717 = getelementptr inbounds double, ptr %1716, i64 %.301838
  %1718 = load double, ptr %1717, align 8, !tbaa !61
  %1719 = load ptr, ptr %1691, align 8, !tbaa !56
  %1720 = getelementptr inbounds double, ptr %1719, i64 %.301838
  %1721 = load double, ptr %1720, align 8, !tbaa !61
  %1722 = fcmp oeq double %1718, %1721
  br i1 %1722, label %1723, label %1731

1723:                                             ; preds = %1715
  %1724 = load ptr, ptr %1692, align 8, !tbaa !56
  %1725 = getelementptr inbounds double, ptr %1724, i64 %.301838
  store double 0.000000e+00, ptr %1725, align 8, !tbaa !61
  %1726 = load double, ptr %1693, align 8, !tbaa !83
  %1727 = fcmp une double %1726, 0.000000e+00
  br i1 %1727, label %1728, label %1731

1728:                                             ; preds = %1723
  %1729 = load ptr, ptr %1694, align 8, !tbaa !56
  %1730 = getelementptr inbounds double, ptr %1729, i64 %.301838
  store double 0.000000e+00, ptr %1730, align 8, !tbaa !61
  br label %1731

1731:                                             ; preds = %1705, %1710, %1715, %1728, %1723
  %1732 = add nuw nsw i64 %.301838, 1
  %exitcond1964.not = icmp eq i64 %1732, %1687
  br i1 %exitcond1964.not, label %.preheader1760, label %1705, !llvm.loop !170

.preheader1758.loopexit.unr-lcssa:                ; preds = %1746, %.lr.ph1843
  %.311842.unr = phi i64 [ 0, %.lr.ph1843 ], [ %1768, %1746 ]
  %lcmp.mod2083.not = icmp eq i64 %xtraiter2081, 0
  br i1 %lcmp.mod2083.not, label %.preheader1758, label %.preheader1758.loopexit.epilog-lcssa

.preheader1758.loopexit.epilog-lcssa:             ; preds = %.preheader1758.loopexit.unr-lcssa
  %1733 = load ptr, ptr %1700, align 8, !tbaa !56
  %1734 = load ptr, ptr %1701, align 8, !tbaa !56
  %1735 = getelementptr inbounds i64, ptr %1734, i64 %.311842.unr
  %1736 = load i64, ptr %1735, align 8, !tbaa !57
  %1737 = getelementptr inbounds double, ptr %1733, i64 %1736
  %1738 = load double, ptr %1737, align 8, !tbaa !61
  %1739 = load ptr, ptr %1702, align 8, !tbaa !56
  %1740 = getelementptr inbounds double, ptr %1739, i64 %.311842.unr
  %1741 = load double, ptr %1740, align 8, !tbaa !61
  %1742 = fadd double %1738, %1741
  store double %1742, ptr %1737, align 8, !tbaa !61
  br label %.preheader1758

.preheader1758:                                   ; preds = %.preheader1758.loopexit.epilog-lcssa, %.preheader1758.loopexit.unr-lcssa, %.preheader1760
  %.not1584.not1844 = icmp sgt i64 %.31396, 0
  br i1 %.not1584.not1844, label %.lr.ph1846, label %.loopexit1759

.lr.ph1846:                                       ; preds = %.preheader1758
  %1743 = getelementptr inbounds i8, ptr %0, i64 162960
  %1744 = getelementptr inbounds i8, ptr %0, i64 170232
  %xtraiter2087 = and i64 %.31396, 3
  %1745 = icmp ult i64 %.31396, 4
  br i1 %1745, label %.loopexit1759.loopexit.unr-lcssa, label %.lr.ph1846.new

.lr.ph1846.new:                                   ; preds = %.lr.ph1846
  %unroll_iter2090 = and i64 %.31396, 9223372036854775804
  br label %1769

1746:                                             ; preds = %1746, %.lr.ph1843.new
  %.311842 = phi i64 [ 0, %.lr.ph1843.new ], [ %1768, %1746 ]
  %niter2085 = phi i64 [ 0, %.lr.ph1843.new ], [ %niter2085.next.1, %1746 ]
  %1747 = load ptr, ptr %1700, align 8, !tbaa !56
  %1748 = load ptr, ptr %1701, align 8, !tbaa !56
  %1749 = getelementptr inbounds i64, ptr %1748, i64 %.311842
  %1750 = load i64, ptr %1749, align 8, !tbaa !57
  %1751 = getelementptr inbounds double, ptr %1747, i64 %1750
  %1752 = load double, ptr %1751, align 8, !tbaa !61
  %1753 = load ptr, ptr %1702, align 8, !tbaa !56
  %1754 = getelementptr inbounds double, ptr %1753, i64 %.311842
  %1755 = load double, ptr %1754, align 8, !tbaa !61
  %1756 = fadd double %1752, %1755
  store double %1756, ptr %1751, align 8, !tbaa !61
  %1757 = or disjoint i64 %.311842, 1
  %1758 = load ptr, ptr %1700, align 8, !tbaa !56
  %1759 = load ptr, ptr %1701, align 8, !tbaa !56
  %1760 = getelementptr inbounds i64, ptr %1759, i64 %1757
  %1761 = load i64, ptr %1760, align 8, !tbaa !57
  %1762 = getelementptr inbounds double, ptr %1758, i64 %1761
  %1763 = load double, ptr %1762, align 8, !tbaa !61
  %1764 = load ptr, ptr %1702, align 8, !tbaa !56
  %1765 = getelementptr inbounds double, ptr %1764, i64 %1757
  %1766 = load double, ptr %1765, align 8, !tbaa !61
  %1767 = fadd double %1763, %1766
  store double %1767, ptr %1762, align 8, !tbaa !61
  %1768 = add nuw nsw i64 %.311842, 2
  %niter2085.next.1 = add i64 %niter2085, 2
  %niter2085.ncmp.1 = icmp eq i64 %niter2085.next.1, %unroll_iter2084
  br i1 %niter2085.ncmp.1, label %.preheader1758.loopexit.unr-lcssa, label %1746, !llvm.loop !171

1769:                                             ; preds = %1769, %.lr.ph1846.new
  %.321845 = phi i64 [ 0, %.lr.ph1846.new ], [ %1793, %1769 ]
  %niter2091 = phi i64 [ 0, %.lr.ph1846.new ], [ %niter2091.next.3, %1769 ]
  %1770 = load ptr, ptr %1743, align 8, !tbaa !56
  %1771 = getelementptr inbounds double, ptr %1770, i64 %.321845
  %1772 = load double, ptr %1771, align 8, !tbaa !61
  %1773 = load ptr, ptr %1744, align 8, !tbaa !56
  %1774 = getelementptr inbounds double, ptr %1773, i64 %.321845
  store double %1772, ptr %1774, align 8, !tbaa !61
  %1775 = or disjoint i64 %.321845, 1
  %1776 = load ptr, ptr %1743, align 8, !tbaa !56
  %1777 = getelementptr inbounds double, ptr %1776, i64 %1775
  %1778 = load double, ptr %1777, align 8, !tbaa !61
  %1779 = load ptr, ptr %1744, align 8, !tbaa !56
  %1780 = getelementptr inbounds double, ptr %1779, i64 %1775
  store double %1778, ptr %1780, align 8, !tbaa !61
  %1781 = or disjoint i64 %.321845, 2
  %1782 = load ptr, ptr %1743, align 8, !tbaa !56
  %1783 = getelementptr inbounds double, ptr %1782, i64 %1781
  %1784 = load double, ptr %1783, align 8, !tbaa !61
  %1785 = load ptr, ptr %1744, align 8, !tbaa !56
  %1786 = getelementptr inbounds double, ptr %1785, i64 %1781
  store double %1784, ptr %1786, align 8, !tbaa !61
  %1787 = or disjoint i64 %.321845, 3
  %1788 = load ptr, ptr %1743, align 8, !tbaa !56
  %1789 = getelementptr inbounds double, ptr %1788, i64 %1787
  %1790 = load double, ptr %1789, align 8, !tbaa !61
  %1791 = load ptr, ptr %1744, align 8, !tbaa !56
  %1792 = getelementptr inbounds double, ptr %1791, i64 %1787
  store double %1790, ptr %1792, align 8, !tbaa !61
  %1793 = add nuw nsw i64 %.321845, 4
  %niter2091.next.3 = add i64 %niter2091, 4
  %niter2091.ncmp.3 = icmp eq i64 %niter2091.next.3, %unroll_iter2090
  br i1 %niter2091.ncmp.3, label %.loopexit1759.loopexit.unr-lcssa, label %1769, !llvm.loop !172

.loopexit1759.loopexit.unr-lcssa:                 ; preds = %1769, %.lr.ph1846
  %.321845.unr = phi i64 [ 0, %.lr.ph1846 ], [ %1793, %1769 ]
  %lcmp.mod2089.not = icmp eq i64 %xtraiter2087, 0
  br i1 %lcmp.mod2089.not, label %.loopexit1759, label %.epil.preheader2086

.epil.preheader2086:                              ; preds = %.loopexit1759.loopexit.unr-lcssa, %.epil.preheader2086
  %.321845.epil = phi i64 [ %1799, %.epil.preheader2086 ], [ %.321845.unr, %.loopexit1759.loopexit.unr-lcssa ]
  %epil.iter2088 = phi i64 [ %epil.iter2088.next, %.epil.preheader2086 ], [ 0, %.loopexit1759.loopexit.unr-lcssa ]
  %1794 = load ptr, ptr %1743, align 8, !tbaa !56
  %1795 = getelementptr inbounds double, ptr %1794, i64 %.321845.epil
  %1796 = load double, ptr %1795, align 8, !tbaa !61
  %1797 = load ptr, ptr %1744, align 8, !tbaa !56
  %1798 = getelementptr inbounds double, ptr %1797, i64 %.321845.epil
  store double %1796, ptr %1798, align 8, !tbaa !61
  %1799 = add nuw nsw i64 %.321845.epil, 1
  %epil.iter2088.next = add i64 %epil.iter2088, 1
  %epil.iter2088.cmp.not = icmp eq i64 %epil.iter2088.next, %xtraiter2087
  br i1 %epil.iter2088.cmp.not, label %.loopexit1759, label %.epil.preheader2086, !llvm.loop !173

.loopexit1759:                                    ; preds = %.loopexit1759.loopexit.unr-lcssa, %.epil.preheader2086, %.preheader1758, %1648
  %.21 = phi i1 [ %.20, %1648 ], [ true, %.preheader1758 ], [ true, %.epil.preheader2086 ], [ true, %.loopexit1759.loopexit.unr-lcssa ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %.21, ptr noundef nonnull @.str.1646, ptr noundef %1)
  br label %1831

1800:                                             ; preds = %1224, %1206, %1183, %1126, %1047, %1029, %1011, %999, %936, %931, %._crit_edge1910, %644, %641, %._crit_edge1918, %290, %221
  %.sink2047 = phi i32 [ 15, %1224 ], [ 14, %1206 ], [ 13, %1183 ], [ 12, %1126 ], [ 11, %1047 ], [ 10, %1029 ], [ 9, %1011 ], [ 8, %999 ], [ 7, %936 ], [ 6, %931 ], [ 5, %._crit_edge1910 ], [ 4, %644 ], [ 3, %641 ], [ 2, %._crit_edge1918 ], [ 1, %290 ], [ 0, %221 ]
  %.33 = phi i64 [ %.2015351666, %1224 ], [ %.2015351666, %1206 ], [ %.2015351666, %1183 ], [ %.121527, %1126 ], [ %.01515, %1047 ], [ %.01515, %1029 ], [ %.01515, %1011 ], [ %.121527, %999 ], [ %.01515, %936 ], [ %.121527, %931 ], [ %.111526, %._crit_edge1910 ], [ %.91524, %644 ], [ %.91524, %641 ], [ %.61521.lcssa, %._crit_edge1918 ], [ %.31518, %290 ], [ %.31518, %221 ]
  %.23 = phi i64 [ %.915011667, %1224 ], [ %.915011667, %1206 ], [ %.915011667, %1183 ], [ %.41496, %1126 ], [ %.01492, %1047 ], [ %.01492, %1029 ], [ %.01492, %1011 ], [ %.41496, %999 ], [ %.01492, %936 ], [ %.41496, %931 ], [ %.31495, %._crit_edge1910 ], [ %.11493, %644 ], [ %.11493, %641 ], [ %.01492, %._crit_edge1918 ], [ %.01492, %290 ], [ %.01492, %221 ]
  %.191491 = phi i64 [ %.1314851668, %1224 ], [ %.1314851668, %1206 ], [ %.1314851668, %1183 ], [ %.111483, %1126 ], [ %.01472, %1047 ], [ %.01472, %1029 ], [ %.01472, %1011 ], [ %.111483, %999 ], [ %.01472, %936 ], [ %.111483, %931 ], [ %.101482.lcssa, %._crit_edge1910 ], [ %.71479, %644 ], [ %.71479, %641 ], [ %.11473, %._crit_edge1918 ], [ %.11473, %290 ], [ %.11473, %221 ]
  %.171471 = phi i64 [ %.914631669, %1224 ], [ %.914631669, %1206 ], [ %.914631669, %1183 ], [ %.71461, %1126 ], [ %.01454, %1047 ], [ %.01454, %1029 ], [ %.01454, %1011 ], [ %.71461, %999 ], [ %.01454, %936 ], [ %.71461, %931 ], [ %.61460, %._crit_edge1910 ], [ %.41458, %644 ], [ %.41458, %641 ], [ %.11455, %._crit_edge1918 ], [ %.11455, %290 ], [ %.11455, %221 ]
  %.171453 = phi i64 [ %.914451670, %1224 ], [ %.914451670, %1206 ], [ %.914451670, %1183 ], [ %.71443, %1126 ], [ %.01436, %1047 ], [ %.01436, %1029 ], [ %.01436, %1011 ], [ %.71443, %999 ], [ %.01436, %936 ], [ %.71443, %931 ], [ %.61442, %._crit_edge1910 ], [ %.41440, %644 ], [ %.41440, %641 ], [ %.11437, %._crit_edge1918 ], [ %.11437, %290 ], [ %.11437, %221 ]
  %.201435 = phi i64 [ %.1014251671, %1224 ], [ %.1014251671, %1206 ], [ %.1014251671, %1183 ], [ %.81423, %1126 ], [ %.01415, %1047 ], [ %.01415, %1029 ], [ %.01415, %1011 ], [ %.81423, %999 ], [ %.01415, %936 ], [ %.81423, %931 ], [ %.71422, %._crit_edge1910 ], [ %.51420, %644 ], [ %.51420, %641 ], [ %.11416, %._crit_edge1918 ], [ %.11416, %290 ], [ %.11416, %221 ]
  %.101414 = phi i64 [ %.814121672, %1224 ], [ %.814121672, %1206 ], [ %.814121672, %1183 ], [ %.61410, %1126 ], [ %.01404, %1047 ], [ %.01404, %1029 ], [ %.01404, %1011 ], [ %.61410, %999 ], [ %.01404, %936 ], [ %.61410, %931 ], [ %.51409, %._crit_edge1910 ], [ %.31407, %644 ], [ %.31407, %641 ], [ %.11405, %._crit_edge1918 ], [ %.11405, %290 ], [ %.11405, %221 ]
  %.101403 = phi i64 [ %.814011673, %1224 ], [ %.814011673, %1206 ], [ %.814011673, %1183 ], [ %.61399, %1126 ], [ %.01393, %1047 ], [ %.01393, %1029 ], [ %.01393, %1011 ], [ %.61399, %999 ], [ %.01393, %936 ], [ %.61399, %931 ], [ %.51398, %._crit_edge1910 ], [ %.31396, %644 ], [ %.31396, %641 ], [ %.11394, %._crit_edge1918 ], [ %.11394, %290 ], [ %.11394, %221 ]
  %.171392 = phi i64 [ %.613811674, %1224 ], [ %.613811674, %1206 ], [ %.613811674, %1183 ], [ %.41379, %1126 ], [ %.01375, %1047 ], [ %.01375, %1029 ], [ %.01375, %1011 ], [ %.41379, %999 ], [ %.01375, %936 ], [ %.41379, %931 ], [ %.31378, %._crit_edge1910 ], [ %.11376, %644 ], [ %.11376, %641 ], [ %.01375, %._crit_edge1918 ], [ %.01375, %290 ], [ %.01375, %221 ]
  %.71374 = phi double [ %.01367, %1224 ], [ %.01367, %1206 ], [ %.01367, %1183 ], [ %.41371, %1126 ], [ %.01367, %1047 ], [ %.01367, %1029 ], [ %.01367, %1011 ], [ %854, %999 ], [ %.01367, %936 ], [ %.51372, %931 ], [ %.11368.lcssa, %._crit_edge1910 ], [ %.01367, %644 ], [ %.01367, %641 ], [ %.01367, %._crit_edge1918 ], [ %.01367, %290 ], [ %.01367, %221 ]
  %.71366 = phi double [ %.01359, %1224 ], [ %.01359, %1206 ], [ %.01359, %1183 ], [ %.41363, %1126 ], [ %.01359, %1047 ], [ %.01359, %1029 ], [ %.01359, %1011 ], [ %855, %999 ], [ %.01359, %936 ], [ %.51364, %931 ], [ %.11360.lcssa, %._crit_edge1910 ], [ %.01359, %644 ], [ %.01359, %641 ], [ %.01359, %._crit_edge1918 ], [ %.01359, %290 ], [ %.01359, %221 ]
  %.22 = phi i8 [ %.141675, %1224 ], [ %.141675, %1206 ], [ %.141675, %1183 ], [ %.121357, %1126 ], [ %.01345, %1047 ], [ %.01345, %1029 ], [ %.01345, %1011 ], [ %.121357, %999 ], [ %.01345, %936 ], [ %.121357, %931 ], [ %.111356, %._crit_edge1910 ], [ 0, %644 ], [ 0, %641 ], [ %.11346, %._crit_edge1918 ], [ %.11346, %290 ], [ %.11346, %221 ]
  %.13 = phi i64 [ 2, %1224 ], [ 2, %1206 ], [ 2, %1183 ], [ %.9, %1126 ], [ %.01337, %1047 ], [ %.01337, %1029 ], [ %.01337, %1011 ], [ %.9, %999 ], [ %.01337, %936 ], [ %.9, %931 ], [ 2, %._crit_edge1910 ], [ -1, %644 ], [ -1, %641 ], [ %.01337, %._crit_edge1918 ], [ %.01337, %290 ], [ %.01337, %221 ]
  %.7 = phi i8 [ 1, %1224 ], [ 1, %1206 ], [ 0, %1183 ], [ %.3, %1126 ], [ %.0, %1047 ], [ %.0, %1029 ], [ %.0, %1011 ], [ %.3, %999 ], [ %.0, %936 ], [ %.3, %931 ], [ 1, %._crit_edge1910 ], [ 1, %644 ], [ 1, %641 ], [ %.0, %._crit_edge1918 ], [ %.0, %290 ], [ %.0, %221 ]
  store i32 %.sink2047, ptr %3, align 8, !tbaa !5
  %1801 = getelementptr inbounds i8, ptr %0, i64 4056
  %1802 = load ptr, ptr %1801, align 8, !tbaa !56
  store i64 %.33, ptr %1802, align 8, !tbaa !57
  %1803 = load ptr, ptr %1801, align 8, !tbaa !56
  %1804 = getelementptr inbounds i8, ptr %1803, i64 8
  store i64 %.23, ptr %1804, align 8, !tbaa !57
  %1805 = load ptr, ptr %1801, align 8, !tbaa !56
  %1806 = getelementptr inbounds i8, ptr %1805, i64 16
  store i64 %.191491, ptr %1806, align 8, !tbaa !57
  %1807 = load ptr, ptr %1801, align 8, !tbaa !56
  %1808 = getelementptr inbounds i8, ptr %1807, i64 24
  store i64 %.171471, ptr %1808, align 8, !tbaa !57
  %1809 = load ptr, ptr %1801, align 8, !tbaa !56
  %1810 = getelementptr inbounds i8, ptr %1809, i64 32
  store i64 %.171453, ptr %1810, align 8, !tbaa !57
  %1811 = load ptr, ptr %1801, align 8, !tbaa !56
  %1812 = getelementptr inbounds i8, ptr %1811, i64 40
  store i64 %.201435, ptr %1812, align 8, !tbaa !57
  %1813 = load ptr, ptr %1801, align 8, !tbaa !56
  %1814 = getelementptr inbounds i8, ptr %1813, i64 48
  store i64 %.101414, ptr %1814, align 8, !tbaa !57
  %1815 = load ptr, ptr %1801, align 8, !tbaa !56
  %1816 = getelementptr inbounds i8, ptr %1815, i64 56
  store i64 %.101403, ptr %1816, align 8, !tbaa !57
  %1817 = load ptr, ptr %1801, align 8, !tbaa !56
  %1818 = getelementptr inbounds i8, ptr %1817, i64 64
  store i64 %.171392, ptr %1818, align 8, !tbaa !57
  %1819 = load ptr, ptr %1801, align 8, !tbaa !56
  %1820 = getelementptr inbounds i8, ptr %1819, i64 72
  store i64 %.13, ptr %1820, align 8, !tbaa !57
  %1821 = getelementptr inbounds i8, ptr %0, i64 4120
  %1822 = load ptr, ptr %1821, align 8, !tbaa !56
  %1823 = and i8 %.22, 1
  store i8 %1823, ptr %1822, align 1, !tbaa !58
  %1824 = load ptr, ptr %1821, align 8, !tbaa !56
  %1825 = getelementptr inbounds i8, ptr %1824, i64 1
  %1826 = and i8 %.7, 1
  store i8 %1826, ptr %1825, align 1, !tbaa !58
  %1827 = getelementptr inbounds i8, ptr %0, i64 4184
  %1828 = load ptr, ptr %1827, align 8, !tbaa !56
  store double %.71374, ptr %1828, align 8, !tbaa !61
  %1829 = load ptr, ptr %1827, align 8, !tbaa !56
  %1830 = getelementptr inbounds i8, ptr %1829, i64 8
  store double %.71366, ptr %1830, align 8, !tbaa !61
  br label %1831

1831:                                             ; preds = %1800, %.loopexit1759, %180
  %.01539 = phi i1 [ true, %1800 ], [ false, %.loopexit1759 ], [ false, %180 ]
  ret i1 %.01539
}

declare void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef, double noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

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

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

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

declare void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

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

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

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

declare void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

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

declare void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

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

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

declare noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #0

declare noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

declare void @_ZN11alglib_impl15sparseinitduidxEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl6rsetvxEldPNS_9ae_vectorElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

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

!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, !20, i64 3992}
!6 = !{!"_ZTSN11alglib_impl11minnlcstateE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !11, i64 32, !10, i64 56, !12, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !13, i64 96, !13, i64 160, !13, i64 224, !13, i64 288, !13, i64 352, !16, i64 416, !10, i64 2232, !13, i64 2240, !13, i64 2304, !10, i64 2368, !12, i64 2376, !13, i64 2384, !7, i64 2448, !13, i64 2456, !17, i64 2520, !12, i64 2600, !12, i64 2601, !12, i64 2602, !10, i64 2608, !13, i64 2616, !7, i64 2680, !10, i64 2688, !10, i64 2696, !10, i64 2704, !10, i64 2712, !10, i64 2720, !13, i64 2728, !13, i64 2792, !13, i64 2856, !18, i64 2920, !13, i64 3288, !13, i64 3352, !13, i64 3416, !13, i64 3480, !17, i64 3544, !18, i64 3624, !19, i64 3992, !19, i64 4256, !13, i64 4520, !13, i64 4584, !17, i64 4648, !13, i64 4728, !13, i64 4792, !13, i64 4856, !13, i64 4920, !13, i64 4984, !13, i64 5048, !13, i64 5112, !13, i64 5176, !13, i64 5240, !13, i64 5304, !13, i64 5368, !13, i64 5432, !13, i64 5496, !13, i64 5560, !17, i64 5624, !17, i64 5704, !13, i64 5784, !13, i64 5848, !13, i64 5912, !13, i64 5976, !7, i64 6040, !12, i64 6048, !13, i64 6056, !13, i64 6120, !21, i64 6184, !18, i64 37712, !13, i64 38080, !13, i64 38144, !12, i64 38208, !36, i64 38216, !48, i64 100960, !10, i64 164120, !51, i64 164128, !13, i64 169832, !10, i64 169896, !10, i64 169904, !10, i64 169912, !10, i64 169920, !7, i64 169928, !10, i64 169936, !7, i64 169944, !10, i64 169952, !7, i64 169960, !10, i64 169968, !10, i64 169976, !13, i64 169984, !13, i64 170048, !13, i64 170112, !13, i64 170176, !13, i64 170240, !13, i64 170304, !13, i64 170368, !10, i64 170432, !10, i64 170440}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !7, i64 0, !7, i64 8, !10, i64 16}
!12 = !{!"bool", !8, i64 0}
!13 = !{!"_ZTSN11alglib_impl9ae_vectorE", !10, i64 0, !10, i64 8, !12, i64 16, !14, i64 24, !8, i64 56}
!14 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!"_ZTSN11alglib_impl18xlinearconstraintsE", !10, i64 0, !10, i64 8, !10, i64 16, !17, i64 24, !18, i64 104, !13, i64 472, !13, i64 536, !13, i64 600, !13, i64 664, !10, i64 728, !10, i64 736, !17, i64 744, !13, i64 824, !13, i64 888, !18, i64 952, !13, i64 1320, !13, i64 1384, !18, i64 1448}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !12, i64 32, !14, i64 40, !8, i64 72}
!18 = !{!"_ZTSN11alglib_impl12sparsematrixE", !13, i64 0, !13, i64 64, !13, i64 128, !13, i64 192, !13, i64 256, !10, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360}
!19 = !{!"_ZTSN11alglib_impl10rcommstateE", !20, i64 0, !13, i64 8, !13, i64 72, !13, i64 136, !13, i64 200}
!20 = !{!"int", !8, i64 0}
!21 = !{!"_ZTSN11alglib_impl11minaulstateE", !10, i64 0, !10, i64 8, !10, i64 16, !13, i64 24, !13, i64 88, !13, i64 152, !13, i64 216, !13, i64 280, !13, i64 344, !13, i64 408, !18, i64 472, !13, i64 840, !13, i64 904, !13, i64 968, !13, i64 1032, !13, i64 1096, !13, i64 1160, !13, i64 1224, !13, i64 1288, !13, i64 1352, !11, i64 1416, !10, i64 1440, !10, i64 1448, !13, i64 1456, !13, i64 1520, !18, i64 1584, !7, i64 1952, !12, i64 1960, !12, i64 1961, !12, i64 1962, !7, i64 1968, !22, i64 1976, !22, i64 2576, !22, i64 3176, !22, i64 3776, !22, i64 4376, !22, i64 4976, !7, i64 5576, !10, i64 5584, !10, i64 5592, !13, i64 5600, !13, i64 5664, !13, i64 5728, !13, i64 5792, !13, i64 5856, !13, i64 5920, !13, i64 5984, !23, i64 6048, !34, i64 22296, !34, i64 25656, !13, i64 29016, !13, i64 29080, !13, i64 29144, !13, i64 29208, !10, i64 29272, !10, i64 29280, !10, i64 29288, !7, i64 29296, !10, i64 29304, !35, i64 29312, !7, i64 29504, !7, i64 29512, !13, i64 29520, !13, i64 29584, !13, i64 29648, !17, i64 29712, !13, i64 29792, !13, i64 29856, !22, i64 29920, !22, i64 30520, !10, i64 31120, !10, i64 31128, !10, i64 31136, !7, i64 31144, !10, i64 31152, !7, i64 31160, !10, i64 31168, !7, i64 31176, !10, i64 31184, !10, i64 31192, !13, i64 31200, !19, i64 31264}
!22 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !10, i64 0, !10, i64 8, !12, i64 16, !13, i64 24, !13, i64 88, !17, i64 152, !18, i64 232}
!23 = !{!"_ZTSN11alglib_impl20minaulpreconditionerE", !10, i64 0, !10, i64 8, !24, i64 16, !18, i64 15080, !10, i64 15448, !17, i64 15456, !17, i64 15536, !10, i64 15616, !17, i64 15624, !13, i64 15704, !13, i64 15768, !13, i64 15832, !13, i64 15896, !17, i64 15960, !17, i64 16040, !13, i64 16120, !13, i64 16184}
!24 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !10, i64 0, !10, i64 8, !10, i64 16, !12, i64 24, !10, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !13, i64 72, !12, i64 136, !12, i64 137, !12, i64 138, !12, i64 139, !12, i64 140, !13, i64 144, !10, i64 208, !13, i64 216, !13, i64 280, !13, i64 344, !13, i64 408, !13, i64 472, !13, i64 536, !12, i64 600, !13, i64 608, !13, i64 672, !13, i64 736, !13, i64 800, !13, i64 864, !13, i64 928, !12, i64 992, !12, i64 993, !25, i64 1000, !13, i64 1512, !13, i64 1576, !13, i64 1640, !13, i64 1704, !13, i64 1768, !13, i64 1832, !26, i64 1896, !26, i64 2040, !26, i64 2184, !26, i64 2328, !26, i64 2472, !26, i64 2616, !13, i64 2760, !13, i64 2824, !13, i64 2888, !13, i64 2952, !13, i64 3016, !28, i64 3080, !33, i64 7464, !13, i64 13816, !13, i64 13880, !13, i64 13944, !13, i64 14008, !13, i64 14072, !13, i64 14136, !18, i64 14200, !18, i64 14568, !13, i64 14936, !13, i64 15000}
!25 = !{!"_ZTSN11alglib_impl9spcholadjE", !13, i64 0, !13, i64 64, !13, i64 128, !13, i64 192, !13, i64 256, !13, i64 320, !13, i64 384, !13, i64 448}
!26 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !14, i64 32, !27, i64 64, !14, i64 112}
!27 = !{!"_ZTSN11alglib_impl7ae_lockE", !15, i64 0, !14, i64 8, !12, i64 40}
!28 = !{!"_ZTSN11alglib_impl9amdbufferE", !10, i64 0, !12, i64 8, !12, i64 9, !13, i64 16, !13, i64 80, !13, i64 144, !29, i64 208, !29, i64 568, !29, i64 928, !30, i64 1288, !31, i64 1496, !32, i64 1968, !13, i64 2120, !13, i64 2184, !13, i64 2248, !32, i64 2312, !32, i64 2464, !32, i64 2616, !32, i64 2768, !32, i64 2920, !32, i64 3072, !13, i64 3224, !10, i64 3288, !32, i64 3296, !32, i64 3448, !29, i64 3600, !32, i64 3960, !13, i64 4112, !13, i64 4176, !13, i64 4240, !17, i64 4304}
!29 = !{!"_ZTSN11alglib_impl8amdknsetE", !10, i64 0, !10, i64 8, !13, i64 16, !13, i64 80, !13, i64 144, !13, i64 208, !13, i64 272, !10, i64 336, !10, i64 344, !10, i64 352}
!30 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !10, i64 0, !13, i64 8, !13, i64 72, !13, i64 136, !10, i64 200}
!31 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !10, i64 0, !12, i64 8, !10, i64 16, !13, i64 24, !13, i64 88, !13, i64 152, !13, i64 216, !13, i64 280, !13, i64 344, !13, i64 408}
!32 = !{!"_ZTSN11alglib_impl5nisetE", !10, i64 0, !10, i64 8, !13, i64 16, !13, i64 80, !10, i64 144}
!33 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !13, i64 0, !13, i64 64, !28, i64 128, !18, i64 4512, !18, i64 4880, !18, i64 5248, !18, i64 5616, !18, i64 5984}
!34 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !10, i64 0, !13, i64 8, !13, i64 72, !10, i64 136, !10, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !10, i64 208, !7, i64 216, !7, i64 224, !17, i64 232, !10, i64 312, !7, i64 320, !7, i64 328, !7, i64 336, !10, i64 344, !7, i64 352, !17, i64 360, !17, i64 440, !17, i64 520, !17, i64 600, !12, i64 680, !10, i64 688, !17, i64 696, !17, i64 776, !12, i64 856, !13, i64 864, !12, i64 928, !10, i64 936, !17, i64 944, !13, i64 1024, !13, i64 1088, !17, i64 1152, !13, i64 1232, !13, i64 1296, !12, i64 1360, !13, i64 1368, !7, i64 1432, !7, i64 1440, !10, i64 1448, !17, i64 1456, !13, i64 1536, !13, i64 1600, !13, i64 1664, !13, i64 1728, !13, i64 1792, !13, i64 1856, !17, i64 1920, !17, i64 2000, !17, i64 2080, !17, i64 2160, !17, i64 2240, !17, i64 2320, !17, i64 2400, !17, i64 2480, !13, i64 2560, !13, i64 2624, !17, i64 2688, !13, i64 2768, !17, i64 2832, !17, i64 2912, !17, i64 2992, !17, i64 3072, !17, i64 3152, !13, i64 3232, !13, i64 3296}
!35 = !{!"_ZTSN11alglib_impl11linminstateE", !12, i64 0, !12, i64 1, !10, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184}
!36 = !{!"_ZTSN11alglib_impl11minsqpstateE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !12, i64 40, !13, i64 48, !17, i64 112, !13, i64 192, !13, i64 256, !13, i64 320, !13, i64 384, !13, i64 448, !11, i64 512, !10, i64 536, !13, i64 544, !13, i64 608, !17, i64 672, !7, i64 752, !12, i64 760, !12, i64 761, !7, i64 768, !7, i64 776, !7, i64 784, !10, i64 792, !10, i64 800, !22, i64 808, !13, i64 1408, !13, i64 1472, !13, i64 1536, !13, i64 1600, !37, i64 1664, !34, i64 55416, !47, i64 58776, !10, i64 58912, !13, i64 58920, !13, i64 58984, !22, i64 59048, !22, i64 59648, !22, i64 60248, !22, i64 60848, !13, i64 61448, !13, i64 61512, !13, i64 61576, !13, i64 61640, !13, i64 61704, !13, i64 61768, !13, i64 61832, !13, i64 61896, !13, i64 61960, !13, i64 62024, !13, i64 62088, !13, i64 62152, !13, i64 62216, !13, i64 62280, !10, i64 62344, !10, i64 62352, !7, i64 62360, !10, i64 62368, !7, i64 62376, !10, i64 62384, !7, i64 62392, !10, i64 62400, !45, i64 62408, !45, i64 62432, !45, i64 62456, !19, i64 62480}
!37 = !{!"_ZTSN11alglib_impl15minsqpsubsolverE", !38, i64 0, !42, i64 26648, !13, i64 50544, !13, i64 50608, !13, i64 50672, !13, i64 50736, !13, i64 50800, !18, i64 50864, !18, i64 51232, !13, i64 51600, !17, i64 51664, !13, i64 51744, !17, i64 51808, !18, i64 51888, !13, i64 52256, !13, i64 52320, !13, i64 52384, !13, i64 52448, !13, i64 52512, !13, i64 52576, !13, i64 52640, !13, i64 52704, !17, i64 52768, !13, i64 52848, !13, i64 52912, !17, i64 52976, !13, i64 53056, !10, i64 53120, !18, i64 53128, !13, i64 53496, !13, i64 53560, !13, i64 53624, !13, i64 53688}
!38 = !{!"_ZTSN11alglib_impl9vipmstateE", !12, i64 0, !12, i64 1, !10, i64 8, !10, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !12, i64 48, !13, i64 56, !13, i64 120, !13, i64 184, !7, i64 248, !13, i64 256, !17, i64 320, !18, i64 400, !13, i64 768, !10, i64 832, !12, i64 840, !13, i64 848, !13, i64 912, !13, i64 976, !13, i64 1040, !13, i64 1104, !13, i64 1168, !17, i64 1232, !17, i64 1312, !18, i64 1392, !18, i64 1760, !18, i64 2128, !13, i64 2496, !13, i64 2560, !13, i64 2624, !13, i64 2688, !13, i64 2752, !10, i64 2816, !10, i64 2824, !39, i64 2832, !39, i64 3488, !39, i64 4144, !39, i64 4800, !39, i64 5456, !13, i64 6112, !13, i64 6176, !13, i64 6240, !13, i64 6304, !13, i64 6368, !10, i64 6432, !10, i64 6440, !10, i64 6448, !10, i64 6456, !10, i64 6464, !10, i64 6472, !12, i64 6480, !12, i64 6481, !10, i64 6488, !12, i64 6496, !12, i64 6497, !13, i64 6504, !13, i64 6568, !13, i64 6632, !13, i64 6696, !13, i64 6760, !13, i64 6824, !13, i64 6888, !13, i64 6952, !13, i64 7016, !13, i64 7080, !13, i64 7144, !13, i64 7208, !13, i64 7272, !13, i64 7336, !13, i64 7400, !17, i64 7464, !13, i64 7544, !13, i64 7608, !13, i64 7672, !13, i64 7736, !13, i64 7800, !40, i64 7864, !41, i64 23944, !13, i64 24584, !13, i64 24648, !13, i64 24712, !13, i64 24776, !13, i64 24840, !13, i64 24904, !13, i64 24968, !13, i64 25032, !39, i64 25096, !13, i64 25752, !13, i64 25816, !13, i64 25880, !13, i64 25944, !13, i64 26008, !17, i64 26072, !13, i64 26152, !13, i64 26216, !18, i64 26280}
!39 = !{!"_ZTSN11alglib_impl8vipmvarsE", !10, i64 0, !10, i64 8, !13, i64 16, !13, i64 80, !13, i64 144, !13, i64 208, !13, i64 272, !13, i64 336, !13, i64 400, !13, i64 464, !13, i64 528, !13, i64 592}
!40 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !18, i64 0, !13, i64 368, !13, i64 432, !13, i64 496, !13, i64 560, !10, i64 624, !24, i64 632, !13, i64 15696, !13, i64 15760, !13, i64 15824, !13, i64 15888, !13, i64 15952, !13, i64 16016}
!41 = !{!"_ZTSN11alglib_impl17vipmrighthandsideE", !13, i64 0, !13, i64 64, !13, i64 128, !13, i64 192, !13, i64 256, !13, i64 320, !13, i64 384, !13, i64 448, !13, i64 512, !13, i64 576}
!42 = !{!"_ZTSN11alglib_impl9ipm2stateE", !10, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !10, i64 48, !12, i64 56, !13, i64 64, !13, i64 128, !13, i64 192, !7, i64 256, !13, i64 264, !18, i64 328, !13, i64 696, !12, i64 760, !7, i64 768, !13, i64 776, !13, i64 840, !13, i64 904, !13, i64 968, !13, i64 1032, !13, i64 1096, !13, i64 1160, !13, i64 1224, !13, i64 1288, !13, i64 1352, !13, i64 1416, !13, i64 1480, !13, i64 1544, !13, i64 1608, !13, i64 1672, !18, i64 1736, !13, i64 2104, !10, i64 2168, !43, i64 2176, !43, i64 2576, !43, i64 2976, !43, i64 3376, !13, i64 3776, !13, i64 3840, !13, i64 3904, !13, i64 3968, !10, i64 4032, !10, i64 4040, !13, i64 4048, !13, i64 4112, !13, i64 4176, !44, i64 4240, !10, i64 4624, !10, i64 4632, !12, i64 4640, !12, i64 4641, !12, i64 4642, !45, i64 4648, !45, i64 4672, !45, i64 4696, !45, i64 4720, !45, i64 4744, !46, i64 4768, !44, i64 21736, !13, i64 22120, !13, i64 22184, !13, i64 22248, !13, i64 22312, !13, i64 22376, !17, i64 22440, !18, i64 22520, !13, i64 22888, !13, i64 22952, !18, i64 23016, !18, i64 23384, !17, i64 23752, !13, i64 23832}
!43 = !{!"_ZTSN11alglib_impl8ipm2varsE", !10, i64 0, !10, i64 8, !13, i64 16, !13, i64 80, !13, i64 144, !13, i64 208, !13, i64 272, !13, i64 336}
!44 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !13, i64 0, !13, i64 64, !13, i64 128, !13, i64 192, !13, i64 256, !13, i64 320}
!45 = !{!"_ZTSN11alglib_impl6stimerE", !10, i64 0, !10, i64 8, !12, i64 16}
!46 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !18, i64 0, !13, i64 368, !24, i64 432, !13, i64 15496, !13, i64 15560, !13, i64 15624, !13, i64 15688, !13, i64 15752, !13, i64 15816, !13, i64 15880, !13, i64 15944, !13, i64 16008, !13, i64 16072, !13, i64 16136, !13, i64 16200, !13, i64 16264, !13, i64 16328, !13, i64 16392, !13, i64 16456, !13, i64 16520, !13, i64 16584, !13, i64 16648, !13, i64 16712, !13, i64 16776, !13, i64 16840, !13, i64 16904}
!47 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !10, i64 0, !10, i64 8, !12, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !15, i64 48, !27, i64 56, !14, i64 104}
!48 = !{!"_ZTSN11alglib_impl12minfsqpstateE", !10, i64 0, !10, i64 8, !10, i64 16, !12, i64 24, !13, i64 32, !18, i64 96, !13, i64 464, !13, i64 528, !13, i64 592, !13, i64 656, !13, i64 720, !13, i64 784, !13, i64 848, !13, i64 912, !13, i64 976, !13, i64 1040, !13, i64 1104, !13, i64 1168, !13, i64 1232, !13, i64 1296, !13, i64 1360, !13, i64 1424, !13, i64 1488, !13, i64 1552, !7, i64 1616, !7, i64 1624, !11, i64 1632, !10, i64 1656, !13, i64 1664, !13, i64 1728, !18, i64 1792, !7, i64 2160, !12, i64 2168, !12, i64 2169, !7, i64 2176, !7, i64 2184, !10, i64 2192, !10, i64 2200, !22, i64 2208, !13, i64 2808, !13, i64 2872, !49, i64 2936, !34, i64 56768, !13, i64 60128, !13, i64 60192, !22, i64 60256, !22, i64 60856, !13, i64 61456, !13, i64 61520, !13, i64 61584, !50, i64 61648, !13, i64 61816, !13, i64 61880, !13, i64 61944, !13, i64 62008, !13, i64 62072, !13, i64 62136, !13, i64 62200, !13, i64 62264, !13, i64 62328, !13, i64 62392, !13, i64 62456, !13, i64 62520, !13, i64 62584, !13, i64 62648, !10, i64 62712, !10, i64 62720, !7, i64 62728, !10, i64 62736, !7, i64 62744, !10, i64 62752, !7, i64 62760, !10, i64 62768, !45, i64 62776, !45, i64 62800, !45, i64 62824, !45, i64 62848, !45, i64 62872, !19, i64 62896}
!49 = !{!"_ZTSN11alglib_impl16minfsqpsubsolverE", !38, i64 0, !42, i64 26648, !13, i64 50544, !13, i64 50608, !13, i64 50672, !13, i64 50736, !13, i64 50800, !18, i64 50864, !18, i64 51232, !13, i64 51600, !7, i64 51664, !7, i64 51672, !17, i64 51680, !13, i64 51760, !17, i64 51824, !18, i64 51904, !13, i64 52272, !13, i64 52336, !13, i64 52400, !13, i64 52464, !13, i64 52528, !13, i64 52592, !13, i64 52656, !13, i64 52720, !13, i64 52784, !17, i64 52848, !13, i64 52928, !13, i64 52992, !17, i64 53056, !13, i64 53136, !10, i64 53200, !18, i64 53208, !13, i64 53576, !13, i64 53640, !13, i64 53704, !13, i64 53768}
!50 = !{!"_ZTSN11alglib_impl9nlpfilterE", !7, i64 0, !10, i64 8, !7, i64 16, !7, i64 24, !12, i64 32, !13, i64 40, !13, i64 104}
!51 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !10, i64 0, !10, i64 8, !12, i64 16, !13, i64 24, !13, i64 88, !10, i64 152, !13, i64 160, !13, i64 224, !13, i64 288, !17, i64 352, !13, i64 432, !13, i64 496, !10, i64 560, !10, i64 568, !10, i64 576, !7, i64 584, !10, i64 592, !13, i64 600, !13, i64 664, !7, i64 728, !13, i64 736, !13, i64 800, !7, i64 864, !17, i64 872, !17, i64 952, !17, i64 1032, !13, i64 1112, !13, i64 1176, !19, i64 1240, !12, i64 1504, !12, i64 1505, !10, i64 1512, !10, i64 1520, !7, i64 1528, !7, i64 1536, !12, i64 1544, !52, i64 1552, !7, i64 1848, !7, i64 1856, !53, i64 1864, !53, i64 2184, !7, i64 2504, !7, i64 2512, !54, i64 2520, !54, i64 2840, !7, i64 3160, !7, i64 3168, !55, i64 3176, !55, i64 3504, !12, i64 3832, !13, i64 3840, !13, i64 3904, !17, i64 3968, !19, i64 4048, !13, i64 4312, !13, i64 4376, !13, i64 4440, !13, i64 4504, !13, i64 4568, !13, i64 4632, !13, i64 4696, !13, i64 4760, !17, i64 4824, !17, i64 4904, !13, i64 4984, !13, i64 5048, !13, i64 5112, !13, i64 5176, !13, i64 5240, !13, i64 5304, !13, i64 5368, !13, i64 5432, !13, i64 5496, !13, i64 5560, !17, i64 5624}
!52 = !{!"_ZTSN11alglib_impl14optguardreportE", !12, i64 0, !12, i64 1, !10, i64 8, !7, i64 16, !12, i64 24, !12, i64 25, !12, i64 26, !10, i64 32, !7, i64 40, !12, i64 48, !10, i64 56, !10, i64 64, !13, i64 72, !17, i64 136, !17, i64 216}
!53 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !12, i64 0, !10, i64 8, !13, i64 16, !13, i64 80, !10, i64 144, !13, i64 152, !13, i64 216, !10, i64 280, !10, i64 288, !10, i64 296, !10, i64 304, !10, i64 312}
!54 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !12, i64 0, !10, i64 8, !13, i64 16, !13, i64 80, !10, i64 144, !13, i64 152, !13, i64 216, !10, i64 280, !10, i64 288, !10, i64 296, !10, i64 304, !10, i64 312}
!55 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !12, i64 0, !10, i64 8, !10, i64 16, !13, i64 24, !13, i64 88, !10, i64 152, !13, i64 160, !13, i64 224, !10, i64 288, !10, i64 296, !10, i64 304, !10, i64 312, !10, i64 320}
!56 = !{!8, !8, i64 0}
!57 = !{!10, !10, i64 0}
!58 = !{!12, !12, i64 0}
!59 = !{i8 0, i8 2}
!60 = !{}
!61 = !{!7, !7, i64 0}
!62 = !{!6, !12, i64 38208}
!63 = !{!6, !10, i64 169976}
!64 = !{!6, !10, i64 169936}
!65 = !{!6, !7, i64 169944}
!66 = !{!6, !10, i64 169952}
!67 = !{!6, !7, i64 169960}
!68 = !{!6, !10, i64 169968}
!69 = !{!6, !10, i64 24}
!70 = !{!6, !10, i64 432}
!71 = !{!6, !10, i64 424}
!72 = !{!6, !10, i64 2232}
!73 = !{!6, !10, i64 164120}
!74 = !{!6, !10, i64 16}
!75 = distinct !{!75, !76}
!76 = !{!"llvm.loop.mustprogress"}
!77 = distinct !{!77, !78}
!78 = !{!"llvm.loop.unroll.disable"}
!79 = !{!6, !10, i64 2368}
!80 = !{!6, !10, i64 2456}
!81 = !{!6, !10, i64 2520}
!82 = !{!6, !10, i64 2528}
!83 = !{!6, !7, i64 80}
!84 = !{!6, !10, i64 169920}
!85 = !{!6, !7, i64 169928}
!86 = distinct !{!86, !76}
!87 = !{!6, !7, i64 88}
!88 = !{!6, !12, i64 2376}
!89 = !{!6, !10, i64 2608}
!90 = !{!6, !10, i64 2688}
!91 = !{!6, !10, i64 2696}
!92 = !{!6, !10, i64 2704}
!93 = !{!6, !10, i64 2712}
!94 = distinct !{!94, !76}
!95 = !{!15, !15, i64 0}
!96 = distinct !{!96, !76}
!97 = distinct !{!97, !76}
!98 = distinct !{!98, !76}
!99 = distinct !{!99, !76}
!100 = distinct !{!100, !78}
!101 = !{!6, !12, i64 2600}
!102 = distinct !{!102, !76}
!103 = distinct !{!103, !76}
!104 = !{!6, !10, i64 56}
!105 = !{!6, !10, i64 1144}
!106 = !{!6, !10, i64 1152}
!107 = !{!6, !10, i64 170432}
!108 = !{!6, !10, i64 170440}
!109 = !{!6, !12, i64 8144}
!110 = !{!6, !12, i64 8146}
!111 = !{!6, !7, i64 8136}
!112 = !{!6, !12, i64 38976}
!113 = !{!6, !12, i64 38977}
!114 = !{!6, !7, i64 38968}
!115 = !{!6, !12, i64 103128}
!116 = !{!6, !12, i64 103129}
!117 = !{!6, !7, i64 103120}
!118 = !{!6, !12, i64 64}
!119 = !{!6, !12, i64 2602}
!120 = !{!6, !10, i64 2720}
!121 = !{!6, !10, i64 2728}
!122 = !{!6, !10, i64 169912}
!123 = distinct !{!123, !76}
!124 = !{!6, !12, i64 2601}
!125 = distinct !{!125, !76}
!126 = distinct !{!126, !76}
!127 = distinct !{!127, !76}
!128 = distinct !{!128, !78}
!129 = distinct !{!129, !76}
!130 = distinct !{!130, !76}
!131 = distinct !{!131, !76}
!132 = !{!6, !10, i64 8088}
!133 = !{!6, !10, i64 8096}
!134 = !{!6, !10, i64 8104}
!135 = distinct !{!135, !76}
!136 = distinct !{!136, !76}
!137 = distinct !{!137, !76}
!138 = !{!6, !10, i64 8120}
!139 = distinct !{!139, !76}
!140 = distinct !{!140, !76}
!141 = distinct !{!141, !76}
!142 = distinct !{!142, !76}
!143 = distinct !{!143, !76}
!144 = !{!6, !10, i64 37312}
!145 = !{!6, !10, i64 169904}
!146 = !{!6, !10, i64 37304}
!147 = !{!6, !10, i64 169896}
!148 = !{!6, !7, i64 37328}
!149 = !{!6, !10, i64 37336}
!150 = !{!6, !7, i64 37344}
!151 = !{!6, !10, i64 37352}
!152 = !{!6, !7, i64 37360}
!153 = !{!6, !10, i64 37368}
!154 = !{!6, !10, i64 100568}
!155 = !{!6, !10, i64 100560}
!156 = !{!6, !7, i64 100576}
!157 = !{!6, !10, i64 100584}
!158 = !{!6, !7, i64 100592}
!159 = !{!6, !10, i64 100600}
!160 = !{!6, !7, i64 100608}
!161 = !{!6, !10, i64 100616}
!162 = !{!6, !10, i64 163680}
!163 = !{!6, !10, i64 163672}
!164 = !{!6, !7, i64 163688}
!165 = !{!6, !10, i64 163696}
!166 = !{!6, !7, i64 163704}
!167 = !{!6, !10, i64 163712}
!168 = !{!6, !7, i64 163720}
!169 = !{!6, !10, i64 163728}
!170 = distinct !{!170, !76}
!171 = distinct !{!171, !76}
!172 = distinct !{!172, !76}
!173 = distinct !{!173, !78}


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