; LLVM IR from venumb/ZSPACE :: cpp/depends/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::minlmstate" = type { i64, i64, double, double, i64, i8, double, i64, i8, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, i8, i8, i64, i8, i8, i8, %"struct.alglib_impl::ae_vector", double, %"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_matrix", i64, i64, double, double, i64, %"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::smoothnessmonitor", double, %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64, i64, %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, 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::ae_vector", %"struct.alglib_impl::minlbfgsstate", %"struct.alglib_impl::minlbfgsreport", %"struct.alglib_impl::minqpstate", %"struct.alglib_impl::minqpreport", %"struct.alglib_impl::minlmstepfinder" }
%"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::smoothnessmonitor" = type { i64, i64, 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_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, i8, double, double, i8, %"struct.alglib_impl::optguardreport", 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::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 }
%"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 }
%"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_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::minlbfgsstate" = type { i64, i64, double, double, double, i64, i8, double, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"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", double, %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", i64, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::precbuflbfgs", %"struct.alglib_impl::precbuflowrank", double, double, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, double, %"struct.alglib_impl::rcommstate", i64, i64, i64, %"struct.alglib_impl::linminstate", i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::precbuflbfgs" = type { %"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::precbuflowrank" = type { i64, i64, %"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_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::minlbfgsreport" = type { i64, i64, i64 }
%"struct.alglib_impl::minqpstate" = type { i64, %"struct.alglib_impl::qqpsettings", %"struct.alglib_impl::qpbleicsettings", %"struct.alglib_impl::qpdenseaulsettings", i8, i64, i64, %"struct.alglib_impl::convexquadraticmodel", %"struct.alglib_impl::sparsematrix", i8, double, double, double, %"struct.alglib_impl::ae_vector", %"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_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_matrix", i64, i64, %"struct.alglib_impl::sparsematrix", i64, i64, %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i8, %"struct.alglib_impl::qpbleicbuffers", %"struct.alglib_impl::qqpbuffers", %"struct.alglib_impl::qpdenseaulbuffers" }
%"struct.alglib_impl::qqpsettings" = type { double, double, double, i64, i8, i8, i64, i64, i64, i64 }
%"struct.alglib_impl::qpbleicsettings" = type { double, double, double, i64 }
%"struct.alglib_impl::qpdenseaulsettings" = type { double, i64, double }
%"struct.alglib_impl::convexquadraticmodel" = type { i64, i64, double, double, double, %"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_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"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", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, i8, i8, i8 }
%"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::qpbleicbuffers" = type { %"struct.alglib_impl::minbleicstate", %"struct.alglib_impl::minbleicreport", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64 }
%"struct.alglib_impl::minbleicstate" = type { i64, i64, double, double, double, i64, i8, i8, double, double, %"struct.alglib_impl::sactiveset", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, i8, i8, %"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", double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, i64, double, double, double, %"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, double, double, double, double, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::snnlssolver", double, double, double, double, double, double, double, double, double, i64, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::linminstate", double, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, double, i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sactiveset" = type { i64, i64, %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_vector", i64, 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_matrix", 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::snnlssolver", %"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_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_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::snnlssolver" = type { i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, %"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_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::minbleicreport" = type { i64, i64, i64, i64, double, double, double, double, i64, i64, i64, i64 }
%"struct.alglib_impl::qqpbuffers" = type { i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", 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::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sactiveset", %"struct.alglib_impl::ae_vector", 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", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsebuffers", i64, i64, i64, i64 }
%"struct.alglib_impl::sparsebuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::qpdenseaulbuffers" = type { %"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_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::qqpsettings", %"struct.alglib_impl::qqpbuffers", %"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::convexquadraticmodel", %"struct.alglib_impl::sparsematrix", %"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", i64, i64, i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::minqpreport" = type { i64, i64, i64, i64, i64 }
%"struct.alglib_impl::minlmstepfinder" = type { i64, i64, double, i64, i64, i8, double, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, 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::rcommstate", %"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::minqpstate", %"struct.alglib_impl::minqpreport", %"struct.alglib_impl::sparsematrix" }

@.str.605 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [69 x i8], align 1
@_ZN11alglib_implL18minlm_suspiciousnuE = external hidden global double, align 8
@.str.613 = external hidden unnamed_addr constant [49 x i8], align 1

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

; Function Attrs: nocallback nofree 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
declare dso_local void @_ZN11alglib_impl10minqpsetbcEPNS_10minqpstateEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl14minlmiterationEPNS_10minlmstateEPNS_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 i8, align 1
  %9 = alloca i64, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i8, align 1
  %17 = 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 1, 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 1, ptr %16) #5
  %18 = load ptr, ptr %4, align 8, !tbaa !5
  %19 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %18, i32 0, i32 58
  %20 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %19, i32 0, i32 0
  %21 = load i32, ptr %20, align 8, !tbaa !9
  %22 = icmp sge i32 %21, 0
  br i1 %22, label %23, label %96

23:                                               ; preds = %2
  %24 = load ptr, ptr %4, align 8, !tbaa !5
  %25 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %24, i32 0, i32 58
  %26 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %25, i32 0, i32 1
  %27 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %26, i32 0, i32 4
  %28 = load ptr, ptr %27, align 8, !tbaa !44
  %29 = getelementptr inbounds i64, ptr %28, i64 0
  %30 = load i64, ptr %29, align 8, !tbaa !45
  store i64 %30, ptr %6, align 8, !tbaa !45
  %31 = load ptr, ptr %4, align 8, !tbaa !5
  %32 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %31, i32 0, i32 58
  %33 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %32, i32 0, i32 1
  %34 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %35 = load ptr, ptr %34, align 8, !tbaa !44
  %36 = getelementptr inbounds i64, ptr %35, i64 1
  %37 = load i64, ptr %36, align 8, !tbaa !45
  store i64 %37, ptr %7, align 8, !tbaa !45
  %38 = load ptr, ptr %4, align 8, !tbaa !5
  %39 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %38, i32 0, i32 58
  %40 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %39, i32 0, i32 1
  %41 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %40, i32 0, i32 4
  %42 = load ptr, ptr %41, align 8, !tbaa !44
  %43 = getelementptr inbounds i64, ptr %42, i64 2
  %44 = load i64, ptr %43, align 8, !tbaa !45
  store i64 %44, ptr %9, align 8, !tbaa !45
  %45 = load ptr, ptr %4, align 8, !tbaa !5
  %46 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %45, i32 0, i32 58
  %47 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %46, i32 0, i32 1
  %48 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %47, i32 0, i32 4
  %49 = load ptr, ptr %48, align 8, !tbaa !44
  %50 = getelementptr inbounds i64, ptr %49, i64 3
  %51 = load i64, ptr %50, align 8, !tbaa !45
  store i64 %51, ptr %14, align 8, !tbaa !45
  %52 = load ptr, ptr %4, align 8, !tbaa !5
  %53 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %52, i32 0, i32 58
  %54 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %53, i32 0, i32 1
  %55 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %54, i32 0, i32 4
  %56 = load ptr, ptr %55, align 8, !tbaa !44
  %57 = getelementptr inbounds i64, ptr %56, i64 4
  %58 = load i64, ptr %57, align 8, !tbaa !45
  store i64 %58, ptr %15, align 8, !tbaa !45
  %59 = load ptr, ptr %4, align 8, !tbaa !5
  %60 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %59, i32 0, i32 58
  %61 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %60, i32 0, i32 2
  %62 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %61, i32 0, i32 4
  %63 = load ptr, ptr %62, align 8, !tbaa !44
  %64 = getelementptr inbounds i8, ptr %63, i64 0
  %65 = load i8, ptr %64, align 1, !tbaa !46, !range !47, !noundef !48
  %66 = trunc i8 %65 to i1
  %67 = zext i1 %66 to i8
  store i8 %67, ptr %8, align 1, !tbaa !46
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %68, i32 0, i32 58
  %70 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %69, i32 0, i32 3
  %71 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %70, i32 0, i32 4
  %72 = load ptr, ptr %71, align 8, !tbaa !44
  %73 = getelementptr inbounds double, ptr %72, i64 0
  %74 = load double, ptr %73, align 8, !tbaa !49
  store double %74, ptr %10, align 8, !tbaa !49
  %75 = load ptr, ptr %4, align 8, !tbaa !5
  %76 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %75, i32 0, i32 58
  %77 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %76, i32 0, i32 3
  %78 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %77, i32 0, i32 4
  %79 = load ptr, ptr %78, align 8, !tbaa !44
  %80 = getelementptr inbounds double, ptr %79, i64 1
  %81 = load double, ptr %80, align 8, !tbaa !49
  store double %81, ptr %11, align 8, !tbaa !49
  %82 = load ptr, ptr %4, align 8, !tbaa !5
  %83 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %82, i32 0, i32 58
  %84 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %83, i32 0, i32 3
  %85 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %84, i32 0, i32 4
  %86 = load ptr, ptr %85, align 8, !tbaa !44
  %87 = getelementptr inbounds double, ptr %86, i64 2
  %88 = load double, ptr %87, align 8, !tbaa !49
  store double %88, ptr %12, align 8, !tbaa !49
  %89 = load ptr, ptr %4, align 8, !tbaa !5
  %90 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %89, i32 0, i32 58
  %91 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %90, i32 0, i32 3
  %92 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %91, i32 0, i32 4
  %93 = load ptr, ptr %92, align 8, !tbaa !44
  %94 = getelementptr inbounds double, ptr %93, i64 3
  %95 = load double, ptr %94, align 8, !tbaa !49
  store double %95, ptr %13, align 8, !tbaa !49
  br label %97

96:                                               ; preds = %2
  store i64 359, ptr %6, align 8, !tbaa !45
  store i64 -58, ptr %7, align 8, !tbaa !45
  store i64 -919, ptr %9, align 8, !tbaa !45
  store i64 -909, ptr %14, align 8, !tbaa !45
  store i64 81, ptr %15, align 8, !tbaa !45
  store i8 1, ptr %8, align 1, !tbaa !46
  store double 7.400000e+01, ptr %10, align 8, !tbaa !49
  store double -7.880000e+02, ptr %11, align 8, !tbaa !49
  store double 8.090000e+02, ptr %12, align 8, !tbaa !49
  store double 2.050000e+02, ptr %13, align 8, !tbaa !49
  br label %97

97:                                               ; preds = %96, %23
  %98 = load ptr, ptr %4, align 8, !tbaa !5
  %99 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %98, i32 0, i32 58
  %100 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %99, i32 0, i32 0
  %101 = load i32, ptr %100, align 8, !tbaa !9
  %102 = icmp eq i32 %101, 0
  br i1 %102, label %103, label %104

103:                                              ; preds = %97
  br label %459

104:                                              ; preds = %97
  %105 = load ptr, ptr %4, align 8, !tbaa !5
  %106 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %105, i32 0, i32 58
  %107 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %106, i32 0, i32 0
  %108 = load i32, ptr %107, align 8, !tbaa !9
  %109 = icmp eq i32 %108, 1
  br i1 %109, label %110, label %111

110:                                              ; preds = %104
  br label %550

111:                                              ; preds = %104
  %112 = load ptr, ptr %4, align 8, !tbaa !5
  %113 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %112, i32 0, i32 58
  %114 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %113, i32 0, i32 0
  %115 = load i32, ptr %114, align 8, !tbaa !9
  %116 = icmp eq i32 %115, 2
  br i1 %116, label %117, label %118

117:                                              ; preds = %111
  br label %564

118:                                              ; preds = %111
  %119 = load ptr, ptr %4, align 8, !tbaa !5
  %120 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %119, i32 0, i32 58
  %121 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %120, i32 0, i32 0
  %122 = load i32, ptr %121, align 8, !tbaa !9
  %123 = icmp eq i32 %122, 3
  br i1 %123, label %124, label %125

124:                                              ; preds = %118
  br label %611

125:                                              ; preds = %118
  %126 = load ptr, ptr %4, align 8, !tbaa !5
  %127 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %126, i32 0, i32 58
  %128 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %127, i32 0, i32 0
  %129 = load i32, ptr %128, align 8, !tbaa !9
  %130 = icmp eq i32 %129, 4
  br i1 %130, label %131, label %132

131:                                              ; preds = %125
  br label %826

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

138:                                              ; preds = %132
  br label %963

139:                                              ; preds = %132
  %140 = load ptr, ptr %4, align 8, !tbaa !5
  %141 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %140, i32 0, i32 58
  %142 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %141, i32 0, i32 0
  %143 = load i32, ptr %142, align 8, !tbaa !9
  %144 = icmp eq i32 %143, 6
  br i1 %144, label %145, label %146

145:                                              ; preds = %139
  br label %1081

146:                                              ; preds = %139
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  %148 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %147, i32 0, i32 58
  %149 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %148, i32 0, i32 0
  %150 = load i32, ptr %149, align 8, !tbaa !9
  %151 = icmp eq i32 %150, 7
  br i1 %151, label %152, label %153

152:                                              ; preds = %146
  br label %1119

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

159:                                              ; preds = %153
  br label %1499

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

166:                                              ; preds = %160
  br label %1548

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

173:                                              ; preds = %167
  br label %1654

174:                                              ; preds = %167
  %175 = load ptr, ptr %4, align 8, !tbaa !5
  %176 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %175, i32 0, i32 58
  %177 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %176, i32 0, i32 0
  %178 = load i32, ptr %177, align 8, !tbaa !9
  %179 = icmp eq i32 %178, 11
  br i1 %179, label %180, label %181

180:                                              ; preds = %174
  br label %1702

181:                                              ; preds = %174
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %182, i32 0, i32 58
  %184 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %183, i32 0, i32 0
  %185 = load i32, ptr %184, align 8, !tbaa !9
  %186 = icmp eq i32 %185, 12
  br i1 %186, label %187, label %188

187:                                              ; preds = %181
  br label %1774

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

194:                                              ; preds = %188
  br label %1820

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

201:                                              ; preds = %195
  br label %1878

202:                                              ; preds = %195
  %203 = load ptr, ptr %4, align 8, !tbaa !5
  %204 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %203, i32 0, i32 58
  %205 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %204, i32 0, i32 0
  %206 = load i32, ptr %205, align 8, !tbaa !9
  %207 = icmp eq i32 %206, 15
  br i1 %207, label %208, label %209

208:                                              ; preds = %202
  br label %1925

209:                                              ; preds = %202
  %210 = load ptr, ptr %4, align 8, !tbaa !5
  %211 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %210, i32 0, i32 58
  %212 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %211, i32 0, i32 0
  %213 = load i32, ptr %212, align 8, !tbaa !9
  %214 = icmp eq i32 %213, 16
  br i1 %214, label %215, label %216

215:                                              ; preds = %209
  br label %2111

216:                                              ; preds = %209
  %217 = load ptr, ptr %4, align 8, !tbaa !5
  %218 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %217, i32 0, i32 58
  %219 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %218, i32 0, i32 0
  %220 = load i32, ptr %219, align 8, !tbaa !9
  %221 = icmp eq i32 %220, 17
  br i1 %221, label %222, label %223

222:                                              ; preds = %216
  br label %2248

223:                                              ; preds = %216
  %224 = load ptr, ptr %4, align 8, !tbaa !5
  %225 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %224, i32 0, i32 58
  %226 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %225, i32 0, i32 0
  %227 = load i32, ptr %226, align 8, !tbaa !9
  %228 = icmp eq i32 %227, 18
  br i1 %228, label %229, label %230

229:                                              ; preds = %223
  br label %2366

230:                                              ; preds = %223
  %231 = load ptr, ptr %4, align 8, !tbaa !5
  %232 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %231, i32 0, i32 58
  %233 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %232, i32 0, i32 0
  %234 = load i32, ptr %233, align 8, !tbaa !9
  %235 = icmp eq i32 %234, 19
  br i1 %235, label %236, label %237

236:                                              ; preds = %230
  br label %2404

237:                                              ; preds = %230
  %238 = load ptr, ptr %4, align 8, !tbaa !5
  %239 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %238, i32 0, i32 58
  %240 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %239, i32 0, i32 0
  %241 = load i32, ptr %240, align 8, !tbaa !9
  %242 = icmp eq i32 %241, 20
  br i1 %242, label %243, label %244

243:                                              ; preds = %237
  br label %2630

244:                                              ; preds = %237
  %245 = load ptr, ptr %4, align 8, !tbaa !5
  %246 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %245, i32 0, i32 58
  %247 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %246, i32 0, i32 0
  %248 = load i32, ptr %247, align 8, !tbaa !9
  %249 = icmp eq i32 %248, 21
  br i1 %249, label %250, label %251

250:                                              ; preds = %244
  br label %3080

251:                                              ; preds = %244
  %252 = load ptr, ptr %4, align 8, !tbaa !5
  %253 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %252, i32 0, i32 58
  %254 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %253, i32 0, i32 0
  %255 = load i32, ptr %254, align 8, !tbaa !9
  %256 = icmp eq i32 %255, 22
  br i1 %256, label %257, label %258

257:                                              ; preds = %251
  br label %3140

258:                                              ; preds = %251
  %259 = load ptr, ptr %4, align 8, !tbaa !5
  %260 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %259, i32 0, i32 58
  %261 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %260, i32 0, i32 0
  %262 = load i32, ptr %261, align 8, !tbaa !9
  %263 = icmp eq i32 %262, 23
  br i1 %263, label %264, label %265

264:                                              ; preds = %258
  br label %3194

265:                                              ; preds = %258
  %266 = load ptr, ptr %4, align 8, !tbaa !5
  %267 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %266, i32 0, i32 58
  %268 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %267, i32 0, i32 0
  %269 = load i32, ptr %268, align 8, !tbaa !9
  %270 = icmp eq i32 %269, 24
  br i1 %270, label %271, label %272

271:                                              ; preds = %265
  br label %3418

272:                                              ; preds = %265
  %273 = load ptr, ptr %4, align 8, !tbaa !5
  %274 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %273, i32 0, i32 58
  %275 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %274, i32 0, i32 0
  %276 = load i32, ptr %275, align 8, !tbaa !9
  %277 = icmp eq i32 %276, 25
  br i1 %277, label %278, label %279

278:                                              ; preds = %272
  br label %3474

279:                                              ; preds = %272
  %280 = load ptr, ptr %4, align 8, !tbaa !5
  %281 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %280, i32 0, i32 58
  %282 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %281, i32 0, i32 0
  %283 = load i32, ptr %282, align 8, !tbaa !9
  %284 = icmp eq i32 %283, 26
  br i1 %284, label %285, label %286

285:                                              ; preds = %279
  br label %3532

286:                                              ; preds = %279
  %287 = load ptr, ptr %4, align 8, !tbaa !5
  %288 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %287, i32 0, i32 58
  %289 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %288, i32 0, i32 0
  %290 = load i32, ptr %289, align 8, !tbaa !9
  %291 = icmp eq i32 %290, 27
  br i1 %291, label %292, label %293

292:                                              ; preds = %286
  br label %3579

293:                                              ; preds = %286
  %294 = load ptr, ptr %4, align 8, !tbaa !5
  %295 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %294, i32 0, i32 0
  %296 = load i64, ptr %295, align 8, !tbaa !50
  store i64 %296, ptr %6, align 8, !tbaa !45
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %297, i32 0, i32 1
  %299 = load i64, ptr %298, align 8, !tbaa !51
  store i64 %299, ptr %7, align 8, !tbaa !45
  %300 = load ptr, ptr %4, align 8, !tbaa !5
  %301 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %300, i32 0, i32 51
  store i64 0, ptr %301, align 8, !tbaa !52
  %302 = load ptr, ptr %4, align 8, !tbaa !5
  %303 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %302, i32 0, i32 52
  store i64 0, ptr %303, align 8, !tbaa !53
  %304 = load ptr, ptr %4, align 8, !tbaa !5
  %305 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %304, i32 0, i32 53
  store i64 0, ptr %305, align 8, !tbaa !54
  %306 = load ptr, ptr %4, align 8, !tbaa !5
  %307 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %306, i32 0, i32 54
  store i64 0, ptr %307, align 8, !tbaa !55
  %308 = load ptr, ptr %4, align 8, !tbaa !5
  %309 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %308, i32 0, i32 55
  store i64 0, ptr %309, align 8, !tbaa !56
  %310 = load ptr, ptr %4, align 8, !tbaa !5
  %311 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %310, i32 0, i32 56
  store i64 0, ptr %311, align 8, !tbaa !57
  %312 = load ptr, ptr %4, align 8, !tbaa !5
  %313 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %312, i32 0, i32 57
  store i64 0, ptr %313, align 8, !tbaa !58
  %314 = load ptr, ptr %4, align 8, !tbaa !5
  %315 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %314, i32 0, i32 21
  store i8 0, ptr %315, align 2, !tbaa !59
  %316 = load i64, ptr %7, align 8, !tbaa !45
  %317 = icmp sgt i64 %316, 0
  br i1 %317, label %318, label %324

318:                                              ; preds = %293
  %319 = load ptr, ptr %4, align 8, !tbaa !5
  %320 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %319, i32 0, i32 48
  %321 = load i64, ptr %6, align 8, !tbaa !45
  %322 = load i64, ptr %7, align 8, !tbaa !45
  %323 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEllbPNS_8ae_stateE(ptr noundef %320, i64 noundef %321, i64 noundef %322, i1 noundef zeroext false, ptr noundef %323)
  br label %324

324:                                              ; preds = %318, %293
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %325

325:                                              ; preds = %344, %324
  %326 = load i64, ptr %14, align 8, !tbaa !45
  %327 = load i64, ptr %6, align 8, !tbaa !45
  %328 = sub nsw i64 %327, 1
  %329 = icmp sle i64 %326, %328
  br i1 %329, label %330, label %347

330:                                              ; preds = %325
  %331 = load ptr, ptr %4, align 8, !tbaa !5
  %332 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %331, i32 0, i32 35
  %333 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %332, i32 0, i32 4
  %334 = load ptr, ptr %333, align 8, !tbaa !44
  %335 = load i64, ptr %14, align 8, !tbaa !45
  %336 = getelementptr inbounds double, ptr %334, i64 %335
  %337 = load double, ptr %336, align 8, !tbaa !49
  %338 = load ptr, ptr %4, align 8, !tbaa !5
  %339 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %338, i32 0, i32 50
  %340 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %339, i32 0, i32 4
  %341 = load ptr, ptr %340, align 8, !tbaa !44
  %342 = load i64, ptr %14, align 8, !tbaa !45
  %343 = getelementptr inbounds double, ptr %341, i64 %342
  store double %337, ptr %343, align 8, !tbaa !49
  br label %344

344:                                              ; preds = %330
  %345 = load i64, ptr %14, align 8, !tbaa !45
  %346 = add nsw i64 %345, 1
  store i64 %346, ptr %14, align 8, !tbaa !45
  br label %325, !llvm.loop !60

347:                                              ; preds = %325
  %348 = load ptr, ptr %4, align 8, !tbaa !5
  %349 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %348, i32 0, i32 75
  %350 = load i64, ptr %6, align 8, !tbaa !45
  %351 = load i64, ptr %7, align 8, !tbaa !45
  %352 = load ptr, ptr %4, align 8, !tbaa !5
  %353 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %352, i32 0, i32 7
  %354 = load i64, ptr %353, align 8, !tbaa !62
  %355 = load ptr, ptr %4, align 8, !tbaa !5
  %356 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %355, i32 0, i32 24
  %357 = load i8, ptr %356, align 1, !tbaa !63, !range !47, !noundef !48
  %358 = trunc i8 %357 to i1
  %359 = load ptr, ptr %4, align 8, !tbaa !5
  %360 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %359, i32 0, i32 26
  %361 = load ptr, ptr %4, align 8, !tbaa !5
  %362 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %361, i32 0, i32 31
  %363 = load ptr, ptr %4, align 8, !tbaa !5
  %364 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %363, i32 0, i32 32
  %365 = load ptr, ptr %4, align 8, !tbaa !5
  %366 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %365, i32 0, i32 36
  %367 = load ptr, ptr %4, align 8, !tbaa !5
  %368 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %367, i32 0, i32 37
  %369 = load i64, ptr %368, align 8, !tbaa !64
  %370 = load ptr, ptr %4, align 8, !tbaa !5
  %371 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %370, i32 0, i32 38
  %372 = load i64, ptr %371, align 8, !tbaa !65
  %373 = load ptr, ptr %4, align 8, !tbaa !5
  %374 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %373, i32 0, i32 35
  %375 = load ptr, ptr %4, align 8, !tbaa !5
  %376 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %375, i32 0, i32 6
  %377 = load double, ptr %376, align 8, !tbaa !66
  %378 = load ptr, ptr %4, align 8, !tbaa !5
  %379 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %378, i32 0, i32 3
  %380 = load double, ptr %379, align 8, !tbaa !67
  %381 = load ptr, ptr %5, align 8, !tbaa !5
  %382 = call noundef zeroext i1 @_ZN11alglib_implL25minlm_minlmstepfinderinitEPNS_15minlmstepfinderElllbPNS_9ae_vectorES3_S3_PNS_9ae_matrixEllS3_ddPNS_8ae_stateE(ptr noundef %349, i64 noundef %350, i64 noundef %351, i64 noundef %354, i1 noundef zeroext %358, ptr noundef %360, ptr noundef %362, ptr noundef %364, ptr noundef %366, i64 noundef %369, i64 noundef %372, ptr noundef %374, double noundef %377, double noundef %380, ptr noundef %381)
  br i1 %382, label %388, label %383

383:                                              ; preds = %347
  %384 = load ptr, ptr %4, align 8, !tbaa !5
  %385 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %384, i32 0, i32 52
  store i64 -3, ptr %385, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %386 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %387 = trunc i8 %386 to i1
  store i1 %387, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

388:                                              ; preds = %347
  %389 = load ptr, ptr %4, align 8, !tbaa !5
  %390 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %389, i32 0, i32 73
  %391 = load ptr, ptr %4, align 8, !tbaa !5
  %392 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %391, i32 0, i32 31
  %393 = load ptr, ptr %4, align 8, !tbaa !5
  %394 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %393, i32 0, i32 32
  %395 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10minqpsetbcEPNS_10minqpstateEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %390, ptr noundef %392, ptr noundef %394, ptr noundef %395)
  %396 = load ptr, ptr %4, align 8, !tbaa !5
  %397 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %396, ptr noundef %397)
  %398 = load ptr, ptr %4, align 8, !tbaa !5
  %399 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %398, i32 0, i32 22
  %400 = load i64, ptr %399, align 8, !tbaa !68
  %401 = icmp eq i64 %400, 1
  br i1 %401, label %402, label %407

402:                                              ; preds = %388
  %403 = load ptr, ptr %4, align 8, !tbaa !5
  %404 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %403, i32 0, i32 49
  %405 = load double, ptr %404, align 8, !tbaa !69
  %406 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %405, double noundef 0.000000e+00)
  br i1 %406, label %408, label %407

407:                                              ; preds = %402, %388
  br label %517

408:                                              ; preds = %402
  %409 = load i64, ptr %7, align 8, !tbaa !45
  %410 = icmp sgt i64 %409, 0
  %411 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %410, ptr noundef @.str.605, ptr noundef %411)
  br label %412

412:                                              ; preds = %515, %408
  %413 = load ptr, ptr %4, align 8, !tbaa !5
  %414 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %413, i32 0, i32 48
  %415 = load ptr, ptr %4, align 8, !tbaa !5
  %416 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %415, i32 0, i32 26
  %417 = load ptr, ptr %4, align 8, !tbaa !5
  %418 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %417, i32 0, i32 35
  %419 = load ptr, ptr %4, align 8, !tbaa !5
  %420 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %419, i32 0, i32 31
  %421 = load ptr, ptr %4, align 8, !tbaa !5
  %422 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %421, i32 0, i32 32
  %423 = load ptr, ptr %4, align 8, !tbaa !5
  %424 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %423, i32 0, i32 49
  %425 = load double, ptr %424, align 8, !tbaa !69
  %426 = load ptr, ptr %5, align 8, !tbaa !5
  %427 = call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_S3_bdPNS_8ae_stateE(ptr noundef %414, ptr noundef %416, ptr noundef %418, ptr noundef %420, ptr noundef %422, i1 noundef zeroext true, double noundef %425, ptr noundef %426)
  br i1 %427, label %429, label %428

428:                                              ; preds = %412
  br label %516

429:                                              ; preds = %412
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %430

430:                                              ; preds = %450, %429
  %431 = load i64, ptr %14, align 8, !tbaa !45
  %432 = load i64, ptr %6, align 8, !tbaa !45
  %433 = sub nsw i64 %432, 1
  %434 = icmp sle i64 %431, %433
  br i1 %434, label %435, label %453

435:                                              ; preds = %430
  %436 = load ptr, ptr %4, align 8, !tbaa !5
  %437 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %436, i32 0, i32 48
  %438 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %437, i32 0, i32 27
  %439 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %438, i32 0, i32 4
  %440 = load ptr, ptr %439, align 8, !tbaa !44
  %441 = load i64, ptr %14, align 8, !tbaa !45
  %442 = getelementptr inbounds double, ptr %440, i64 %441
  %443 = load double, ptr %442, align 8, !tbaa !49
  %444 = load ptr, ptr %4, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %444, i32 0, i32 9
  %446 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %445, i32 0, i32 4
  %447 = load ptr, ptr %446, align 8, !tbaa !44
  %448 = load i64, ptr %14, align 8, !tbaa !45
  %449 = getelementptr inbounds double, ptr %447, i64 %448
  store double %443, ptr %449, align 8, !tbaa !49
  br label %450

450:                                              ; preds = %435
  %451 = load i64, ptr %14, align 8, !tbaa !45
  %452 = add nsw i64 %451, 1
  store i64 %452, ptr %14, align 8, !tbaa !45
  br label %430, !llvm.loop !70

453:                                              ; preds = %430
  %454 = load ptr, ptr %4, align 8, !tbaa !5
  %455 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %454, i32 0, i32 18
  store i8 1, ptr %455, align 1, !tbaa !71
  %456 = load ptr, ptr %4, align 8, !tbaa !5
  %457 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %456, i32 0, i32 58
  %458 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %457, i32 0, i32 0
  store i32 0, ptr %458, align 8, !tbaa !9
  br label %3586

459:                                              ; preds = %103
  %460 = load ptr, ptr %4, align 8, !tbaa !5
  %461 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %460, i32 0, i32 18
  store i8 0, ptr %461, align 1, !tbaa !71
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %462

462:                                              ; preds = %512, %459
  %463 = load i64, ptr %14, align 8, !tbaa !45
  %464 = load i64, ptr %7, align 8, !tbaa !45
  %465 = sub nsw i64 %464, 1
  %466 = icmp sle i64 %463, %465
  br i1 %466, label %467, label %515

467:                                              ; preds = %462
  %468 = load ptr, ptr %4, align 8, !tbaa !5
  %469 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %468, i32 0, i32 11
  %470 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %469, i32 0, i32 4
  %471 = load ptr, ptr %470, align 8, !tbaa !44
  %472 = load i64, ptr %14, align 8, !tbaa !45
  %473 = getelementptr inbounds double, ptr %471, i64 %472
  %474 = load double, ptr %473, align 8, !tbaa !49
  %475 = load ptr, ptr %4, align 8, !tbaa !5
  %476 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %475, i32 0, i32 48
  %477 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %476, i32 0, i32 28
  %478 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %477, i32 0, i32 4
  %479 = load ptr, ptr %478, align 8, !tbaa !44
  %480 = load i64, ptr %14, align 8, !tbaa !45
  %481 = getelementptr inbounds double, ptr %479, i64 %480
  store double %474, ptr %481, align 8, !tbaa !49
  store i64 0, ptr %15, align 8, !tbaa !45
  br label %482

482:                                              ; preds = %508, %467
  %483 = load i64, ptr %15, align 8, !tbaa !45
  %484 = load i64, ptr %6, align 8, !tbaa !45
  %485 = sub nsw i64 %484, 1
  %486 = icmp sle i64 %483, %485
  br i1 %486, label %487, label %511

487:                                              ; preds = %482
  %488 = load ptr, ptr %4, align 8, !tbaa !5
  %489 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %488, i32 0, i32 12
  %490 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %489, i32 0, i32 6
  %491 = load ptr, ptr %490, align 8, !tbaa !44
  %492 = load i64, ptr %14, align 8, !tbaa !45
  %493 = getelementptr inbounds ptr, ptr %491, i64 %492
  %494 = load ptr, ptr %493, align 8, !tbaa !5
  %495 = load i64, ptr %15, align 8, !tbaa !45
  %496 = getelementptr inbounds double, ptr %494, i64 %495
  %497 = load double, ptr %496, align 8, !tbaa !49
  %498 = load ptr, ptr %4, align 8, !tbaa !5
  %499 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %498, i32 0, i32 48
  %500 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %499, i32 0, i32 29
  %501 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %500, i32 0, i32 6
  %502 = load ptr, ptr %501, align 8, !tbaa !44
  %503 = load i64, ptr %14, align 8, !tbaa !45
  %504 = getelementptr inbounds ptr, ptr %502, i64 %503
  %505 = load ptr, ptr %504, align 8, !tbaa !5
  %506 = load i64, ptr %15, align 8, !tbaa !45
  %507 = getelementptr inbounds double, ptr %505, i64 %506
  store double %497, ptr %507, align 8, !tbaa !49
  br label %508

508:                                              ; preds = %487
  %509 = load i64, ptr %15, align 8, !tbaa !45
  %510 = add nsw i64 %509, 1
  store i64 %510, ptr %15, align 8, !tbaa !45
  br label %482, !llvm.loop !72

511:                                              ; preds = %482
  br label %512

512:                                              ; preds = %511
  %513 = load i64, ptr %14, align 8, !tbaa !45
  %514 = add nsw i64 %513, 1
  store i64 %514, ptr %14, align 8, !tbaa !45
  br label %462, !llvm.loop !73

515:                                              ; preds = %462
  br label %412

516:                                              ; preds = %428
  br label %517

517:                                              ; preds = %516, %407
  %518 = load ptr, ptr %4, align 8, !tbaa !5
  %519 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %518, i32 0, i32 5
  %520 = load i8, ptr %519, align 8, !tbaa !74, !range !47, !noundef !48
  %521 = trunc i8 %520 to i1
  br i1 %521, label %523, label %522

522:                                              ; preds = %517
  br label %614

523:                                              ; preds = %517
  %524 = load ptr, ptr %4, align 8, !tbaa !5
  %525 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %524, i32 0, i32 9
  %526 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %525, i32 0, i32 4
  %527 = load ptr, ptr %526, align 8, !tbaa !44
  %528 = getelementptr inbounds double, ptr %527, i64 0
  %529 = load ptr, ptr %4, align 8, !tbaa !5
  %530 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %529, i32 0, i32 26
  %531 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %530, i32 0, i32 4
  %532 = load ptr, ptr %531, align 8, !tbaa !44
  %533 = getelementptr inbounds double, ptr %532, i64 0
  %534 = load i64, ptr %6, align 8, !tbaa !45
  %535 = sub nsw i64 %534, 1
  %536 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %535)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %528, i64 noundef 1, ptr noundef %533, i64 noundef 1, i64 noundef %536)
  %537 = load ptr, ptr %4, align 8, !tbaa !5
  %538 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %537, ptr noundef %538)
  %539 = load ptr, ptr %4, align 8, !tbaa !5
  %540 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %539, i32 0, i32 23
  %541 = load i8, ptr %540, align 8, !tbaa !75, !range !47, !noundef !48
  %542 = trunc i8 %541 to i1
  br i1 %542, label %544, label %543

543:                                              ; preds = %523
  br label %553

544:                                              ; preds = %523
  %545 = load ptr, ptr %4, align 8, !tbaa !5
  %546 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %545, i32 0, i32 15
  store i8 1, ptr %546, align 8, !tbaa !76
  %547 = load ptr, ptr %4, align 8, !tbaa !5
  %548 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %547, i32 0, i32 58
  %549 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %548, i32 0, i32 0
  store i32 1, ptr %549, align 8, !tbaa !9
  br label %3586

550:                                              ; preds = %110
  %551 = load ptr, ptr %4, align 8, !tbaa !5
  %552 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %551, i32 0, i32 15
  store i8 0, ptr %552, align 8, !tbaa !76
  br label %584

553:                                              ; preds = %543
  %554 = load ptr, ptr %4, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %554, i32 0, i32 24
  %556 = load i8, ptr %555, align 1, !tbaa !63, !range !47, !noundef !48
  %557 = trunc i8 %556 to i1
  %558 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %557, ptr noundef @.str.606, ptr noundef %558)
  %559 = load ptr, ptr %4, align 8, !tbaa !5
  %560 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %559, i32 0, i32 19
  store i8 1, ptr %560, align 4, !tbaa !77
  %561 = load ptr, ptr %4, align 8, !tbaa !5
  %562 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %561, i32 0, i32 58
  %563 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %562, i32 0, i32 0
  store i32 2, ptr %563, align 8, !tbaa !9
  br label %3586

564:                                              ; preds = %117
  %565 = load ptr, ptr %4, align 8, !tbaa !5
  %566 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %565, i32 0, i32 19
  store i8 0, ptr %566, align 4, !tbaa !77
  %567 = load ptr, ptr %4, align 8, !tbaa !5
  %568 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %567, i32 0, i32 11
  %569 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %568, i32 0, i32 4
  %570 = load ptr, ptr %569, align 8, !tbaa !44
  %571 = getelementptr inbounds double, ptr %570, i64 0
  %572 = load ptr, ptr %4, align 8, !tbaa !5
  %573 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %572, i32 0, i32 11
  %574 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %573, i32 0, i32 4
  %575 = load ptr, ptr %574, align 8, !tbaa !44
  %576 = getelementptr inbounds double, ptr %575, i64 0
  %577 = load i64, ptr %7, align 8, !tbaa !45
  %578 = sub nsw i64 %577, 1
  %579 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %578)
  %580 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %571, i64 noundef 1, ptr noundef %576, i64 noundef 1, i64 noundef %579)
  store double %580, ptr %10, align 8, !tbaa !49
  %581 = load double, ptr %10, align 8, !tbaa !49
  %582 = load ptr, ptr %4, align 8, !tbaa !5
  %583 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %582, i32 0, i32 10
  store double %581, ptr %583, align 8, !tbaa !78
  br label %584

584:                                              ; preds = %564, %550
  %585 = load ptr, ptr %4, align 8, !tbaa !5
  %586 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %585, i32 0, i32 53
  %587 = load i64, ptr %586, align 8, !tbaa !54
  %588 = add nsw i64 %587, 1
  %589 = load ptr, ptr %4, align 8, !tbaa !5
  %590 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %589, i32 0, i32 53
  store i64 %588, ptr %590, align 8, !tbaa !54
  %591 = load ptr, ptr %4, align 8, !tbaa !5
  %592 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %591, i32 0, i32 9
  %593 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %592, i32 0, i32 4
  %594 = load ptr, ptr %593, align 8, !tbaa !44
  %595 = getelementptr inbounds double, ptr %594, i64 0
  %596 = load ptr, ptr %4, align 8, !tbaa !5
  %597 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %596, i32 0, i32 26
  %598 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %597, i32 0, i32 4
  %599 = load ptr, ptr %598, align 8, !tbaa !44
  %600 = getelementptr inbounds double, ptr %599, i64 0
  %601 = load i64, ptr %6, align 8, !tbaa !45
  %602 = sub nsw i64 %601, 1
  %603 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %602)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %595, i64 noundef 1, ptr noundef %600, i64 noundef 1, i64 noundef %603)
  %604 = load ptr, ptr %4, align 8, !tbaa !5
  %605 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %604, ptr noundef %605)
  %606 = load ptr, ptr %4, align 8, !tbaa !5
  %607 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %606, i32 0, i32 20
  store i8 1, ptr %607, align 1, !tbaa !79
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %608, i32 0, i32 58
  %610 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %609, i32 0, i32 0
  store i32 3, ptr %610, align 8, !tbaa !9
  br label %3586

611:                                              ; preds = %124
  %612 = load ptr, ptr %4, align 8, !tbaa !5
  %613 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %612, i32 0, i32 20
  store i8 0, ptr %613, align 1, !tbaa !79
  br label %614

614:                                              ; preds = %611, %522
  %615 = load ptr, ptr %4, align 8, !tbaa !5
  %616 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %615, i32 0, i32 21
  %617 = load i8, ptr %616, align 2, !tbaa !59, !range !47, !noundef !48
  %618 = trunc i8 %617 to i1
  br i1 %618, label %619, label %637

619:                                              ; preds = %614
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %620, i32 0, i32 9
  %622 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %621, i32 0, i32 4
  %623 = load ptr, ptr %622, align 8, !tbaa !44
  %624 = getelementptr inbounds double, ptr %623, i64 0
  %625 = load ptr, ptr %4, align 8, !tbaa !5
  %626 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %625, i32 0, i32 26
  %627 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %626, i32 0, i32 4
  %628 = load ptr, ptr %627, align 8, !tbaa !44
  %629 = getelementptr inbounds double, ptr %628, i64 0
  %630 = load i64, ptr %6, align 8, !tbaa !45
  %631 = sub nsw i64 %630, 1
  %632 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %631)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %624, i64 noundef 1, ptr noundef %629, i64 noundef 1, i64 noundef %632)
  %633 = load ptr, ptr %4, align 8, !tbaa !5
  %634 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %633, i32 0, i32 52
  store i64 8, ptr %634, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %635 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %636 = trunc i8 %635 to i1
  store i1 %636, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

637:                                              ; preds = %614
  %638 = load ptr, ptr %4, align 8, !tbaa !5
  %639 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %638, i32 0, i32 40
  store double 1.000000e+00, ptr %639, align 8, !tbaa !80
  %640 = load ptr, ptr %4, align 8, !tbaa !5
  %641 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %640, i32 0, i32 39
  store double -1.000000e+300, ptr %641, align 8, !tbaa !81
  %642 = load ptr, ptr %4, align 8, !tbaa !5
  %643 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %642, i32 0, i32 7
  %644 = load i64, ptr %643, align 8, !tbaa !62
  %645 = add nsw i64 %644, 1
  %646 = load ptr, ptr %4, align 8, !tbaa !5
  %647 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %646, i32 0, i32 41
  store i64 %645, ptr %647, align 8, !tbaa !82
  %648 = load ptr, ptr %4, align 8, !tbaa !5
  %649 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %648, i32 0, i32 46
  store i8 0, ptr %649, align 8, !tbaa !83
  %650 = load ptr, ptr %4, align 8, !tbaa !5
  %651 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %650, i32 0, i32 47
  store i8 0, ptr %651, align 1, !tbaa !84
  %652 = load ptr, ptr %4, align 8, !tbaa !5
  %653 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %652, i32 0, i32 22
  %654 = load i64, ptr %653, align 8, !tbaa !68
  %655 = icmp eq i64 %654, 2
  br i1 %655, label %656, label %657

656:                                              ; preds = %637
  br label %1929

657:                                              ; preds = %637
  br label %658

658:                                              ; preds = %1884, %1609, %657
  %659 = load ptr, ptr %4, align 8, !tbaa !5
  %660 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %659, i32 0, i32 22
  %661 = load i64, ptr %660, align 8, !tbaa !68
  %662 = icmp eq i64 %661, 0
  br i1 %662, label %668, label %663

663:                                              ; preds = %658
  %664 = load ptr, ptr %4, align 8, !tbaa !5
  %665 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %664, i32 0, i32 22
  %666 = load i64, ptr %665, align 8, !tbaa !68
  %667 = icmp eq i64 %666, 1
  br label %668

668:                                              ; preds = %663, %658
  %669 = phi i1 [ true, %658 ], [ %667, %663 ]
  %670 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %669, ptr noundef @.str.605, ptr noundef %670)
  %671 = load ptr, ptr %4, align 8, !tbaa !5
  %672 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %671, i32 0, i32 41
  %673 = load i64, ptr %672, align 8, !tbaa !82
  %674 = load ptr, ptr %4, align 8, !tbaa !5
  %675 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %674, i32 0, i32 7
  %676 = load i64, ptr %675, align 8, !tbaa !62
  %677 = icmp sgt i64 %673, %676
  br i1 %677, label %689, label %678

678:                                              ; preds = %668
  %679 = load ptr, ptr %4, align 8, !tbaa !5
  %680 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %679, i32 0, i32 46
  %681 = load i8, ptr %680, align 8, !tbaa !83, !range !47, !noundef !48
  %682 = trunc i8 %681 to i1
  br i1 %682, label %683, label %689

683:                                              ; preds = %678
  %684 = load ptr, ptr %4, align 8, !tbaa !5
  %685 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %684, i32 0, i32 47
  %686 = load i8, ptr %685, align 1, !tbaa !84, !range !47, !noundef !48
  %687 = trunc i8 %686 to i1
  br i1 %687, label %688, label %689

688:                                              ; preds = %683
  br label %1137

689:                                              ; preds = %683, %678, %668
  %690 = load ptr, ptr %4, align 8, !tbaa !5
  %691 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %690, i32 0, i32 22
  %692 = load i64, ptr %691, align 8, !tbaa !68
  %693 = icmp ne i64 %692, 0
  br i1 %693, label %694, label %695

694:                                              ; preds = %689
  br label %1098

695:                                              ; preds = %689
  %696 = load ptr, ptr %4, align 8, !tbaa !5
  %697 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %696, i32 0, i32 24
  %698 = load i8, ptr %697, align 1, !tbaa !63, !range !47, !noundef !48
  %699 = trunc i8 %698 to i1
  %700 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %699, ptr noundef @.str.607, ptr noundef %700)
  store i64 0, ptr %15, align 8, !tbaa !45
  br label %701

701:                                              ; preds = %1057, %695
  %702 = load i64, ptr %15, align 8, !tbaa !45
  %703 = load i64, ptr %6, align 8, !tbaa !45
  %704 = sub nsw i64 %703, 1
  %705 = icmp sgt i64 %702, %704
  br i1 %705, label %706, label %707

706:                                              ; preds = %701
  br label %1060

707:                                              ; preds = %701
  %708 = load ptr, ptr %4, align 8, !tbaa !5
  %709 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %708, i32 0, i32 9
  %710 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %709, i32 0, i32 4
  %711 = load ptr, ptr %710, align 8, !tbaa !44
  %712 = getelementptr inbounds double, ptr %711, i64 0
  %713 = load ptr, ptr %4, align 8, !tbaa !5
  %714 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %713, i32 0, i32 26
  %715 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %714, i32 0, i32 4
  %716 = load ptr, ptr %715, align 8, !tbaa !44
  %717 = getelementptr inbounds double, ptr %716, i64 0
  %718 = load i64, ptr %6, align 8, !tbaa !45
  %719 = sub nsw i64 %718, 1
  %720 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %719)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %712, i64 noundef 1, ptr noundef %717, i64 noundef 1, i64 noundef %720)
  %721 = load ptr, ptr %4, align 8, !tbaa !5
  %722 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %721, i32 0, i32 9
  %723 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %722, i32 0, i32 4
  %724 = load ptr, ptr %723, align 8, !tbaa !44
  %725 = load i64, ptr %15, align 8, !tbaa !45
  %726 = getelementptr inbounds double, ptr %724, i64 %725
  %727 = load double, ptr %726, align 8, !tbaa !49
  %728 = load ptr, ptr %4, align 8, !tbaa !5
  %729 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %728, i32 0, i32 35
  %730 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %729, i32 0, i32 4
  %731 = load ptr, ptr %730, align 8, !tbaa !44
  %732 = load i64, ptr %15, align 8, !tbaa !45
  %733 = getelementptr inbounds double, ptr %731, i64 %732
  %734 = load double, ptr %733, align 8, !tbaa !49
  %735 = load ptr, ptr %4, align 8, !tbaa !5
  %736 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %735, i32 0, i32 2
  %737 = load double, ptr %736, align 8, !tbaa !85
  %738 = fneg double %734
  %739 = call double @llvm.fmuladd.f64(double %738, double %737, double %727)
  %740 = load ptr, ptr %4, align 8, !tbaa !5
  %741 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %740, i32 0, i32 9
  %742 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %741, i32 0, i32 4
  %743 = load ptr, ptr %742, align 8, !tbaa !44
  %744 = load i64, ptr %15, align 8, !tbaa !45
  %745 = getelementptr inbounds double, ptr %743, i64 %744
  store double %739, ptr %745, align 8, !tbaa !49
  %746 = load ptr, ptr %4, align 8, !tbaa !5
  %747 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %746, i32 0, i32 33
  %748 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %747, i32 0, i32 4
  %749 = load ptr, ptr %748, align 8, !tbaa !44
  %750 = load i64, ptr %15, align 8, !tbaa !45
  %751 = getelementptr inbounds i8, ptr %749, i64 %750
  %752 = load i8, ptr %751, align 1, !tbaa !46, !range !47, !noundef !48
  %753 = trunc i8 %752 to i1
  br i1 %753, label %754, label %777

754:                                              ; preds = %707
  %755 = load ptr, ptr %4, align 8, !tbaa !5
  %756 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %755, i32 0, i32 9
  %757 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %756, i32 0, i32 4
  %758 = load ptr, ptr %757, align 8, !tbaa !44
  %759 = load i64, ptr %15, align 8, !tbaa !45
  %760 = getelementptr inbounds double, ptr %758, i64 %759
  %761 = load double, ptr %760, align 8, !tbaa !49
  %762 = load ptr, ptr %4, align 8, !tbaa !5
  %763 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %762, i32 0, i32 31
  %764 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %763, i32 0, i32 4
  %765 = load ptr, ptr %764, align 8, !tbaa !44
  %766 = load i64, ptr %15, align 8, !tbaa !45
  %767 = getelementptr inbounds double, ptr %765, i64 %766
  %768 = load double, ptr %767, align 8, !tbaa !49
  %769 = load ptr, ptr %5, align 8, !tbaa !5
  %770 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %761, double noundef %768, ptr noundef %769)
  %771 = load ptr, ptr %4, align 8, !tbaa !5
  %772 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %771, i32 0, i32 9
  %773 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %772, i32 0, i32 4
  %774 = load ptr, ptr %773, align 8, !tbaa !44
  %775 = load i64, ptr %15, align 8, !tbaa !45
  %776 = getelementptr inbounds double, ptr %774, i64 %775
  store double %770, ptr %776, align 8, !tbaa !49
  br label %777

777:                                              ; preds = %754, %707
  %778 = load ptr, ptr %4, align 8, !tbaa !5
  %779 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %778, i32 0, i32 34
  %780 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %779, i32 0, i32 4
  %781 = load ptr, ptr %780, align 8, !tbaa !44
  %782 = load i64, ptr %15, align 8, !tbaa !45
  %783 = getelementptr inbounds i8, ptr %781, i64 %782
  %784 = load i8, ptr %783, align 1, !tbaa !46, !range !47, !noundef !48
  %785 = trunc i8 %784 to i1
  br i1 %785, label %786, label %809

786:                                              ; preds = %777
  %787 = load ptr, ptr %4, align 8, !tbaa !5
  %788 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %787, i32 0, i32 9
  %789 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %788, i32 0, i32 4
  %790 = load ptr, ptr %789, align 8, !tbaa !44
  %791 = load i64, ptr %15, align 8, !tbaa !45
  %792 = getelementptr inbounds double, ptr %790, i64 %791
  %793 = load double, ptr %792, align 8, !tbaa !49
  %794 = load ptr, ptr %4, align 8, !tbaa !5
  %795 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %794, i32 0, i32 32
  %796 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %795, i32 0, i32 4
  %797 = load ptr, ptr %796, align 8, !tbaa !44
  %798 = load i64, ptr %15, align 8, !tbaa !45
  %799 = getelementptr inbounds double, ptr %797, i64 %798
  %800 = load double, ptr %799, align 8, !tbaa !49
  %801 = load ptr, ptr %5, align 8, !tbaa !5
  %802 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %793, double noundef %800, ptr noundef %801)
  %803 = load ptr, ptr %4, align 8, !tbaa !5
  %804 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %803, i32 0, i32 9
  %805 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %804, i32 0, i32 4
  %806 = load ptr, ptr %805, align 8, !tbaa !44
  %807 = load i64, ptr %15, align 8, !tbaa !45
  %808 = getelementptr inbounds double, ptr %806, i64 %807
  store double %802, ptr %808, align 8, !tbaa !49
  br label %809

809:                                              ; preds = %786, %777
  %810 = load ptr, ptr %4, align 8, !tbaa !5
  %811 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %810, i32 0, i32 9
  %812 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %811, i32 0, i32 4
  %813 = load ptr, ptr %812, align 8, !tbaa !44
  %814 = load i64, ptr %15, align 8, !tbaa !45
  %815 = getelementptr inbounds double, ptr %813, i64 %814
  %816 = load double, ptr %815, align 8, !tbaa !49
  %817 = load ptr, ptr %4, align 8, !tbaa !5
  %818 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %817, i32 0, i32 63
  store double %816, ptr %818, align 8, !tbaa !86
  %819 = load ptr, ptr %4, align 8, !tbaa !5
  %820 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %819, ptr noundef %820)
  %821 = load ptr, ptr %4, align 8, !tbaa !5
  %822 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %821, i32 0, i32 19
  store i8 1, ptr %822, align 4, !tbaa !77
  %823 = load ptr, ptr %4, align 8, !tbaa !5
  %824 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %823, i32 0, i32 58
  %825 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %824, i32 0, i32 0
  store i32 4, ptr %825, align 8, !tbaa !9
  br label %3586

826:                                              ; preds = %131
  %827 = load ptr, ptr %4, align 8, !tbaa !5
  %828 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %827, i32 0, i32 53
  %829 = load i64, ptr %828, align 8, !tbaa !54
  %830 = add nsw i64 %829, 1
  %831 = load ptr, ptr %4, align 8, !tbaa !5
  %832 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %831, i32 0, i32 53
  store i64 %830, ptr %832, align 8, !tbaa !54
  %833 = load ptr, ptr %4, align 8, !tbaa !5
  %834 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %833, i32 0, i32 65
  %835 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %834, i32 0, i32 4
  %836 = load ptr, ptr %835, align 8, !tbaa !44
  %837 = getelementptr inbounds double, ptr %836, i64 0
  %838 = load ptr, ptr %4, align 8, !tbaa !5
  %839 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %838, i32 0, i32 11
  %840 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %839, i32 0, i32 4
  %841 = load ptr, ptr %840, align 8, !tbaa !44
  %842 = getelementptr inbounds double, ptr %841, i64 0
  %843 = load i64, ptr %7, align 8, !tbaa !45
  %844 = sub nsw i64 %843, 1
  %845 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %844)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %837, i64 noundef 1, ptr noundef %842, i64 noundef 1, i64 noundef %845)
  %846 = load ptr, ptr %4, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %846, i32 0, i32 9
  %848 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %847, i32 0, i32 4
  %849 = load ptr, ptr %848, align 8, !tbaa !44
  %850 = getelementptr inbounds double, ptr %849, i64 0
  %851 = load ptr, ptr %4, align 8, !tbaa !5
  %852 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %851, i32 0, i32 26
  %853 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %852, i32 0, i32 4
  %854 = load ptr, ptr %853, align 8, !tbaa !44
  %855 = getelementptr inbounds double, ptr %854, i64 0
  %856 = load i64, ptr %6, align 8, !tbaa !45
  %857 = sub nsw i64 %856, 1
  %858 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %857)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %850, i64 noundef 1, ptr noundef %855, i64 noundef 1, i64 noundef %858)
  %859 = load ptr, ptr %4, align 8, !tbaa !5
  %860 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %859, i32 0, i32 9
  %861 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %860, i32 0, i32 4
  %862 = load ptr, ptr %861, align 8, !tbaa !44
  %863 = load i64, ptr %15, align 8, !tbaa !45
  %864 = getelementptr inbounds double, ptr %862, i64 %863
  %865 = load double, ptr %864, align 8, !tbaa !49
  %866 = load ptr, ptr %4, align 8, !tbaa !5
  %867 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %866, i32 0, i32 35
  %868 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %867, i32 0, i32 4
  %869 = load ptr, ptr %868, align 8, !tbaa !44
  %870 = load i64, ptr %15, align 8, !tbaa !45
  %871 = getelementptr inbounds double, ptr %869, i64 %870
  %872 = load double, ptr %871, align 8, !tbaa !49
  %873 = load ptr, ptr %4, align 8, !tbaa !5
  %874 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %873, i32 0, i32 2
  %875 = load double, ptr %874, align 8, !tbaa !85
  %876 = call double @llvm.fmuladd.f64(double %872, double %875, double %865)
  %877 = load ptr, ptr %4, align 8, !tbaa !5
  %878 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %877, i32 0, i32 9
  %879 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %878, i32 0, i32 4
  %880 = load ptr, ptr %879, align 8, !tbaa !44
  %881 = load i64, ptr %15, align 8, !tbaa !45
  %882 = getelementptr inbounds double, ptr %880, i64 %881
  store double %876, ptr %882, align 8, !tbaa !49
  %883 = load ptr, ptr %4, align 8, !tbaa !5
  %884 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %883, i32 0, i32 33
  %885 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %884, i32 0, i32 4
  %886 = load ptr, ptr %885, align 8, !tbaa !44
  %887 = load i64, ptr %15, align 8, !tbaa !45
  %888 = getelementptr inbounds i8, ptr %886, i64 %887
  %889 = load i8, ptr %888, align 1, !tbaa !46, !range !47, !noundef !48
  %890 = trunc i8 %889 to i1
  br i1 %890, label %891, label %914

891:                                              ; preds = %826
  %892 = load ptr, ptr %4, align 8, !tbaa !5
  %893 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %892, i32 0, i32 9
  %894 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %893, i32 0, i32 4
  %895 = load ptr, ptr %894, align 8, !tbaa !44
  %896 = load i64, ptr %15, align 8, !tbaa !45
  %897 = getelementptr inbounds double, ptr %895, i64 %896
  %898 = load double, ptr %897, align 8, !tbaa !49
  %899 = load ptr, ptr %4, align 8, !tbaa !5
  %900 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %899, i32 0, i32 31
  %901 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %900, i32 0, i32 4
  %902 = load ptr, ptr %901, align 8, !tbaa !44
  %903 = load i64, ptr %15, align 8, !tbaa !45
  %904 = getelementptr inbounds double, ptr %902, i64 %903
  %905 = load double, ptr %904, align 8, !tbaa !49
  %906 = load ptr, ptr %5, align 8, !tbaa !5
  %907 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %898, double noundef %905, ptr noundef %906)
  %908 = load ptr, ptr %4, align 8, !tbaa !5
  %909 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %908, i32 0, i32 9
  %910 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %909, i32 0, i32 4
  %911 = load ptr, ptr %910, align 8, !tbaa !44
  %912 = load i64, ptr %15, align 8, !tbaa !45
  %913 = getelementptr inbounds double, ptr %911, i64 %912
  store double %907, ptr %913, align 8, !tbaa !49
  br label %914

914:                                              ; preds = %891, %826
  %915 = load ptr, ptr %4, align 8, !tbaa !5
  %916 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %915, i32 0, i32 34
  %917 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %916, i32 0, i32 4
  %918 = load ptr, ptr %917, align 8, !tbaa !44
  %919 = load i64, ptr %15, align 8, !tbaa !45
  %920 = getelementptr inbounds i8, ptr %918, i64 %919
  %921 = load i8, ptr %920, align 1, !tbaa !46, !range !47, !noundef !48
  %922 = trunc i8 %921 to i1
  br i1 %922, label %923, label %946

923:                                              ; preds = %914
  %924 = load ptr, ptr %4, align 8, !tbaa !5
  %925 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %924, i32 0, i32 9
  %926 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %925, i32 0, i32 4
  %927 = load ptr, ptr %926, align 8, !tbaa !44
  %928 = load i64, ptr %15, align 8, !tbaa !45
  %929 = getelementptr inbounds double, ptr %927, i64 %928
  %930 = load double, ptr %929, align 8, !tbaa !49
  %931 = load ptr, ptr %4, align 8, !tbaa !5
  %932 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %931, i32 0, i32 32
  %933 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %932, i32 0, i32 4
  %934 = load ptr, ptr %933, align 8, !tbaa !44
  %935 = load i64, ptr %15, align 8, !tbaa !45
  %936 = getelementptr inbounds double, ptr %934, i64 %935
  %937 = load double, ptr %936, align 8, !tbaa !49
  %938 = load ptr, ptr %5, align 8, !tbaa !5
  %939 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %930, double noundef %937, ptr noundef %938)
  %940 = load ptr, ptr %4, align 8, !tbaa !5
  %941 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %940, i32 0, i32 9
  %942 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %941, i32 0, i32 4
  %943 = load ptr, ptr %942, align 8, !tbaa !44
  %944 = load i64, ptr %15, align 8, !tbaa !45
  %945 = getelementptr inbounds double, ptr %943, i64 %944
  store double %939, ptr %945, align 8, !tbaa !49
  br label %946

946:                                              ; preds = %923, %914
  %947 = load ptr, ptr %4, align 8, !tbaa !5
  %948 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %947, i32 0, i32 9
  %949 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %948, i32 0, i32 4
  %950 = load ptr, ptr %949, align 8, !tbaa !44
  %951 = load i64, ptr %15, align 8, !tbaa !45
  %952 = getelementptr inbounds double, ptr %950, i64 %951
  %953 = load double, ptr %952, align 8, !tbaa !49
  %954 = load ptr, ptr %4, align 8, !tbaa !5
  %955 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %954, i32 0, i32 64
  store double %953, ptr %955, align 8, !tbaa !87
  %956 = load ptr, ptr %4, align 8, !tbaa !5
  %957 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %956, ptr noundef %957)
  %958 = load ptr, ptr %4, align 8, !tbaa !5
  %959 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %958, i32 0, i32 19
  store i8 1, ptr %959, align 4, !tbaa !77
  %960 = load ptr, ptr %4, align 8, !tbaa !5
  %961 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %960, i32 0, i32 58
  %962 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %961, i32 0, i32 0
  store i32 5, ptr %962, align 8, !tbaa !9
  br label %3586

963:                                              ; preds = %138
  %964 = load ptr, ptr %4, align 8, !tbaa !5
  %965 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %964, i32 0, i32 53
  %966 = load i64, ptr %965, align 8, !tbaa !54
  %967 = add nsw i64 %966, 1
  %968 = load ptr, ptr %4, align 8, !tbaa !5
  %969 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %968, i32 0, i32 53
  store i64 %967, ptr %969, align 8, !tbaa !54
  %970 = load ptr, ptr %4, align 8, !tbaa !5
  %971 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %970, i32 0, i32 66
  %972 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %971, i32 0, i32 4
  %973 = load ptr, ptr %972, align 8, !tbaa !44
  %974 = getelementptr inbounds double, ptr %973, i64 0
  %975 = load ptr, ptr %4, align 8, !tbaa !5
  %976 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %975, i32 0, i32 11
  %977 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %976, i32 0, i32 4
  %978 = load ptr, ptr %977, align 8, !tbaa !44
  %979 = getelementptr inbounds double, ptr %978, i64 0
  %980 = load i64, ptr %7, align 8, !tbaa !45
  %981 = sub nsw i64 %980, 1
  %982 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %981)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %974, i64 noundef 1, ptr noundef %979, i64 noundef 1, i64 noundef %982)
  %983 = load ptr, ptr %4, align 8, !tbaa !5
  %984 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %983, i32 0, i32 64
  %985 = load double, ptr %984, align 8, !tbaa !87
  %986 = load ptr, ptr %4, align 8, !tbaa !5
  %987 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %986, i32 0, i32 63
  %988 = load double, ptr %987, align 8, !tbaa !86
  %989 = fsub double %985, %988
  store double %989, ptr %10, align 8, !tbaa !49
  %990 = load double, ptr %10, align 8, !tbaa !49
  %991 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %990, double noundef 0.000000e+00)
  br i1 %991, label %992, label %1037

992:                                              ; preds = %963
  %993 = load double, ptr %10, align 8, !tbaa !49
  %994 = fdiv double 1.000000e+00, %993
  store double %994, ptr %10, align 8, !tbaa !49
  %995 = load ptr, ptr %4, align 8, !tbaa !5
  %996 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %995, i32 0, i32 12
  %997 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %996, i32 0, i32 6
  %998 = load ptr, ptr %997, align 8, !tbaa !44
  %999 = getelementptr inbounds ptr, ptr %998, i64 0
  %1000 = load ptr, ptr %999, align 8, !tbaa !5
  %1001 = load i64, ptr %15, align 8, !tbaa !45
  %1002 = getelementptr inbounds double, ptr %1000, i64 %1001
  %1003 = load ptr, ptr %4, align 8, !tbaa !5
  %1004 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1003, i32 0, i32 12
  %1005 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1004, i32 0, i32 2
  %1006 = load i64, ptr %1005, align 8, !tbaa !88
  %1007 = load ptr, ptr %4, align 8, !tbaa !5
  %1008 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1007, i32 0, i32 66
  %1009 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1008, i32 0, i32 4
  %1010 = load ptr, ptr %1009, align 8, !tbaa !44
  %1011 = getelementptr inbounds double, ptr %1010, i64 0
  %1012 = load i64, ptr %7, align 8, !tbaa !45
  %1013 = sub nsw i64 %1012, 1
  %1014 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1013)
  %1015 = load double, ptr %10, align 8, !tbaa !49
  call void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef %1002, i64 noundef %1006, ptr noundef %1011, i64 noundef 1, i64 noundef %1014, double noundef %1015)
  %1016 = load ptr, ptr %4, align 8, !tbaa !5
  %1017 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1016, i32 0, i32 12
  %1018 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1017, i32 0, i32 6
  %1019 = load ptr, ptr %1018, align 8, !tbaa !44
  %1020 = getelementptr inbounds ptr, ptr %1019, i64 0
  %1021 = load ptr, ptr %1020, align 8, !tbaa !5
  %1022 = load i64, ptr %15, align 8, !tbaa !45
  %1023 = getelementptr inbounds double, ptr %1021, i64 %1022
  %1024 = load ptr, ptr %4, align 8, !tbaa !5
  %1025 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1024, i32 0, i32 12
  %1026 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1025, i32 0, i32 2
  %1027 = load i64, ptr %1026, align 8, !tbaa !88
  %1028 = load ptr, ptr %4, align 8, !tbaa !5
  %1029 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1028, i32 0, i32 65
  %1030 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1029, i32 0, i32 4
  %1031 = load ptr, ptr %1030, align 8, !tbaa !44
  %1032 = getelementptr inbounds double, ptr %1031, i64 0
  %1033 = load i64, ptr %7, align 8, !tbaa !45
  %1034 = sub nsw i64 %1033, 1
  %1035 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1034)
  %1036 = load double, ptr %10, align 8, !tbaa !49
  call void @_ZN11alglib_impl9ae_v_subdEPdlPKdlld(ptr noundef %1023, i64 noundef %1027, ptr noundef %1032, i64 noundef 1, i64 noundef %1035, double noundef %1036)
  br label %1057

1037:                                             ; preds = %963
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %1038

1038:                                             ; preds = %1053, %1037
  %1039 = load i64, ptr %14, align 8, !tbaa !45
  %1040 = load i64, ptr %7, align 8, !tbaa !45
  %1041 = sub nsw i64 %1040, 1
  %1042 = icmp sle i64 %1039, %1041
  br i1 %1042, label %1043, label %1056

1043:                                             ; preds = %1038
  %1044 = load ptr, ptr %4, align 8, !tbaa !5
  %1045 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1044, i32 0, i32 12
  %1046 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1045, i32 0, i32 6
  %1047 = load ptr, ptr %1046, align 8, !tbaa !44
  %1048 = load i64, ptr %14, align 8, !tbaa !45
  %1049 = getelementptr inbounds ptr, ptr %1047, i64 %1048
  %1050 = load ptr, ptr %1049, align 8, !tbaa !5
  %1051 = load i64, ptr %15, align 8, !tbaa !45
  %1052 = getelementptr inbounds double, ptr %1050, i64 %1051
  store double 0.000000e+00, ptr %1052, align 8, !tbaa !49
  br label %1053

1053:                                             ; preds = %1043
  %1054 = load i64, ptr %14, align 8, !tbaa !45
  %1055 = add nsw i64 %1054, 1
  store i64 %1055, ptr %14, align 8, !tbaa !45
  br label %1038, !llvm.loop !89

1056:                                             ; preds = %1038
  br label %1057

1057:                                             ; preds = %1056, %992
  %1058 = load i64, ptr %15, align 8, !tbaa !45
  %1059 = add nsw i64 %1058, 1
  store i64 %1059, ptr %15, align 8, !tbaa !45
  br label %701

1060:                                             ; preds = %706
  %1061 = load ptr, ptr %4, align 8, !tbaa !5
  %1062 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1061, i32 0, i32 9
  %1063 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1062, i32 0, i32 4
  %1064 = load ptr, ptr %1063, align 8, !tbaa !44
  %1065 = getelementptr inbounds double, ptr %1064, i64 0
  %1066 = load ptr, ptr %4, align 8, !tbaa !5
  %1067 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1066, i32 0, i32 26
  %1068 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1067, i32 0, i32 4
  %1069 = load ptr, ptr %1068, align 8, !tbaa !44
  %1070 = getelementptr inbounds double, ptr %1069, i64 0
  %1071 = load i64, ptr %6, align 8, !tbaa !45
  %1072 = sub nsw i64 %1071, 1
  %1073 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1072)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1065, i64 noundef 1, ptr noundef %1070, i64 noundef 1, i64 noundef %1073)
  %1074 = load ptr, ptr %4, align 8, !tbaa !5
  %1075 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1074, ptr noundef %1075)
  %1076 = load ptr, ptr %4, align 8, !tbaa !5
  %1077 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1076, i32 0, i32 19
  store i8 1, ptr %1077, align 4, !tbaa !77
  %1078 = load ptr, ptr %4, align 8, !tbaa !5
  %1079 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1078, i32 0, i32 58
  %1080 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1079, i32 0, i32 0
  store i32 6, ptr %1080, align 8, !tbaa !9
  br label %3586

1081:                                             ; preds = %145
  %1082 = load ptr, ptr %4, align 8, !tbaa !5
  %1083 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1082, i32 0, i32 19
  store i8 0, ptr %1083, align 4, !tbaa !77
  %1084 = load ptr, ptr %4, align 8, !tbaa !5
  %1085 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1084, i32 0, i32 53
  %1086 = load i64, ptr %1085, align 8, !tbaa !54
  %1087 = add nsw i64 %1086, 1
  %1088 = load ptr, ptr %4, align 8, !tbaa !5
  %1089 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1088, i32 0, i32 53
  store i64 %1087, ptr %1089, align 8, !tbaa !54
  %1090 = load ptr, ptr %4, align 8, !tbaa !5
  %1091 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1090, i32 0, i32 54
  %1092 = load i64, ptr %1091, align 8, !tbaa !55
  %1093 = add nsw i64 %1092, 1
  %1094 = load ptr, ptr %4, align 8, !tbaa !5
  %1095 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1094, i32 0, i32 54
  store i64 %1093, ptr %1095, align 8, !tbaa !55
  %1096 = load ptr, ptr %4, align 8, !tbaa !5
  %1097 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1096, i32 0, i32 41
  store i64 0, ptr %1097, align 8, !tbaa !82
  br label %1136

1098:                                             ; preds = %694
  %1099 = load ptr, ptr %4, align 8, !tbaa !5
  %1100 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1099, i32 0, i32 9
  %1101 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1100, i32 0, i32 4
  %1102 = load ptr, ptr %1101, align 8, !tbaa !44
  %1103 = getelementptr inbounds double, ptr %1102, i64 0
  %1104 = load ptr, ptr %4, align 8, !tbaa !5
  %1105 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1104, i32 0, i32 26
  %1106 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1105, i32 0, i32 4
  %1107 = load ptr, ptr %1106, align 8, !tbaa !44
  %1108 = getelementptr inbounds double, ptr %1107, i64 0
  %1109 = load i64, ptr %6, align 8, !tbaa !45
  %1110 = sub nsw i64 %1109, 1
  %1111 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1110)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1103, i64 noundef 1, ptr noundef %1108, i64 noundef 1, i64 noundef %1111)
  %1112 = load ptr, ptr %4, align 8, !tbaa !5
  %1113 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1112, ptr noundef %1113)
  %1114 = load ptr, ptr %4, align 8, !tbaa !5
  %1115 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1114, i32 0, i32 18
  store i8 1, ptr %1115, align 1, !tbaa !71
  %1116 = load ptr, ptr %4, align 8, !tbaa !5
  %1117 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1116, i32 0, i32 58
  %1118 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1117, i32 0, i32 0
  store i32 7, ptr %1118, align 8, !tbaa !9
  br label %3586

1119:                                             ; preds = %152
  %1120 = load ptr, ptr %4, align 8, !tbaa !5
  %1121 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1120, i32 0, i32 18
  store i8 0, ptr %1121, align 1, !tbaa !71
  %1122 = load ptr, ptr %4, align 8, !tbaa !5
  %1123 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1122, i32 0, i32 53
  %1124 = load i64, ptr %1123, align 8, !tbaa !54
  %1125 = add nsw i64 %1124, 1
  %1126 = load ptr, ptr %4, align 8, !tbaa !5
  %1127 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1126, i32 0, i32 53
  store i64 %1125, ptr %1127, align 8, !tbaa !54
  %1128 = load ptr, ptr %4, align 8, !tbaa !5
  %1129 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1128, i32 0, i32 54
  %1130 = load i64, ptr %1129, align 8, !tbaa !55
  %1131 = add nsw i64 %1130, 1
  %1132 = load ptr, ptr %4, align 8, !tbaa !5
  %1133 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1132, i32 0, i32 54
  store i64 %1131, ptr %1133, align 8, !tbaa !55
  %1134 = load ptr, ptr %4, align 8, !tbaa !5
  %1135 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1134, i32 0, i32 41
  store i64 0, ptr %1135, align 8, !tbaa !82
  br label %1136

1136:                                             ; preds = %1119, %1081
  br label %1254

1137:                                             ; preds = %688
  %1138 = load ptr, ptr %4, align 8, !tbaa !5
  %1139 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1138, i32 0, i32 46
  %1140 = load i8, ptr %1139, align 8, !tbaa !83, !range !47, !noundef !48
  %1141 = trunc i8 %1140 to i1
  br i1 %1141, label %1142, label %1147

1142:                                             ; preds = %1137
  %1143 = load ptr, ptr %4, align 8, !tbaa !5
  %1144 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1143, i32 0, i32 47
  %1145 = load i8, ptr %1144, align 1, !tbaa !84, !range !47, !noundef !48
  %1146 = trunc i8 %1145 to i1
  br label %1147

1147:                                             ; preds = %1142, %1137
  %1148 = phi i1 [ false, %1137 ], [ %1146, %1142 ]
  %1149 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1148, ptr noundef @.str.608, ptr noundef %1149)
  %1150 = load ptr, ptr %4, align 8, !tbaa !5
  %1151 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1150, i32 0, i32 44
  %1152 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1151, i32 0, i32 4
  %1153 = load ptr, ptr %1152, align 8, !tbaa !44
  %1154 = getelementptr inbounds double, ptr %1153, i64 0
  %1155 = load ptr, ptr %4, align 8, !tbaa !5
  %1156 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1155, i32 0, i32 44
  %1157 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1156, i32 0, i32 4
  %1158 = load ptr, ptr %1157, align 8, !tbaa !44
  %1159 = getelementptr inbounds double, ptr %1158, i64 0
  %1160 = load i64, ptr %6, align 8, !tbaa !45
  %1161 = sub nsw i64 %1160, 1
  %1162 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1161)
  %1163 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1154, i64 noundef 1, ptr noundef %1159, i64 noundef 1, i64 noundef %1162)
  store double %1163, ptr %12, align 8, !tbaa !49
  %1164 = load double, ptr %12, align 8, !tbaa !49
  %1165 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1164, double noundef 0.000000e+00)
  %1166 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1165, ptr noundef @.str.609, ptr noundef %1166)
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %1167

1167:                                             ; preds = %1218, %1147
  %1168 = load i64, ptr %14, align 8, !tbaa !45
  %1169 = load i64, ptr %7, align 8, !tbaa !45
  %1170 = sub nsw i64 %1169, 1
  %1171 = icmp sle i64 %1168, %1170
  br i1 %1171, label %1172, label %1221

1172:                                             ; preds = %1167
  %1173 = load ptr, ptr %4, align 8, !tbaa !5
  %1174 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1173, i32 0, i32 12
  %1175 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1174, i32 0, i32 6
  %1176 = load ptr, ptr %1175, align 8, !tbaa !44
  %1177 = load i64, ptr %14, align 8, !tbaa !45
  %1178 = getelementptr inbounds ptr, ptr %1176, i64 %1177
  %1179 = load ptr, ptr %1178, align 8, !tbaa !5
  %1180 = getelementptr inbounds double, ptr %1179, i64 0
  %1181 = load ptr, ptr %4, align 8, !tbaa !5
  %1182 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1181, i32 0, i32 44
  %1183 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1182, i32 0, i32 4
  %1184 = load ptr, ptr %1183, align 8, !tbaa !44
  %1185 = getelementptr inbounds double, ptr %1184, i64 0
  %1186 = load i64, ptr %6, align 8, !tbaa !45
  %1187 = sub nsw i64 %1186, 1
  %1188 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1187)
  %1189 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1180, i64 noundef 1, ptr noundef %1185, i64 noundef 1, i64 noundef %1188)
  store double %1189, ptr %10, align 8, !tbaa !49
  %1190 = load ptr, ptr %4, align 8, !tbaa !5
  %1191 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1190, i32 0, i32 45
  %1192 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1191, i32 0, i32 4
  %1193 = load ptr, ptr %1192, align 8, !tbaa !44
  %1194 = load i64, ptr %14, align 8, !tbaa !45
  %1195 = getelementptr inbounds double, ptr %1193, i64 %1194
  %1196 = load double, ptr %1195, align 8, !tbaa !49
  %1197 = load double, ptr %10, align 8, !tbaa !49
  %1198 = fsub double %1196, %1197
  %1199 = load double, ptr %12, align 8, !tbaa !49
  %1200 = fdiv double %1198, %1199
  store double %1200, ptr %10, align 8, !tbaa !49
  %1201 = load ptr, ptr %4, align 8, !tbaa !5
  %1202 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1201, i32 0, i32 12
  %1203 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1202, i32 0, i32 6
  %1204 = load ptr, ptr %1203, align 8, !tbaa !44
  %1205 = load i64, ptr %14, align 8, !tbaa !45
  %1206 = getelementptr inbounds ptr, ptr %1204, i64 %1205
  %1207 = load ptr, ptr %1206, align 8, !tbaa !5
  %1208 = getelementptr inbounds double, ptr %1207, i64 0
  %1209 = load ptr, ptr %4, align 8, !tbaa !5
  %1210 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1209, i32 0, i32 44
  %1211 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1210, i32 0, i32 4
  %1212 = load ptr, ptr %1211, align 8, !tbaa !44
  %1213 = getelementptr inbounds double, ptr %1212, i64 0
  %1214 = load i64, ptr %6, align 8, !tbaa !45
  %1215 = sub nsw i64 %1214, 1
  %1216 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1215)
  %1217 = load double, ptr %10, align 8, !tbaa !49
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %1208, i64 noundef 1, ptr noundef %1213, i64 noundef 1, i64 noundef %1216, double noundef %1217)
  br label %1218

1218:                                             ; preds = %1172
  %1219 = load i64, ptr %14, align 8, !tbaa !45
  %1220 = add nsw i64 %1219, 1
  store i64 %1220, ptr %14, align 8, !tbaa !45
  br label %1167, !llvm.loop !90

1221:                                             ; preds = %1167
  %1222 = load ptr, ptr %4, align 8, !tbaa !5
  %1223 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1222, i32 0, i32 11
  %1224 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1223, i32 0, i32 4
  %1225 = load ptr, ptr %1224, align 8, !tbaa !44
  %1226 = getelementptr inbounds double, ptr %1225, i64 0
  %1227 = load ptr, ptr %4, align 8, !tbaa !5
  %1228 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1227, i32 0, i32 28
  %1229 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1228, i32 0, i32 4
  %1230 = load ptr, ptr %1229, align 8, !tbaa !44
  %1231 = getelementptr inbounds double, ptr %1230, i64 0
  %1232 = load i64, ptr %7, align 8, !tbaa !45
  %1233 = sub nsw i64 %1232, 1
  %1234 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1233)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1226, i64 noundef 1, ptr noundef %1231, i64 noundef 1, i64 noundef %1234)
  %1235 = load ptr, ptr %4, align 8, !tbaa !5
  %1236 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1235, i32 0, i32 11
  %1237 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1236, i32 0, i32 4
  %1238 = load ptr, ptr %1237, align 8, !tbaa !44
  %1239 = getelementptr inbounds double, ptr %1238, i64 0
  %1240 = load ptr, ptr %4, align 8, !tbaa !5
  %1241 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1240, i32 0, i32 45
  %1242 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1241, i32 0, i32 4
  %1243 = load ptr, ptr %1242, align 8, !tbaa !44
  %1244 = getelementptr inbounds double, ptr %1243, i64 0
  %1245 = load i64, ptr %7, align 8, !tbaa !45
  %1246 = sub nsw i64 %1245, 1
  %1247 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1246)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1239, i64 noundef 1, ptr noundef %1244, i64 noundef 1, i64 noundef %1247)
  %1248 = load ptr, ptr %4, align 8, !tbaa !5
  %1249 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1248, i32 0, i32 41
  %1250 = load i64, ptr %1249, align 8, !tbaa !82
  %1251 = add nsw i64 %1250, 1
  %1252 = load ptr, ptr %4, align 8, !tbaa !5
  %1253 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1252, i32 0, i32 41
  store i64 %1251, ptr %1253, align 8, !tbaa !82
  br label %1254

1254:                                             ; preds = %1221, %1136
  %1255 = load i64, ptr %6, align 8, !tbaa !45
  %1256 = load i64, ptr %6, align 8, !tbaa !45
  %1257 = load i64, ptr %7, align 8, !tbaa !45
  %1258 = load ptr, ptr %4, align 8, !tbaa !5
  %1259 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1258, i32 0, i32 12
  %1260 = load ptr, ptr %4, align 8, !tbaa !5
  %1261 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1260, i32 0, i32 12
  %1262 = load ptr, ptr %4, align 8, !tbaa !5
  %1263 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1262, i32 0, i32 30
  %1264 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixgemmEllldPNS_9ae_matrixElllS1_llldS1_llPNS_8ae_stateE(i64 noundef %1255, i64 noundef %1256, i64 noundef %1257, double noundef 2.000000e+00, ptr noundef %1259, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef %1261, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef %1263, i64 noundef 0, i64 noundef 0, ptr noundef %1264)
  %1265 = load i64, ptr %6, align 8, !tbaa !45
  %1266 = load i64, ptr %7, align 8, !tbaa !45
  %1267 = load ptr, ptr %4, align 8, !tbaa !5
  %1268 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1267, i32 0, i32 12
  %1269 = load ptr, ptr %4, align 8, !tbaa !5
  %1270 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1269, i32 0, i32 11
  %1271 = load ptr, ptr %4, align 8, !tbaa !5
  %1272 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1271, i32 0, i32 29
  %1273 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixmvEllPNS_9ae_matrixElllPNS_9ae_vectorElS3_lPNS_8ae_stateE(i64 noundef %1265, i64 noundef %1266, ptr noundef %1268, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef %1270, i64 noundef 0, ptr noundef %1272, i64 noundef 0, ptr noundef %1273)
  %1274 = load ptr, ptr %4, align 8, !tbaa !5
  %1275 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1274, i32 0, i32 29
  %1276 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1275, i32 0, i32 4
  %1277 = load ptr, ptr %1276, align 8, !tbaa !44
  %1278 = getelementptr inbounds double, ptr %1277, i64 0
  %1279 = load i64, ptr %6, align 8, !tbaa !45
  %1280 = sub nsw i64 %1279, 1
  %1281 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1280)
  call void @_ZN11alglib_impl9ae_v_muldEPdlld(ptr noundef %1278, i64 noundef 1, i64 noundef %1281, double noundef 2.000000e+00)
  %1282 = load ptr, ptr %4, align 8, !tbaa !5
  %1283 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1282, i32 0, i32 11
  %1284 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1283, i32 0, i32 4
  %1285 = load ptr, ptr %1284, align 8, !tbaa !44
  %1286 = getelementptr inbounds double, ptr %1285, i64 0
  %1287 = load ptr, ptr %4, align 8, !tbaa !5
  %1288 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1287, i32 0, i32 11
  %1289 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1288, i32 0, i32 4
  %1290 = load ptr, ptr %1289, align 8, !tbaa !44
  %1291 = getelementptr inbounds double, ptr %1290, i64 0
  %1292 = load i64, ptr %7, align 8, !tbaa !45
  %1293 = sub nsw i64 %1292, 1
  %1294 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1293)
  %1295 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1286, i64 noundef 1, ptr noundef %1291, i64 noundef 1, i64 noundef %1294)
  store double %1295, ptr %10, align 8, !tbaa !49
  %1296 = load double, ptr %10, align 8, !tbaa !49
  %1297 = load ptr, ptr %4, align 8, !tbaa !5
  %1298 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1297, i32 0, i32 27
  store double %1296, ptr %1298, align 8, !tbaa !91
  %1299 = load ptr, ptr %4, align 8, !tbaa !5
  %1300 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1299, i32 0, i32 28
  %1301 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1300, i32 0, i32 4
  %1302 = load ptr, ptr %1301, align 8, !tbaa !44
  %1303 = getelementptr inbounds double, ptr %1302, i64 0
  %1304 = load ptr, ptr %4, align 8, !tbaa !5
  %1305 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1304, i32 0, i32 11
  %1306 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1305, i32 0, i32 4
  %1307 = load ptr, ptr %1306, align 8, !tbaa !44
  %1308 = getelementptr inbounds double, ptr %1307, i64 0
  %1309 = load i64, ptr %7, align 8, !tbaa !45
  %1310 = sub nsw i64 %1309, 1
  %1311 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1310)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1303, i64 noundef 1, ptr noundef %1308, i64 noundef 1, i64 noundef %1311)
  %1312 = load ptr, ptr %4, align 8, !tbaa !5
  %1313 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1312, i32 0, i32 46
  store i8 0, ptr %1313, align 8, !tbaa !83
  %1314 = load ptr, ptr %4, align 8, !tbaa !5
  %1315 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1314, i32 0, i32 47
  store i8 0, ptr %1315, align 1, !tbaa !84
  %1316 = load ptr, ptr %4, align 8, !tbaa !5
  %1317 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1316, i32 0, i32 27
  %1318 = load double, ptr %1317, align 8, !tbaa !91
  store double %1318, ptr %10, align 8, !tbaa !49
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %1319

1319:                                             ; preds = %1334, %1254
  %1320 = load i64, ptr %14, align 8, !tbaa !45
  %1321 = load i64, ptr %6, align 8, !tbaa !45
  %1322 = sub nsw i64 %1321, 1
  %1323 = icmp sle i64 %1320, %1322
  br i1 %1323, label %1324, label %1337

1324:                                             ; preds = %1319
  %1325 = load double, ptr %10, align 8, !tbaa !49
  %1326 = load ptr, ptr %4, align 8, !tbaa !5
  %1327 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1326, i32 0, i32 29
  %1328 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1327, i32 0, i32 4
  %1329 = load ptr, ptr %1328, align 8, !tbaa !44
  %1330 = load i64, ptr %14, align 8, !tbaa !45
  %1331 = getelementptr inbounds double, ptr %1329, i64 %1330
  %1332 = load double, ptr %1331, align 8, !tbaa !49
  %1333 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %1325, double %1332)
  store double %1333, ptr %10, align 8, !tbaa !49
  br label %1334

1334:                                             ; preds = %1324
  %1335 = load i64, ptr %14, align 8, !tbaa !45
  %1336 = add nsw i64 %1335, 1
  store i64 %1336, ptr %14, align 8, !tbaa !45
  br label %1319, !llvm.loop !92

1337:                                             ; preds = %1319
  %1338 = load double, ptr %10, align 8, !tbaa !49
  %1339 = load ptr, ptr %5, align 8, !tbaa !5
  %1340 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1338, ptr noundef %1339)
  br i1 %1340, label %1346, label %1341

1341:                                             ; preds = %1337
  %1342 = load ptr, ptr %4, align 8, !tbaa !5
  %1343 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1342, i32 0, i32 52
  store i64 -8, ptr %1343, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %1344 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1345 = trunc i8 %1344 to i1
  store i1 %1345, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1346:                                             ; preds = %1337
  %1347 = load ptr, ptr %4, align 8, !tbaa !5
  %1348 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1347, i32 0, i32 39
  %1349 = load double, ptr %1348, align 8, !tbaa !81
  %1350 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1349, double noundef 0.000000e+00)
  br i1 %1350, label %1351, label %1407

1351:                                             ; preds = %1346
  %1352 = load ptr, ptr %4, align 8, !tbaa !5
  %1353 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1352, i32 0, i32 39
  store double 0.000000e+00, ptr %1353, align 8, !tbaa !81
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %1354

1354:                                             ; preds = %1389, %1351
  %1355 = load i64, ptr %14, align 8, !tbaa !45
  %1356 = load i64, ptr %6, align 8, !tbaa !45
  %1357 = sub nsw i64 %1356, 1
  %1358 = icmp sle i64 %1355, %1357
  br i1 %1358, label %1359, label %1392

1359:                                             ; preds = %1354
  %1360 = load ptr, ptr %4, align 8, !tbaa !5
  %1361 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1360, i32 0, i32 39
  %1362 = load double, ptr %1361, align 8, !tbaa !81
  %1363 = load ptr, ptr %4, align 8, !tbaa !5
  %1364 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1363, i32 0, i32 30
  %1365 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1364, i32 0, i32 6
  %1366 = load ptr, ptr %1365, align 8, !tbaa !44
  %1367 = load i64, ptr %14, align 8, !tbaa !45
  %1368 = getelementptr inbounds ptr, ptr %1366, i64 %1367
  %1369 = load ptr, ptr %1368, align 8, !tbaa !5
  %1370 = load i64, ptr %14, align 8, !tbaa !45
  %1371 = getelementptr inbounds double, ptr %1369, i64 %1370
  %1372 = load double, ptr %1371, align 8, !tbaa !49
  %1373 = load ptr, ptr %5, align 8, !tbaa !5
  %1374 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1372, ptr noundef %1373)
  %1375 = load ptr, ptr %4, align 8, !tbaa !5
  %1376 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1375, i32 0, i32 35
  %1377 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1376, i32 0, i32 4
  %1378 = load ptr, ptr %1377, align 8, !tbaa !44
  %1379 = load i64, ptr %14, align 8, !tbaa !45
  %1380 = getelementptr inbounds double, ptr %1378, i64 %1379
  %1381 = load double, ptr %1380, align 8, !tbaa !49
  %1382 = load ptr, ptr %5, align 8, !tbaa !5
  %1383 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1381, ptr noundef %1382)
  %1384 = fmul double %1374, %1383
  %1385 = load ptr, ptr %5, align 8, !tbaa !5
  %1386 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1362, double noundef %1384, ptr noundef %1385)
  %1387 = load ptr, ptr %4, align 8, !tbaa !5
  %1388 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1387, i32 0, i32 39
  store double %1386, ptr %1388, align 8, !tbaa !81
  br label %1389

1389:                                             ; preds = %1359
  %1390 = load i64, ptr %14, align 8, !tbaa !45
  %1391 = add nsw i64 %1390, 1
  store i64 %1391, ptr %14, align 8, !tbaa !45
  br label %1354, !llvm.loop !93

1392:                                             ; preds = %1354
  %1393 = load ptr, ptr %4, align 8, !tbaa !5
  %1394 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1393, i32 0, i32 39
  %1395 = load double, ptr %1394, align 8, !tbaa !81
  %1396 = fmul double 1.000000e-03, %1395
  %1397 = load ptr, ptr %4, align 8, !tbaa !5
  %1398 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1397, i32 0, i32 39
  store double %1396, ptr %1398, align 8, !tbaa !81
  %1399 = load ptr, ptr %4, align 8, !tbaa !5
  %1400 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1399, i32 0, i32 39
  %1401 = load double, ptr %1400, align 8, !tbaa !81
  %1402 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1401, double noundef 0.000000e+00)
  br i1 %1402, label %1403, label %1406

1403:                                             ; preds = %1392
  %1404 = load ptr, ptr %4, align 8, !tbaa !5
  %1405 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1404, i32 0, i32 39
  store double 1.000000e+00, ptr %1405, align 8, !tbaa !81
  br label %1406

1406:                                             ; preds = %1403, %1392
  br label %1407

1407:                                             ; preds = %1406, %1346
  store i64 -99, ptr %9, align 8, !tbaa !45
  %1408 = load ptr, ptr %4, align 8, !tbaa !5
  %1409 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1408, i32 0, i32 75
  %1410 = load ptr, ptr %4, align 8, !tbaa !5
  %1411 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1410, i32 0, i32 30
  %1412 = load ptr, ptr %4, align 8, !tbaa !5
  %1413 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1412, i32 0, i32 29
  %1414 = load ptr, ptr %4, align 8, !tbaa !5
  %1415 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1414, i32 0, i32 27
  %1416 = load double, ptr %1415, align 8, !tbaa !91
  %1417 = load ptr, ptr %4, align 8, !tbaa !5
  %1418 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1417, i32 0, i32 26
  %1419 = load ptr, ptr %4, align 8, !tbaa !5
  %1420 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1419, i32 0, i32 28
  %1421 = load ptr, ptr %4, align 8, !tbaa !5
  %1422 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1421, i32 0, i32 41
  %1423 = load i64, ptr %1422, align 8, !tbaa !82
  %1424 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL26minlm_minlmstepfinderstartEPNS_15minlmstepfinderEPNS_9ae_matrixEPNS_9ae_vectorEdS5_S5_lPNS_8ae_stateE(ptr noundef %1409, ptr noundef %1411, ptr noundef %1413, double noundef %1416, ptr noundef %1418, ptr noundef %1420, i64 noundef %1423, ptr noundef %1424)
  br label %1425

1425:                                             ; preds = %1557, %1548, %1499, %1407
  %1426 = load ptr, ptr %4, align 8, !tbaa !5
  %1427 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1426, i32 0, i32 75
  %1428 = load ptr, ptr %4, align 8, !tbaa !5
  %1429 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1428, i32 0, i32 39
  %1430 = load ptr, ptr %4, align 8, !tbaa !5
  %1431 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1430, i32 0, i32 40
  %1432 = load ptr, ptr %4, align 8, !tbaa !5
  %1433 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1432, i32 0, i32 42
  %1434 = load ptr, ptr %4, align 8, !tbaa !5
  %1435 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1434, i32 0, i32 44
  %1436 = load ptr, ptr %4, align 8, !tbaa !5
  %1437 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1436, i32 0, i32 46
  %1438 = load ptr, ptr %4, align 8, !tbaa !5
  %1439 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1438, i32 0, i32 45
  %1440 = load ptr, ptr %4, align 8, !tbaa !5
  %1441 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1440, i32 0, i32 47
  %1442 = load ptr, ptr %4, align 8, !tbaa !5
  %1443 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1442, i32 0, i32 57
  %1444 = load ptr, ptr %5, align 8, !tbaa !5
  %1445 = call noundef zeroext i1 @_ZN11alglib_implL30minlm_minlmstepfinderiterationEPNS_15minlmstepfinderEPdS2_PNS_9ae_vectorES4_PbS4_S5_PlS2_S6_PNS_8ae_stateE(ptr noundef %1427, ptr noundef %1429, ptr noundef %1431, ptr noundef %1433, ptr noundef %1435, ptr noundef %1437, ptr noundef %1439, ptr noundef %1441, ptr noundef %9, ptr noundef %13, ptr noundef %1443, ptr noundef %1444)
  br i1 %1445, label %1447, label %1446

1446:                                             ; preds = %1425
  br label %1559

1447:                                             ; preds = %1425
  %1448 = load ptr, ptr %4, align 8, !tbaa !5
  %1449 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1448, i32 0, i32 24
  %1450 = load i8, ptr %1449, align 1, !tbaa !63, !range !47, !noundef !48
  %1451 = trunc i8 %1450 to i1
  br i1 %1451, label %1457, label %1452

1452:                                             ; preds = %1447
  %1453 = load ptr, ptr %4, align 8, !tbaa !5
  %1454 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1453, i32 0, i32 23
  %1455 = load i8, ptr %1454, align 8, !tbaa !75, !range !47, !noundef !48
  %1456 = trunc i8 %1455 to i1
  br label %1457

1457:                                             ; preds = %1452, %1447
  %1458 = phi i1 [ true, %1447 ], [ %1456, %1452 ]
  %1459 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1458, ptr noundef @.str.606, ptr noundef %1459)
  %1460 = load ptr, ptr %4, align 8, !tbaa !5
  %1461 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1460, i32 0, i32 53
  %1462 = load i64, ptr %1461, align 8, !tbaa !54
  %1463 = add nsw i64 %1462, 1
  %1464 = load ptr, ptr %4, align 8, !tbaa !5
  %1465 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1464, i32 0, i32 53
  store i64 %1463, ptr %1465, align 8, !tbaa !54
  %1466 = load ptr, ptr %4, align 8, !tbaa !5
  %1467 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1466, ptr noundef %1467)
  %1468 = load ptr, ptr %4, align 8, !tbaa !5
  %1469 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1468, i32 0, i32 75
  %1470 = getelementptr inbounds %"struct.alglib_impl::minlmstepfinder", ptr %1469, i32 0, i32 11
  %1471 = load i8, ptr %1470, align 1, !tbaa !94, !range !47, !noundef !48
  %1472 = trunc i8 %1471 to i1
  br i1 %1472, label %1474, label %1473

1473:                                             ; preds = %1457
  br label %1516

1474:                                             ; preds = %1457
  %1475 = load ptr, ptr %4, align 8, !tbaa !5
  %1476 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1475, i32 0, i32 24
  %1477 = load i8, ptr %1476, align 1, !tbaa !63, !range !47, !noundef !48
  %1478 = trunc i8 %1477 to i1
  %1479 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1478, ptr noundef @.str.606, ptr noundef %1479)
  %1480 = load ptr, ptr %4, align 8, !tbaa !5
  %1481 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1480, i32 0, i32 9
  %1482 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1481, i32 0, i32 4
  %1483 = load ptr, ptr %1482, align 8, !tbaa !44
  %1484 = getelementptr inbounds double, ptr %1483, i64 0
  %1485 = load ptr, ptr %4, align 8, !tbaa !5
  %1486 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1485, i32 0, i32 75
  %1487 = getelementptr inbounds %"struct.alglib_impl::minlmstepfinder", ptr %1486, i32 0, i32 7
  %1488 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1487, i32 0, i32 4
  %1489 = load ptr, ptr %1488, align 8, !tbaa !44
  %1490 = getelementptr inbounds double, ptr %1489, i64 0
  %1491 = load i64, ptr %6, align 8, !tbaa !45
  %1492 = sub nsw i64 %1491, 1
  %1493 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1492)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1484, i64 noundef 1, ptr noundef %1490, i64 noundef 1, i64 noundef %1493)
  %1494 = load ptr, ptr %4, align 8, !tbaa !5
  %1495 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1494, i32 0, i32 19
  store i8 1, ptr %1495, align 4, !tbaa !77
  %1496 = load ptr, ptr %4, align 8, !tbaa !5
  %1497 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1496, i32 0, i32 58
  %1498 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1497, i32 0, i32 0
  store i32 8, ptr %1498, align 8, !tbaa !9
  br label %3586

1499:                                             ; preds = %159
  %1500 = load ptr, ptr %4, align 8, !tbaa !5
  %1501 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1500, i32 0, i32 19
  store i8 0, ptr %1501, align 4, !tbaa !77
  %1502 = load ptr, ptr %4, align 8, !tbaa !5
  %1503 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1502, i32 0, i32 75
  %1504 = getelementptr inbounds %"struct.alglib_impl::minlmstepfinder", ptr %1503, i32 0, i32 9
  %1505 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1504, i32 0, i32 4
  %1506 = load ptr, ptr %1505, align 8, !tbaa !44
  %1507 = getelementptr inbounds double, ptr %1506, i64 0
  %1508 = load ptr, ptr %4, align 8, !tbaa !5
  %1509 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1508, i32 0, i32 11
  %1510 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1509, i32 0, i32 4
  %1511 = load ptr, ptr %1510, align 8, !tbaa !44
  %1512 = getelementptr inbounds double, ptr %1511, i64 0
  %1513 = load i64, ptr %7, align 8, !tbaa !45
  %1514 = sub nsw i64 %1513, 1
  %1515 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1514)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1507, i64 noundef 1, ptr noundef %1512, i64 noundef 1, i64 noundef %1515)
  br label %1425

1516:                                             ; preds = %1473
  %1517 = load ptr, ptr %4, align 8, !tbaa !5
  %1518 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1517, i32 0, i32 75
  %1519 = getelementptr inbounds %"struct.alglib_impl::minlmstepfinder", ptr %1518, i32 0, i32 10
  %1520 = load i8, ptr %1519, align 8, !tbaa !95, !range !47, !noundef !48
  %1521 = trunc i8 %1520 to i1
  br i1 %1521, label %1523, label %1522

1522:                                             ; preds = %1516
  br label %1557

1523:                                             ; preds = %1516
  %1524 = load ptr, ptr %4, align 8, !tbaa !5
  %1525 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1524, i32 0, i32 23
  %1526 = load i8, ptr %1525, align 8, !tbaa !75, !range !47, !noundef !48
  %1527 = trunc i8 %1526 to i1
  %1528 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1527, ptr noundef @.str.606, ptr noundef %1528)
  %1529 = load ptr, ptr %4, align 8, !tbaa !5
  %1530 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1529, i32 0, i32 9
  %1531 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1530, i32 0, i32 4
  %1532 = load ptr, ptr %1531, align 8, !tbaa !44
  %1533 = getelementptr inbounds double, ptr %1532, i64 0
  %1534 = load ptr, ptr %4, align 8, !tbaa !5
  %1535 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1534, i32 0, i32 75
  %1536 = getelementptr inbounds %"struct.alglib_impl::minlmstepfinder", ptr %1535, i32 0, i32 7
  %1537 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1536, i32 0, i32 4
  %1538 = load ptr, ptr %1537, align 8, !tbaa !44
  %1539 = getelementptr inbounds double, ptr %1538, i64 0
  %1540 = load i64, ptr %6, align 8, !tbaa !45
  %1541 = sub nsw i64 %1540, 1
  %1542 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1541)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1533, i64 noundef 1, ptr noundef %1539, i64 noundef 1, i64 noundef %1542)
  %1543 = load ptr, ptr %4, align 8, !tbaa !5
  %1544 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1543, i32 0, i32 15
  store i8 1, ptr %1544, align 8, !tbaa !76
  %1545 = load ptr, ptr %4, align 8, !tbaa !5
  %1546 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1545, i32 0, i32 58
  %1547 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1546, i32 0, i32 0
  store i32 9, ptr %1547, align 8, !tbaa !9
  br label %3586

1548:                                             ; preds = %166
  %1549 = load ptr, ptr %4, align 8, !tbaa !5
  %1550 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1549, i32 0, i32 15
  store i8 0, ptr %1550, align 8, !tbaa !76
  %1551 = load ptr, ptr %4, align 8, !tbaa !5
  %1552 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1551, i32 0, i32 10
  %1553 = load double, ptr %1552, align 8, !tbaa !78
  %1554 = load ptr, ptr %4, align 8, !tbaa !5
  %1555 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1554, i32 0, i32 75
  %1556 = getelementptr inbounds %"struct.alglib_impl::minlmstepfinder", ptr %1555, i32 0, i32 8
  store double %1553, ptr %1556, align 8, !tbaa !96
  br label %1425

1557:                                             ; preds = %1522
  %1558 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.606, ptr noundef %1558)
  br label %1425

1559:                                             ; preds = %1446
  %1560 = load ptr, ptr %4, align 8, !tbaa !5
  %1561 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1560, i32 0, i32 21
  %1562 = load i8, ptr %1561, align 2, !tbaa !59, !range !47, !noundef !48
  %1563 = trunc i8 %1562 to i1
  br i1 %1563, label %1564, label %1582

1564:                                             ; preds = %1559
  %1565 = load ptr, ptr %4, align 8, !tbaa !5
  %1566 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1565, i32 0, i32 9
  %1567 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1566, i32 0, i32 4
  %1568 = load ptr, ptr %1567, align 8, !tbaa !44
  %1569 = getelementptr inbounds double, ptr %1568, i64 0
  %1570 = load ptr, ptr %4, align 8, !tbaa !5
  %1571 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1570, i32 0, i32 26
  %1572 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1571, i32 0, i32 4
  %1573 = load ptr, ptr %1572, align 8, !tbaa !44
  %1574 = getelementptr inbounds double, ptr %1573, i64 0
  %1575 = load i64, ptr %6, align 8, !tbaa !45
  %1576 = sub nsw i64 %1575, 1
  %1577 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1576)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1569, i64 noundef 1, ptr noundef %1574, i64 noundef 1, i64 noundef %1577)
  %1578 = load ptr, ptr %4, align 8, !tbaa !5
  %1579 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1578, i32 0, i32 52
  store i64 8, ptr %1579, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %1580 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1581 = trunc i8 %1580 to i1
  store i1 %1581, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1582:                                             ; preds = %1559
  %1583 = load ptr, ptr %4, align 8, !tbaa !5
  %1584 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1583, i32 0, i32 40
  store double 1.000000e+00, ptr %1584, align 8, !tbaa !80
  %1585 = load i64, ptr %9, align 8, !tbaa !45
  %1586 = icmp sge i64 %1585, -3
  br i1 %1586, label %1587, label %1590

1587:                                             ; preds = %1582
  %1588 = load i64, ptr %9, align 8, !tbaa !45
  %1589 = icmp sle i64 %1588, 0
  br i1 %1589, label %1596, label %1590

1590:                                             ; preds = %1587, %1582
  %1591 = load i64, ptr %9, align 8, !tbaa !45
  %1592 = icmp eq i64 %1591, -8
  br i1 %1592, label %1596, label %1593

1593:                                             ; preds = %1590
  %1594 = load i64, ptr %9, align 8, !tbaa !45
  %1595 = icmp sgt i64 %1594, 0
  br label %1596

1596:                                             ; preds = %1593, %1590, %1587
  %1597 = phi i1 [ true, %1590 ], [ true, %1587 ], [ %1595, %1593 ]
  %1598 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1597, ptr noundef @.str.610, ptr noundef %1598)
  %1599 = load i64, ptr %9, align 8, !tbaa !45
  %1600 = icmp eq i64 %1599, -3
  br i1 %1600, label %1601, label %1606

1601:                                             ; preds = %1596
  %1602 = load ptr, ptr %4, align 8, !tbaa !5
  %1603 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1602, i32 0, i32 52
  store i64 -3, ptr %1603, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %1604 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1605 = trunc i8 %1604 to i1
  store i1 %1605, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1606:                                             ; preds = %1596
  %1607 = load i64, ptr %9, align 8, !tbaa !45
  %1608 = icmp eq i64 %1607, -2
  br i1 %1608, label %1609, label %1616

1609:                                             ; preds = %1606
  %1610 = load ptr, ptr %4, align 8, !tbaa !5
  %1611 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1610, i32 0, i32 7
  %1612 = load i64, ptr %1611, align 8, !tbaa !62
  %1613 = add nsw i64 %1612, 1
  %1614 = load ptr, ptr %4, align 8, !tbaa !5
  %1615 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1614, i32 0, i32 41
  store i64 %1613, ptr %1615, align 8, !tbaa !82
  br label %658

1616:                                             ; preds = %1606
  %1617 = load i64, ptr %9, align 8, !tbaa !45
  %1618 = icmp ne i64 %1617, -1
  br i1 %1618, label %1619, label %1620

1619:                                             ; preds = %1616
  br label %1660

1620:                                             ; preds = %1616
  %1621 = load ptr, ptr %4, align 8, !tbaa !5
  %1622 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1621, i32 0, i32 52
  store i64 7, ptr %1622, align 8, !tbaa !53
  %1623 = load ptr, ptr %4, align 8, !tbaa !5
  %1624 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1623, i32 0, i32 5
  %1625 = load i8, ptr %1624, align 8, !tbaa !74, !range !47, !noundef !48
  %1626 = trunc i8 %1625 to i1
  br i1 %1626, label %1628, label %1627

1627:                                             ; preds = %1620
  br label %1657

1628:                                             ; preds = %1620
  %1629 = load ptr, ptr %4, align 8, !tbaa !5
  %1630 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1629, i32 0, i32 9
  %1631 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1630, i32 0, i32 4
  %1632 = load ptr, ptr %1631, align 8, !tbaa !44
  %1633 = getelementptr inbounds double, ptr %1632, i64 0
  %1634 = load ptr, ptr %4, align 8, !tbaa !5
  %1635 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1634, i32 0, i32 26
  %1636 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1635, i32 0, i32 4
  %1637 = load ptr, ptr %1636, align 8, !tbaa !44
  %1638 = getelementptr inbounds double, ptr %1637, i64 0
  %1639 = load i64, ptr %6, align 8, !tbaa !45
  %1640 = sub nsw i64 %1639, 1
  %1641 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1640)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1633, i64 noundef 1, ptr noundef %1638, i64 noundef 1, i64 noundef %1641)
  %1642 = load ptr, ptr %4, align 8, !tbaa !5
  %1643 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1642, i32 0, i32 27
  %1644 = load double, ptr %1643, align 8, !tbaa !91
  %1645 = load ptr, ptr %4, align 8, !tbaa !5
  %1646 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1645, i32 0, i32 10
  store double %1644, ptr %1646, align 8, !tbaa !78
  %1647 = load ptr, ptr %4, align 8, !tbaa !5
  %1648 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1647, ptr noundef %1648)
  %1649 = load ptr, ptr %4, align 8, !tbaa !5
  %1650 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1649, i32 0, i32 20
  store i8 1, ptr %1650, align 1, !tbaa !79
  %1651 = load ptr, ptr %4, align 8, !tbaa !5
  %1652 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1651, i32 0, i32 58
  %1653 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1652, i32 0, i32 0
  store i32 10, ptr %1653, align 8, !tbaa !9
  br label %3586

1654:                                             ; preds = %173
  %1655 = load ptr, ptr %4, align 8, !tbaa !5
  %1656 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1655, i32 0, i32 20
  store i8 0, ptr %1656, align 1, !tbaa !79
  br label %1657

1657:                                             ; preds = %1654, %1627
  store i8 0, ptr %16, align 1, !tbaa !46
  %1658 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1659 = trunc i8 %1658 to i1
  store i1 %1659, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1660:                                             ; preds = %1619
  %1661 = load i64, ptr %9, align 8, !tbaa !45
  %1662 = icmp eq i64 %1661, -8
  br i1 %1662, label %1667, label %1663

1663:                                             ; preds = %1660
  %1664 = load i64, ptr %9, align 8, !tbaa !45
  %1665 = icmp sgt i64 %1664, 0
  br i1 %1665, label %1667, label %1666

1666:                                             ; preds = %1663
  br label %1708

1667:                                             ; preds = %1663, %1660
  %1668 = load i64, ptr %9, align 8, !tbaa !45
  %1669 = load ptr, ptr %4, align 8, !tbaa !5
  %1670 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1669, i32 0, i32 52
  store i64 %1668, ptr %1670, align 8, !tbaa !53
  %1671 = load ptr, ptr %4, align 8, !tbaa !5
  %1672 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1671, i32 0, i32 5
  %1673 = load i8, ptr %1672, align 8, !tbaa !74, !range !47, !noundef !48
  %1674 = trunc i8 %1673 to i1
  br i1 %1674, label %1676, label %1675

1675:                                             ; preds = %1667
  br label %1705

1676:                                             ; preds = %1667
  %1677 = load ptr, ptr %4, align 8, !tbaa !5
  %1678 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1677, i32 0, i32 9
  %1679 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1678, i32 0, i32 4
  %1680 = load ptr, ptr %1679, align 8, !tbaa !44
  %1681 = getelementptr inbounds double, ptr %1680, i64 0
  %1682 = load ptr, ptr %4, align 8, !tbaa !5
  %1683 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1682, i32 0, i32 26
  %1684 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1683, i32 0, i32 4
  %1685 = load ptr, ptr %1684, align 8, !tbaa !44
  %1686 = getelementptr inbounds double, ptr %1685, i64 0
  %1687 = load i64, ptr %6, align 8, !tbaa !45
  %1688 = sub nsw i64 %1687, 1
  %1689 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1688)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1681, i64 noundef 1, ptr noundef %1686, i64 noundef 1, i64 noundef %1689)
  %1690 = load ptr, ptr %4, align 8, !tbaa !5
  %1691 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1690, i32 0, i32 27
  %1692 = load double, ptr %1691, align 8, !tbaa !91
  %1693 = load ptr, ptr %4, align 8, !tbaa !5
  %1694 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1693, i32 0, i32 10
  store double %1692, ptr %1694, align 8, !tbaa !78
  %1695 = load ptr, ptr %4, align 8, !tbaa !5
  %1696 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1695, ptr noundef %1696)
  %1697 = load ptr, ptr %4, align 8, !tbaa !5
  %1698 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1697, i32 0, i32 20
  store i8 1, ptr %1698, align 1, !tbaa !79
  %1699 = load ptr, ptr %4, align 8, !tbaa !5
  %1700 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1699, i32 0, i32 58
  %1701 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1700, i32 0, i32 0
  store i32 11, ptr %1701, align 8, !tbaa !9
  br label %3586

1702:                                             ; preds = %180
  %1703 = load ptr, ptr %4, align 8, !tbaa !5
  %1704 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1703, i32 0, i32 20
  store i8 0, ptr %1704, align 1, !tbaa !79
  br label %1705

1705:                                             ; preds = %1702, %1675
  store i8 0, ptr %16, align 1, !tbaa !46
  %1706 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1707 = trunc i8 %1706 to i1
  store i1 %1707, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1708:                                             ; preds = %1666
  %1709 = load double, ptr %13, align 8, !tbaa !49
  %1710 = load ptr, ptr %4, align 8, !tbaa !5
  %1711 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1710, i32 0, i32 10
  store double %1709, ptr %1711, align 8, !tbaa !78
  %1712 = load ptr, ptr %4, align 8, !tbaa !5
  %1713 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1712, i32 0, i32 46
  %1714 = load i8, ptr %1713, align 8, !tbaa !83, !range !47, !noundef !48
  %1715 = trunc i8 %1714 to i1
  %1716 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1715, ptr noundef @.str.611, ptr noundef %1716)
  %1717 = load ptr, ptr %4, align 8, !tbaa !5
  %1718 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1717, i32 0, i32 30
  %1719 = load ptr, ptr %4, align 8, !tbaa !5
  %1720 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1719, i32 0, i32 29
  %1721 = load ptr, ptr %4, align 8, !tbaa !5
  %1722 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1721, i32 0, i32 27
  %1723 = load double, ptr %1722, align 8, !tbaa !91
  %1724 = load i64, ptr %6, align 8, !tbaa !45
  %1725 = load ptr, ptr %4, align 8, !tbaa !5
  %1726 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1725, i32 0, i32 44
  %1727 = load ptr, ptr %4, align 8, !tbaa !5
  %1728 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1727, i32 0, i32 10
  %1729 = load double, ptr %1728, align 8, !tbaa !78
  %1730 = load ptr, ptr %4, align 8, !tbaa !5
  %1731 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1730, i32 0, i32 39
  %1732 = load ptr, ptr %4, align 8, !tbaa !5
  %1733 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1732, i32 0, i32 40
  %1734 = load ptr, ptr %5, align 8, !tbaa !5
  %1735 = call noundef i64 @_ZN11alglib_implL19minlm_checkdecreaseEPNS_9ae_matrixEPNS_9ae_vectorEdlS3_dPdS4_PNS_8ae_stateE(ptr noundef %1718, ptr noundef %1720, double noundef %1723, i64 noundef %1724, ptr noundef %1726, double noundef %1729, ptr noundef %1731, ptr noundef %1733, ptr noundef %1734)
  store i64 %1735, ptr %9, align 8, !tbaa !45
  %1736 = load i64, ptr %9, align 8, !tbaa !45
  %1737 = icmp eq i64 %1736, 0
  br i1 %1737, label %1738, label %1739

1738:                                             ; preds = %1708
  br label %1780

1739:                                             ; preds = %1708
  %1740 = load i64, ptr %9, align 8, !tbaa !45
  %1741 = load ptr, ptr %4, align 8, !tbaa !5
  %1742 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1741, i32 0, i32 52
  store i64 %1740, ptr %1742, align 8, !tbaa !53
  %1743 = load ptr, ptr %4, align 8, !tbaa !5
  %1744 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1743, i32 0, i32 5
  %1745 = load i8, ptr %1744, align 8, !tbaa !74, !range !47, !noundef !48
  %1746 = trunc i8 %1745 to i1
  br i1 %1746, label %1748, label %1747

1747:                                             ; preds = %1739
  br label %1777

1748:                                             ; preds = %1739
  %1749 = load ptr, ptr %4, align 8, !tbaa !5
  %1750 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1749, i32 0, i32 9
  %1751 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1750, i32 0, i32 4
  %1752 = load ptr, ptr %1751, align 8, !tbaa !44
  %1753 = getelementptr inbounds double, ptr %1752, i64 0
  %1754 = load ptr, ptr %4, align 8, !tbaa !5
  %1755 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1754, i32 0, i32 26
  %1756 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1755, i32 0, i32 4
  %1757 = load ptr, ptr %1756, align 8, !tbaa !44
  %1758 = getelementptr inbounds double, ptr %1757, i64 0
  %1759 = load i64, ptr %6, align 8, !tbaa !45
  %1760 = sub nsw i64 %1759, 1
  %1761 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1760)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1753, i64 noundef 1, ptr noundef %1758, i64 noundef 1, i64 noundef %1761)
  %1762 = load ptr, ptr %4, align 8, !tbaa !5
  %1763 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1762, i32 0, i32 27
  %1764 = load double, ptr %1763, align 8, !tbaa !91
  %1765 = load ptr, ptr %4, align 8, !tbaa !5
  %1766 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1765, i32 0, i32 10
  store double %1764, ptr %1766, align 8, !tbaa !78
  %1767 = load ptr, ptr %4, align 8, !tbaa !5
  %1768 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1767, ptr noundef %1768)
  %1769 = load ptr, ptr %4, align 8, !tbaa !5
  %1770 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1769, i32 0, i32 20
  store i8 1, ptr %1770, align 1, !tbaa !79
  %1771 = load ptr, ptr %4, align 8, !tbaa !5
  %1772 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1771, i32 0, i32 58
  %1773 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1772, i32 0, i32 0
  store i32 12, ptr %1773, align 8, !tbaa !9
  br label %3586

1774:                                             ; preds = %187
  %1775 = load ptr, ptr %4, align 8, !tbaa !5
  %1776 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1775, i32 0, i32 20
  store i8 0, ptr %1776, align 1, !tbaa !79
  br label %1777

1777:                                             ; preds = %1774, %1747
  store i8 0, ptr %16, align 1, !tbaa !46
  %1778 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1779 = trunc i8 %1778 to i1
  store i1 %1779, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1780:                                             ; preds = %1738
  %1781 = load ptr, ptr %4, align 8, !tbaa !5
  %1782 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1781, i32 0, i32 26
  %1783 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1782, i32 0, i32 4
  %1784 = load ptr, ptr %1783, align 8, !tbaa !44
  %1785 = getelementptr inbounds double, ptr %1784, i64 0
  %1786 = load ptr, ptr %4, align 8, !tbaa !5
  %1787 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1786, i32 0, i32 42
  %1788 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1787, i32 0, i32 4
  %1789 = load ptr, ptr %1788, align 8, !tbaa !44
  %1790 = getelementptr inbounds double, ptr %1789, i64 0
  %1791 = load i64, ptr %6, align 8, !tbaa !45
  %1792 = sub nsw i64 %1791, 1
  %1793 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1792)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1785, i64 noundef 1, ptr noundef %1790, i64 noundef 1, i64 noundef %1793)
  %1794 = load ptr, ptr %4, align 8, !tbaa !5
  %1795 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1794, i32 0, i32 5
  %1796 = load i8, ptr %1795, align 8, !tbaa !74, !range !47, !noundef !48
  %1797 = trunc i8 %1796 to i1
  br i1 %1797, label %1799, label %1798

1798:                                             ; preds = %1780
  br label %1823

1799:                                             ; preds = %1780
  %1800 = load ptr, ptr %4, align 8, !tbaa !5
  %1801 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1800, i32 0, i32 9
  %1802 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1801, i32 0, i32 4
  %1803 = load ptr, ptr %1802, align 8, !tbaa !44
  %1804 = getelementptr inbounds double, ptr %1803, i64 0
  %1805 = load ptr, ptr %4, align 8, !tbaa !5
  %1806 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1805, i32 0, i32 26
  %1807 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1806, i32 0, i32 4
  %1808 = load ptr, ptr %1807, align 8, !tbaa !44
  %1809 = getelementptr inbounds double, ptr %1808, i64 0
  %1810 = load i64, ptr %6, align 8, !tbaa !45
  %1811 = sub nsw i64 %1810, 1
  %1812 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1811)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1804, i64 noundef 1, ptr noundef %1809, i64 noundef 1, i64 noundef %1812)
  %1813 = load ptr, ptr %4, align 8, !tbaa !5
  %1814 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1813, ptr noundef %1814)
  %1815 = load ptr, ptr %4, align 8, !tbaa !5
  %1816 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1815, i32 0, i32 20
  store i8 1, ptr %1816, align 1, !tbaa !79
  %1817 = load ptr, ptr %4, align 8, !tbaa !5
  %1818 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1817, i32 0, i32 58
  %1819 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1818, i32 0, i32 0
  store i32 13, ptr %1819, align 8, !tbaa !9
  br label %3586

1820:                                             ; preds = %194
  %1821 = load ptr, ptr %4, align 8, !tbaa !5
  %1822 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1821, i32 0, i32 20
  store i8 0, ptr %1822, align 1, !tbaa !79
  br label %1823

1823:                                             ; preds = %1820, %1798
  %1824 = load ptr, ptr %4, align 8, !tbaa !5
  %1825 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1824, i32 0, i32 51
  %1826 = load i64, ptr %1825, align 8, !tbaa !52
  %1827 = add nsw i64 %1826, 1
  %1828 = load ptr, ptr %4, align 8, !tbaa !5
  %1829 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1828, i32 0, i32 51
  store i64 %1827, ptr %1829, align 8, !tbaa !52
  %1830 = load ptr, ptr %4, align 8, !tbaa !5
  %1831 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1830, i32 0, i32 51
  %1832 = load i64, ptr %1831, align 8, !tbaa !52
  %1833 = load ptr, ptr %4, align 8, !tbaa !5
  %1834 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1833, i32 0, i32 4
  %1835 = load i64, ptr %1834, align 8, !tbaa !97
  %1836 = icmp sge i64 %1832, %1835
  br i1 %1836, label %1837, label %1845

1837:                                             ; preds = %1823
  %1838 = load ptr, ptr %4, align 8, !tbaa !5
  %1839 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1838, i32 0, i32 4
  %1840 = load i64, ptr %1839, align 8, !tbaa !97
  %1841 = icmp sgt i64 %1840, 0
  br i1 %1841, label %1842, label %1845

1842:                                             ; preds = %1837
  %1843 = load ptr, ptr %4, align 8, !tbaa !5
  %1844 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1843, i32 0, i32 52
  store i64 5, ptr %1844, align 8, !tbaa !53
  br label %1845

1845:                                             ; preds = %1842, %1837, %1823
  %1846 = load ptr, ptr %4, align 8, !tbaa !5
  %1847 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1846, i32 0, i32 52
  %1848 = load i64, ptr %1847, align 8, !tbaa !53
  %1849 = icmp sle i64 %1848, 0
  br i1 %1849, label %1850, label %1851

1850:                                             ; preds = %1845
  br label %1884

1851:                                             ; preds = %1845
  %1852 = load ptr, ptr %4, align 8, !tbaa !5
  %1853 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1852, i32 0, i32 5
  %1854 = load i8, ptr %1853, align 8, !tbaa !74, !range !47, !noundef !48
  %1855 = trunc i8 %1854 to i1
  br i1 %1855, label %1857, label %1856

1856:                                             ; preds = %1851
  br label %1881

1857:                                             ; preds = %1851
  %1858 = load ptr, ptr %4, align 8, !tbaa !5
  %1859 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1858, i32 0, i32 9
  %1860 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1859, i32 0, i32 4
  %1861 = load ptr, ptr %1860, align 8, !tbaa !44
  %1862 = getelementptr inbounds double, ptr %1861, i64 0
  %1863 = load ptr, ptr %4, align 8, !tbaa !5
  %1864 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1863, i32 0, i32 26
  %1865 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1864, i32 0, i32 4
  %1866 = load ptr, ptr %1865, align 8, !tbaa !44
  %1867 = getelementptr inbounds double, ptr %1866, i64 0
  %1868 = load i64, ptr %6, align 8, !tbaa !45
  %1869 = sub nsw i64 %1868, 1
  %1870 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1869)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1862, i64 noundef 1, ptr noundef %1867, i64 noundef 1, i64 noundef %1870)
  %1871 = load ptr, ptr %4, align 8, !tbaa !5
  %1872 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1871, ptr noundef %1872)
  %1873 = load ptr, ptr %4, align 8, !tbaa !5
  %1874 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1873, i32 0, i32 20
  store i8 1, ptr %1874, align 1, !tbaa !79
  %1875 = load ptr, ptr %4, align 8, !tbaa !5
  %1876 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1875, i32 0, i32 58
  %1877 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1876, i32 0, i32 0
  store i32 14, ptr %1877, align 8, !tbaa !9
  br label %3586

1878:                                             ; preds = %201
  %1879 = load ptr, ptr %4, align 8, !tbaa !5
  %1880 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1879, i32 0, i32 20
  store i8 0, ptr %1880, align 1, !tbaa !79
  br label %1881

1881:                                             ; preds = %1878, %1856
  store i8 0, ptr %16, align 1, !tbaa !46
  %1882 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1883 = trunc i8 %1882 to i1
  store i1 %1883, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1884:                                             ; preds = %1850
  %1885 = load ptr, ptr %4, align 8, !tbaa !5
  %1886 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1885, i32 0, i32 41
  %1887 = load i64, ptr %1886, align 8, !tbaa !82
  %1888 = add nsw i64 %1887, 1
  %1889 = load ptr, ptr %4, align 8, !tbaa !5
  %1890 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1889, i32 0, i32 41
  store i64 %1888, ptr %1890, align 8, !tbaa !82
  br label %658

1891:                                             ; No predecessors!
  %1892 = load ptr, ptr %4, align 8, !tbaa !5
  %1893 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1892, i32 0, i32 52
  store i64 7, ptr %1893, align 8, !tbaa !53
  %1894 = load ptr, ptr %4, align 8, !tbaa !5
  %1895 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1894, i32 0, i32 5
  %1896 = load i8, ptr %1895, align 8, !tbaa !74, !range !47, !noundef !48
  %1897 = trunc i8 %1896 to i1
  br i1 %1897, label %1899, label %1898

1898:                                             ; preds = %1891
  br label %1928

1899:                                             ; preds = %1891
  %1900 = load ptr, ptr %4, align 8, !tbaa !5
  %1901 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1900, i32 0, i32 9
  %1902 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1901, i32 0, i32 4
  %1903 = load ptr, ptr %1902, align 8, !tbaa !44
  %1904 = getelementptr inbounds double, ptr %1903, i64 0
  %1905 = load ptr, ptr %4, align 8, !tbaa !5
  %1906 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1905, i32 0, i32 26
  %1907 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1906, i32 0, i32 4
  %1908 = load ptr, ptr %1907, align 8, !tbaa !44
  %1909 = getelementptr inbounds double, ptr %1908, i64 0
  %1910 = load i64, ptr %6, align 8, !tbaa !45
  %1911 = sub nsw i64 %1910, 1
  %1912 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1911)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1904, i64 noundef 1, ptr noundef %1909, i64 noundef 1, i64 noundef %1912)
  %1913 = load ptr, ptr %4, align 8, !tbaa !5
  %1914 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1913, i32 0, i32 27
  %1915 = load double, ptr %1914, align 8, !tbaa !91
  %1916 = load ptr, ptr %4, align 8, !tbaa !5
  %1917 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1916, i32 0, i32 10
  store double %1915, ptr %1917, align 8, !tbaa !78
  %1918 = load ptr, ptr %4, align 8, !tbaa !5
  %1919 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1918, ptr noundef %1919)
  %1920 = load ptr, ptr %4, align 8, !tbaa !5
  %1921 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1920, i32 0, i32 20
  store i8 1, ptr %1921, align 1, !tbaa !79
  %1922 = load ptr, ptr %4, align 8, !tbaa !5
  %1923 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1922, i32 0, i32 58
  %1924 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1923, i32 0, i32 0
  store i32 15, ptr %1924, align 8, !tbaa !9
  br label %3586

1925:                                             ; preds = %208
  %1926 = load ptr, ptr %4, align 8, !tbaa !5
  %1927 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1926, i32 0, i32 20
  store i8 0, ptr %1927, align 1, !tbaa !79
  br label %1928

1928:                                             ; preds = %1925, %1898
  br label %3583

1929:                                             ; preds = %656
  %1930 = load ptr, ptr %4, align 8, !tbaa !5
  %1931 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1930, i32 0, i32 37
  %1932 = load i64, ptr %1931, align 8, !tbaa !64
  %1933 = load ptr, ptr %4, align 8, !tbaa !5
  %1934 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1933, i32 0, i32 38
  %1935 = load i64, ptr %1934, align 8, !tbaa !65
  %1936 = add nsw i64 %1932, %1935
  %1937 = icmp sgt i64 %1936, 0
  br i1 %1937, label %1938, label %1943

1938:                                             ; preds = %1929
  %1939 = load ptr, ptr %4, align 8, !tbaa !5
  %1940 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1939, i32 0, i32 52
  store i64 -5, ptr %1940, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %1941 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %1942 = trunc i8 %1941 to i1
  store i1 %1942, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

1943:                                             ; preds = %1929
  br label %1944

1944:                                             ; preds = %3538, %3276, %1943
  store i8 0, ptr %8, align 1, !tbaa !46
  %1945 = load ptr, ptr %4, align 8, !tbaa !5
  %1946 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1945, i32 0, i32 22
  %1947 = load i64, ptr %1946, align 8, !tbaa !68
  %1948 = icmp eq i64 %1947, 0
  br i1 %1948, label %1955, label %1949

1949:                                             ; preds = %1944
  %1950 = load ptr, ptr %4, align 8, !tbaa !5
  %1951 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1950, i32 0, i32 22
  %1952 = load i64, ptr %1951, align 8, !tbaa !68
  %1953 = icmp eq i64 %1952, 1
  br i1 %1953, label %1955, label %1954

1954:                                             ; preds = %1949
  br label %2597

1955:                                             ; preds = %1949, %1944
  %1956 = load ptr, ptr %4, align 8, !tbaa !5
  %1957 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1956, i32 0, i32 41
  %1958 = load i64, ptr %1957, align 8, !tbaa !82
  %1959 = load ptr, ptr %4, align 8, !tbaa !5
  %1960 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1959, i32 0, i32 7
  %1961 = load i64, ptr %1960, align 8, !tbaa !62
  %1962 = icmp sgt i64 %1958, %1961
  br i1 %1962, label %1974, label %1963

1963:                                             ; preds = %1955
  %1964 = load ptr, ptr %4, align 8, !tbaa !5
  %1965 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1964, i32 0, i32 46
  %1966 = load i8, ptr %1965, align 8, !tbaa !83, !range !47, !noundef !48
  %1967 = trunc i8 %1966 to i1
  br i1 %1967, label %1968, label %1974

1968:                                             ; preds = %1963
  %1969 = load ptr, ptr %4, align 8, !tbaa !5
  %1970 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1969, i32 0, i32 47
  %1971 = load i8, ptr %1970, align 1, !tbaa !84, !range !47, !noundef !48
  %1972 = trunc i8 %1971 to i1
  br i1 %1972, label %1973, label %1974

1973:                                             ; preds = %1968
  br label %2422

1974:                                             ; preds = %1968, %1963, %1955
  %1975 = load ptr, ptr %4, align 8, !tbaa !5
  %1976 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1975, i32 0, i32 22
  %1977 = load i64, ptr %1976, align 8, !tbaa !68
  %1978 = icmp ne i64 %1977, 0
  br i1 %1978, label %1979, label %1980

1979:                                             ; preds = %1974
  br label %2383

1980:                                             ; preds = %1974
  %1981 = load ptr, ptr %4, align 8, !tbaa !5
  %1982 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1981, i32 0, i32 24
  %1983 = load i8, ptr %1982, align 1, !tbaa !63, !range !47, !noundef !48
  %1984 = trunc i8 %1983 to i1
  %1985 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1984, ptr noundef @.str.607, ptr noundef %1985)
  store i64 0, ptr %15, align 8, !tbaa !45
  br label %1986

1986:                                             ; preds = %2342, %1980
  %1987 = load i64, ptr %15, align 8, !tbaa !45
  %1988 = load i64, ptr %6, align 8, !tbaa !45
  %1989 = sub nsw i64 %1988, 1
  %1990 = icmp sgt i64 %1987, %1989
  br i1 %1990, label %1991, label %1992

1991:                                             ; preds = %1986
  br label %2345

1992:                                             ; preds = %1986
  %1993 = load ptr, ptr %4, align 8, !tbaa !5
  %1994 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1993, i32 0, i32 9
  %1995 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1994, i32 0, i32 4
  %1996 = load ptr, ptr %1995, align 8, !tbaa !44
  %1997 = getelementptr inbounds double, ptr %1996, i64 0
  %1998 = load ptr, ptr %4, align 8, !tbaa !5
  %1999 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1998, i32 0, i32 26
  %2000 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1999, i32 0, i32 4
  %2001 = load ptr, ptr %2000, align 8, !tbaa !44
  %2002 = getelementptr inbounds double, ptr %2001, i64 0
  %2003 = load i64, ptr %6, align 8, !tbaa !45
  %2004 = sub nsw i64 %2003, 1
  %2005 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2004)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1997, i64 noundef 1, ptr noundef %2002, i64 noundef 1, i64 noundef %2005)
  %2006 = load ptr, ptr %4, align 8, !tbaa !5
  %2007 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2006, i32 0, i32 9
  %2008 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2007, i32 0, i32 4
  %2009 = load ptr, ptr %2008, align 8, !tbaa !44
  %2010 = load i64, ptr %15, align 8, !tbaa !45
  %2011 = getelementptr inbounds double, ptr %2009, i64 %2010
  %2012 = load double, ptr %2011, align 8, !tbaa !49
  %2013 = load ptr, ptr %4, align 8, !tbaa !5
  %2014 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2013, i32 0, i32 35
  %2015 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2014, i32 0, i32 4
  %2016 = load ptr, ptr %2015, align 8, !tbaa !44
  %2017 = load i64, ptr %15, align 8, !tbaa !45
  %2018 = getelementptr inbounds double, ptr %2016, i64 %2017
  %2019 = load double, ptr %2018, align 8, !tbaa !49
  %2020 = load ptr, ptr %4, align 8, !tbaa !5
  %2021 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2020, i32 0, i32 2
  %2022 = load double, ptr %2021, align 8, !tbaa !85
  %2023 = fneg double %2019
  %2024 = call double @llvm.fmuladd.f64(double %2023, double %2022, double %2012)
  %2025 = load ptr, ptr %4, align 8, !tbaa !5
  %2026 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2025, i32 0, i32 9
  %2027 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2026, i32 0, i32 4
  %2028 = load ptr, ptr %2027, align 8, !tbaa !44
  %2029 = load i64, ptr %15, align 8, !tbaa !45
  %2030 = getelementptr inbounds double, ptr %2028, i64 %2029
  store double %2024, ptr %2030, align 8, !tbaa !49
  %2031 = load ptr, ptr %4, align 8, !tbaa !5
  %2032 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2031, i32 0, i32 33
  %2033 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2032, i32 0, i32 4
  %2034 = load ptr, ptr %2033, align 8, !tbaa !44
  %2035 = load i64, ptr %15, align 8, !tbaa !45
  %2036 = getelementptr inbounds i8, ptr %2034, i64 %2035
  %2037 = load i8, ptr %2036, align 1, !tbaa !46, !range !47, !noundef !48
  %2038 = trunc i8 %2037 to i1
  br i1 %2038, label %2039, label %2062

2039:                                             ; preds = %1992
  %2040 = load ptr, ptr %4, align 8, !tbaa !5
  %2041 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2040, i32 0, i32 9
  %2042 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2041, i32 0, i32 4
  %2043 = load ptr, ptr %2042, align 8, !tbaa !44
  %2044 = load i64, ptr %15, align 8, !tbaa !45
  %2045 = getelementptr inbounds double, ptr %2043, i64 %2044
  %2046 = load double, ptr %2045, align 8, !tbaa !49
  %2047 = load ptr, ptr %4, align 8, !tbaa !5
  %2048 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2047, i32 0, i32 31
  %2049 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2048, i32 0, i32 4
  %2050 = load ptr, ptr %2049, align 8, !tbaa !44
  %2051 = load i64, ptr %15, align 8, !tbaa !45
  %2052 = getelementptr inbounds double, ptr %2050, i64 %2051
  %2053 = load double, ptr %2052, align 8, !tbaa !49
  %2054 = load ptr, ptr %5, align 8, !tbaa !5
  %2055 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2046, double noundef %2053, ptr noundef %2054)
  %2056 = load ptr, ptr %4, align 8, !tbaa !5
  %2057 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2056, i32 0, i32 9
  %2058 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2057, i32 0, i32 4
  %2059 = load ptr, ptr %2058, align 8, !tbaa !44
  %2060 = load i64, ptr %15, align 8, !tbaa !45
  %2061 = getelementptr inbounds double, ptr %2059, i64 %2060
  store double %2055, ptr %2061, align 8, !tbaa !49
  br label %2062

2062:                                             ; preds = %2039, %1992
  %2063 = load ptr, ptr %4, align 8, !tbaa !5
  %2064 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2063, i32 0, i32 34
  %2065 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2064, i32 0, i32 4
  %2066 = load ptr, ptr %2065, align 8, !tbaa !44
  %2067 = load i64, ptr %15, align 8, !tbaa !45
  %2068 = getelementptr inbounds i8, ptr %2066, i64 %2067
  %2069 = load i8, ptr %2068, align 1, !tbaa !46, !range !47, !noundef !48
  %2070 = trunc i8 %2069 to i1
  br i1 %2070, label %2071, label %2094

2071:                                             ; preds = %2062
  %2072 = load ptr, ptr %4, align 8, !tbaa !5
  %2073 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2072, i32 0, i32 9
  %2074 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2073, i32 0, i32 4
  %2075 = load ptr, ptr %2074, align 8, !tbaa !44
  %2076 = load i64, ptr %15, align 8, !tbaa !45
  %2077 = getelementptr inbounds double, ptr %2075, i64 %2076
  %2078 = load double, ptr %2077, align 8, !tbaa !49
  %2079 = load ptr, ptr %4, align 8, !tbaa !5
  %2080 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2079, i32 0, i32 32
  %2081 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2080, i32 0, i32 4
  %2082 = load ptr, ptr %2081, align 8, !tbaa !44
  %2083 = load i64, ptr %15, align 8, !tbaa !45
  %2084 = getelementptr inbounds double, ptr %2082, i64 %2083
  %2085 = load double, ptr %2084, align 8, !tbaa !49
  %2086 = load ptr, ptr %5, align 8, !tbaa !5
  %2087 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2078, double noundef %2085, ptr noundef %2086)
  %2088 = load ptr, ptr %4, align 8, !tbaa !5
  %2089 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2088, i32 0, i32 9
  %2090 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2089, i32 0, i32 4
  %2091 = load ptr, ptr %2090, align 8, !tbaa !44
  %2092 = load i64, ptr %15, align 8, !tbaa !45
  %2093 = getelementptr inbounds double, ptr %2091, i64 %2092
  store double %2087, ptr %2093, align 8, !tbaa !49
  br label %2094

2094:                                             ; preds = %2071, %2062
  %2095 = load ptr, ptr %4, align 8, !tbaa !5
  %2096 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2095, i32 0, i32 9
  %2097 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2096, i32 0, i32 4
  %2098 = load ptr, ptr %2097, align 8, !tbaa !44
  %2099 = load i64, ptr %15, align 8, !tbaa !45
  %2100 = getelementptr inbounds double, ptr %2098, i64 %2099
  %2101 = load double, ptr %2100, align 8, !tbaa !49
  %2102 = load ptr, ptr %4, align 8, !tbaa !5
  %2103 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2102, i32 0, i32 63
  store double %2101, ptr %2103, align 8, !tbaa !86
  %2104 = load ptr, ptr %4, align 8, !tbaa !5
  %2105 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %2104, ptr noundef %2105)
  %2106 = load ptr, ptr %4, align 8, !tbaa !5
  %2107 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2106, i32 0, i32 19
  store i8 1, ptr %2107, align 4, !tbaa !77
  %2108 = load ptr, ptr %4, align 8, !tbaa !5
  %2109 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2108, i32 0, i32 58
  %2110 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2109, i32 0, i32 0
  store i32 16, ptr %2110, align 8, !tbaa !9
  br label %3586

2111:                                             ; preds = %215
  %2112 = load ptr, ptr %4, align 8, !tbaa !5
  %2113 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2112, i32 0, i32 53
  %2114 = load i64, ptr %2113, align 8, !tbaa !54
  %2115 = add nsw i64 %2114, 1
  %2116 = load ptr, ptr %4, align 8, !tbaa !5
  %2117 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2116, i32 0, i32 53
  store i64 %2115, ptr %2117, align 8, !tbaa !54
  %2118 = load ptr, ptr %4, align 8, !tbaa !5
  %2119 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2118, i32 0, i32 65
  %2120 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2119, i32 0, i32 4
  %2121 = load ptr, ptr %2120, align 8, !tbaa !44
  %2122 = getelementptr inbounds double, ptr %2121, i64 0
  %2123 = load ptr, ptr %4, align 8, !tbaa !5
  %2124 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2123, i32 0, i32 11
  %2125 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2124, i32 0, i32 4
  %2126 = load ptr, ptr %2125, align 8, !tbaa !44
  %2127 = getelementptr inbounds double, ptr %2126, i64 0
  %2128 = load i64, ptr %7, align 8, !tbaa !45
  %2129 = sub nsw i64 %2128, 1
  %2130 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2129)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2122, i64 noundef 1, ptr noundef %2127, i64 noundef 1, i64 noundef %2130)
  %2131 = load ptr, ptr %4, align 8, !tbaa !5
  %2132 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2131, i32 0, i32 9
  %2133 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2132, i32 0, i32 4
  %2134 = load ptr, ptr %2133, align 8, !tbaa !44
  %2135 = getelementptr inbounds double, ptr %2134, i64 0
  %2136 = load ptr, ptr %4, align 8, !tbaa !5
  %2137 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2136, i32 0, i32 26
  %2138 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2137, i32 0, i32 4
  %2139 = load ptr, ptr %2138, align 8, !tbaa !44
  %2140 = getelementptr inbounds double, ptr %2139, i64 0
  %2141 = load i64, ptr %6, align 8, !tbaa !45
  %2142 = sub nsw i64 %2141, 1
  %2143 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2142)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2135, i64 noundef 1, ptr noundef %2140, i64 noundef 1, i64 noundef %2143)
  %2144 = load ptr, ptr %4, align 8, !tbaa !5
  %2145 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2144, i32 0, i32 9
  %2146 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2145, i32 0, i32 4
  %2147 = load ptr, ptr %2146, align 8, !tbaa !44
  %2148 = load i64, ptr %15, align 8, !tbaa !45
  %2149 = getelementptr inbounds double, ptr %2147, i64 %2148
  %2150 = load double, ptr %2149, align 8, !tbaa !49
  %2151 = load ptr, ptr %4, align 8, !tbaa !5
  %2152 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2151, i32 0, i32 35
  %2153 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2152, i32 0, i32 4
  %2154 = load ptr, ptr %2153, align 8, !tbaa !44
  %2155 = load i64, ptr %15, align 8, !tbaa !45
  %2156 = getelementptr inbounds double, ptr %2154, i64 %2155
  %2157 = load double, ptr %2156, align 8, !tbaa !49
  %2158 = load ptr, ptr %4, align 8, !tbaa !5
  %2159 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2158, i32 0, i32 2
  %2160 = load double, ptr %2159, align 8, !tbaa !85
  %2161 = call double @llvm.fmuladd.f64(double %2157, double %2160, double %2150)
  %2162 = load ptr, ptr %4, align 8, !tbaa !5
  %2163 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2162, i32 0, i32 9
  %2164 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2163, i32 0, i32 4
  %2165 = load ptr, ptr %2164, align 8, !tbaa !44
  %2166 = load i64, ptr %15, align 8, !tbaa !45
  %2167 = getelementptr inbounds double, ptr %2165, i64 %2166
  store double %2161, ptr %2167, align 8, !tbaa !49
  %2168 = load ptr, ptr %4, align 8, !tbaa !5
  %2169 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2168, i32 0, i32 33
  %2170 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2169, i32 0, i32 4
  %2171 = load ptr, ptr %2170, align 8, !tbaa !44
  %2172 = load i64, ptr %15, align 8, !tbaa !45
  %2173 = getelementptr inbounds i8, ptr %2171, i64 %2172
  %2174 = load i8, ptr %2173, align 1, !tbaa !46, !range !47, !noundef !48
  %2175 = trunc i8 %2174 to i1
  br i1 %2175, label %2176, label %2199

2176:                                             ; preds = %2111
  %2177 = load ptr, ptr %4, align 8, !tbaa !5
  %2178 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2177, i32 0, i32 9
  %2179 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2178, i32 0, i32 4
  %2180 = load ptr, ptr %2179, align 8, !tbaa !44
  %2181 = load i64, ptr %15, align 8, !tbaa !45
  %2182 = getelementptr inbounds double, ptr %2180, i64 %2181
  %2183 = load double, ptr %2182, align 8, !tbaa !49
  %2184 = load ptr, ptr %4, align 8, !tbaa !5
  %2185 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2184, i32 0, i32 31
  %2186 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2185, i32 0, i32 4
  %2187 = load ptr, ptr %2186, align 8, !tbaa !44
  %2188 = load i64, ptr %15, align 8, !tbaa !45
  %2189 = getelementptr inbounds double, ptr %2187, i64 %2188
  %2190 = load double, ptr %2189, align 8, !tbaa !49
  %2191 = load ptr, ptr %5, align 8, !tbaa !5
  %2192 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2183, double noundef %2190, ptr noundef %2191)
  %2193 = load ptr, ptr %4, align 8, !tbaa !5
  %2194 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2193, i32 0, i32 9
  %2195 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2194, i32 0, i32 4
  %2196 = load ptr, ptr %2195, align 8, !tbaa !44
  %2197 = load i64, ptr %15, align 8, !tbaa !45
  %2198 = getelementptr inbounds double, ptr %2196, i64 %2197
  store double %2192, ptr %2198, align 8, !tbaa !49
  br label %2199

2199:                                             ; preds = %2176, %2111
  %2200 = load ptr, ptr %4, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2200, i32 0, i32 34
  %2202 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2201, i32 0, i32 4
  %2203 = load ptr, ptr %2202, align 8, !tbaa !44
  %2204 = load i64, ptr %15, align 8, !tbaa !45
  %2205 = getelementptr inbounds i8, ptr %2203, i64 %2204
  %2206 = load i8, ptr %2205, align 1, !tbaa !46, !range !47, !noundef !48
  %2207 = trunc i8 %2206 to i1
  br i1 %2207, label %2208, label %2231

2208:                                             ; preds = %2199
  %2209 = load ptr, ptr %4, align 8, !tbaa !5
  %2210 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2209, i32 0, i32 9
  %2211 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2210, i32 0, i32 4
  %2212 = load ptr, ptr %2211, align 8, !tbaa !44
  %2213 = load i64, ptr %15, align 8, !tbaa !45
  %2214 = getelementptr inbounds double, ptr %2212, i64 %2213
  %2215 = load double, ptr %2214, align 8, !tbaa !49
  %2216 = load ptr, ptr %4, align 8, !tbaa !5
  %2217 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2216, i32 0, i32 32
  %2218 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2217, i32 0, i32 4
  %2219 = load ptr, ptr %2218, align 8, !tbaa !44
  %2220 = load i64, ptr %15, align 8, !tbaa !45
  %2221 = getelementptr inbounds double, ptr %2219, i64 %2220
  %2222 = load double, ptr %2221, align 8, !tbaa !49
  %2223 = load ptr, ptr %5, align 8, !tbaa !5
  %2224 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2215, double noundef %2222, ptr noundef %2223)
  %2225 = load ptr, ptr %4, align 8, !tbaa !5
  %2226 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2225, i32 0, i32 9
  %2227 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2226, i32 0, i32 4
  %2228 = load ptr, ptr %2227, align 8, !tbaa !44
  %2229 = load i64, ptr %15, align 8, !tbaa !45
  %2230 = getelementptr inbounds double, ptr %2228, i64 %2229
  store double %2224, ptr %2230, align 8, !tbaa !49
  br label %2231

2231:                                             ; preds = %2208, %2199
  %2232 = load ptr, ptr %4, align 8, !tbaa !5
  %2233 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2232, i32 0, i32 9
  %2234 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2233, i32 0, i32 4
  %2235 = load ptr, ptr %2234, align 8, !tbaa !44
  %2236 = load i64, ptr %15, align 8, !tbaa !45
  %2237 = getelementptr inbounds double, ptr %2235, i64 %2236
  %2238 = load double, ptr %2237, align 8, !tbaa !49
  %2239 = load ptr, ptr %4, align 8, !tbaa !5
  %2240 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2239, i32 0, i32 64
  store double %2238, ptr %2240, align 8, !tbaa !87
  %2241 = load ptr, ptr %4, align 8, !tbaa !5
  %2242 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %2241, ptr noundef %2242)
  %2243 = load ptr, ptr %4, align 8, !tbaa !5
  %2244 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2243, i32 0, i32 19
  store i8 1, ptr %2244, align 4, !tbaa !77
  %2245 = load ptr, ptr %4, align 8, !tbaa !5
  %2246 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2245, i32 0, i32 58
  %2247 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2246, i32 0, i32 0
  store i32 17, ptr %2247, align 8, !tbaa !9
  br label %3586

2248:                                             ; preds = %222
  %2249 = load ptr, ptr %4, align 8, !tbaa !5
  %2250 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2249, i32 0, i32 53
  %2251 = load i64, ptr %2250, align 8, !tbaa !54
  %2252 = add nsw i64 %2251, 1
  %2253 = load ptr, ptr %4, align 8, !tbaa !5
  %2254 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2253, i32 0, i32 53
  store i64 %2252, ptr %2254, align 8, !tbaa !54
  %2255 = load ptr, ptr %4, align 8, !tbaa !5
  %2256 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2255, i32 0, i32 66
  %2257 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2256, i32 0, i32 4
  %2258 = load ptr, ptr %2257, align 8, !tbaa !44
  %2259 = getelementptr inbounds double, ptr %2258, i64 0
  %2260 = load ptr, ptr %4, align 8, !tbaa !5
  %2261 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2260, i32 0, i32 11
  %2262 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2261, i32 0, i32 4
  %2263 = load ptr, ptr %2262, align 8, !tbaa !44
  %2264 = getelementptr inbounds double, ptr %2263, i64 0
  %2265 = load i64, ptr %7, align 8, !tbaa !45
  %2266 = sub nsw i64 %2265, 1
  %2267 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2266)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2259, i64 noundef 1, ptr noundef %2264, i64 noundef 1, i64 noundef %2267)
  %2268 = load ptr, ptr %4, align 8, !tbaa !5
  %2269 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2268, i32 0, i32 64
  %2270 = load double, ptr %2269, align 8, !tbaa !87
  %2271 = load ptr, ptr %4, align 8, !tbaa !5
  %2272 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2271, i32 0, i32 63
  %2273 = load double, ptr %2272, align 8, !tbaa !86
  %2274 = fsub double %2270, %2273
  store double %2274, ptr %10, align 8, !tbaa !49
  %2275 = load double, ptr %10, align 8, !tbaa !49
  %2276 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2275, double noundef 0.000000e+00)
  br i1 %2276, label %2277, label %2322

2277:                                             ; preds = %2248
  %2278 = load double, ptr %10, align 8, !tbaa !49
  %2279 = fdiv double 1.000000e+00, %2278
  store double %2279, ptr %10, align 8, !tbaa !49
  %2280 = load ptr, ptr %4, align 8, !tbaa !5
  %2281 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2280, i32 0, i32 12
  %2282 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2281, i32 0, i32 6
  %2283 = load ptr, ptr %2282, align 8, !tbaa !44
  %2284 = getelementptr inbounds ptr, ptr %2283, i64 0
  %2285 = load ptr, ptr %2284, align 8, !tbaa !5
  %2286 = load i64, ptr %15, align 8, !tbaa !45
  %2287 = getelementptr inbounds double, ptr %2285, i64 %2286
  %2288 = load ptr, ptr %4, align 8, !tbaa !5
  %2289 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2288, i32 0, i32 12
  %2290 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2289, i32 0, i32 2
  %2291 = load i64, ptr %2290, align 8, !tbaa !88
  %2292 = load ptr, ptr %4, align 8, !tbaa !5
  %2293 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2292, i32 0, i32 66
  %2294 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2293, i32 0, i32 4
  %2295 = load ptr, ptr %2294, align 8, !tbaa !44
  %2296 = getelementptr inbounds double, ptr %2295, i64 0
  %2297 = load i64, ptr %7, align 8, !tbaa !45
  %2298 = sub nsw i64 %2297, 1
  %2299 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2298)
  %2300 = load double, ptr %10, align 8, !tbaa !49
  call void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef %2287, i64 noundef %2291, ptr noundef %2296, i64 noundef 1, i64 noundef %2299, double noundef %2300)
  %2301 = load ptr, ptr %4, align 8, !tbaa !5
  %2302 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2301, i32 0, i32 12
  %2303 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2302, i32 0, i32 6
  %2304 = load ptr, ptr %2303, align 8, !tbaa !44
  %2305 = getelementptr inbounds ptr, ptr %2304, i64 0
  %2306 = load ptr, ptr %2305, align 8, !tbaa !5
  %2307 = load i64, ptr %15, align 8, !tbaa !45
  %2308 = getelementptr inbounds double, ptr %2306, i64 %2307
  %2309 = load ptr, ptr %4, align 8, !tbaa !5
  %2310 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2309, i32 0, i32 12
  %2311 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2310, i32 0, i32 2
  %2312 = load i64, ptr %2311, align 8, !tbaa !88
  %2313 = load ptr, ptr %4, align 8, !tbaa !5
  %2314 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2313, i32 0, i32 65
  %2315 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2314, i32 0, i32 4
  %2316 = load ptr, ptr %2315, align 8, !tbaa !44
  %2317 = getelementptr inbounds double, ptr %2316, i64 0
  %2318 = load i64, ptr %7, align 8, !tbaa !45
  %2319 = sub nsw i64 %2318, 1
  %2320 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2319)
  %2321 = load double, ptr %10, align 8, !tbaa !49
  call void @_ZN11alglib_impl9ae_v_subdEPdlPKdlld(ptr noundef %2308, i64 noundef %2312, ptr noundef %2317, i64 noundef 1, i64 noundef %2320, double noundef %2321)
  br label %2342

2322:                                             ; preds = %2248
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %2323

2323:                                             ; preds = %2338, %2322
  %2324 = load i64, ptr %14, align 8, !tbaa !45
  %2325 = load i64, ptr %7, align 8, !tbaa !45
  %2326 = sub nsw i64 %2325, 1
  %2327 = icmp sle i64 %2324, %2326
  br i1 %2327, label %2328, label %2341

2328:                                             ; preds = %2323
  %2329 = load ptr, ptr %4, align 8, !tbaa !5
  %2330 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2329, i32 0, i32 12
  %2331 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2330, i32 0, i32 6
  %2332 = load ptr, ptr %2331, align 8, !tbaa !44
  %2333 = load i64, ptr %14, align 8, !tbaa !45
  %2334 = getelementptr inbounds ptr, ptr %2332, i64 %2333
  %2335 = load ptr, ptr %2334, align 8, !tbaa !5
  %2336 = load i64, ptr %15, align 8, !tbaa !45
  %2337 = getelementptr inbounds double, ptr %2335, i64 %2336
  store double 0.000000e+00, ptr %2337, align 8, !tbaa !49
  br label %2338

2338:                                             ; preds = %2328
  %2339 = load i64, ptr %14, align 8, !tbaa !45
  %2340 = add nsw i64 %2339, 1
  store i64 %2340, ptr %14, align 8, !tbaa !45
  br label %2323, !llvm.loop !98

2341:                                             ; preds = %2323
  br label %2342

2342:                                             ; preds = %2341, %2277
  %2343 = load i64, ptr %15, align 8, !tbaa !45
  %2344 = add nsw i64 %2343, 1
  store i64 %2344, ptr %15, align 8, !tbaa !45
  br label %1986

2345:                                             ; preds = %1991
  %2346 = load ptr, ptr %4, align 8, !tbaa !5
  %2347 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2346, i32 0, i32 9
  %2348 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2347, i32 0, i32 4
  %2349 = load ptr, ptr %2348, align 8, !tbaa !44
  %2350 = getelementptr inbounds double, ptr %2349, i64 0
  %2351 = load ptr, ptr %4, align 8, !tbaa !5
  %2352 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2351, i32 0, i32 26
  %2353 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2352, i32 0, i32 4
  %2354 = load ptr, ptr %2353, align 8, !tbaa !44
  %2355 = getelementptr inbounds double, ptr %2354, i64 0
  %2356 = load i64, ptr %6, align 8, !tbaa !45
  %2357 = sub nsw i64 %2356, 1
  %2358 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2357)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2350, i64 noundef 1, ptr noundef %2355, i64 noundef 1, i64 noundef %2358)
  %2359 = load ptr, ptr %4, align 8, !tbaa !5
  %2360 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %2359, ptr noundef %2360)
  %2361 = load ptr, ptr %4, align 8, !tbaa !5
  %2362 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2361, i32 0, i32 19
  store i8 1, ptr %2362, align 4, !tbaa !77
  %2363 = load ptr, ptr %4, align 8, !tbaa !5
  %2364 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2363, i32 0, i32 58
  %2365 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2364, i32 0, i32 0
  store i32 18, ptr %2365, align 8, !tbaa !9
  br label %3586

2366:                                             ; preds = %229
  %2367 = load ptr, ptr %4, align 8, !tbaa !5
  %2368 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2367, i32 0, i32 19
  store i8 0, ptr %2368, align 4, !tbaa !77
  %2369 = load ptr, ptr %4, align 8, !tbaa !5
  %2370 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2369, i32 0, i32 53
  %2371 = load i64, ptr %2370, align 8, !tbaa !54
  %2372 = add nsw i64 %2371, 1
  %2373 = load ptr, ptr %4, align 8, !tbaa !5
  %2374 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2373, i32 0, i32 53
  store i64 %2372, ptr %2374, align 8, !tbaa !54
  %2375 = load ptr, ptr %4, align 8, !tbaa !5
  %2376 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2375, i32 0, i32 54
  %2377 = load i64, ptr %2376, align 8, !tbaa !55
  %2378 = add nsw i64 %2377, 1
  %2379 = load ptr, ptr %4, align 8, !tbaa !5
  %2380 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2379, i32 0, i32 54
  store i64 %2378, ptr %2380, align 8, !tbaa !55
  %2381 = load ptr, ptr %4, align 8, !tbaa !5
  %2382 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2381, i32 0, i32 41
  store i64 0, ptr %2382, align 8, !tbaa !82
  br label %2421

2383:                                             ; preds = %1979
  %2384 = load ptr, ptr %4, align 8, !tbaa !5
  %2385 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2384, i32 0, i32 9
  %2386 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2385, i32 0, i32 4
  %2387 = load ptr, ptr %2386, align 8, !tbaa !44
  %2388 = getelementptr inbounds double, ptr %2387, i64 0
  %2389 = load ptr, ptr %4, align 8, !tbaa !5
  %2390 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2389, i32 0, i32 26
  %2391 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2390, i32 0, i32 4
  %2392 = load ptr, ptr %2391, align 8, !tbaa !44
  %2393 = getelementptr inbounds double, ptr %2392, i64 0
  %2394 = load i64, ptr %6, align 8, !tbaa !45
  %2395 = sub nsw i64 %2394, 1
  %2396 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2395)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2388, i64 noundef 1, ptr noundef %2393, i64 noundef 1, i64 noundef %2396)
  %2397 = load ptr, ptr %4, align 8, !tbaa !5
  %2398 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %2397, ptr noundef %2398)
  %2399 = load ptr, ptr %4, align 8, !tbaa !5
  %2400 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2399, i32 0, i32 18
  store i8 1, ptr %2400, align 1, !tbaa !71
  %2401 = load ptr, ptr %4, align 8, !tbaa !5
  %2402 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2401, i32 0, i32 58
  %2403 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2402, i32 0, i32 0
  store i32 19, ptr %2403, align 8, !tbaa !9
  br label %3586

2404:                                             ; preds = %236
  %2405 = load ptr, ptr %4, align 8, !tbaa !5
  %2406 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2405, i32 0, i32 18
  store i8 0, ptr %2406, align 1, !tbaa !71
  %2407 = load ptr, ptr %4, align 8, !tbaa !5
  %2408 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2407, i32 0, i32 53
  %2409 = load i64, ptr %2408, align 8, !tbaa !54
  %2410 = add nsw i64 %2409, 1
  %2411 = load ptr, ptr %4, align 8, !tbaa !5
  %2412 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2411, i32 0, i32 53
  store i64 %2410, ptr %2412, align 8, !tbaa !54
  %2413 = load ptr, ptr %4, align 8, !tbaa !5
  %2414 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2413, i32 0, i32 54
  %2415 = load i64, ptr %2414, align 8, !tbaa !55
  %2416 = add nsw i64 %2415, 1
  %2417 = load ptr, ptr %4, align 8, !tbaa !5
  %2418 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2417, i32 0, i32 54
  store i64 %2416, ptr %2418, align 8, !tbaa !55
  %2419 = load ptr, ptr %4, align 8, !tbaa !5
  %2420 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2419, i32 0, i32 41
  store i64 0, ptr %2420, align 8, !tbaa !82
  br label %2421

2421:                                             ; preds = %2404, %2366
  br label %2539

2422:                                             ; preds = %1973
  %2423 = load ptr, ptr %4, align 8, !tbaa !5
  %2424 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2423, i32 0, i32 46
  %2425 = load i8, ptr %2424, align 8, !tbaa !83, !range !47, !noundef !48
  %2426 = trunc i8 %2425 to i1
  br i1 %2426, label %2427, label %2432

2427:                                             ; preds = %2422
  %2428 = load ptr, ptr %4, align 8, !tbaa !5
  %2429 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2428, i32 0, i32 47
  %2430 = load i8, ptr %2429, align 1, !tbaa !84, !range !47, !noundef !48
  %2431 = trunc i8 %2430 to i1
  br label %2432

2432:                                             ; preds = %2427, %2422
  %2433 = phi i1 [ false, %2422 ], [ %2431, %2427 ]
  %2434 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2433, ptr noundef @.str.608, ptr noundef %2434)
  %2435 = load ptr, ptr %4, align 8, !tbaa !5
  %2436 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2435, i32 0, i32 44
  %2437 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2436, i32 0, i32 4
  %2438 = load ptr, ptr %2437, align 8, !tbaa !44
  %2439 = getelementptr inbounds double, ptr %2438, i64 0
  %2440 = load ptr, ptr %4, align 8, !tbaa !5
  %2441 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2440, i32 0, i32 44
  %2442 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2441, i32 0, i32 4
  %2443 = load ptr, ptr %2442, align 8, !tbaa !44
  %2444 = getelementptr inbounds double, ptr %2443, i64 0
  %2445 = load i64, ptr %6, align 8, !tbaa !45
  %2446 = sub nsw i64 %2445, 1
  %2447 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2446)
  %2448 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2439, i64 noundef 1, ptr noundef %2444, i64 noundef 1, i64 noundef %2447)
  store double %2448, ptr %12, align 8, !tbaa !49
  %2449 = load double, ptr %12, align 8, !tbaa !49
  %2450 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2449, double noundef 0.000000e+00)
  %2451 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2450, ptr noundef @.str.609, ptr noundef %2451)
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %2452

2452:                                             ; preds = %2503, %2432
  %2453 = load i64, ptr %14, align 8, !tbaa !45
  %2454 = load i64, ptr %7, align 8, !tbaa !45
  %2455 = sub nsw i64 %2454, 1
  %2456 = icmp sle i64 %2453, %2455
  br i1 %2456, label %2457, label %2506

2457:                                             ; preds = %2452
  %2458 = load ptr, ptr %4, align 8, !tbaa !5
  %2459 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2458, i32 0, i32 12
  %2460 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2459, i32 0, i32 6
  %2461 = load ptr, ptr %2460, align 8, !tbaa !44
  %2462 = load i64, ptr %14, align 8, !tbaa !45
  %2463 = getelementptr inbounds ptr, ptr %2461, i64 %2462
  %2464 = load ptr, ptr %2463, align 8, !tbaa !5
  %2465 = getelementptr inbounds double, ptr %2464, i64 0
  %2466 = load ptr, ptr %4, align 8, !tbaa !5
  %2467 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2466, i32 0, i32 44
  %2468 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2467, i32 0, i32 4
  %2469 = load ptr, ptr %2468, align 8, !tbaa !44
  %2470 = getelementptr inbounds double, ptr %2469, i64 0
  %2471 = load i64, ptr %6, align 8, !tbaa !45
  %2472 = sub nsw i64 %2471, 1
  %2473 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2472)
  %2474 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2465, i64 noundef 1, ptr noundef %2470, i64 noundef 1, i64 noundef %2473)
  store double %2474, ptr %10, align 8, !tbaa !49
  %2475 = load ptr, ptr %4, align 8, !tbaa !5
  %2476 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2475, i32 0, i32 45
  %2477 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2476, i32 0, i32 4
  %2478 = load ptr, ptr %2477, align 8, !tbaa !44
  %2479 = load i64, ptr %14, align 8, !tbaa !45
  %2480 = getelementptr inbounds double, ptr %2478, i64 %2479
  %2481 = load double, ptr %2480, align 8, !tbaa !49
  %2482 = load double, ptr %10, align 8, !tbaa !49
  %2483 = fsub double %2481, %2482
  %2484 = load double, ptr %12, align 8, !tbaa !49
  %2485 = fdiv double %2483, %2484
  store double %2485, ptr %10, align 8, !tbaa !49
  %2486 = load ptr, ptr %4, align 8, !tbaa !5
  %2487 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2486, i32 0, i32 12
  %2488 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2487, i32 0, i32 6
  %2489 = load ptr, ptr %2488, align 8, !tbaa !44
  %2490 = load i64, ptr %14, align 8, !tbaa !45
  %2491 = getelementptr inbounds ptr, ptr %2489, i64 %2490
  %2492 = load ptr, ptr %2491, align 8, !tbaa !5
  %2493 = getelementptr inbounds double, ptr %2492, i64 0
  %2494 = load ptr, ptr %4, align 8, !tbaa !5
  %2495 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2494, i32 0, i32 44
  %2496 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2495, i32 0, i32 4
  %2497 = load ptr, ptr %2496, align 8, !tbaa !44
  %2498 = getelementptr inbounds double, ptr %2497, i64 0
  %2499 = load i64, ptr %6, align 8, !tbaa !45
  %2500 = sub nsw i64 %2499, 1
  %2501 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2500)
  %2502 = load double, ptr %10, align 8, !tbaa !49
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %2493, i64 noundef 1, ptr noundef %2498, i64 noundef 1, i64 noundef %2501, double noundef %2502)
  br label %2503

2503:                                             ; preds = %2457
  %2504 = load i64, ptr %14, align 8, !tbaa !45
  %2505 = add nsw i64 %2504, 1
  store i64 %2505, ptr %14, align 8, !tbaa !45
  br label %2452, !llvm.loop !99

2506:                                             ; preds = %2452
  %2507 = load ptr, ptr %4, align 8, !tbaa !5
  %2508 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2507, i32 0, i32 11
  %2509 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2508, i32 0, i32 4
  %2510 = load ptr, ptr %2509, align 8, !tbaa !44
  %2511 = getelementptr inbounds double, ptr %2510, i64 0
  %2512 = load ptr, ptr %4, align 8, !tbaa !5
  %2513 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2512, i32 0, i32 28
  %2514 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2513, i32 0, i32 4
  %2515 = load ptr, ptr %2514, align 8, !tbaa !44
  %2516 = getelementptr inbounds double, ptr %2515, i64 0
  %2517 = load i64, ptr %7, align 8, !tbaa !45
  %2518 = sub nsw i64 %2517, 1
  %2519 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2518)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2511, i64 noundef 1, ptr noundef %2516, i64 noundef 1, i64 noundef %2519)
  %2520 = load ptr, ptr %4, align 8, !tbaa !5
  %2521 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2520, i32 0, i32 11
  %2522 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2521, i32 0, i32 4
  %2523 = load ptr, ptr %2522, align 8, !tbaa !44
  %2524 = getelementptr inbounds double, ptr %2523, i64 0
  %2525 = load ptr, ptr %4, align 8, !tbaa !5
  %2526 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2525, i32 0, i32 45
  %2527 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2526, i32 0, i32 4
  %2528 = load ptr, ptr %2527, align 8, !tbaa !44
  %2529 = getelementptr inbounds double, ptr %2528, i64 0
  %2530 = load i64, ptr %7, align 8, !tbaa !45
  %2531 = sub nsw i64 %2530, 1
  %2532 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2531)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %2524, i64 noundef 1, ptr noundef %2529, i64 noundef 1, i64 noundef %2532)
  %2533 = load ptr, ptr %4, align 8, !tbaa !5
  %2534 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2533, i32 0, i32 41
  %2535 = load i64, ptr %2534, align 8, !tbaa !82
  %2536 = add nsw i64 %2535, 1
  %2537 = load ptr, ptr %4, align 8, !tbaa !5
  %2538 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2537, i32 0, i32 41
  store i64 %2536, ptr %2538, align 8, !tbaa !82
  br label %2539

2539:                                             ; preds = %2506, %2421
  %2540 = load i64, ptr %6, align 8, !tbaa !45
  %2541 = load i64, ptr %6, align 8, !tbaa !45
  %2542 = load i64, ptr %7, align 8, !tbaa !45
  %2543 = load ptr, ptr %4, align 8, !tbaa !5
  %2544 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2543, i32 0, i32 12
  %2545 = load ptr, ptr %4, align 8, !tbaa !5
  %2546 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2545, i32 0, i32 12
  %2547 = load ptr, ptr %4, align 8, !tbaa !5
  %2548 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2547, i32 0, i32 30
  %2549 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixgemmEllldPNS_9ae_matrixElllS1_llldS1_llPNS_8ae_stateE(i64 noundef %2540, i64 noundef %2541, i64 noundef %2542, double noundef 2.000000e+00, ptr noundef %2544, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef %2546, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef %2548, i64 noundef 0, i64 noundef 0, ptr noundef %2549)
  %2550 = load i64, ptr %6, align 8, !tbaa !45
  %2551 = load i64, ptr %7, align 8, !tbaa !45
  %2552 = load ptr, ptr %4, align 8, !tbaa !5
  %2553 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2552, i32 0, i32 12
  %2554 = load ptr, ptr %4, align 8, !tbaa !5
  %2555 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2554, i32 0, i32 11
  %2556 = load ptr, ptr %4, align 8, !tbaa !5
  %2557 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2556, i32 0, i32 29
  %2558 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixmvEllPNS_9ae_matrixElllPNS_9ae_vectorElS3_lPNS_8ae_stateE(i64 noundef %2550, i64 noundef %2551, ptr noundef %2553, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef %2555, i64 noundef 0, ptr noundef %2557, i64 noundef 0, ptr noundef %2558)
  %2559 = load ptr, ptr %4, align 8, !tbaa !5
  %2560 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2559, i32 0, i32 29
  %2561 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2560, i32 0, i32 4
  %2562 = load ptr, ptr %2561, align 8, !tbaa !44
  %2563 = getelementptr inbounds double, ptr %2562, i64 0
  %2564 = load i64, ptr %6, align 8, !tbaa !45
  %2565 = sub nsw i64 %2564, 1
  %2566 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2565)
  call void @_ZN11alglib_impl9ae_v_muldEPdlld(ptr noundef %2563, i64 noundef 1, i64 noundef %2566, double noundef 2.000000e+00)
  %2567 = load ptr, ptr %4, align 8, !tbaa !5
  %2568 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2567, i32 0, i32 11
  %2569 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2568, i32 0, i32 4
  %2570 = load ptr, ptr %2569, align 8, !tbaa !44
  %2571 = getelementptr inbounds double, ptr %2570, i64 0
  %2572 = load ptr, ptr %4, align 8, !tbaa !5
  %2573 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2572, i32 0, i32 11
  %2574 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2573, i32 0, i32 4
  %2575 = load ptr, ptr %2574, align 8, !tbaa !44
  %2576 = getelementptr inbounds double, ptr %2575, i64 0
  %2577 = load i64, ptr %7, align 8, !tbaa !45
  %2578 = sub nsw i64 %2577, 1
  %2579 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2578)
  %2580 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2571, i64 noundef 1, ptr noundef %2576, i64 noundef 1, i64 noundef %2579)
  store double %2580, ptr %10, align 8, !tbaa !49
  %2581 = load double, ptr %10, align 8, !tbaa !49
  %2582 = load ptr, ptr %4, align 8, !tbaa !5
  %2583 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2582, i32 0, i32 27
  store double %2581, ptr %2583, align 8, !tbaa !91
  %2584 = load ptr, ptr %4, align 8, !tbaa !5
  %2585 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2584, i32 0, i32 28
  %2586 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2585, i32 0, i32 4
  %2587 = load ptr, ptr %2586, align 8, !tbaa !44
  %2588 = getelementptr inbounds double, ptr %2587, i64 0
  %2589 = load ptr, ptr %4, align 8, !tbaa !5
  %2590 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2589, i32 0, i32 11
  %2591 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2590, i32 0, i32 4
  %2592 = load ptr, ptr %2591, align 8, !tbaa !44
  %2593 = getelementptr inbounds double, ptr %2592, i64 0
  %2594 = load i64, ptr %7, align 8, !tbaa !45
  %2595 = sub nsw i64 %2594, 1
  %2596 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2595)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2588, i64 noundef 1, ptr noundef %2593, i64 noundef 1, i64 noundef %2596)
  store i8 1, ptr %8, align 1, !tbaa !46
  br label %2597

2597:                                             ; preds = %2539, %1954
  %2598 = load ptr, ptr %4, align 8, !tbaa !5
  %2599 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2598, i32 0, i32 22
  %2600 = load i64, ptr %2599, align 8, !tbaa !68
  %2601 = icmp ne i64 %2600, 2
  br i1 %2601, label %2602, label %2603

2602:                                             ; preds = %2597
  br label %2678

2603:                                             ; preds = %2597
  %2604 = load ptr, ptr %4, align 8, !tbaa !5
  %2605 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2604, i32 0, i32 24
  %2606 = load i8, ptr %2605, align 1, !tbaa !63, !range !47, !noundef !48
  %2607 = trunc i8 %2606 to i1
  %2608 = xor i1 %2607, true
  %2609 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2608, ptr noundef @.str.612, ptr noundef %2609)
  %2610 = load ptr, ptr %4, align 8, !tbaa !5
  %2611 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2610, i32 0, i32 9
  %2612 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2611, i32 0, i32 4
  %2613 = load ptr, ptr %2612, align 8, !tbaa !44
  %2614 = getelementptr inbounds double, ptr %2613, i64 0
  %2615 = load ptr, ptr %4, align 8, !tbaa !5
  %2616 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2615, i32 0, i32 26
  %2617 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2616, i32 0, i32 4
  %2618 = load ptr, ptr %2617, align 8, !tbaa !44
  %2619 = getelementptr inbounds double, ptr %2618, i64 0
  %2620 = load i64, ptr %6, align 8, !tbaa !45
  %2621 = sub nsw i64 %2620, 1
  %2622 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2621)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2614, i64 noundef 1, ptr noundef %2619, i64 noundef 1, i64 noundef %2622)
  %2623 = load ptr, ptr %4, align 8, !tbaa !5
  %2624 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %2623, ptr noundef %2624)
  %2625 = load ptr, ptr %4, align 8, !tbaa !5
  %2626 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2625, i32 0, i32 17
  store i8 1, ptr %2626, align 2, !tbaa !100
  %2627 = load ptr, ptr %4, align 8, !tbaa !5
  %2628 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2627, i32 0, i32 58
  %2629 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2628, i32 0, i32 0
  store i32 20, ptr %2629, align 8, !tbaa !9
  br label %3586

2630:                                             ; preds = %243
  %2631 = load ptr, ptr %4, align 8, !tbaa !5
  %2632 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2631, i32 0, i32 17
  store i8 0, ptr %2632, align 2, !tbaa !100
  %2633 = load ptr, ptr %4, align 8, !tbaa !5
  %2634 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2633, i32 0, i32 53
  %2635 = load i64, ptr %2634, align 8, !tbaa !54
  %2636 = add nsw i64 %2635, 1
  %2637 = load ptr, ptr %4, align 8, !tbaa !5
  %2638 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2637, i32 0, i32 53
  store i64 %2636, ptr %2638, align 8, !tbaa !54
  %2639 = load ptr, ptr %4, align 8, !tbaa !5
  %2640 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2639, i32 0, i32 55
  %2641 = load i64, ptr %2640, align 8, !tbaa !56
  %2642 = add nsw i64 %2641, 1
  %2643 = load ptr, ptr %4, align 8, !tbaa !5
  %2644 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2643, i32 0, i32 55
  store i64 %2642, ptr %2644, align 8, !tbaa !56
  %2645 = load ptr, ptr %4, align 8, !tbaa !5
  %2646 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2645, i32 0, i32 56
  %2647 = load i64, ptr %2646, align 8, !tbaa !57
  %2648 = add nsw i64 %2647, 1
  %2649 = load ptr, ptr %4, align 8, !tbaa !5
  %2650 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2649, i32 0, i32 56
  store i64 %2648, ptr %2650, align 8, !tbaa !57
  %2651 = load i64, ptr %6, align 8, !tbaa !45
  %2652 = load i64, ptr %6, align 8, !tbaa !45
  %2653 = load ptr, ptr %4, align 8, !tbaa !5
  %2654 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2653, i32 0, i32 13
  %2655 = load ptr, ptr %4, align 8, !tbaa !5
  %2656 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2655, i32 0, i32 30
  %2657 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixcopyEllPNS_9ae_matrixEllS1_llPNS_8ae_stateE(i64 noundef %2651, i64 noundef %2652, ptr noundef %2654, i64 noundef 0, i64 noundef 0, ptr noundef %2656, i64 noundef 0, i64 noundef 0, ptr noundef %2657)
  %2658 = load ptr, ptr %4, align 8, !tbaa !5
  %2659 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2658, i32 0, i32 29
  %2660 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2659, i32 0, i32 4
  %2661 = load ptr, ptr %2660, align 8, !tbaa !44
  %2662 = getelementptr inbounds double, ptr %2661, i64 0
  %2663 = load ptr, ptr %4, align 8, !tbaa !5
  %2664 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2663, i32 0, i32 14
  %2665 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2664, i32 0, i32 4
  %2666 = load ptr, ptr %2665, align 8, !tbaa !44
  %2667 = getelementptr inbounds double, ptr %2666, i64 0
  %2668 = load i64, ptr %6, align 8, !tbaa !45
  %2669 = sub nsw i64 %2668, 1
  %2670 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2669)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2662, i64 noundef 1, ptr noundef %2667, i64 noundef 1, i64 noundef %2670)
  %2671 = load ptr, ptr %4, align 8, !tbaa !5
  %2672 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2671, i32 0, i32 10
  %2673 = load double, ptr %2672, align 8, !tbaa !78
  %2674 = load ptr, ptr %4, align 8, !tbaa !5
  %2675 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2674, i32 0, i32 27
  store double %2673, ptr %2675, align 8, !tbaa !91
  store i8 1, ptr %8, align 1, !tbaa !46
  %2676 = load ptr, ptr %4, align 8, !tbaa !5
  %2677 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2676, i32 0, i32 41
  store i64 0, ptr %2677, align 8, !tbaa !82
  br label %2678

2678:                                             ; preds = %2630, %2602
  %2679 = load i8, ptr %8, align 1, !tbaa !46, !range !47, !noundef !48
  %2680 = trunc i8 %2679 to i1
  %2681 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2680, ptr noundef @.str.610, ptr noundef %2681)
  %2682 = load ptr, ptr %4, align 8, !tbaa !5
  %2683 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2682, i32 0, i32 46
  store i8 0, ptr %2683, align 8, !tbaa !83
  %2684 = load ptr, ptr %4, align 8, !tbaa !5
  %2685 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2684, i32 0, i32 47
  store i8 0, ptr %2685, align 1, !tbaa !84
  %2686 = load ptr, ptr %4, align 8, !tbaa !5
  %2687 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2686, i32 0, i32 27
  %2688 = load double, ptr %2687, align 8, !tbaa !91
  store double %2688, ptr %10, align 8, !tbaa !49
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %2689

2689:                                             ; preds = %2704, %2678
  %2690 = load i64, ptr %14, align 8, !tbaa !45
  %2691 = load i64, ptr %6, align 8, !tbaa !45
  %2692 = sub nsw i64 %2691, 1
  %2693 = icmp sle i64 %2690, %2692
  br i1 %2693, label %2694, label %2707

2694:                                             ; preds = %2689
  %2695 = load double, ptr %10, align 8, !tbaa !49
  %2696 = load ptr, ptr %4, align 8, !tbaa !5
  %2697 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2696, i32 0, i32 29
  %2698 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2697, i32 0, i32 4
  %2699 = load ptr, ptr %2698, align 8, !tbaa !44
  %2700 = load i64, ptr %14, align 8, !tbaa !45
  %2701 = getelementptr inbounds double, ptr %2699, i64 %2700
  %2702 = load double, ptr %2701, align 8, !tbaa !49
  %2703 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %2695, double %2702)
  store double %2703, ptr %10, align 8, !tbaa !49
  br label %2704

2704:                                             ; preds = %2694
  %2705 = load i64, ptr %14, align 8, !tbaa !45
  %2706 = add nsw i64 %2705, 1
  store i64 %2706, ptr %14, align 8, !tbaa !45
  br label %2689, !llvm.loop !101

2707:                                             ; preds = %2689
  %2708 = load double, ptr %10, align 8, !tbaa !49
  %2709 = load ptr, ptr %5, align 8, !tbaa !5
  %2710 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2708, ptr noundef %2709)
  br i1 %2710, label %2716, label %2711

2711:                                             ; preds = %2707
  %2712 = load ptr, ptr %4, align 8, !tbaa !5
  %2713 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2712, i32 0, i32 52
  store i64 -8, ptr %2713, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %2714 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %2715 = trunc i8 %2714 to i1
  store i1 %2715, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

2716:                                             ; preds = %2707
  %2717 = load ptr, ptr %4, align 8, !tbaa !5
  %2718 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2717, i32 0, i32 39
  %2719 = load double, ptr %2718, align 8, !tbaa !81
  %2720 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2719, double noundef 0.000000e+00)
  br i1 %2720, label %2721, label %2777

2721:                                             ; preds = %2716
  %2722 = load ptr, ptr %4, align 8, !tbaa !5
  %2723 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2722, i32 0, i32 39
  store double 0.000000e+00, ptr %2723, align 8, !tbaa !81
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %2724

2724:                                             ; preds = %2759, %2721
  %2725 = load i64, ptr %14, align 8, !tbaa !45
  %2726 = load i64, ptr %6, align 8, !tbaa !45
  %2727 = sub nsw i64 %2726, 1
  %2728 = icmp sle i64 %2725, %2727
  br i1 %2728, label %2729, label %2762

2729:                                             ; preds = %2724
  %2730 = load ptr, ptr %4, align 8, !tbaa !5
  %2731 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2730, i32 0, i32 39
  %2732 = load double, ptr %2731, align 8, !tbaa !81
  %2733 = load ptr, ptr %4, align 8, !tbaa !5
  %2734 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2733, i32 0, i32 30
  %2735 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2734, i32 0, i32 6
  %2736 = load ptr, ptr %2735, align 8, !tbaa !44
  %2737 = load i64, ptr %14, align 8, !tbaa !45
  %2738 = getelementptr inbounds ptr, ptr %2736, i64 %2737
  %2739 = load ptr, ptr %2738, align 8, !tbaa !5
  %2740 = load i64, ptr %14, align 8, !tbaa !45
  %2741 = getelementptr inbounds double, ptr %2739, i64 %2740
  %2742 = load double, ptr %2741, align 8, !tbaa !49
  %2743 = load ptr, ptr %5, align 8, !tbaa !5
  %2744 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2742, ptr noundef %2743)
  %2745 = load ptr, ptr %4, align 8, !tbaa !5
  %2746 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2745, i32 0, i32 35
  %2747 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2746, i32 0, i32 4
  %2748 = load ptr, ptr %2747, align 8, !tbaa !44
  %2749 = load i64, ptr %14, align 8, !tbaa !45
  %2750 = getelementptr inbounds double, ptr %2748, i64 %2749
  %2751 = load double, ptr %2750, align 8, !tbaa !49
  %2752 = load ptr, ptr %5, align 8, !tbaa !5
  %2753 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2751, ptr noundef %2752)
  %2754 = fmul double %2744, %2753
  %2755 = load ptr, ptr %5, align 8, !tbaa !5
  %2756 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2732, double noundef %2754, ptr noundef %2755)
  %2757 = load ptr, ptr %4, align 8, !tbaa !5
  %2758 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2757, i32 0, i32 39
  store double %2756, ptr %2758, align 8, !tbaa !81
  br label %2759

2759:                                             ; preds = %2729
  %2760 = load i64, ptr %14, align 8, !tbaa !45
  %2761 = add nsw i64 %2760, 1
  store i64 %2761, ptr %14, align 8, !tbaa !45
  br label %2724, !llvm.loop !102

2762:                                             ; preds = %2724
  %2763 = load ptr, ptr %4, align 8, !tbaa !5
  %2764 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2763, i32 0, i32 39
  %2765 = load double, ptr %2764, align 8, !tbaa !81
  %2766 = fmul double 1.000000e-03, %2765
  %2767 = load ptr, ptr %4, align 8, !tbaa !5
  %2768 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2767, i32 0, i32 39
  store double %2766, ptr %2768, align 8, !tbaa !81
  %2769 = load ptr, ptr %4, align 8, !tbaa !5
  %2770 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2769, i32 0, i32 39
  %2771 = load double, ptr %2770, align 8, !tbaa !81
  %2772 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2771, double noundef 0.000000e+00)
  br i1 %2772, label %2773, label %2776

2773:                                             ; preds = %2762
  %2774 = load ptr, ptr %4, align 8, !tbaa !5
  %2775 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2774, i32 0, i32 39
  store double 1.000000e+00, ptr %2775, align 8, !tbaa !81
  br label %2776

2776:                                             ; preds = %2773, %2762
  br label %2777

2777:                                             ; preds = %2776, %2716
  store i64 -99, ptr %9, align 8, !tbaa !45
  br label %2778

2778:                                             ; preds = %3230, %2959, %2777
  %2779 = load ptr, ptr %4, align 8, !tbaa !5
  %2780 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2779, i32 0, i32 41
  %2781 = load i64, ptr %2780, align 8, !tbaa !82
  %2782 = icmp sgt i64 %2781, 0
  br i1 %2782, label %2783, label %2790

2783:                                             ; preds = %2778
  %2784 = load ptr, ptr %4, align 8, !tbaa !5
  %2785 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2784, i32 0, i32 40
  %2786 = load double, ptr %2785, align 8, !tbaa !80
  %2787 = load double, ptr @_ZN11alglib_implL18minlm_suspiciousnuE, align 8, !tbaa !49
  %2788 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2786, double noundef %2787)
  br i1 %2788, label %2789, label %2790

2789:                                             ; preds = %2783
  store i64 -2, ptr %9, align 8, !tbaa !45
  br label %3232

2790:                                             ; preds = %2783, %2778
  store i8 1, ptr %8, align 1, !tbaa !46
  %2791 = load ptr, ptr %4, align 8, !tbaa !5
  %2792 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2791, i32 0, i32 73
  %2793 = load ptr, ptr %4, align 8, !tbaa !5
  %2794 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2793, i32 0, i32 26
  %2795 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl25minqpsetstartingpointfastEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2792, ptr noundef %2794, ptr noundef %2795)
  %2796 = load ptr, ptr %4, align 8, !tbaa !5
  %2797 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2796, i32 0, i32 73
  %2798 = load ptr, ptr %4, align 8, !tbaa !5
  %2799 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2798, i32 0, i32 26
  %2800 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl18minqpsetoriginfastEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2797, ptr noundef %2799, ptr noundef %2800)
  %2801 = load ptr, ptr %4, align 8, !tbaa !5
  %2802 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2801, i32 0, i32 73
  %2803 = load ptr, ptr %4, align 8, !tbaa !5
  %2804 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2803, i32 0, i32 29
  %2805 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl22minqpsetlineartermfastEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2802, ptr noundef %2804, ptr noundef %2805)
  %2806 = load ptr, ptr %4, align 8, !tbaa !5
  %2807 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2806, i32 0, i32 73
  %2808 = load ptr, ptr %4, align 8, !tbaa !5
  %2809 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2808, i32 0, i32 30
  %2810 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl25minqpsetquadratictermfastEPNS_10minqpstateEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %2807, ptr noundef %2809, i1 noundef zeroext true, double noundef 0.000000e+00, ptr noundef %2810)
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %2811

2811:                                             ; preds = %2847, %2790
  %2812 = load i64, ptr %14, align 8, !tbaa !45
  %2813 = load i64, ptr %6, align 8, !tbaa !45
  %2814 = sub nsw i64 %2813, 1
  %2815 = icmp sle i64 %2812, %2814
  br i1 %2815, label %2816, label %2850

2816:                                             ; preds = %2811
  %2817 = load ptr, ptr %4, align 8, !tbaa !5
  %2818 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2817, i32 0, i32 30
  %2819 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2818, i32 0, i32 6
  %2820 = load ptr, ptr %2819, align 8, !tbaa !44
  %2821 = load i64, ptr %14, align 8, !tbaa !45
  %2822 = getelementptr inbounds ptr, ptr %2820, i64 %2821
  %2823 = load ptr, ptr %2822, align 8, !tbaa !5
  %2824 = load i64, ptr %14, align 8, !tbaa !45
  %2825 = getelementptr inbounds double, ptr %2823, i64 %2824
  %2826 = load double, ptr %2825, align 8, !tbaa !49
  %2827 = load ptr, ptr %4, align 8, !tbaa !5
  %2828 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2827, i32 0, i32 39
  %2829 = load double, ptr %2828, align 8, !tbaa !81
  %2830 = load ptr, ptr %4, align 8, !tbaa !5
  %2831 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2830, i32 0, i32 35
  %2832 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2831, i32 0, i32 4
  %2833 = load ptr, ptr %2832, align 8, !tbaa !44
  %2834 = load i64, ptr %14, align 8, !tbaa !45
  %2835 = getelementptr inbounds double, ptr %2833, i64 %2834
  %2836 = load double, ptr %2835, align 8, !tbaa !49
  %2837 = load ptr, ptr %5, align 8, !tbaa !5
  %2838 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2836, ptr noundef %2837)
  %2839 = fdiv double %2829, %2838
  %2840 = fadd double %2826, %2839
  %2841 = load ptr, ptr %4, align 8, !tbaa !5
  %2842 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2841, i32 0, i32 60
  %2843 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2842, i32 0, i32 4
  %2844 = load ptr, ptr %2843, align 8, !tbaa !44
  %2845 = load i64, ptr %14, align 8, !tbaa !45
  %2846 = getelementptr inbounds double, ptr %2844, i64 %2845
  store double %2840, ptr %2846, align 8, !tbaa !49
  br label %2847

2847:                                             ; preds = %2816
  %2848 = load i64, ptr %14, align 8, !tbaa !45
  %2849 = add nsw i64 %2848, 1
  store i64 %2849, ptr %14, align 8, !tbaa !45
  br label %2811, !llvm.loop !103

2850:                                             ; preds = %2811
  %2851 = load ptr, ptr %4, align 8, !tbaa !5
  %2852 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2851, i32 0, i32 73
  %2853 = load ptr, ptr %4, align 8, !tbaa !5
  %2854 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2853, i32 0, i32 60
  %2855 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20minqprewritediagonalEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2852, ptr noundef %2854, ptr noundef %2855)
  %2856 = load ptr, ptr %4, align 8, !tbaa !5
  %2857 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2856, i32 0, i32 73
  %2858 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13minqpoptimizeEPNS_10minqpstateEPNS_8ae_stateE(ptr noundef %2857, ptr noundef %2858)
  %2859 = load ptr, ptr %4, align 8, !tbaa !5
  %2860 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2859, i32 0, i32 73
  %2861 = load ptr, ptr %4, align 8, !tbaa !5
  %2862 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2861, i32 0, i32 43
  %2863 = load ptr, ptr %4, align 8, !tbaa !5
  %2864 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2863, i32 0, i32 74
  %2865 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl15minqpresultsbufEPNS_10minqpstateEPNS_9ae_vectorEPNS_11minqpreportEPNS_8ae_stateE(ptr noundef %2860, ptr noundef %2862, ptr noundef %2864, ptr noundef %2865)
  %2866 = load ptr, ptr %4, align 8, !tbaa !5
  %2867 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2866, i32 0, i32 74
  %2868 = getelementptr inbounds %"struct.alglib_impl::minqpreport", ptr %2867, i32 0, i32 4
  %2869 = load i64, ptr %2868, align 8, !tbaa !104
  %2870 = icmp sgt i64 %2869, 0
  br i1 %2870, label %2871, label %2920

2871:                                             ; preds = %2850
  %2872 = load ptr, ptr %4, align 8, !tbaa !5
  %2873 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2872, i32 0, i32 43
  %2874 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2873, i32 0, i32 4
  %2875 = load ptr, ptr %2874, align 8, !tbaa !44
  %2876 = getelementptr inbounds double, ptr %2875, i64 0
  %2877 = load ptr, ptr %4, align 8, !tbaa !5
  %2878 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2877, i32 0, i32 26
  %2879 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2878, i32 0, i32 4
  %2880 = load ptr, ptr %2879, align 8, !tbaa !44
  %2881 = getelementptr inbounds double, ptr %2880, i64 0
  %2882 = load i64, ptr %6, align 8, !tbaa !45
  %2883 = sub nsw i64 %2882, 1
  %2884 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2883)
  call void @_ZN11alglib_impl8ae_v_subEPdlPKdll(ptr noundef %2876, i64 noundef 1, ptr noundef %2881, i64 noundef 1, i64 noundef %2884)
  %2885 = load ptr, ptr %4, align 8, !tbaa !5
  %2886 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2885, i32 0, i32 43
  %2887 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2886, i32 0, i32 4
  %2888 = load ptr, ptr %2887, align 8, !tbaa !44
  %2889 = getelementptr inbounds double, ptr %2888, i64 0
  %2890 = load ptr, ptr %4, align 8, !tbaa !5
  %2891 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2890, i32 0, i32 43
  %2892 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2891, i32 0, i32 4
  %2893 = load ptr, ptr %2892, align 8, !tbaa !44
  %2894 = getelementptr inbounds double, ptr %2893, i64 0
  %2895 = load i64, ptr %6, align 8, !tbaa !45
  %2896 = sub nsw i64 %2895, 1
  %2897 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2896)
  %2898 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2889, i64 noundef 1, ptr noundef %2894, i64 noundef 1, i64 noundef %2897)
  store double %2898, ptr %10, align 8, !tbaa !49
  %2899 = load double, ptr %10, align 8, !tbaa !49
  %2900 = load ptr, ptr %5, align 8, !tbaa !5
  %2901 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2899, ptr noundef %2900)
  br i1 %2901, label %2902, label %2918

2902:                                             ; preds = %2871
  %2903 = load double, ptr %10, align 8, !tbaa !49
  %2904 = load ptr, ptr %5, align 8, !tbaa !5
  %2905 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2903, ptr noundef %2904)
  store double %2905, ptr %10, align 8, !tbaa !49
  %2906 = load ptr, ptr %4, align 8, !tbaa !5
  %2907 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2906, i32 0, i32 6
  %2908 = load double, ptr %2907, align 8, !tbaa !66
  %2909 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2908, double noundef 0.000000e+00)
  br i1 %2909, label %2910, label %2917

2910:                                             ; preds = %2902
  %2911 = load double, ptr %10, align 8, !tbaa !49
  %2912 = load ptr, ptr %4, align 8, !tbaa !5
  %2913 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2912, i32 0, i32 6
  %2914 = load double, ptr %2913, align 8, !tbaa !66
  %2915 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2911, double noundef %2914)
  br i1 %2915, label %2916, label %2917

2916:                                             ; preds = %2910
  store i8 0, ptr %8, align 1, !tbaa !46
  br label %2917

2917:                                             ; preds = %2916, %2910, %2902
  br label %2919

2918:                                             ; preds = %2871
  store i8 0, ptr %8, align 1, !tbaa !46
  br label %2919

2919:                                             ; preds = %2918, %2917
  br label %2948

2920:                                             ; preds = %2850
  %2921 = load ptr, ptr %4, align 8, !tbaa !5
  %2922 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2921, i32 0, i32 74
  %2923 = getelementptr inbounds %"struct.alglib_impl::minqpreport", ptr %2922, i32 0, i32 4
  %2924 = load i64, ptr %2923, align 8, !tbaa !104
  %2925 = icmp eq i64 %2924, -3
  br i1 %2925, label %2938, label %2926

2926:                                             ; preds = %2920
  %2927 = load ptr, ptr %4, align 8, !tbaa !5
  %2928 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2927, i32 0, i32 74
  %2929 = getelementptr inbounds %"struct.alglib_impl::minqpreport", ptr %2928, i32 0, i32 4
  %2930 = load i64, ptr %2929, align 8, !tbaa !104
  %2931 = icmp eq i64 %2930, -4
  br i1 %2931, label %2938, label %2932

2932:                                             ; preds = %2926
  %2933 = load ptr, ptr %4, align 8, !tbaa !5
  %2934 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2933, i32 0, i32 74
  %2935 = getelementptr inbounds %"struct.alglib_impl::minqpreport", ptr %2934, i32 0, i32 4
  %2936 = load i64, ptr %2935, align 8, !tbaa !104
  %2937 = icmp eq i64 %2936, -5
  br label %2938

2938:                                             ; preds = %2932, %2926, %2920
  %2939 = phi i1 [ true, %2926 ], [ true, %2920 ], [ %2937, %2932 ]
  %2940 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2939, ptr noundef @.str.613, ptr noundef %2940)
  %2941 = load ptr, ptr %4, align 8, !tbaa !5
  %2942 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2941, i32 0, i32 74
  %2943 = getelementptr inbounds %"struct.alglib_impl::minqpreport", ptr %2942, i32 0, i32 4
  %2944 = load i64, ptr %2943, align 8, !tbaa !104
  %2945 = icmp eq i64 %2944, -3
  br i1 %2945, label %2946, label %2947

2946:                                             ; preds = %2938
  store i64 -3, ptr %9, align 8, !tbaa !45
  br label %3232

2947:                                             ; preds = %2938
  store i8 0, ptr %8, align 1, !tbaa !46
  br label %2948

2948:                                             ; preds = %2947, %2919
  %2949 = load i8, ptr %8, align 1, !tbaa !46, !range !47, !noundef !48
  %2950 = trunc i8 %2949 to i1
  br i1 %2950, label %2960, label %2951

2951:                                             ; preds = %2948
  %2952 = load ptr, ptr %4, align 8, !tbaa !5
  %2953 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2952, i32 0, i32 39
  %2954 = load ptr, ptr %4, align 8, !tbaa !5
  %2955 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2954, i32 0, i32 40
  %2956 = load ptr, ptr %5, align 8, !tbaa !5
  %2957 = call noundef zeroext i1 @_ZN11alglib_implL20minlm_increaselambdaEPdS0_PNS_8ae_stateE(ptr noundef %2953, ptr noundef %2955, ptr noundef %2956)
  br i1 %2957, label %2959, label %2958

2958:                                             ; preds = %2951
  store i64 -1, ptr %9, align 8, !tbaa !45
  br label %3232

2959:                                             ; preds = %2951
  br label %2778

2960:                                             ; preds = %2948
  %2961 = load ptr, ptr %4, align 8, !tbaa !5
  %2962 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2961, i32 0, i32 44
  %2963 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2962, i32 0, i32 4
  %2964 = load ptr, ptr %2963, align 8, !tbaa !44
  %2965 = getelementptr inbounds double, ptr %2964, i64 0
  %2966 = load ptr, ptr %4, align 8, !tbaa !5
  %2967 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2966, i32 0, i32 26
  %2968 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2967, i32 0, i32 4
  %2969 = load ptr, ptr %2968, align 8, !tbaa !44
  %2970 = getelementptr inbounds double, ptr %2969, i64 0
  %2971 = load i64, ptr %6, align 8, !tbaa !45
  %2972 = sub nsw i64 %2971, 1
  %2973 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2972)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2965, i64 noundef 1, ptr noundef %2970, i64 noundef 1, i64 noundef %2973)
  %2974 = load ptr, ptr %4, align 8, !tbaa !5
  %2975 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2974, i32 0, i32 44
  %2976 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2975, i32 0, i32 4
  %2977 = load ptr, ptr %2976, align 8, !tbaa !44
  %2978 = getelementptr inbounds double, ptr %2977, i64 0
  %2979 = load ptr, ptr %4, align 8, !tbaa !5
  %2980 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2979, i32 0, i32 43
  %2981 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2980, i32 0, i32 4
  %2982 = load ptr, ptr %2981, align 8, !tbaa !44
  %2983 = getelementptr inbounds double, ptr %2982, i64 0
  %2984 = load i64, ptr %6, align 8, !tbaa !45
  %2985 = sub nsw i64 %2984, 1
  %2986 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2985)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %2978, i64 noundef 1, ptr noundef %2983, i64 noundef 1, i64 noundef %2986)
  %2987 = load ptr, ptr %4, align 8, !tbaa !5
  %2988 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2987, i32 0, i32 44
  %2989 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2988, i32 0, i32 4
  %2990 = load ptr, ptr %2989, align 8, !tbaa !44
  %2991 = getelementptr inbounds double, ptr %2990, i64 0
  %2992 = load ptr, ptr %4, align 8, !tbaa !5
  %2993 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2992, i32 0, i32 26
  %2994 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2993, i32 0, i32 4
  %2995 = load ptr, ptr %2994, align 8, !tbaa !44
  %2996 = getelementptr inbounds double, ptr %2995, i64 0
  %2997 = load i64, ptr %6, align 8, !tbaa !45
  %2998 = sub nsw i64 %2997, 1
  %2999 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2998)
  call void @_ZN11alglib_impl8ae_v_subEPdlPKdll(ptr noundef %2991, i64 noundef 1, ptr noundef %2996, i64 noundef 1, i64 noundef %2999)
  %3000 = load ptr, ptr %4, align 8, !tbaa !5
  %3001 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3000, i32 0, i32 46
  store i8 1, ptr %3001, align 8, !tbaa !83
  store double 0.000000e+00, ptr %10, align 8, !tbaa !49
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %3002

3002:                                             ; preds = %3027, %2960
  %3003 = load i64, ptr %14, align 8, !tbaa !45
  %3004 = load i64, ptr %6, align 8, !tbaa !45
  %3005 = sub nsw i64 %3004, 1
  %3006 = icmp sle i64 %3003, %3005
  br i1 %3006, label %3007, label %3030

3007:                                             ; preds = %3002
  %3008 = load double, ptr %10, align 8, !tbaa !49
  %3009 = load ptr, ptr %4, align 8, !tbaa !5
  %3010 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3009, i32 0, i32 44
  %3011 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3010, i32 0, i32 4
  %3012 = load ptr, ptr %3011, align 8, !tbaa !44
  %3013 = load i64, ptr %14, align 8, !tbaa !45
  %3014 = getelementptr inbounds double, ptr %3012, i64 %3013
  %3015 = load double, ptr %3014, align 8, !tbaa !49
  %3016 = load ptr, ptr %4, align 8, !tbaa !5
  %3017 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3016, i32 0, i32 35
  %3018 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3017, i32 0, i32 4
  %3019 = load ptr, ptr %3018, align 8, !tbaa !44
  %3020 = load i64, ptr %14, align 8, !tbaa !45
  %3021 = getelementptr inbounds double, ptr %3019, i64 %3020
  %3022 = load double, ptr %3021, align 8, !tbaa !49
  %3023 = fdiv double %3015, %3022
  %3024 = load ptr, ptr %5, align 8, !tbaa !5
  %3025 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3023, ptr noundef %3024)
  %3026 = fadd double %3008, %3025
  store double %3026, ptr %10, align 8, !tbaa !49
  br label %3027

3027:                                             ; preds = %3007
  %3028 = load i64, ptr %14, align 8, !tbaa !45
  %3029 = add nsw i64 %3028, 1
  store i64 %3029, ptr %14, align 8, !tbaa !45
  br label %3002, !llvm.loop !105

3030:                                             ; preds = %3002
  %3031 = load double, ptr %10, align 8, !tbaa !49
  %3032 = load ptr, ptr %5, align 8, !tbaa !5
  %3033 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3031, ptr noundef %3032)
  store double %3033, ptr %10, align 8, !tbaa !49
  %3034 = load double, ptr %10, align 8, !tbaa !49
  %3035 = load ptr, ptr %4, align 8, !tbaa !5
  %3036 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3035, i32 0, i32 3
  %3037 = load double, ptr %3036, align 8, !tbaa !67
  %3038 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3034, double noundef %3037)
  br i1 %3038, label %3039, label %3040

3039:                                             ; preds = %3030
  br label %3088

3040:                                             ; preds = %3030
  %3041 = load ptr, ptr %4, align 8, !tbaa !5
  %3042 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3041, i32 0, i32 41
  %3043 = load i64, ptr %3042, align 8, !tbaa !82
  %3044 = icmp ne i64 %3043, 0
  br i1 %3044, label %3045, label %3046

3045:                                             ; preds = %3040
  br label %3086

3046:                                             ; preds = %3040
  %3047 = load ptr, ptr %4, align 8, !tbaa !5
  %3048 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3047, i32 0, i32 52
  store i64 2, ptr %3048, align 8, !tbaa !53
  %3049 = load ptr, ptr %4, align 8, !tbaa !5
  %3050 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3049, i32 0, i32 5
  %3051 = load i8, ptr %3050, align 8, !tbaa !74, !range !47, !noundef !48
  %3052 = trunc i8 %3051 to i1
  br i1 %3052, label %3054, label %3053

3053:                                             ; preds = %3046
  br label %3083

3054:                                             ; preds = %3046
  %3055 = load ptr, ptr %4, align 8, !tbaa !5
  %3056 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3055, i32 0, i32 9
  %3057 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3056, i32 0, i32 4
  %3058 = load ptr, ptr %3057, align 8, !tbaa !44
  %3059 = getelementptr inbounds double, ptr %3058, i64 0
  %3060 = load ptr, ptr %4, align 8, !tbaa !5
  %3061 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3060, i32 0, i32 26
  %3062 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3061, i32 0, i32 4
  %3063 = load ptr, ptr %3062, align 8, !tbaa !44
  %3064 = getelementptr inbounds double, ptr %3063, i64 0
  %3065 = load i64, ptr %6, align 8, !tbaa !45
  %3066 = sub nsw i64 %3065, 1
  %3067 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3066)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3059, i64 noundef 1, ptr noundef %3064, i64 noundef 1, i64 noundef %3067)
  %3068 = load ptr, ptr %4, align 8, !tbaa !5
  %3069 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3068, i32 0, i32 27
  %3070 = load double, ptr %3069, align 8, !tbaa !91
  %3071 = load ptr, ptr %4, align 8, !tbaa !5
  %3072 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3071, i32 0, i32 10
  store double %3070, ptr %3072, align 8, !tbaa !78
  %3073 = load ptr, ptr %4, align 8, !tbaa !5
  %3074 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %3073, ptr noundef %3074)
  %3075 = load ptr, ptr %4, align 8, !tbaa !5
  %3076 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3075, i32 0, i32 20
  store i8 1, ptr %3076, align 1, !tbaa !79
  %3077 = load ptr, ptr %4, align 8, !tbaa !5
  %3078 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3077, i32 0, i32 58
  %3079 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3078, i32 0, i32 0
  store i32 21, ptr %3079, align 8, !tbaa !9
  br label %3586

3080:                                             ; preds = %250
  %3081 = load ptr, ptr %4, align 8, !tbaa !5
  %3082 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3081, i32 0, i32 20
  store i8 0, ptr %3082, align 1, !tbaa !79
  br label %3083

3083:                                             ; preds = %3080, %3053
  store i8 0, ptr %16, align 1, !tbaa !46
  %3084 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3085 = trunc i8 %3084 to i1
  store i1 %3085, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3086:                                             ; preds = %3045
  store i64 -2, ptr %9, align 8, !tbaa !45
  br label %3232

3087:                                             ; No predecessors!
  br label %3088

3088:                                             ; preds = %3087, %3039
  %3089 = load ptr, ptr %4, align 8, !tbaa !5
  %3090 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3089, i32 0, i32 24
  %3091 = load i8, ptr %3090, align 1, !tbaa !63, !range !47, !noundef !48
  %3092 = trunc i8 %3091 to i1
  br i1 %3092, label %3098, label %3093

3093:                                             ; preds = %3088
  %3094 = load ptr, ptr %4, align 8, !tbaa !5
  %3095 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3094, i32 0, i32 23
  %3096 = load i8, ptr %3095, align 8, !tbaa !75, !range !47, !noundef !48
  %3097 = trunc i8 %3096 to i1
  br label %3098

3098:                                             ; preds = %3093, %3088
  %3099 = phi i1 [ true, %3088 ], [ %3097, %3093 ]
  %3100 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3099, ptr noundef @.str.606, ptr noundef %3100)
  %3101 = load ptr, ptr %4, align 8, !tbaa !5
  %3102 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3101, i32 0, i32 9
  %3103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3102, i32 0, i32 4
  %3104 = load ptr, ptr %3103, align 8, !tbaa !44
  %3105 = getelementptr inbounds double, ptr %3104, i64 0
  %3106 = load ptr, ptr %4, align 8, !tbaa !5
  %3107 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3106, i32 0, i32 26
  %3108 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3107, i32 0, i32 4
  %3109 = load ptr, ptr %3108, align 8, !tbaa !44
  %3110 = getelementptr inbounds double, ptr %3109, i64 0
  %3111 = load i64, ptr %6, align 8, !tbaa !45
  %3112 = sub nsw i64 %3111, 1
  %3113 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3112)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3105, i64 noundef 1, ptr noundef %3110, i64 noundef 1, i64 noundef %3113)
  %3114 = load ptr, ptr %4, align 8, !tbaa !5
  %3115 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3114, i32 0, i32 9
  %3116 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3115, i32 0, i32 4
  %3117 = load ptr, ptr %3116, align 8, !tbaa !44
  %3118 = getelementptr inbounds double, ptr %3117, i64 0
  %3119 = load ptr, ptr %4, align 8, !tbaa !5
  %3120 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3119, i32 0, i32 43
  %3121 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3120, i32 0, i32 4
  %3122 = load ptr, ptr %3121, align 8, !tbaa !44
  %3123 = getelementptr inbounds double, ptr %3122, i64 0
  %3124 = load i64, ptr %6, align 8, !tbaa !45
  %3125 = sub nsw i64 %3124, 1
  %3126 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3125)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %3118, i64 noundef 1, ptr noundef %3123, i64 noundef 1, i64 noundef %3126)
  %3127 = load ptr, ptr %4, align 8, !tbaa !5
  %3128 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %3127, ptr noundef %3128)
  %3129 = load ptr, ptr %4, align 8, !tbaa !5
  %3130 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3129, i32 0, i32 24
  %3131 = load i8, ptr %3130, align 1, !tbaa !63, !range !47, !noundef !48
  %3132 = trunc i8 %3131 to i1
  br i1 %3132, label %3134, label %3133

3133:                                             ; preds = %3098
  br label %3188

3134:                                             ; preds = %3098
  %3135 = load ptr, ptr %4, align 8, !tbaa !5
  %3136 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3135, i32 0, i32 19
  store i8 1, ptr %3136, align 4, !tbaa !77
  %3137 = load ptr, ptr %4, align 8, !tbaa !5
  %3138 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3137, i32 0, i32 58
  %3139 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3138, i32 0, i32 0
  store i32 22, ptr %3139, align 8, !tbaa !9
  br label %3586

3140:                                             ; preds = %257
  %3141 = load ptr, ptr %4, align 8, !tbaa !5
  %3142 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3141, i32 0, i32 19
  store i8 0, ptr %3142, align 4, !tbaa !77
  %3143 = load ptr, ptr %4, align 8, !tbaa !5
  %3144 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3143, i32 0, i32 11
  %3145 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3144, i32 0, i32 4
  %3146 = load ptr, ptr %3145, align 8, !tbaa !44
  %3147 = getelementptr inbounds double, ptr %3146, i64 0
  %3148 = load ptr, ptr %4, align 8, !tbaa !5
  %3149 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3148, i32 0, i32 11
  %3150 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3149, i32 0, i32 4
  %3151 = load ptr, ptr %3150, align 8, !tbaa !44
  %3152 = getelementptr inbounds double, ptr %3151, i64 0
  %3153 = load i64, ptr %7, align 8, !tbaa !45
  %3154 = sub nsw i64 %3153, 1
  %3155 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3154)
  %3156 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %3147, i64 noundef 1, ptr noundef %3152, i64 noundef 1, i64 noundef %3155)
  store double %3156, ptr %10, align 8, !tbaa !49
  %3157 = load double, ptr %10, align 8, !tbaa !49
  %3158 = load ptr, ptr %4, align 8, !tbaa !5
  %3159 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3158, i32 0, i32 10
  store double %3157, ptr %3159, align 8, !tbaa !78
  %3160 = load ptr, ptr %4, align 8, !tbaa !5
  %3161 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3160, i32 0, i32 45
  %3162 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3161, i32 0, i32 4
  %3163 = load ptr, ptr %3162, align 8, !tbaa !44
  %3164 = getelementptr inbounds double, ptr %3163, i64 0
  %3165 = load ptr, ptr %4, align 8, !tbaa !5
  %3166 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3165, i32 0, i32 11
  %3167 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3166, i32 0, i32 4
  %3168 = load ptr, ptr %3167, align 8, !tbaa !44
  %3169 = getelementptr inbounds double, ptr %3168, i64 0
  %3170 = load i64, ptr %7, align 8, !tbaa !45
  %3171 = sub nsw i64 %3170, 1
  %3172 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3171)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3164, i64 noundef 1, ptr noundef %3169, i64 noundef 1, i64 noundef %3172)
  %3173 = load ptr, ptr %4, align 8, !tbaa !5
  %3174 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3173, i32 0, i32 45
  %3175 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3174, i32 0, i32 4
  %3176 = load ptr, ptr %3175, align 8, !tbaa !44
  %3177 = getelementptr inbounds double, ptr %3176, i64 0
  %3178 = load ptr, ptr %4, align 8, !tbaa !5
  %3179 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3178, i32 0, i32 28
  %3180 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3179, i32 0, i32 4
  %3181 = load ptr, ptr %3180, align 8, !tbaa !44
  %3182 = getelementptr inbounds double, ptr %3181, i64 0
  %3183 = load i64, ptr %7, align 8, !tbaa !45
  %3184 = sub nsw i64 %3183, 1
  %3185 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3184)
  call void @_ZN11alglib_impl8ae_v_subEPdlPKdll(ptr noundef %3177, i64 noundef 1, ptr noundef %3182, i64 noundef 1, i64 noundef %3185)
  %3186 = load ptr, ptr %4, align 8, !tbaa !5
  %3187 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3186, i32 0, i32 47
  store i8 1, ptr %3187, align 1, !tbaa !84
  br label %3197

3188:                                             ; preds = %3133
  %3189 = load ptr, ptr %4, align 8, !tbaa !5
  %3190 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3189, i32 0, i32 15
  store i8 1, ptr %3190, align 8, !tbaa !76
  %3191 = load ptr, ptr %4, align 8, !tbaa !5
  %3192 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3191, i32 0, i32 58
  %3193 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3192, i32 0, i32 0
  store i32 23, ptr %3193, align 8, !tbaa !9
  br label %3586

3194:                                             ; preds = %264
  %3195 = load ptr, ptr %4, align 8, !tbaa !5
  %3196 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3195, i32 0, i32 15
  store i8 0, ptr %3196, align 8, !tbaa !76
  br label %3197

3197:                                             ; preds = %3194, %3140
  %3198 = load ptr, ptr %4, align 8, !tbaa !5
  %3199 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3198, i32 0, i32 53
  %3200 = load i64, ptr %3199, align 8, !tbaa !54
  %3201 = add nsw i64 %3200, 1
  %3202 = load ptr, ptr %4, align 8, !tbaa !5
  %3203 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3202, i32 0, i32 53
  store i64 %3201, ptr %3203, align 8, !tbaa !54
  %3204 = load ptr, ptr %4, align 8, !tbaa !5
  %3205 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3204, i32 0, i32 10
  %3206 = load double, ptr %3205, align 8, !tbaa !78
  %3207 = load ptr, ptr %5, align 8, !tbaa !5
  %3208 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %3206, ptr noundef %3207)
  br i1 %3208, label %3214, label %3209

3209:                                             ; preds = %3197
  %3210 = load ptr, ptr %4, align 8, !tbaa !5
  %3211 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3210, i32 0, i32 52
  store i64 -8, ptr %3211, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %3212 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3213 = trunc i8 %3212 to i1
  store i1 %3213, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3214:                                             ; preds = %3197
  %3215 = load ptr, ptr %4, align 8, !tbaa !5
  %3216 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3215, i32 0, i32 10
  %3217 = load double, ptr %3216, align 8, !tbaa !78
  %3218 = load ptr, ptr %4, align 8, !tbaa !5
  %3219 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3218, i32 0, i32 27
  %3220 = load double, ptr %3219, align 8, !tbaa !91
  %3221 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %3217, double noundef %3220)
  br i1 %3221, label %3222, label %3231

3222:                                             ; preds = %3214
  %3223 = load ptr, ptr %4, align 8, !tbaa !5
  %3224 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3223, i32 0, i32 39
  %3225 = load ptr, ptr %4, align 8, !tbaa !5
  %3226 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3225, i32 0, i32 40
  %3227 = load ptr, ptr %5, align 8, !tbaa !5
  %3228 = call noundef zeroext i1 @_ZN11alglib_implL20minlm_increaselambdaEPdS0_PNS_8ae_stateE(ptr noundef %3224, ptr noundef %3226, ptr noundef %3227)
  br i1 %3228, label %3230, label %3229

3229:                                             ; preds = %3222
  store i64 -1, ptr %9, align 8, !tbaa !45
  br label %3232

3230:                                             ; preds = %3222
  br label %2778

3231:                                             ; preds = %3214
  store i64 0, ptr %9, align 8, !tbaa !45
  br label %3232

3232:                                             ; preds = %3231, %3229, %3086, %2958, %2946, %2789
  %3233 = load ptr, ptr %4, align 8, !tbaa !5
  %3234 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3233, i32 0, i32 21
  %3235 = load i8, ptr %3234, align 2, !tbaa !59, !range !47, !noundef !48
  %3236 = trunc i8 %3235 to i1
  br i1 %3236, label %3237, label %3255

3237:                                             ; preds = %3232
  %3238 = load ptr, ptr %4, align 8, !tbaa !5
  %3239 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3238, i32 0, i32 9
  %3240 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3239, i32 0, i32 4
  %3241 = load ptr, ptr %3240, align 8, !tbaa !44
  %3242 = getelementptr inbounds double, ptr %3241, i64 0
  %3243 = load ptr, ptr %4, align 8, !tbaa !5
  %3244 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3243, i32 0, i32 26
  %3245 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3244, i32 0, i32 4
  %3246 = load ptr, ptr %3245, align 8, !tbaa !44
  %3247 = getelementptr inbounds double, ptr %3246, i64 0
  %3248 = load i64, ptr %6, align 8, !tbaa !45
  %3249 = sub nsw i64 %3248, 1
  %3250 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3249)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3242, i64 noundef 1, ptr noundef %3247, i64 noundef 1, i64 noundef %3250)
  %3251 = load ptr, ptr %4, align 8, !tbaa !5
  %3252 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3251, i32 0, i32 52
  store i64 8, ptr %3252, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %3253 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3254 = trunc i8 %3253 to i1
  store i1 %3254, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3255:                                             ; preds = %3232
  %3256 = load ptr, ptr %4, align 8, !tbaa !5
  %3257 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3256, i32 0, i32 40
  store double 1.000000e+00, ptr %3257, align 8, !tbaa !80
  %3258 = load i64, ptr %9, align 8, !tbaa !45
  %3259 = icmp sge i64 %3258, -3
  br i1 %3259, label %3260, label %3263

3260:                                             ; preds = %3255
  %3261 = load i64, ptr %9, align 8, !tbaa !45
  %3262 = icmp sle i64 %3261, 0
  br label %3263

3263:                                             ; preds = %3260, %3255
  %3264 = phi i1 [ false, %3255 ], [ %3262, %3260 ]
  %3265 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3264, ptr noundef @.str.610, ptr noundef %3265)
  %3266 = load i64, ptr %9, align 8, !tbaa !45
  %3267 = icmp eq i64 %3266, -3
  br i1 %3267, label %3268, label %3273

3268:                                             ; preds = %3263
  %3269 = load ptr, ptr %4, align 8, !tbaa !5
  %3270 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3269, i32 0, i32 52
  store i64 -3, ptr %3270, align 8, !tbaa !53
  store i8 0, ptr %16, align 1, !tbaa !46
  %3271 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3272 = trunc i8 %3271 to i1
  store i1 %3272, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3273:                                             ; preds = %3263
  %3274 = load i64, ptr %9, align 8, !tbaa !45
  %3275 = icmp eq i64 %3274, -2
  br i1 %3275, label %3276, label %3283

3276:                                             ; preds = %3273
  %3277 = load ptr, ptr %4, align 8, !tbaa !5
  %3278 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3277, i32 0, i32 7
  %3279 = load i64, ptr %3278, align 8, !tbaa !62
  %3280 = add nsw i64 %3279, 1
  %3281 = load ptr, ptr %4, align 8, !tbaa !5
  %3282 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3281, i32 0, i32 41
  store i64 %3280, ptr %3282, align 8, !tbaa !82
  br label %1944

3283:                                             ; preds = %3273
  %3284 = load i64, ptr %9, align 8, !tbaa !45
  %3285 = icmp eq i64 %3284, -1
  br i1 %3285, label %3286, label %3287

3286:                                             ; preds = %3283
  br label %3545

3287:                                             ; preds = %3283
  %3288 = load ptr, ptr %4, align 8, !tbaa !5
  %3289 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3288, i32 0, i32 46
  %3290 = load i8, ptr %3289, align 8, !tbaa !83, !range !47, !noundef !48
  %3291 = trunc i8 %3290 to i1
  %3292 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3291, ptr noundef @.str.611, ptr noundef %3292)
  store double 0.000000e+00, ptr %12, align 8, !tbaa !49
  store i64 0, ptr %14, align 8, !tbaa !45
  br label %3293

3293:                                             ; preds = %3342, %3287
  %3294 = load i64, ptr %14, align 8, !tbaa !45
  %3295 = load i64, ptr %6, align 8, !tbaa !45
  %3296 = sub nsw i64 %3295, 1
  %3297 = icmp sle i64 %3294, %3296
  br i1 %3297, label %3298, label %3345

3298:                                             ; preds = %3293
  %3299 = load ptr, ptr %4, align 8, !tbaa !5
  %3300 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3299, i32 0, i32 30
  %3301 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3300, i32 0, i32 6
  %3302 = load ptr, ptr %3301, align 8, !tbaa !44
  %3303 = load i64, ptr %14, align 8, !tbaa !45
  %3304 = getelementptr inbounds ptr, ptr %3302, i64 %3303
  %3305 = load ptr, ptr %3304, align 8, !tbaa !5
  %3306 = getelementptr inbounds double, ptr %3305, i64 0
  %3307 = load ptr, ptr %4, align 8, !tbaa !5
  %3308 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3307, i32 0, i32 44
  %3309 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3308, i32 0, i32 4
  %3310 = load ptr, ptr %3309, align 8, !tbaa !44
  %3311 = getelementptr inbounds double, ptr %3310, i64 0
  %3312 = load i64, ptr %6, align 8, !tbaa !45
  %3313 = sub nsw i64 %3312, 1
  %3314 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3313)
  %3315 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %3306, i64 noundef 1, ptr noundef %3311, i64 noundef 1, i64 noundef %3314)
  store double %3315, ptr %10, align 8, !tbaa !49
  %3316 = load double, ptr %12, align 8, !tbaa !49
  %3317 = load ptr, ptr %4, align 8, !tbaa !5
  %3318 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3317, i32 0, i32 44
  %3319 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3318, i32 0, i32 4
  %3320 = load ptr, ptr %3319, align 8, !tbaa !44
  %3321 = load i64, ptr %14, align 8, !tbaa !45
  %3322 = getelementptr inbounds double, ptr %3320, i64 %3321
  %3323 = load double, ptr %3322, align 8, !tbaa !49
  %3324 = load ptr, ptr %4, align 8, !tbaa !5
  %3325 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3324, i32 0, i32 29
  %3326 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3325, i32 0, i32 4
  %3327 = load ptr, ptr %3326, align 8, !tbaa !44
  %3328 = load i64, ptr %14, align 8, !tbaa !45
  %3329 = getelementptr inbounds double, ptr %3327, i64 %3328
  %3330 = load double, ptr %3329, align 8, !tbaa !49
  %3331 = call double @llvm.fmuladd.f64(double %3323, double %3330, double %3316)
  %3332 = load ptr, ptr %4, align 8, !tbaa !5
  %3333 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3332, i32 0, i32 44
  %3334 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3333, i32 0, i32 4
  %3335 = load ptr, ptr %3334, align 8, !tbaa !44
  %3336 = load i64, ptr %14, align 8, !tbaa !45
  %3337 = getelementptr inbounds double, ptr %3335, i64 %3336
  %3338 = load double, ptr %3337, align 8, !tbaa !49
  %3339 = fmul double 5.000000e-01, %3338
  %3340 = load double, ptr %10, align 8, !tbaa !49
  %3341 = call double @llvm.fmuladd.f64(double %3339, double %3340, double %3331)
  store double %3341, ptr %12, align 8, !tbaa !49
  br label %3342

3342:                                             ; preds = %3298
  %3343 = load i64, ptr %14, align 8, !tbaa !45
  %3344 = add nsw i64 %3343, 1
  store i64 %3344, ptr %14, align 8, !tbaa !45
  br label %3293, !llvm.loop !106

3345:                                             ; preds = %3293
  %3346 = load double, ptr %12, align 8, !tbaa !49
  %3347 = fneg double %3346
  %3348 = load ptr, ptr %4, align 8, !tbaa !5
  %3349 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3348, i32 0, i32 62
  store double %3347, ptr %3349, align 8, !tbaa !107
  %3350 = load ptr, ptr %4, align 8, !tbaa !5
  %3351 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3350, i32 0, i32 10
  %3352 = load double, ptr %3351, align 8, !tbaa !78
  %3353 = load ptr, ptr %4, align 8, !tbaa !5
  %3354 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3353, i32 0, i32 27
  %3355 = load double, ptr %3354, align 8, !tbaa !91
  %3356 = fsub double %3352, %3355
  %3357 = fneg double %3356
  %3358 = load ptr, ptr %4, align 8, !tbaa !5
  %3359 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3358, i32 0, i32 61
  store double %3357, ptr %3359, align 8, !tbaa !108
  %3360 = load ptr, ptr %4, align 8, !tbaa !5
  %3361 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3360, i32 0, i32 62
  %3362 = load double, ptr %3361, align 8, !tbaa !107
  %3363 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %3362, double noundef 0.000000e+00)
  br i1 %3363, label %3364, label %3365

3364:                                             ; preds = %3345
  br label %3545

3365:                                             ; preds = %3345
  %3366 = load ptr, ptr %4, align 8, !tbaa !5
  %3367 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3366, i32 0, i32 61
  %3368 = load double, ptr %3367, align 8, !tbaa !108
  %3369 = load ptr, ptr %4, align 8, !tbaa !5
  %3370 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3369, i32 0, i32 62
  %3371 = load double, ptr %3370, align 8, !tbaa !107
  %3372 = fdiv double %3368, %3371
  store double %3372, ptr %10, align 8, !tbaa !49
  %3373 = load double, ptr %10, align 8, !tbaa !49
  %3374 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %3373, double noundef 1.000000e-01)
  br i1 %3374, label %3375, label %3376

3375:                                             ; preds = %3365
  br label %3425

3376:                                             ; preds = %3365
  %3377 = load ptr, ptr %4, align 8, !tbaa !5
  %3378 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3377, i32 0, i32 39
  %3379 = load ptr, ptr %4, align 8, !tbaa !5
  %3380 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3379, i32 0, i32 40
  %3381 = load ptr, ptr %5, align 8, !tbaa !5
  %3382 = call noundef zeroext i1 @_ZN11alglib_implL20minlm_increaselambdaEPdS0_PNS_8ae_stateE(ptr noundef %3378, ptr noundef %3380, ptr noundef %3381)
  br i1 %3382, label %3383, label %3384

3383:                                             ; preds = %3376
  br label %3424

3384:                                             ; preds = %3376
  %3385 = load ptr, ptr %4, align 8, !tbaa !5
  %3386 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3385, i32 0, i32 52
  store i64 7, ptr %3386, align 8, !tbaa !53
  %3387 = load ptr, ptr %4, align 8, !tbaa !5
  %3388 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3387, i32 0, i32 5
  %3389 = load i8, ptr %3388, align 8, !tbaa !74, !range !47, !noundef !48
  %3390 = trunc i8 %3389 to i1
  br i1 %3390, label %3392, label %3391

3391:                                             ; preds = %3384
  br label %3421

3392:                                             ; preds = %3384
  %3393 = load ptr, ptr %4, align 8, !tbaa !5
  %3394 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3393, i32 0, i32 9
  %3395 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3394, i32 0, i32 4
  %3396 = load ptr, ptr %3395, align 8, !tbaa !44
  %3397 = getelementptr inbounds double, ptr %3396, i64 0
  %3398 = load ptr, ptr %4, align 8, !tbaa !5
  %3399 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3398, i32 0, i32 26
  %3400 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3399, i32 0, i32 4
  %3401 = load ptr, ptr %3400, align 8, !tbaa !44
  %3402 = getelementptr inbounds double, ptr %3401, i64 0
  %3403 = load i64, ptr %6, align 8, !tbaa !45
  %3404 = sub nsw i64 %3403, 1
  %3405 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3404)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3397, i64 noundef 1, ptr noundef %3402, i64 noundef 1, i64 noundef %3405)
  %3406 = load ptr, ptr %4, align 8, !tbaa !5
  %3407 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3406, i32 0, i32 27
  %3408 = load double, ptr %3407, align 8, !tbaa !91
  %3409 = load ptr, ptr %4, align 8, !tbaa !5
  %3410 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3409, i32 0, i32 10
  store double %3408, ptr %3410, align 8, !tbaa !78
  %3411 = load ptr, ptr %4, align 8, !tbaa !5
  %3412 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %3411, ptr noundef %3412)
  %3413 = load ptr, ptr %4, align 8, !tbaa !5
  %3414 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3413, i32 0, i32 20
  store i8 1, ptr %3414, align 1, !tbaa !79
  %3415 = load ptr, ptr %4, align 8, !tbaa !5
  %3416 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3415, i32 0, i32 58
  %3417 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3416, i32 0, i32 0
  store i32 24, ptr %3417, align 8, !tbaa !9
  br label %3586

3418:                                             ; preds = %271
  %3419 = load ptr, ptr %4, align 8, !tbaa !5
  %3420 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3419, i32 0, i32 20
  store i8 0, ptr %3420, align 1, !tbaa !79
  br label %3421

3421:                                             ; preds = %3418, %3391
  store i8 0, ptr %16, align 1, !tbaa !46
  %3422 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3423 = trunc i8 %3422 to i1
  store i1 %3423, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3424:                                             ; preds = %3383
  br label %3425

3425:                                             ; preds = %3424, %3375
  %3426 = load double, ptr %10, align 8, !tbaa !49
  %3427 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3426, double noundef 5.000000e-01)
  br i1 %3427, label %3428, label %3434

3428:                                             ; preds = %3425
  %3429 = load ptr, ptr %4, align 8, !tbaa !5
  %3430 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3429, i32 0, i32 39
  %3431 = load ptr, ptr %4, align 8, !tbaa !5
  %3432 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3431, i32 0, i32 40
  %3433 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL20minlm_decreaselambdaEPdS0_PNS_8ae_stateE(ptr noundef %3430, ptr noundef %3432, ptr noundef %3433)
  br label %3434

3434:                                             ; preds = %3428, %3425
  %3435 = load ptr, ptr %4, align 8, !tbaa !5
  %3436 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3435, i32 0, i32 26
  %3437 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3436, i32 0, i32 4
  %3438 = load ptr, ptr %3437, align 8, !tbaa !44
  %3439 = getelementptr inbounds double, ptr %3438, i64 0
  %3440 = load ptr, ptr %4, align 8, !tbaa !5
  %3441 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3440, i32 0, i32 44
  %3442 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3441, i32 0, i32 4
  %3443 = load ptr, ptr %3442, align 8, !tbaa !44
  %3444 = getelementptr inbounds double, ptr %3443, i64 0
  %3445 = load i64, ptr %6, align 8, !tbaa !45
  %3446 = sub nsw i64 %3445, 1
  %3447 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3446)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %3439, i64 noundef 1, ptr noundef %3444, i64 noundef 1, i64 noundef %3447)
  %3448 = load ptr, ptr %4, align 8, !tbaa !5
  %3449 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3448, i32 0, i32 5
  %3450 = load i8, ptr %3449, align 8, !tbaa !74, !range !47, !noundef !48
  %3451 = trunc i8 %3450 to i1
  br i1 %3451, label %3453, label %3452

3452:                                             ; preds = %3434
  br label %3477

3453:                                             ; preds = %3434
  %3454 = load ptr, ptr %4, align 8, !tbaa !5
  %3455 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3454, i32 0, i32 9
  %3456 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3455, i32 0, i32 4
  %3457 = load ptr, ptr %3456, align 8, !tbaa !44
  %3458 = getelementptr inbounds double, ptr %3457, i64 0
  %3459 = load ptr, ptr %4, align 8, !tbaa !5
  %3460 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3459, i32 0, i32 26
  %3461 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3460, i32 0, i32 4
  %3462 = load ptr, ptr %3461, align 8, !tbaa !44
  %3463 = getelementptr inbounds double, ptr %3462, i64 0
  %3464 = load i64, ptr %6, align 8, !tbaa !45
  %3465 = sub nsw i64 %3464, 1
  %3466 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3465)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3458, i64 noundef 1, ptr noundef %3463, i64 noundef 1, i64 noundef %3466)
  %3467 = load ptr, ptr %4, align 8, !tbaa !5
  %3468 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %3467, ptr noundef %3468)
  %3469 = load ptr, ptr %4, align 8, !tbaa !5
  %3470 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3469, i32 0, i32 20
  store i8 1, ptr %3470, align 1, !tbaa !79
  %3471 = load ptr, ptr %4, align 8, !tbaa !5
  %3472 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3471, i32 0, i32 58
  %3473 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3472, i32 0, i32 0
  store i32 25, ptr %3473, align 8, !tbaa !9
  br label %3586

3474:                                             ; preds = %278
  %3475 = load ptr, ptr %4, align 8, !tbaa !5
  %3476 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3475, i32 0, i32 20
  store i8 0, ptr %3476, align 1, !tbaa !79
  br label %3477

3477:                                             ; preds = %3474, %3452
  %3478 = load ptr, ptr %4, align 8, !tbaa !5
  %3479 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3478, i32 0, i32 51
  %3480 = load i64, ptr %3479, align 8, !tbaa !52
  %3481 = add nsw i64 %3480, 1
  %3482 = load ptr, ptr %4, align 8, !tbaa !5
  %3483 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3482, i32 0, i32 51
  store i64 %3481, ptr %3483, align 8, !tbaa !52
  %3484 = load ptr, ptr %4, align 8, !tbaa !5
  %3485 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3484, i32 0, i32 51
  %3486 = load i64, ptr %3485, align 8, !tbaa !52
  %3487 = load ptr, ptr %4, align 8, !tbaa !5
  %3488 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3487, i32 0, i32 4
  %3489 = load i64, ptr %3488, align 8, !tbaa !97
  %3490 = icmp sge i64 %3486, %3489
  br i1 %3490, label %3491, label %3499

3491:                                             ; preds = %3477
  %3492 = load ptr, ptr %4, align 8, !tbaa !5
  %3493 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3492, i32 0, i32 4
  %3494 = load i64, ptr %3493, align 8, !tbaa !97
  %3495 = icmp sgt i64 %3494, 0
  br i1 %3495, label %3496, label %3499

3496:                                             ; preds = %3491
  %3497 = load ptr, ptr %4, align 8, !tbaa !5
  %3498 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3497, i32 0, i32 52
  store i64 5, ptr %3498, align 8, !tbaa !53
  br label %3499

3499:                                             ; preds = %3496, %3491, %3477
  %3500 = load ptr, ptr %4, align 8, !tbaa !5
  %3501 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3500, i32 0, i32 52
  %3502 = load i64, ptr %3501, align 8, !tbaa !53
  %3503 = icmp sle i64 %3502, 0
  br i1 %3503, label %3504, label %3505

3504:                                             ; preds = %3499
  br label %3538

3505:                                             ; preds = %3499
  %3506 = load ptr, ptr %4, align 8, !tbaa !5
  %3507 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3506, i32 0, i32 5
  %3508 = load i8, ptr %3507, align 8, !tbaa !74, !range !47, !noundef !48
  %3509 = trunc i8 %3508 to i1
  br i1 %3509, label %3511, label %3510

3510:                                             ; preds = %3505
  br label %3535

3511:                                             ; preds = %3505
  %3512 = load ptr, ptr %4, align 8, !tbaa !5
  %3513 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3512, i32 0, i32 9
  %3514 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3513, i32 0, i32 4
  %3515 = load ptr, ptr %3514, align 8, !tbaa !44
  %3516 = getelementptr inbounds double, ptr %3515, i64 0
  %3517 = load ptr, ptr %4, align 8, !tbaa !5
  %3518 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3517, i32 0, i32 26
  %3519 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3518, i32 0, i32 4
  %3520 = load ptr, ptr %3519, align 8, !tbaa !44
  %3521 = getelementptr inbounds double, ptr %3520, i64 0
  %3522 = load i64, ptr %6, align 8, !tbaa !45
  %3523 = sub nsw i64 %3522, 1
  %3524 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3523)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3516, i64 noundef 1, ptr noundef %3521, i64 noundef 1, i64 noundef %3524)
  %3525 = load ptr, ptr %4, align 8, !tbaa !5
  %3526 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %3525, ptr noundef %3526)
  %3527 = load ptr, ptr %4, align 8, !tbaa !5
  %3528 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3527, i32 0, i32 20
  store i8 1, ptr %3528, align 1, !tbaa !79
  %3529 = load ptr, ptr %4, align 8, !tbaa !5
  %3530 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3529, i32 0, i32 58
  %3531 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3530, i32 0, i32 0
  store i32 26, ptr %3531, align 8, !tbaa !9
  br label %3586

3532:                                             ; preds = %285
  %3533 = load ptr, ptr %4, align 8, !tbaa !5
  %3534 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3533, i32 0, i32 20
  store i8 0, ptr %3534, align 1, !tbaa !79
  br label %3535

3535:                                             ; preds = %3532, %3510
  store i8 0, ptr %16, align 1, !tbaa !46
  %3536 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3537 = trunc i8 %3536 to i1
  store i1 %3537, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3538:                                             ; preds = %3504
  %3539 = load ptr, ptr %4, align 8, !tbaa !5
  %3540 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3539, i32 0, i32 41
  %3541 = load i64, ptr %3540, align 8, !tbaa !82
  %3542 = add nsw i64 %3541, 1
  %3543 = load ptr, ptr %4, align 8, !tbaa !5
  %3544 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3543, i32 0, i32 41
  store i64 %3542, ptr %3544, align 8, !tbaa !82
  br label %1944

3545:                                             ; preds = %3364, %3286
  %3546 = load ptr, ptr %4, align 8, !tbaa !5
  %3547 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3546, i32 0, i32 52
  store i64 7, ptr %3547, align 8, !tbaa !53
  %3548 = load ptr, ptr %4, align 8, !tbaa !5
  %3549 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3548, i32 0, i32 5
  %3550 = load i8, ptr %3549, align 8, !tbaa !74, !range !47, !noundef !48
  %3551 = trunc i8 %3550 to i1
  br i1 %3551, label %3553, label %3552

3552:                                             ; preds = %3545
  br label %3582

3553:                                             ; preds = %3545
  %3554 = load ptr, ptr %4, align 8, !tbaa !5
  %3555 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3554, i32 0, i32 9
  %3556 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3555, i32 0, i32 4
  %3557 = load ptr, ptr %3556, align 8, !tbaa !44
  %3558 = getelementptr inbounds double, ptr %3557, i64 0
  %3559 = load ptr, ptr %4, align 8, !tbaa !5
  %3560 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3559, i32 0, i32 26
  %3561 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3560, i32 0, i32 4
  %3562 = load ptr, ptr %3561, align 8, !tbaa !44
  %3563 = getelementptr inbounds double, ptr %3562, i64 0
  %3564 = load i64, ptr %6, align 8, !tbaa !45
  %3565 = sub nsw i64 %3564, 1
  %3566 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3565)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3558, i64 noundef 1, ptr noundef %3563, i64 noundef 1, i64 noundef %3566)
  %3567 = load ptr, ptr %4, align 8, !tbaa !5
  %3568 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3567, i32 0, i32 27
  %3569 = load double, ptr %3568, align 8, !tbaa !91
  %3570 = load ptr, ptr %4, align 8, !tbaa !5
  %3571 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3570, i32 0, i32 10
  store double %3569, ptr %3571, align 8, !tbaa !78
  %3572 = load ptr, ptr %4, align 8, !tbaa !5
  %3573 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %3572, ptr noundef %3573)
  %3574 = load ptr, ptr %4, align 8, !tbaa !5
  %3575 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3574, i32 0, i32 20
  store i8 1, ptr %3575, align 1, !tbaa !79
  %3576 = load ptr, ptr %4, align 8, !tbaa !5
  %3577 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3576, i32 0, i32 58
  %3578 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3577, i32 0, i32 0
  store i32 27, ptr %3578, align 8, !tbaa !9
  br label %3586

3579:                                             ; preds = %292
  %3580 = load ptr, ptr %4, align 8, !tbaa !5
  %3581 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3580, i32 0, i32 20
  store i8 0, ptr %3581, align 1, !tbaa !79
  br label %3582

3582:                                             ; preds = %3579, %3552
  br label %3583

3583:                                             ; preds = %3582, %1928
  store i8 0, ptr %16, align 1, !tbaa !46
  %3584 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3585 = trunc i8 %3584 to i1
  store i1 %3585, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3586:                                             ; preds = %3553, %3511, %3453, %3392, %3188, %3134, %3054, %2603, %2383, %2345, %2231, %2094, %1899, %1857, %1799, %1748, %1676, %1628, %1523, %1474, %1098, %1060, %946, %809, %584, %553, %544, %453
  store i8 1, ptr %16, align 1, !tbaa !46
  %3587 = load i64, ptr %6, align 8, !tbaa !45
  %3588 = load ptr, ptr %4, align 8, !tbaa !5
  %3589 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3588, i32 0, i32 58
  %3590 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3589, i32 0, i32 1
  %3591 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3590, i32 0, i32 4
  %3592 = load ptr, ptr %3591, align 8, !tbaa !44
  %3593 = getelementptr inbounds i64, ptr %3592, i64 0
  store i64 %3587, ptr %3593, align 8, !tbaa !45
  %3594 = load i64, ptr %7, align 8, !tbaa !45
  %3595 = load ptr, ptr %4, align 8, !tbaa !5
  %3596 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3595, i32 0, i32 58
  %3597 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3596, i32 0, i32 1
  %3598 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3597, i32 0, i32 4
  %3599 = load ptr, ptr %3598, align 8, !tbaa !44
  %3600 = getelementptr inbounds i64, ptr %3599, i64 1
  store i64 %3594, ptr %3600, align 8, !tbaa !45
  %3601 = load i64, ptr %9, align 8, !tbaa !45
  %3602 = load ptr, ptr %4, align 8, !tbaa !5
  %3603 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3602, i32 0, i32 58
  %3604 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3603, i32 0, i32 1
  %3605 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3604, i32 0, i32 4
  %3606 = load ptr, ptr %3605, align 8, !tbaa !44
  %3607 = getelementptr inbounds i64, ptr %3606, i64 2
  store i64 %3601, ptr %3607, align 8, !tbaa !45
  %3608 = load i64, ptr %14, align 8, !tbaa !45
  %3609 = load ptr, ptr %4, align 8, !tbaa !5
  %3610 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3609, i32 0, i32 58
  %3611 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3610, i32 0, i32 1
  %3612 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3611, i32 0, i32 4
  %3613 = load ptr, ptr %3612, align 8, !tbaa !44
  %3614 = getelementptr inbounds i64, ptr %3613, i64 3
  store i64 %3608, ptr %3614, align 8, !tbaa !45
  %3615 = load i64, ptr %15, align 8, !tbaa !45
  %3616 = load ptr, ptr %4, align 8, !tbaa !5
  %3617 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3616, i32 0, i32 58
  %3618 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3617, i32 0, i32 1
  %3619 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3618, i32 0, i32 4
  %3620 = load ptr, ptr %3619, align 8, !tbaa !44
  %3621 = getelementptr inbounds i64, ptr %3620, i64 4
  store i64 %3615, ptr %3621, align 8, !tbaa !45
  %3622 = load i8, ptr %8, align 1, !tbaa !46, !range !47, !noundef !48
  %3623 = trunc i8 %3622 to i1
  %3624 = load ptr, ptr %4, align 8, !tbaa !5
  %3625 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3624, i32 0, i32 58
  %3626 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3625, i32 0, i32 2
  %3627 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3626, i32 0, i32 4
  %3628 = load ptr, ptr %3627, align 8, !tbaa !44
  %3629 = getelementptr inbounds i8, ptr %3628, i64 0
  %3630 = zext i1 %3623 to i8
  store i8 %3630, ptr %3629, align 1, !tbaa !46
  %3631 = load double, ptr %10, align 8, !tbaa !49
  %3632 = load ptr, ptr %4, align 8, !tbaa !5
  %3633 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3632, i32 0, i32 58
  %3634 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3633, i32 0, i32 3
  %3635 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3634, i32 0, i32 4
  %3636 = load ptr, ptr %3635, align 8, !tbaa !44
  %3637 = getelementptr inbounds double, ptr %3636, i64 0
  store double %3631, ptr %3637, align 8, !tbaa !49
  %3638 = load double, ptr %11, align 8, !tbaa !49
  %3639 = load ptr, ptr %4, align 8, !tbaa !5
  %3640 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3639, i32 0, i32 58
  %3641 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3640, i32 0, i32 3
  %3642 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3641, i32 0, i32 4
  %3643 = load ptr, ptr %3642, align 8, !tbaa !44
  %3644 = getelementptr inbounds double, ptr %3643, i64 1
  store double %3638, ptr %3644, align 8, !tbaa !49
  %3645 = load double, ptr %12, align 8, !tbaa !49
  %3646 = load ptr, ptr %4, align 8, !tbaa !5
  %3647 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3646, i32 0, i32 58
  %3648 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3647, i32 0, i32 3
  %3649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3648, i32 0, i32 4
  %3650 = load ptr, ptr %3649, align 8, !tbaa !44
  %3651 = getelementptr inbounds double, ptr %3650, i64 2
  store double %3645, ptr %3651, align 8, !tbaa !49
  %3652 = load double, ptr %13, align 8, !tbaa !49
  %3653 = load ptr, ptr %4, align 8, !tbaa !5
  %3654 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %3653, i32 0, i32 58
  %3655 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3654, i32 0, i32 3
  %3656 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3655, i32 0, i32 4
  %3657 = load ptr, ptr %3656, align 8, !tbaa !44
  %3658 = getelementptr inbounds double, ptr %3657, i64 3
  store double %3652, ptr %3658, align 8, !tbaa !49
  %3659 = load i8, ptr %16, align 1, !tbaa !46, !range !47, !noundef !48
  %3660 = trunc i8 %3659 to i1
  store i1 %3660, ptr %3, align 1
  store i32 1, ptr %17, align 4
  br label %3661

3661:                                             ; preds = %3586, %3583, %3535, %3421, %3268, %3237, %3209, %3083, %2711, %1938, %1881, %1777, %1705, %1657, %1601, %1564, %1341, %619, %383
  call void @llvm.lifetime.end.p0(i64 1, 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 1, 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
  %3662 = load i1, ptr %3, align 1
  ret i1 %3662
}

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

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

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

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

declare noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef, double 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_impl6ae_sqrEdPNS_8ae_stateE(double noundef, ptr noundef) #1

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

declare noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef, i64 noundef) #1

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

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

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

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

declare noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef, ptr 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 void @_ZN11alglib_impl9ae_v_muldEPdlld(ptr noundef, i64 noundef, i64 noundef, double noundef) #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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, !22, i64 5536}
!10 = !{!"_ZTSN11alglib_impl10minlmstateE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !11, i64 32, !13, i64 40, !12, i64 48, !11, i64 56, !13, i64 64, !14, i64 72, !12, i64 136, !14, i64 144, !16, i64 208, !16, i64 288, !14, i64 368, !13, i64 432, !13, i64 433, !13, i64 434, !13, i64 435, !13, i64 436, !13, i64 437, !13, i64 438, !11, i64 440, !13, i64 448, !13, i64 449, !13, i64 450, !14, i64 456, !12, i64 520, !14, i64 528, !14, i64 592, !16, i64 656, !14, i64 736, !14, i64 800, !14, i64 864, !14, i64 928, !14, i64 992, !16, i64 1056, !11, i64 1136, !11, i64 1144, !12, i64 1152, !12, i64 1160, !11, i64 1168, !14, i64 1176, !14, i64 1240, !14, i64 1304, !14, i64 1368, !13, i64 1432, !13, i64 1433, !17, i64 1440, !12, i64 5408, !14, i64 5416, !11, i64 5480, !11, i64 5488, !11, i64 5496, !11, i64 5504, !11, i64 5512, !11, i64 5520, !11, i64 5528, !21, i64 5536, !14, i64 5800, !14, i64 5864, !12, i64 5928, !12, i64 5936, !12, i64 5944, !12, i64 5952, !14, i64 5960, !14, i64 6024, !14, i64 6088, !14, i64 6152, !14, i64 6216, !14, i64 6280, !23, i64 6344, !27, i64 13216, !28, i64 13240, !42, i64 48472, !43, i64 48512}
!11 = !{!"long", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !11, i64 0, !11, i64 8, !13, i64 16, !15, i64 24, !7, i64 56}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!16 = !{!"_ZTSN11alglib_impl9ae_matrixE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !13, i64 32, !15, i64 40, !7, i64 72}
!17 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !11, i64 0, !11, i64 8, !13, i64 16, !14, i64 24, !11, i64 88, !14, i64 96, !14, i64 160, !14, i64 224, !16, i64 288, !14, i64 368, !14, i64 432, !11, i64 496, !13, i64 504, !13, i64 505, !12, i64 512, !12, i64 520, !13, i64 528, !18, i64 536, !12, i64 832, !12, i64 840, !19, i64 848, !19, i64 1152, !12, i64 1456, !12, i64 1464, !20, i64 1472, !20, i64 1784, !13, i64 2096, !14, i64 2104, !14, i64 2168, !16, i64 2232, !21, i64 2312, !14, i64 2576, !14, i64 2640, !14, i64 2704, !14, i64 2768, !14, i64 2832, !14, i64 2896, !14, i64 2960, !14, i64 3024, !16, i64 3088, !16, i64 3168, !14, i64 3248, !14, i64 3312, !14, i64 3376, !14, i64 3440, !14, i64 3504, !14, i64 3568, !14, i64 3632, !14, i64 3696, !14, i64 3760, !14, i64 3824, !16, i64 3888}
!18 = !{!"_ZTSN11alglib_impl14optguardreportE", !13, i64 0, !13, i64 1, !11, i64 8, !12, i64 16, !13, i64 24, !13, i64 25, !13, i64 26, !11, i64 32, !12, i64 40, !13, i64 48, !11, i64 56, !11, i64 64, !14, i64 72, !16, i64 136, !16, i64 216}
!19 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !13, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !11, i64 144, !14, i64 152, !14, i64 216, !11, i64 280, !11, i64 288, !11, i64 296}
!20 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !13, i64 0, !11, i64 8, !11, i64 16, !14, i64 24, !14, i64 88, !11, i64 152, !14, i64 160, !14, i64 224, !11, i64 288, !11, i64 296, !11, i64 304}
!21 = !{!"_ZTSN11alglib_impl10rcommstateE", !22, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTSN11alglib_impl13minlbfgsstateE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !11, i64 40, !13, i64 48, !12, i64 56, !14, i64 64, !12, i64 128, !11, i64 136, !11, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !14, i64 176, !16, i64 240, !16, i64 320, !14, i64 400, !14, i64 464, !14, i64 528, !12, i64 592, !14, i64 600, !12, i64 664, !12, i64 672, !14, i64 680, !11, i64 744, !12, i64 752, !16, i64 760, !14, i64 840, !14, i64 904, !14, i64 968, !16, i64 1032, !11, i64 1112, !24, i64 1120, !25, i64 1584, !12, i64 2032, !12, i64 2040, !12, i64 2048, !12, i64 2056, !12, i64 2064, !14, i64 2072, !14, i64 2136, !14, i64 2200, !12, i64 2264, !14, i64 2272, !13, i64 2336, !13, i64 2337, !13, i64 2338, !13, i64 2339, !12, i64 2344, !21, i64 2352, !11, i64 2616, !11, i64 2624, !11, i64 2632, !26, i64 2640, !11, i64 2832, !17, i64 2840, !14, i64 6808}
!24 = !{!"_ZTSN11alglib_impl12precbuflbfgsE", !14, i64 0, !14, i64 64, !14, i64 128, !16, i64 192, !14, i64 272, !14, i64 336, !14, i64 400}
!25 = !{!"_ZTSN11alglib_impl14precbuflowrankE", !11, i64 0, !11, i64 8, !14, i64 16, !16, i64 80, !14, i64 160, !16, i64 224, !16, i64 304, !14, i64 384}
!26 = !{!"_ZTSN11alglib_impl11linminstateE", !13, i64 0, !13, i64 1, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !12, i64 128, !12, i64 136, !12, i64 144, !12, i64 152, !12, i64 160, !12, i64 168, !12, i64 176, !12, i64 184}
!27 = !{!"_ZTSN11alglib_impl14minlbfgsreportE", !11, i64 0, !11, i64 8, !11, i64 16}
!28 = !{!"_ZTSN11alglib_impl10minqpstateE", !11, i64 0, !29, i64 8, !30, i64 80, !31, i64 112, !13, i64 136, !11, i64 144, !11, i64 152, !32, i64 160, !33, i64 1848, !13, i64 2216, !12, i64 2224, !12, i64 2232, !12, i64 2240, !14, i64 2248, !14, i64 2312, !14, i64 2376, !11, i64 2440, !14, i64 2448, !14, i64 2512, !14, i64 2576, !14, i64 2640, !14, i64 2704, !13, i64 2768, !16, i64 2776, !11, i64 2856, !11, i64 2864, !33, i64 2872, !11, i64 3240, !11, i64 3248, !14, i64 3256, !11, i64 3320, !11, i64 3328, !11, i64 3336, !11, i64 3344, !11, i64 3352, !14, i64 3360, !14, i64 3424, !16, i64 3488, !16, i64 3568, !13, i64 3648, !34, i64 3656, !39, i64 16496, !41, i64 23800}
!29 = !{!"_ZTSN11alglib_impl11qqpsettingsE", !12, i64 0, !12, i64 8, !12, i64 16, !11, i64 24, !13, i64 32, !13, i64 33, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64}
!30 = !{!"_ZTSN11alglib_impl15qpbleicsettingsE", !12, i64 0, !12, i64 8, !12, i64 16, !11, i64 24}
!31 = !{!"_ZTSN11alglib_impl18qpdenseaulsettingsE", !12, i64 0, !11, i64 8, !12, i64 16}
!32 = !{!"_ZTSN11alglib_impl20convexquadraticmodelE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !16, i64 40, !16, i64 120, !14, i64 200, !14, i64 264, !14, i64 328, !14, i64 392, !14, i64 456, !16, i64 520, !16, i64 600, !14, i64 680, !14, i64 744, !14, i64 808, !12, i64 872, !12, i64 880, !14, i64 888, !14, i64 952, !11, i64 1016, !11, i64 1024, !16, i64 1032, !16, i64 1112, !16, i64 1192, !14, i64 1272, !14, i64 1336, !12, i64 1400, !14, i64 1408, !14, i64 1472, !14, i64 1536, !16, i64 1600, !13, i64 1680, !13, i64 1681, !13, i64 1682, !13, i64 1683}
!33 = !{!"_ZTSN11alglib_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !11, i64 320, !11, i64 328, !11, i64 336, !11, i64 344, !11, i64 352, !11, i64 360}
!34 = !{!"_ZTSN11alglib_impl14qpbleicbuffersE", !35, i64 0, !38, i64 12536, !14, i64 12632, !14, i64 12696, !14, i64 12760, !11, i64 12824, !11, i64 12832}
!35 = !{!"_ZTSN11alglib_impl13minbleicstateE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !11, i64 40, !13, i64 48, !13, i64 49, !12, i64 56, !12, i64 64, !36, i64 72, !14, i64 4416, !11, i64 4480, !14, i64 4488, !14, i64 4552, !12, i64 4616, !14, i64 4624, !13, i64 4688, !13, i64 4689, !13, i64 4690, !13, i64 4691, !13, i64 4692, !13, i64 4693, !13, i64 4694, !21, i64 4696, !14, i64 4960, !14, i64 5024, !14, i64 5088, !14, i64 5152, !14, i64 5216, !14, i64 5280, !12, i64 5344, !12, i64 5352, !12, i64 5360, !14, i64 5368, !16, i64 5432, !11, i64 5512, !11, i64 5520, !12, i64 5528, !12, i64 5536, !12, i64 5544, !14, i64 5552, !14, i64 5616, !14, i64 5680, !14, i64 5744, !11, i64 5808, !11, i64 5816, !11, i64 5824, !11, i64 5832, !11, i64 5840, !12, i64 5848, !12, i64 5856, !12, i64 5864, !12, i64 5872, !11, i64 5880, !11, i64 5888, !14, i64 5896, !37, i64 5960, !12, i64 7600, !12, i64 7608, !12, i64 7616, !12, i64 7624, !12, i64 7632, !12, i64 7640, !12, i64 7648, !12, i64 7656, !12, i64 7664, !11, i64 7672, !12, i64 7680, !14, i64 7688, !14, i64 7752, !11, i64 7816, !11, i64 7824, !12, i64 7832, !12, i64 7840, !12, i64 7848, !14, i64 7856, !26, i64 7920, !12, i64 8112, !11, i64 8120, !16, i64 8128, !16, i64 8208, !14, i64 8288, !14, i64 8352, !11, i64 8416, !12, i64 8424, !11, i64 8432, !17, i64 8440, !14, i64 12408, !14, i64 12472}
!36 = !{!"_ZTSN11alglib_impl10sactivesetE", !11, i64 0, !11, i64 8, !14, i64 16, !13, i64 80, !14, i64 88, !14, i64 152, !14, i64 216, !13, i64 280, !16, i64 288, !16, i64 368, !16, i64 448, !11, i64 528, !14, i64 536, !11, i64 600, !11, i64 608, !13, i64 616, !13, i64 617, !14, i64 624, !14, i64 688, !14, i64 752, !14, i64 816, !16, i64 880, !11, i64 960, !11, i64 968, !14, i64 976, !14, i64 1040, !14, i64 1104, !14, i64 1168, !14, i64 1232, !14, i64 1296, !37, i64 1360, !14, i64 3000, !14, i64 3064, !14, i64 3128, !16, i64 3192, !14, i64 3272, !14, i64 3336, !14, i64 3400, !16, i64 3464, !16, i64 3544, !14, i64 3624, !14, i64 3688, !14, i64 3752, !16, i64 3816, !14, i64 3896, !14, i64 3960, !14, i64 4024, !14, i64 4088, !14, i64 4152, !14, i64 4216, !14, i64 4280}
!37 = !{!"_ZTSN11alglib_impl11snnlssolverE", !11, i64 0, !11, i64 8, !11, i64 16, !16, i64 24, !14, i64 104, !14, i64 168, !12, i64 232, !11, i64 240, !14, i64 248, !14, i64 312, !16, i64 376, !16, i64 456, !16, i64 536, !14, i64 616, !14, i64 680, !14, i64 744, !14, i64 808, !14, i64 872, !14, i64 936, !14, i64 1000, !14, i64 1064, !14, i64 1128, !14, i64 1192, !14, i64 1256, !14, i64 1320, !14, i64 1384, !14, i64 1448, !14, i64 1512, !14, i64 1576}
!38 = !{!"_ZTSN11alglib_impl14minbleicreportE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88}
!39 = !{!"_ZTSN11alglib_impl10qqpbuffersE", !11, i64 0, !11, i64 8, !16, i64 16, !33, i64 96, !13, i64 464, !12, i64 472, !12, i64 480, !12, i64 488, !14, i64 496, !14, i64 560, !14, i64 624, !14, i64 688, !14, i64 752, !14, i64 816, !14, i64 880, !14, i64 944, !14, i64 1008, !14, i64 1072, !14, i64 1136, !14, i64 1200, !14, i64 1264, !36, i64 1328, !14, i64 5672, !11, i64 5736, !11, i64 5744, !16, i64 5752, !33, i64 5832, !14, i64 6200, !14, i64 6264, !14, i64 6328, !14, i64 6392, !14, i64 6456, !14, i64 6520, !14, i64 6584, !14, i64 6648, !14, i64 6712, !40, i64 6776, !11, i64 7272, !11, i64 7280, !11, i64 7288, !11, i64 7296}
!40 = !{!"_ZTSN11alglib_impl13sparsebuffersE", !14, i64 0, !14, i64 64, !33, i64 128}
!41 = !{!"_ZTSN11alglib_impl17qpdenseaulbuffersE", !14, i64 0, !16, i64 64, !14, i64 144, !14, i64 208, !14, i64 272, !14, i64 336, !14, i64 400, !14, i64 464, !16, i64 528, !16, i64 608, !14, i64 688, !14, i64 752, !14, i64 816, !14, i64 880, !14, i64 944, !14, i64 1008, !29, i64 1072, !39, i64 1144, !14, i64 8448, !14, i64 8512, !16, i64 8576, !14, i64 8656, !14, i64 8720, !14, i64 8784, !32, i64 8848, !33, i64 10536, !16, i64 10904, !14, i64 10984, !14, i64 11048, !14, i64 11112, !14, i64 11176, !14, i64 11240, !14, i64 11304, !11, i64 11368, !11, i64 11376, !11, i64 11384, !11, i64 11392, !11, i64 11400, !11, i64 11408, !11, i64 11416, !11, i64 11424}
!42 = !{!"_ZTSN11alglib_impl11minqpreportE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32}
!43 = !{!"_ZTSN11alglib_impl15minlmstepfinderE", !11, i64 0, !11, i64 8, !12, i64 16, !11, i64 24, !11, i64 32, !13, i64 40, !12, i64 48, !14, i64 56, !12, i64 120, !14, i64 128, !13, i64 192, !13, i64 193, !12, i64 200, !14, i64 208, !14, i64 272, !14, i64 336, !14, i64 400, !14, i64 464, !14, i64 528, !14, i64 592, !14, i64 656, !21, i64 720, !14, i64 984, !14, i64 1048, !14, i64 1112, !14, i64 1176, !12, i64 1240, !12, i64 1248, !28, i64 1256, !42, i64 36488, !33, i64 36528}
!44 = !{!7, !7, i64 0}
!45 = !{!11, !11, i64 0}
!46 = !{!13, !13, i64 0}
!47 = !{i8 0, i8 2}
!48 = !{}
!49 = !{!12, !12, i64 0}
!50 = !{!10, !11, i64 0}
!51 = !{!10, !11, i64 8}
!52 = !{!10, !11, i64 5480}
!53 = !{!10, !11, i64 5488}
!54 = !{!10, !11, i64 5496}
!55 = !{!10, !11, i64 5504}
!56 = !{!10, !11, i64 5512}
!57 = !{!10, !11, i64 5520}
!58 = !{!10, !11, i64 5528}
!59 = !{!10, !13, i64 438}
!60 = distinct !{!60, !61}
!61 = !{!"llvm.loop.mustprogress"}
!62 = !{!10, !11, i64 56}
!63 = !{!10, !13, i64 449}
!64 = !{!10, !11, i64 1136}
!65 = !{!10, !11, i64 1144}
!66 = !{!10, !12, i64 48}
!67 = !{!10, !12, i64 24}
!68 = !{!10, !11, i64 440}
!69 = !{!10, !12, i64 5408}
!70 = distinct !{!70, !61}
!71 = !{!10, !13, i64 435}
!72 = distinct !{!72, !61}
!73 = distinct !{!73, !61}
!74 = !{!10, !13, i64 40}
!75 = !{!10, !13, i64 448}
!76 = !{!10, !13, i64 432}
!77 = !{!10, !13, i64 436}
!78 = !{!10, !12, i64 136}
!79 = !{!10, !13, i64 437}
!80 = !{!10, !12, i64 1160}
!81 = !{!10, !12, i64 1152}
!82 = !{!10, !11, i64 1168}
!83 = !{!10, !13, i64 1432}
!84 = !{!10, !13, i64 1433}
!85 = !{!10, !12, i64 16}
!86 = !{!10, !12, i64 5944}
!87 = !{!10, !12, i64 5952}
!88 = !{!10, !11, i64 224}
!89 = distinct !{!89, !61}
!90 = distinct !{!90, !61}
!91 = !{!10, !12, i64 520}
!92 = distinct !{!92, !61}
!93 = distinct !{!93, !61}
!94 = !{!10, !13, i64 48705}
!95 = !{!10, !13, i64 48704}
!96 = !{!10, !12, i64 48632}
!97 = !{!10, !11, i64 32}
!98 = distinct !{!98, !61}
!99 = distinct !{!99, !61}
!100 = !{!10, !13, i64 434}
!101 = distinct !{!101, !61}
!102 = distinct !{!102, !61}
!103 = distinct !{!103, !61}
!104 = !{!10, !11, i64 48504}
!105 = distinct !{!105, !61}
!106 = distinct !{!106, !61}
!107 = !{!10, !12, i64 5936}
!108 = !{!10, !12, i64 5928}


; 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.605 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [69 x i8], align 1
@_ZN11alglib_implL18minlm_suspiciousnuE = external hidden local_unnamed_addr global double, align 8
@.str.613 = external hidden unnamed_addr constant [49 x i8], align 1

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl14minlmiterationEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1) local_unnamed_addr #2 {
  %3 = alloca i64, align 8
  %4 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #7
  %5 = getelementptr inbounds i8, ptr %0, i64 5536
  %6 = load i32, ptr %5, align 8, !tbaa !5
  %7 = icmp sgt i32 %6, -1
  br i1 %7, label %8, label %32

8:                                                ; preds = %2
  %9 = getelementptr inbounds i8, ptr %0, i64 5600
  %10 = load ptr, ptr %9, align 8, !tbaa !43
  %11 = load i64, ptr %10, align 8, !tbaa !44
  %12 = getelementptr inbounds i8, ptr %10, i64 8
  %13 = load i64, ptr %12, align 8, !tbaa !44
  %14 = getelementptr inbounds i8, ptr %10, i64 16
  %15 = load i64, ptr %14, align 8, !tbaa !44
  %16 = getelementptr inbounds i8, ptr %10, i64 24
  %17 = load i64, ptr %16, align 8, !tbaa !44
  %18 = getelementptr inbounds i8, ptr %10, i64 32
  %19 = load i64, ptr %18, align 8, !tbaa !44
  %20 = getelementptr inbounds i8, ptr %0, i64 5664
  %21 = load ptr, ptr %20, align 8, !tbaa !43
  %22 = load i8, ptr %21, align 1, !tbaa !45, !range !46, !noundef !47
  %23 = getelementptr inbounds i8, ptr %0, i64 5728
  %24 = load ptr, ptr %23, align 8, !tbaa !43
  %25 = load double, ptr %24, align 8, !tbaa !48
  %26 = getelementptr inbounds i8, ptr %24, i64 8
  %27 = load double, ptr %26, align 8, !tbaa !48
  %28 = getelementptr inbounds i8, ptr %24, i64 16
  %29 = load double, ptr %28, align 8, !tbaa !48
  %30 = getelementptr inbounds i8, ptr %24, i64 24
  %31 = load double, ptr %30, align 8, !tbaa !48
  br label %32

32:                                               ; preds = %2, %8
  %.sink = phi i64 [ %15, %8 ], [ -919, %2 ]
  %storemerge = phi double [ %31, %8 ], [ 2.050000e+02, %2 ]
  %.01146 = phi i64 [ %11, %8 ], [ 359, %2 ]
  %.01128 = phi i64 [ %13, %8 ], [ -58, %2 ]
  %.01119 = phi i8 [ %22, %8 ], [ 1, %2 ]
  %.01097 = phi double [ %25, %8 ], [ 7.400000e+01, %2 ]
  %.01096 = phi double [ %27, %8 ], [ -7.880000e+02, %2 ]
  %.01079 = phi double [ %29, %8 ], [ 8.090000e+02, %2 ]
  %.01059 = phi i64 [ %17, %8 ], [ -909, %2 ]
  %.0 = phi i64 [ %19, %8 ], [ 81, %2 ]
  store i64 %.sink, ptr %3, align 8
  store double %storemerge, ptr %4, align 8, !tbaa !48
  switch i32 %6, label %33 [
    i32 0, label %152
    i32 1, label %211
    i32 2, label %218
    i32 3, label %237
    i32 4, label %342
    i32 5, label %407
    i32 6, label %471
    i32 7, label %485
    i32 8, label %648
    i32 9, label %669
    i32 10, label %717
    i32 11, label %738
    i32 12, label %766
    i32 13, label %784
    i32 14, label %808
    i32 15, label %814
    i32 16, label %905
    i32 17, label %970
    i32 18, label %1034
    i32 19, label %1048
    i32 20, label %1126
    i32 21, label %1311
    i32 22, label %1335
    i32 23, label %1354
    i32 24, label %1454
    i32 25, label %1475
    i32 26, label %1499
    i32 27, label %1521
  ]

33:                                               ; preds = %32
  %34 = load i64, ptr %0, align 8, !tbaa !49
  %35 = getelementptr inbounds i8, ptr %0, i64 8
  %36 = load i64, ptr %35, align 8, !tbaa !50
  %37 = getelementptr inbounds i8, ptr %0, i64 5480
  %38 = getelementptr inbounds i8, ptr %0, i64 5488
  %39 = getelementptr inbounds i8, ptr %0, i64 438
  store i8 0, ptr %39, align 2, !tbaa !51
  %40 = icmp sgt i64 %36, 0
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %37, i8 0, i64 56, i1 false)
  br i1 %40, label %41, label %43

41:                                               ; preds = %33
  %42 = getelementptr inbounds i8, ptr %0, i64 1440
  tail call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEllbPNS_8ae_stateE(ptr noundef nonnull %42, i64 noundef %34, i64 noundef %36, i1 noundef zeroext false, ptr noundef %1)
  br label %43

43:                                               ; preds = %41, %33
  %.not.not1275 = icmp sgt i64 %34, 0
  br i1 %.not.not1275, label %.lr.ph1278, label %._crit_edge1279

.lr.ph1278:                                       ; preds = %43
  %44 = getelementptr inbounds i8, ptr %0, i64 1048
  %45 = getelementptr inbounds i8, ptr %0, i64 5472
  %xtraiter1465 = and i64 %34, 3
  %46 = icmp ult i64 %34, 4
  br i1 %46, label %._crit_edge1279.loopexit.unr-lcssa, label %.lr.ph1278.new

.lr.ph1278.new:                                   ; preds = %.lr.ph1278
  %unroll_iter1468 = and i64 %34, 9223372036854775804
  br label %47

47:                                               ; preds = %47, %.lr.ph1278.new
  %.110601276 = phi i64 [ 0, %.lr.ph1278.new ], [ %71, %47 ]
  %niter1469 = phi i64 [ 0, %.lr.ph1278.new ], [ %niter1469.next.3, %47 ]
  %48 = load ptr, ptr %44, align 8, !tbaa !43
  %49 = getelementptr inbounds double, ptr %48, i64 %.110601276
  %50 = load double, ptr %49, align 8, !tbaa !48
  %51 = load ptr, ptr %45, align 8, !tbaa !43
  %52 = getelementptr inbounds double, ptr %51, i64 %.110601276
  store double %50, ptr %52, align 8, !tbaa !48
  %53 = or disjoint i64 %.110601276, 1
  %54 = load ptr, ptr %44, align 8, !tbaa !43
  %55 = getelementptr inbounds double, ptr %54, i64 %53
  %56 = load double, ptr %55, align 8, !tbaa !48
  %57 = load ptr, ptr %45, align 8, !tbaa !43
  %58 = getelementptr inbounds double, ptr %57, i64 %53
  store double %56, ptr %58, align 8, !tbaa !48
  %59 = or disjoint i64 %.110601276, 2
  %60 = load ptr, ptr %44, align 8, !tbaa !43
  %61 = getelementptr inbounds double, ptr %60, i64 %59
  %62 = load double, ptr %61, align 8, !tbaa !48
  %63 = load ptr, ptr %45, align 8, !tbaa !43
  %64 = getelementptr inbounds double, ptr %63, i64 %59
  store double %62, ptr %64, align 8, !tbaa !48
  %65 = or disjoint i64 %.110601276, 3
  %66 = load ptr, ptr %44, align 8, !tbaa !43
  %67 = getelementptr inbounds double, ptr %66, i64 %65
  %68 = load double, ptr %67, align 8, !tbaa !48
  %69 = load ptr, ptr %45, align 8, !tbaa !43
  %70 = getelementptr inbounds double, ptr %69, i64 %65
  store double %68, ptr %70, align 8, !tbaa !48
  %71 = add nuw nsw i64 %.110601276, 4
  %niter1469.next.3 = add i64 %niter1469, 4
  %niter1469.ncmp.3 = icmp eq i64 %niter1469.next.3, %unroll_iter1468
  br i1 %niter1469.ncmp.3, label %._crit_edge1279.loopexit.unr-lcssa, label %47, !llvm.loop !52

._crit_edge1279.loopexit.unr-lcssa:               ; preds = %47, %.lr.ph1278
  %.110601276.unr = phi i64 [ 0, %.lr.ph1278 ], [ %71, %47 ]
  %lcmp.mod1467.not = icmp eq i64 %xtraiter1465, 0
  br i1 %lcmp.mod1467.not, label %._crit_edge1279, label %.epil.preheader1464

.epil.preheader1464:                              ; preds = %._crit_edge1279.loopexit.unr-lcssa, %.epil.preheader1464
  %.110601276.epil = phi i64 [ %77, %.epil.preheader1464 ], [ %.110601276.unr, %._crit_edge1279.loopexit.unr-lcssa ]
  %epil.iter1466 = phi i64 [ %epil.iter1466.next, %.epil.preheader1464 ], [ 0, %._crit_edge1279.loopexit.unr-lcssa ]
  %72 = load ptr, ptr %44, align 8, !tbaa !43
  %73 = getelementptr inbounds double, ptr %72, i64 %.110601276.epil
  %74 = load double, ptr %73, align 8, !tbaa !48
  %75 = load ptr, ptr %45, align 8, !tbaa !43
  %76 = getelementptr inbounds double, ptr %75, i64 %.110601276.epil
  store double %74, ptr %76, align 8, !tbaa !48
  %77 = add nuw nsw i64 %.110601276.epil, 1
  %epil.iter1466.next = add i64 %epil.iter1466, 1
  %epil.iter1466.cmp.not = icmp eq i64 %epil.iter1466.next, %xtraiter1465
  br i1 %epil.iter1466.cmp.not, label %._crit_edge1279, label %.epil.preheader1464, !llvm.loop !54

._crit_edge1279:                                  ; preds = %._crit_edge1279.loopexit.unr-lcssa, %.epil.preheader1464, %43
  %.11060.lcssa = phi i64 [ 0, %43 ], [ %34, %.epil.preheader1464 ], [ %34, %._crit_edge1279.loopexit.unr-lcssa ]
  %78 = getelementptr inbounds i8, ptr %0, i64 48512
  %79 = getelementptr inbounds i8, ptr %0, i64 56
  %80 = load i64, ptr %79, align 8, !tbaa !56
  %81 = getelementptr inbounds i8, ptr %0, i64 449
  %82 = load i8, ptr %81, align 1, !tbaa !57, !range !46, !noundef !47
  %83 = trunc nuw i8 %82 to i1
  %84 = getelementptr inbounds i8, ptr %0, i64 456
  %85 = getelementptr inbounds i8, ptr %0, i64 736
  %86 = getelementptr inbounds i8, ptr %0, i64 800
  %87 = getelementptr inbounds i8, ptr %0, i64 1056
  %88 = getelementptr inbounds i8, ptr %0, i64 1136
  %89 = load i64, ptr %88, align 8, !tbaa !58
  %90 = getelementptr inbounds i8, ptr %0, i64 1144
  %91 = load i64, ptr %90, align 8, !tbaa !59
  %92 = getelementptr inbounds i8, ptr %0, i64 992
  %93 = getelementptr inbounds i8, ptr %0, i64 48
  %94 = load double, ptr %93, align 8, !tbaa !60
  %95 = getelementptr inbounds i8, ptr %0, i64 24
  %96 = load double, ptr %95, align 8, !tbaa !61
  %97 = tail call noundef zeroext i1 @_ZN11alglib_implL25minlm_minlmstepfinderinitEPNS_15minlmstepfinderElllbPNS_9ae_vectorES3_S3_PNS_9ae_matrixEllS3_ddPNS_8ae_stateE(ptr noundef nonnull %78, i64 noundef %34, i64 noundef %36, i64 noundef %80, i1 noundef zeroext %83, ptr noundef nonnull %84, ptr noundef nonnull %85, ptr noundef nonnull %86, ptr noundef nonnull %87, i64 noundef %89, i64 noundef %91, ptr noundef nonnull %92, double noundef %94, double noundef %96, ptr noundef %1)
  br i1 %97, label %99, label %98

98:                                               ; preds = %._crit_edge1279
  store i64 -3, ptr %38, align 8, !tbaa !62
  br label %1547

99:                                               ; preds = %._crit_edge1279
  %100 = getelementptr inbounds i8, ptr %0, i64 13240
  tail call void @_ZN11alglib_impl10minqpsetbcEPNS_10minqpstateEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %100, ptr noundef nonnull %85, ptr noundef nonnull %86, ptr noundef %1)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %101 = getelementptr inbounds i8, ptr %0, i64 440
  %102 = load i64, ptr %101, align 8, !tbaa !63
  %103 = icmp eq i64 %102, 1
  br i1 %103, label %104, label %195

104:                                              ; preds = %99
  %105 = getelementptr inbounds i8, ptr %0, i64 5408
  %106 = load double, ptr %105, align 8, !tbaa !64
  %107 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %106, double noundef 0.000000e+00)
  br i1 %107, label %108, label %195

108:                                              ; preds = %104
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %40, ptr noundef nonnull @.str.605, ptr noundef %1)
  br label %.loopexit

.loopexit.loopexit:                               ; preds = %._crit_edge
  %smax = tail call i64 @llvm.smax.i64(i64 %.01146, i64 0)
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %152, %108
  %.11147 = phi i64 [ %34, %108 ], [ %.01146, %152 ], [ %.01146, %.loopexit.loopexit ]
  %.11129 = phi i64 [ %36, %108 ], [ %.01128, %152 ], [ %.01128, %.loopexit.loopexit ]
  %.21061 = phi i64 [ %.11060.lcssa, %108 ], [ 0, %152 ], [ %.01128, %.loopexit.loopexit ]
  %.1 = phi i64 [ %.0, %108 ], [ %.0, %152 ], [ %smax, %.loopexit.loopexit ]
  %109 = getelementptr inbounds i8, ptr %0, i64 1440
  %110 = getelementptr inbounds i8, ptr %0, i64 456
  %111 = getelementptr inbounds i8, ptr %0, i64 992
  %112 = getelementptr inbounds i8, ptr %0, i64 736
  %113 = getelementptr inbounds i8, ptr %0, i64 800
  %114 = getelementptr inbounds i8, ptr %0, i64 5408
  %115 = load double, ptr %114, align 8, !tbaa !64
  %116 = tail call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_S3_bdPNS_8ae_stateE(ptr noundef nonnull %109, ptr noundef nonnull %110, ptr noundef nonnull %111, ptr noundef nonnull %112, ptr noundef nonnull %113, i1 noundef zeroext true, double noundef %115, ptr noundef %1)
  br i1 %116, label %.preheader, label %195

.preheader:                                       ; preds = %.loopexit
  %.not1207.not1349 = icmp sgt i64 %.11147, 0
  br i1 %.not1207.not1349, label %.lr.ph1351, label %._crit_edge1352

.lr.ph1351:                                       ; preds = %.preheader
  %117 = getelementptr inbounds i8, ptr %0, i64 3600
  %118 = getelementptr inbounds i8, ptr %0, i64 128
  %xtraiter1485 = and i64 %.11147, 3
  %119 = icmp ult i64 %.11147, 4
  br i1 %119, label %._crit_edge1352.loopexit.unr-lcssa, label %.lr.ph1351.new

.lr.ph1351.new:                                   ; preds = %.lr.ph1351
  %unroll_iter1488 = and i64 %.11147, 9223372036854775804
  br label %120

120:                                              ; preds = %120, %.lr.ph1351.new
  %.310621350 = phi i64 [ 0, %.lr.ph1351.new ], [ %144, %120 ]
  %niter1489 = phi i64 [ 0, %.lr.ph1351.new ], [ %niter1489.next.3, %120 ]
  %121 = load ptr, ptr %117, align 8, !tbaa !43
  %122 = getelementptr inbounds double, ptr %121, i64 %.310621350
  %123 = load double, ptr %122, align 8, !tbaa !48
  %124 = load ptr, ptr %118, align 8, !tbaa !43
  %125 = getelementptr inbounds double, ptr %124, i64 %.310621350
  store double %123, ptr %125, align 8, !tbaa !48
  %126 = or disjoint i64 %.310621350, 1
  %127 = load ptr, ptr %117, align 8, !tbaa !43
  %128 = getelementptr inbounds double, ptr %127, i64 %126
  %129 = load double, ptr %128, align 8, !tbaa !48
  %130 = load ptr, ptr %118, align 8, !tbaa !43
  %131 = getelementptr inbounds double, ptr %130, i64 %126
  store double %129, ptr %131, align 8, !tbaa !48
  %132 = or disjoint i64 %.310621350, 2
  %133 = load ptr, ptr %117, align 8, !tbaa !43
  %134 = getelementptr inbounds double, ptr %133, i64 %132
  %135 = load double, ptr %134, align 8, !tbaa !48
  %136 = load ptr, ptr %118, align 8, !tbaa !43
  %137 = getelementptr inbounds double, ptr %136, i64 %132
  store double %135, ptr %137, align 8, !tbaa !48
  %138 = or disjoint i64 %.310621350, 3
  %139 = load ptr, ptr %117, align 8, !tbaa !43
  %140 = getelementptr inbounds double, ptr %139, i64 %138
  %141 = load double, ptr %140, align 8, !tbaa !48
  %142 = load ptr, ptr %118, align 8, !tbaa !43
  %143 = getelementptr inbounds double, ptr %142, i64 %138
  store double %141, ptr %143, align 8, !tbaa !48
  %144 = add nuw nsw i64 %.310621350, 4
  %niter1489.next.3 = add i64 %niter1489, 4
  %niter1489.ncmp.3 = icmp eq i64 %niter1489.next.3, %unroll_iter1488
  br i1 %niter1489.ncmp.3, label %._crit_edge1352.loopexit.unr-lcssa, label %120, !llvm.loop !65

._crit_edge1352.loopexit.unr-lcssa:               ; preds = %120, %.lr.ph1351
  %.310621350.unr = phi i64 [ 0, %.lr.ph1351 ], [ %144, %120 ]
  %lcmp.mod1487.not = icmp eq i64 %xtraiter1485, 0
  br i1 %lcmp.mod1487.not, label %._crit_edge1352, label %.epil.preheader1484

.epil.preheader1484:                              ; preds = %._crit_edge1352.loopexit.unr-lcssa, %.epil.preheader1484
  %.310621350.epil = phi i64 [ %150, %.epil.preheader1484 ], [ %.310621350.unr, %._crit_edge1352.loopexit.unr-lcssa ]
  %epil.iter1486 = phi i64 [ %epil.iter1486.next, %.epil.preheader1484 ], [ 0, %._crit_edge1352.loopexit.unr-lcssa ]
  %145 = load ptr, ptr %117, align 8, !tbaa !43
  %146 = getelementptr inbounds double, ptr %145, i64 %.310621350.epil
  %147 = load double, ptr %146, align 8, !tbaa !48
  %148 = load ptr, ptr %118, align 8, !tbaa !43
  %149 = getelementptr inbounds double, ptr %148, i64 %.310621350.epil
  store double %147, ptr %149, align 8, !tbaa !48
  %150 = add nuw nsw i64 %.310621350.epil, 1
  %epil.iter1486.next = add i64 %epil.iter1486, 1
  %epil.iter1486.cmp.not = icmp eq i64 %epil.iter1486.next, %xtraiter1485
  br i1 %epil.iter1486.cmp.not, label %._crit_edge1352, label %.epil.preheader1484, !llvm.loop !66

._crit_edge1352:                                  ; preds = %._crit_edge1352.loopexit.unr-lcssa, %.epil.preheader1484, %.preheader
  %.31062.lcssa = phi i64 [ 0, %.preheader ], [ %.11147, %.epil.preheader1484 ], [ %.11147, %._crit_edge1352.loopexit.unr-lcssa ]
  %151 = getelementptr inbounds i8, ptr %0, i64 435
  store i8 1, ptr %151, align 1, !tbaa !67
  br label %1523

152:                                              ; preds = %32
  %153 = getelementptr inbounds i8, ptr %0, i64 435
  store i8 0, ptr %153, align 1, !tbaa !67
  %.not.not11891269 = icmp sgt i64 %.01128, 0
  br i1 %.not.not11891269, label %.lr.ph1272, label %.loopexit

.lr.ph1272:                                       ; preds = %152
  %154 = getelementptr inbounds i8, ptr %0, i64 200
  %155 = getelementptr inbounds i8, ptr %0, i64 3664
  %.not1208.not1265 = icmp sgt i64 %.01146, 0
  %156 = getelementptr inbounds i8, ptr %0, i64 280
  %157 = getelementptr inbounds i8, ptr %0, i64 3744
  %xtraiter1459 = and i64 %.01146, 1
  %158 = icmp eq i64 %.01146, 1
  %unroll_iter1462 = and i64 %.01146, 9223372036854775806
  %lcmp.mod1461.not = icmp eq i64 %xtraiter1459, 0
  br label %159

159:                                              ; preds = %.lr.ph1272, %._crit_edge
  %.410631270 = phi i64 [ 0, %.lr.ph1272 ], [ %194, %._crit_edge ]
  %160 = load ptr, ptr %154, align 8, !tbaa !43
  %161 = getelementptr inbounds double, ptr %160, i64 %.410631270
  %162 = load double, ptr %161, align 8, !tbaa !48
  %163 = load ptr, ptr %155, align 8, !tbaa !43
  %164 = getelementptr inbounds double, ptr %163, i64 %.410631270
  store double %162, ptr %164, align 8, !tbaa !48
  br i1 %.not1208.not1265, label %.lr.ph1267.preheader, label %._crit_edge

.lr.ph1267.preheader:                             ; preds = %159
  br i1 %158, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1267

.lr.ph1267:                                       ; preds = %.lr.ph1267.preheader, %.lr.ph1267
  %.31266 = phi i64 [ %184, %.lr.ph1267 ], [ 0, %.lr.ph1267.preheader ]
  %niter1463 = phi i64 [ %niter1463.next.1, %.lr.ph1267 ], [ 0, %.lr.ph1267.preheader ]
  %165 = load ptr, ptr %156, align 8, !tbaa !43
  %166 = getelementptr inbounds ptr, ptr %165, i64 %.410631270
  %167 = load ptr, ptr %166, align 8, !tbaa !68
  %168 = getelementptr inbounds double, ptr %167, i64 %.31266
  %169 = load double, ptr %168, align 8, !tbaa !48
  %170 = load ptr, ptr %157, align 8, !tbaa !43
  %171 = getelementptr inbounds ptr, ptr %170, i64 %.410631270
  %172 = load ptr, ptr %171, align 8, !tbaa !68
  %173 = getelementptr inbounds double, ptr %172, i64 %.31266
  store double %169, ptr %173, align 8, !tbaa !48
  %174 = or disjoint i64 %.31266, 1
  %175 = load ptr, ptr %156, align 8, !tbaa !43
  %176 = getelementptr inbounds ptr, ptr %175, i64 %.410631270
  %177 = load ptr, ptr %176, align 8, !tbaa !68
  %178 = getelementptr inbounds double, ptr %177, i64 %174
  %179 = load double, ptr %178, align 8, !tbaa !48
  %180 = load ptr, ptr %157, align 8, !tbaa !43
  %181 = getelementptr inbounds ptr, ptr %180, i64 %.410631270
  %182 = load ptr, ptr %181, align 8, !tbaa !68
  %183 = getelementptr inbounds double, ptr %182, i64 %174
  store double %179, ptr %183, align 8, !tbaa !48
  %184 = add nuw nsw i64 %.31266, 2
  %niter1463.next.1 = add i64 %niter1463, 2
  %niter1463.ncmp.1 = icmp eq i64 %niter1463.next.1, %unroll_iter1462
  br i1 %niter1463.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1267, !llvm.loop !69

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph1267, %.lr.ph1267.preheader
  %.31266.unr = phi i64 [ 0, %.lr.ph1267.preheader ], [ %184, %.lr.ph1267 ]
  br i1 %lcmp.mod1461.not, label %._crit_edge, label %.lr.ph1267.epil

.lr.ph1267.epil:                                  ; preds = %._crit_edge.loopexit.unr-lcssa
  %185 = load ptr, ptr %156, align 8, !tbaa !43
  %186 = getelementptr inbounds ptr, ptr %185, i64 %.410631270
  %187 = load ptr, ptr %186, align 8, !tbaa !68
  %188 = getelementptr inbounds double, ptr %187, i64 %.31266.unr
  %189 = load double, ptr %188, align 8, !tbaa !48
  %190 = load ptr, ptr %157, align 8, !tbaa !43
  %191 = getelementptr inbounds ptr, ptr %190, i64 %.410631270
  %192 = load ptr, ptr %191, align 8, !tbaa !68
  %193 = getelementptr inbounds double, ptr %192, i64 %.31266.unr
  store double %189, ptr %193, align 8, !tbaa !48
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph1267.epil, %._crit_edge.loopexit.unr-lcssa, %159
  %194 = add nuw nsw i64 %.410631270, 1
  %exitcond1385.not = icmp eq i64 %194, %.01128
  br i1 %exitcond1385.not, label %.loopexit.loopexit, label %159, !llvm.loop !70

195:                                              ; preds = %.loopexit, %99, %104
  %.21148 = phi i64 [ %.11147, %.loopexit ], [ %34, %104 ], [ %34, %99 ]
  %.21130 = phi i64 [ %.11129, %.loopexit ], [ %36, %104 ], [ %36, %99 ]
  %.51064 = phi i64 [ %.21061, %.loopexit ], [ %.11060.lcssa, %104 ], [ %.11060.lcssa, %99 ]
  %.4 = phi i64 [ %.1, %.loopexit ], [ %.0, %104 ], [ %.0, %99 ]
  %196 = getelementptr inbounds i8, ptr %0, i64 40
  %197 = load i8, ptr %196, align 8, !tbaa !71, !range !46, !noundef !47
  %198 = trunc nuw i8 %197 to i1
  br i1 %198, label %199, label %239

199:                                              ; preds = %195
  %200 = getelementptr inbounds i8, ptr %0, i64 128
  %201 = load ptr, ptr %200, align 8, !tbaa !43
  %202 = getelementptr inbounds i8, ptr %0, i64 512
  %203 = load ptr, ptr %202, align 8, !tbaa !43
  %204 = add nsw i64 %.21148, -1
  %205 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %204)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %201, i64 noundef 1, ptr noundef %203, i64 noundef 1, i64 noundef %205)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %206 = getelementptr inbounds i8, ptr %0, i64 448
  %207 = load i8, ptr %206, align 8, !tbaa !72, !range !46, !noundef !47
  %208 = trunc nuw i8 %207 to i1
  br i1 %208, label %209, label %213

209:                                              ; preds = %199
  %210 = getelementptr inbounds i8, ptr %0, i64 432
  store i8 1, ptr %210, align 8, !tbaa !73
  br label %1523

211:                                              ; preds = %32
  %212 = getelementptr inbounds i8, ptr %0, i64 432
  store i8 0, ptr %212, align 8, !tbaa !73
  br label %226

213:                                              ; preds = %199
  %214 = getelementptr inbounds i8, ptr %0, i64 449
  %215 = load i8, ptr %214, align 1, !tbaa !57, !range !46, !noundef !47
  %216 = trunc nuw i8 %215 to i1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %216, ptr noundef nonnull @.str.606, ptr noundef %1)
  %217 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %217, align 4, !tbaa !74
  br label %1523

218:                                              ; preds = %32
  %219 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 0, ptr %219, align 4, !tbaa !74
  %220 = getelementptr inbounds i8, ptr %0, i64 200
  %221 = load ptr, ptr %220, align 8, !tbaa !43
  %222 = add nsw i64 %.01128, -1
  %223 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %222)
  %224 = tail call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %221, i64 noundef 1, ptr noundef %221, i64 noundef 1, i64 noundef %223)
  %225 = getelementptr inbounds i8, ptr %0, i64 136
  store double %224, ptr %225, align 8, !tbaa !75
  br label %226

226:                                              ; preds = %218, %211
  %.11098 = phi double [ %.01097, %211 ], [ %224, %218 ]
  %227 = getelementptr inbounds i8, ptr %0, i64 5496
  %228 = load i64, ptr %227, align 8, !tbaa !76
  %229 = add nsw i64 %228, 1
  store i64 %229, ptr %227, align 8, !tbaa !76
  %230 = getelementptr inbounds i8, ptr %0, i64 128
  %231 = load ptr, ptr %230, align 8, !tbaa !43
  %232 = getelementptr inbounds i8, ptr %0, i64 512
  %233 = load ptr, ptr %232, align 8, !tbaa !43
  %234 = add nsw i64 %.01146, -1
  %235 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %234)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %231, i64 noundef 1, ptr noundef %233, i64 noundef 1, i64 noundef %235)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %236 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %236, align 1, !tbaa !77
  br label %1523

237:                                              ; preds = %32
  %238 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %238, align 1, !tbaa !77
  br label %239

239:                                              ; preds = %195, %237
  %.31149 = phi i64 [ %.21148, %195 ], [ %.01146, %237 ]
  %.31131 = phi i64 [ %.21130, %195 ], [ %.01128, %237 ]
  %.61065 = phi i64 [ %.51064, %195 ], [ %.01059, %237 ]
  %.5 = phi i64 [ %.4, %195 ], [ %.0, %237 ]
  %240 = getelementptr inbounds i8, ptr %0, i64 438
  %241 = load i8, ptr %240, align 2, !tbaa !51, !range !46, !noundef !47
  %242 = trunc nuw i8 %241 to i1
  br i1 %242, label %243, label %251

243:                                              ; preds = %239
  %244 = getelementptr inbounds i8, ptr %0, i64 128
  %245 = load ptr, ptr %244, align 8, !tbaa !43
  %246 = getelementptr inbounds i8, ptr %0, i64 512
  %247 = load ptr, ptr %246, align 8, !tbaa !43
  %248 = add nsw i64 %.31149, -1
  %249 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %248)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %245, i64 noundef 1, ptr noundef %247, i64 noundef 1, i64 noundef %249)
  %250 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 8, ptr %250, align 8, !tbaa !62
  br label %1547

251:                                              ; preds = %239
  %252 = getelementptr inbounds i8, ptr %0, i64 1152
  store <2 x double> <double -1.000000e+300, double 1.000000e+00>, ptr %252, align 8, !tbaa !48
  %253 = getelementptr inbounds i8, ptr %0, i64 56
  %254 = load i64, ptr %253, align 8, !tbaa !56
  %255 = add nsw i64 %254, 1
  %256 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 %255, ptr %256, align 8, !tbaa !78
  %257 = getelementptr inbounds i8, ptr %0, i64 1432
  store i8 0, ptr %257, align 8, !tbaa !79
  %258 = getelementptr inbounds i8, ptr %0, i64 1433
  store i8 0, ptr %258, align 1, !tbaa !80
  %259 = getelementptr inbounds i8, ptr %0, i64 440
  %260 = load i64, ptr %259, align 8, !tbaa !63
  %261 = icmp eq i64 %260, 2
  br i1 %261, label %816, label %262

262:                                              ; preds = %251, %810, %696
  %.41150 = phi i64 [ %.31149, %251 ], [ %.71153.ph, %696 ], [ %.81154, %810 ]
  %.41132 = phi i64 [ %.31131, %251 ], [ %.71135.ph, %696 ], [ %.81136, %810 ]
  %.21099 = phi double [ %.01097, %251 ], [ %.61103.ph, %696 ], [ %.71104, %810 ]
  %.11080 = phi double [ %.01079, %251 ], [ %.41083.ph, %696 ], [ %.51084, %810 ]
  %.71066 = phi i64 [ %.61065, %251 ], [ %.151074.ph, %696 ], [ %.161075, %810 ]
  %.6 = phi i64 [ %.5, %251 ], [ %.9.ph, %696 ], [ %.10, %810 ]
  %263 = getelementptr inbounds i8, ptr %0, i64 440
  %264 = load i64, ptr %263, align 8, !tbaa !63
  %spec.select = icmp ult i64 %264, 2
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %spec.select, ptr noundef nonnull @.str.605, ptr noundef %1)
  %265 = getelementptr inbounds i8, ptr %0, i64 1168
  %266 = load i64, ptr %265, align 8, !tbaa !78
  %267 = getelementptr inbounds i8, ptr %0, i64 56
  %268 = load i64, ptr %267, align 8, !tbaa !56
  %269 = icmp sgt i64 %266, %268
  br i1 %269, label %278, label %270

270:                                              ; preds = %262
  %271 = getelementptr inbounds i8, ptr %0, i64 1432
  %272 = load i8, ptr %271, align 8, !tbaa !79, !range !46, !noundef !47
  %273 = trunc nuw i8 %272 to i1
  br i1 %273, label %274, label %278

274:                                              ; preds = %270
  %275 = getelementptr inbounds i8, ptr %0, i64 1433
  %276 = load i8, ptr %275, align 1, !tbaa !80, !range !46, !noundef !47
  %277 = trunc nuw i8 %276 to i1
  br i1 %277, label %491, label %278

278:                                              ; preds = %274, %270, %262
  %279 = load i64, ptr %263, align 8, !tbaa !63
  %.not1194 = icmp eq i64 %279, 0
  br i1 %.not1194, label %280, label %477

280:                                              ; preds = %278
  %281 = getelementptr inbounds i8, ptr %0, i64 449
  %282 = load i8, ptr %281, align 1, !tbaa !57, !range !46, !noundef !47
  %283 = trunc nuw i8 %282 to i1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %283, ptr noundef nonnull @.str.607, ptr noundef %1)
  br label %284

284:                                              ; preds = %.loopexit1224, %280
  %.51151 = phi i64 [ %.41150, %280 ], [ %.01146, %.loopexit1224 ]
  %.51133 = phi i64 [ %.41132, %280 ], [ %.01128, %.loopexit1224 ]
  %.31100 = phi double [ %.21099, %280 ], [ %.41101, %.loopexit1224 ]
  %.21081 = phi double [ %.11080, %280 ], [ %.01079, %.loopexit1224 ]
  %.81067 = phi i64 [ %.71066, %280 ], [ %.101069, %.loopexit1224 ]
  %.7 = phi i64 [ 0, %280 ], [ %468, %.loopexit1224 ]
  %285 = add nsw i64 %.51151, -1
  %.not1195 = icmp slt i64 %.7, %.51151
  %286 = getelementptr inbounds i8, ptr %0, i64 128
  %287 = load ptr, ptr %286, align 8, !tbaa !43
  %288 = getelementptr inbounds i8, ptr %0, i64 512
  %289 = load ptr, ptr %288, align 8, !tbaa !43
  %290 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %285)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %287, i64 noundef 1, ptr noundef %289, i64 noundef 1, i64 noundef %290)
  br i1 %.not1195, label %291, label %469

291:                                              ; preds = %284
  %292 = load ptr, ptr %286, align 8, !tbaa !43
  %293 = getelementptr inbounds double, ptr %292, i64 %.7
  %294 = load double, ptr %293, align 8, !tbaa !48
  %295 = getelementptr inbounds i8, ptr %0, i64 1048
  %296 = load ptr, ptr %295, align 8, !tbaa !43
  %297 = getelementptr inbounds double, ptr %296, i64 %.7
  %298 = load double, ptr %297, align 8, !tbaa !48
  %299 = getelementptr inbounds i8, ptr %0, i64 16
  %300 = load double, ptr %299, align 8, !tbaa !81
  %301 = fneg double %298
  %302 = call double @llvm.fmuladd.f64(double %301, double %300, double %294)
  store double %302, ptr %293, align 8, !tbaa !48
  %303 = getelementptr inbounds i8, ptr %0, i64 920
  %304 = load ptr, ptr %303, align 8, !tbaa !43
  %305 = getelementptr inbounds i8, ptr %304, i64 %.7
  %306 = load i8, ptr %305, align 1, !tbaa !45, !range !46, !noundef !47
  %307 = trunc nuw i8 %306 to i1
  br i1 %307, label %308, label %319

308:                                              ; preds = %291
  %309 = load ptr, ptr %286, align 8, !tbaa !43
  %310 = getelementptr inbounds double, ptr %309, i64 %.7
  %311 = load double, ptr %310, align 8, !tbaa !48
  %312 = getelementptr inbounds i8, ptr %0, i64 792
  %313 = load ptr, ptr %312, align 8, !tbaa !43
  %314 = getelementptr inbounds double, ptr %313, i64 %.7
  %315 = load double, ptr %314, align 8, !tbaa !48
  %316 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %311, double noundef %315, ptr noundef %1)
  %317 = load ptr, ptr %286, align 8, !tbaa !43
  %318 = getelementptr inbounds double, ptr %317, i64 %.7
  store double %316, ptr %318, align 8, !tbaa !48
  br label %319

319:                                              ; preds = %308, %291
  %320 = getelementptr inbounds i8, ptr %0, i64 984
  %321 = load ptr, ptr %320, align 8, !tbaa !43
  %322 = getelementptr inbounds i8, ptr %321, i64 %.7
  %323 = load i8, ptr %322, align 1, !tbaa !45, !range !46, !noundef !47
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %336

325:                                              ; preds = %319
  %326 = load ptr, ptr %286, align 8, !tbaa !43
  %327 = getelementptr inbounds double, ptr %326, i64 %.7
  %328 = load double, ptr %327, align 8, !tbaa !48
  %329 = getelementptr inbounds i8, ptr %0, i64 856
  %330 = load ptr, ptr %329, align 8, !tbaa !43
  %331 = getelementptr inbounds double, ptr %330, i64 %.7
  %332 = load double, ptr %331, align 8, !tbaa !48
  %333 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %328, double noundef %332, ptr noundef %1)
  %334 = load ptr, ptr %286, align 8, !tbaa !43
  %335 = getelementptr inbounds double, ptr %334, i64 %.7
  store double %333, ptr %335, align 8, !tbaa !48
  br label %336

336:                                              ; preds = %325, %319
  %337 = load ptr, ptr %286, align 8, !tbaa !43
  %338 = getelementptr inbounds double, ptr %337, i64 %.7
  %339 = load double, ptr %338, align 8, !tbaa !48
  %340 = getelementptr inbounds i8, ptr %0, i64 5944
  store double %339, ptr %340, align 8, !tbaa !82
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %341 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %341, align 4, !tbaa !74
  br label %1523

342:                                              ; preds = %32
  %343 = getelementptr inbounds i8, ptr %0, i64 5496
  %344 = load i64, ptr %343, align 8, !tbaa !76
  %345 = add nsw i64 %344, 1
  store i64 %345, ptr %343, align 8, !tbaa !76
  %346 = getelementptr inbounds i8, ptr %0, i64 6016
  %347 = load ptr, ptr %346, align 8, !tbaa !43
  %348 = getelementptr inbounds i8, ptr %0, i64 200
  %349 = load ptr, ptr %348, align 8, !tbaa !43
  %350 = add nsw i64 %.01128, -1
  %351 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %350)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %347, i64 noundef 1, ptr noundef %349, i64 noundef 1, i64 noundef %351)
  %352 = getelementptr inbounds i8, ptr %0, i64 128
  %353 = load ptr, ptr %352, align 8, !tbaa !43
  %354 = getelementptr inbounds i8, ptr %0, i64 512
  %355 = load ptr, ptr %354, align 8, !tbaa !43
  %356 = add nsw i64 %.01146, -1
  %357 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %356)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %353, i64 noundef 1, ptr noundef %355, i64 noundef 1, i64 noundef %357)
  %358 = load ptr, ptr %352, align 8, !tbaa !43
  %359 = getelementptr inbounds double, ptr %358, i64 %.0
  %360 = load double, ptr %359, align 8, !tbaa !48
  %361 = getelementptr inbounds i8, ptr %0, i64 1048
  %362 = load ptr, ptr %361, align 8, !tbaa !43
  %363 = getelementptr inbounds double, ptr %362, i64 %.0
  %364 = load double, ptr %363, align 8, !tbaa !48
  %365 = getelementptr inbounds i8, ptr %0, i64 16
  %366 = load double, ptr %365, align 8, !tbaa !81
  %367 = tail call double @llvm.fmuladd.f64(double %364, double %366, double %360)
  store double %367, ptr %359, align 8, !tbaa !48
  %368 = getelementptr inbounds i8, ptr %0, i64 920
  %369 = load ptr, ptr %368, align 8, !tbaa !43
  %370 = getelementptr inbounds i8, ptr %369, i64 %.0
  %371 = load i8, ptr %370, align 1, !tbaa !45, !range !46, !noundef !47
  %372 = trunc nuw i8 %371 to i1
  br i1 %372, label %373, label %384

373:                                              ; preds = %342
  %374 = load ptr, ptr %352, align 8, !tbaa !43
  %375 = getelementptr inbounds double, ptr %374, i64 %.0
  %376 = load double, ptr %375, align 8, !tbaa !48
  %377 = getelementptr inbounds i8, ptr %0, i64 792
  %378 = load ptr, ptr %377, align 8, !tbaa !43
  %379 = getelementptr inbounds double, ptr %378, i64 %.0
  %380 = load double, ptr %379, align 8, !tbaa !48
  %381 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %376, double noundef %380, ptr noundef %1)
  %382 = load ptr, ptr %352, align 8, !tbaa !43
  %383 = getelementptr inbounds double, ptr %382, i64 %.0
  store double %381, ptr %383, align 8, !tbaa !48
  br label %384

384:                                              ; preds = %373, %342
  %385 = getelementptr inbounds i8, ptr %0, i64 984
  %386 = load ptr, ptr %385, align 8, !tbaa !43
  %387 = getelementptr inbounds i8, ptr %386, i64 %.0
  %388 = load i8, ptr %387, align 1, !tbaa !45, !range !46, !noundef !47
  %389 = trunc nuw i8 %388 to i1
  br i1 %389, label %390, label %401

390:                                              ; preds = %384
  %391 = load ptr, ptr %352, align 8, !tbaa !43
  %392 = getelementptr inbounds double, ptr %391, i64 %.0
  %393 = load double, ptr %392, align 8, !tbaa !48
  %394 = getelementptr inbounds i8, ptr %0, i64 856
  %395 = load ptr, ptr %394, align 8, !tbaa !43
  %396 = getelementptr inbounds double, ptr %395, i64 %.0
  %397 = load double, ptr %396, align 8, !tbaa !48
  %398 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %393, double noundef %397, ptr noundef %1)
  %399 = load ptr, ptr %352, align 8, !tbaa !43
  %400 = getelementptr inbounds double, ptr %399, i64 %.0
  store double %398, ptr %400, align 8, !tbaa !48
  br label %401

401:                                              ; preds = %390, %384
  %402 = load ptr, ptr %352, align 8, !tbaa !43
  %403 = getelementptr inbounds double, ptr %402, i64 %.0
  %404 = load double, ptr %403, align 8, !tbaa !48
  %405 = getelementptr inbounds i8, ptr %0, i64 5952
  store double %404, ptr %405, align 8, !tbaa !83
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %406 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %406, align 4, !tbaa !74
  br label %1523

407:                                              ; preds = %32
  %408 = getelementptr inbounds i8, ptr %0, i64 5496
  %409 = load i64, ptr %408, align 8, !tbaa !76
  %410 = add nsw i64 %409, 1
  store i64 %410, ptr %408, align 8, !tbaa !76
  %411 = getelementptr inbounds i8, ptr %0, i64 6080
  %412 = load ptr, ptr %411, align 8, !tbaa !43
  %413 = getelementptr inbounds i8, ptr %0, i64 200
  %414 = load ptr, ptr %413, align 8, !tbaa !43
  %415 = add nsw i64 %.01128, -1
  %416 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %415)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %412, i64 noundef 1, ptr noundef %414, i64 noundef 1, i64 noundef %416)
  %417 = getelementptr inbounds i8, ptr %0, i64 5952
  %418 = load double, ptr %417, align 8, !tbaa !83
  %419 = getelementptr inbounds i8, ptr %0, i64 5944
  %420 = load double, ptr %419, align 8, !tbaa !82
  %421 = fsub double %418, %420
  %422 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %421, double noundef 0.000000e+00)
  br i1 %422, label %425, label %.preheader1223

.preheader1223:                                   ; preds = %407
  %.not.not11881261 = icmp sgt i64 %.01128, 0
  br i1 %.not.not11881261, label %.lr.ph1263, label %.loopexit1224

.lr.ph1263:                                       ; preds = %.preheader1223
  %423 = getelementptr inbounds i8, ptr %0, i64 280
  %xtraiter1454 = and i64 %.01128, 3
  %424 = icmp ult i64 %.01128, 4
  br i1 %424, label %.loopexit1224.loopexit.unr-lcssa, label %.lr.ph1263.new

.lr.ph1263.new:                                   ; preds = %.lr.ph1263
  %unroll_iter1457 = and i64 %.01128, 9223372036854775804
  br label %442

425:                                              ; preds = %407
  %426 = fdiv double 1.000000e+00, %421
  %427 = getelementptr inbounds i8, ptr %0, i64 280
  %428 = load ptr, ptr %427, align 8, !tbaa !43
  %429 = load ptr, ptr %428, align 8, !tbaa !68
  %430 = getelementptr inbounds double, ptr %429, i64 %.0
  %431 = getelementptr inbounds i8, ptr %0, i64 224
  %432 = load i64, ptr %431, align 8, !tbaa !84
  %433 = load ptr, ptr %411, align 8, !tbaa !43
  %434 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %415)
  tail call void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef %430, i64 noundef %432, ptr noundef %433, i64 noundef 1, i64 noundef %434, double noundef %426)
  %435 = load ptr, ptr %427, align 8, !tbaa !43
  %436 = load ptr, ptr %435, align 8, !tbaa !68
  %437 = getelementptr inbounds double, ptr %436, i64 %.0
  %438 = load i64, ptr %431, align 8, !tbaa !84
  %439 = getelementptr inbounds i8, ptr %0, i64 6016
  %440 = load ptr, ptr %439, align 8, !tbaa !43
  %441 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %415)
  tail call void @_ZN11alglib_impl9ae_v_subdEPdlPKdlld(ptr noundef %437, i64 noundef %438, ptr noundef %440, i64 noundef 1, i64 noundef %441, double noundef %426)
  br label %.loopexit1224

442:                                              ; preds = %442, %.lr.ph1263.new
  %.910681262 = phi i64 [ 0, %.lr.ph1263.new ], [ %462, %442 ]
  %niter1458 = phi i64 [ 0, %.lr.ph1263.new ], [ %niter1458.next.3, %442 ]
  %443 = load ptr, ptr %423, align 8, !tbaa !43
  %444 = getelementptr inbounds ptr, ptr %443, i64 %.910681262
  %445 = load ptr, ptr %444, align 8, !tbaa !68
  %446 = getelementptr inbounds double, ptr %445, i64 %.0
  store double 0.000000e+00, ptr %446, align 8, !tbaa !48
  %447 = or disjoint i64 %.910681262, 1
  %448 = load ptr, ptr %423, align 8, !tbaa !43
  %449 = getelementptr inbounds ptr, ptr %448, i64 %447
  %450 = load ptr, ptr %449, align 8, !tbaa !68
  %451 = getelementptr inbounds double, ptr %450, i64 %.0
  store double 0.000000e+00, ptr %451, align 8, !tbaa !48
  %452 = or disjoint i64 %.910681262, 2
  %453 = load ptr, ptr %423, align 8, !tbaa !43
  %454 = getelementptr inbounds ptr, ptr %453, i64 %452
  %455 = load ptr, ptr %454, align 8, !tbaa !68
  %456 = getelementptr inbounds double, ptr %455, i64 %.0
  store double 0.000000e+00, ptr %456, align 8, !tbaa !48
  %457 = or disjoint i64 %.910681262, 3
  %458 = load ptr, ptr %423, align 8, !tbaa !43
  %459 = getelementptr inbounds ptr, ptr %458, i64 %457
  %460 = load ptr, ptr %459, align 8, !tbaa !68
  %461 = getelementptr inbounds double, ptr %460, i64 %.0
  store double 0.000000e+00, ptr %461, align 8, !tbaa !48
  %462 = add nuw nsw i64 %.910681262, 4
  %niter1458.next.3 = add i64 %niter1458, 4
  %niter1458.ncmp.3 = icmp eq i64 %niter1458.next.3, %unroll_iter1457
  br i1 %niter1458.ncmp.3, label %.loopexit1224.loopexit.unr-lcssa, label %442, !llvm.loop !85

.loopexit1224.loopexit.unr-lcssa:                 ; preds = %442, %.lr.ph1263
  %.910681262.unr = phi i64 [ 0, %.lr.ph1263 ], [ %462, %442 ]
  %lcmp.mod1456.not = icmp eq i64 %xtraiter1454, 0
  br i1 %lcmp.mod1456.not, label %.loopexit1224, label %.epil.preheader1453

.epil.preheader1453:                              ; preds = %.loopexit1224.loopexit.unr-lcssa, %.epil.preheader1453
  %.910681262.epil = phi i64 [ %467, %.epil.preheader1453 ], [ %.910681262.unr, %.loopexit1224.loopexit.unr-lcssa ]
  %epil.iter1455 = phi i64 [ %epil.iter1455.next, %.epil.preheader1453 ], [ 0, %.loopexit1224.loopexit.unr-lcssa ]
  %463 = load ptr, ptr %423, align 8, !tbaa !43
  %464 = getelementptr inbounds ptr, ptr %463, i64 %.910681262.epil
  %465 = load ptr, ptr %464, align 8, !tbaa !68
  %466 = getelementptr inbounds double, ptr %465, i64 %.0
  store double 0.000000e+00, ptr %466, align 8, !tbaa !48
  %467 = add nuw nsw i64 %.910681262.epil, 1
  %epil.iter1455.next = add i64 %epil.iter1455, 1
  %epil.iter1455.cmp.not = icmp eq i64 %epil.iter1455.next, %xtraiter1454
  br i1 %epil.iter1455.cmp.not, label %.loopexit1224, label %.epil.preheader1453, !llvm.loop !86

.loopexit1224:                                    ; preds = %.loopexit1224.loopexit.unr-lcssa, %.epil.preheader1453, %.preheader1223, %425
  %.41101 = phi double [ %426, %425 ], [ %421, %.preheader1223 ], [ %421, %.epil.preheader1453 ], [ %421, %.loopexit1224.loopexit.unr-lcssa ]
  %.101069 = phi i64 [ %.01059, %425 ], [ 0, %.preheader1223 ], [ %.01128, %.epil.preheader1453 ], [ %.01128, %.loopexit1224.loopexit.unr-lcssa ]
  %468 = add nsw i64 %.0, 1
  br label %284

469:                                              ; preds = %284
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %470 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %470, align 4, !tbaa !74
  br label %1523

471:                                              ; preds = %32
  %472 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 0, ptr %472, align 4, !tbaa !74
  %473 = getelementptr inbounds i8, ptr %0, i64 5496
  %474 = load <2 x i64>, ptr %473, align 8, !tbaa !44
  %475 = add nsw <2 x i64> %474, <i64 1, i64 1>
  store <2 x i64> %475, ptr %473, align 8, !tbaa !44
  %476 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 0, ptr %476, align 8, !tbaa !78
  br label %530

477:                                              ; preds = %278
  %478 = getelementptr inbounds i8, ptr %0, i64 128
  %479 = load ptr, ptr %478, align 8, !tbaa !43
  %480 = getelementptr inbounds i8, ptr %0, i64 512
  %481 = load ptr, ptr %480, align 8, !tbaa !43
  %482 = add nsw i64 %.41150, -1
  %483 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %482)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %479, i64 noundef 1, ptr noundef %481, i64 noundef 1, i64 noundef %483)
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %484 = getelementptr inbounds i8, ptr %0, i64 435
  store i8 1, ptr %484, align 1, !tbaa !67
  br label %1523

485:                                              ; preds = %32
  %486 = getelementptr inbounds i8, ptr %0, i64 435
  store i8 0, ptr %486, align 1, !tbaa !67
  %487 = getelementptr inbounds i8, ptr %0, i64 5496
  %488 = load <2 x i64>, ptr %487, align 8, !tbaa !44
  %489 = add nsw <2 x i64> %488, <i64 1, i64 1>
  store <2 x i64> %489, ptr %487, align 8, !tbaa !44
  %490 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 0, ptr %490, align 8, !tbaa !78
  br label %530

491:                                              ; preds = %274
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.608, ptr noundef %1)
  %492 = getelementptr inbounds i8, ptr %0, i64 1360
  %493 = load ptr, ptr %492, align 8, !tbaa !43
  %494 = add nsw i64 %.41150, -1
  %495 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %494)
  %496 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %493, i64 noundef 1, ptr noundef %493, i64 noundef 1, i64 noundef %495)
  %497 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %496, double noundef 0.000000e+00)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %497, ptr noundef nonnull @.str.609, ptr noundef %1)
  %.not.not11901281 = icmp sgt i64 %.41132, 0
  br i1 %.not.not11901281, label %.lr.ph1284, label %._crit_edge1285

.lr.ph1284:                                       ; preds = %491
  %498 = getelementptr inbounds i8, ptr %0, i64 280
  %499 = getelementptr inbounds i8, ptr %0, i64 1424
  br label %500

500:                                              ; preds = %.lr.ph1284, %500
  %.1110701282 = phi i64 [ 0, %.lr.ph1284 ], [ %517, %500 ]
  %501 = load ptr, ptr %498, align 8, !tbaa !43
  %502 = getelementptr inbounds ptr, ptr %501, i64 %.1110701282
  %503 = load ptr, ptr %502, align 8, !tbaa !68
  %504 = load ptr, ptr %492, align 8, !tbaa !43
  %505 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %494)
  %506 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %503, i64 noundef 1, ptr noundef %504, i64 noundef 1, i64 noundef %505)
  %507 = load ptr, ptr %499, align 8, !tbaa !43
  %508 = getelementptr inbounds double, ptr %507, i64 %.1110701282
  %509 = load double, ptr %508, align 8, !tbaa !48
  %510 = fsub double %509, %506
  %511 = fdiv double %510, %496
  %512 = load ptr, ptr %498, align 8, !tbaa !43
  %513 = getelementptr inbounds ptr, ptr %512, i64 %.1110701282
  %514 = load ptr, ptr %513, align 8, !tbaa !68
  %515 = load ptr, ptr %492, align 8, !tbaa !43
  %516 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %494)
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %514, i64 noundef 1, ptr noundef %515, i64 noundef 1, i64 noundef %516, double noundef %511)
  %517 = add nuw nsw i64 %.1110701282, 1
  %exitcond1387.not = icmp eq i64 %517, %.41132
  br i1 %exitcond1387.not, label %._crit_edge1285, label %500, !llvm.loop !87

._crit_edge1285:                                  ; preds = %500, %491
  %518 = add nsw i64 %.41132, -1
  %519 = getelementptr inbounds i8, ptr %0, i64 200
  %520 = load ptr, ptr %519, align 8, !tbaa !43
  %521 = getelementptr inbounds i8, ptr %0, i64 584
  %522 = load ptr, ptr %521, align 8, !tbaa !43
  %523 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %518)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %520, i64 noundef 1, ptr noundef %522, i64 noundef 1, i64 noundef %523)
  %524 = load ptr, ptr %519, align 8, !tbaa !43
  %525 = getelementptr inbounds i8, ptr %0, i64 1424
  %526 = load ptr, ptr %525, align 8, !tbaa !43
  %527 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %518)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %524, i64 noundef 1, ptr noundef %526, i64 noundef 1, i64 noundef %527)
  %528 = load i64, ptr %265, align 8, !tbaa !78
  %529 = add nsw i64 %528, 1
  store i64 %529, ptr %265, align 8, !tbaa !78
  br label %530

530:                                              ; preds = %471, %485, %._crit_edge1285
  %.61152 = phi i64 [ %.41150, %._crit_edge1285 ], [ %.01146, %471 ], [ %.01146, %485 ]
  %.61134 = phi i64 [ %.41132, %._crit_edge1285 ], [ %.01128, %471 ], [ %.01128, %485 ]
  %.31082 = phi double [ %496, %._crit_edge1285 ], [ %.01079, %471 ], [ %.01079, %485 ]
  %.8 = phi i64 [ %.6, %._crit_edge1285 ], [ %.0, %471 ], [ %.0, %485 ]
  %531 = getelementptr inbounds i8, ptr %0, i64 208
  %532 = getelementptr inbounds i8, ptr %0, i64 656
  call void @_ZN11alglib_impl11rmatrixgemmEllldPNS_9ae_matrixElllS1_llldS1_llPNS_8ae_stateE(i64 noundef %.61152, i64 noundef %.61152, i64 noundef %.61134, double noundef 2.000000e+00, ptr noundef nonnull %531, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef nonnull %531, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef nonnull %532, i64 noundef 0, i64 noundef 0, ptr noundef %1)
  %533 = getelementptr inbounds i8, ptr %0, i64 144
  %534 = getelementptr inbounds i8, ptr %0, i64 592
  call void @_ZN11alglib_impl9rmatrixmvEllPNS_9ae_matrixElllPNS_9ae_vectorElS3_lPNS_8ae_stateE(i64 noundef %.61152, i64 noundef %.61134, ptr noundef nonnull %531, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef nonnull %533, i64 noundef 0, ptr noundef nonnull %534, i64 noundef 0, ptr noundef %1)
  %535 = getelementptr inbounds i8, ptr %0, i64 648
  %536 = load ptr, ptr %535, align 8, !tbaa !43
  %537 = add nsw i64 %.61152, -1
  %538 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %537)
  call void @_ZN11alglib_impl9ae_v_muldEPdlld(ptr noundef %536, i64 noundef 1, i64 noundef %538, double noundef 2.000000e+00)
  %539 = getelementptr inbounds i8, ptr %0, i64 200
  %540 = load ptr, ptr %539, align 8, !tbaa !43
  %541 = add nsw i64 %.61134, -1
  %542 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %541)
  %543 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %540, i64 noundef 1, ptr noundef %540, i64 noundef 1, i64 noundef %542)
  %544 = getelementptr inbounds i8, ptr %0, i64 520
  store double %543, ptr %544, align 8, !tbaa !88
  %545 = getelementptr inbounds i8, ptr %0, i64 528
  %546 = getelementptr inbounds i8, ptr %0, i64 584
  %547 = load ptr, ptr %546, align 8, !tbaa !43
  %548 = load ptr, ptr %539, align 8, !tbaa !43
  %549 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %541)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %547, i64 noundef 1, ptr noundef %548, i64 noundef 1, i64 noundef %549)
  %550 = getelementptr inbounds i8, ptr %0, i64 1432
  store i8 0, ptr %550, align 8, !tbaa !79
  %551 = getelementptr inbounds i8, ptr %0, i64 1433
  store i8 0, ptr %551, align 1, !tbaa !80
  %552 = load double, ptr %544, align 8, !tbaa !88
  %.not.not11911286 = icmp sgt i64 %.61152, 0
  br i1 %.not.not11911286, label %.lr.ph1290, label %._crit_edge1291

.lr.ph1290:                                       ; preds = %530
  %553 = load ptr, ptr %535, align 8, !tbaa !43
  %xtraiter1471 = and i64 %.61152, 3
  %554 = icmp ult i64 %.61152, 4
  br i1 %554, label %._crit_edge1291.loopexit.unr-lcssa, label %.lr.ph1290.new

.lr.ph1290.new:                                   ; preds = %.lr.ph1290
  %unroll_iter1475 = and i64 %.61152, 9223372036854775804
  br label %555

555:                                              ; preds = %555, %.lr.ph1290.new
  %.1210711288 = phi i64 [ 0, %.lr.ph1290.new ], [ %571, %555 ]
  %.511021287 = phi double [ %552, %.lr.ph1290.new ], [ %570, %555 ]
  %niter1476 = phi i64 [ 0, %.lr.ph1290.new ], [ %niter1476.next.3, %555 ]
  %556 = getelementptr inbounds double, ptr %553, i64 %.1210711288
  %557 = load double, ptr %556, align 8, !tbaa !48
  %558 = call double @llvm.fmuladd.f64(double %.511021287, double 1.000000e-01, double %557)
  %559 = or disjoint i64 %.1210711288, 1
  %560 = getelementptr inbounds double, ptr %553, i64 %559
  %561 = load double, ptr %560, align 8, !tbaa !48
  %562 = call double @llvm.fmuladd.f64(double %558, double 1.000000e-01, double %561)
  %563 = or disjoint i64 %.1210711288, 2
  %564 = getelementptr inbounds double, ptr %553, i64 %563
  %565 = load double, ptr %564, align 8, !tbaa !48
  %566 = call double @llvm.fmuladd.f64(double %562, double 1.000000e-01, double %565)
  %567 = or disjoint i64 %.1210711288, 3
  %568 = getelementptr inbounds double, ptr %553, i64 %567
  %569 = load double, ptr %568, align 8, !tbaa !48
  %570 = call double @llvm.fmuladd.f64(double %566, double 1.000000e-01, double %569)
  %571 = add nuw nsw i64 %.1210711288, 4
  %niter1476.next.3 = add i64 %niter1476, 4
  %niter1476.ncmp.3 = icmp eq i64 %niter1476.next.3, %unroll_iter1475
  br i1 %niter1476.ncmp.3, label %._crit_edge1291.loopexit.unr-lcssa, label %555, !llvm.loop !89

._crit_edge1291.loopexit.unr-lcssa:               ; preds = %555, %.lr.ph1290
  %.lcssa1452.ph = phi double [ poison, %.lr.ph1290 ], [ %570, %555 ]
  %.1210711288.unr = phi i64 [ 0, %.lr.ph1290 ], [ %571, %555 ]
  %.511021287.unr = phi double [ %552, %.lr.ph1290 ], [ %570, %555 ]
  %lcmp.mod1473.not = icmp eq i64 %xtraiter1471, 0
  br i1 %lcmp.mod1473.not, label %._crit_edge1291, label %.epil.preheader1470

.epil.preheader1470:                              ; preds = %._crit_edge1291.loopexit.unr-lcssa, %.epil.preheader1470
  %.1210711288.epil = phi i64 [ %575, %.epil.preheader1470 ], [ %.1210711288.unr, %._crit_edge1291.loopexit.unr-lcssa ]
  %.511021287.epil = phi double [ %574, %.epil.preheader1470 ], [ %.511021287.unr, %._crit_edge1291.loopexit.unr-lcssa ]
  %epil.iter1472 = phi i64 [ %epil.iter1472.next, %.epil.preheader1470 ], [ 0, %._crit_edge1291.loopexit.unr-lcssa ]
  %572 = getelementptr inbounds double, ptr %553, i64 %.1210711288.epil
  %573 = load double, ptr %572, align 8, !tbaa !48
  %574 = call double @llvm.fmuladd.f64(double %.511021287.epil, double 1.000000e-01, double %573)
  %575 = add nuw nsw i64 %.1210711288.epil, 1
  %epil.iter1472.next = add i64 %epil.iter1472, 1
  %epil.iter1472.cmp.not = icmp eq i64 %epil.iter1472.next, %xtraiter1471
  br i1 %epil.iter1472.cmp.not, label %._crit_edge1291, label %.epil.preheader1470, !llvm.loop !90

._crit_edge1291:                                  ; preds = %._crit_edge1291.loopexit.unr-lcssa, %.epil.preheader1470, %530
  %.51102.lcssa = phi double [ %552, %530 ], [ %.lcssa1452.ph, %._crit_edge1291.loopexit.unr-lcssa ], [ %574, %.epil.preheader1470 ]
  %.121071.lcssa = phi i64 [ 0, %530 ], [ %.61152, %.epil.preheader1470 ], [ %.61152, %._crit_edge1291.loopexit.unr-lcssa ]
  %576 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %.51102.lcssa, ptr noundef %1)
  br i1 %576, label %579, label %577

577:                                              ; preds = %._crit_edge1291
  %578 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 -8, ptr %578, align 8, !tbaa !62
  br label %1547

579:                                              ; preds = %._crit_edge1291
  %580 = getelementptr inbounds i8, ptr %0, i64 1152
  %581 = load double, ptr %580, align 8, !tbaa !91
  %582 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %581, double noundef 0.000000e+00)
  br i1 %582, label %583, label %605

583:                                              ; preds = %579
  store double 0.000000e+00, ptr %580, align 8, !tbaa !91
  br i1 %.not.not11911286, label %.lr.ph1297, label %._crit_edge1298

.lr.ph1297:                                       ; preds = %583
  %584 = getelementptr inbounds i8, ptr %0, i64 728
  %585 = getelementptr inbounds i8, ptr %0, i64 1048
  br label %586

586:                                              ; preds = %.lr.ph1297, %586
  %587 = phi double [ 0.000000e+00, %.lr.ph1297 ], [ %599, %586 ]
  %.1310721295 = phi i64 [ 0, %.lr.ph1297 ], [ %600, %586 ]
  %588 = load ptr, ptr %584, align 8, !tbaa !43
  %589 = getelementptr inbounds ptr, ptr %588, i64 %.1310721295
  %590 = load ptr, ptr %589, align 8, !tbaa !68
  %591 = getelementptr inbounds double, ptr %590, i64 %.1310721295
  %592 = load double, ptr %591, align 8, !tbaa !48
  %593 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %592, ptr noundef %1)
  %594 = load ptr, ptr %585, align 8, !tbaa !43
  %595 = getelementptr inbounds double, ptr %594, i64 %.1310721295
  %596 = load double, ptr %595, align 8, !tbaa !48
  %597 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %596, ptr noundef %1)
  %598 = fmul double %593, %597
  %599 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %587, double noundef %598, ptr noundef %1)
  store double %599, ptr %580, align 8, !tbaa !91
  %600 = add nuw nsw i64 %.1310721295, 1
  %exitcond1389.not = icmp eq i64 %600, %.61152
  br i1 %exitcond1389.not, label %._crit_edge1298, label %586, !llvm.loop !92

._crit_edge1298:                                  ; preds = %586, %583
  %601 = phi double [ 0.000000e+00, %583 ], [ %599, %586 ]
  %.131072.lcssa = phi i64 [ 0, %583 ], [ %.61152, %586 ]
  %602 = fmul double %601, 1.000000e-03
  store double %602, ptr %580, align 8, !tbaa !91
  %603 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %602, double noundef 0.000000e+00)
  br i1 %603, label %604, label %605

604:                                              ; preds = %._crit_edge1298
  store double 1.000000e+00, ptr %580, align 8, !tbaa !91
  br label %605

605:                                              ; preds = %._crit_edge1298, %604, %579
  %.141073 = phi i64 [ %.131072.lcssa, %604 ], [ %.131072.lcssa, %._crit_edge1298 ], [ %.121071.lcssa, %579 ]
  store i64 -99, ptr %3, align 8, !tbaa !44
  %606 = getelementptr inbounds i8, ptr %0, i64 48512
  %607 = load double, ptr %544, align 8, !tbaa !88
  %608 = getelementptr inbounds i8, ptr %0, i64 456
  %609 = getelementptr inbounds i8, ptr %0, i64 1168
  %610 = load i64, ptr %609, align 8, !tbaa !78
  call void @_ZN11alglib_implL26minlm_minlmstepfinderstartEPNS_15minlmstepfinderEPNS_9ae_matrixEPNS_9ae_vectorEdS5_S5_lPNS_8ae_stateE(ptr noundef nonnull %606, ptr noundef nonnull %532, ptr noundef nonnull %534, double noundef %607, ptr noundef nonnull %608, ptr noundef nonnull %545, i64 noundef %610, ptr noundef %1)
  br label %.preheader1222

.preheader1222:                                   ; preds = %605, %648, %669
  %.71153.ph = phi i64 [ %.01146, %669 ], [ %.01146, %648 ], [ %.61152, %605 ]
  %.71135.ph = phi i64 [ %.01128, %669 ], [ %.01128, %648 ], [ %.61134, %605 ]
  %.61103.ph = phi double [ %.01097, %669 ], [ %.01097, %648 ], [ %.51102.lcssa, %605 ]
  %.41083.ph = phi double [ %.01079, %669 ], [ %.01079, %648 ], [ %.31082, %605 ]
  %.151074.ph = phi i64 [ %.01059, %669 ], [ %.01059, %648 ], [ %.141073, %605 ]
  %.9.ph = phi i64 [ %.0, %669 ], [ %.0, %648 ], [ %.8, %605 ]
  %611 = getelementptr inbounds i8, ptr %0, i64 48512
  %612 = getelementptr inbounds i8, ptr %0, i64 1152
  %613 = getelementptr inbounds i8, ptr %0, i64 1160
  %614 = getelementptr inbounds i8, ptr %0, i64 1176
  %615 = getelementptr inbounds i8, ptr %0, i64 1304
  %616 = getelementptr inbounds i8, ptr %0, i64 1432
  %617 = getelementptr inbounds i8, ptr %0, i64 1368
  %618 = getelementptr inbounds i8, ptr %0, i64 1433
  %619 = getelementptr inbounds i8, ptr %0, i64 5528
  %620 = call noundef zeroext i1 @_ZN11alglib_implL30minlm_minlmstepfinderiterationEPNS_15minlmstepfinderEPdS2_PNS_9ae_vectorES4_PbS4_S5_PlS2_S6_PNS_8ae_stateE(ptr noundef nonnull %611, ptr noundef nonnull %612, ptr noundef nonnull %613, ptr noundef nonnull %614, ptr noundef nonnull %615, ptr noundef nonnull %616, ptr noundef nonnull %617, ptr noundef nonnull %618, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %619, ptr noundef %1)
  br i1 %620, label %.lr.ph1300, label %._crit_edge1301

.lr.ph1300:                                       ; preds = %.preheader1222
  %621 = getelementptr inbounds i8, ptr %0, i64 449
  %622 = getelementptr inbounds i8, ptr %0, i64 448
  %623 = getelementptr inbounds i8, ptr %0, i64 5496
  %624 = getelementptr inbounds i8, ptr %0, i64 48705
  %625 = getelementptr inbounds i8, ptr %0, i64 48704
  br label %626

626:                                              ; preds = %.lr.ph1300, %674
  %627 = load i8, ptr %621, align 1, !tbaa !57, !range !46, !noundef !47
  %628 = trunc nuw i8 %627 to i1
  br i1 %628, label %632, label %629

629:                                              ; preds = %626
  %630 = load i8, ptr %622, align 8, !tbaa !72, !range !46, !noundef !47
  %631 = trunc nuw i8 %630 to i1
  br label %632

632:                                              ; preds = %629, %626
  %633 = phi i1 [ true, %626 ], [ %631, %629 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %633, ptr noundef nonnull @.str.606, ptr noundef %1)
  %634 = load i64, ptr %623, align 8, !tbaa !76
  %635 = add nsw i64 %634, 1
  store i64 %635, ptr %623, align 8, !tbaa !76
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %636 = load i8, ptr %624, align 1, !tbaa !93, !range !46, !noundef !47
  %637 = trunc nuw i8 %636 to i1
  br i1 %637, label %638, label %656

638:                                              ; preds = %632
  %639 = load i8, ptr %621, align 1, !tbaa !57, !range !46, !noundef !47
  %640 = trunc nuw i8 %639 to i1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %640, ptr noundef nonnull @.str.606, ptr noundef %1)
  %641 = getelementptr inbounds i8, ptr %0, i64 128
  %642 = load ptr, ptr %641, align 8, !tbaa !43
  %643 = getelementptr inbounds i8, ptr %0, i64 48624
  %644 = load ptr, ptr %643, align 8, !tbaa !43
  %645 = add nsw i64 %.71153.ph, -1
  %646 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %645)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %642, i64 noundef 1, ptr noundef %644, i64 noundef 1, i64 noundef %646)
  %647 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %647, align 4, !tbaa !74
  br label %1523

648:                                              ; preds = %32
  %649 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 0, ptr %649, align 4, !tbaa !74
  %650 = getelementptr inbounds i8, ptr %0, i64 48696
  %651 = load ptr, ptr %650, align 8, !tbaa !43
  %652 = getelementptr inbounds i8, ptr %0, i64 200
  %653 = load ptr, ptr %652, align 8, !tbaa !43
  %654 = add nsw i64 %.01128, -1
  %655 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %654)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %651, i64 noundef 1, ptr noundef %653, i64 noundef 1, i64 noundef %655)
  br label %.preheader1222

656:                                              ; preds = %632
  %657 = load i8, ptr %625, align 8, !tbaa !94, !range !46, !noundef !47
  %658 = trunc nuw i8 %657 to i1
  br i1 %658, label %659, label %674

659:                                              ; preds = %656
  %660 = load i8, ptr %622, align 8, !tbaa !72, !range !46, !noundef !47
  %661 = trunc nuw i8 %660 to i1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %661, ptr noundef nonnull @.str.606, ptr noundef %1)
  %662 = getelementptr inbounds i8, ptr %0, i64 128
  %663 = load ptr, ptr %662, align 8, !tbaa !43
  %664 = getelementptr inbounds i8, ptr %0, i64 48624
  %665 = load ptr, ptr %664, align 8, !tbaa !43
  %666 = add nsw i64 %.71153.ph, -1
  %667 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %666)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %663, i64 noundef 1, ptr noundef %665, i64 noundef 1, i64 noundef %667)
  %668 = getelementptr inbounds i8, ptr %0, i64 432
  store i8 1, ptr %668, align 8, !tbaa !73
  br label %1523

669:                                              ; preds = %32
  %670 = getelementptr inbounds i8, ptr %0, i64 432
  store i8 0, ptr %670, align 8, !tbaa !73
  %671 = getelementptr inbounds i8, ptr %0, i64 136
  %672 = load double, ptr %671, align 8, !tbaa !75
  %673 = getelementptr inbounds i8, ptr %0, i64 48632
  store double %672, ptr %673, align 8, !tbaa !95
  br label %.preheader1222

674:                                              ; preds = %656
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.606, ptr noundef %1)
  %675 = call noundef zeroext i1 @_ZN11alglib_implL30minlm_minlmstepfinderiterationEPNS_15minlmstepfinderEPdS2_PNS_9ae_vectorES4_PbS4_S5_PlS2_S6_PNS_8ae_stateE(ptr noundef nonnull %611, ptr noundef nonnull %612, ptr noundef nonnull %613, ptr noundef nonnull %614, ptr noundef nonnull %615, ptr noundef nonnull %616, ptr noundef nonnull %617, ptr noundef nonnull %618, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %619, ptr noundef %1)
  br i1 %675, label %626, label %._crit_edge1301

._crit_edge1301:                                  ; preds = %674, %.preheader1222
  %676 = getelementptr inbounds i8, ptr %0, i64 438
  %677 = load i8, ptr %676, align 2, !tbaa !51, !range !46, !noundef !47
  %678 = trunc nuw i8 %677 to i1
  br i1 %678, label %679, label %687

679:                                              ; preds = %._crit_edge1301
  %680 = getelementptr inbounds i8, ptr %0, i64 128
  %681 = load ptr, ptr %680, align 8, !tbaa !43
  %682 = getelementptr inbounds i8, ptr %0, i64 512
  %683 = load ptr, ptr %682, align 8, !tbaa !43
  %684 = add nsw i64 %.71153.ph, -1
  %685 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %684)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %681, i64 noundef 1, ptr noundef %683, i64 noundef 1, i64 noundef %685)
  %686 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 8, ptr %686, align 8, !tbaa !62
  br label %1547

687:                                              ; preds = %._crit_edge1301
  store double 1.000000e+00, ptr %613, align 8, !tbaa !96
  %688 = load i64, ptr %3, align 8
  %switch.tableidx = add i64 %688, 8
  %689 = icmp ult i64 %switch.tableidx, 9
  br i1 %689, label %switch.hole_check, label %690

690:                                              ; preds = %switch.hole_check, %687
  %691 = icmp sgt i64 %688, 0
  br label %switch.lookup

switch.hole_check:                                ; preds = %687
  %switch.maskindex = trunc nuw i64 %switch.tableidx to i16
  %switch.shifted = lshr i16 481, %switch.maskindex
  %switch.lobit = trunc i16 %switch.shifted to i1
  br i1 %switch.lobit, label %switch.lookup, label %690

switch.lookup:                                    ; preds = %switch.hole_check, %690
  %692 = phi i1 [ %691, %690 ], [ true, %switch.hole_check ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %692, ptr noundef nonnull @.str.610, ptr noundef %1)
  %693 = load i64, ptr %3, align 8
  switch i64 %693, label %719 [
    i64 -3, label %694
    i64 -2, label %696
    i64 -1, label %701
  ]

694:                                              ; preds = %switch.lookup
  %695 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 -3, ptr %695, align 8, !tbaa !62
  br label %1547

696:                                              ; preds = %switch.lookup
  %697 = getelementptr inbounds i8, ptr %0, i64 56
  %698 = load i64, ptr %697, align 8, !tbaa !56
  %699 = add nsw i64 %698, 1
  %700 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 %699, ptr %700, align 8, !tbaa !78
  br label %262

701:                                              ; preds = %switch.lookup
  %702 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 7, ptr %702, align 8, !tbaa !62
  %703 = getelementptr inbounds i8, ptr %0, i64 40
  %704 = load i8, ptr %703, align 8, !tbaa !71, !range !46, !noundef !47
  %705 = trunc nuw i8 %704 to i1
  br i1 %705, label %706, label %1547

706:                                              ; preds = %701
  %707 = getelementptr inbounds i8, ptr %0, i64 128
  %708 = load ptr, ptr %707, align 8, !tbaa !43
  %709 = getelementptr inbounds i8, ptr %0, i64 512
  %710 = load ptr, ptr %709, align 8, !tbaa !43
  %711 = add nsw i64 %.71153.ph, -1
  %712 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %711)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %708, i64 noundef 1, ptr noundef %710, i64 noundef 1, i64 noundef %712)
  %713 = getelementptr inbounds i8, ptr %0, i64 520
  %714 = load double, ptr %713, align 8, !tbaa !88
  %715 = getelementptr inbounds i8, ptr %0, i64 136
  store double %714, ptr %715, align 8, !tbaa !75
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %716 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %716, align 1, !tbaa !77
  br label %1523

717:                                              ; preds = %32
  %718 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %718, align 1, !tbaa !77
  br label %1547

719:                                              ; preds = %switch.lookup
  %720 = icmp eq i64 %693, -8
  %721 = icmp sgt i64 %693, 0
  %or.cond5 = or i1 %720, %721
  br i1 %or.cond5, label %722, label %740

722:                                              ; preds = %719
  %723 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 %693, ptr %723, align 8, !tbaa !62
  %724 = getelementptr inbounds i8, ptr %0, i64 40
  %725 = load i8, ptr %724, align 8, !tbaa !71, !range !46, !noundef !47
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %1547

727:                                              ; preds = %722
  %728 = getelementptr inbounds i8, ptr %0, i64 128
  %729 = load ptr, ptr %728, align 8, !tbaa !43
  %730 = getelementptr inbounds i8, ptr %0, i64 512
  %731 = load ptr, ptr %730, align 8, !tbaa !43
  %732 = add nsw i64 %.71153.ph, -1
  %733 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %732)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %729, i64 noundef 1, ptr noundef %731, i64 noundef 1, i64 noundef %733)
  %734 = getelementptr inbounds i8, ptr %0, i64 520
  %735 = load double, ptr %734, align 8, !tbaa !88
  %736 = getelementptr inbounds i8, ptr %0, i64 136
  store double %735, ptr %736, align 8, !tbaa !75
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %737 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %737, align 1, !tbaa !77
  br label %1523

738:                                              ; preds = %32
  %739 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %739, align 1, !tbaa !77
  br label %1547

740:                                              ; preds = %719
  %741 = load double, ptr %4, align 8, !tbaa !48
  %742 = getelementptr inbounds i8, ptr %0, i64 136
  store double %741, ptr %742, align 8, !tbaa !75
  %743 = load i8, ptr %616, align 8, !tbaa !79, !range !46, !noundef !47
  %744 = trunc nuw i8 %743 to i1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %744, ptr noundef nonnull @.str.611, ptr noundef %1)
  %745 = getelementptr inbounds i8, ptr %0, i64 656
  %746 = getelementptr inbounds i8, ptr %0, i64 592
  %747 = getelementptr inbounds i8, ptr %0, i64 520
  %748 = load double, ptr %747, align 8, !tbaa !88
  %749 = load double, ptr %742, align 8, !tbaa !75
  %750 = call noundef i64 @_ZN11alglib_implL19minlm_checkdecreaseEPNS_9ae_matrixEPNS_9ae_vectorEdlS3_dPdS4_PNS_8ae_stateE(ptr noundef nonnull %745, ptr noundef nonnull %746, double noundef %748, i64 noundef %.71153.ph, ptr noundef nonnull %615, double noundef %749, ptr noundef nonnull %612, ptr noundef nonnull %613, ptr noundef %1)
  store i64 %750, ptr %3, align 8, !tbaa !44
  %751 = icmp eq i64 %750, 0
  br i1 %751, label %768, label %752

752:                                              ; preds = %740
  %753 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 %750, ptr %753, align 8, !tbaa !62
  %754 = getelementptr inbounds i8, ptr %0, i64 40
  %755 = load i8, ptr %754, align 8, !tbaa !71, !range !46, !noundef !47
  %756 = trunc nuw i8 %755 to i1
  br i1 %756, label %757, label %1547

757:                                              ; preds = %752
  %758 = getelementptr inbounds i8, ptr %0, i64 128
  %759 = load ptr, ptr %758, align 8, !tbaa !43
  %760 = getelementptr inbounds i8, ptr %0, i64 512
  %761 = load ptr, ptr %760, align 8, !tbaa !43
  %762 = add nsw i64 %.71153.ph, -1
  %763 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %762)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %759, i64 noundef 1, ptr noundef %761, i64 noundef 1, i64 noundef %763)
  %764 = load double, ptr %747, align 8, !tbaa !88
  store double %764, ptr %742, align 8, !tbaa !75
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %765 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %765, align 1, !tbaa !77
  br label %1523

766:                                              ; preds = %32
  %767 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %767, align 1, !tbaa !77
  br label %1547

768:                                              ; preds = %740
  %769 = getelementptr inbounds i8, ptr %0, i64 512
  %770 = load ptr, ptr %769, align 8, !tbaa !43
  %771 = getelementptr inbounds i8, ptr %0, i64 1232
  %772 = load ptr, ptr %771, align 8, !tbaa !43
  %773 = add nsw i64 %.71153.ph, -1
  %774 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %773)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %770, i64 noundef 1, ptr noundef %772, i64 noundef 1, i64 noundef %774)
  %775 = getelementptr inbounds i8, ptr %0, i64 40
  %776 = load i8, ptr %775, align 8, !tbaa !71, !range !46, !noundef !47
  %777 = trunc nuw i8 %776 to i1
  br i1 %777, label %778, label %786

778:                                              ; preds = %768
  %779 = getelementptr inbounds i8, ptr %0, i64 128
  %780 = load ptr, ptr %779, align 8, !tbaa !43
  %781 = load ptr, ptr %769, align 8, !tbaa !43
  %782 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %773)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %780, i64 noundef 1, ptr noundef %781, i64 noundef 1, i64 noundef %782)
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %783 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %783, align 1, !tbaa !77
  br label %1523

784:                                              ; preds = %32
  %785 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %785, align 1, !tbaa !77
  br label %786

786:                                              ; preds = %768, %784
  %.81154 = phi i64 [ %.71153.ph, %768 ], [ %.01146, %784 ]
  %.81136 = phi i64 [ %.71135.ph, %768 ], [ %.01128, %784 ]
  %.71104 = phi double [ %.61103.ph, %768 ], [ %.01097, %784 ]
  %.51084 = phi double [ %.41083.ph, %768 ], [ %.01079, %784 ]
  %.161075 = phi i64 [ %.151074.ph, %768 ], [ %.01059, %784 ]
  %.10 = phi i64 [ %.9.ph, %768 ], [ %.0, %784 ]
  %787 = getelementptr inbounds i8, ptr %0, i64 5480
  %788 = load i64, ptr %787, align 8, !tbaa !97
  %789 = add nsw i64 %788, 1
  store i64 %789, ptr %787, align 8, !tbaa !97
  %790 = getelementptr inbounds i8, ptr %0, i64 32
  %791 = load i64, ptr %790, align 8, !tbaa !98
  %.not1193 = icmp sge i64 %789, %791
  %792 = icmp sgt i64 %791, 0
  %or.cond = and i1 %.not1193, %792
  %793 = getelementptr inbounds i8, ptr %0, i64 5488
  br i1 %or.cond, label %.thread1405, label %794

.thread1405:                                      ; preds = %786
  store i64 5, ptr %793, align 8, !tbaa !62
  br label %796

794:                                              ; preds = %786
  %.pre = load i64, ptr %793, align 8, !tbaa !62
  %795 = icmp slt i64 %.pre, 1
  br i1 %795, label %810, label %796

796:                                              ; preds = %.thread1405, %794
  %797 = getelementptr inbounds i8, ptr %0, i64 40
  %798 = load i8, ptr %797, align 8, !tbaa !71, !range !46, !noundef !47
  %799 = trunc nuw i8 %798 to i1
  br i1 %799, label %800, label %1547

800:                                              ; preds = %796
  %801 = getelementptr inbounds i8, ptr %0, i64 128
  %802 = load ptr, ptr %801, align 8, !tbaa !43
  %803 = getelementptr inbounds i8, ptr %0, i64 512
  %804 = load ptr, ptr %803, align 8, !tbaa !43
  %805 = add nsw i64 %.81154, -1
  %806 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %805)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %802, i64 noundef 1, ptr noundef %804, i64 noundef 1, i64 noundef %806)
  call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %807 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %807, align 1, !tbaa !77
  br label %1523

808:                                              ; preds = %32
  %809 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %809, align 1, !tbaa !77
  br label %1547

810:                                              ; preds = %794
  %811 = getelementptr inbounds i8, ptr %0, i64 1168
  %812 = load i64, ptr %811, align 8, !tbaa !78
  %813 = add nsw i64 %812, 1
  store i64 %813, ptr %811, align 8, !tbaa !78
  br label %262

814:                                              ; preds = %32
  %815 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %815, align 1, !tbaa !77
  br label %1547

816:                                              ; preds = %251
  %817 = getelementptr inbounds i8, ptr %0, i64 1136
  %818 = load i64, ptr %817, align 8, !tbaa !58
  %819 = getelementptr inbounds i8, ptr %0, i64 1144
  %820 = load i64, ptr %819, align 8, !tbaa !59
  %821 = add nsw i64 %820, %818
  %822 = icmp sgt i64 %821, 0
  br i1 %822, label %823, label %825

823:                                              ; preds = %816
  %824 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 -5, ptr %824, align 8, !tbaa !62
  br label %1547

825:                                              ; preds = %816, %1501, %1393
  %826 = phi i64 [ %255, %816 ], [ %1396, %1393 ], [ %1504, %1501 ]
  %.91155 = phi i64 [ %.31149, %816 ], [ %.151161, %1393 ], [ %.161162, %1501 ]
  %.91137 = phi i64 [ %.31131, %816 ], [ %.151143, %1393 ], [ %.161144, %1501 ]
  %.81105 = phi double [ %.01097, %816 ], [ %.171114, %1393 ], [ %.191116, %1501 ]
  %.61085 = phi double [ %.01079, %816 ], [ %.121091, %1393 ], [ %.141093, %1501 ]
  %.171076 = phi i64 [ %.61065, %816 ], [ %.30, %1393 ], [ %.32, %1501 ]
  %.11 = phi i64 [ %.5, %816 ], [ %.17, %1393 ], [ %.18, %1501 ]
  %827 = getelementptr inbounds i8, ptr %0, i64 440
  %828 = load i64, ptr %827, align 8, !tbaa !63
  %switch = icmp ult i64 %828, 2
  br i1 %switch, label %829, label %1112

829:                                              ; preds = %825
  %830 = getelementptr inbounds i8, ptr %0, i64 1168
  %831 = getelementptr inbounds i8, ptr %0, i64 56
  %832 = load i64, ptr %831, align 8, !tbaa !56
  %833 = icmp sgt i64 %826, %832
  br i1 %833, label %842, label %834

834:                                              ; preds = %829
  %835 = getelementptr inbounds i8, ptr %0, i64 1432
  %836 = load i8, ptr %835, align 8, !tbaa !79, !range !46, !noundef !47
  %837 = trunc nuw i8 %836 to i1
  br i1 %837, label %838, label %842

838:                                              ; preds = %834
  %839 = getelementptr inbounds i8, ptr %0, i64 1433
  %840 = load i8, ptr %839, align 1, !tbaa !80, !range !46, !noundef !47
  %841 = trunc nuw i8 %840 to i1
  br i1 %841, label %1054, label %842

842:                                              ; preds = %838, %834, %829
  %.not1205 = icmp eq i64 %828, 0
  br i1 %.not1205, label %843, label %1040

843:                                              ; preds = %842
  %844 = getelementptr inbounds i8, ptr %0, i64 449
  %845 = load i8, ptr %844, align 1, !tbaa !57, !range !46, !noundef !47
  %846 = trunc nuw i8 %845 to i1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %846, ptr noundef nonnull @.str.607, ptr noundef %1)
  br label %847

847:                                              ; preds = %.loopexit1226, %843
  %.101156 = phi i64 [ %.91155, %843 ], [ %.01146, %.loopexit1226 ]
  %.101138 = phi i64 [ %.91137, %843 ], [ %.01128, %.loopexit1226 ]
  %.11120 = phi i8 [ 0, %843 ], [ %.01119, %.loopexit1226 ]
  %.91106 = phi double [ %.81105, %843 ], [ %.101107, %.loopexit1226 ]
  %.71086 = phi double [ %.61085, %843 ], [ %.01079, %.loopexit1226 ]
  %.181077 = phi i64 [ %.171076, %843 ], [ %.20, %.loopexit1226 ]
  %.12 = phi i64 [ 0, %843 ], [ %1031, %.loopexit1226 ]
  %848 = add nsw i64 %.101156, -1
  %.not1206 = icmp slt i64 %.12, %.101156
  %849 = getelementptr inbounds i8, ptr %0, i64 128
  %850 = load ptr, ptr %849, align 8, !tbaa !43
  %851 = getelementptr inbounds i8, ptr %0, i64 512
  %852 = load ptr, ptr %851, align 8, !tbaa !43
  %853 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %848)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %850, i64 noundef 1, ptr noundef %852, i64 noundef 1, i64 noundef %853)
  br i1 %.not1206, label %854, label %1032

854:                                              ; preds = %847
  %855 = load ptr, ptr %849, align 8, !tbaa !43
  %856 = getelementptr inbounds double, ptr %855, i64 %.12
  %857 = load double, ptr %856, align 8, !tbaa !48
  %858 = getelementptr inbounds i8, ptr %0, i64 1048
  %859 = load ptr, ptr %858, align 8, !tbaa !43
  %860 = getelementptr inbounds double, ptr %859, i64 %.12
  %861 = load double, ptr %860, align 8, !tbaa !48
  %862 = getelementptr inbounds i8, ptr %0, i64 16
  %863 = load double, ptr %862, align 8, !tbaa !81
  %864 = fneg double %861
  %865 = tail call double @llvm.fmuladd.f64(double %864, double %863, double %857)
  store double %865, ptr %856, align 8, !tbaa !48
  %866 = getelementptr inbounds i8, ptr %0, i64 920
  %867 = load ptr, ptr %866, align 8, !tbaa !43
  %868 = getelementptr inbounds i8, ptr %867, i64 %.12
  %869 = load i8, ptr %868, align 1, !tbaa !45, !range !46, !noundef !47
  %870 = trunc nuw i8 %869 to i1
  br i1 %870, label %871, label %882

871:                                              ; preds = %854
  %872 = load ptr, ptr %849, align 8, !tbaa !43
  %873 = getelementptr inbounds double, ptr %872, i64 %.12
  %874 = load double, ptr %873, align 8, !tbaa !48
  %875 = getelementptr inbounds i8, ptr %0, i64 792
  %876 = load ptr, ptr %875, align 8, !tbaa !43
  %877 = getelementptr inbounds double, ptr %876, i64 %.12
  %878 = load double, ptr %877, align 8, !tbaa !48
  %879 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %874, double noundef %878, ptr noundef %1)
  %880 = load ptr, ptr %849, align 8, !tbaa !43
  %881 = getelementptr inbounds double, ptr %880, i64 %.12
  store double %879, ptr %881, align 8, !tbaa !48
  br label %882

882:                                              ; preds = %871, %854
  %883 = getelementptr inbounds i8, ptr %0, i64 984
  %884 = load ptr, ptr %883, align 8, !tbaa !43
  %885 = getelementptr inbounds i8, ptr %884, i64 %.12
  %886 = load i8, ptr %885, align 1, !tbaa !45, !range !46, !noundef !47
  %887 = trunc nuw i8 %886 to i1
  br i1 %887, label %888, label %899

888:                                              ; preds = %882
  %889 = load ptr, ptr %849, align 8, !tbaa !43
  %890 = getelementptr inbounds double, ptr %889, i64 %.12
  %891 = load double, ptr %890, align 8, !tbaa !48
  %892 = getelementptr inbounds i8, ptr %0, i64 856
  %893 = load ptr, ptr %892, align 8, !tbaa !43
  %894 = getelementptr inbounds double, ptr %893, i64 %.12
  %895 = load double, ptr %894, align 8, !tbaa !48
  %896 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %891, double noundef %895, ptr noundef %1)
  %897 = load ptr, ptr %849, align 8, !tbaa !43
  %898 = getelementptr inbounds double, ptr %897, i64 %.12
  store double %896, ptr %898, align 8, !tbaa !48
  br label %899

899:                                              ; preds = %888, %882
  %900 = load ptr, ptr %849, align 8, !tbaa !43
  %901 = getelementptr inbounds double, ptr %900, i64 %.12
  %902 = load double, ptr %901, align 8, !tbaa !48
  %903 = getelementptr inbounds i8, ptr %0, i64 5944
  store double %902, ptr %903, align 8, !tbaa !82
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %904 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %904, align 4, !tbaa !74
  br label %1523

905:                                              ; preds = %32
  %906 = getelementptr inbounds i8, ptr %0, i64 5496
  %907 = load i64, ptr %906, align 8, !tbaa !76
  %908 = add nsw i64 %907, 1
  store i64 %908, ptr %906, align 8, !tbaa !76
  %909 = getelementptr inbounds i8, ptr %0, i64 6016
  %910 = load ptr, ptr %909, align 8, !tbaa !43
  %911 = getelementptr inbounds i8, ptr %0, i64 200
  %912 = load ptr, ptr %911, align 8, !tbaa !43
  %913 = add nsw i64 %.01128, -1
  %914 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %913)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %910, i64 noundef 1, ptr noundef %912, i64 noundef 1, i64 noundef %914)
  %915 = getelementptr inbounds i8, ptr %0, i64 128
  %916 = load ptr, ptr %915, align 8, !tbaa !43
  %917 = getelementptr inbounds i8, ptr %0, i64 512
  %918 = load ptr, ptr %917, align 8, !tbaa !43
  %919 = add nsw i64 %.01146, -1
  %920 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %919)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %916, i64 noundef 1, ptr noundef %918, i64 noundef 1, i64 noundef %920)
  %921 = load ptr, ptr %915, align 8, !tbaa !43
  %922 = getelementptr inbounds double, ptr %921, i64 %.0
  %923 = load double, ptr %922, align 8, !tbaa !48
  %924 = getelementptr inbounds i8, ptr %0, i64 1048
  %925 = load ptr, ptr %924, align 8, !tbaa !43
  %926 = getelementptr inbounds double, ptr %925, i64 %.0
  %927 = load double, ptr %926, align 8, !tbaa !48
  %928 = getelementptr inbounds i8, ptr %0, i64 16
  %929 = load double, ptr %928, align 8, !tbaa !81
  %930 = tail call double @llvm.fmuladd.f64(double %927, double %929, double %923)
  store double %930, ptr %922, align 8, !tbaa !48
  %931 = getelementptr inbounds i8, ptr %0, i64 920
  %932 = load ptr, ptr %931, align 8, !tbaa !43
  %933 = getelementptr inbounds i8, ptr %932, i64 %.0
  %934 = load i8, ptr %933, align 1, !tbaa !45, !range !46, !noundef !47
  %935 = trunc nuw i8 %934 to i1
  br i1 %935, label %936, label %947

936:                                              ; preds = %905
  %937 = load ptr, ptr %915, align 8, !tbaa !43
  %938 = getelementptr inbounds double, ptr %937, i64 %.0
  %939 = load double, ptr %938, align 8, !tbaa !48
  %940 = getelementptr inbounds i8, ptr %0, i64 792
  %941 = load ptr, ptr %940, align 8, !tbaa !43
  %942 = getelementptr inbounds double, ptr %941, i64 %.0
  %943 = load double, ptr %942, align 8, !tbaa !48
  %944 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %939, double noundef %943, ptr noundef %1)
  %945 = load ptr, ptr %915, align 8, !tbaa !43
  %946 = getelementptr inbounds double, ptr %945, i64 %.0
  store double %944, ptr %946, align 8, !tbaa !48
  br label %947

947:                                              ; preds = %936, %905
  %948 = getelementptr inbounds i8, ptr %0, i64 984
  %949 = load ptr, ptr %948, align 8, !tbaa !43
  %950 = getelementptr inbounds i8, ptr %949, i64 %.0
  %951 = load i8, ptr %950, align 1, !tbaa !45, !range !46, !noundef !47
  %952 = trunc nuw i8 %951 to i1
  br i1 %952, label %953, label %964

953:                                              ; preds = %947
  %954 = load ptr, ptr %915, align 8, !tbaa !43
  %955 = getelementptr inbounds double, ptr %954, i64 %.0
  %956 = load double, ptr %955, align 8, !tbaa !48
  %957 = getelementptr inbounds i8, ptr %0, i64 856
  %958 = load ptr, ptr %957, align 8, !tbaa !43
  %959 = getelementptr inbounds double, ptr %958, i64 %.0
  %960 = load double, ptr %959, align 8, !tbaa !48
  %961 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %956, double noundef %960, ptr noundef %1)
  %962 = load ptr, ptr %915, align 8, !tbaa !43
  %963 = getelementptr inbounds double, ptr %962, i64 %.0
  store double %961, ptr %963, align 8, !tbaa !48
  br label %964

964:                                              ; preds = %953, %947
  %965 = load ptr, ptr %915, align 8, !tbaa !43
  %966 = getelementptr inbounds double, ptr %965, i64 %.0
  %967 = load double, ptr %966, align 8, !tbaa !48
  %968 = getelementptr inbounds i8, ptr %0, i64 5952
  store double %967, ptr %968, align 8, !tbaa !83
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %969 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %969, align 4, !tbaa !74
  br label %1523

970:                                              ; preds = %32
  %971 = getelementptr inbounds i8, ptr %0, i64 5496
  %972 = load i64, ptr %971, align 8, !tbaa !76
  %973 = add nsw i64 %972, 1
  store i64 %973, ptr %971, align 8, !tbaa !76
  %974 = getelementptr inbounds i8, ptr %0, i64 6080
  %975 = load ptr, ptr %974, align 8, !tbaa !43
  %976 = getelementptr inbounds i8, ptr %0, i64 200
  %977 = load ptr, ptr %976, align 8, !tbaa !43
  %978 = add nsw i64 %.01128, -1
  %979 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %978)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %975, i64 noundef 1, ptr noundef %977, i64 noundef 1, i64 noundef %979)
  %980 = getelementptr inbounds i8, ptr %0, i64 5952
  %981 = load double, ptr %980, align 8, !tbaa !83
  %982 = getelementptr inbounds i8, ptr %0, i64 5944
  %983 = load double, ptr %982, align 8, !tbaa !82
  %984 = fsub double %981, %983
  %985 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %984, double noundef 0.000000e+00)
  br i1 %985, label %988, label %.preheader1225

.preheader1225:                                   ; preds = %970
  %.not.not11871259 = icmp sgt i64 %.01128, 0
  br i1 %.not.not11871259, label %.lr.ph, label %.loopexit1226

.lr.ph:                                           ; preds = %.preheader1225
  %986 = getelementptr inbounds i8, ptr %0, i64 280
  %xtraiter = and i64 %.01128, 3
  %987 = icmp ult i64 %.01128, 4
  br i1 %987, label %.loopexit1226.loopexit.unr-lcssa, label %.lr.ph.new

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

988:                                              ; preds = %970
  %989 = fdiv double 1.000000e+00, %984
  %990 = getelementptr inbounds i8, ptr %0, i64 280
  %991 = load ptr, ptr %990, align 8, !tbaa !43
  %992 = load ptr, ptr %991, align 8, !tbaa !68
  %993 = getelementptr inbounds double, ptr %992, i64 %.0
  %994 = getelementptr inbounds i8, ptr %0, i64 224
  %995 = load i64, ptr %994, align 8, !tbaa !84
  %996 = load ptr, ptr %974, align 8, !tbaa !43
  %997 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %978)
  tail call void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef %993, i64 noundef %995, ptr noundef %996, i64 noundef 1, i64 noundef %997, double noundef %989)
  %998 = load ptr, ptr %990, align 8, !tbaa !43
  %999 = load ptr, ptr %998, align 8, !tbaa !68
  %1000 = getelementptr inbounds double, ptr %999, i64 %.0
  %1001 = load i64, ptr %994, align 8, !tbaa !84
  %1002 = getelementptr inbounds i8, ptr %0, i64 6016
  %1003 = load ptr, ptr %1002, align 8, !tbaa !43
  %1004 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %978)
  tail call void @_ZN11alglib_impl9ae_v_subdEPdlPKdlld(ptr noundef %1000, i64 noundef %1001, ptr noundef %1003, i64 noundef 1, i64 noundef %1004, double noundef %989)
  br label %.loopexit1226

1005:                                             ; preds = %1005, %.lr.ph.new
  %.1910781260 = phi i64 [ 0, %.lr.ph.new ], [ %1025, %1005 ]
  %niter = phi i64 [ 0, %.lr.ph.new ], [ %niter.next.3, %1005 ]
  %1006 = load ptr, ptr %986, align 8, !tbaa !43
  %1007 = getelementptr inbounds ptr, ptr %1006, i64 %.1910781260
  %1008 = load ptr, ptr %1007, align 8, !tbaa !68
  %1009 = getelementptr inbounds double, ptr %1008, i64 %.0
  store double 0.000000e+00, ptr %1009, align 8, !tbaa !48
  %1010 = or disjoint i64 %.1910781260, 1
  %1011 = load ptr, ptr %986, align 8, !tbaa !43
  %1012 = getelementptr inbounds ptr, ptr %1011, i64 %1010
  %1013 = load ptr, ptr %1012, align 8, !tbaa !68
  %1014 = getelementptr inbounds double, ptr %1013, i64 %.0
  store double 0.000000e+00, ptr %1014, align 8, !tbaa !48
  %1015 = or disjoint i64 %.1910781260, 2
  %1016 = load ptr, ptr %986, align 8, !tbaa !43
  %1017 = getelementptr inbounds ptr, ptr %1016, i64 %1015
  %1018 = load ptr, ptr %1017, align 8, !tbaa !68
  %1019 = getelementptr inbounds double, ptr %1018, i64 %.0
  store double 0.000000e+00, ptr %1019, align 8, !tbaa !48
  %1020 = or disjoint i64 %.1910781260, 3
  %1021 = load ptr, ptr %986, align 8, !tbaa !43
  %1022 = getelementptr inbounds ptr, ptr %1021, i64 %1020
  %1023 = load ptr, ptr %1022, align 8, !tbaa !68
  %1024 = getelementptr inbounds double, ptr %1023, i64 %.0
  store double 0.000000e+00, ptr %1024, align 8, !tbaa !48
  %1025 = add nuw nsw i64 %.1910781260, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %.loopexit1226.loopexit.unr-lcssa, label %1005, !llvm.loop !99

.loopexit1226.loopexit.unr-lcssa:                 ; preds = %1005, %.lr.ph
  %.1910781260.unr = phi i64 [ 0, %.lr.ph ], [ %1025, %1005 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit1226, label %.epil.preheader

.epil.preheader:                                  ; preds = %.loopexit1226.loopexit.unr-lcssa, %.epil.preheader
  %.1910781260.epil = phi i64 [ %1030, %.epil.preheader ], [ %.1910781260.unr, %.loopexit1226.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %.loopexit1226.loopexit.unr-lcssa ]
  %1026 = load ptr, ptr %986, align 8, !tbaa !43
  %1027 = getelementptr inbounds ptr, ptr %1026, i64 %.1910781260.epil
  %1028 = load ptr, ptr %1027, align 8, !tbaa !68
  %1029 = getelementptr inbounds double, ptr %1028, i64 %.0
  store double 0.000000e+00, ptr %1029, align 8, !tbaa !48
  %1030 = add nuw nsw i64 %.1910781260.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.loopexit1226, label %.epil.preheader, !llvm.loop !100

.loopexit1226:                                    ; preds = %.loopexit1226.loopexit.unr-lcssa, %.epil.preheader, %.preheader1225, %988
  %.101107 = phi double [ %989, %988 ], [ %984, %.preheader1225 ], [ %984, %.epil.preheader ], [ %984, %.loopexit1226.loopexit.unr-lcssa ]
  %.20 = phi i64 [ %.01059, %988 ], [ 0, %.preheader1225 ], [ %.01128, %.epil.preheader ], [ %.01128, %.loopexit1226.loopexit.unr-lcssa ]
  %1031 = add nsw i64 %.0, 1
  br label %847

1032:                                             ; preds = %847
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1033 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %1033, align 4, !tbaa !74
  br label %1523

1034:                                             ; preds = %32
  %1035 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 0, ptr %1035, align 4, !tbaa !74
  %1036 = getelementptr inbounds i8, ptr %0, i64 5496
  %1037 = load <2 x i64>, ptr %1036, align 8, !tbaa !44
  %1038 = add nsw <2 x i64> %1037, <i64 1, i64 1>
  store <2 x i64> %1038, ptr %1036, align 8, !tbaa !44
  %1039 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 0, ptr %1039, align 8, !tbaa !78
  br label %1093

1040:                                             ; preds = %842
  %1041 = getelementptr inbounds i8, ptr %0, i64 128
  %1042 = load ptr, ptr %1041, align 8, !tbaa !43
  %1043 = getelementptr inbounds i8, ptr %0, i64 512
  %1044 = load ptr, ptr %1043, align 8, !tbaa !43
  %1045 = add nsw i64 %.91155, -1
  %1046 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1045)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1042, i64 noundef 1, ptr noundef %1044, i64 noundef 1, i64 noundef %1046)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1047 = getelementptr inbounds i8, ptr %0, i64 435
  store i8 1, ptr %1047, align 1, !tbaa !67
  br label %1523

1048:                                             ; preds = %32
  %1049 = getelementptr inbounds i8, ptr %0, i64 435
  store i8 0, ptr %1049, align 1, !tbaa !67
  %1050 = getelementptr inbounds i8, ptr %0, i64 5496
  %1051 = load <2 x i64>, ptr %1050, align 8, !tbaa !44
  %1052 = add nsw <2 x i64> %1051, <i64 1, i64 1>
  store <2 x i64> %1052, ptr %1050, align 8, !tbaa !44
  %1053 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 0, ptr %1053, align 8, !tbaa !78
  br label %1093

1054:                                             ; preds = %838
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.608, ptr noundef %1)
  %1055 = getelementptr inbounds i8, ptr %0, i64 1360
  %1056 = load ptr, ptr %1055, align 8, !tbaa !43
  %1057 = add nsw i64 %.91155, -1
  %1058 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1057)
  %1059 = tail call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1056, i64 noundef 1, ptr noundef %1056, i64 noundef 1, i64 noundef %1058)
  %1060 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1059, double noundef 0.000000e+00)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1060, ptr noundef nonnull @.str.609, ptr noundef %1)
  %.not1196.not1306 = icmp sgt i64 %.91137, 0
  br i1 %.not1196.not1306, label %.lr.ph1309, label %._crit_edge1310

.lr.ph1309:                                       ; preds = %1054
  %1061 = getelementptr inbounds i8, ptr %0, i64 280
  %1062 = getelementptr inbounds i8, ptr %0, i64 1424
  br label %1063

1063:                                             ; preds = %.lr.ph1309, %1063
  %.211307 = phi i64 [ 0, %.lr.ph1309 ], [ %1080, %1063 ]
  %1064 = load ptr, ptr %1061, align 8, !tbaa !43
  %1065 = getelementptr inbounds ptr, ptr %1064, i64 %.211307
  %1066 = load ptr, ptr %1065, align 8, !tbaa !68
  %1067 = load ptr, ptr %1055, align 8, !tbaa !43
  %1068 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1057)
  %1069 = tail call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1066, i64 noundef 1, ptr noundef %1067, i64 noundef 1, i64 noundef %1068)
  %1070 = load ptr, ptr %1062, align 8, !tbaa !43
  %1071 = getelementptr inbounds double, ptr %1070, i64 %.211307
  %1072 = load double, ptr %1071, align 8, !tbaa !48
  %1073 = fsub double %1072, %1069
  %1074 = fdiv double %1073, %1059
  %1075 = load ptr, ptr %1061, align 8, !tbaa !43
  %1076 = getelementptr inbounds ptr, ptr %1075, i64 %.211307
  %1077 = load ptr, ptr %1076, align 8, !tbaa !68
  %1078 = load ptr, ptr %1055, align 8, !tbaa !43
  %1079 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1057)
  tail call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %1077, i64 noundef 1, ptr noundef %1078, i64 noundef 1, i64 noundef %1079, double noundef %1074)
  %1080 = add nuw nsw i64 %.211307, 1
  %exitcond1390.not = icmp eq i64 %1080, %.91137
  br i1 %exitcond1390.not, label %._crit_edge1310, label %1063, !llvm.loop !101

._crit_edge1310:                                  ; preds = %1063, %1054
  %.21.lcssa = phi i64 [ 0, %1054 ], [ %.91137, %1063 ]
  %1081 = add nsw i64 %.91137, -1
  %1082 = getelementptr inbounds i8, ptr %0, i64 200
  %1083 = load ptr, ptr %1082, align 8, !tbaa !43
  %1084 = getelementptr inbounds i8, ptr %0, i64 584
  %1085 = load ptr, ptr %1084, align 8, !tbaa !43
  %1086 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1081)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1083, i64 noundef 1, ptr noundef %1085, i64 noundef 1, i64 noundef %1086)
  %1087 = load ptr, ptr %1082, align 8, !tbaa !43
  %1088 = getelementptr inbounds i8, ptr %0, i64 1424
  %1089 = load ptr, ptr %1088, align 8, !tbaa !43
  %1090 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1081)
  tail call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1087, i64 noundef 1, ptr noundef %1089, i64 noundef 1, i64 noundef %1090)
  %1091 = load i64, ptr %830, align 8, !tbaa !78
  %1092 = add nsw i64 %1091, 1
  store i64 %1092, ptr %830, align 8, !tbaa !78
  br label %1093

1093:                                             ; preds = %1034, %1048, %._crit_edge1310
  %.111157 = phi i64 [ %.91155, %._crit_edge1310 ], [ %.01146, %1034 ], [ %.01146, %1048 ]
  %.111139 = phi i64 [ %.91137, %._crit_edge1310 ], [ %.01128, %1034 ], [ %.01128, %1048 ]
  %.81087 = phi double [ %1059, %._crit_edge1310 ], [ %.01079, %1034 ], [ %.01079, %1048 ]
  %.22 = phi i64 [ %.21.lcssa, %._crit_edge1310 ], [ %.01059, %1034 ], [ %.01059, %1048 ]
  %.13 = phi i64 [ %.11, %._crit_edge1310 ], [ %.0, %1034 ], [ %.0, %1048 ]
  %1094 = getelementptr inbounds i8, ptr %0, i64 208
  %1095 = getelementptr inbounds i8, ptr %0, i64 656
  tail call void @_ZN11alglib_impl11rmatrixgemmEllldPNS_9ae_matrixElllS1_llldS1_llPNS_8ae_stateE(i64 noundef %.111157, i64 noundef %.111157, i64 noundef %.111139, double noundef 2.000000e+00, ptr noundef nonnull %1094, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef nonnull %1094, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef nonnull %1095, i64 noundef 0, i64 noundef 0, ptr noundef %1)
  %1096 = getelementptr inbounds i8, ptr %0, i64 144
  %1097 = getelementptr inbounds i8, ptr %0, i64 592
  tail call void @_ZN11alglib_impl9rmatrixmvEllPNS_9ae_matrixElllPNS_9ae_vectorElS3_lPNS_8ae_stateE(i64 noundef %.111157, i64 noundef %.111139, ptr noundef nonnull %1094, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef nonnull %1096, i64 noundef 0, ptr noundef nonnull %1097, i64 noundef 0, ptr noundef %1)
  %1098 = getelementptr inbounds i8, ptr %0, i64 648
  %1099 = load ptr, ptr %1098, align 8, !tbaa !43
  %1100 = add nsw i64 %.111157, -1
  %1101 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1100)
  tail call void @_ZN11alglib_impl9ae_v_muldEPdlld(ptr noundef %1099, i64 noundef 1, i64 noundef %1101, double noundef 2.000000e+00)
  %1102 = getelementptr inbounds i8, ptr %0, i64 200
  %1103 = load ptr, ptr %1102, align 8, !tbaa !43
  %1104 = add nsw i64 %.111139, -1
  %1105 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1104)
  %1106 = tail call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1103, i64 noundef 1, ptr noundef %1103, i64 noundef 1, i64 noundef %1105)
  %1107 = getelementptr inbounds i8, ptr %0, i64 520
  store double %1106, ptr %1107, align 8, !tbaa !88
  %1108 = getelementptr inbounds i8, ptr %0, i64 584
  %1109 = load ptr, ptr %1108, align 8, !tbaa !43
  %1110 = load ptr, ptr %1102, align 8, !tbaa !43
  %1111 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1104)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1109, i64 noundef 1, ptr noundef %1110, i64 noundef 1, i64 noundef %1111)
  %.phi.trans.insert1399 = getelementptr inbounds i8, ptr %0, i64 440
  %.pre1400 = load i64, ptr %.phi.trans.insert1399, align 8, !tbaa !63
  br label %1112

1112:                                             ; preds = %825, %1093
  %1113 = phi i64 [ %.pre1400, %1093 ], [ %828, %825 ]
  %.121158 = phi i64 [ %.111157, %1093 ], [ %.91155, %825 ]
  %.121140 = phi i64 [ %.111139, %1093 ], [ %.91137, %825 ]
  %.21121 = phi i8 [ 1, %1093 ], [ 0, %825 ]
  %.111108 = phi double [ %1106, %1093 ], [ %.81105, %825 ]
  %.91088 = phi double [ %.81087, %1093 ], [ %.61085, %825 ]
  %.23 = phi i64 [ %.22, %1093 ], [ %.171076, %825 ]
  %.14 = phi i64 [ %.13, %1093 ], [ %.11, %825 ]
  %.not1197 = icmp eq i64 %1113, 2
  br i1 %.not1197, label %1114, label %1146

1114:                                             ; preds = %1112
  %1115 = getelementptr inbounds i8, ptr %0, i64 449
  %1116 = load i8, ptr %1115, align 1, !tbaa !57, !range !46, !noundef !47
  %1117 = trunc nuw i8 %1116 to i1
  %1118 = xor i1 %1117, true
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1118, ptr noundef nonnull @.str.612, ptr noundef %1)
  %1119 = getelementptr inbounds i8, ptr %0, i64 128
  %1120 = load ptr, ptr %1119, align 8, !tbaa !43
  %1121 = getelementptr inbounds i8, ptr %0, i64 512
  %1122 = load ptr, ptr %1121, align 8, !tbaa !43
  %1123 = add nsw i64 %.121158, -1
  %1124 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1123)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1120, i64 noundef 1, ptr noundef %1122, i64 noundef 1, i64 noundef %1124)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1125 = getelementptr inbounds i8, ptr %0, i64 434
  store i8 1, ptr %1125, align 2, !tbaa !102
  br label %1523

1126:                                             ; preds = %32
  %1127 = getelementptr inbounds i8, ptr %0, i64 434
  store i8 0, ptr %1127, align 2, !tbaa !102
  %1128 = getelementptr inbounds i8, ptr %0, i64 5496
  %1129 = load i64, ptr %1128, align 8, !tbaa !76
  %1130 = add nsw i64 %1129, 1
  store i64 %1130, ptr %1128, align 8, !tbaa !76
  %1131 = getelementptr inbounds i8, ptr %0, i64 5512
  %1132 = load <2 x i64>, ptr %1131, align 8, !tbaa !44
  %1133 = add nsw <2 x i64> %1132, <i64 1, i64 1>
  store <2 x i64> %1133, ptr %1131, align 8, !tbaa !44
  %1134 = getelementptr inbounds i8, ptr %0, i64 288
  %1135 = getelementptr inbounds i8, ptr %0, i64 656
  tail call void @_ZN11alglib_impl11rmatrixcopyEllPNS_9ae_matrixEllS1_llPNS_8ae_stateE(i64 noundef %.01146, i64 noundef %.01146, ptr noundef nonnull %1134, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %1135, i64 noundef 0, i64 noundef 0, ptr noundef %1)
  %1136 = getelementptr inbounds i8, ptr %0, i64 648
  %1137 = load ptr, ptr %1136, align 8, !tbaa !43
  %1138 = getelementptr inbounds i8, ptr %0, i64 424
  %1139 = load ptr, ptr %1138, align 8, !tbaa !43
  %1140 = add nsw i64 %.01146, -1
  %1141 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1140)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1137, i64 noundef 1, ptr noundef %1139, i64 noundef 1, i64 noundef %1141)
  %1142 = getelementptr inbounds i8, ptr %0, i64 136
  %1143 = load double, ptr %1142, align 8, !tbaa !75
  %1144 = getelementptr inbounds i8, ptr %0, i64 520
  store double %1143, ptr %1144, align 8, !tbaa !88
  %1145 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 0, ptr %1145, align 8, !tbaa !78
  br label %1146

1146:                                             ; preds = %1112, %1126
  %.131159 = phi i64 [ %.121158, %1112 ], [ %.01146, %1126 ]
  %.131141 = phi i64 [ %.121140, %1112 ], [ %.01128, %1126 ]
  %.31122 = phi i8 [ %.21121, %1112 ], [ 1, %1126 ]
  %.101089 = phi double [ %.91088, %1112 ], [ %.01079, %1126 ]
  %.15 = phi i64 [ %.14, %1112 ], [ %.0, %1126 ]
  %1147 = trunc nuw i8 %.31122 to i1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1147, ptr noundef nonnull @.str.610, ptr noundef %1)
  %1148 = getelementptr inbounds i8, ptr %0, i64 1432
  store i8 0, ptr %1148, align 8, !tbaa !79
  %1149 = getelementptr inbounds i8, ptr %0, i64 1433
  store i8 0, ptr %1149, align 1, !tbaa !80
  %1150 = getelementptr inbounds i8, ptr %0, i64 520
  %1151 = load double, ptr %1150, align 8, !tbaa !88
  %.not1198.not1312 = icmp sgt i64 %.131159, 0
  br i1 %.not1198.not1312, label %.lr.ph1316, label %._crit_edge1317

.lr.ph1316:                                       ; preds = %1146
  %1152 = getelementptr inbounds i8, ptr %0, i64 648
  %1153 = load ptr, ptr %1152, align 8, !tbaa !43
  %xtraiter1478 = and i64 %.131159, 3
  %1154 = icmp ult i64 %.131159, 4
  br i1 %1154, label %._crit_edge1317.loopexit.unr-lcssa, label %.lr.ph1316.new

.lr.ph1316.new:                                   ; preds = %.lr.ph1316
  %unroll_iter1482 = and i64 %.131159, 9223372036854775804
  br label %1155

1155:                                             ; preds = %1155, %.lr.ph1316.new
  %.241314 = phi i64 [ 0, %.lr.ph1316.new ], [ %1171, %1155 ]
  %.1211091313 = phi double [ %1151, %.lr.ph1316.new ], [ %1170, %1155 ]
  %niter1483 = phi i64 [ 0, %.lr.ph1316.new ], [ %niter1483.next.3, %1155 ]
  %1156 = getelementptr inbounds double, ptr %1153, i64 %.241314
  %1157 = load double, ptr %1156, align 8, !tbaa !48
  %1158 = tail call double @llvm.fmuladd.f64(double %.1211091313, double 1.000000e-01, double %1157)
  %1159 = or disjoint i64 %.241314, 1
  %1160 = getelementptr inbounds double, ptr %1153, i64 %1159
  %1161 = load double, ptr %1160, align 8, !tbaa !48
  %1162 = tail call double @llvm.fmuladd.f64(double %1158, double 1.000000e-01, double %1161)
  %1163 = or disjoint i64 %.241314, 2
  %1164 = getelementptr inbounds double, ptr %1153, i64 %1163
  %1165 = load double, ptr %1164, align 8, !tbaa !48
  %1166 = tail call double @llvm.fmuladd.f64(double %1162, double 1.000000e-01, double %1165)
  %1167 = or disjoint i64 %.241314, 3
  %1168 = getelementptr inbounds double, ptr %1153, i64 %1167
  %1169 = load double, ptr %1168, align 8, !tbaa !48
  %1170 = tail call double @llvm.fmuladd.f64(double %1166, double 1.000000e-01, double %1169)
  %1171 = add nuw nsw i64 %.241314, 4
  %niter1483.next.3 = add i64 %niter1483, 4
  %niter1483.ncmp.3 = icmp eq i64 %niter1483.next.3, %unroll_iter1482
  br i1 %niter1483.ncmp.3, label %._crit_edge1317.loopexit.unr-lcssa, label %1155, !llvm.loop !103

._crit_edge1317.loopexit.unr-lcssa:               ; preds = %1155, %.lr.ph1316
  %.lcssa1450.ph = phi double [ poison, %.lr.ph1316 ], [ %1170, %1155 ]
  %.241314.unr = phi i64 [ 0, %.lr.ph1316 ], [ %1171, %1155 ]
  %.1211091313.unr = phi double [ %1151, %.lr.ph1316 ], [ %1170, %1155 ]
  %lcmp.mod1480.not = icmp eq i64 %xtraiter1478, 0
  br i1 %lcmp.mod1480.not, label %._crit_edge1317, label %.epil.preheader1477

.epil.preheader1477:                              ; preds = %._crit_edge1317.loopexit.unr-lcssa, %.epil.preheader1477
  %.241314.epil = phi i64 [ %1175, %.epil.preheader1477 ], [ %.241314.unr, %._crit_edge1317.loopexit.unr-lcssa ]
  %.1211091313.epil = phi double [ %1174, %.epil.preheader1477 ], [ %.1211091313.unr, %._crit_edge1317.loopexit.unr-lcssa ]
  %epil.iter1479 = phi i64 [ %epil.iter1479.next, %.epil.preheader1477 ], [ 0, %._crit_edge1317.loopexit.unr-lcssa ]
  %1172 = getelementptr inbounds double, ptr %1153, i64 %.241314.epil
  %1173 = load double, ptr %1172, align 8, !tbaa !48
  %1174 = tail call double @llvm.fmuladd.f64(double %.1211091313.epil, double 1.000000e-01, double %1173)
  %1175 = add nuw nsw i64 %.241314.epil, 1
  %epil.iter1479.next = add i64 %epil.iter1479, 1
  %epil.iter1479.cmp.not = icmp eq i64 %epil.iter1479.next, %xtraiter1478
  br i1 %epil.iter1479.cmp.not, label %._crit_edge1317, label %.epil.preheader1477, !llvm.loop !104

._crit_edge1317:                                  ; preds = %._crit_edge1317.loopexit.unr-lcssa, %.epil.preheader1477, %1146
  %.121109.lcssa = phi double [ %1151, %1146 ], [ %.lcssa1450.ph, %._crit_edge1317.loopexit.unr-lcssa ], [ %1174, %.epil.preheader1477 ]
  %.24.lcssa = phi i64 [ 0, %1146 ], [ %.131159, %.epil.preheader1477 ], [ %.131159, %._crit_edge1317.loopexit.unr-lcssa ]
  %1176 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %.121109.lcssa, ptr noundef %1)
  br i1 %1176, label %1179, label %1177

1177:                                             ; preds = %._crit_edge1317
  %1178 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 -8, ptr %1178, align 8, !tbaa !62
  br label %1547

1179:                                             ; preds = %._crit_edge1317
  %1180 = getelementptr inbounds i8, ptr %0, i64 1152
  %1181 = load double, ptr %1180, align 8, !tbaa !91
  %1182 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1181, double noundef 0.000000e+00)
  br i1 %1182, label %1183, label %1205

1183:                                             ; preds = %1179
  store double 0.000000e+00, ptr %1180, align 8, !tbaa !91
  br i1 %.not1198.not1312, label %.lr.ph1323, label %._crit_edge1324

.lr.ph1323:                                       ; preds = %1183
  %1184 = getelementptr inbounds i8, ptr %0, i64 728
  %1185 = getelementptr inbounds i8, ptr %0, i64 1048
  br label %1186

1186:                                             ; preds = %.lr.ph1323, %1186
  %1187 = phi double [ 0.000000e+00, %.lr.ph1323 ], [ %1199, %1186 ]
  %.251321 = phi i64 [ 0, %.lr.ph1323 ], [ %1200, %1186 ]
  %1188 = load ptr, ptr %1184, align 8, !tbaa !43
  %1189 = getelementptr inbounds ptr, ptr %1188, i64 %.251321
  %1190 = load ptr, ptr %1189, align 8, !tbaa !68
  %1191 = getelementptr inbounds double, ptr %1190, i64 %.251321
  %1192 = load double, ptr %1191, align 8, !tbaa !48
  %1193 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1192, ptr noundef %1)
  %1194 = load ptr, ptr %1185, align 8, !tbaa !43
  %1195 = getelementptr inbounds double, ptr %1194, i64 %.251321
  %1196 = load double, ptr %1195, align 8, !tbaa !48
  %1197 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1196, ptr noundef %1)
  %1198 = fmul double %1193, %1197
  %1199 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1187, double noundef %1198, ptr noundef %1)
  store double %1199, ptr %1180, align 8, !tbaa !91
  %1200 = add nuw nsw i64 %.251321, 1
  %exitcond1392.not = icmp eq i64 %1200, %.131159
  br i1 %exitcond1392.not, label %._crit_edge1324, label %1186, !llvm.loop !105

._crit_edge1324:                                  ; preds = %1186, %1183
  %1201 = phi double [ 0.000000e+00, %1183 ], [ %1199, %1186 ]
  %.25.lcssa = phi i64 [ 0, %1183 ], [ %.131159, %1186 ]
  %1202 = fmul double %1201, 1.000000e-03
  store double %1202, ptr %1180, align 8, !tbaa !91
  %1203 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1202, double noundef 0.000000e+00)
  br i1 %1203, label %1204, label %1205

1204:                                             ; preds = %._crit_edge1324
  store double 1.000000e+00, ptr %1180, align 8, !tbaa !91
  br label %1205

1205:                                             ; preds = %._crit_edge1324, %1204, %1179
  %.26 = phi i64 [ %.25.lcssa, %1204 ], [ %.25.lcssa, %._crit_edge1324 ], [ %.24.lcssa, %1179 ]
  store i64 -99, ptr %3, align 8, !tbaa !44
  br label %.preheader1221

.preheader1221:                                   ; preds = %1205, %1370
  %.141160.ph = phi i64 [ %.01146, %1370 ], [ %.131159, %1205 ]
  %.141142.ph = phi i64 [ %.01128, %1370 ], [ %.131141, %1205 ]
  %.41123.ph = phi i8 [ %.01119, %1370 ], [ %.31122, %1205 ]
  %.131110.ph = phi double [ %.161113, %1370 ], [ %.121109.lcssa, %1205 ]
  %.111090.ph = phi double [ %.01079, %1370 ], [ %.101089, %1205 ]
  %.27.ph = phi i64 [ %.01059, %1370 ], [ %.26, %1205 ]
  %.16.ph = phi i64 [ %.0, %1370 ], [ %.15, %1205 ]
  %1206 = getelementptr inbounds i8, ptr %0, i64 1168
  %1207 = getelementptr inbounds i8, ptr %0, i64 1160
  %1208 = getelementptr inbounds i8, ptr %0, i64 13240
  %1209 = getelementptr inbounds i8, ptr %0, i64 456
  %1210 = getelementptr inbounds i8, ptr %0, i64 592
  %1211 = getelementptr inbounds i8, ptr %0, i64 656
  %.not1200.not1326 = icmp sgt i64 %.141160.ph, 0
  %1212 = getelementptr inbounds i8, ptr %0, i64 728
  %1213 = getelementptr inbounds i8, ptr %0, i64 1152
  %1214 = getelementptr inbounds i8, ptr %0, i64 1048
  %1215 = getelementptr inbounds i8, ptr %0, i64 5920
  %1216 = add nsw i64 %.141160.ph, -1
  %1217 = getelementptr inbounds i8, ptr %0, i64 5864
  %1218 = getelementptr inbounds i8, ptr %0, i64 1240
  %1219 = getelementptr inbounds i8, ptr %0, i64 48472
  %1220 = getelementptr inbounds i8, ptr %0, i64 48504
  %1221 = getelementptr inbounds i8, ptr %0, i64 1296
  %1222 = getelementptr inbounds i8, ptr %0, i64 512
  %1223 = getelementptr inbounds i8, ptr %0, i64 48
  %smax1394 = tail call i64 @llvm.smax.i64(i64 %.141160.ph, i64 0)
  br label %1224

1224:                                             ; preds = %.preheader1221, %.thread
  %.41123 = phi i8 [ %.511241215, %.thread ], [ %.41123.ph, %.preheader1221 ]
  %.131110 = phi double [ %.1411111216, %.thread ], [ %.131110.ph, %.preheader1221 ]
  %.27 = phi i64 [ %.28.lcssa, %.thread ], [ %.27.ph, %.preheader1221 ]
  %1225 = load i64, ptr %1206, align 8, !tbaa !78
  %1226 = icmp sgt i64 %1225, 0
  br i1 %1226, label %1227, label %1232

1227:                                             ; preds = %1224
  %1228 = load double, ptr %1207, align 8, !tbaa !96
  %1229 = load double, ptr @_ZN11alglib_implL18minlm_suspiciousnuE, align 8, !tbaa !48
  %1230 = tail call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1228, double noundef %1229)
  br i1 %1230, label %1231, label %1232

1231:                                             ; preds = %1227
  store i64 -2, ptr %3, align 8, !tbaa !44
  br label %1376

1232:                                             ; preds = %1227, %1224
  tail call void @_ZN11alglib_impl25minqpsetstartingpointfastEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1208, ptr noundef nonnull %1209, ptr noundef %1)
  tail call void @_ZN11alglib_impl18minqpsetoriginfastEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1208, ptr noundef nonnull %1209, ptr noundef %1)
  tail call void @_ZN11alglib_impl22minqpsetlineartermfastEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1208, ptr noundef nonnull %1210, ptr noundef %1)
  tail call void @_ZN11alglib_impl25minqpsetquadratictermfastEPNS_10minqpstateEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %1208, ptr noundef nonnull %1211, i1 noundef zeroext true, double noundef 0.000000e+00, ptr noundef %1)
  br i1 %.not1200.not1326, label %.lr.ph1329, label %._crit_edge1330

.lr.ph1329:                                       ; preds = %1232, %.lr.ph1329
  %.281327 = phi i64 [ %1247, %.lr.ph1329 ], [ 0, %1232 ]
  %1233 = load ptr, ptr %1212, align 8, !tbaa !43
  %1234 = getelementptr inbounds ptr, ptr %1233, i64 %.281327
  %1235 = load ptr, ptr %1234, align 8, !tbaa !68
  %1236 = getelementptr inbounds double, ptr %1235, i64 %.281327
  %1237 = load double, ptr %1236, align 8, !tbaa !48
  %1238 = load double, ptr %1213, align 8, !tbaa !91
  %1239 = load ptr, ptr %1214, align 8, !tbaa !43
  %1240 = getelementptr inbounds double, ptr %1239, i64 %.281327
  %1241 = load double, ptr %1240, align 8, !tbaa !48
  %1242 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1241, ptr noundef %1)
  %1243 = fdiv double %1238, %1242
  %1244 = fadd double %1237, %1243
  %1245 = load ptr, ptr %1215, align 8, !tbaa !43
  %1246 = getelementptr inbounds double, ptr %1245, i64 %.281327
  store double %1244, ptr %1246, align 8, !tbaa !48
  %1247 = add nuw nsw i64 %.281327, 1
  %exitcond1393.not = icmp eq i64 %1247, %.141160.ph
  br i1 %exitcond1393.not, label %._crit_edge1330, label %.lr.ph1329, !llvm.loop !106

._crit_edge1330:                                  ; preds = %.lr.ph1329, %1232
  %.28.lcssa = phi i64 [ 0, %1232 ], [ %.141160.ph, %.lr.ph1329 ]
  tail call void @_ZN11alglib_impl20minqprewritediagonalEPNS_10minqpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1208, ptr noundef nonnull %1217, ptr noundef %1)
  tail call void @_ZN11alglib_impl13minqpoptimizeEPNS_10minqpstateEPNS_8ae_stateE(ptr noundef nonnull %1208, ptr noundef %1)
  tail call void @_ZN11alglib_impl15minqpresultsbufEPNS_10minqpstateEPNS_9ae_vectorEPNS_11minqpreportEPNS_8ae_stateE(ptr noundef nonnull %1208, ptr noundef nonnull %1218, ptr noundef nonnull %1219, ptr noundef %1)
  %1248 = load i64, ptr %1220, align 8, !tbaa !107
  %1249 = icmp sgt i64 %1248, 0
  br i1 %1249, label %1250, label %switch.edge

1250:                                             ; preds = %._crit_edge1330
  %1251 = load ptr, ptr %1221, align 8, !tbaa !43
  %1252 = load ptr, ptr %1222, align 8, !tbaa !43
  %1253 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  tail call void @_ZN11alglib_impl8ae_v_subEPdlPKdll(ptr noundef %1251, i64 noundef 1, ptr noundef %1252, i64 noundef 1, i64 noundef %1253)
  %1254 = load ptr, ptr %1221, align 8, !tbaa !43
  %1255 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  %1256 = tail call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1254, i64 noundef 1, ptr noundef %1254, i64 noundef 1, i64 noundef %1255)
  %1257 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1256, ptr noundef %1)
  br i1 %1257, label %1258, label %.thread

1258:                                             ; preds = %1250
  %1259 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1256, ptr noundef %1)
  %1260 = load double, ptr %1223, align 8, !tbaa !60
  %1261 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1260, double noundef 0.000000e+00)
  br i1 %1261, label %1265, label %.thread1217

switch.edge:                                      ; preds = %._crit_edge1330
  %.off = add nsw i64 %1248, 5
  %switch1211 = icmp ult i64 %.off, 3
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %switch1211, ptr noundef nonnull @.str.613, ptr noundef %1)
  %1262 = load i64, ptr %1220, align 8, !tbaa !107
  %1263 = icmp eq i64 %1262, -3
  br i1 %1263, label %1264, label %.thread

1264:                                             ; preds = %switch.edge
  store i64 -3, ptr %3, align 8, !tbaa !44
  br label %1376

1265:                                             ; preds = %1258
  %1266 = load double, ptr %1223, align 8, !tbaa !60
  %1267 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1259, double noundef %1266)
  %not. = xor i1 %1267, true
  %spec.select1209 = zext i1 %not. to i8
  br i1 %1267, label %.thread, label %.thread1217

.thread:                                          ; preds = %switch.edge, %1250, %1265
  %.1411111216 = phi double [ %1259, %1265 ], [ %.131110, %switch.edge ], [ %1256, %1250 ]
  %.511241215 = phi i8 [ %spec.select1209, %1265 ], [ 0, %switch.edge ], [ 0, %1250 ]
  %1268 = tail call noundef zeroext i1 @_ZN11alglib_implL20minlm_increaselambdaEPdS0_PNS_8ae_stateE(ptr noundef nonnull %1213, ptr noundef nonnull %1207, ptr noundef %1)
  br i1 %1268, label %1224, label %1269

1269:                                             ; preds = %.thread
  store i64 -1, ptr %3, align 8, !tbaa !44
  br label %1376

.thread1217:                                      ; preds = %1258, %1265
  %.511241220 = phi i8 [ %spec.select1209, %1265 ], [ 1, %1258 ]
  %1270 = getelementptr inbounds i8, ptr %0, i64 1360
  %1271 = load ptr, ptr %1270, align 8, !tbaa !43
  %1272 = load ptr, ptr %1222, align 8, !tbaa !43
  %1273 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1271, i64 noundef 1, ptr noundef %1272, i64 noundef 1, i64 noundef %1273)
  %1274 = load ptr, ptr %1270, align 8, !tbaa !43
  %1275 = load ptr, ptr %1221, align 8, !tbaa !43
  %1276 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  tail call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1274, i64 noundef 1, ptr noundef %1275, i64 noundef 1, i64 noundef %1276)
  %1277 = load ptr, ptr %1270, align 8, !tbaa !43
  %1278 = load ptr, ptr %1222, align 8, !tbaa !43
  %1279 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  tail call void @_ZN11alglib_impl8ae_v_subEPdlPKdll(ptr noundef %1277, i64 noundef 1, ptr noundef %1278, i64 noundef 1, i64 noundef %1279)
  %1280 = getelementptr inbounds i8, ptr %0, i64 1432
  store i8 1, ptr %1280, align 8, !tbaa !79
  br i1 %.not1200.not1326, label %.lr.ph1335, label %._crit_edge1336

.lr.ph1335:                                       ; preds = %.thread1217, %.lr.ph1335
  %.291334 = phi i64 [ %1290, %.lr.ph1335 ], [ 0, %.thread1217 ]
  %.1511121333 = phi double [ %1289, %.lr.ph1335 ], [ 0.000000e+00, %.thread1217 ]
  %1281 = load ptr, ptr %1270, align 8, !tbaa !43
  %1282 = getelementptr inbounds double, ptr %1281, i64 %.291334
  %1283 = load double, ptr %1282, align 8, !tbaa !48
  %1284 = load ptr, ptr %1214, align 8, !tbaa !43
  %1285 = getelementptr inbounds double, ptr %1284, i64 %.291334
  %1286 = load double, ptr %1285, align 8, !tbaa !48
  %1287 = fdiv double %1283, %1286
  %1288 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1287, ptr noundef %1)
  %1289 = fadd double %.1511121333, %1288
  %1290 = add nuw nsw i64 %.291334, 1
  %exitcond1395.not = icmp eq i64 %1290, %.141160.ph
  br i1 %exitcond1395.not, label %._crit_edge1336, label %.lr.ph1335, !llvm.loop !108

._crit_edge1336:                                  ; preds = %.lr.ph1335, %.thread1217
  %.151112.lcssa = phi double [ 0.000000e+00, %.thread1217 ], [ %1289, %.lr.ph1335 ]
  %.29.lcssa = phi i64 [ 0, %.thread1217 ], [ %.141160.ph, %.lr.ph1335 ]
  %1291 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.151112.lcssa, ptr noundef %1)
  %1292 = getelementptr inbounds i8, ptr %0, i64 24
  %1293 = load double, ptr %1292, align 8, !tbaa !61
  %1294 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1291, double noundef %1293)
  br i1 %1294, label %1314, label %1295

1295:                                             ; preds = %._crit_edge1336
  %1296 = load i64, ptr %1206, align 8, !tbaa !78
  %.not1202 = icmp eq i64 %1296, 0
  br i1 %.not1202, label %1297, label %1313

1297:                                             ; preds = %1295
  %1298 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 2, ptr %1298, align 8, !tbaa !62
  %1299 = getelementptr inbounds i8, ptr %0, i64 40
  %1300 = load i8, ptr %1299, align 8, !tbaa !71, !range !46, !noundef !47
  %1301 = trunc nuw i8 %1300 to i1
  br i1 %1301, label %1302, label %1547

1302:                                             ; preds = %1297
  %1303 = getelementptr inbounds i8, ptr %0, i64 128
  %1304 = load ptr, ptr %1303, align 8, !tbaa !43
  %1305 = load ptr, ptr %1222, align 8, !tbaa !43
  %1306 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1304, i64 noundef 1, ptr noundef %1305, i64 noundef 1, i64 noundef %1306)
  %1307 = getelementptr inbounds i8, ptr %0, i64 520
  %1308 = load double, ptr %1307, align 8, !tbaa !88
  %1309 = getelementptr inbounds i8, ptr %0, i64 136
  store double %1308, ptr %1309, align 8, !tbaa !75
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1310 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %1310, align 1, !tbaa !77
  br label %1523

1311:                                             ; preds = %32
  %1312 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %1312, align 1, !tbaa !77
  br label %1547

1313:                                             ; preds = %1295
  store i64 -2, ptr %3, align 8, !tbaa !44
  br label %1376

1314:                                             ; preds = %._crit_edge1336
  %1315 = getelementptr inbounds i8, ptr %0, i64 449
  %1316 = load i8, ptr %1315, align 1, !tbaa !57, !range !46, !noundef !47
  %1317 = trunc nuw i8 %1316 to i1
  br i1 %1317, label %1322, label %1318

1318:                                             ; preds = %1314
  %1319 = getelementptr inbounds i8, ptr %0, i64 448
  %1320 = load i8, ptr %1319, align 8, !tbaa !72, !range !46, !noundef !47
  %1321 = trunc nuw i8 %1320 to i1
  br label %1322

1322:                                             ; preds = %1318, %1314
  %1323 = phi i1 [ true, %1314 ], [ %1321, %1318 ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1323, ptr noundef nonnull @.str.606, ptr noundef %1)
  %1324 = getelementptr inbounds i8, ptr %0, i64 128
  %1325 = load ptr, ptr %1324, align 8, !tbaa !43
  %1326 = load ptr, ptr %1222, align 8, !tbaa !43
  %1327 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1325, i64 noundef 1, ptr noundef %1326, i64 noundef 1, i64 noundef %1327)
  %1328 = load ptr, ptr %1324, align 8, !tbaa !43
  %1329 = load ptr, ptr %1221, align 8, !tbaa !43
  %1330 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1216)
  tail call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1328, i64 noundef 1, ptr noundef %1329, i64 noundef 1, i64 noundef %1330)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1331 = load i8, ptr %1315, align 1, !tbaa !57, !range !46, !noundef !47
  %1332 = trunc nuw i8 %1331 to i1
  br i1 %1332, label %1333, label %1352

1333:                                             ; preds = %1322
  %1334 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 1, ptr %1334, align 4, !tbaa !74
  br label %1523

1335:                                             ; preds = %32
  %1336 = getelementptr inbounds i8, ptr %0, i64 436
  store i8 0, ptr %1336, align 4, !tbaa !74
  %1337 = getelementptr inbounds i8, ptr %0, i64 200
  %1338 = load ptr, ptr %1337, align 8, !tbaa !43
  %1339 = add nsw i64 %.01128, -1
  %1340 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1339)
  %1341 = tail call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1338, i64 noundef 1, ptr noundef %1338, i64 noundef 1, i64 noundef %1340)
  %1342 = getelementptr inbounds i8, ptr %0, i64 136
  store double %1341, ptr %1342, align 8, !tbaa !75
  %1343 = getelementptr inbounds i8, ptr %0, i64 1424
  %1344 = load ptr, ptr %1343, align 8, !tbaa !43
  %1345 = load ptr, ptr %1337, align 8, !tbaa !43
  %1346 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1339)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1344, i64 noundef 1, ptr noundef %1345, i64 noundef 1, i64 noundef %1346)
  %1347 = load ptr, ptr %1343, align 8, !tbaa !43
  %1348 = getelementptr inbounds i8, ptr %0, i64 584
  %1349 = load ptr, ptr %1348, align 8, !tbaa !43
  %1350 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1339)
  tail call void @_ZN11alglib_impl8ae_v_subEPdlPKdll(ptr noundef %1347, i64 noundef 1, ptr noundef %1349, i64 noundef 1, i64 noundef %1350)
  %1351 = getelementptr inbounds i8, ptr %0, i64 1433
  store i8 1, ptr %1351, align 1, !tbaa !80
  br label %1356

1352:                                             ; preds = %1322
  %1353 = getelementptr inbounds i8, ptr %0, i64 432
  store i8 1, ptr %1353, align 8, !tbaa !73
  br label %1523

1354:                                             ; preds = %32
  %1355 = getelementptr inbounds i8, ptr %0, i64 432
  store i8 0, ptr %1355, align 8, !tbaa !73
  br label %1356

1356:                                             ; preds = %1354, %1335
  %.161113 = phi double [ %1341, %1335 ], [ %.01097, %1354 ]
  %1357 = getelementptr inbounds i8, ptr %0, i64 5496
  %1358 = load i64, ptr %1357, align 8, !tbaa !76
  %1359 = add nsw i64 %1358, 1
  store i64 %1359, ptr %1357, align 8, !tbaa !76
  %1360 = getelementptr inbounds i8, ptr %0, i64 136
  %1361 = load double, ptr %1360, align 8, !tbaa !75
  %1362 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1361, ptr noundef %1)
  br i1 %1362, label %1365, label %1363

1363:                                             ; preds = %1356
  %1364 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 -8, ptr %1364, align 8, !tbaa !62
  br label %1547

1365:                                             ; preds = %1356
  %1366 = load double, ptr %1360, align 8, !tbaa !75
  %1367 = getelementptr inbounds i8, ptr %0, i64 520
  %1368 = load double, ptr %1367, align 8, !tbaa !88
  %1369 = tail call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1366, double noundef %1368)
  br i1 %1369, label %1370, label %1375

1370:                                             ; preds = %1365
  %1371 = getelementptr inbounds i8, ptr %0, i64 1152
  %1372 = getelementptr inbounds i8, ptr %0, i64 1160
  %1373 = tail call noundef zeroext i1 @_ZN11alglib_implL20minlm_increaselambdaEPdS0_PNS_8ae_stateE(ptr noundef nonnull %1371, ptr noundef nonnull %1372, ptr noundef %1)
  br i1 %1373, label %.preheader1221, label %1374

1374:                                             ; preds = %1370
  store i64 -1, ptr %3, align 8, !tbaa !44
  br label %1376

1375:                                             ; preds = %1365
  store i64 0, ptr %3, align 8, !tbaa !44
  br label %1376

1376:                                             ; preds = %1375, %1374, %1313, %1269, %1264, %1231
  %1377 = phi i64 [ -2, %1231 ], [ -2, %1313 ], [ -1, %1269 ], [ -3, %1264 ], [ -1, %1374 ], [ 0, %1375 ]
  %.151161 = phi i64 [ %.141160.ph, %1231 ], [ %.141160.ph, %1313 ], [ %.141160.ph, %1269 ], [ %.141160.ph, %1264 ], [ %.01146, %1374 ], [ %.01146, %1375 ]
  %.151143 = phi i64 [ %.141142.ph, %1231 ], [ %.141142.ph, %1313 ], [ %.141142.ph, %1269 ], [ %.141142.ph, %1264 ], [ %.01128, %1374 ], [ %.01128, %1375 ]
  %.61125 = phi i8 [ %.41123, %1231 ], [ %.511241220, %1313 ], [ %.511241215, %1269 ], [ 1, %1264 ], [ %.01119, %1374 ], [ %.01119, %1375 ]
  %.171114 = phi double [ %.131110, %1231 ], [ %1291, %1313 ], [ %.1411111216, %1269 ], [ %.131110, %1264 ], [ %.161113, %1374 ], [ %.161113, %1375 ]
  %.121091 = phi double [ %.111090.ph, %1231 ], [ %.111090.ph, %1313 ], [ %.111090.ph, %1269 ], [ %.111090.ph, %1264 ], [ %.01079, %1374 ], [ %.01079, %1375 ]
  %.30 = phi i64 [ %.27, %1231 ], [ %.29.lcssa, %1313 ], [ %smax1394, %1269 ], [ %smax1394, %1264 ], [ %.01059, %1374 ], [ %.01059, %1375 ]
  %.17 = phi i64 [ %.16.ph, %1231 ], [ %.16.ph, %1313 ], [ %.16.ph, %1269 ], [ %.16.ph, %1264 ], [ %.0, %1374 ], [ %.0, %1375 ]
  %1378 = getelementptr inbounds i8, ptr %0, i64 438
  %1379 = load i8, ptr %1378, align 2, !tbaa !51, !range !46, !noundef !47
  %1380 = trunc nuw i8 %1379 to i1
  br i1 %1380, label %1381, label %1389

1381:                                             ; preds = %1376
  %1382 = getelementptr inbounds i8, ptr %0, i64 128
  %1383 = load ptr, ptr %1382, align 8, !tbaa !43
  %1384 = getelementptr inbounds i8, ptr %0, i64 512
  %1385 = load ptr, ptr %1384, align 8, !tbaa !43
  %1386 = add nsw i64 %.151161, -1
  %1387 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1386)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1383, i64 noundef 1, ptr noundef %1385, i64 noundef 1, i64 noundef %1387)
  %1388 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 8, ptr %1388, align 8, !tbaa !62
  br label %1547

1389:                                             ; preds = %1376
  %1390 = getelementptr inbounds i8, ptr %0, i64 1160
  store double 1.000000e+00, ptr %1390, align 8, !tbaa !96
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.610, ptr noundef %1)
  switch i64 %1377, label %1398 [
    i64 -3, label %1391
    i64 -2, label %1393
    i64 -1, label %1505
  ]

1391:                                             ; preds = %1389
  %1392 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 -3, ptr %1392, align 8, !tbaa !62
  br label %1547

1393:                                             ; preds = %1389
  %1394 = getelementptr inbounds i8, ptr %0, i64 56
  %1395 = load i64, ptr %1394, align 8, !tbaa !56
  %1396 = add nsw i64 %1395, 1
  %1397 = getelementptr inbounds i8, ptr %0, i64 1168
  store i64 %1396, ptr %1397, align 8, !tbaa !78
  br label %825

1398:                                             ; preds = %1389
  %1399 = getelementptr inbounds i8, ptr %0, i64 1432
  %1400 = load i8, ptr %1399, align 8, !tbaa !79, !range !46, !noundef !47
  %1401 = trunc nuw i8 %1400 to i1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1401, ptr noundef nonnull @.str.611, ptr noundef %1)
  %1402 = add nsw i64 %.151161, -1
  %.not1203.not1339 = icmp sgt i64 %.151161, 0
  br i1 %.not1203.not1339, label %.lr.ph1343, label %._crit_edge1344

.lr.ph1343:                                       ; preds = %1398
  %1403 = getelementptr inbounds i8, ptr %0, i64 728
  %1404 = getelementptr inbounds i8, ptr %0, i64 1360
  %1405 = getelementptr inbounds i8, ptr %0, i64 648
  %.pre1401 = load ptr, ptr %1404, align 8, !tbaa !43
  br label %1406

1406:                                             ; preds = %.lr.ph1343, %1406
  %1407 = phi ptr [ %.pre1401, %.lr.ph1343 ], [ %1413, %1406 ]
  %.311341 = phi i64 [ 0, %.lr.ph1343 ], [ %1422, %1406 ]
  %.1310921340 = phi double [ 0.000000e+00, %.lr.ph1343 ], [ %1421, %1406 ]
  %1408 = load ptr, ptr %1403, align 8, !tbaa !43
  %1409 = getelementptr inbounds ptr, ptr %1408, i64 %.311341
  %1410 = load ptr, ptr %1409, align 8, !tbaa !68
  %1411 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1402)
  %1412 = tail call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1410, i64 noundef 1, ptr noundef %1407, i64 noundef 1, i64 noundef %1411)
  %1413 = load ptr, ptr %1404, align 8, !tbaa !43
  %1414 = getelementptr inbounds double, ptr %1413, i64 %.311341
  %1415 = load double, ptr %1414, align 8, !tbaa !48
  %1416 = load ptr, ptr %1405, align 8, !tbaa !43
  %1417 = getelementptr inbounds double, ptr %1416, i64 %.311341
  %1418 = load double, ptr %1417, align 8, !tbaa !48
  %1419 = tail call double @llvm.fmuladd.f64(double %1415, double %1418, double %.1310921340)
  %1420 = fmul double %1415, 5.000000e-01
  %1421 = tail call double @llvm.fmuladd.f64(double %1420, double %1412, double %1419)
  %1422 = add nuw nsw i64 %.311341, 1
  %exitcond1396.not = icmp eq i64 %1422, %.151161
  br i1 %exitcond1396.not, label %._crit_edge1344, label %1406, !llvm.loop !109

._crit_edge1344:                                  ; preds = %1406, %1398
  %.181115.lcssa = phi double [ %.171114, %1398 ], [ %1412, %1406 ]
  %.131092.lcssa = phi double [ 0.000000e+00, %1398 ], [ %1421, %1406 ]
  %.31.lcssa = phi i64 [ 0, %1398 ], [ %.151161, %1406 ]
  %1423 = fneg double %.131092.lcssa
  %1424 = getelementptr inbounds i8, ptr %0, i64 5936
  store double %1423, ptr %1424, align 8, !tbaa !110
  %1425 = getelementptr inbounds i8, ptr %0, i64 136
  %1426 = load double, ptr %1425, align 8, !tbaa !75
  %1427 = getelementptr inbounds i8, ptr %0, i64 520
  %1428 = load double, ptr %1427, align 8, !tbaa !88
  %1429 = fsub double %1426, %1428
  %1430 = fneg double %1429
  %1431 = getelementptr inbounds i8, ptr %0, i64 5928
  store double %1430, ptr %1431, align 8, !tbaa !111
  %1432 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1423, double noundef 0.000000e+00)
  br i1 %1432, label %1505, label %1433

1433:                                             ; preds = %._crit_edge1344
  %1434 = load double, ptr %1431, align 8, !tbaa !111
  %1435 = load double, ptr %1424, align 8, !tbaa !110
  %1436 = fdiv double %1434, %1435
  %1437 = tail call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1436, double noundef 1.000000e-01)
  br i1 %1437, label %1456, label %1438

1438:                                             ; preds = %1433
  %1439 = getelementptr inbounds i8, ptr %0, i64 1152
  %1440 = tail call noundef zeroext i1 @_ZN11alglib_implL20minlm_increaselambdaEPdS0_PNS_8ae_stateE(ptr noundef nonnull %1439, ptr noundef nonnull %1390, ptr noundef %1)
  br i1 %1440, label %1456, label %1441

1441:                                             ; preds = %1438
  %1442 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 7, ptr %1442, align 8, !tbaa !62
  %1443 = getelementptr inbounds i8, ptr %0, i64 40
  %1444 = load i8, ptr %1443, align 8, !tbaa !71, !range !46, !noundef !47
  %1445 = trunc nuw i8 %1444 to i1
  br i1 %1445, label %1446, label %1547

1446:                                             ; preds = %1441
  %1447 = getelementptr inbounds i8, ptr %0, i64 128
  %1448 = load ptr, ptr %1447, align 8, !tbaa !43
  %1449 = getelementptr inbounds i8, ptr %0, i64 512
  %1450 = load ptr, ptr %1449, align 8, !tbaa !43
  %1451 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1402)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1448, i64 noundef 1, ptr noundef %1450, i64 noundef 1, i64 noundef %1451)
  %1452 = load double, ptr %1427, align 8, !tbaa !88
  store double %1452, ptr %1425, align 8, !tbaa !75
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1453 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %1453, align 1, !tbaa !77
  br label %1523

1454:                                             ; preds = %32
  %1455 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %1455, align 1, !tbaa !77
  br label %1547

1456:                                             ; preds = %1438, %1433
  %1457 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1436, double noundef 5.000000e-01)
  br i1 %1457, label %1458, label %1460

1458:                                             ; preds = %1456
  %1459 = getelementptr inbounds i8, ptr %0, i64 1152
  tail call void @_ZN11alglib_implL20minlm_decreaselambdaEPdS0_PNS_8ae_stateE(ptr noundef nonnull %1459, ptr noundef nonnull %1390, ptr noundef %1)
  br label %1460

1460:                                             ; preds = %1458, %1456
  %1461 = getelementptr inbounds i8, ptr %0, i64 512
  %1462 = load ptr, ptr %1461, align 8, !tbaa !43
  %1463 = getelementptr inbounds i8, ptr %0, i64 1360
  %1464 = load ptr, ptr %1463, align 8, !tbaa !43
  %1465 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1402)
  tail call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1462, i64 noundef 1, ptr noundef %1464, i64 noundef 1, i64 noundef %1465)
  %1466 = getelementptr inbounds i8, ptr %0, i64 40
  %1467 = load i8, ptr %1466, align 8, !tbaa !71, !range !46, !noundef !47
  %1468 = trunc nuw i8 %1467 to i1
  br i1 %1468, label %1469, label %1477

1469:                                             ; preds = %1460
  %1470 = getelementptr inbounds i8, ptr %0, i64 128
  %1471 = load ptr, ptr %1470, align 8, !tbaa !43
  %1472 = load ptr, ptr %1461, align 8, !tbaa !43
  %1473 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1402)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1471, i64 noundef 1, ptr noundef %1472, i64 noundef 1, i64 noundef %1473)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1474 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %1474, align 1, !tbaa !77
  br label %1523

1475:                                             ; preds = %32
  %1476 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %1476, align 1, !tbaa !77
  br label %1477

1477:                                             ; preds = %1460, %1475
  %.161162 = phi i64 [ %.151161, %1460 ], [ %.01146, %1475 ]
  %.161144 = phi i64 [ %.151143, %1460 ], [ %.01128, %1475 ]
  %.71126 = phi i8 [ %.61125, %1460 ], [ %.01119, %1475 ]
  %.191116 = phi double [ %1436, %1460 ], [ %.01097, %1475 ]
  %.141093 = phi double [ %.131092.lcssa, %1460 ], [ %.01079, %1475 ]
  %.32 = phi i64 [ %.31.lcssa, %1460 ], [ %.01059, %1475 ]
  %.18 = phi i64 [ %.17, %1460 ], [ %.0, %1475 ]
  %1478 = getelementptr inbounds i8, ptr %0, i64 5480
  %1479 = load i64, ptr %1478, align 8, !tbaa !97
  %1480 = add nsw i64 %1479, 1
  store i64 %1480, ptr %1478, align 8, !tbaa !97
  %1481 = getelementptr inbounds i8, ptr %0, i64 32
  %1482 = load i64, ptr %1481, align 8, !tbaa !98
  %.not1204 = icmp sge i64 %1480, %1482
  %1483 = icmp sgt i64 %1482, 0
  %or.cond1210 = and i1 %.not1204, %1483
  %1484 = getelementptr inbounds i8, ptr %0, i64 5488
  br i1 %or.cond1210, label %.thread1406, label %1485

.thread1406:                                      ; preds = %1477
  store i64 5, ptr %1484, align 8, !tbaa !62
  br label %1487

1485:                                             ; preds = %1477
  %.pre1404 = load i64, ptr %1484, align 8, !tbaa !62
  %1486 = icmp slt i64 %.pre1404, 1
  br i1 %1486, label %1501, label %1487

1487:                                             ; preds = %.thread1406, %1485
  %1488 = getelementptr inbounds i8, ptr %0, i64 40
  %1489 = load i8, ptr %1488, align 8, !tbaa !71, !range !46, !noundef !47
  %1490 = trunc nuw i8 %1489 to i1
  br i1 %1490, label %1491, label %1547

1491:                                             ; preds = %1487
  %1492 = getelementptr inbounds i8, ptr %0, i64 128
  %1493 = load ptr, ptr %1492, align 8, !tbaa !43
  %1494 = getelementptr inbounds i8, ptr %0, i64 512
  %1495 = load ptr, ptr %1494, align 8, !tbaa !43
  %1496 = add nsw i64 %.161162, -1
  %1497 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1496)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1493, i64 noundef 1, ptr noundef %1495, i64 noundef 1, i64 noundef %1497)
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1498 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %1498, align 1, !tbaa !77
  br label %1523

1499:                                             ; preds = %32
  %1500 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %1500, align 1, !tbaa !77
  br label %1547

1501:                                             ; preds = %1485
  %1502 = getelementptr inbounds i8, ptr %0, i64 1168
  %1503 = load i64, ptr %1502, align 8, !tbaa !78
  %1504 = add nsw i64 %1503, 1
  store i64 %1504, ptr %1502, align 8, !tbaa !78
  br label %825

1505:                                             ; preds = %1389, %._crit_edge1344
  %.201117 = phi double [ %.181115.lcssa, %._crit_edge1344 ], [ %.171114, %1389 ]
  %.151094 = phi double [ %.131092.lcssa, %._crit_edge1344 ], [ %.121091, %1389 ]
  %.33 = phi i64 [ %.31.lcssa, %._crit_edge1344 ], [ %.30, %1389 ]
  %1506 = getelementptr inbounds i8, ptr %0, i64 5488
  store i64 7, ptr %1506, align 8, !tbaa !62
  %1507 = getelementptr inbounds i8, ptr %0, i64 40
  %1508 = load i8, ptr %1507, align 8, !tbaa !71, !range !46, !noundef !47
  %1509 = trunc nuw i8 %1508 to i1
  br i1 %1509, label %1510, label %1547

1510:                                             ; preds = %1505
  %1511 = getelementptr inbounds i8, ptr %0, i64 128
  %1512 = load ptr, ptr %1511, align 8, !tbaa !43
  %1513 = getelementptr inbounds i8, ptr %0, i64 512
  %1514 = load ptr, ptr %1513, align 8, !tbaa !43
  %1515 = add nsw i64 %.151161, -1
  %1516 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1515)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1512, i64 noundef 1, ptr noundef %1514, i64 noundef 1, i64 noundef %1516)
  %1517 = getelementptr inbounds i8, ptr %0, i64 520
  %1518 = load double, ptr %1517, align 8, !tbaa !88
  %1519 = getelementptr inbounds i8, ptr %0, i64 136
  store double %1518, ptr %1519, align 8, !tbaa !75
  tail call void @_ZN11alglib_implL24minlm_clearrequestfieldsEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1520 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 1, ptr %1520, align 1, !tbaa !77
  br label %1523

1521:                                             ; preds = %32
  %1522 = getelementptr inbounds i8, ptr %0, i64 437
  store i8 0, ptr %1522, align 1, !tbaa !77
  br label %1547

1523:                                             ; preds = %1510, %1491, %1469, %1446, %1352, %1333, %1302, %1114, %1040, %1032, %964, %899, %800, %778, %757, %727, %706, %659, %638, %477, %469, %401, %336, %226, %213, %209, %._crit_edge1352
  %.sink1422 = phi i32 [ 27, %1510 ], [ 26, %1491 ], [ 25, %1469 ], [ 24, %1446 ], [ 23, %1352 ], [ 22, %1333 ], [ 21, %1302 ], [ 20, %1114 ], [ 19, %1040 ], [ 18, %1032 ], [ 17, %964 ], [ 16, %899 ], [ 14, %800 ], [ 13, %778 ], [ 12, %757 ], [ 11, %727 ], [ 10, %706 ], [ 9, %659 ], [ 8, %638 ], [ 7, %477 ], [ 6, %469 ], [ 5, %401 ], [ 4, %336 ], [ 3, %226 ], [ 2, %213 ], [ 1, %209 ], [ 0, %._crit_edge1352 ]
  %.171163 = phi i64 [ %.151161, %1510 ], [ %.161162, %1491 ], [ %.151161, %1469 ], [ %.151161, %1446 ], [ %.141160.ph, %1352 ], [ %.141160.ph, %1333 ], [ %.141160.ph, %1302 ], [ %.121158, %1114 ], [ %.91155, %1040 ], [ %.101156, %1032 ], [ %.01146, %964 ], [ %.101156, %899 ], [ %.81154, %800 ], [ %.71153.ph, %778 ], [ %.71153.ph, %757 ], [ %.71153.ph, %727 ], [ %.71153.ph, %706 ], [ %.71153.ph, %659 ], [ %.71153.ph, %638 ], [ %.41150, %477 ], [ %.51151, %469 ], [ %.01146, %401 ], [ %.51151, %336 ], [ %.01146, %226 ], [ %.21148, %213 ], [ %.21148, %209 ], [ %.11147, %._crit_edge1352 ]
  %.171145 = phi i64 [ %.151143, %1510 ], [ %.161144, %1491 ], [ %.151143, %1469 ], [ %.151143, %1446 ], [ %.141142.ph, %1352 ], [ %.141142.ph, %1333 ], [ %.141142.ph, %1302 ], [ %.121140, %1114 ], [ %.91137, %1040 ], [ %.101138, %1032 ], [ %.01128, %964 ], [ %.101138, %899 ], [ %.81136, %800 ], [ %.71135.ph, %778 ], [ %.71135.ph, %757 ], [ %.71135.ph, %727 ], [ %.71135.ph, %706 ], [ %.71135.ph, %659 ], [ %.71135.ph, %638 ], [ %.41132, %477 ], [ %.51133, %469 ], [ %.01128, %401 ], [ %.51133, %336 ], [ %.01128, %226 ], [ %.21130, %213 ], [ %.21130, %209 ], [ %.11129, %._crit_edge1352 ]
  %.81127 = phi i8 [ %.61125, %1510 ], [ %.71126, %1491 ], [ %.61125, %1469 ], [ %.61125, %1446 ], [ %.511241220, %1352 ], [ %.511241220, %1333 ], [ %.511241220, %1302 ], [ %.21121, %1114 ], [ 0, %1040 ], [ %.11120, %1032 ], [ %.01119, %964 ], [ %.11120, %899 ], [ %.01119, %800 ], [ %.01119, %778 ], [ %.01119, %757 ], [ %.01119, %727 ], [ %.01119, %706 ], [ %.01119, %659 ], [ %.01119, %638 ], [ %.01119, %477 ], [ %.01119, %469 ], [ %.01119, %401 ], [ %.01119, %336 ], [ %.01119, %226 ], [ %.01119, %213 ], [ %.01119, %209 ], [ %.01119, %._crit_edge1352 ]
  %.211118 = phi double [ %.201117, %1510 ], [ %.191116, %1491 ], [ %1436, %1469 ], [ %1436, %1446 ], [ %1291, %1352 ], [ %1291, %1333 ], [ %1291, %1302 ], [ %.111108, %1114 ], [ %.81105, %1040 ], [ %.91106, %1032 ], [ %.01097, %964 ], [ %.91106, %899 ], [ %.71104, %800 ], [ %.61103.ph, %778 ], [ %.61103.ph, %757 ], [ %.61103.ph, %727 ], [ %.61103.ph, %706 ], [ %.61103.ph, %659 ], [ %.61103.ph, %638 ], [ %.21099, %477 ], [ %.31100, %469 ], [ %.01097, %401 ], [ %.31100, %336 ], [ %.11098, %226 ], [ %.01097, %213 ], [ %.01097, %209 ], [ %.01097, %._crit_edge1352 ]
  %.161095 = phi double [ %.151094, %1510 ], [ %.141093, %1491 ], [ %.131092.lcssa, %1469 ], [ %.131092.lcssa, %1446 ], [ %.111090.ph, %1352 ], [ %.111090.ph, %1333 ], [ %.111090.ph, %1302 ], [ %.91088, %1114 ], [ %.61085, %1040 ], [ %.71086, %1032 ], [ %.01079, %964 ], [ %.71086, %899 ], [ %.51084, %800 ], [ %.41083.ph, %778 ], [ %.41083.ph, %757 ], [ %.41083.ph, %727 ], [ %.41083.ph, %706 ], [ %.41083.ph, %659 ], [ %.41083.ph, %638 ], [ %.11080, %477 ], [ %.21081, %469 ], [ %.01079, %401 ], [ %.21081, %336 ], [ %.01079, %226 ], [ %.01079, %213 ], [ %.01079, %209 ], [ %.01079, %._crit_edge1352 ]
  %.34 = phi i64 [ %.33, %1510 ], [ %.32, %1491 ], [ %.31.lcssa, %1469 ], [ %.31.lcssa, %1446 ], [ %.29.lcssa, %1352 ], [ %.29.lcssa, %1333 ], [ %.29.lcssa, %1302 ], [ %.23, %1114 ], [ %.171076, %1040 ], [ %.181077, %1032 ], [ %.01059, %964 ], [ %.181077, %899 ], [ %.161075, %800 ], [ %.151074.ph, %778 ], [ %.151074.ph, %757 ], [ %.151074.ph, %727 ], [ %.151074.ph, %706 ], [ %.151074.ph, %659 ], [ %.151074.ph, %638 ], [ %.71066, %477 ], [ %.81067, %469 ], [ %.01059, %401 ], [ %.81067, %336 ], [ %.01059, %226 ], [ %.51064, %213 ], [ %.51064, %209 ], [ %.31062.lcssa, %._crit_edge1352 ]
  %.19 = phi i64 [ %.17, %1510 ], [ %.18, %1491 ], [ %.17, %1469 ], [ %.17, %1446 ], [ %.16.ph, %1352 ], [ %.16.ph, %1333 ], [ %.16.ph, %1302 ], [ %.14, %1114 ], [ %.11, %1040 ], [ %.12, %1032 ], [ %.0, %964 ], [ %.12, %899 ], [ %.10, %800 ], [ %.9.ph, %778 ], [ %.9.ph, %757 ], [ %.9.ph, %727 ], [ %.9.ph, %706 ], [ %.9.ph, %659 ], [ %.9.ph, %638 ], [ %.6, %477 ], [ %.7, %469 ], [ %.0, %401 ], [ %.7, %336 ], [ %.0, %226 ], [ %.4, %213 ], [ %.4, %209 ], [ %.1, %._crit_edge1352 ]
  store i32 %.sink1422, ptr %5, align 8, !tbaa !5
  %1524 = getelementptr inbounds i8, ptr %0, i64 5600
  %1525 = load ptr, ptr %1524, align 8, !tbaa !43
  store i64 %.171163, ptr %1525, align 8, !tbaa !44
  %1526 = load ptr, ptr %1524, align 8, !tbaa !43
  %1527 = getelementptr inbounds i8, ptr %1526, i64 8
  store i64 %.171145, ptr %1527, align 8, !tbaa !44
  %1528 = load i64, ptr %3, align 8, !tbaa !44
  %1529 = load ptr, ptr %1524, align 8, !tbaa !43
  %1530 = getelementptr inbounds i8, ptr %1529, i64 16
  store i64 %1528, ptr %1530, align 8, !tbaa !44
  %1531 = load ptr, ptr %1524, align 8, !tbaa !43
  %1532 = getelementptr inbounds i8, ptr %1531, i64 24
  store i64 %.34, ptr %1532, align 8, !tbaa !44
  %1533 = load ptr, ptr %1524, align 8, !tbaa !43
  %1534 = getelementptr inbounds i8, ptr %1533, i64 32
  store i64 %.19, ptr %1534, align 8, !tbaa !44
  %1535 = getelementptr inbounds i8, ptr %0, i64 5664
  %1536 = load ptr, ptr %1535, align 8, !tbaa !43
  %1537 = and i8 %.81127, 1
  store i8 %1537, ptr %1536, align 1, !tbaa !45
  %1538 = getelementptr inbounds i8, ptr %0, i64 5728
  %1539 = load ptr, ptr %1538, align 8, !tbaa !43
  store double %.211118, ptr %1539, align 8, !tbaa !48
  %1540 = load ptr, ptr %1538, align 8, !tbaa !43
  %1541 = getelementptr inbounds i8, ptr %1540, i64 8
  store double %.01096, ptr %1541, align 8, !tbaa !48
  %1542 = load ptr, ptr %1538, align 8, !tbaa !43
  %1543 = getelementptr inbounds i8, ptr %1542, i64 16
  store double %.161095, ptr %1543, align 8, !tbaa !48
  %1544 = load double, ptr %4, align 8, !tbaa !48
  %1545 = load ptr, ptr %1538, align 8, !tbaa !43
  %1546 = getelementptr inbounds i8, ptr %1545, i64 24
  store double %1544, ptr %1546, align 8, !tbaa !48
  br label %1547

1547:                                             ; preds = %814, %1505, %1521, %1499, %1487, %1454, %1441, %1311, %1297, %808, %796, %766, %752, %738, %722, %717, %701, %1523, %1391, %1381, %1363, %1177, %823, %694, %679, %577, %243, %98
  %.01164 = phi i1 [ true, %1523 ], [ false, %243 ], [ false, %823 ], [ false, %1381 ], [ false, %1391 ], [ false, %1177 ], [ false, %679 ], [ false, %694 ], [ false, %577 ], [ false, %1363 ], [ false, %98 ], [ false, %701 ], [ false, %717 ], [ false, %722 ], [ false, %738 ], [ false, %752 ], [ false, %766 ], [ false, %796 ], [ false, %808 ], [ false, %1297 ], [ false, %1311 ], [ false, %1441 ], [ false, %1454 ], [ false, %1487 ], [ false, %1499 ], [ false, %1521 ], [ false, %1505 ], [ false, %814 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  ret i1 %.01164
}

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

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

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

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

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

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

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

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

declare noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef, i64 noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !21, i64 5536}
!6 = !{!"_ZTSN11alglib_impl10minlmstateE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !7, i64 32, !11, i64 40, !10, i64 48, !7, i64 56, !11, i64 64, !12, i64 72, !10, i64 136, !12, i64 144, !15, i64 208, !15, i64 288, !12, i64 368, !11, i64 432, !11, i64 433, !11, i64 434, !11, i64 435, !11, i64 436, !11, i64 437, !11, i64 438, !7, i64 440, !11, i64 448, !11, i64 449, !11, i64 450, !12, i64 456, !10, i64 520, !12, i64 528, !12, i64 592, !15, i64 656, !12, i64 736, !12, i64 800, !12, i64 864, !12, i64 928, !12, i64 992, !15, i64 1056, !7, i64 1136, !7, i64 1144, !10, i64 1152, !10, i64 1160, !7, i64 1168, !12, i64 1176, !12, i64 1240, !12, i64 1304, !12, i64 1368, !11, i64 1432, !11, i64 1433, !16, i64 1440, !10, i64 5408, !12, i64 5416, !7, i64 5480, !7, i64 5488, !7, i64 5496, !7, i64 5504, !7, i64 5512, !7, i64 5520, !7, i64 5528, !20, i64 5536, !12, i64 5800, !12, i64 5864, !10, i64 5928, !10, i64 5936, !10, i64 5944, !10, i64 5952, !12, i64 5960, !12, i64 6024, !12, i64 6088, !12, i64 6152, !12, i64 6216, !12, i64 6280, !22, i64 6344, !26, i64 13216, !27, i64 13240, !41, i64 48472, !42, i64 48512}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !13, i64 24, !8, i64 56}
!13 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!14 = !{!"any pointer", !8, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !13, i64 40, !8, i64 72}
!16 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !7, i64 88, !12, i64 96, !12, i64 160, !12, i64 224, !15, i64 288, !12, i64 368, !12, i64 432, !7, i64 496, !11, i64 504, !11, i64 505, !10, i64 512, !10, i64 520, !11, i64 528, !17, i64 536, !10, i64 832, !10, i64 840, !18, i64 848, !18, i64 1152, !10, i64 1456, !10, i64 1464, !19, i64 1472, !19, i64 1784, !11, i64 2096, !12, i64 2104, !12, i64 2168, !15, i64 2232, !20, i64 2312, !12, i64 2576, !12, i64 2640, !12, i64 2704, !12, i64 2768, !12, i64 2832, !12, i64 2896, !12, i64 2960, !12, i64 3024, !15, i64 3088, !15, i64 3168, !12, i64 3248, !12, i64 3312, !12, i64 3376, !12, i64 3440, !12, i64 3504, !12, i64 3568, !12, i64 3632, !12, i64 3696, !12, i64 3760, !12, i64 3824, !15, i64 3888}
!17 = !{!"_ZTSN11alglib_impl14optguardreportE", !11, i64 0, !11, i64 1, !7, i64 8, !10, i64 16, !11, i64 24, !11, i64 25, !11, i64 26, !7, i64 32, !10, i64 40, !11, i64 48, !7, i64 56, !7, i64 64, !12, i64 72, !15, i64 136, !15, i64 216}
!18 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !7, i64 144, !12, i64 152, !12, i64 216, !7, i64 280, !7, i64 288, !7, i64 296}
!19 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !11, i64 0, !7, i64 8, !7, i64 16, !12, i64 24, !12, i64 88, !7, i64 152, !12, i64 160, !12, i64 224, !7, i64 288, !7, i64 296, !7, i64 304}
!20 = !{!"_ZTSN11alglib_impl10rcommstateE", !21, i64 0, !12, i64 8, !12, i64 72, !12, i64 136, !12, i64 200}
!21 = !{!"int", !8, i64 0}
!22 = !{!"_ZTSN11alglib_impl13minlbfgsstateE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !11, i64 48, !10, i64 56, !12, i64 64, !10, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !12, i64 176, !15, i64 240, !15, i64 320, !12, i64 400, !12, i64 464, !12, i64 528, !10, i64 592, !12, i64 600, !10, i64 664, !10, i64 672, !12, i64 680, !7, i64 744, !10, i64 752, !15, i64 760, !12, i64 840, !12, i64 904, !12, i64 968, !15, i64 1032, !7, i64 1112, !23, i64 1120, !24, i64 1584, !10, i64 2032, !10, i64 2040, !10, i64 2048, !10, i64 2056, !10, i64 2064, !12, i64 2072, !12, i64 2136, !12, i64 2200, !10, i64 2264, !12, i64 2272, !11, i64 2336, !11, i64 2337, !11, i64 2338, !11, i64 2339, !10, i64 2344, !20, i64 2352, !7, i64 2616, !7, i64 2624, !7, i64 2632, !25, i64 2640, !7, i64 2832, !16, i64 2840, !12, i64 6808}
!23 = !{!"_ZTSN11alglib_impl12precbuflbfgsE", !12, i64 0, !12, i64 64, !12, i64 128, !15, i64 192, !12, i64 272, !12, i64 336, !12, i64 400}
!24 = !{!"_ZTSN11alglib_impl14precbuflowrankE", !7, i64 0, !7, i64 8, !12, i64 16, !15, i64 80, !12, i64 160, !15, i64 224, !15, i64 304, !12, i64 384}
!25 = !{!"_ZTSN11alglib_impl11linminstateE", !11, i64 0, !11, i64 1, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184}
!26 = !{!"_ZTSN11alglib_impl14minlbfgsreportE", !7, i64 0, !7, i64 8, !7, i64 16}
!27 = !{!"_ZTSN11alglib_impl10minqpstateE", !7, i64 0, !28, i64 8, !29, i64 80, !30, i64 112, !11, i64 136, !7, i64 144, !7, i64 152, !31, i64 160, !32, i64 1848, !11, i64 2216, !10, i64 2224, !10, i64 2232, !10, i64 2240, !12, i64 2248, !12, i64 2312, !12, i64 2376, !7, i64 2440, !12, i64 2448, !12, i64 2512, !12, i64 2576, !12, i64 2640, !12, i64 2704, !11, i64 2768, !15, i64 2776, !7, i64 2856, !7, i64 2864, !32, i64 2872, !7, i64 3240, !7, i64 3248, !12, i64 3256, !7, i64 3320, !7, i64 3328, !7, i64 3336, !7, i64 3344, !7, i64 3352, !12, i64 3360, !12, i64 3424, !15, i64 3488, !15, i64 3568, !11, i64 3648, !33, i64 3656, !38, i64 16496, !40, i64 23800}
!28 = !{!"_ZTSN11alglib_impl11qqpsettingsE", !10, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !11, i64 32, !11, i64 33, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64}
!29 = !{!"_ZTSN11alglib_impl15qpbleicsettingsE", !10, i64 0, !10, i64 8, !10, i64 16, !7, i64 24}
!30 = !{!"_ZTSN11alglib_impl18qpdenseaulsettingsE", !10, i64 0, !7, i64 8, !10, i64 16}
!31 = !{!"_ZTSN11alglib_impl20convexquadraticmodelE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !15, i64 40, !15, i64 120, !12, i64 200, !12, i64 264, !12, i64 328, !12, i64 392, !12, i64 456, !15, i64 520, !15, i64 600, !12, i64 680, !12, i64 744, !12, i64 808, !10, i64 872, !10, i64 880, !12, i64 888, !12, i64 952, !7, i64 1016, !7, i64 1024, !15, i64 1032, !15, i64 1112, !15, i64 1192, !12, i64 1272, !12, i64 1336, !10, i64 1400, !12, i64 1408, !12, i64 1472, !12, i64 1536, !15, i64 1600, !11, i64 1680, !11, i64 1681, !11, i64 1682, !11, i64 1683}
!32 = !{!"_ZTSN11alglib_impl12sparsematrixE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !7, i64 320, !7, i64 328, !7, i64 336, !7, i64 344, !7, i64 352, !7, i64 360}
!33 = !{!"_ZTSN11alglib_impl14qpbleicbuffersE", !34, i64 0, !37, i64 12536, !12, i64 12632, !12, i64 12696, !12, i64 12760, !7, i64 12824, !7, i64 12832}
!34 = !{!"_ZTSN11alglib_impl13minbleicstateE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !11, i64 48, !11, i64 49, !10, i64 56, !10, i64 64, !35, i64 72, !12, i64 4416, !7, i64 4480, !12, i64 4488, !12, i64 4552, !10, i64 4616, !12, i64 4624, !11, i64 4688, !11, i64 4689, !11, i64 4690, !11, i64 4691, !11, i64 4692, !11, i64 4693, !11, i64 4694, !20, i64 4696, !12, i64 4960, !12, i64 5024, !12, i64 5088, !12, i64 5152, !12, i64 5216, !12, i64 5280, !10, i64 5344, !10, i64 5352, !10, i64 5360, !12, i64 5368, !15, i64 5432, !7, i64 5512, !7, i64 5520, !10, i64 5528, !10, i64 5536, !10, i64 5544, !12, i64 5552, !12, i64 5616, !12, i64 5680, !12, i64 5744, !7, i64 5808, !7, i64 5816, !7, i64 5824, !7, i64 5832, !7, i64 5840, !10, i64 5848, !10, i64 5856, !10, i64 5864, !10, i64 5872, !7, i64 5880, !7, i64 5888, !12, i64 5896, !36, i64 5960, !10, i64 7600, !10, i64 7608, !10, i64 7616, !10, i64 7624, !10, i64 7632, !10, i64 7640, !10, i64 7648, !10, i64 7656, !10, i64 7664, !7, i64 7672, !10, i64 7680, !12, i64 7688, !12, i64 7752, !7, i64 7816, !7, i64 7824, !10, i64 7832, !10, i64 7840, !10, i64 7848, !12, i64 7856, !25, i64 7920, !10, i64 8112, !7, i64 8120, !15, i64 8128, !15, i64 8208, !12, i64 8288, !12, i64 8352, !7, i64 8416, !10, i64 8424, !7, i64 8432, !16, i64 8440, !12, i64 12408, !12, i64 12472}
!35 = !{!"_ZTSN11alglib_impl10sactivesetE", !7, i64 0, !7, i64 8, !12, i64 16, !11, i64 80, !12, i64 88, !12, i64 152, !12, i64 216, !11, i64 280, !15, i64 288, !15, i64 368, !15, i64 448, !7, i64 528, !12, i64 536, !7, i64 600, !7, i64 608, !11, i64 616, !11, i64 617, !12, i64 624, !12, i64 688, !12, i64 752, !12, i64 816, !15, i64 880, !7, i64 960, !7, i64 968, !12, i64 976, !12, i64 1040, !12, i64 1104, !12, i64 1168, !12, i64 1232, !12, i64 1296, !36, i64 1360, !12, i64 3000, !12, i64 3064, !12, i64 3128, !15, i64 3192, !12, i64 3272, !12, i64 3336, !12, i64 3400, !15, i64 3464, !15, i64 3544, !12, i64 3624, !12, i64 3688, !12, i64 3752, !15, i64 3816, !12, i64 3896, !12, i64 3960, !12, i64 4024, !12, i64 4088, !12, i64 4152, !12, i64 4216, !12, i64 4280}
!36 = !{!"_ZTSN11alglib_impl11snnlssolverE", !7, i64 0, !7, i64 8, !7, i64 16, !15, i64 24, !12, i64 104, !12, i64 168, !10, i64 232, !7, i64 240, !12, i64 248, !12, i64 312, !15, i64 376, !15, i64 456, !15, i64 536, !12, i64 616, !12, i64 680, !12, i64 744, !12, i64 808, !12, i64 872, !12, i64 936, !12, i64 1000, !12, i64 1064, !12, i64 1128, !12, i64 1192, !12, i64 1256, !12, i64 1320, !12, i64 1384, !12, i64 1448, !12, i64 1512, !12, i64 1576}
!37 = !{!"_ZTSN11alglib_impl14minbleicreportE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88}
!38 = !{!"_ZTSN11alglib_impl10qqpbuffersE", !7, i64 0, !7, i64 8, !15, i64 16, !32, i64 96, !11, i64 464, !10, i64 472, !10, i64 480, !10, i64 488, !12, i64 496, !12, i64 560, !12, i64 624, !12, i64 688, !12, i64 752, !12, i64 816, !12, i64 880, !12, i64 944, !12, i64 1008, !12, i64 1072, !12, i64 1136, !12, i64 1200, !12, i64 1264, !35, i64 1328, !12, i64 5672, !7, i64 5736, !7, i64 5744, !15, i64 5752, !32, i64 5832, !12, i64 6200, !12, i64 6264, !12, i64 6328, !12, i64 6392, !12, i64 6456, !12, i64 6520, !12, i64 6584, !12, i64 6648, !12, i64 6712, !39, i64 6776, !7, i64 7272, !7, i64 7280, !7, i64 7288, !7, i64 7296}
!39 = !{!"_ZTSN11alglib_impl13sparsebuffersE", !12, i64 0, !12, i64 64, !32, i64 128}
!40 = !{!"_ZTSN11alglib_impl17qpdenseaulbuffersE", !12, i64 0, !15, i64 64, !12, i64 144, !12, i64 208, !12, i64 272, !12, i64 336, !12, i64 400, !12, i64 464, !15, i64 528, !15, i64 608, !12, i64 688, !12, i64 752, !12, i64 816, !12, i64 880, !12, i64 944, !12, i64 1008, !28, i64 1072, !38, i64 1144, !12, i64 8448, !12, i64 8512, !15, i64 8576, !12, i64 8656, !12, i64 8720, !12, i64 8784, !31, i64 8848, !32, i64 10536, !15, i64 10904, !12, i64 10984, !12, i64 11048, !12, i64 11112, !12, i64 11176, !12, i64 11240, !12, i64 11304, !7, i64 11368, !7, i64 11376, !7, i64 11384, !7, i64 11392, !7, i64 11400, !7, i64 11408, !7, i64 11416, !7, i64 11424}
!41 = !{!"_ZTSN11alglib_impl11minqpreportE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32}
!42 = !{!"_ZTSN11alglib_impl15minlmstepfinderE", !7, i64 0, !7, i64 8, !10, i64 16, !7, i64 24, !7, i64 32, !11, i64 40, !10, i64 48, !12, i64 56, !10, i64 120, !12, i64 128, !11, i64 192, !11, i64 193, !10, i64 200, !12, i64 208, !12, i64 272, !12, i64 336, !12, i64 400, !12, i64 464, !12, i64 528, !12, i64 592, !12, i64 656, !20, i64 720, !12, i64 984, !12, i64 1048, !12, i64 1112, !12, i64 1176, !10, i64 1240, !10, i64 1248, !27, i64 1256, !41, i64 36488, !32, i64 36528}
!43 = !{!8, !8, i64 0}
!44 = !{!7, !7, i64 0}
!45 = !{!11, !11, i64 0}
!46 = !{i8 0, i8 2}
!47 = !{}
!48 = !{!10, !10, i64 0}
!49 = !{!6, !7, i64 0}
!50 = !{!6, !7, i64 8}
!51 = !{!6, !11, i64 438}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = distinct !{!54, !55}
!55 = !{!"llvm.loop.unroll.disable"}
!56 = !{!6, !7, i64 56}
!57 = !{!6, !11, i64 449}
!58 = !{!6, !7, i64 1136}
!59 = !{!6, !7, i64 1144}
!60 = !{!6, !10, i64 48}
!61 = !{!6, !10, i64 24}
!62 = !{!6, !7, i64 5488}
!63 = !{!6, !7, i64 440}
!64 = !{!6, !10, i64 5408}
!65 = distinct !{!65, !53}
!66 = distinct !{!66, !55}
!67 = !{!6, !11, i64 435}
!68 = !{!14, !14, i64 0}
!69 = distinct !{!69, !53}
!70 = distinct !{!70, !53}
!71 = !{!6, !11, i64 40}
!72 = !{!6, !11, i64 448}
!73 = !{!6, !11, i64 432}
!74 = !{!6, !11, i64 436}
!75 = !{!6, !10, i64 136}
!76 = !{!6, !7, i64 5496}
!77 = !{!6, !11, i64 437}
!78 = !{!6, !7, i64 1168}
!79 = !{!6, !11, i64 1432}
!80 = !{!6, !11, i64 1433}
!81 = !{!6, !10, i64 16}
!82 = !{!6, !10, i64 5944}
!83 = !{!6, !10, i64 5952}
!84 = !{!6, !7, i64 224}
!85 = distinct !{!85, !53}
!86 = distinct !{!86, !55}
!87 = distinct !{!87, !53}
!88 = !{!6, !10, i64 520}
!89 = distinct !{!89, !53}
!90 = distinct !{!90, !55}
!91 = !{!6, !10, i64 1152}
!92 = distinct !{!92, !53}
!93 = !{!6, !11, i64 48705}
!94 = !{!6, !11, i64 48704}
!95 = !{!6, !10, i64 48632}
!96 = !{!6, !10, i64 1160}
!97 = !{!6, !7, i64 5480}
!98 = !{!6, !7, i64 32}
!99 = distinct !{!99, !53}
!100 = distinct !{!100, !55}
!101 = distinct !{!101, !53}
!102 = !{!6, !11, i64 434}
!103 = distinct !{!103, !53}
!104 = distinct !{!104, !55}
!105 = distinct !{!105, !53}
!106 = distinct !{!106, !53}
!107 = !{!6, !7, i64 48504}
!108 = distinct !{!108, !53}
!109 = distinct !{!109, !53}
!110 = !{!6, !10, i64 5936}
!111 = !{!6, !10, i64 5928}


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