; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/src (optimization)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.alglib_impl::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", i64, %"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::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::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::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::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", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate", i8, i8, i64, i64, double, double, i8, %"struct.alglib_impl::optguardreport", double, double, %"struct.alglib_impl::optguardnonc0report", %"struct.alglib_impl::optguardnonc0report", double, double, %"struct.alglib_impl::optguardnonc1test0report", %"struct.alglib_impl::optguardnonc1test0report", double, double, %"struct.alglib_impl::optguardnonc1test1report", %"struct.alglib_impl::optguardnonc1test1report", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardreport" = type { i8, i8, i64, double, i8, i8, i8, i64, double, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardnonc0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test1report" = type { i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_state" = type { i64, double, double, double, ptr, %"struct.alglib_impl::ae_dyn_block", ptr, i32, ptr, i64, ptr, ptr, ptr }

@_ZN11alglib_implL21minbleic_initialdecayE = external hidden global double, align 8
@.str.1577 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZN11alglib_implL13minbleic_gtolE = external hidden global double, align 8
@_ZN11alglib_implL22minbleic_penaltyfactorE = external hidden global double, align 8
@_ZN11alglib_implL27minbleic_maxnonmonotoniclenE = external hidden global double, align 8
@_ZN11alglib_implL24minbleic_decaycorrectionE = external hidden global double, align 8
@_ZN11alglib_implL17minbleic_mindecayE = external hidden global double, align 8

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

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

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

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

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

128:                                              ; preds = %2
  store i64 359, ptr %6, align 8, !tbaa !28
  store i64 -58, ptr %7, align 8, !tbaa !28
  store i64 -919, ptr %8, align 8, !tbaa !28
  store i64 -909, ptr %9, align 8, !tbaa !28
  store i64 81, ptr %14, align 8, !tbaa !28
  store i64 255, ptr %15, align 8, !tbaa !28
  store i64 74, ptr %16, align 8, !tbaa !28
  store i8 0, ptr %13, align 1, !tbaa !29
  store double 8.090000e+02, ptr %10, align 8, !tbaa !32
  store double 2.050000e+02, ptr %11, align 8, !tbaa !32
  store double -8.380000e+02, ptr %12, align 8, !tbaa !32
  store double 9.390000e+02, ptr %17, align 8, !tbaa !32
  store double -5.260000e+02, ptr %18, align 8, !tbaa !32
  store double 7.630000e+02, ptr %19, align 8, !tbaa !32
  br label %129

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

135:                                              ; preds = %129
  br label %470

136:                                              ; preds = %129
  %137 = load ptr, ptr %4, align 8, !tbaa !5
  %138 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %137, i32 0, i32 25
  %139 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %138, i32 0, i32 0
  %140 = load i32, ptr %139, align 8, !tbaa !9
  %141 = icmp eq i32 %140, 1
  br i1 %141, label %142, label %143

142:                                              ; preds = %136
  br label %635

143:                                              ; preds = %136
  %144 = load ptr, ptr %4, align 8, !tbaa !5
  %145 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %144, i32 0, i32 25
  %146 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %145, i32 0, i32 0
  %147 = load i32, ptr %146, align 8, !tbaa !9
  %148 = icmp eq i32 %147, 2
  br i1 %148, label %149, label %150

149:                                              ; preds = %143
  br label %644

150:                                              ; preds = %143
  %151 = load ptr, ptr %4, align 8, !tbaa !5
  %152 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %151, i32 0, i32 25
  %153 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %152, i32 0, i32 0
  %154 = load i32, ptr %153, align 8, !tbaa !9
  %155 = icmp eq i32 %154, 3
  br i1 %155, label %156, label %157

156:                                              ; preds = %150
  br label %695

157:                                              ; preds = %150
  %158 = load ptr, ptr %4, align 8, !tbaa !5
  %159 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %158, i32 0, i32 25
  %160 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %159, i32 0, i32 0
  %161 = load i32, ptr %160, align 8, !tbaa !9
  %162 = icmp eq i32 %161, 4
  br i1 %162, label %163, label %164

163:                                              ; preds = %157
  br label %740

164:                                              ; preds = %157
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %165, i32 0, i32 25
  %167 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %166, i32 0, i32 0
  %168 = load i32, ptr %167, align 8, !tbaa !9
  %169 = icmp eq i32 %168, 5
  br i1 %169, label %170, label %171

170:                                              ; preds = %164
  br label %749

171:                                              ; preds = %164
  %172 = load ptr, ptr %4, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %172, i32 0, i32 25
  %174 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %173, i32 0, i32 0
  %175 = load i32, ptr %174, align 8, !tbaa !9
  %176 = icmp eq i32 %175, 6
  br i1 %176, label %177, label %178

177:                                              ; preds = %171
  br label %868

178:                                              ; preds = %171
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %179, i32 0, i32 25
  %181 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %180, i32 0, i32 0
  %182 = load i32, ptr %181, align 8, !tbaa !9
  %183 = icmp eq i32 %182, 7
  br i1 %183, label %184, label %185

184:                                              ; preds = %178
  br label %897

185:                                              ; preds = %178
  %186 = load ptr, ptr %4, align 8, !tbaa !5
  %187 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %186, i32 0, i32 25
  %188 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %187, i32 0, i32 0
  %189 = load i32, ptr %188, align 8, !tbaa !9
  %190 = icmp eq i32 %189, 8
  br i1 %190, label %191, label %192

191:                                              ; preds = %185
  br label %925

192:                                              ; preds = %185
  %193 = load ptr, ptr %4, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %193, i32 0, i32 25
  %195 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %194, i32 0, i32 0
  %196 = load i32, ptr %195, align 8, !tbaa !9
  %197 = icmp eq i32 %196, 9
  br i1 %197, label %198, label %199

198:                                              ; preds = %192
  br label %952

199:                                              ; preds = %192
  %200 = load ptr, ptr %4, align 8, !tbaa !5
  %201 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %200, i32 0, i32 25
  %202 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %201, i32 0, i32 0
  %203 = load i32, ptr %202, align 8, !tbaa !9
  %204 = icmp eq i32 %203, 10
  br i1 %204, label %205, label %206

205:                                              ; preds = %199
  br label %1097

206:                                              ; preds = %199
  %207 = load ptr, ptr %4, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %207, i32 0, i32 25
  %209 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %208, i32 0, i32 0
  %210 = load i32, ptr %209, align 8, !tbaa !9
  %211 = icmp eq i32 %210, 11
  br i1 %211, label %212, label %213

212:                                              ; preds = %206
  br label %1115

213:                                              ; preds = %206
  %214 = load ptr, ptr %4, align 8, !tbaa !5
  %215 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %214, i32 0, i32 25
  %216 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %215, i32 0, i32 0
  %217 = load i32, ptr %216, align 8, !tbaa !9
  %218 = icmp eq i32 %217, 12
  br i1 %218, label %219, label %220

219:                                              ; preds = %213
  br label %1664

220:                                              ; preds = %213
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %221, i32 0, i32 25
  %223 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %222, i32 0, i32 0
  %224 = load i32, ptr %223, align 8, !tbaa !9
  %225 = icmp eq i32 %224, 13
  br i1 %225, label %226, label %227

226:                                              ; preds = %220
  br label %1804

227:                                              ; preds = %220
  %228 = load ptr, ptr %4, align 8, !tbaa !5
  %229 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %228, i32 0, i32 25
  %230 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %229, i32 0, i32 0
  %231 = load i32, ptr %230, align 8, !tbaa !9
  %232 = icmp eq i32 %231, 14
  br i1 %232, label %233, label %234

233:                                              ; preds = %227
  br label %1819

234:                                              ; preds = %227
  %235 = load ptr, ptr %4, align 8, !tbaa !5
  %236 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %235, i32 0, i32 25
  %237 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %236, i32 0, i32 0
  %238 = load i32, ptr %237, align 8, !tbaa !9
  %239 = icmp eq i32 %238, 15
  br i1 %239, label %240, label %241

240:                                              ; preds = %234
  br label %1938

241:                                              ; preds = %234
  %242 = load ptr, ptr %4, align 8, !tbaa !5
  %243 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %242, i32 0, i32 25
  %244 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %243, i32 0, i32 0
  %245 = load i32, ptr %244, align 8, !tbaa !9
  %246 = icmp eq i32 %245, 16
  br i1 %246, label %247, label %248

247:                                              ; preds = %241
  br label %1967

248:                                              ; preds = %241
  %249 = load ptr, ptr %4, align 8, !tbaa !5
  %250 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %249, i32 0, i32 25
  %251 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %250, i32 0, i32 0
  %252 = load i32, ptr %251, align 8, !tbaa !9
  %253 = icmp eq i32 %252, 17
  br i1 %253, label %254, label %255

254:                                              ; preds = %248
  br label %1995

255:                                              ; preds = %248
  %256 = load ptr, ptr %4, align 8, !tbaa !5
  %257 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %256, i32 0, i32 25
  %258 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %257, i32 0, i32 0
  %259 = load i32, ptr %258, align 8, !tbaa !9
  %260 = icmp eq i32 %259, 18
  br i1 %260, label %261, label %262

261:                                              ; preds = %255
  br label %2022

262:                                              ; preds = %255
  %263 = load ptr, ptr %4, align 8, !tbaa !5
  %264 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %263, i32 0, i32 25
  %265 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %264, i32 0, i32 0
  %266 = load i32, ptr %265, align 8, !tbaa !9
  %267 = icmp eq i32 %266, 19
  br i1 %267, label %268, label %269

268:                                              ; preds = %262
  br label %2173

269:                                              ; preds = %262
  %270 = load ptr, ptr %4, align 8, !tbaa !5
  %271 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %270, i32 0, i32 25
  %272 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %271, i32 0, i32 0
  %273 = load i32, ptr %272, align 8, !tbaa !9
  %274 = icmp eq i32 %273, 20
  br i1 %274, label %275, label %276

275:                                              ; preds = %269
  br label %2191

276:                                              ; preds = %269
  %277 = load ptr, ptr %4, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %277, i32 0, i32 25
  %279 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %278, i32 0, i32 0
  %280 = load i32, ptr %279, align 8, !tbaa !9
  %281 = icmp eq i32 %280, 21
  br i1 %281, label %282, label %283

282:                                              ; preds = %276
  br label %2694

283:                                              ; preds = %276
  %284 = load ptr, ptr %4, align 8, !tbaa !5
  %285 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %284, i32 0, i32 0
  %286 = load i64, ptr %285, align 8, !tbaa !33
  %287 = load ptr, ptr %5, align 8, !tbaa !5
  %288 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef 5, i64 noundef %286, ptr noundef %287)
  store i64 %288, ptr %7, align 8, !tbaa !28
  %289 = load double, ptr @_ZN11alglib_implL21minbleic_initialdecayE, align 8, !tbaa !32
  store double %289, ptr %19, align 8, !tbaa !32
  %290 = load ptr, ptr %4, align 8, !tbaa !5
  %291 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %290, i32 0, i32 0
  %292 = load i64, ptr %291, align 8, !tbaa !33
  store i64 %292, ptr %6, align 8, !tbaa !28
  %293 = load ptr, ptr %4, align 8, !tbaa !5
  %294 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %293, i32 0, i32 22
  store i8 0, ptr %294, align 4, !tbaa !34
  %295 = load ptr, ptr %4, align 8, !tbaa !5
  %296 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %295, i32 0, i32 24
  store i8 0, ptr %296, align 2, !tbaa !35
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %297, i32 0, i32 50
  store i64 0, ptr %298, align 8, !tbaa !36
  %299 = load ptr, ptr %4, align 8, !tbaa !5
  %300 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %299, i32 0, i32 46
  store i64 0, ptr %300, align 8, !tbaa !37
  %301 = load ptr, ptr %4, align 8, !tbaa !5
  %302 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %301, i32 0, i32 47
  store i64 0, ptr %302, align 8, !tbaa !38
  %303 = load ptr, ptr %4, align 8, !tbaa !5
  %304 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %303, i32 0, i32 48
  store i64 0, ptr %304, align 8, !tbaa !39
  %305 = load ptr, ptr %4, align 8, !tbaa !5
  %306 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %305, i32 0, i32 49
  store i64 -1, ptr %306, align 8, !tbaa !40
  %307 = load ptr, ptr %4, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %307, i32 0, i32 51
  store double 0.000000e+00, ptr %308, align 8, !tbaa !41
  %309 = load ptr, ptr %5, align 8, !tbaa !5
  %310 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %309, i32 0, i32 1
  %311 = load double, ptr %310, align 8, !tbaa !42
  %312 = load ptr, ptr %4, align 8, !tbaa !5
  %313 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %312, i32 0, i32 52
  store double %311, ptr %313, align 8, !tbaa !46
  %314 = load ptr, ptr %5, align 8, !tbaa !5
  %315 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %314, i32 0, i32 1
  %316 = load double, ptr %315, align 8, !tbaa !42
  %317 = load ptr, ptr %4, align 8, !tbaa !5
  %318 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %317, i32 0, i32 53
  store double %316, ptr %318, align 8, !tbaa !47
  %319 = load ptr, ptr %5, align 8, !tbaa !5
  %320 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %319, i32 0, i32 1
  %321 = load double, ptr %320, align 8, !tbaa !42
  %322 = load ptr, ptr %4, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %322, i32 0, i32 54
  store double %321, ptr %323, align 8, !tbaa !48
  %324 = load ptr, ptr %4, align 8, !tbaa !5
  %325 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %324, i32 0, i32 8
  %326 = load double, ptr %325, align 8, !tbaa !49
  %327 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %326, double noundef 0.000000e+00)
  br i1 %327, label %328, label %338

328:                                              ; preds = %283
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %329, i32 0, i32 12
  %331 = load i64, ptr %330, align 8, !tbaa !50
  %332 = icmp ne i64 %331, 0
  br i1 %332, label %333, label %338

333:                                              ; preds = %328
  %334 = load ptr, ptr %4, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %334, i32 0, i32 50
  store i64 -10, ptr %335, align 8, !tbaa !36
  store i8 0, ptr %20, align 1, !tbaa !29
  %336 = load i8, ptr %20, align 1, !tbaa !29, !range !30, !noundef !31
  %337 = trunc i8 %336 to i1
  store i1 %337, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3244

338:                                              ; preds = %328, %283
  %339 = load ptr, ptr %4, align 8, !tbaa !5
  %340 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %339, i32 0, i32 81
  %341 = load i64, ptr %7, align 8, !tbaa !28
  %342 = add nsw i64 %341, 1
  %343 = load i64, ptr %6, align 8, !tbaa !28
  %344 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %340, i64 noundef %342, i64 noundef %343, ptr noundef %344)
  %345 = load ptr, ptr %4, align 8, !tbaa !5
  %346 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %345, i32 0, i32 82
  %347 = load i64, ptr %7, align 8, !tbaa !28
  %348 = add nsw i64 %347, 1
  %349 = load i64, ptr %6, align 8, !tbaa !28
  %350 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %346, i64 noundef %348, i64 noundef %349, ptr noundef %350)
  %351 = load ptr, ptr %4, align 8, !tbaa !5
  %352 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %351, i32 0, i32 83
  %353 = load i64, ptr %7, align 8, !tbaa !28
  %354 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %352, i64 noundef %353, ptr noundef %354)
  %355 = load ptr, ptr %4, align 8, !tbaa !5
  %356 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %355, i32 0, i32 84
  %357 = load i64, ptr %7, align 8, !tbaa !28
  %358 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %356, i64 noundef %357, ptr noundef %358)
  %359 = load ptr, ptr %4, align 8, !tbaa !5
  %360 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %359, i32 0, i32 71
  %361 = load i64, ptr %6, align 8, !tbaa !28
  %362 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %360, i64 noundef %361, ptr noundef %362)
  %363 = load ptr, ptr %4, align 8, !tbaa !5
  %364 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %363, i32 0, i32 88
  %365 = load ptr, ptr %4, align 8, !tbaa !5
  %366 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %365, i32 0, i32 11
  %367 = load i64, ptr %6, align 8, !tbaa !28
  %368 = load ptr, ptr %4, align 8, !tbaa !5
  %369 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %368, i32 0, i32 87
  %370 = load i64, ptr %369, align 8, !tbaa !51
  %371 = icmp sgt i64 %370, 0
  %372 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEPKNS_9ae_vectorEllbPNS_8ae_stateE(ptr noundef %364, ptr noundef %366, i64 noundef %367, i64 noundef 1, i1 noundef zeroext %371, ptr noundef %372)
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %373

373:                                              ; preds = %406, %338
  %374 = load i64, ptr %8, align 8, !tbaa !28
  %375 = load i64, ptr %6, align 8, !tbaa !28
  %376 = sub nsw i64 %375, 1
  %377 = icmp sle i64 %374, %376
  br i1 %377, label %378, label %409

378:                                              ; preds = %373
  %379 = load ptr, ptr %4, align 8, !tbaa !5
  %380 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %379, i32 0, i32 11
  %381 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %380, i32 0, i32 4
  %382 = load ptr, ptr %381, align 8, !tbaa !27
  %383 = load i64, ptr %8, align 8, !tbaa !28
  %384 = getelementptr inbounds double, ptr %382, i64 %383
  %385 = load double, ptr %384, align 8, !tbaa !32
  %386 = load ptr, ptr %4, align 8, !tbaa !5
  %387 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %386, i32 0, i32 89
  %388 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %387, i32 0, i32 4
  %389 = load ptr, ptr %388, align 8, !tbaa !27
  %390 = load i64, ptr %8, align 8, !tbaa !28
  %391 = getelementptr inbounds double, ptr %389, i64 %390
  store double %385, ptr %391, align 8, !tbaa !32
  %392 = load ptr, ptr %4, align 8, !tbaa !5
  %393 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %392, i32 0, i32 11
  %394 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %393, i32 0, i32 4
  %395 = load ptr, ptr %394, align 8, !tbaa !27
  %396 = load i64, ptr %8, align 8, !tbaa !28
  %397 = getelementptr inbounds double, ptr %395, i64 %396
  %398 = load double, ptr %397, align 8, !tbaa !32
  %399 = fdiv double 1.000000e+00, %398
  %400 = load ptr, ptr %4, align 8, !tbaa !5
  %401 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %400, i32 0, i32 90
  %402 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %401, i32 0, i32 4
  %403 = load ptr, ptr %402, align 8, !tbaa !27
  %404 = load i64, ptr %8, align 8, !tbaa !28
  %405 = getelementptr inbounds double, ptr %403, i64 %404
  store double %399, ptr %405, align 8, !tbaa !32
  br label %406

406:                                              ; preds = %378
  %407 = load i64, ptr %8, align 8, !tbaa !28
  %408 = add nsw i64 %407, 1
  store i64 %408, ptr %8, align 8, !tbaa !28
  br label %373, !llvm.loop !52

409:                                              ; preds = %373
  %410 = load ptr, ptr %4, align 8, !tbaa !5
  %411 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %410, ptr noundef %411)
  %412 = load ptr, ptr %4, align 8, !tbaa !5
  %413 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %412, i32 0, i32 9
  %414 = load double, ptr %413, align 8, !tbaa !54
  %415 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %414, double noundef 0.000000e+00)
  br i1 %415, label %416, label %421

416:                                              ; preds = %409
  %417 = load ptr, ptr %4, align 8, !tbaa !5
  %418 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %417, i32 0, i32 86
  %419 = load double, ptr %418, align 8, !tbaa !55
  %420 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %419, double noundef 0.000000e+00)
  br i1 %420, label %422, label %421

421:                                              ; preds = %416, %409
  br label %509

422:                                              ; preds = %416
  br label %423

423:                                              ; preds = %507, %422
  %424 = load ptr, ptr %4, align 8, !tbaa !5
  %425 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %424, i32 0, i32 88
  %426 = load ptr, ptr %4, align 8, !tbaa !5
  %427 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %426, i32 0, i32 57
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  %429 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %428, i32 0, i32 11
  %430 = load ptr, ptr %4, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %430, i32 0, i32 44
  %432 = load ptr, ptr %4, align 8, !tbaa !5
  %433 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %432, i32 0, i32 45
  %434 = load ptr, ptr %4, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %434, i32 0, i32 86
  %436 = load double, ptr %435, align 8, !tbaa !55
  %437 = load ptr, ptr %5, align 8, !tbaa !5
  %438 = call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_S4_bdPNS_8ae_stateE(ptr noundef %425, ptr noundef %427, ptr noundef %429, ptr noundef %431, ptr noundef %433, i1 noundef zeroext true, double noundef %436, ptr noundef %437)
  br i1 %438, label %440, label %439

439:                                              ; preds = %423
  br label %508

440:                                              ; preds = %423
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %441

441:                                              ; preds = %461, %440
  %442 = load i64, ptr %8, align 8, !tbaa !28
  %443 = load i64, ptr %6, align 8, !tbaa !28
  %444 = sub nsw i64 %443, 1
  %445 = icmp sle i64 %442, %444
  br i1 %445, label %446, label %464

446:                                              ; preds = %441
  %447 = load ptr, ptr %4, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %447, i32 0, i32 88
  %449 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %448, i32 0, i32 50
  %450 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %449, i32 0, i32 4
  %451 = load ptr, ptr %450, align 8, !tbaa !27
  %452 = load i64, ptr %8, align 8, !tbaa !28
  %453 = getelementptr inbounds double, ptr %451, i64 %452
  %454 = load double, ptr %453, align 8, !tbaa !32
  %455 = load ptr, ptr %4, align 8, !tbaa !5
  %456 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %455, i32 0, i32 15
  %457 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %456, i32 0, i32 4
  %458 = load ptr, ptr %457, align 8, !tbaa !27
  %459 = load i64, ptr %8, align 8, !tbaa !28
  %460 = getelementptr inbounds double, ptr %458, i64 %459
  store double %454, ptr %460, align 8, !tbaa !32
  br label %461

461:                                              ; preds = %446
  %462 = load i64, ptr %8, align 8, !tbaa !28
  %463 = add nsw i64 %462, 1
  store i64 %463, ptr %8, align 8, !tbaa !28
  br label %441, !llvm.loop !56

464:                                              ; preds = %441
  %465 = load ptr, ptr %4, align 8, !tbaa !5
  %466 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %465, i32 0, i32 19
  store i8 1, ptr %466, align 1, !tbaa !57
  %467 = load ptr, ptr %4, align 8, !tbaa !5
  %468 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %467, i32 0, i32 25
  %469 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %468, i32 0, i32 0
  store i32 0, ptr %469, align 8, !tbaa !9
  br label %3141

470:                                              ; preds = %135
  %471 = load ptr, ptr %4, align 8, !tbaa !5
  %472 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %471, i32 0, i32 19
  store i8 0, ptr %472, align 1, !tbaa !57
  %473 = load ptr, ptr %4, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %473, i32 0, i32 16
  %475 = load double, ptr %474, align 8, !tbaa !58
  %476 = load ptr, ptr %4, align 8, !tbaa !5
  %477 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %476, i32 0, i32 88
  %478 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %477, i32 0, i32 51
  %479 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %478, i32 0, i32 4
  %480 = load ptr, ptr %479, align 8, !tbaa !27
  %481 = getelementptr inbounds double, ptr %480, i64 0
  store double %475, ptr %481, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %482

482:                                              ; preds = %504, %470
  %483 = load i64, ptr %8, align 8, !tbaa !28
  %484 = load i64, ptr %6, align 8, !tbaa !28
  %485 = sub nsw i64 %484, 1
  %486 = icmp sle i64 %483, %485
  br i1 %486, label %487, label %507

487:                                              ; preds = %482
  %488 = load ptr, ptr %4, align 8, !tbaa !5
  %489 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %488, i32 0, i32 17
  %490 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %489, i32 0, i32 4
  %491 = load ptr, ptr %490, align 8, !tbaa !27
  %492 = load i64, ptr %8, align 8, !tbaa !28
  %493 = getelementptr inbounds double, ptr %491, i64 %492
  %494 = load double, ptr %493, align 8, !tbaa !32
  %495 = load ptr, ptr %4, align 8, !tbaa !5
  %496 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %495, i32 0, i32 88
  %497 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %496, i32 0, i32 52
  %498 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %497, i32 0, i32 6
  %499 = load ptr, ptr %498, align 8, !tbaa !27
  %500 = getelementptr inbounds ptr, ptr %499, i64 0
  %501 = load ptr, ptr %500, align 8, !tbaa !5
  %502 = load i64, ptr %8, align 8, !tbaa !28
  %503 = getelementptr inbounds double, ptr %501, i64 %502
  store double %494, ptr %503, align 8, !tbaa !32
  br label %504

504:                                              ; preds = %487
  %505 = load i64, ptr %8, align 8, !tbaa !28
  %506 = add nsw i64 %505, 1
  store i64 %506, ptr %8, align 8, !tbaa !28
  br label %482, !llvm.loop !59

507:                                              ; preds = %482
  br label %423

508:                                              ; preds = %439
  br label %509

509:                                              ; preds = %508, %421
  %510 = load ptr, ptr %4, align 8, !tbaa !5
  %511 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %510, i32 0, i32 70
  %512 = load i64, ptr %6, align 8, !tbaa !28
  %513 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %511, i64 noundef %512, ptr noundef %513)
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %514

514:                                              ; preds = %567, %509
  %515 = load i64, ptr %8, align 8, !tbaa !28
  %516 = load i64, ptr %6, align 8, !tbaa !28
  %517 = sub nsw i64 %516, 1
  %518 = icmp sle i64 %515, %517
  br i1 %518, label %519, label %570

519:                                              ; preds = %514
  %520 = load ptr, ptr %4, align 8, !tbaa !5
  %521 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %520, i32 0, i32 12
  %522 = load i64, ptr %521, align 8, !tbaa !50
  %523 = icmp eq i64 %522, 2
  br i1 %523, label %524, label %538

524:                                              ; preds = %519
  %525 = load ptr, ptr %4, align 8, !tbaa !5
  %526 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %525, i32 0, i32 13
  %527 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %526, i32 0, i32 4
  %528 = load ptr, ptr %527, align 8, !tbaa !27
  %529 = load i64, ptr %8, align 8, !tbaa !28
  %530 = getelementptr inbounds double, ptr %528, i64 %529
  %531 = load double, ptr %530, align 8, !tbaa !32
  %532 = load ptr, ptr %4, align 8, !tbaa !5
  %533 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %532, i32 0, i32 70
  %534 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %533, i32 0, i32 4
  %535 = load ptr, ptr %534, align 8, !tbaa !27
  %536 = load i64, ptr %8, align 8, !tbaa !28
  %537 = getelementptr inbounds double, ptr %535, i64 %536
  store double %531, ptr %537, align 8, !tbaa !32
  br label %567

538:                                              ; preds = %519
  %539 = load ptr, ptr %4, align 8, !tbaa !5
  %540 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %539, i32 0, i32 12
  %541 = load i64, ptr %540, align 8, !tbaa !50
  %542 = icmp eq i64 %541, 3
  br i1 %542, label %543, label %560

543:                                              ; preds = %538
  %544 = load ptr, ptr %4, align 8, !tbaa !5
  %545 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %544, i32 0, i32 11
  %546 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %545, i32 0, i32 4
  %547 = load ptr, ptr %546, align 8, !tbaa !27
  %548 = load i64, ptr %8, align 8, !tbaa !28
  %549 = getelementptr inbounds double, ptr %547, i64 %548
  %550 = load double, ptr %549, align 8, !tbaa !32
  %551 = load ptr, ptr %5, align 8, !tbaa !5
  %552 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %550, ptr noundef %551)
  %553 = fdiv double 1.000000e+00, %552
  %554 = load ptr, ptr %4, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %554, i32 0, i32 70
  %556 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %555, i32 0, i32 4
  %557 = load ptr, ptr %556, align 8, !tbaa !27
  %558 = load i64, ptr %8, align 8, !tbaa !28
  %559 = getelementptr inbounds double, ptr %557, i64 %558
  store double %553, ptr %559, align 8, !tbaa !32
  br label %567

560:                                              ; preds = %538
  %561 = load ptr, ptr %4, align 8, !tbaa !5
  %562 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %561, i32 0, i32 70
  %563 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %562, i32 0, i32 4
  %564 = load ptr, ptr %563, align 8, !tbaa !27
  %565 = load i64, ptr %8, align 8, !tbaa !28
  %566 = getelementptr inbounds double, ptr %564, i64 %565
  store double 1.000000e+00, ptr %566, align 8, !tbaa !32
  br label %567

567:                                              ; preds = %560, %543, %524
  %568 = load i64, ptr %8, align 8, !tbaa !28
  %569 = add nsw i64 %568, 1
  store i64 %569, ptr %8, align 8, !tbaa !28
  br label %514, !llvm.loop !60

570:                                              ; preds = %514
  %571 = load ptr, ptr %4, align 8, !tbaa !5
  %572 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %571, i32 0, i32 10
  %573 = load ptr, ptr %4, align 8, !tbaa !5
  %574 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %573, i32 0, i32 70
  %575 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl14sassetprecdiagEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %572, ptr noundef %574, ptr noundef %575)
  %576 = load ptr, ptr %4, align 8, !tbaa !5
  %577 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %576, i32 0, i32 10
  %578 = load ptr, ptr %4, align 8, !tbaa !5
  %579 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %578, i32 0, i32 57
  %580 = load ptr, ptr %5, align 8, !tbaa !5
  %581 = call noundef zeroext i1 @_ZN11alglib_impl20sasstartoptimizationEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %577, ptr noundef %579, ptr noundef %580)
  br i1 %581, label %587, label %582

582:                                              ; preds = %570
  %583 = load ptr, ptr %4, align 8, !tbaa !5
  %584 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %583, i32 0, i32 50
  store i64 -3, ptr %584, align 8, !tbaa !36
  store i8 0, ptr %20, align 1, !tbaa !29
  %585 = load i8, ptr %20, align 1, !tbaa !29, !range !30, !noundef !31
  %586 = trunc i8 %585 to i1
  store i1 %586, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3244

587:                                              ; preds = %570
  %588 = load ptr, ptr %4, align 8, !tbaa !5
  %589 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %588, i32 0, i32 50
  store i64 0, ptr %589, align 8, !tbaa !36
  %590 = load ptr, ptr %4, align 8, !tbaa !5
  %591 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %590, i32 0, i32 39
  store double 0.000000e+00, ptr %591, align 8, !tbaa !61
  %592 = load ptr, ptr %4, align 8, !tbaa !5
  %593 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %592, i32 0, i32 40
  store double 0.000000e+00, ptr %593, align 8, !tbaa !62
  %594 = load ptr, ptr %4, align 8, !tbaa !5
  %595 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %594, i32 0, i32 41
  store double 0.000000e+00, ptr %595, align 8, !tbaa !63
  %596 = load i64, ptr %6, align 8, !tbaa !28
  %597 = load ptr, ptr %4, align 8, !tbaa !5
  %598 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %597, i32 0, i32 38
  %599 = load i64, ptr %598, align 8, !tbaa !64
  %600 = add nsw i64 %596, %599
  %601 = sitofp i64 %600 to double
  %602 = fmul double 1.500000e+00, %601
  %603 = load ptr, ptr %5, align 8, !tbaa !5
  %604 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %602, ptr noundef %603)
  %605 = add nsw i64 %604, 5
  %606 = load ptr, ptr %4, align 8, !tbaa !5
  %607 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %606, i32 0, i32 80
  store i64 %605, ptr %607, align 8, !tbaa !65
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %608, i32 0, i32 15
  %610 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %609, i32 0, i32 4
  %611 = load ptr, ptr %610, align 8, !tbaa !27
  %612 = getelementptr inbounds double, ptr %611, i64 0
  %613 = load ptr, ptr %4, align 8, !tbaa !5
  %614 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %613, i32 0, i32 10
  %615 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %614, i32 0, i32 2
  %616 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %615, i32 0, i32 4
  %617 = load ptr, ptr %616, align 8, !tbaa !27
  %618 = getelementptr inbounds double, ptr %617, i64 0
  %619 = load i64, ptr %6, align 8, !tbaa !28
  %620 = sub nsw i64 %619, 1
  %621 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %620)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %612, i64 noundef 1, ptr noundef %618, i64 noundef 1, i64 noundef %621)
  %622 = load ptr, ptr %4, align 8, !tbaa !5
  %623 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %622, ptr noundef %623)
  %624 = load ptr, ptr %4, align 8, !tbaa !5
  %625 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %624, i32 0, i32 9
  %626 = load double, ptr %625, align 8, !tbaa !54
  %627 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %626, double noundef 0.000000e+00)
  br i1 %627, label %628, label %629

628:                                              ; preds = %587
  br label %638

629:                                              ; preds = %587
  %630 = load ptr, ptr %4, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %630, i32 0, i32 19
  store i8 1, ptr %631, align 1, !tbaa !57
  %632 = load ptr, ptr %4, align 8, !tbaa !5
  %633 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %632, i32 0, i32 25
  %634 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %633, i32 0, i32 0
  store i32 1, ptr %634, align 8, !tbaa !9
  br label %3141

635:                                              ; preds = %142
  %636 = load ptr, ptr %4, align 8, !tbaa !5
  %637 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %636, i32 0, i32 19
  store i8 0, ptr %637, align 1, !tbaa !57
  br label %647

638:                                              ; preds = %628
  %639 = load ptr, ptr %4, align 8, !tbaa !5
  %640 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %639, i32 0, i32 18
  store i8 1, ptr %640, align 8, !tbaa !66
  %641 = load ptr, ptr %4, align 8, !tbaa !5
  %642 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %641, i32 0, i32 25
  %643 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %642, i32 0, i32 0
  store i32 2, ptr %643, align 8, !tbaa !9
  br label %3141

644:                                              ; preds = %149
  %645 = load ptr, ptr %4, align 8, !tbaa !5
  %646 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %645, i32 0, i32 18
  store i8 0, ptr %646, align 8, !tbaa !66
  br label %647

647:                                              ; preds = %644, %635
  %648 = load ptr, ptr %4, align 8, !tbaa !5
  %649 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %648, i32 0, i32 16
  %650 = load double, ptr %649, align 8, !tbaa !58
  %651 = load ptr, ptr %4, align 8, !tbaa !5
  %652 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %651, i32 0, i32 32
  store double %650, ptr %652, align 8, !tbaa !67
  %653 = load ptr, ptr %4, align 8, !tbaa !5
  %654 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %653, i32 0, i32 16
  %655 = load double, ptr %654, align 8, !tbaa !58
  %656 = load ptr, ptr %4, align 8, !tbaa !5
  %657 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %656, i32 0, i32 79
  %658 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11trimprepareEdPdPNS_8ae_stateE(double noundef %655, ptr noundef %657, ptr noundef %658)
  %659 = load ptr, ptr %4, align 8, !tbaa !5
  %660 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %659, i32 0, i32 48
  %661 = load i64, ptr %660, align 8, !tbaa !39
  %662 = add nsw i64 %661, 1
  %663 = load ptr, ptr %4, align 8, !tbaa !5
  %664 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %663, i32 0, i32 48
  store i64 %662, ptr %664, align 8, !tbaa !39
  %665 = load ptr, ptr %4, align 8, !tbaa !5
  %666 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %665, i32 0, i32 6
  %667 = load i8, ptr %666, align 8, !tbaa !68, !range !30, !noundef !31
  %668 = trunc i8 %667 to i1
  br i1 %668, label %670, label %669

669:                                              ; preds = %647
  br label %698

670:                                              ; preds = %647
  %671 = load ptr, ptr %4, align 8, !tbaa !5
  %672 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %671, i32 0, i32 15
  %673 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %672, i32 0, i32 4
  %674 = load ptr, ptr %673, align 8, !tbaa !27
  %675 = getelementptr inbounds double, ptr %674, i64 0
  %676 = load ptr, ptr %4, align 8, !tbaa !5
  %677 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %676, i32 0, i32 10
  %678 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %677, i32 0, i32 2
  %679 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %678, i32 0, i32 4
  %680 = load ptr, ptr %679, align 8, !tbaa !27
  %681 = getelementptr inbounds double, ptr %680, i64 0
  %682 = load i64, ptr %6, align 8, !tbaa !28
  %683 = sub nsw i64 %682, 1
  %684 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %683)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %675, i64 noundef 1, ptr noundef %681, i64 noundef 1, i64 noundef %684)
  %685 = load ptr, ptr %4, align 8, !tbaa !5
  %686 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %685, i32 0, i32 32
  %687 = load double, ptr %686, align 8, !tbaa !67
  %688 = load ptr, ptr %4, align 8, !tbaa !5
  %689 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %688, i32 0, i32 16
  store double %687, ptr %689, align 8, !tbaa !58
  %690 = load ptr, ptr %4, align 8, !tbaa !5
  %691 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %690, i32 0, i32 20
  store i8 1, ptr %691, align 2, !tbaa !69
  %692 = load ptr, ptr %4, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %692, i32 0, i32 25
  %694 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %693, i32 0, i32 0
  store i32 3, ptr %694, align 8, !tbaa !9
  br label %3141

695:                                              ; preds = %156
  %696 = load ptr, ptr %4, align 8, !tbaa !5
  %697 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %696, i32 0, i32 20
  store i8 0, ptr %697, align 2, !tbaa !69
  br label %698

698:                                              ; preds = %695, %669
  %699 = load ptr, ptr %4, align 8, !tbaa !5
  %700 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %699, i32 0, i32 24
  %701 = load i8, ptr %700, align 2, !tbaa !35, !range !30, !noundef !31
  %702 = trunc i8 %701 to i1
  br i1 %702, label %703, label %711

703:                                              ; preds = %698
  %704 = load ptr, ptr %4, align 8, !tbaa !5
  %705 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %704, i32 0, i32 10
  %706 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %705, ptr noundef %706)
  %707 = load ptr, ptr %4, align 8, !tbaa !5
  %708 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %707, i32 0, i32 50
  store i64 8, ptr %708, align 8, !tbaa !36
  store i8 0, ptr %20, align 1, !tbaa !29
  %709 = load i8, ptr %20, align 1, !tbaa !29, !range !30, !noundef !31
  %710 = trunc i8 %709 to i1
  store i1 %710, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3244

711:                                              ; preds = %698
  br label %712

712:                                              ; preds = %3126, %711
  %713 = load ptr, ptr %4, align 8, !tbaa !5
  %714 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %713, i32 0, i32 15
  %715 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %714, i32 0, i32 4
  %716 = load ptr, ptr %715, align 8, !tbaa !27
  %717 = getelementptr inbounds double, ptr %716, i64 0
  %718 = load ptr, ptr %4, align 8, !tbaa !5
  %719 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %718, i32 0, i32 10
  %720 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %719, i32 0, i32 2
  %721 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %720, i32 0, i32 4
  %722 = load ptr, ptr %721, align 8, !tbaa !27
  %723 = getelementptr inbounds double, ptr %722, i64 0
  %724 = load i64, ptr %6, align 8, !tbaa !28
  %725 = sub nsw i64 %724, 1
  %726 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %725)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %717, i64 noundef 1, ptr noundef %723, i64 noundef 1, i64 noundef %726)
  %727 = load ptr, ptr %4, align 8, !tbaa !5
  %728 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %727, ptr noundef %728)
  %729 = load ptr, ptr %4, align 8, !tbaa !5
  %730 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %729, i32 0, i32 9
  %731 = load double, ptr %730, align 8, !tbaa !54
  %732 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %731, double noundef 0.000000e+00)
  br i1 %732, label %733, label %734

733:                                              ; preds = %712
  br label %743

734:                                              ; preds = %712
  %735 = load ptr, ptr %4, align 8, !tbaa !5
  %736 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %735, i32 0, i32 19
  store i8 1, ptr %736, align 1, !tbaa !57
  %737 = load ptr, ptr %4, align 8, !tbaa !5
  %738 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %737, i32 0, i32 25
  %739 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %738, i32 0, i32 0
  store i32 4, ptr %739, align 8, !tbaa !9
  br label %3141

740:                                              ; preds = %163
  %741 = load ptr, ptr %4, align 8, !tbaa !5
  %742 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %741, i32 0, i32 19
  store i8 0, ptr %742, align 1, !tbaa !57
  br label %1176

743:                                              ; preds = %733
  %744 = load ptr, ptr %4, align 8, !tbaa !5
  %745 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %744, i32 0, i32 18
  store i8 1, ptr %745, align 8, !tbaa !66
  %746 = load ptr, ptr %4, align 8, !tbaa !5
  %747 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %746, i32 0, i32 25
  %748 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %747, i32 0, i32 0
  store i32 5, ptr %748, align 8, !tbaa !9
  br label %3141

749:                                              ; preds = %170
  %750 = load ptr, ptr %4, align 8, !tbaa !5
  %751 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %750, i32 0, i32 16
  %752 = load double, ptr %751, align 8, !tbaa !58
  %753 = load ptr, ptr %4, align 8, !tbaa !5
  %754 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %753, i32 0, i32 59
  store double %752, ptr %754, align 8, !tbaa !70
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %755

755:                                              ; preds = %1158, %749
  %756 = load i64, ptr %8, align 8, !tbaa !28
  %757 = load i64, ptr %6, align 8, !tbaa !28
  %758 = sub nsw i64 %757, 1
  %759 = icmp sgt i64 %756, %758
  br i1 %759, label %760, label %761

760:                                              ; preds = %755
  br label %1168

761:                                              ; preds = %755
  %762 = load ptr, ptr %4, align 8, !tbaa !5
  %763 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %762, i32 0, i32 15
  %764 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %763, i32 0, i32 4
  %765 = load ptr, ptr %764, align 8, !tbaa !27
  %766 = load i64, ptr %8, align 8, !tbaa !28
  %767 = getelementptr inbounds double, ptr %765, i64 %766
  %768 = load double, ptr %767, align 8, !tbaa !32
  store double %768, ptr %10, align 8, !tbaa !32
  store i8 0, ptr %13, align 1, !tbaa !29
  %769 = load ptr, ptr %4, align 8, !tbaa !5
  %770 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %769, i32 0, i32 42
  %771 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %770, i32 0, i32 4
  %772 = load ptr, ptr %771, align 8, !tbaa !27
  %773 = load i64, ptr %8, align 8, !tbaa !28
  %774 = getelementptr inbounds i8, ptr %772, i64 %773
  %775 = load i8, ptr %774, align 1, !tbaa !29, !range !30, !noundef !31
  %776 = trunc i8 %775 to i1
  br i1 %776, label %777, label %805

777:                                              ; preds = %761
  %778 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %779 = trunc i8 %778 to i1
  br i1 %779, label %802, label %780

780:                                              ; preds = %777
  %781 = load double, ptr %10, align 8, !tbaa !32
  %782 = load ptr, ptr %4, align 8, !tbaa !5
  %783 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %782, i32 0, i32 9
  %784 = load double, ptr %783, align 8, !tbaa !54
  %785 = load ptr, ptr %4, align 8, !tbaa !5
  %786 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %785, i32 0, i32 11
  %787 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %786, i32 0, i32 4
  %788 = load ptr, ptr %787, align 8, !tbaa !27
  %789 = load i64, ptr %8, align 8, !tbaa !28
  %790 = getelementptr inbounds double, ptr %788, i64 %789
  %791 = load double, ptr %790, align 8, !tbaa !32
  %792 = fneg double %784
  %793 = call double @llvm.fmuladd.f64(double %792, double %791, double %781)
  %794 = load ptr, ptr %4, align 8, !tbaa !5
  %795 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %794, i32 0, i32 44
  %796 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %795, i32 0, i32 4
  %797 = load ptr, ptr %796, align 8, !tbaa !27
  %798 = load i64, ptr %8, align 8, !tbaa !28
  %799 = getelementptr inbounds double, ptr %797, i64 %798
  %800 = load double, ptr %799, align 8, !tbaa !32
  %801 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %793, double noundef %800)
  br label %802

802:                                              ; preds = %780, %777
  %803 = phi i1 [ true, %777 ], [ %801, %780 ]
  %804 = zext i1 %803 to i8
  store i8 %804, ptr %13, align 1, !tbaa !29
  br label %805

805:                                              ; preds = %802, %761
  %806 = load ptr, ptr %4, align 8, !tbaa !5
  %807 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %806, i32 0, i32 43
  %808 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %807, i32 0, i32 4
  %809 = load ptr, ptr %808, align 8, !tbaa !27
  %810 = load i64, ptr %8, align 8, !tbaa !28
  %811 = getelementptr inbounds i8, ptr %809, i64 %810
  %812 = load i8, ptr %811, align 1, !tbaa !29, !range !30, !noundef !31
  %813 = trunc i8 %812 to i1
  br i1 %813, label %814, label %841

814:                                              ; preds = %805
  %815 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %816 = trunc i8 %815 to i1
  br i1 %816, label %838, label %817

817:                                              ; preds = %814
  %818 = load double, ptr %10, align 8, !tbaa !32
  %819 = load ptr, ptr %4, align 8, !tbaa !5
  %820 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %819, i32 0, i32 9
  %821 = load double, ptr %820, align 8, !tbaa !54
  %822 = load ptr, ptr %4, align 8, !tbaa !5
  %823 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %822, i32 0, i32 11
  %824 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %823, i32 0, i32 4
  %825 = load ptr, ptr %824, align 8, !tbaa !27
  %826 = load i64, ptr %8, align 8, !tbaa !28
  %827 = getelementptr inbounds double, ptr %825, i64 %826
  %828 = load double, ptr %827, align 8, !tbaa !32
  %829 = call double @llvm.fmuladd.f64(double %821, double %828, double %818)
  %830 = load ptr, ptr %4, align 8, !tbaa !5
  %831 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %830, i32 0, i32 45
  %832 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %831, i32 0, i32 4
  %833 = load ptr, ptr %832, align 8, !tbaa !27
  %834 = load i64, ptr %8, align 8, !tbaa !28
  %835 = getelementptr inbounds double, ptr %833, i64 %834
  %836 = load double, ptr %835, align 8, !tbaa !32
  %837 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %829, double noundef %836)
  br label %838

838:                                              ; preds = %817, %814
  %839 = phi i1 [ true, %814 ], [ %837, %817 ]
  %840 = zext i1 %839 to i8
  store i8 %840, ptr %13, align 1, !tbaa !29
  br label %841

841:                                              ; preds = %838, %805
  %842 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %843 = trunc i8 %842 to i1
  br i1 %843, label %844, label %845

844:                                              ; preds = %841
  br label %993

845:                                              ; preds = %841
  %846 = load double, ptr %10, align 8, !tbaa !32
  %847 = load ptr, ptr %4, align 8, !tbaa !5
  %848 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %847, i32 0, i32 9
  %849 = load double, ptr %848, align 8, !tbaa !54
  %850 = load ptr, ptr %4, align 8, !tbaa !5
  %851 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %850, i32 0, i32 11
  %852 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %851, i32 0, i32 4
  %853 = load ptr, ptr %852, align 8, !tbaa !27
  %854 = load i64, ptr %8, align 8, !tbaa !28
  %855 = getelementptr inbounds double, ptr %853, i64 %854
  %856 = load double, ptr %855, align 8, !tbaa !32
  %857 = fneg double %849
  %858 = call double @llvm.fmuladd.f64(double %857, double %856, double %846)
  %859 = load ptr, ptr %4, align 8, !tbaa !5
  %860 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %859, i32 0, i32 15
  %861 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %860, i32 0, i32 4
  %862 = load ptr, ptr %861, align 8, !tbaa !27
  %863 = load i64, ptr %8, align 8, !tbaa !28
  %864 = getelementptr inbounds double, ptr %862, i64 %863
  store double %858, ptr %864, align 8, !tbaa !32
  %865 = load ptr, ptr %4, align 8, !tbaa !5
  %866 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %865, i32 0, i32 25
  %867 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %866, i32 0, i32 0
  store i32 6, ptr %867, align 8, !tbaa !9
  br label %3141

868:                                              ; preds = %177
  %869 = load ptr, ptr %4, align 8, !tbaa !5
  %870 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %869, i32 0, i32 16
  %871 = load double, ptr %870, align 8, !tbaa !58
  %872 = load ptr, ptr %4, align 8, !tbaa !5
  %873 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %872, i32 0, i32 60
  store double %871, ptr %873, align 8, !tbaa !71
  %874 = load double, ptr %10, align 8, !tbaa !32
  %875 = load ptr, ptr %4, align 8, !tbaa !5
  %876 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %875, i32 0, i32 9
  %877 = load double, ptr %876, align 8, !tbaa !54
  %878 = fmul double 5.000000e-01, %877
  %879 = load ptr, ptr %4, align 8, !tbaa !5
  %880 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %879, i32 0, i32 11
  %881 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %880, i32 0, i32 4
  %882 = load ptr, ptr %881, align 8, !tbaa !27
  %883 = load i64, ptr %8, align 8, !tbaa !28
  %884 = getelementptr inbounds double, ptr %882, i64 %883
  %885 = load double, ptr %884, align 8, !tbaa !32
  %886 = fneg double %878
  %887 = call double @llvm.fmuladd.f64(double %886, double %885, double %874)
  %888 = load ptr, ptr %4, align 8, !tbaa !5
  %889 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %888, i32 0, i32 15
  %890 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %889, i32 0, i32 4
  %891 = load ptr, ptr %890, align 8, !tbaa !27
  %892 = load i64, ptr %8, align 8, !tbaa !28
  %893 = getelementptr inbounds double, ptr %891, i64 %892
  store double %887, ptr %893, align 8, !tbaa !32
  %894 = load ptr, ptr %4, align 8, !tbaa !5
  %895 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %894, i32 0, i32 25
  %896 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %895, i32 0, i32 0
  store i32 7, ptr %896, align 8, !tbaa !9
  br label %3141

897:                                              ; preds = %184
  %898 = load ptr, ptr %4, align 8, !tbaa !5
  %899 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %898, i32 0, i32 16
  %900 = load double, ptr %899, align 8, !tbaa !58
  %901 = load ptr, ptr %4, align 8, !tbaa !5
  %902 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %901, i32 0, i32 61
  store double %900, ptr %902, align 8, !tbaa !72
  %903 = load double, ptr %10, align 8, !tbaa !32
  %904 = load ptr, ptr %4, align 8, !tbaa !5
  %905 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %904, i32 0, i32 9
  %906 = load double, ptr %905, align 8, !tbaa !54
  %907 = fmul double 5.000000e-01, %906
  %908 = load ptr, ptr %4, align 8, !tbaa !5
  %909 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %908, i32 0, i32 11
  %910 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %909, i32 0, i32 4
  %911 = load ptr, ptr %910, align 8, !tbaa !27
  %912 = load i64, ptr %8, align 8, !tbaa !28
  %913 = getelementptr inbounds double, ptr %911, i64 %912
  %914 = load double, ptr %913, align 8, !tbaa !32
  %915 = call double @llvm.fmuladd.f64(double %907, double %914, double %903)
  %916 = load ptr, ptr %4, align 8, !tbaa !5
  %917 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %916, i32 0, i32 15
  %918 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %917, i32 0, i32 4
  %919 = load ptr, ptr %918, align 8, !tbaa !27
  %920 = load i64, ptr %8, align 8, !tbaa !28
  %921 = getelementptr inbounds double, ptr %919, i64 %920
  store double %915, ptr %921, align 8, !tbaa !32
  %922 = load ptr, ptr %4, align 8, !tbaa !5
  %923 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %922, i32 0, i32 25
  %924 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %923, i32 0, i32 0
  store i32 8, ptr %924, align 8, !tbaa !9
  br label %3141

925:                                              ; preds = %191
  %926 = load ptr, ptr %4, align 8, !tbaa !5
  %927 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %926, i32 0, i32 16
  %928 = load double, ptr %927, align 8, !tbaa !58
  %929 = load ptr, ptr %4, align 8, !tbaa !5
  %930 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %929, i32 0, i32 62
  store double %928, ptr %930, align 8, !tbaa !73
  %931 = load double, ptr %10, align 8, !tbaa !32
  %932 = load ptr, ptr %4, align 8, !tbaa !5
  %933 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %932, i32 0, i32 9
  %934 = load double, ptr %933, align 8, !tbaa !54
  %935 = load ptr, ptr %4, align 8, !tbaa !5
  %936 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %935, i32 0, i32 11
  %937 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %936, i32 0, i32 4
  %938 = load ptr, ptr %937, align 8, !tbaa !27
  %939 = load i64, ptr %8, align 8, !tbaa !28
  %940 = getelementptr inbounds double, ptr %938, i64 %939
  %941 = load double, ptr %940, align 8, !tbaa !32
  %942 = call double @llvm.fmuladd.f64(double %934, double %941, double %931)
  %943 = load ptr, ptr %4, align 8, !tbaa !5
  %944 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %943, i32 0, i32 15
  %945 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %944, i32 0, i32 4
  %946 = load ptr, ptr %945, align 8, !tbaa !27
  %947 = load i64, ptr %8, align 8, !tbaa !28
  %948 = getelementptr inbounds double, ptr %946, i64 %947
  store double %942, ptr %948, align 8, !tbaa !32
  %949 = load ptr, ptr %4, align 8, !tbaa !5
  %950 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %949, i32 0, i32 25
  %951 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %950, i32 0, i32 0
  store i32 9, ptr %951, align 8, !tbaa !9
  br label %3141

952:                                              ; preds = %198
  %953 = load ptr, ptr %4, align 8, !tbaa !5
  %954 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %953, i32 0, i32 16
  %955 = load double, ptr %954, align 8, !tbaa !58
  %956 = load ptr, ptr %4, align 8, !tbaa !5
  %957 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %956, i32 0, i32 63
  store double %955, ptr %957, align 8, !tbaa !74
  %958 = load ptr, ptr %4, align 8, !tbaa !5
  %959 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %958, i32 0, i32 62
  %960 = load double, ptr %959, align 8, !tbaa !73
  %961 = load ptr, ptr %4, align 8, !tbaa !5
  %962 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %961, i32 0, i32 61
  %963 = load double, ptr %962, align 8, !tbaa !72
  %964 = fsub double %960, %963
  %965 = load ptr, ptr %4, align 8, !tbaa !5
  %966 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %965, i32 0, i32 63
  %967 = load double, ptr %966, align 8, !tbaa !74
  %968 = load ptr, ptr %4, align 8, !tbaa !5
  %969 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %968, i32 0, i32 60
  %970 = load double, ptr %969, align 8, !tbaa !71
  %971 = fsub double %967, %970
  %972 = fneg double %971
  %973 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %964, double %972)
  %974 = load ptr, ptr %4, align 8, !tbaa !5
  %975 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %974, i32 0, i32 9
  %976 = load double, ptr %975, align 8, !tbaa !54
  %977 = fmul double 6.000000e+00, %976
  %978 = load ptr, ptr %4, align 8, !tbaa !5
  %979 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %978, i32 0, i32 11
  %980 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %979, i32 0, i32 4
  %981 = load ptr, ptr %980, align 8, !tbaa !27
  %982 = load i64, ptr %8, align 8, !tbaa !28
  %983 = getelementptr inbounds double, ptr %981, i64 %982
  %984 = load double, ptr %983, align 8, !tbaa !32
  %985 = fmul double %977, %984
  %986 = fdiv double %973, %985
  %987 = load ptr, ptr %4, align 8, !tbaa !5
  %988 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %987, i32 0, i32 17
  %989 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %988, i32 0, i32 4
  %990 = load ptr, ptr %989, align 8, !tbaa !27
  %991 = load i64, ptr %8, align 8, !tbaa !28
  %992 = getelementptr inbounds double, ptr %990, i64 %991
  store double %986, ptr %992, align 8, !tbaa !32
  br label %1158

993:                                              ; preds = %844
  %994 = load double, ptr %10, align 8, !tbaa !32
  %995 = load ptr, ptr %4, align 8, !tbaa !5
  %996 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %995, i32 0, i32 9
  %997 = load double, ptr %996, align 8, !tbaa !54
  %998 = load ptr, ptr %4, align 8, !tbaa !5
  %999 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %998, i32 0, i32 11
  %1000 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %999, i32 0, i32 4
  %1001 = load ptr, ptr %1000, align 8, !tbaa !27
  %1002 = load i64, ptr %8, align 8, !tbaa !28
  %1003 = getelementptr inbounds double, ptr %1001, i64 %1002
  %1004 = load double, ptr %1003, align 8, !tbaa !32
  %1005 = fneg double %997
  %1006 = call double @llvm.fmuladd.f64(double %1005, double %1004, double %994)
  %1007 = load ptr, ptr %4, align 8, !tbaa !5
  %1008 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1007, i32 0, i32 64
  store double %1006, ptr %1008, align 8, !tbaa !75
  %1009 = load double, ptr %10, align 8, !tbaa !32
  %1010 = load ptr, ptr %4, align 8, !tbaa !5
  %1011 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1010, i32 0, i32 9
  %1012 = load double, ptr %1011, align 8, !tbaa !54
  %1013 = load ptr, ptr %4, align 8, !tbaa !5
  %1014 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1013, i32 0, i32 11
  %1015 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1014, i32 0, i32 4
  %1016 = load ptr, ptr %1015, align 8, !tbaa !27
  %1017 = load i64, ptr %8, align 8, !tbaa !28
  %1018 = getelementptr inbounds double, ptr %1016, i64 %1017
  %1019 = load double, ptr %1018, align 8, !tbaa !32
  %1020 = call double @llvm.fmuladd.f64(double %1012, double %1019, double %1009)
  %1021 = load ptr, ptr %4, align 8, !tbaa !5
  %1022 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1021, i32 0, i32 65
  store double %1020, ptr %1022, align 8, !tbaa !76
  %1023 = load ptr, ptr %4, align 8, !tbaa !5
  %1024 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1023, i32 0, i32 42
  %1025 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1024, i32 0, i32 4
  %1026 = load ptr, ptr %1025, align 8, !tbaa !27
  %1027 = load i64, ptr %8, align 8, !tbaa !28
  %1028 = getelementptr inbounds i8, ptr %1026, i64 %1027
  %1029 = load i8, ptr %1028, align 1, !tbaa !29, !range !30, !noundef !31
  %1030 = trunc i8 %1029 to i1
  br i1 %1030, label %1031, label %1053

1031:                                             ; preds = %993
  %1032 = load ptr, ptr %4, align 8, !tbaa !5
  %1033 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1032, i32 0, i32 64
  %1034 = load double, ptr %1033, align 8, !tbaa !75
  %1035 = load ptr, ptr %4, align 8, !tbaa !5
  %1036 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1035, i32 0, i32 44
  %1037 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1036, i32 0, i32 4
  %1038 = load ptr, ptr %1037, align 8, !tbaa !27
  %1039 = load i64, ptr %8, align 8, !tbaa !28
  %1040 = getelementptr inbounds double, ptr %1038, i64 %1039
  %1041 = load double, ptr %1040, align 8, !tbaa !32
  %1042 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1034, double noundef %1041)
  br i1 %1042, label %1043, label %1053

1043:                                             ; preds = %1031
  %1044 = load ptr, ptr %4, align 8, !tbaa !5
  %1045 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1044, i32 0, i32 44
  %1046 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1045, i32 0, i32 4
  %1047 = load ptr, ptr %1046, align 8, !tbaa !27
  %1048 = load i64, ptr %8, align 8, !tbaa !28
  %1049 = getelementptr inbounds double, ptr %1047, i64 %1048
  %1050 = load double, ptr %1049, align 8, !tbaa !32
  %1051 = load ptr, ptr %4, align 8, !tbaa !5
  %1052 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1051, i32 0, i32 64
  store double %1050, ptr %1052, align 8, !tbaa !75
  br label %1053

1053:                                             ; preds = %1043, %1031, %993
  %1054 = load ptr, ptr %4, align 8, !tbaa !5
  %1055 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1054, i32 0, i32 43
  %1056 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1055, i32 0, i32 4
  %1057 = load ptr, ptr %1056, align 8, !tbaa !27
  %1058 = load i64, ptr %8, align 8, !tbaa !28
  %1059 = getelementptr inbounds i8, ptr %1057, i64 %1058
  %1060 = load i8, ptr %1059, align 1, !tbaa !29, !range !30, !noundef !31
  %1061 = trunc i8 %1060 to i1
  br i1 %1061, label %1062, label %1084

1062:                                             ; preds = %1053
  %1063 = load ptr, ptr %4, align 8, !tbaa !5
  %1064 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1063, i32 0, i32 65
  %1065 = load double, ptr %1064, align 8, !tbaa !76
  %1066 = load ptr, ptr %4, align 8, !tbaa !5
  %1067 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1066, i32 0, i32 45
  %1068 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1067, i32 0, i32 4
  %1069 = load ptr, ptr %1068, align 8, !tbaa !27
  %1070 = load i64, ptr %8, align 8, !tbaa !28
  %1071 = getelementptr inbounds double, ptr %1069, i64 %1070
  %1072 = load double, ptr %1071, align 8, !tbaa !32
  %1073 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1065, double noundef %1072)
  br i1 %1073, label %1074, label %1084

1074:                                             ; preds = %1062
  %1075 = load ptr, ptr %4, align 8, !tbaa !5
  %1076 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1075, i32 0, i32 45
  %1077 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1076, i32 0, i32 4
  %1078 = load ptr, ptr %1077, align 8, !tbaa !27
  %1079 = load i64, ptr %8, align 8, !tbaa !28
  %1080 = getelementptr inbounds double, ptr %1078, i64 %1079
  %1081 = load double, ptr %1080, align 8, !tbaa !32
  %1082 = load ptr, ptr %4, align 8, !tbaa !5
  %1083 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1082, i32 0, i32 65
  store double %1081, ptr %1083, align 8, !tbaa !76
  br label %1084

1084:                                             ; preds = %1074, %1062, %1053
  %1085 = load ptr, ptr %4, align 8, !tbaa !5
  %1086 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1085, i32 0, i32 64
  %1087 = load double, ptr %1086, align 8, !tbaa !75
  %1088 = load ptr, ptr %4, align 8, !tbaa !5
  %1089 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1088, i32 0, i32 15
  %1090 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1089, i32 0, i32 4
  %1091 = load ptr, ptr %1090, align 8, !tbaa !27
  %1092 = load i64, ptr %8, align 8, !tbaa !28
  %1093 = getelementptr inbounds double, ptr %1091, i64 %1092
  store double %1087, ptr %1093, align 8, !tbaa !32
  %1094 = load ptr, ptr %4, align 8, !tbaa !5
  %1095 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1094, i32 0, i32 25
  %1096 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1095, i32 0, i32 0
  store i32 10, ptr %1096, align 8, !tbaa !9
  br label %3141

1097:                                             ; preds = %205
  %1098 = load ptr, ptr %4, align 8, !tbaa !5
  %1099 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1098, i32 0, i32 16
  %1100 = load double, ptr %1099, align 8, !tbaa !58
  %1101 = load ptr, ptr %4, align 8, !tbaa !5
  %1102 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1101, i32 0, i32 61
  store double %1100, ptr %1102, align 8, !tbaa !72
  %1103 = load ptr, ptr %4, align 8, !tbaa !5
  %1104 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1103, i32 0, i32 65
  %1105 = load double, ptr %1104, align 8, !tbaa !76
  %1106 = load ptr, ptr %4, align 8, !tbaa !5
  %1107 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1106, i32 0, i32 15
  %1108 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1107, i32 0, i32 4
  %1109 = load ptr, ptr %1108, align 8, !tbaa !27
  %1110 = load i64, ptr %8, align 8, !tbaa !28
  %1111 = getelementptr inbounds double, ptr %1109, i64 %1110
  store double %1105, ptr %1111, align 8, !tbaa !32
  %1112 = load ptr, ptr %4, align 8, !tbaa !5
  %1113 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1112, i32 0, i32 25
  %1114 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1113, i32 0, i32 0
  store i32 11, ptr %1114, align 8, !tbaa !9
  br label %3141

1115:                                             ; preds = %212
  %1116 = load ptr, ptr %4, align 8, !tbaa !5
  %1117 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1116, i32 0, i32 16
  %1118 = load double, ptr %1117, align 8, !tbaa !58
  %1119 = load ptr, ptr %4, align 8, !tbaa !5
  %1120 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1119, i32 0, i32 62
  store double %1118, ptr %1120, align 8, !tbaa !73
  %1121 = load ptr, ptr %4, align 8, !tbaa !5
  %1122 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1121, i32 0, i32 64
  %1123 = load double, ptr %1122, align 8, !tbaa !75
  %1124 = load ptr, ptr %4, align 8, !tbaa !5
  %1125 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1124, i32 0, i32 65
  %1126 = load double, ptr %1125, align 8, !tbaa !76
  %1127 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1123, double noundef %1126)
  br i1 %1127, label %1128, label %1150

1128:                                             ; preds = %1115
  %1129 = load ptr, ptr %4, align 8, !tbaa !5
  %1130 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1129, i32 0, i32 62
  %1131 = load double, ptr %1130, align 8, !tbaa !73
  %1132 = load ptr, ptr %4, align 8, !tbaa !5
  %1133 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1132, i32 0, i32 61
  %1134 = load double, ptr %1133, align 8, !tbaa !72
  %1135 = fsub double %1131, %1134
  %1136 = load ptr, ptr %4, align 8, !tbaa !5
  %1137 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1136, i32 0, i32 65
  %1138 = load double, ptr %1137, align 8, !tbaa !76
  %1139 = load ptr, ptr %4, align 8, !tbaa !5
  %1140 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1139, i32 0, i32 64
  %1141 = load double, ptr %1140, align 8, !tbaa !75
  %1142 = fsub double %1138, %1141
  %1143 = fdiv double %1135, %1142
  %1144 = load ptr, ptr %4, align 8, !tbaa !5
  %1145 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1144, i32 0, i32 17
  %1146 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1145, i32 0, i32 4
  %1147 = load ptr, ptr %1146, align 8, !tbaa !27
  %1148 = load i64, ptr %8, align 8, !tbaa !28
  %1149 = getelementptr inbounds double, ptr %1147, i64 %1148
  store double %1143, ptr %1149, align 8, !tbaa !32
  br label %1157

1150:                                             ; preds = %1115
  %1151 = load ptr, ptr %4, align 8, !tbaa !5
  %1152 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1151, i32 0, i32 17
  %1153 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1152, i32 0, i32 4
  %1154 = load ptr, ptr %1153, align 8, !tbaa !27
  %1155 = load i64, ptr %8, align 8, !tbaa !28
  %1156 = getelementptr inbounds double, ptr %1154, i64 %1155
  store double 0.000000e+00, ptr %1156, align 8, !tbaa !32
  br label %1157

1157:                                             ; preds = %1150, %1128
  br label %1158

1158:                                             ; preds = %1157, %952
  %1159 = load double, ptr %10, align 8, !tbaa !32
  %1160 = load ptr, ptr %4, align 8, !tbaa !5
  %1161 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1160, i32 0, i32 15
  %1162 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1161, i32 0, i32 4
  %1163 = load ptr, ptr %1162, align 8, !tbaa !27
  %1164 = load i64, ptr %8, align 8, !tbaa !28
  %1165 = getelementptr inbounds double, ptr %1163, i64 %1164
  store double %1159, ptr %1165, align 8, !tbaa !32
  %1166 = load i64, ptr %8, align 8, !tbaa !28
  %1167 = add nsw i64 %1166, 1
  store i64 %1167, ptr %8, align 8, !tbaa !28
  br label %755

1168:                                             ; preds = %760
  %1169 = load ptr, ptr %4, align 8, !tbaa !5
  %1170 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1169, i32 0, i32 59
  %1171 = load double, ptr %1170, align 8, !tbaa !70
  %1172 = load ptr, ptr %4, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1172, i32 0, i32 16
  store double %1171, ptr %1173, align 8, !tbaa !58
  %1174 = load ptr, ptr %4, align 8, !tbaa !5
  %1175 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1174, i32 0, i32 18
  store i8 0, ptr %1175, align 8, !tbaa !66
  br label %1176

1176:                                             ; preds = %1168, %740
  %1177 = load ptr, ptr %4, align 8, !tbaa !5
  %1178 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1177, i32 0, i32 16
  %1179 = load double, ptr %1178, align 8, !tbaa !58
  %1180 = load ptr, ptr %4, align 8, !tbaa !5
  %1181 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1180, i32 0, i32 32
  store double %1179, ptr %1181, align 8, !tbaa !67
  %1182 = load ptr, ptr %4, align 8, !tbaa !5
  %1183 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1182, i32 0, i32 26
  %1184 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1183, i32 0, i32 4
  %1185 = load ptr, ptr %1184, align 8, !tbaa !27
  %1186 = getelementptr inbounds double, ptr %1185, i64 0
  %1187 = load ptr, ptr %4, align 8, !tbaa !5
  %1188 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1187, i32 0, i32 17
  %1189 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1188, i32 0, i32 4
  %1190 = load ptr, ptr %1189, align 8, !tbaa !27
  %1191 = getelementptr inbounds double, ptr %1190, i64 0
  %1192 = load i64, ptr %6, align 8, !tbaa !28
  %1193 = sub nsw i64 %1192, 1
  %1194 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1193)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1186, i64 noundef 1, ptr noundef %1191, i64 noundef 1, i64 noundef %1194)
  %1195 = load ptr, ptr %4, align 8, !tbaa !5
  %1196 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1195, i32 0, i32 27
  %1197 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1196, i32 0, i32 4
  %1198 = load ptr, ptr %1197, align 8, !tbaa !27
  %1199 = getelementptr inbounds double, ptr %1198, i64 0
  %1200 = load ptr, ptr %4, align 8, !tbaa !5
  %1201 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1200, i32 0, i32 17
  %1202 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1201, i32 0, i32 4
  %1203 = load ptr, ptr %1202, align 8, !tbaa !27
  %1204 = getelementptr inbounds double, ptr %1203, i64 0
  %1205 = load i64, ptr %6, align 8, !tbaa !28
  %1206 = sub nsw i64 %1205, 1
  %1207 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1206)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1199, i64 noundef 1, ptr noundef %1204, i64 noundef 1, i64 noundef %1207)
  %1208 = load ptr, ptr %4, align 8, !tbaa !5
  %1209 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1208, i32 0, i32 10
  %1210 = load ptr, ptr %4, align 8, !tbaa !5
  %1211 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1210, i32 0, i32 26
  %1212 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl28sasreactivateconstraintsprecEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1209, ptr noundef %1211, ptr noundef %1212)
  %1213 = load ptr, ptr %4, align 8, !tbaa !5
  %1214 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1213, i32 0, i32 10
  %1215 = load ptr, ptr %4, align 8, !tbaa !5
  %1216 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1215, i32 0, i32 27
  %1217 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1214, ptr noundef %1216, ptr noundef %1217)
  store double 0.000000e+00, ptr %18, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %1218

1218:                                             ; preds = %1243, %1176
  %1219 = load i64, ptr %8, align 8, !tbaa !28
  %1220 = load i64, ptr %6, align 8, !tbaa !28
  %1221 = sub nsw i64 %1220, 1
  %1222 = icmp sle i64 %1219, %1221
  br i1 %1222, label %1223, label %1246

1223:                                             ; preds = %1218
  %1224 = load double, ptr %18, align 8, !tbaa !32
  %1225 = load ptr, ptr %4, align 8, !tbaa !5
  %1226 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1225, i32 0, i32 27
  %1227 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1226, i32 0, i32 4
  %1228 = load ptr, ptr %1227, align 8, !tbaa !27
  %1229 = load i64, ptr %8, align 8, !tbaa !28
  %1230 = getelementptr inbounds double, ptr %1228, i64 %1229
  %1231 = load double, ptr %1230, align 8, !tbaa !32
  %1232 = load ptr, ptr %4, align 8, !tbaa !5
  %1233 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1232, i32 0, i32 11
  %1234 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1233, i32 0, i32 4
  %1235 = load ptr, ptr %1234, align 8, !tbaa !27
  %1236 = load i64, ptr %8, align 8, !tbaa !28
  %1237 = getelementptr inbounds double, ptr %1235, i64 %1236
  %1238 = load double, ptr %1237, align 8, !tbaa !32
  %1239 = fmul double %1231, %1238
  %1240 = load ptr, ptr %5, align 8, !tbaa !5
  %1241 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1239, ptr noundef %1240)
  %1242 = fadd double %1224, %1241
  store double %1242, ptr %18, align 8, !tbaa !32
  br label %1243

1243:                                             ; preds = %1223
  %1244 = load i64, ptr %8, align 8, !tbaa !28
  %1245 = add nsw i64 %1244, 1
  store i64 %1245, ptr %8, align 8, !tbaa !28
  br label %1218, !llvm.loop !77

1246:                                             ; preds = %1218
  %1247 = load double, ptr %18, align 8, !tbaa !32
  %1248 = load ptr, ptr %5, align 8, !tbaa !5
  %1249 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1247, ptr noundef %1248)
  store double %1249, ptr %18, align 8, !tbaa !32
  %1250 = load ptr, ptr %4, align 8, !tbaa !5
  %1251 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1250, i32 0, i32 41
  %1252 = load double, ptr %1251, align 8, !tbaa !63
  %1253 = load double, ptr %18, align 8, !tbaa !32
  %1254 = load ptr, ptr %5, align 8, !tbaa !5
  %1255 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1252, double noundef %1253, ptr noundef %1254)
  %1256 = load ptr, ptr %4, align 8, !tbaa !5
  %1257 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1256, i32 0, i32 41
  store double %1255, ptr %1257, align 8, !tbaa !63
  %1258 = load double, ptr %18, align 8, !tbaa !32
  %1259 = load ptr, ptr %5, align 8, !tbaa !5
  %1260 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1258, ptr noundef %1259)
  br i1 %1260, label %1261, label %1267

1261:                                             ; preds = %1246
  %1262 = load ptr, ptr %4, align 8, !tbaa !5
  %1263 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1262, i32 0, i32 32
  %1264 = load double, ptr %1263, align 8, !tbaa !67
  %1265 = load ptr, ptr %5, align 8, !tbaa !5
  %1266 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1264, ptr noundef %1265)
  br i1 %1266, label %1275, label %1267

1267:                                             ; preds = %1261, %1246
  %1268 = load ptr, ptr %4, align 8, !tbaa !5
  %1269 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1268, i32 0, i32 10
  %1270 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %1269, ptr noundef %1270)
  %1271 = load ptr, ptr %4, align 8, !tbaa !5
  %1272 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1271, i32 0, i32 50
  store i64 -8, ptr %1272, align 8, !tbaa !36
  store i8 0, ptr %20, align 1, !tbaa !29
  %1273 = load i8, ptr %20, align 1, !tbaa !29, !range !30, !noundef !31
  %1274 = trunc i8 %1273 to i1
  store i1 %1274, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3244

1275:                                             ; preds = %1261
  %1276 = load ptr, ptr %4, align 8, !tbaa !5
  %1277 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1276, i32 0, i32 24
  %1278 = load i8, ptr %1277, align 2, !tbaa !35, !range !30, !noundef !31
  %1279 = trunc i8 %1278 to i1
  br i1 %1279, label %1280, label %1288

1280:                                             ; preds = %1275
  %1281 = load ptr, ptr %4, align 8, !tbaa !5
  %1282 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1281, i32 0, i32 10
  %1283 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %1282, ptr noundef %1283)
  %1284 = load ptr, ptr %4, align 8, !tbaa !5
  %1285 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1284, i32 0, i32 50
  store i64 8, ptr %1285, align 8, !tbaa !36
  store i8 0, ptr %20, align 1, !tbaa !29
  %1286 = load i8, ptr %20, align 1, !tbaa !29, !range !30, !noundef !31
  %1287 = trunc i8 %1286 to i1
  store i1 %1287, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3244

1288:                                             ; preds = %1275
  %1289 = load ptr, ptr %4, align 8, !tbaa !5
  %1290 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1289, i32 0, i32 85
  store i64 0, ptr %1290, align 8, !tbaa !78
  %1291 = load ptr, ptr %4, align 8, !tbaa !5
  %1292 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1291, i32 0, i32 22
  store i8 1, ptr %1292, align 4, !tbaa !34
  store i64 -1, ptr %16, align 8, !tbaa !28
  br label %1293

1293:                                             ; preds = %3111, %3070, %1576, %1288
  %1294 = load i64, ptr %16, align 8, !tbaa !28
  %1295 = load i64, ptr %6, align 8, !tbaa !28
  %1296 = sub nsw i64 %1295, 1
  %1297 = icmp sge i64 %1294, %1296
  br i1 %1297, label %1298, label %1299

1298:                                             ; preds = %1293
  br label %3112

1299:                                             ; preds = %1293
  %1300 = load i64, ptr %16, align 8, !tbaa !28
  %1301 = add nsw i64 %1300, 1
  store i64 %1301, ptr %16, align 8, !tbaa !28
  %1302 = load ptr, ptr %4, align 8, !tbaa !5
  %1303 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1302, i32 0, i32 22
  %1304 = load i8, ptr %1303, align 4, !tbaa !34, !range !30, !noundef !31
  %1305 = trunc i8 %1304 to i1
  br i1 %1305, label %1306, label %1320

1306:                                             ; preds = %1299
  %1307 = load ptr, ptr %4, align 8, !tbaa !5
  %1308 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1307, i32 0, i32 10
  %1309 = load ptr, ptr %4, align 8, !tbaa !5
  %1310 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1309, i32 0, i32 26
  %1311 = load ptr, ptr %5, align 8, !tbaa !5
  %1312 = call noundef double @_ZN11alglib_impl24sasscaledconstrainednormEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1308, ptr noundef %1310, ptr noundef %1311)
  %1313 = load ptr, ptr %4, align 8, !tbaa !5
  %1314 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1313, i32 0, i32 2
  %1315 = load double, ptr %1314, align 8, !tbaa !79
  %1316 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1312, double noundef %1315)
  br i1 %1316, label %1317, label %1320

1317:                                             ; preds = %1306
  %1318 = load ptr, ptr %4, align 8, !tbaa !5
  %1319 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1318, i32 0, i32 50
  store i64 4, ptr %1319, align 8, !tbaa !36
  br label %3112

1320:                                             ; preds = %1306, %1299
  %1321 = load ptr, ptr %4, align 8, !tbaa !5
  %1322 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1321, i32 0, i32 77
  %1323 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1322, i32 0, i32 4
  %1324 = load ptr, ptr %1323, align 8, !tbaa !27
  %1325 = getelementptr inbounds double, ptr %1324, i64 0
  %1326 = load ptr, ptr %4, align 8, !tbaa !5
  %1327 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1326, i32 0, i32 27
  %1328 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1327, i32 0, i32 4
  %1329 = load ptr, ptr %1328, align 8, !tbaa !27
  %1330 = getelementptr inbounds double, ptr %1329, i64 0
  %1331 = load i64, ptr %6, align 8, !tbaa !28
  %1332 = sub nsw i64 %1331, 1
  %1333 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1332)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1325, i64 noundef 1, ptr noundef %1330, i64 noundef 1, i64 noundef %1333)
  %1334 = load ptr, ptr %4, align 8, !tbaa !5
  %1335 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1334, i32 0, i32 85
  %1336 = load i64, ptr %1335, align 8, !tbaa !78
  %1337 = sub nsw i64 %1336, 1
  store i64 %1337, ptr %8, align 8, !tbaa !28
  br label %1338

1338:                                             ; preds = %1392, %1320
  %1339 = load i64, ptr %8, align 8, !tbaa !28
  %1340 = icmp sge i64 %1339, 0
  br i1 %1340, label %1341, label %1395

1341:                                             ; preds = %1338
  %1342 = load ptr, ptr %4, align 8, !tbaa !5
  %1343 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1342, i32 0, i32 82
  %1344 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1343, i32 0, i32 6
  %1345 = load ptr, ptr %1344, align 8, !tbaa !27
  %1346 = load i64, ptr %8, align 8, !tbaa !28
  %1347 = getelementptr inbounds ptr, ptr %1345, i64 %1346
  %1348 = load ptr, ptr %1347, align 8, !tbaa !5
  %1349 = getelementptr inbounds double, ptr %1348, i64 0
  %1350 = load ptr, ptr %4, align 8, !tbaa !5
  %1351 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1350, i32 0, i32 77
  %1352 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1351, i32 0, i32 4
  %1353 = load ptr, ptr %1352, align 8, !tbaa !27
  %1354 = getelementptr inbounds double, ptr %1353, i64 0
  %1355 = load i64, ptr %6, align 8, !tbaa !28
  %1356 = sub nsw i64 %1355, 1
  %1357 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1356)
  %1358 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1349, i64 noundef 1, ptr noundef %1354, i64 noundef 1, i64 noundef %1357)
  store double %1358, ptr %10, align 8, !tbaa !32
  %1359 = load double, ptr %10, align 8, !tbaa !32
  %1360 = load ptr, ptr %4, align 8, !tbaa !5
  %1361 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1360, i32 0, i32 84
  %1362 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1361, i32 0, i32 4
  %1363 = load ptr, ptr %1362, align 8, !tbaa !27
  %1364 = load i64, ptr %8, align 8, !tbaa !28
  %1365 = getelementptr inbounds double, ptr %1363, i64 %1364
  store double %1359, ptr %1365, align 8, !tbaa !32
  %1366 = load double, ptr %10, align 8, !tbaa !32
  %1367 = load ptr, ptr %4, align 8, !tbaa !5
  %1368 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1367, i32 0, i32 83
  %1369 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1368, i32 0, i32 4
  %1370 = load ptr, ptr %1369, align 8, !tbaa !27
  %1371 = load i64, ptr %8, align 8, !tbaa !28
  %1372 = getelementptr inbounds double, ptr %1370, i64 %1371
  %1373 = load double, ptr %1372, align 8, !tbaa !32
  %1374 = fmul double %1366, %1373
  store double %1374, ptr %11, align 8, !tbaa !32
  %1375 = load ptr, ptr %4, align 8, !tbaa !5
  %1376 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1375, i32 0, i32 77
  %1377 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1376, i32 0, i32 4
  %1378 = load ptr, ptr %1377, align 8, !tbaa !27
  %1379 = getelementptr inbounds double, ptr %1378, i64 0
  %1380 = load ptr, ptr %4, align 8, !tbaa !5
  %1381 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1380, i32 0, i32 81
  %1382 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1381, i32 0, i32 6
  %1383 = load ptr, ptr %1382, align 8, !tbaa !27
  %1384 = load i64, ptr %8, align 8, !tbaa !28
  %1385 = getelementptr inbounds ptr, ptr %1383, i64 %1384
  %1386 = load ptr, ptr %1385, align 8, !tbaa !5
  %1387 = getelementptr inbounds double, ptr %1386, i64 0
  %1388 = load i64, ptr %6, align 8, !tbaa !28
  %1389 = sub nsw i64 %1388, 1
  %1390 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1389)
  %1391 = load double, ptr %11, align 8, !tbaa !32
  call void @_ZN11alglib_impl9ae_v_subdEPdlPKdlld(ptr noundef %1379, i64 noundef 1, ptr noundef %1387, i64 noundef 1, i64 noundef %1390, double noundef %1391)
  br label %1392

1392:                                             ; preds = %1341
  %1393 = load i64, ptr %8, align 8, !tbaa !28
  %1394 = add nsw i64 %1393, -1
  store i64 %1394, ptr %8, align 8, !tbaa !28
  br label %1338, !llvm.loop !80

1395:                                             ; preds = %1338
  %1396 = load ptr, ptr %4, align 8, !tbaa !5
  %1397 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1396, i32 0, i32 10
  %1398 = load ptr, ptr %4, align 8, !tbaa !5
  %1399 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1398, i32 0, i32 77
  %1400 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl27sasconstraineddirectionprecEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1397, ptr noundef %1399, ptr noundef %1400)
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %1401

1401:                                             ; preds = %1461, %1395
  %1402 = load i64, ptr %8, align 8, !tbaa !28
  %1403 = load ptr, ptr %4, align 8, !tbaa !5
  %1404 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1403, i32 0, i32 85
  %1405 = load i64, ptr %1404, align 8, !tbaa !78
  %1406 = sub nsw i64 %1405, 1
  %1407 = icmp sle i64 %1402, %1406
  br i1 %1407, label %1408, label %1464

1408:                                             ; preds = %1401
  %1409 = load ptr, ptr %4, align 8, !tbaa !5
  %1410 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1409, i32 0, i32 81
  %1411 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1410, i32 0, i32 6
  %1412 = load ptr, ptr %1411, align 8, !tbaa !27
  %1413 = load i64, ptr %8, align 8, !tbaa !28
  %1414 = getelementptr inbounds ptr, ptr %1412, i64 %1413
  %1415 = load ptr, ptr %1414, align 8, !tbaa !5
  %1416 = getelementptr inbounds double, ptr %1415, i64 0
  %1417 = load ptr, ptr %4, align 8, !tbaa !5
  %1418 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1417, i32 0, i32 77
  %1419 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1418, i32 0, i32 4
  %1420 = load ptr, ptr %1419, align 8, !tbaa !27
  %1421 = getelementptr inbounds double, ptr %1420, i64 0
  %1422 = load i64, ptr %6, align 8, !tbaa !28
  %1423 = sub nsw i64 %1422, 1
  %1424 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1423)
  %1425 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1416, i64 noundef 1, ptr noundef %1421, i64 noundef 1, i64 noundef %1424)
  store double %1425, ptr %10, align 8, !tbaa !32
  %1426 = load ptr, ptr %4, align 8, !tbaa !5
  %1427 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1426, i32 0, i32 83
  %1428 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1427, i32 0, i32 4
  %1429 = load ptr, ptr %1428, align 8, !tbaa !27
  %1430 = load i64, ptr %8, align 8, !tbaa !28
  %1431 = getelementptr inbounds double, ptr %1429, i64 %1430
  %1432 = load double, ptr %1431, align 8, !tbaa !32
  %1433 = load double, ptr %10, align 8, !tbaa !32
  %1434 = fneg double %1433
  %1435 = load ptr, ptr %4, align 8, !tbaa !5
  %1436 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1435, i32 0, i32 84
  %1437 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1436, i32 0, i32 4
  %1438 = load ptr, ptr %1437, align 8, !tbaa !27
  %1439 = load i64, ptr %8, align 8, !tbaa !28
  %1440 = getelementptr inbounds double, ptr %1438, i64 %1439
  %1441 = load double, ptr %1440, align 8, !tbaa !32
  %1442 = fadd double %1434, %1441
  %1443 = fmul double %1432, %1442
  store double %1443, ptr %11, align 8, !tbaa !32
  %1444 = load ptr, ptr %4, align 8, !tbaa !5
  %1445 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1444, i32 0, i32 77
  %1446 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1445, i32 0, i32 4
  %1447 = load ptr, ptr %1446, align 8, !tbaa !27
  %1448 = getelementptr inbounds double, ptr %1447, i64 0
  %1449 = load ptr, ptr %4, align 8, !tbaa !5
  %1450 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1449, i32 0, i32 82
  %1451 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1450, i32 0, i32 6
  %1452 = load ptr, ptr %1451, align 8, !tbaa !27
  %1453 = load i64, ptr %8, align 8, !tbaa !28
  %1454 = getelementptr inbounds ptr, ptr %1452, i64 %1453
  %1455 = load ptr, ptr %1454, align 8, !tbaa !5
  %1456 = getelementptr inbounds double, ptr %1455, i64 0
  %1457 = load i64, ptr %6, align 8, !tbaa !28
  %1458 = sub nsw i64 %1457, 1
  %1459 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1458)
  %1460 = load double, ptr %11, align 8, !tbaa !32
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %1448, i64 noundef 1, ptr noundef %1456, i64 noundef 1, i64 noundef %1459, double noundef %1460)
  br label %1461

1461:                                             ; preds = %1408
  %1462 = load i64, ptr %8, align 8, !tbaa !28
  %1463 = add nsw i64 %1462, 1
  store i64 %1463, ptr %8, align 8, !tbaa !28
  br label %1401, !llvm.loop !81

1464:                                             ; preds = %1401
  %1465 = load ptr, ptr %4, align 8, !tbaa !5
  %1466 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1465, i32 0, i32 10
  %1467 = load ptr, ptr %4, align 8, !tbaa !5
  %1468 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1467, i32 0, i32 77
  %1469 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1466, ptr noundef %1468, ptr noundef %1469)
  %1470 = load ptr, ptr %4, align 8, !tbaa !5
  %1471 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1470, i32 0, i32 35
  %1472 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1471, i32 0, i32 4
  %1473 = load ptr, ptr %1472, align 8, !tbaa !27
  %1474 = getelementptr inbounds double, ptr %1473, i64 0
  %1475 = load ptr, ptr %4, align 8, !tbaa !5
  %1476 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1475, i32 0, i32 77
  %1477 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1476, i32 0, i32 4
  %1478 = load ptr, ptr %1477, align 8, !tbaa !27
  %1479 = getelementptr inbounds double, ptr %1478, i64 0
  %1480 = load i64, ptr %6, align 8, !tbaa !28
  %1481 = sub nsw i64 %1480, 1
  %1482 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1481)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %1474, i64 noundef 1, ptr noundef %1479, i64 noundef 1, i64 noundef %1482)
  store double 0.000000e+00, ptr %10, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %1483

1483:                                             ; preds = %1508, %1464
  %1484 = load i64, ptr %8, align 8, !tbaa !28
  %1485 = load i64, ptr %6, align 8, !tbaa !28
  %1486 = sub nsw i64 %1485, 1
  %1487 = icmp sle i64 %1484, %1486
  br i1 %1487, label %1488, label %1511

1488:                                             ; preds = %1483
  %1489 = load double, ptr %10, align 8, !tbaa !32
  %1490 = load ptr, ptr %4, align 8, !tbaa !5
  %1491 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1490, i32 0, i32 35
  %1492 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1491, i32 0, i32 4
  %1493 = load ptr, ptr %1492, align 8, !tbaa !27
  %1494 = load i64, ptr %8, align 8, !tbaa !28
  %1495 = getelementptr inbounds double, ptr %1493, i64 %1494
  %1496 = load double, ptr %1495, align 8, !tbaa !32
  %1497 = load ptr, ptr %4, align 8, !tbaa !5
  %1498 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1497, i32 0, i32 11
  %1499 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1498, i32 0, i32 4
  %1500 = load ptr, ptr %1499, align 8, !tbaa !27
  %1501 = load i64, ptr %8, align 8, !tbaa !28
  %1502 = getelementptr inbounds double, ptr %1500, i64 %1501
  %1503 = load double, ptr %1502, align 8, !tbaa !32
  %1504 = fdiv double %1496, %1503
  %1505 = load ptr, ptr %5, align 8, !tbaa !5
  %1506 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1504, ptr noundef %1505)
  %1507 = fadd double %1489, %1506
  store double %1507, ptr %10, align 8, !tbaa !32
  br label %1508

1508:                                             ; preds = %1488
  %1509 = load i64, ptr %8, align 8, !tbaa !28
  %1510 = add nsw i64 %1509, 1
  store i64 %1510, ptr %8, align 8, !tbaa !28
  br label %1483, !llvm.loop !82

1511:                                             ; preds = %1483
  %1512 = load double, ptr %10, align 8, !tbaa !32
  %1513 = load ptr, ptr %5, align 8, !tbaa !5
  %1514 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1512, ptr noundef %1513)
  store double %1514, ptr %10, align 8, !tbaa !32
  %1515 = load double, ptr %10, align 8, !tbaa !32
  %1516 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1515, double noundef 0.000000e+00)
  br i1 %1516, label %1517, label %1526

1517:                                             ; preds = %1511
  %1518 = load ptr, ptr %4, align 8, !tbaa !5
  %1519 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1518, i32 0, i32 22
  %1520 = load i8, ptr %1519, align 4, !tbaa !34, !range !30, !noundef !31
  %1521 = trunc i8 %1520 to i1
  br i1 %1521, label %1522, label %1525

1522:                                             ; preds = %1517
  %1523 = load ptr, ptr %4, align 8, !tbaa !5
  %1524 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1523, i32 0, i32 50
  store i64 4, ptr %1524, align 8, !tbaa !36
  br label %1525

1525:                                             ; preds = %1522, %1517
  br label %3112

1526:                                             ; preds = %1511
  %1527 = load double, ptr %10, align 8, !tbaa !32
  %1528 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1527, double noundef 0.000000e+00)
  %1529 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1528, ptr noundef @.str.1577, ptr noundef %1529)
  %1530 = load ptr, ptr %4, align 8, !tbaa !5
  %1531 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1530, i32 0, i32 40
  %1532 = load double, ptr %1531, align 8, !tbaa !62
  %1533 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1532, double noundef 0.000000e+00)
  br i1 %1533, label %1534, label %1545

1534:                                             ; preds = %1526
  %1535 = load double, ptr %10, align 8, !tbaa !32
  %1536 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1535, double noundef 0.000000e+00)
  br i1 %1536, label %1537, label %1545

1537:                                             ; preds = %1534
  %1538 = load ptr, ptr %4, align 8, !tbaa !5
  %1539 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1538, i32 0, i32 40
  %1540 = load double, ptr %1539, align 8, !tbaa !62
  %1541 = load double, ptr %10, align 8, !tbaa !32
  %1542 = fdiv double %1540, %1541
  %1543 = load ptr, ptr %4, align 8, !tbaa !5
  %1544 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1543, i32 0, i32 74
  store double %1542, ptr %1544, align 8, !tbaa !83
  br label %1550

1545:                                             ; preds = %1534, %1526
  %1546 = load double, ptr %10, align 8, !tbaa !32
  %1547 = fdiv double 1.000000e+00, %1546
  %1548 = load ptr, ptr %4, align 8, !tbaa !5
  %1549 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1548, i32 0, i32 74
  store double %1547, ptr %1549, align 8, !tbaa !83
  br label %1550

1550:                                             ; preds = %1545, %1537
  %1551 = load ptr, ptr %4, align 8, !tbaa !5
  %1552 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1551, i32 0, i32 10
  %1553 = load ptr, ptr %4, align 8, !tbaa !5
  %1554 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1553, i32 0, i32 35
  %1555 = load ptr, ptr %4, align 8, !tbaa !5
  %1556 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1555, i32 0, i32 75
  %1557 = load ptr, ptr %4, align 8, !tbaa !5
  %1558 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1557, i32 0, i32 68
  %1559 = load ptr, ptr %4, align 8, !tbaa !5
  %1560 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1559, i32 0, i32 69
  %1561 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasexploredirectionEPKNS_10sactivesetEPKNS_9ae_vectorEPdPlS6_PNS_8ae_stateE(ptr noundef %1552, ptr noundef %1554, ptr noundef %1556, ptr noundef %1558, ptr noundef %1560, ptr noundef %1561)
  %1562 = load ptr, ptr %4, align 8, !tbaa !5
  %1563 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1562, i32 0, i32 75
  %1564 = load double, ptr %1563, align 8, !tbaa !84
  %1565 = load ptr, ptr %4, align 8, !tbaa !5
  %1566 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1565, i32 0, i32 76
  store double %1564, ptr %1566, align 8, !tbaa !85
  %1567 = load ptr, ptr %4, align 8, !tbaa !5
  %1568 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1567, i32 0, i32 68
  %1569 = load i64, ptr %1568, align 8, !tbaa !86
  %1570 = icmp sge i64 %1569, 0
  br i1 %1570, label %1571, label %1590

1571:                                             ; preds = %1550
  %1572 = load ptr, ptr %4, align 8, !tbaa !5
  %1573 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1572, i32 0, i32 76
  %1574 = load double, ptr %1573, align 8, !tbaa !85
  %1575 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1574, double noundef 0.000000e+00)
  br i1 %1575, label %1576, label %1590

1576:                                             ; preds = %1571
  %1577 = load ptr, ptr %4, align 8, !tbaa !5
  %1578 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1577, i32 0, i32 10
  %1579 = load ptr, ptr %4, align 8, !tbaa !5
  %1580 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1579, i32 0, i32 68
  %1581 = load i64, ptr %1580, align 8, !tbaa !86
  %1582 = load ptr, ptr %4, align 8, !tbaa !5
  %1583 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1582, i32 0, i32 69
  %1584 = load double, ptr %1583, align 8, !tbaa !87
  %1585 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl22sasimmediateactivationEPNS_10sactivesetEldPNS_8ae_stateE(ptr noundef %1578, i64 noundef %1581, double noundef %1584, ptr noundef %1585)
  %1586 = load ptr, ptr %4, align 8, !tbaa !5
  %1587 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1586, i32 0, i32 85
  store i64 0, ptr %1587, align 8, !tbaa !78
  %1588 = load i64, ptr %16, align 8, !tbaa !28
  %1589 = sub nsw i64 %1588, 1
  store i64 %1589, ptr %16, align 8, !tbaa !28
  br label %1293

1590:                                             ; preds = %1571, %1550
  %1591 = load ptr, ptr %4, align 8, !tbaa !5
  %1592 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1591, i32 0, i32 8
  %1593 = load double, ptr %1592, align 8, !tbaa !49
  %1594 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1593, double noundef 0.000000e+00)
  br i1 %1594, label %1595, label %1629

1595:                                             ; preds = %1590
  %1596 = load ptr, ptr %4, align 8, !tbaa !5
  %1597 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1596, i32 0, i32 35
  %1598 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1597, i32 0, i32 4
  %1599 = load ptr, ptr %1598, align 8, !tbaa !27
  %1600 = getelementptr inbounds double, ptr %1599, i64 0
  %1601 = load ptr, ptr %4, align 8, !tbaa !5
  %1602 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1601, i32 0, i32 35
  %1603 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1602, i32 0, i32 4
  %1604 = load ptr, ptr %1603, align 8, !tbaa !27
  %1605 = getelementptr inbounds double, ptr %1604, i64 0
  %1606 = load i64, ptr %6, align 8, !tbaa !28
  %1607 = sub nsw i64 %1606, 1
  %1608 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1607)
  %1609 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1600, i64 noundef 1, ptr noundef %1605, i64 noundef 1, i64 noundef %1608)
  store double %1609, ptr %10, align 8, !tbaa !32
  %1610 = load double, ptr %10, align 8, !tbaa !32
  %1611 = load ptr, ptr %5, align 8, !tbaa !5
  %1612 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1610, ptr noundef %1611)
  store double %1612, ptr %10, align 8, !tbaa !32
  %1613 = load double, ptr %10, align 8, !tbaa !32
  %1614 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1613, double noundef 0.000000e+00)
  br i1 %1614, label %1615, label %1628

1615:                                             ; preds = %1595
  %1616 = load ptr, ptr %4, align 8, !tbaa !5
  %1617 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1616, i32 0, i32 75
  %1618 = load double, ptr %1617, align 8, !tbaa !84
  %1619 = load ptr, ptr %4, align 8, !tbaa !5
  %1620 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1619, i32 0, i32 8
  %1621 = load double, ptr %1620, align 8, !tbaa !49
  %1622 = load double, ptr %10, align 8, !tbaa !32
  %1623 = fdiv double %1621, %1622
  %1624 = load ptr, ptr %5, align 8, !tbaa !5
  %1625 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1618, double noundef %1623, ptr noundef %1624)
  %1626 = load ptr, ptr %4, align 8, !tbaa !5
  %1627 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1626, i32 0, i32 75
  store double %1625, ptr %1627, align 8, !tbaa !84
  br label %1628

1628:                                             ; preds = %1615, %1595
  br label %1629

1629:                                             ; preds = %1628, %1590
  %1630 = load ptr, ptr %4, align 8, !tbaa !5
  %1631 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1630, i32 0, i32 7
  %1632 = load i8, ptr %1631, align 1, !tbaa !88, !range !30, !noundef !31
  %1633 = trunc i8 %1632 to i1
  br i1 %1633, label %1635, label %1634

1634:                                             ; preds = %1629
  br label %1667

1635:                                             ; preds = %1629
  %1636 = load ptr, ptr %4, align 8, !tbaa !5
  %1637 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %1636, ptr noundef %1637)
  %1638 = load ptr, ptr %4, align 8, !tbaa !5
  %1639 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1638, i32 0, i32 21
  store i8 1, ptr %1639, align 1, !tbaa !89
  %1640 = load ptr, ptr %4, align 8, !tbaa !5
  %1641 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1640, i32 0, i32 68
  %1642 = load i64, ptr %1641, align 8, !tbaa !86
  %1643 = icmp sge i64 %1642, 0
  %1644 = load ptr, ptr %4, align 8, !tbaa !5
  %1645 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1644, i32 0, i32 23
  %1646 = zext i1 %1643 to i8
  store i8 %1646, ptr %1645, align 1, !tbaa !90
  %1647 = load ptr, ptr %4, align 8, !tbaa !5
  %1648 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1647, i32 0, i32 15
  %1649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1648, i32 0, i32 4
  %1650 = load ptr, ptr %1649, align 8, !tbaa !27
  %1651 = getelementptr inbounds double, ptr %1650, i64 0
  %1652 = load ptr, ptr %4, align 8, !tbaa !5
  %1653 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1652, i32 0, i32 10
  %1654 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %1653, i32 0, i32 2
  %1655 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1654, i32 0, i32 4
  %1656 = load ptr, ptr %1655, align 8, !tbaa !27
  %1657 = getelementptr inbounds double, ptr %1656, i64 0
  %1658 = load i64, ptr %6, align 8, !tbaa !28
  %1659 = sub nsw i64 %1658, 1
  %1660 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1659)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1651, i64 noundef 1, ptr noundef %1657, i64 noundef 1, i64 noundef %1660)
  %1661 = load ptr, ptr %4, align 8, !tbaa !5
  %1662 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1661, i32 0, i32 25
  %1663 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1662, i32 0, i32 0
  store i32 12, ptr %1663, align 8, !tbaa !9
  br label %3141

1664:                                             ; preds = %219
  %1665 = load ptr, ptr %4, align 8, !tbaa !5
  %1666 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1665, i32 0, i32 21
  store i8 0, ptr %1666, align 1, !tbaa !89
  br label %1667

1667:                                             ; preds = %1664, %1634
  %1668 = load ptr, ptr %4, align 8, !tbaa !5
  %1669 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1668, i32 0, i32 28
  %1670 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1669, i32 0, i32 4
  %1671 = load ptr, ptr %1670, align 8, !tbaa !27
  %1672 = getelementptr inbounds double, ptr %1671, i64 0
  %1673 = load ptr, ptr %4, align 8, !tbaa !5
  %1674 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1673, i32 0, i32 10
  %1675 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %1674, i32 0, i32 2
  %1676 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1675, i32 0, i32 4
  %1677 = load ptr, ptr %1676, align 8, !tbaa !27
  %1678 = getelementptr inbounds double, ptr %1677, i64 0
  %1679 = load i64, ptr %6, align 8, !tbaa !28
  %1680 = sub nsw i64 %1679, 1
  %1681 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1680)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1672, i64 noundef 1, ptr noundef %1678, i64 noundef 1, i64 noundef %1681)
  %1682 = load ptr, ptr %4, align 8, !tbaa !5
  %1683 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1682, i32 0, i32 30
  %1684 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1683, i32 0, i32 4
  %1685 = load ptr, ptr %1684, align 8, !tbaa !27
  %1686 = getelementptr inbounds double, ptr %1685, i64 0
  %1687 = load ptr, ptr %4, align 8, !tbaa !5
  %1688 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1687, i32 0, i32 27
  %1689 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1688, i32 0, i32 4
  %1690 = load ptr, ptr %1689, align 8, !tbaa !27
  %1691 = getelementptr inbounds double, ptr %1690, i64 0
  %1692 = load i64, ptr %6, align 8, !tbaa !28
  %1693 = sub nsw i64 %1692, 1
  %1694 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1693)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1686, i64 noundef 1, ptr noundef %1691, i64 noundef 1, i64 noundef %1694)
  %1695 = load ptr, ptr %4, align 8, !tbaa !5
  %1696 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1695, i32 0, i32 29
  %1697 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1696, i32 0, i32 4
  %1698 = load ptr, ptr %1697, align 8, !tbaa !27
  %1699 = getelementptr inbounds double, ptr %1698, i64 0
  %1700 = load ptr, ptr %4, align 8, !tbaa !5
  %1701 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1700, i32 0, i32 26
  %1702 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1701, i32 0, i32 4
  %1703 = load ptr, ptr %1702, align 8, !tbaa !27
  %1704 = getelementptr inbounds double, ptr %1703, i64 0
  %1705 = load i64, ptr %6, align 8, !tbaa !28
  %1706 = sub nsw i64 %1705, 1
  %1707 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1706)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1699, i64 noundef 1, ptr noundef %1704, i64 noundef 1, i64 noundef %1707)
  %1708 = load ptr, ptr %4, align 8, !tbaa !5
  %1709 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1708, i32 0, i32 32
  %1710 = load double, ptr %1709, align 8, !tbaa !67
  %1711 = load ptr, ptr %4, align 8, !tbaa !5
  %1712 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1711, i32 0, i32 33
  store double %1710, ptr %1712, align 8, !tbaa !91
  %1713 = load ptr, ptr %4, align 8, !tbaa !5
  %1714 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1713, i32 0, i32 73
  store i64 0, ptr %1714, align 8, !tbaa !92
  %1715 = load ptr, ptr %4, align 8, !tbaa !5
  %1716 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1715, i32 0, i32 88
  %1717 = load ptr, ptr %4, align 8, !tbaa !5
  %1718 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1717, i32 0, i32 11
  %1719 = load ptr, ptr %4, align 8, !tbaa !5
  %1720 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1719, i32 0, i32 90
  %1721 = load ptr, ptr %4, align 8, !tbaa !5
  %1722 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1721, i32 0, i32 28
  %1723 = load ptr, ptr %4, align 8, !tbaa !5
  %1724 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1723, i32 0, i32 33
  %1725 = load double, ptr %1724, align 8, !tbaa !91
  %1726 = load ptr, ptr %4, align 8, !tbaa !5
  %1727 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1726, i32 0, i32 29
  %1728 = load ptr, ptr %4, align 8, !tbaa !5
  %1729 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1728, i32 0, i32 46
  %1730 = load i64, ptr %1729, align 8, !tbaa !37
  %1731 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl34smoothnessmonitorstartlinesearch1uEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_dS4_llPNS_8ae_stateE(ptr noundef %1716, ptr noundef %1718, ptr noundef %1720, ptr noundef %1722, double noundef %1725, ptr noundef %1727, i64 noundef %1730, i64 noundef -1, ptr noundef %1731)
  %1732 = load i64, ptr %6, align 8, !tbaa !28
  %1733 = load ptr, ptr %4, align 8, !tbaa !5
  %1734 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1733, i32 0, i32 28
  %1735 = load ptr, ptr %4, align 8, !tbaa !5
  %1736 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1735, i32 0, i32 33
  %1737 = load ptr, ptr %4, align 8, !tbaa !5
  %1738 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1737, i32 0, i32 29
  %1739 = load ptr, ptr %4, align 8, !tbaa !5
  %1740 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1739, i32 0, i32 35
  %1741 = load ptr, ptr %4, align 8, !tbaa !5
  %1742 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1741, i32 0, i32 74
  %1743 = load ptr, ptr %4, align 8, !tbaa !5
  %1744 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1743, i32 0, i32 75
  %1745 = load double, ptr %1744, align 8, !tbaa !84
  %1746 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !32
  %1747 = load ptr, ptr %4, align 8, !tbaa !5
  %1748 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1747, i32 0, i32 72
  %1749 = load ptr, ptr %4, align 8, !tbaa !5
  %1750 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1749, i32 0, i32 77
  %1751 = load ptr, ptr %4, align 8, !tbaa !5
  %1752 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1751, i32 0, i32 78
  %1753 = load ptr, ptr %4, align 8, !tbaa !5
  %1754 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1753, i32 0, i32 73
  %1755 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %1732, ptr noundef %1734, ptr noundef %1736, ptr noundef %1738, ptr noundef %1740, ptr noundef %1742, double noundef %1745, double noundef %1746, ptr noundef %14, ptr noundef %1748, ptr noundef %1750, ptr noundef %1752, ptr noundef %1754, ptr noundef %1755)
  br label %1756

1756:                                             ; preds = %2258, %1667
  %1757 = load ptr, ptr %4, align 8, !tbaa !5
  %1758 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1757, i32 0, i32 73
  %1759 = load i64, ptr %1758, align 8, !tbaa !92
  %1760 = icmp eq i64 %1759, 0
  br i1 %1760, label %1761, label %1762

1761:                                             ; preds = %1756
  br label %2354

1762:                                             ; preds = %1756
  %1763 = load ptr, ptr %4, align 8, !tbaa !5
  %1764 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1763, i32 0, i32 10
  %1765 = load ptr, ptr %4, align 8, !tbaa !5
  %1766 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1765, i32 0, i32 28
  %1767 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sascorrectionEPNS_10sactivesetEPNS_9ae_vectorEPdPNS_8ae_stateE(ptr noundef %1764, ptr noundef %1766, ptr noundef %17, ptr noundef %1767)
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %1768

1768:                                             ; preds = %1787, %1762
  %1769 = load i64, ptr %8, align 8, !tbaa !28
  %1770 = load i64, ptr %6, align 8, !tbaa !28
  %1771 = sub nsw i64 %1770, 1
  %1772 = icmp sle i64 %1769, %1771
  br i1 %1772, label %1773, label %1790

1773:                                             ; preds = %1768
  %1774 = load ptr, ptr %4, align 8, !tbaa !5
  %1775 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1774, i32 0, i32 28
  %1776 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1775, i32 0, i32 4
  %1777 = load ptr, ptr %1776, align 8, !tbaa !27
  %1778 = load i64, ptr %8, align 8, !tbaa !28
  %1779 = getelementptr inbounds double, ptr %1777, i64 %1778
  %1780 = load double, ptr %1779, align 8, !tbaa !32
  %1781 = load ptr, ptr %4, align 8, !tbaa !5
  %1782 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1781, i32 0, i32 15
  %1783 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1782, i32 0, i32 4
  %1784 = load ptr, ptr %1783, align 8, !tbaa !27
  %1785 = load i64, ptr %8, align 8, !tbaa !28
  %1786 = getelementptr inbounds double, ptr %1784, i64 %1785
  store double %1780, ptr %1786, align 8, !tbaa !32
  br label %1787

1787:                                             ; preds = %1773
  %1788 = load i64, ptr %8, align 8, !tbaa !28
  %1789 = add nsw i64 %1788, 1
  store i64 %1789, ptr %8, align 8, !tbaa !28
  br label %1768, !llvm.loop !93

1790:                                             ; preds = %1768
  %1791 = load ptr, ptr %4, align 8, !tbaa !5
  %1792 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %1791, ptr noundef %1792)
  %1793 = load ptr, ptr %4, align 8, !tbaa !5
  %1794 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1793, i32 0, i32 9
  %1795 = load double, ptr %1794, align 8, !tbaa !54
  %1796 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1795, double noundef 0.000000e+00)
  br i1 %1796, label %1797, label %1798

1797:                                             ; preds = %1790
  br label %1813

1798:                                             ; preds = %1790
  %1799 = load ptr, ptr %4, align 8, !tbaa !5
  %1800 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1799, i32 0, i32 19
  store i8 1, ptr %1800, align 1, !tbaa !57
  %1801 = load ptr, ptr %4, align 8, !tbaa !5
  %1802 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1801, i32 0, i32 25
  %1803 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1802, i32 0, i32 0
  store i32 13, ptr %1803, align 8, !tbaa !9
  br label %3141

1804:                                             ; preds = %226
  %1805 = load ptr, ptr %4, align 8, !tbaa !5
  %1806 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1805, i32 0, i32 19
  store i8 0, ptr %1806, align 1, !tbaa !57
  %1807 = load ptr, ptr %4, align 8, !tbaa !5
  %1808 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1807, i32 0, i32 48
  %1809 = load i64, ptr %1808, align 8, !tbaa !39
  %1810 = add nsw i64 %1809, 1
  %1811 = load ptr, ptr %4, align 8, !tbaa !5
  %1812 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1811, i32 0, i32 48
  store i64 %1810, ptr %1812, align 8, !tbaa !39
  br label %2258

1813:                                             ; preds = %1797
  %1814 = load ptr, ptr %4, align 8, !tbaa !5
  %1815 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1814, i32 0, i32 18
  store i8 1, ptr %1815, align 8, !tbaa !66
  %1816 = load ptr, ptr %4, align 8, !tbaa !5
  %1817 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1816, i32 0, i32 25
  %1818 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1817, i32 0, i32 0
  store i32 14, ptr %1818, align 8, !tbaa !9
  br label %3141

1819:                                             ; preds = %233
  %1820 = load ptr, ptr %4, align 8, !tbaa !5
  %1821 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1820, i32 0, i32 16
  %1822 = load double, ptr %1821, align 8, !tbaa !58
  %1823 = load ptr, ptr %4, align 8, !tbaa !5
  %1824 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1823, i32 0, i32 59
  store double %1822, ptr %1824, align 8, !tbaa !70
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %1825

1825:                                             ; preds = %2240, %1819
  %1826 = load i64, ptr %8, align 8, !tbaa !28
  %1827 = load i64, ptr %6, align 8, !tbaa !28
  %1828 = sub nsw i64 %1827, 1
  %1829 = icmp sgt i64 %1826, %1828
  br i1 %1829, label %1830, label %1831

1830:                                             ; preds = %1825
  br label %2250

1831:                                             ; preds = %1825
  %1832 = load ptr, ptr %4, align 8, !tbaa !5
  %1833 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1832, i32 0, i32 15
  %1834 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1833, i32 0, i32 4
  %1835 = load ptr, ptr %1834, align 8, !tbaa !27
  %1836 = load i64, ptr %8, align 8, !tbaa !28
  %1837 = getelementptr inbounds double, ptr %1835, i64 %1836
  %1838 = load double, ptr %1837, align 8, !tbaa !32
  store double %1838, ptr %10, align 8, !tbaa !32
  store i8 0, ptr %13, align 1, !tbaa !29
  %1839 = load ptr, ptr %4, align 8, !tbaa !5
  %1840 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1839, i32 0, i32 42
  %1841 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1840, i32 0, i32 4
  %1842 = load ptr, ptr %1841, align 8, !tbaa !27
  %1843 = load i64, ptr %8, align 8, !tbaa !28
  %1844 = getelementptr inbounds i8, ptr %1842, i64 %1843
  %1845 = load i8, ptr %1844, align 1, !tbaa !29, !range !30, !noundef !31
  %1846 = trunc i8 %1845 to i1
  br i1 %1846, label %1847, label %1875

1847:                                             ; preds = %1831
  %1848 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %1849 = trunc i8 %1848 to i1
  br i1 %1849, label %1872, label %1850

1850:                                             ; preds = %1847
  %1851 = load double, ptr %10, align 8, !tbaa !32
  %1852 = load ptr, ptr %4, align 8, !tbaa !5
  %1853 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1852, i32 0, i32 9
  %1854 = load double, ptr %1853, align 8, !tbaa !54
  %1855 = load ptr, ptr %4, align 8, !tbaa !5
  %1856 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1855, i32 0, i32 11
  %1857 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1856, i32 0, i32 4
  %1858 = load ptr, ptr %1857, align 8, !tbaa !27
  %1859 = load i64, ptr %8, align 8, !tbaa !28
  %1860 = getelementptr inbounds double, ptr %1858, i64 %1859
  %1861 = load double, ptr %1860, align 8, !tbaa !32
  %1862 = fneg double %1854
  %1863 = call double @llvm.fmuladd.f64(double %1862, double %1861, double %1851)
  %1864 = load ptr, ptr %4, align 8, !tbaa !5
  %1865 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1864, i32 0, i32 44
  %1866 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1865, i32 0, i32 4
  %1867 = load ptr, ptr %1866, align 8, !tbaa !27
  %1868 = load i64, ptr %8, align 8, !tbaa !28
  %1869 = getelementptr inbounds double, ptr %1867, i64 %1868
  %1870 = load double, ptr %1869, align 8, !tbaa !32
  %1871 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1863, double noundef %1870)
  br label %1872

1872:                                             ; preds = %1850, %1847
  %1873 = phi i1 [ true, %1847 ], [ %1871, %1850 ]
  %1874 = zext i1 %1873 to i8
  store i8 %1874, ptr %13, align 1, !tbaa !29
  br label %1875

1875:                                             ; preds = %1872, %1831
  %1876 = load ptr, ptr %4, align 8, !tbaa !5
  %1877 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1876, i32 0, i32 43
  %1878 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1877, i32 0, i32 4
  %1879 = load ptr, ptr %1878, align 8, !tbaa !27
  %1880 = load i64, ptr %8, align 8, !tbaa !28
  %1881 = getelementptr inbounds i8, ptr %1879, i64 %1880
  %1882 = load i8, ptr %1881, align 1, !tbaa !29, !range !30, !noundef !31
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1884, label %1911

1884:                                             ; preds = %1875
  %1885 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %1886 = trunc i8 %1885 to i1
  br i1 %1886, label %1908, label %1887

1887:                                             ; preds = %1884
  %1888 = load double, ptr %10, align 8, !tbaa !32
  %1889 = load ptr, ptr %4, align 8, !tbaa !5
  %1890 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1889, i32 0, i32 9
  %1891 = load double, ptr %1890, align 8, !tbaa !54
  %1892 = load ptr, ptr %4, align 8, !tbaa !5
  %1893 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1892, i32 0, i32 11
  %1894 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1893, i32 0, i32 4
  %1895 = load ptr, ptr %1894, align 8, !tbaa !27
  %1896 = load i64, ptr %8, align 8, !tbaa !28
  %1897 = getelementptr inbounds double, ptr %1895, i64 %1896
  %1898 = load double, ptr %1897, align 8, !tbaa !32
  %1899 = call double @llvm.fmuladd.f64(double %1891, double %1898, double %1888)
  %1900 = load ptr, ptr %4, align 8, !tbaa !5
  %1901 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1900, i32 0, i32 45
  %1902 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1901, i32 0, i32 4
  %1903 = load ptr, ptr %1902, align 8, !tbaa !27
  %1904 = load i64, ptr %8, align 8, !tbaa !28
  %1905 = getelementptr inbounds double, ptr %1903, i64 %1904
  %1906 = load double, ptr %1905, align 8, !tbaa !32
  %1907 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1899, double noundef %1906)
  br label %1908

1908:                                             ; preds = %1887, %1884
  %1909 = phi i1 [ true, %1884 ], [ %1907, %1887 ]
  %1910 = zext i1 %1909 to i8
  store i8 %1910, ptr %13, align 1, !tbaa !29
  br label %1911

1911:                                             ; preds = %1908, %1875
  %1912 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %1913 = trunc i8 %1912 to i1
  br i1 %1913, label %1914, label %1915

1914:                                             ; preds = %1911
  br label %2069

1915:                                             ; preds = %1911
  %1916 = load double, ptr %10, align 8, !tbaa !32
  %1917 = load ptr, ptr %4, align 8, !tbaa !5
  %1918 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1917, i32 0, i32 9
  %1919 = load double, ptr %1918, align 8, !tbaa !54
  %1920 = load ptr, ptr %4, align 8, !tbaa !5
  %1921 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1920, i32 0, i32 11
  %1922 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1921, i32 0, i32 4
  %1923 = load ptr, ptr %1922, align 8, !tbaa !27
  %1924 = load i64, ptr %8, align 8, !tbaa !28
  %1925 = getelementptr inbounds double, ptr %1923, i64 %1924
  %1926 = load double, ptr %1925, align 8, !tbaa !32
  %1927 = fneg double %1919
  %1928 = call double @llvm.fmuladd.f64(double %1927, double %1926, double %1916)
  %1929 = load ptr, ptr %4, align 8, !tbaa !5
  %1930 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1929, i32 0, i32 15
  %1931 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1930, i32 0, i32 4
  %1932 = load ptr, ptr %1931, align 8, !tbaa !27
  %1933 = load i64, ptr %8, align 8, !tbaa !28
  %1934 = getelementptr inbounds double, ptr %1932, i64 %1933
  store double %1928, ptr %1934, align 8, !tbaa !32
  %1935 = load ptr, ptr %4, align 8, !tbaa !5
  %1936 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1935, i32 0, i32 25
  %1937 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1936, i32 0, i32 0
  store i32 15, ptr %1937, align 8, !tbaa !9
  br label %3141

1938:                                             ; preds = %240
  %1939 = load ptr, ptr %4, align 8, !tbaa !5
  %1940 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1939, i32 0, i32 16
  %1941 = load double, ptr %1940, align 8, !tbaa !58
  %1942 = load ptr, ptr %4, align 8, !tbaa !5
  %1943 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1942, i32 0, i32 60
  store double %1941, ptr %1943, align 8, !tbaa !71
  %1944 = load double, ptr %10, align 8, !tbaa !32
  %1945 = load ptr, ptr %4, align 8, !tbaa !5
  %1946 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1945, i32 0, i32 9
  %1947 = load double, ptr %1946, align 8, !tbaa !54
  %1948 = fmul double 5.000000e-01, %1947
  %1949 = load ptr, ptr %4, align 8, !tbaa !5
  %1950 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1949, i32 0, i32 11
  %1951 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1950, i32 0, i32 4
  %1952 = load ptr, ptr %1951, align 8, !tbaa !27
  %1953 = load i64, ptr %8, align 8, !tbaa !28
  %1954 = getelementptr inbounds double, ptr %1952, i64 %1953
  %1955 = load double, ptr %1954, align 8, !tbaa !32
  %1956 = fneg double %1948
  %1957 = call double @llvm.fmuladd.f64(double %1956, double %1955, double %1944)
  %1958 = load ptr, ptr %4, align 8, !tbaa !5
  %1959 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1958, i32 0, i32 15
  %1960 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1959, i32 0, i32 4
  %1961 = load ptr, ptr %1960, align 8, !tbaa !27
  %1962 = load i64, ptr %8, align 8, !tbaa !28
  %1963 = getelementptr inbounds double, ptr %1961, i64 %1962
  store double %1957, ptr %1963, align 8, !tbaa !32
  %1964 = load ptr, ptr %4, align 8, !tbaa !5
  %1965 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1964, i32 0, i32 25
  %1966 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1965, i32 0, i32 0
  store i32 16, ptr %1966, align 8, !tbaa !9
  br label %3141

1967:                                             ; preds = %247
  %1968 = load ptr, ptr %4, align 8, !tbaa !5
  %1969 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1968, i32 0, i32 16
  %1970 = load double, ptr %1969, align 8, !tbaa !58
  %1971 = load ptr, ptr %4, align 8, !tbaa !5
  %1972 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1971, i32 0, i32 61
  store double %1970, ptr %1972, align 8, !tbaa !72
  %1973 = load double, ptr %10, align 8, !tbaa !32
  %1974 = load ptr, ptr %4, align 8, !tbaa !5
  %1975 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1974, i32 0, i32 9
  %1976 = load double, ptr %1975, align 8, !tbaa !54
  %1977 = fmul double 5.000000e-01, %1976
  %1978 = load ptr, ptr %4, align 8, !tbaa !5
  %1979 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1978, i32 0, i32 11
  %1980 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1979, i32 0, i32 4
  %1981 = load ptr, ptr %1980, align 8, !tbaa !27
  %1982 = load i64, ptr %8, align 8, !tbaa !28
  %1983 = getelementptr inbounds double, ptr %1981, i64 %1982
  %1984 = load double, ptr %1983, align 8, !tbaa !32
  %1985 = call double @llvm.fmuladd.f64(double %1977, double %1984, double %1973)
  %1986 = load ptr, ptr %4, align 8, !tbaa !5
  %1987 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1986, i32 0, i32 15
  %1988 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1987, i32 0, i32 4
  %1989 = load ptr, ptr %1988, align 8, !tbaa !27
  %1990 = load i64, ptr %8, align 8, !tbaa !28
  %1991 = getelementptr inbounds double, ptr %1989, i64 %1990
  store double %1985, ptr %1991, align 8, !tbaa !32
  %1992 = load ptr, ptr %4, align 8, !tbaa !5
  %1993 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1992, i32 0, i32 25
  %1994 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1993, i32 0, i32 0
  store i32 17, ptr %1994, align 8, !tbaa !9
  br label %3141

1995:                                             ; preds = %254
  %1996 = load ptr, ptr %4, align 8, !tbaa !5
  %1997 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1996, i32 0, i32 16
  %1998 = load double, ptr %1997, align 8, !tbaa !58
  %1999 = load ptr, ptr %4, align 8, !tbaa !5
  %2000 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1999, i32 0, i32 62
  store double %1998, ptr %2000, align 8, !tbaa !73
  %2001 = load double, ptr %10, align 8, !tbaa !32
  %2002 = load ptr, ptr %4, align 8, !tbaa !5
  %2003 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2002, i32 0, i32 9
  %2004 = load double, ptr %2003, align 8, !tbaa !54
  %2005 = load ptr, ptr %4, align 8, !tbaa !5
  %2006 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2005, i32 0, i32 11
  %2007 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2006, i32 0, i32 4
  %2008 = load ptr, ptr %2007, align 8, !tbaa !27
  %2009 = load i64, ptr %8, align 8, !tbaa !28
  %2010 = getelementptr inbounds double, ptr %2008, i64 %2009
  %2011 = load double, ptr %2010, align 8, !tbaa !32
  %2012 = call double @llvm.fmuladd.f64(double %2004, double %2011, double %2001)
  %2013 = load ptr, ptr %4, align 8, !tbaa !5
  %2014 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2013, i32 0, i32 15
  %2015 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2014, i32 0, i32 4
  %2016 = load ptr, ptr %2015, align 8, !tbaa !27
  %2017 = load i64, ptr %8, align 8, !tbaa !28
  %2018 = getelementptr inbounds double, ptr %2016, i64 %2017
  store double %2012, ptr %2018, align 8, !tbaa !32
  %2019 = load ptr, ptr %4, align 8, !tbaa !5
  %2020 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2019, i32 0, i32 25
  %2021 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2020, i32 0, i32 0
  store i32 18, ptr %2021, align 8, !tbaa !9
  br label %3141

2022:                                             ; preds = %261
  %2023 = load ptr, ptr %4, align 8, !tbaa !5
  %2024 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2023, i32 0, i32 16
  %2025 = load double, ptr %2024, align 8, !tbaa !58
  %2026 = load ptr, ptr %4, align 8, !tbaa !5
  %2027 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2026, i32 0, i32 63
  store double %2025, ptr %2027, align 8, !tbaa !74
  %2028 = load ptr, ptr %4, align 8, !tbaa !5
  %2029 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2028, i32 0, i32 62
  %2030 = load double, ptr %2029, align 8, !tbaa !73
  %2031 = load ptr, ptr %4, align 8, !tbaa !5
  %2032 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2031, i32 0, i32 61
  %2033 = load double, ptr %2032, align 8, !tbaa !72
  %2034 = fsub double %2030, %2033
  %2035 = load ptr, ptr %4, align 8, !tbaa !5
  %2036 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2035, i32 0, i32 63
  %2037 = load double, ptr %2036, align 8, !tbaa !74
  %2038 = load ptr, ptr %4, align 8, !tbaa !5
  %2039 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2038, i32 0, i32 60
  %2040 = load double, ptr %2039, align 8, !tbaa !71
  %2041 = fsub double %2037, %2040
  %2042 = fneg double %2041
  %2043 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %2034, double %2042)
  %2044 = load ptr, ptr %4, align 8, !tbaa !5
  %2045 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2044, i32 0, i32 9
  %2046 = load double, ptr %2045, align 8, !tbaa !54
  %2047 = fmul double 6.000000e+00, %2046
  %2048 = load ptr, ptr %4, align 8, !tbaa !5
  %2049 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2048, i32 0, i32 11
  %2050 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2049, i32 0, i32 4
  %2051 = load ptr, ptr %2050, align 8, !tbaa !27
  %2052 = load i64, ptr %8, align 8, !tbaa !28
  %2053 = getelementptr inbounds double, ptr %2051, i64 %2052
  %2054 = load double, ptr %2053, align 8, !tbaa !32
  %2055 = fmul double %2047, %2054
  %2056 = fdiv double %2043, %2055
  %2057 = load ptr, ptr %4, align 8, !tbaa !5
  %2058 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2057, i32 0, i32 17
  %2059 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2058, i32 0, i32 4
  %2060 = load ptr, ptr %2059, align 8, !tbaa !27
  %2061 = load i64, ptr %8, align 8, !tbaa !28
  %2062 = getelementptr inbounds double, ptr %2060, i64 %2061
  store double %2056, ptr %2062, align 8, !tbaa !32
  %2063 = load ptr, ptr %4, align 8, !tbaa !5
  %2064 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2063, i32 0, i32 48
  %2065 = load i64, ptr %2064, align 8, !tbaa !39
  %2066 = add nsw i64 %2065, 4
  %2067 = load ptr, ptr %4, align 8, !tbaa !5
  %2068 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2067, i32 0, i32 48
  store i64 %2066, ptr %2068, align 8, !tbaa !39
  br label %2240

2069:                                             ; preds = %1914
  %2070 = load double, ptr %10, align 8, !tbaa !32
  %2071 = load ptr, ptr %4, align 8, !tbaa !5
  %2072 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2071, i32 0, i32 9
  %2073 = load double, ptr %2072, align 8, !tbaa !54
  %2074 = load ptr, ptr %4, align 8, !tbaa !5
  %2075 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2074, i32 0, i32 11
  %2076 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2075, i32 0, i32 4
  %2077 = load ptr, ptr %2076, align 8, !tbaa !27
  %2078 = load i64, ptr %8, align 8, !tbaa !28
  %2079 = getelementptr inbounds double, ptr %2077, i64 %2078
  %2080 = load double, ptr %2079, align 8, !tbaa !32
  %2081 = fneg double %2073
  %2082 = call double @llvm.fmuladd.f64(double %2081, double %2080, double %2070)
  %2083 = load ptr, ptr %4, align 8, !tbaa !5
  %2084 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2083, i32 0, i32 64
  store double %2082, ptr %2084, align 8, !tbaa !75
  %2085 = load double, ptr %10, align 8, !tbaa !32
  %2086 = load ptr, ptr %4, align 8, !tbaa !5
  %2087 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2086, i32 0, i32 9
  %2088 = load double, ptr %2087, align 8, !tbaa !54
  %2089 = load ptr, ptr %4, align 8, !tbaa !5
  %2090 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2089, i32 0, i32 11
  %2091 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2090, i32 0, i32 4
  %2092 = load ptr, ptr %2091, align 8, !tbaa !27
  %2093 = load i64, ptr %8, align 8, !tbaa !28
  %2094 = getelementptr inbounds double, ptr %2092, i64 %2093
  %2095 = load double, ptr %2094, align 8, !tbaa !32
  %2096 = call double @llvm.fmuladd.f64(double %2088, double %2095, double %2085)
  %2097 = load ptr, ptr %4, align 8, !tbaa !5
  %2098 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2097, i32 0, i32 65
  store double %2096, ptr %2098, align 8, !tbaa !76
  %2099 = load ptr, ptr %4, align 8, !tbaa !5
  %2100 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2099, i32 0, i32 42
  %2101 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2100, i32 0, i32 4
  %2102 = load ptr, ptr %2101, align 8, !tbaa !27
  %2103 = load i64, ptr %8, align 8, !tbaa !28
  %2104 = getelementptr inbounds i8, ptr %2102, i64 %2103
  %2105 = load i8, ptr %2104, align 1, !tbaa !29, !range !30, !noundef !31
  %2106 = trunc i8 %2105 to i1
  br i1 %2106, label %2107, label %2129

2107:                                             ; preds = %2069
  %2108 = load ptr, ptr %4, align 8, !tbaa !5
  %2109 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2108, i32 0, i32 64
  %2110 = load double, ptr %2109, align 8, !tbaa !75
  %2111 = load ptr, ptr %4, align 8, !tbaa !5
  %2112 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2111, i32 0, i32 44
  %2113 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2112, i32 0, i32 4
  %2114 = load ptr, ptr %2113, align 8, !tbaa !27
  %2115 = load i64, ptr %8, align 8, !tbaa !28
  %2116 = getelementptr inbounds double, ptr %2114, i64 %2115
  %2117 = load double, ptr %2116, align 8, !tbaa !32
  %2118 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2110, double noundef %2117)
  br i1 %2118, label %2119, label %2129

2119:                                             ; preds = %2107
  %2120 = load ptr, ptr %4, align 8, !tbaa !5
  %2121 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2120, i32 0, i32 44
  %2122 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2121, i32 0, i32 4
  %2123 = load ptr, ptr %2122, align 8, !tbaa !27
  %2124 = load i64, ptr %8, align 8, !tbaa !28
  %2125 = getelementptr inbounds double, ptr %2123, i64 %2124
  %2126 = load double, ptr %2125, align 8, !tbaa !32
  %2127 = load ptr, ptr %4, align 8, !tbaa !5
  %2128 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2127, i32 0, i32 64
  store double %2126, ptr %2128, align 8, !tbaa !75
  br label %2129

2129:                                             ; preds = %2119, %2107, %2069
  %2130 = load ptr, ptr %4, align 8, !tbaa !5
  %2131 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2130, i32 0, i32 43
  %2132 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2131, i32 0, i32 4
  %2133 = load ptr, ptr %2132, align 8, !tbaa !27
  %2134 = load i64, ptr %8, align 8, !tbaa !28
  %2135 = getelementptr inbounds i8, ptr %2133, i64 %2134
  %2136 = load i8, ptr %2135, align 1, !tbaa !29, !range !30, !noundef !31
  %2137 = trunc i8 %2136 to i1
  br i1 %2137, label %2138, label %2160

2138:                                             ; preds = %2129
  %2139 = load ptr, ptr %4, align 8, !tbaa !5
  %2140 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2139, i32 0, i32 65
  %2141 = load double, ptr %2140, align 8, !tbaa !76
  %2142 = load ptr, ptr %4, align 8, !tbaa !5
  %2143 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2142, i32 0, i32 45
  %2144 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2143, i32 0, i32 4
  %2145 = load ptr, ptr %2144, align 8, !tbaa !27
  %2146 = load i64, ptr %8, align 8, !tbaa !28
  %2147 = getelementptr inbounds double, ptr %2145, i64 %2146
  %2148 = load double, ptr %2147, align 8, !tbaa !32
  %2149 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2141, double noundef %2148)
  br i1 %2149, label %2150, label %2160

2150:                                             ; preds = %2138
  %2151 = load ptr, ptr %4, align 8, !tbaa !5
  %2152 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2151, i32 0, i32 45
  %2153 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2152, i32 0, i32 4
  %2154 = load ptr, ptr %2153, align 8, !tbaa !27
  %2155 = load i64, ptr %8, align 8, !tbaa !28
  %2156 = getelementptr inbounds double, ptr %2154, i64 %2155
  %2157 = load double, ptr %2156, align 8, !tbaa !32
  %2158 = load ptr, ptr %4, align 8, !tbaa !5
  %2159 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2158, i32 0, i32 65
  store double %2157, ptr %2159, align 8, !tbaa !76
  br label %2160

2160:                                             ; preds = %2150, %2138, %2129
  %2161 = load ptr, ptr %4, align 8, !tbaa !5
  %2162 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2161, i32 0, i32 64
  %2163 = load double, ptr %2162, align 8, !tbaa !75
  %2164 = load ptr, ptr %4, align 8, !tbaa !5
  %2165 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2164, i32 0, i32 15
  %2166 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2165, i32 0, i32 4
  %2167 = load ptr, ptr %2166, align 8, !tbaa !27
  %2168 = load i64, ptr %8, align 8, !tbaa !28
  %2169 = getelementptr inbounds double, ptr %2167, i64 %2168
  store double %2163, ptr %2169, align 8, !tbaa !32
  %2170 = load ptr, ptr %4, align 8, !tbaa !5
  %2171 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2170, i32 0, i32 25
  %2172 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2171, i32 0, i32 0
  store i32 19, ptr %2172, align 8, !tbaa !9
  br label %3141

2173:                                             ; preds = %268
  %2174 = load ptr, ptr %4, align 8, !tbaa !5
  %2175 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2174, i32 0, i32 16
  %2176 = load double, ptr %2175, align 8, !tbaa !58
  %2177 = load ptr, ptr %4, align 8, !tbaa !5
  %2178 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2177, i32 0, i32 61
  store double %2176, ptr %2178, align 8, !tbaa !72
  %2179 = load ptr, ptr %4, align 8, !tbaa !5
  %2180 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2179, i32 0, i32 65
  %2181 = load double, ptr %2180, align 8, !tbaa !76
  %2182 = load ptr, ptr %4, align 8, !tbaa !5
  %2183 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2182, i32 0, i32 15
  %2184 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2183, i32 0, i32 4
  %2185 = load ptr, ptr %2184, align 8, !tbaa !27
  %2186 = load i64, ptr %8, align 8, !tbaa !28
  %2187 = getelementptr inbounds double, ptr %2185, i64 %2186
  store double %2181, ptr %2187, align 8, !tbaa !32
  %2188 = load ptr, ptr %4, align 8, !tbaa !5
  %2189 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2188, i32 0, i32 25
  %2190 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2189, i32 0, i32 0
  store i32 20, ptr %2190, align 8, !tbaa !9
  br label %3141

2191:                                             ; preds = %275
  %2192 = load ptr, ptr %4, align 8, !tbaa !5
  %2193 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2192, i32 0, i32 16
  %2194 = load double, ptr %2193, align 8, !tbaa !58
  %2195 = load ptr, ptr %4, align 8, !tbaa !5
  %2196 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2195, i32 0, i32 62
  store double %2194, ptr %2196, align 8, !tbaa !73
  %2197 = load ptr, ptr %4, align 8, !tbaa !5
  %2198 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2197, i32 0, i32 64
  %2199 = load double, ptr %2198, align 8, !tbaa !75
  %2200 = load ptr, ptr %4, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2200, i32 0, i32 65
  %2202 = load double, ptr %2201, align 8, !tbaa !76
  %2203 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2199, double noundef %2202)
  br i1 %2203, label %2204, label %2226

2204:                                             ; preds = %2191
  %2205 = load ptr, ptr %4, align 8, !tbaa !5
  %2206 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2205, i32 0, i32 62
  %2207 = load double, ptr %2206, align 8, !tbaa !73
  %2208 = load ptr, ptr %4, align 8, !tbaa !5
  %2209 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2208, i32 0, i32 61
  %2210 = load double, ptr %2209, align 8, !tbaa !72
  %2211 = fsub double %2207, %2210
  %2212 = load ptr, ptr %4, align 8, !tbaa !5
  %2213 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2212, i32 0, i32 65
  %2214 = load double, ptr %2213, align 8, !tbaa !76
  %2215 = load ptr, ptr %4, align 8, !tbaa !5
  %2216 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2215, i32 0, i32 64
  %2217 = load double, ptr %2216, align 8, !tbaa !75
  %2218 = fsub double %2214, %2217
  %2219 = fdiv double %2211, %2218
  %2220 = load ptr, ptr %4, align 8, !tbaa !5
  %2221 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2220, i32 0, i32 17
  %2222 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2221, i32 0, i32 4
  %2223 = load ptr, ptr %2222, align 8, !tbaa !27
  %2224 = load i64, ptr %8, align 8, !tbaa !28
  %2225 = getelementptr inbounds double, ptr %2223, i64 %2224
  store double %2219, ptr %2225, align 8, !tbaa !32
  br label %2233

2226:                                             ; preds = %2191
  %2227 = load ptr, ptr %4, align 8, !tbaa !5
  %2228 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2227, i32 0, i32 17
  %2229 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2228, i32 0, i32 4
  %2230 = load ptr, ptr %2229, align 8, !tbaa !27
  %2231 = load i64, ptr %8, align 8, !tbaa !28
  %2232 = getelementptr inbounds double, ptr %2230, i64 %2231
  store double 0.000000e+00, ptr %2232, align 8, !tbaa !32
  br label %2233

2233:                                             ; preds = %2226, %2204
  %2234 = load ptr, ptr %4, align 8, !tbaa !5
  %2235 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2234, i32 0, i32 48
  %2236 = load i64, ptr %2235, align 8, !tbaa !39
  %2237 = add nsw i64 %2236, 2
  %2238 = load ptr, ptr %4, align 8, !tbaa !5
  %2239 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2238, i32 0, i32 48
  store i64 %2237, ptr %2239, align 8, !tbaa !39
  br label %2240

2240:                                             ; preds = %2233, %2022
  %2241 = load double, ptr %10, align 8, !tbaa !32
  %2242 = load ptr, ptr %4, align 8, !tbaa !5
  %2243 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2242, i32 0, i32 15
  %2244 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2243, i32 0, i32 4
  %2245 = load ptr, ptr %2244, align 8, !tbaa !27
  %2246 = load i64, ptr %8, align 8, !tbaa !28
  %2247 = getelementptr inbounds double, ptr %2245, i64 %2246
  store double %2241, ptr %2247, align 8, !tbaa !32
  %2248 = load i64, ptr %8, align 8, !tbaa !28
  %2249 = add nsw i64 %2248, 1
  store i64 %2249, ptr %8, align 8, !tbaa !28
  br label %1825

2250:                                             ; preds = %1830
  %2251 = load ptr, ptr %4, align 8, !tbaa !5
  %2252 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2251, i32 0, i32 59
  %2253 = load double, ptr %2252, align 8, !tbaa !70
  %2254 = load ptr, ptr %4, align 8, !tbaa !5
  %2255 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2254, i32 0, i32 16
  store double %2253, ptr %2255, align 8, !tbaa !58
  %2256 = load ptr, ptr %4, align 8, !tbaa !5
  %2257 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2256, i32 0, i32 18
  store i8 0, ptr %2257, align 8, !tbaa !66
  br label %2258

2258:                                             ; preds = %2250, %1804
  %2259 = load ptr, ptr %4, align 8, !tbaa !5
  %2260 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2259, i32 0, i32 88
  %2261 = load ptr, ptr %4, align 8, !tbaa !5
  %2262 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2261, i32 0, i32 11
  %2263 = load ptr, ptr %4, align 8, !tbaa !5
  %2264 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2263, i32 0, i32 90
  %2265 = load ptr, ptr %4, align 8, !tbaa !5
  %2266 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2265, i32 0, i32 35
  %2267 = load ptr, ptr %4, align 8, !tbaa !5
  %2268 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2267, i32 0, i32 74
  %2269 = load double, ptr %2268, align 8, !tbaa !83
  %2270 = load ptr, ptr %4, align 8, !tbaa !5
  %2271 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2270, i32 0, i32 15
  %2272 = load ptr, ptr %4, align 8, !tbaa !5
  %2273 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2272, i32 0, i32 16
  %2274 = load double, ptr %2273, align 8, !tbaa !58
  %2275 = load ptr, ptr %4, align 8, !tbaa !5
  %2276 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2275, i32 0, i32 17
  %2277 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl31smoothnessmonitorenqueuepoint1uEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_dS4_dS4_PNS_8ae_stateE(ptr noundef %2260, ptr noundef %2262, ptr noundef %2264, ptr noundef %2266, double noundef %2269, ptr noundef %2271, double noundef %2274, ptr noundef %2276, ptr noundef %2277)
  %2278 = load ptr, ptr %4, align 8, !tbaa !5
  %2279 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2278, i32 0, i32 16
  %2280 = load double, ptr %2279, align 8, !tbaa !58
  %2281 = load double, ptr @_ZN11alglib_implL22minbleic_penaltyfactorE, align 8, !tbaa !32
  %2282 = load ptr, ptr %4, align 8, !tbaa !5
  %2283 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2282, i32 0, i32 41
  %2284 = load double, ptr %2283, align 8, !tbaa !63
  %2285 = fmul double %2281, %2284
  %2286 = load double, ptr %17, align 8, !tbaa !32
  %2287 = call double @llvm.fmuladd.f64(double %2285, double %2286, double %2280)
  %2288 = load ptr, ptr %4, align 8, !tbaa !5
  %2289 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2288, i32 0, i32 33
  store double %2287, ptr %2289, align 8, !tbaa !91
  %2290 = load ptr, ptr %4, align 8, !tbaa !5
  %2291 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2290, i32 0, i32 30
  %2292 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2291, i32 0, i32 4
  %2293 = load ptr, ptr %2292, align 8, !tbaa !27
  %2294 = getelementptr inbounds double, ptr %2293, i64 0
  %2295 = load ptr, ptr %4, align 8, !tbaa !5
  %2296 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2295, i32 0, i32 17
  %2297 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2296, i32 0, i32 4
  %2298 = load ptr, ptr %2297, align 8, !tbaa !27
  %2299 = getelementptr inbounds double, ptr %2298, i64 0
  %2300 = load i64, ptr %6, align 8, !tbaa !28
  %2301 = sub nsw i64 %2300, 1
  %2302 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2301)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2294, i64 noundef 1, ptr noundef %2299, i64 noundef 1, i64 noundef %2302)
  %2303 = load ptr, ptr %4, align 8, !tbaa !5
  %2304 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2303, i32 0, i32 29
  %2305 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2304, i32 0, i32 4
  %2306 = load ptr, ptr %2305, align 8, !tbaa !27
  %2307 = getelementptr inbounds double, ptr %2306, i64 0
  %2308 = load ptr, ptr %4, align 8, !tbaa !5
  %2309 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2308, i32 0, i32 17
  %2310 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2309, i32 0, i32 4
  %2311 = load ptr, ptr %2310, align 8, !tbaa !27
  %2312 = getelementptr inbounds double, ptr %2311, i64 0
  %2313 = load i64, ptr %6, align 8, !tbaa !28
  %2314 = sub nsw i64 %2313, 1
  %2315 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2314)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2307, i64 noundef 1, ptr noundef %2312, i64 noundef 1, i64 noundef %2315)
  %2316 = load ptr, ptr %4, align 8, !tbaa !5
  %2317 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2316, i32 0, i32 10
  %2318 = load ptr, ptr %4, align 8, !tbaa !5
  %2319 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2318, i32 0, i32 30
  %2320 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2317, ptr noundef %2319, ptr noundef %2320)
  %2321 = load ptr, ptr %4, align 8, !tbaa !5
  %2322 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2321, i32 0, i32 33
  %2323 = load ptr, ptr %4, align 8, !tbaa !5
  %2324 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2323, i32 0, i32 30
  %2325 = load i64, ptr %6, align 8, !tbaa !28
  %2326 = load ptr, ptr %4, align 8, !tbaa !5
  %2327 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2326, i32 0, i32 79
  %2328 = load double, ptr %2327, align 8, !tbaa !94
  %2329 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12trimfunctionEPdPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %2322, ptr noundef %2324, i64 noundef %2325, double noundef %2328, ptr noundef %2329)
  %2330 = load i64, ptr %6, align 8, !tbaa !28
  %2331 = load ptr, ptr %4, align 8, !tbaa !5
  %2332 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2331, i32 0, i32 28
  %2333 = load ptr, ptr %4, align 8, !tbaa !5
  %2334 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2333, i32 0, i32 33
  %2335 = load ptr, ptr %4, align 8, !tbaa !5
  %2336 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2335, i32 0, i32 29
  %2337 = load ptr, ptr %4, align 8, !tbaa !5
  %2338 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2337, i32 0, i32 35
  %2339 = load ptr, ptr %4, align 8, !tbaa !5
  %2340 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2339, i32 0, i32 74
  %2341 = load ptr, ptr %4, align 8, !tbaa !5
  %2342 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2341, i32 0, i32 75
  %2343 = load double, ptr %2342, align 8, !tbaa !84
  %2344 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !32
  %2345 = load ptr, ptr %4, align 8, !tbaa !5
  %2346 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2345, i32 0, i32 72
  %2347 = load ptr, ptr %4, align 8, !tbaa !5
  %2348 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2347, i32 0, i32 77
  %2349 = load ptr, ptr %4, align 8, !tbaa !5
  %2350 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2349, i32 0, i32 78
  %2351 = load ptr, ptr %4, align 8, !tbaa !5
  %2352 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2351, i32 0, i32 73
  %2353 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %2330, ptr noundef %2332, ptr noundef %2334, ptr noundef %2336, ptr noundef %2338, ptr noundef %2340, double noundef %2343, double noundef %2344, ptr noundef %14, ptr noundef %2346, ptr noundef %2348, ptr noundef %2350, ptr noundef %2352, ptr noundef %2353)
  br label %1756

2354:                                             ; preds = %1761
  %2355 = load ptr, ptr %4, align 8, !tbaa !5
  %2356 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2355, i32 0, i32 82
  %2357 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2356, i32 0, i32 6
  %2358 = load ptr, ptr %2357, align 8, !tbaa !27
  %2359 = load ptr, ptr %4, align 8, !tbaa !5
  %2360 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2359, i32 0, i32 85
  %2361 = load i64, ptr %2360, align 8, !tbaa !78
  %2362 = getelementptr inbounds ptr, ptr %2358, i64 %2361
  %2363 = load ptr, ptr %2362, align 8, !tbaa !5
  %2364 = getelementptr inbounds double, ptr %2363, i64 0
  %2365 = load ptr, ptr %4, align 8, !tbaa !5
  %2366 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2365, i32 0, i32 10
  %2367 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2366, i32 0, i32 2
  %2368 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2367, i32 0, i32 4
  %2369 = load ptr, ptr %2368, align 8, !tbaa !27
  %2370 = getelementptr inbounds double, ptr %2369, i64 0
  %2371 = load i64, ptr %6, align 8, !tbaa !28
  %2372 = sub nsw i64 %2371, 1
  %2373 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2372)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %2364, i64 noundef 1, ptr noundef %2370, i64 noundef 1, i64 noundef %2373)
  %2374 = load ptr, ptr %4, align 8, !tbaa !5
  %2375 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2374, i32 0, i32 81
  %2376 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2375, i32 0, i32 6
  %2377 = load ptr, ptr %2376, align 8, !tbaa !27
  %2378 = load ptr, ptr %4, align 8, !tbaa !5
  %2379 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2378, i32 0, i32 85
  %2380 = load i64, ptr %2379, align 8, !tbaa !78
  %2381 = getelementptr inbounds ptr, ptr %2377, i64 %2380
  %2382 = load ptr, ptr %2381, align 8, !tbaa !5
  %2383 = getelementptr inbounds double, ptr %2382, i64 0
  %2384 = load ptr, ptr %4, align 8, !tbaa !5
  %2385 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2384, i32 0, i32 27
  %2386 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2385, i32 0, i32 4
  %2387 = load ptr, ptr %2386, align 8, !tbaa !27
  %2388 = getelementptr inbounds double, ptr %2387, i64 0
  %2389 = load i64, ptr %6, align 8, !tbaa !28
  %2390 = sub nsw i64 %2389, 1
  %2391 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2390)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %2383, i64 noundef 1, ptr noundef %2388, i64 noundef 1, i64 noundef %2391)
  %2392 = load ptr, ptr %4, align 8, !tbaa !5
  %2393 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2392, i32 0, i32 82
  %2394 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2393, i32 0, i32 6
  %2395 = load ptr, ptr %2394, align 8, !tbaa !27
  %2396 = load ptr, ptr %4, align 8, !tbaa !5
  %2397 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2396, i32 0, i32 85
  %2398 = load i64, ptr %2397, align 8, !tbaa !78
  %2399 = getelementptr inbounds ptr, ptr %2395, i64 %2398
  %2400 = load ptr, ptr %2399, align 8, !tbaa !5
  %2401 = getelementptr inbounds double, ptr %2400, i64 0
  %2402 = load ptr, ptr %4, align 8, !tbaa !5
  %2403 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2402, i32 0, i32 28
  %2404 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2403, i32 0, i32 4
  %2405 = load ptr, ptr %2404, align 8, !tbaa !27
  %2406 = getelementptr inbounds double, ptr %2405, i64 0
  %2407 = load i64, ptr %6, align 8, !tbaa !28
  %2408 = sub nsw i64 %2407, 1
  %2409 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2408)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %2401, i64 noundef 1, ptr noundef %2406, i64 noundef 1, i64 noundef %2409)
  %2410 = load ptr, ptr %4, align 8, !tbaa !5
  %2411 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2410, i32 0, i32 81
  %2412 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2411, i32 0, i32 6
  %2413 = load ptr, ptr %2412, align 8, !tbaa !27
  %2414 = load ptr, ptr %4, align 8, !tbaa !5
  %2415 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2414, i32 0, i32 85
  %2416 = load i64, ptr %2415, align 8, !tbaa !78
  %2417 = getelementptr inbounds ptr, ptr %2413, i64 %2416
  %2418 = load ptr, ptr %2417, align 8, !tbaa !5
  %2419 = getelementptr inbounds double, ptr %2418, i64 0
  %2420 = load ptr, ptr %4, align 8, !tbaa !5
  %2421 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2420, i32 0, i32 30
  %2422 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2421, i32 0, i32 4
  %2423 = load ptr, ptr %2422, align 8, !tbaa !27
  %2424 = getelementptr inbounds double, ptr %2423, i64 0
  %2425 = load i64, ptr %6, align 8, !tbaa !28
  %2426 = sub nsw i64 %2425, 1
  %2427 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2426)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %2419, i64 noundef 1, ptr noundef %2424, i64 noundef 1, i64 noundef %2427)
  %2428 = load ptr, ptr %4, align 8, !tbaa !5
  %2429 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2428, i32 0, i32 88
  %2430 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl35smoothnessmonitorfinalizelinesearchEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %2429, ptr noundef %2430)
  %2431 = load ptr, ptr %4, align 8, !tbaa !5
  %2432 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2431, i32 0, i32 33
  %2433 = load double, ptr %2432, align 8, !tbaa !91
  store double %2433, ptr %10, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %2434

2434:                                             ; preds = %2449, %2354
  %2435 = load i64, ptr %8, align 8, !tbaa !28
  %2436 = load i64, ptr %6, align 8, !tbaa !28
  %2437 = sub nsw i64 %2436, 1
  %2438 = icmp sle i64 %2435, %2437
  br i1 %2438, label %2439, label %2452

2439:                                             ; preds = %2434
  %2440 = load double, ptr %10, align 8, !tbaa !32
  %2441 = load ptr, ptr %4, align 8, !tbaa !5
  %2442 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2441, i32 0, i32 29
  %2443 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2442, i32 0, i32 4
  %2444 = load ptr, ptr %2443, align 8, !tbaa !27
  %2445 = load i64, ptr %8, align 8, !tbaa !28
  %2446 = getelementptr inbounds double, ptr %2444, i64 %2445
  %2447 = load double, ptr %2446, align 8, !tbaa !32
  %2448 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %2440, double %2447)
  store double %2448, ptr %10, align 8, !tbaa !32
  br label %2449

2449:                                             ; preds = %2439
  %2450 = load i64, ptr %8, align 8, !tbaa !28
  %2451 = add nsw i64 %2450, 1
  store i64 %2451, ptr %8, align 8, !tbaa !28
  br label %2434, !llvm.loop !95

2452:                                             ; preds = %2434
  %2453 = load double, ptr %10, align 8, !tbaa !32
  %2454 = load ptr, ptr %5, align 8, !tbaa !5
  %2455 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2453, ptr noundef %2454)
  br i1 %2455, label %2459, label %2456

2456:                                             ; preds = %2452
  %2457 = load ptr, ptr %4, align 8, !tbaa !5
  %2458 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2457, i32 0, i32 50
  store i64 -8, ptr %2458, align 8, !tbaa !36
  br label %3112

2459:                                             ; preds = %2452
  %2460 = load i64, ptr %14, align 8, !tbaa !28
  %2461 = icmp ne i64 %2460, 1
  br i1 %2461, label %2462, label %2584

2462:                                             ; preds = %2459
  %2463 = load i64, ptr %14, align 8, !tbaa !28
  %2464 = icmp ne i64 %2463, 5
  br i1 %2464, label %2465, label %2584

2465:                                             ; preds = %2462
  store double 0.000000e+00, ptr %10, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %2466

2466:                                             ; preds = %2495, %2465
  %2467 = load i64, ptr %8, align 8, !tbaa !28
  %2468 = load i64, ptr %6, align 8, !tbaa !28
  %2469 = sub nsw i64 %2468, 1
  %2470 = icmp sle i64 %2467, %2469
  br i1 %2470, label %2471, label %2498

2471:                                             ; preds = %2466
  %2472 = load double, ptr %10, align 8, !tbaa !32
  %2473 = load ptr, ptr %4, align 8, !tbaa !5
  %2474 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2473, i32 0, i32 35
  %2475 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2474, i32 0, i32 4
  %2476 = load ptr, ptr %2475, align 8, !tbaa !27
  %2477 = load i64, ptr %8, align 8, !tbaa !28
  %2478 = getelementptr inbounds double, ptr %2476, i64 %2477
  %2479 = load double, ptr %2478, align 8, !tbaa !32
  %2480 = load ptr, ptr %4, align 8, !tbaa !5
  %2481 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2480, i32 0, i32 75
  %2482 = load double, ptr %2481, align 8, !tbaa !84
  %2483 = fmul double %2479, %2482
  %2484 = load ptr, ptr %4, align 8, !tbaa !5
  %2485 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2484, i32 0, i32 11
  %2486 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2485, i32 0, i32 4
  %2487 = load ptr, ptr %2486, align 8, !tbaa !27
  %2488 = load i64, ptr %8, align 8, !tbaa !28
  %2489 = getelementptr inbounds double, ptr %2487, i64 %2488
  %2490 = load double, ptr %2489, align 8, !tbaa !32
  %2491 = fdiv double %2483, %2490
  %2492 = load ptr, ptr %5, align 8, !tbaa !5
  %2493 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2491, ptr noundef %2492)
  %2494 = fadd double %2472, %2493
  store double %2494, ptr %10, align 8, !tbaa !32
  br label %2495

2495:                                             ; preds = %2471
  %2496 = load i64, ptr %8, align 8, !tbaa !28
  %2497 = add nsw i64 %2496, 1
  store i64 %2497, ptr %8, align 8, !tbaa !28
  br label %2466, !llvm.loop !96

2498:                                             ; preds = %2466
  %2499 = load double, ptr %10, align 8, !tbaa !32
  %2500 = load ptr, ptr %5, align 8, !tbaa !5
  %2501 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2499, ptr noundef %2500)
  store double %2501, ptr %10, align 8, !tbaa !32
  store i8 0, ptr %13, align 1, !tbaa !29
  %2502 = load ptr, ptr %4, align 8, !tbaa !5
  %2503 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2502, i32 0, i32 68
  %2504 = load i64, ptr %2503, align 8, !tbaa !86
  %2505 = icmp sge i64 %2504, 0
  br i1 %2505, label %2506, label %2571

2506:                                             ; preds = %2498
  %2507 = load double, ptr %10, align 8, !tbaa !32
  %2508 = load double, ptr @_ZN11alglib_implL27minbleic_maxnonmonotoniclenE, align 8, !tbaa !32
  %2509 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2507, double noundef %2508)
  br i1 %2509, label %2510, label %2571

2510:                                             ; preds = %2506
  %2511 = load ptr, ptr %4, align 8, !tbaa !5
  %2512 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2511, i32 0, i32 80
  %2513 = load i64, ptr %2512, align 8, !tbaa !65
  %2514 = icmp sgt i64 %2513, 0
  br i1 %2514, label %2515, label %2571

2515:                                             ; preds = %2510
  %2516 = load ptr, ptr %4, align 8, !tbaa !5
  %2517 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2516, i32 0, i32 75
  %2518 = load double, ptr %2517, align 8, !tbaa !84
  store double %2518, ptr %10, align 8, !tbaa !32
  %2519 = load ptr, ptr %4, align 8, !tbaa !5
  %2520 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2519, i32 0, i32 71
  %2521 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2520, i32 0, i32 4
  %2522 = load ptr, ptr %2521, align 8, !tbaa !27
  %2523 = getelementptr inbounds double, ptr %2522, i64 0
  %2524 = load ptr, ptr %4, align 8, !tbaa !5
  %2525 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2524, i32 0, i32 10
  %2526 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2525, i32 0, i32 2
  %2527 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2526, i32 0, i32 4
  %2528 = load ptr, ptr %2527, align 8, !tbaa !27
  %2529 = getelementptr inbounds double, ptr %2528, i64 0
  %2530 = load i64, ptr %6, align 8, !tbaa !28
  %2531 = sub nsw i64 %2530, 1
  %2532 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2531)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2523, 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::minbleicstate", ptr %2533, i32 0, i32 71
  %2535 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2534, i32 0, i32 4
  %2536 = load ptr, ptr %2535, align 8, !tbaa !27
  %2537 = getelementptr inbounds double, ptr %2536, i64 0
  %2538 = load ptr, ptr %4, align 8, !tbaa !5
  %2539 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2538, i32 0, i32 35
  %2540 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2539, i32 0, i32 4
  %2541 = load ptr, ptr %2540, align 8, !tbaa !27
  %2542 = getelementptr inbounds double, ptr %2541, i64 0
  %2543 = load i64, ptr %6, align 8, !tbaa !28
  %2544 = sub nsw i64 %2543, 1
  %2545 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2544)
  %2546 = load double, ptr %10, align 8, !tbaa !32
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %2537, i64 noundef 1, ptr noundef %2542, i64 noundef 1, i64 noundef %2545, double noundef %2546)
  %2547 = load ptr, ptr %4, align 8, !tbaa !5
  %2548 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2547, i32 0, i32 75
  %2549 = load double, ptr %2548, align 8, !tbaa !84
  %2550 = load ptr, ptr %4, align 8, !tbaa !5
  %2551 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2550, i32 0, i32 74
  store double %2549, ptr %2551, align 8, !tbaa !83
  store i64 5, ptr %14, align 8, !tbaa !28
  %2552 = load ptr, ptr %4, align 8, !tbaa !5
  %2553 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2552, i32 0, i32 28
  %2554 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2553, i32 0, i32 4
  %2555 = load ptr, ptr %2554, align 8, !tbaa !27
  %2556 = getelementptr inbounds double, ptr %2555, i64 0
  %2557 = load ptr, ptr %4, align 8, !tbaa !5
  %2558 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2557, i32 0, i32 71
  %2559 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2558, i32 0, i32 4
  %2560 = load ptr, ptr %2559, align 8, !tbaa !27
  %2561 = getelementptr inbounds double, ptr %2560, i64 0
  %2562 = load i64, ptr %6, align 8, !tbaa !28
  %2563 = sub nsw i64 %2562, 1
  %2564 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2563)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2556, i64 noundef 1, ptr noundef %2561, i64 noundef 1, i64 noundef %2564)
  %2565 = load ptr, ptr %4, align 8, !tbaa !5
  %2566 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2565, i32 0, i32 80
  %2567 = load i64, ptr %2566, align 8, !tbaa !65
  %2568 = sub nsw i64 %2567, 1
  %2569 = load ptr, ptr %4, align 8, !tbaa !5
  %2570 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2569, i32 0, i32 80
  store i64 %2568, ptr %2570, align 8, !tbaa !65
  store i8 1, ptr %13, align 1, !tbaa !29
  br label %2571

2571:                                             ; preds = %2515, %2510, %2506, %2498
  %2572 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %2573 = trunc i8 %2572 to i1
  br i1 %2573, label %2583, label %2574

2574:                                             ; preds = %2571
  %2575 = load ptr, ptr %4, align 8, !tbaa !5
  %2576 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2575, i32 0, i32 22
  %2577 = load i8, ptr %2576, align 4, !tbaa !34, !range !30, !noundef !31
  %2578 = trunc i8 %2577 to i1
  br i1 %2578, label %2579, label %2582

2579:                                             ; preds = %2574
  %2580 = load ptr, ptr %4, align 8, !tbaa !5
  %2581 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2580, i32 0, i32 50
  store i64 7, ptr %2581, align 8, !tbaa !36
  br label %3112

2582:                                             ; preds = %2574
  br label %3112

2583:                                             ; preds = %2571
  br label %2584

2584:                                             ; preds = %2583, %2462, %2459
  %2585 = load ptr, ptr %4, align 8, !tbaa !5
  %2586 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2585, i32 0, i32 24
  %2587 = load i8, ptr %2586, align 2, !tbaa !35, !range !30, !noundef !31
  %2588 = trunc i8 %2587 to i1
  br i1 %2588, label %2589, label %2590

2589:                                             ; preds = %2584
  br label %3112

2590:                                             ; preds = %2584
  %2591 = load ptr, ptr %4, align 8, !tbaa !5
  %2592 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2591, i32 0, i32 32
  %2593 = load double, ptr %2592, align 8, !tbaa !67
  %2594 = load ptr, ptr %4, align 8, !tbaa !5
  %2595 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2594, i32 0, i32 34
  store double %2593, ptr %2595, align 8, !tbaa !97
  %2596 = load ptr, ptr %4, align 8, !tbaa !5
  %2597 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2596, i32 0, i32 31
  %2598 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2597, i32 0, i32 4
  %2599 = load ptr, ptr %2598, align 8, !tbaa !27
  %2600 = getelementptr inbounds double, ptr %2599, i64 0
  %2601 = load ptr, ptr %4, align 8, !tbaa !5
  %2602 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2601, i32 0, i32 10
  %2603 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2602, i32 0, i32 2
  %2604 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2603, i32 0, i32 4
  %2605 = load ptr, ptr %2604, align 8, !tbaa !27
  %2606 = getelementptr inbounds double, ptr %2605, i64 0
  %2607 = load i64, ptr %6, align 8, !tbaa !28
  %2608 = sub nsw i64 %2607, 1
  %2609 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2608)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2600, i64 noundef 1, ptr noundef %2606, i64 noundef 1, i64 noundef %2609)
  %2610 = load ptr, ptr %4, align 8, !tbaa !5
  %2611 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2610, i32 0, i32 33
  %2612 = load double, ptr %2611, align 8, !tbaa !91
  %2613 = load ptr, ptr %4, align 8, !tbaa !5
  %2614 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2613, i32 0, i32 32
  store double %2612, ptr %2614, align 8, !tbaa !67
  %2615 = load ptr, ptr %4, align 8, !tbaa !5
  %2616 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2615, i32 0, i32 27
  %2617 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2616, i32 0, i32 4
  %2618 = load ptr, ptr %2617, align 8, !tbaa !27
  %2619 = getelementptr inbounds double, ptr %2618, i64 0
  %2620 = load ptr, ptr %4, align 8, !tbaa !5
  %2621 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2620, i32 0, i32 30
  %2622 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2621, i32 0, i32 4
  %2623 = load ptr, ptr %2622, align 8, !tbaa !27
  %2624 = getelementptr inbounds double, ptr %2623, i64 0
  %2625 = load i64, ptr %6, align 8, !tbaa !28
  %2626 = sub nsw i64 %2625, 1
  %2627 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2626)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2619, i64 noundef 1, ptr noundef %2624, i64 noundef 1, i64 noundef %2627)
  %2628 = load ptr, ptr %4, align 8, !tbaa !5
  %2629 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2628, i32 0, i32 26
  %2630 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2629, i32 0, i32 4
  %2631 = load ptr, ptr %2630, align 8, !tbaa !27
  %2632 = getelementptr inbounds double, ptr %2631, i64 0
  %2633 = load ptr, ptr %4, align 8, !tbaa !5
  %2634 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2633, i32 0, i32 29
  %2635 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2634, i32 0, i32 4
  %2636 = load ptr, ptr %2635, align 8, !tbaa !27
  %2637 = getelementptr inbounds double, ptr %2636, i64 0
  %2638 = load i64, ptr %6, align 8, !tbaa !28
  %2639 = sub nsw i64 %2638, 1
  %2640 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2639)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2632, i64 noundef 1, ptr noundef %2637, i64 noundef 1, i64 noundef %2640)
  %2641 = load ptr, ptr %4, align 8, !tbaa !5
  %2642 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2641, i32 0, i32 10
  %2643 = load ptr, ptr %4, align 8, !tbaa !5
  %2644 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2643, i32 0, i32 28
  %2645 = load ptr, ptr %4, align 8, !tbaa !5
  %2646 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2645, i32 0, i32 68
  %2647 = load i64, ptr %2646, align 8, !tbaa !86
  %2648 = icmp sge i64 %2647, 0
  br i1 %2648, label %2649, label %2657

2649:                                             ; preds = %2590
  %2650 = load ptr, ptr %4, align 8, !tbaa !5
  %2651 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2650, i32 0, i32 74
  %2652 = load double, ptr %2651, align 8, !tbaa !83
  %2653 = load ptr, ptr %4, align 8, !tbaa !5
  %2654 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2653, i32 0, i32 76
  %2655 = load double, ptr %2654, align 8, !tbaa !85
  %2656 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2652, double noundef %2655)
  br label %2657

2657:                                             ; preds = %2649, %2590
  %2658 = phi i1 [ false, %2590 ], [ %2656, %2649 ]
  %2659 = load ptr, ptr %4, align 8, !tbaa !5
  %2660 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2659, i32 0, i32 68
  %2661 = load i64, ptr %2660, align 8, !tbaa !86
  %2662 = load ptr, ptr %4, align 8, !tbaa !5
  %2663 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2662, i32 0, i32 69
  %2664 = load double, ptr %2663, align 8, !tbaa !87
  %2665 = load ptr, ptr %5, align 8, !tbaa !5
  %2666 = call noundef i64 @_ZN11alglib_impl9sasmovetoEPNS_10sactivesetEPKNS_9ae_vectorEbldPNS_8ae_stateE(ptr noundef %2642, ptr noundef %2644, i1 noundef zeroext %2658, i64 noundef %2661, double noundef %2664, ptr noundef %2665)
  store i64 %2666, ptr %15, align 8, !tbaa !28
  %2667 = load ptr, ptr %4, align 8, !tbaa !5
  %2668 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2667, i32 0, i32 6
  %2669 = load i8, ptr %2668, align 8, !tbaa !68, !range !30, !noundef !31
  %2670 = trunc i8 %2669 to i1
  br i1 %2670, label %2672, label %2671

2671:                                             ; preds = %2657
  br label %2697

2672:                                             ; preds = %2657
  %2673 = load ptr, ptr %4, align 8, !tbaa !5
  %2674 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2673, i32 0, i32 15
  %2675 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2674, i32 0, i32 4
  %2676 = load ptr, ptr %2675, align 8, !tbaa !27
  %2677 = getelementptr inbounds double, ptr %2676, i64 0
  %2678 = load ptr, ptr %4, align 8, !tbaa !5
  %2679 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2678, i32 0, i32 10
  %2680 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2679, i32 0, i32 2
  %2681 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2680, i32 0, i32 4
  %2682 = load ptr, ptr %2681, align 8, !tbaa !27
  %2683 = getelementptr inbounds double, ptr %2682, i64 0
  %2684 = load i64, ptr %6, align 8, !tbaa !28
  %2685 = sub nsw i64 %2684, 1
  %2686 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2685)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2677, i64 noundef 1, ptr noundef %2683, i64 noundef 1, i64 noundef %2686)
  %2687 = load ptr, ptr %4, align 8, !tbaa !5
  %2688 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %2687, ptr noundef %2688)
  %2689 = load ptr, ptr %4, align 8, !tbaa !5
  %2690 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2689, i32 0, i32 20
  store i8 1, ptr %2690, align 2, !tbaa !69
  %2691 = load ptr, ptr %4, align 8, !tbaa !5
  %2692 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2691, i32 0, i32 25
  %2693 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2692, i32 0, i32 0
  store i32 21, ptr %2693, align 8, !tbaa !9
  br label %3141

2694:                                             ; preds = %282
  %2695 = load ptr, ptr %4, align 8, !tbaa !5
  %2696 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2695, i32 0, i32 20
  store i8 0, ptr %2696, align 2, !tbaa !69
  br label %2697

2697:                                             ; preds = %2694, %2671
  %2698 = load ptr, ptr %4, align 8, !tbaa !5
  %2699 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2698, i32 0, i32 46
  %2700 = load i64, ptr %2699, align 8, !tbaa !37
  %2701 = add nsw i64 %2700, 1
  %2702 = load ptr, ptr %4, align 8, !tbaa !5
  %2703 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2702, i32 0, i32 46
  store i64 %2701, ptr %2703, align 8, !tbaa !37
  %2704 = load i64, ptr %14, align 8, !tbaa !28
  %2705 = icmp eq i64 %2704, 1
  br i1 %2705, label %2706, label %2958

2706:                                             ; preds = %2697
  %2707 = load ptr, ptr %4, align 8, !tbaa !5
  %2708 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2707, i32 0, i32 85
  %2709 = load i64, ptr %2708, align 8, !tbaa !78
  %2710 = load i64, ptr %7, align 8, !tbaa !28
  %2711 = icmp eq i64 %2709, %2710
  br i1 %2711, label %2712, label %2805

2712:                                             ; preds = %2706
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %2713

2713:                                             ; preds = %2761, %2712
  %2714 = load i64, ptr %8, align 8, !tbaa !28
  %2715 = load ptr, ptr %4, align 8, !tbaa !5
  %2716 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2715, i32 0, i32 85
  %2717 = load i64, ptr %2716, align 8, !tbaa !78
  %2718 = sub nsw i64 %2717, 1
  %2719 = icmp sle i64 %2714, %2718
  br i1 %2719, label %2720, label %2764

2720:                                             ; preds = %2713
  %2721 = load ptr, ptr %4, align 8, !tbaa !5
  %2722 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2721, i32 0, i32 82
  %2723 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2722, i32 0, i32 6
  %2724 = load ptr, ptr %2723, align 8, !tbaa !27
  %2725 = load i64, ptr %8, align 8, !tbaa !28
  %2726 = getelementptr inbounds ptr, ptr %2724, i64 %2725
  %2727 = load ptr, ptr %2726, align 8, !tbaa !5
  %2728 = getelementptr inbounds double, ptr %2727, i64 0
  %2729 = load ptr, ptr %4, align 8, !tbaa !5
  %2730 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2729, i32 0, i32 82
  %2731 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2730, i32 0, i32 6
  %2732 = load ptr, ptr %2731, align 8, !tbaa !27
  %2733 = load i64, ptr %8, align 8, !tbaa !28
  %2734 = add nsw i64 %2733, 1
  %2735 = getelementptr inbounds ptr, ptr %2732, i64 %2734
  %2736 = load ptr, ptr %2735, align 8, !tbaa !5
  %2737 = getelementptr inbounds double, ptr %2736, i64 0
  %2738 = load i64, ptr %6, align 8, !tbaa !28
  %2739 = sub nsw i64 %2738, 1
  %2740 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2739)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2728, i64 noundef 1, ptr noundef %2737, i64 noundef 1, i64 noundef %2740)
  %2741 = load ptr, ptr %4, align 8, !tbaa !5
  %2742 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2741, i32 0, i32 81
  %2743 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2742, i32 0, i32 6
  %2744 = load ptr, ptr %2743, align 8, !tbaa !27
  %2745 = load i64, ptr %8, align 8, !tbaa !28
  %2746 = getelementptr inbounds ptr, ptr %2744, i64 %2745
  %2747 = load ptr, ptr %2746, align 8, !tbaa !5
  %2748 = getelementptr inbounds double, ptr %2747, i64 0
  %2749 = load ptr, ptr %4, align 8, !tbaa !5
  %2750 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2749, i32 0, i32 81
  %2751 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2750, i32 0, i32 6
  %2752 = load ptr, ptr %2751, align 8, !tbaa !27
  %2753 = load i64, ptr %8, align 8, !tbaa !28
  %2754 = add nsw i64 %2753, 1
  %2755 = getelementptr inbounds ptr, ptr %2752, i64 %2754
  %2756 = load ptr, ptr %2755, align 8, !tbaa !5
  %2757 = getelementptr inbounds double, ptr %2756, i64 0
  %2758 = load i64, ptr %6, align 8, !tbaa !28
  %2759 = sub nsw i64 %2758, 1
  %2760 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2759)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2748, i64 noundef 1, ptr noundef %2757, i64 noundef 1, i64 noundef %2760)
  br label %2761

2761:                                             ; preds = %2720
  %2762 = load i64, ptr %8, align 8, !tbaa !28
  %2763 = add nsw i64 %2762, 1
  store i64 %2763, ptr %8, align 8, !tbaa !28
  br label %2713, !llvm.loop !98

2764:                                             ; preds = %2713
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %2765

2765:                                             ; preds = %2801, %2764
  %2766 = load i64, ptr %8, align 8, !tbaa !28
  %2767 = load ptr, ptr %4, align 8, !tbaa !5
  %2768 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2767, i32 0, i32 85
  %2769 = load i64, ptr %2768, align 8, !tbaa !78
  %2770 = sub nsw i64 %2769, 2
  %2771 = icmp sle i64 %2766, %2770
  br i1 %2771, label %2772, label %2804

2772:                                             ; preds = %2765
  %2773 = load ptr, ptr %4, align 8, !tbaa !5
  %2774 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2773, i32 0, i32 83
  %2775 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2774, i32 0, i32 4
  %2776 = load ptr, ptr %2775, align 8, !tbaa !27
  %2777 = load i64, ptr %8, align 8, !tbaa !28
  %2778 = add nsw i64 %2777, 1
  %2779 = getelementptr inbounds double, ptr %2776, i64 %2778
  %2780 = load double, ptr %2779, align 8, !tbaa !32
  %2781 = load ptr, ptr %4, align 8, !tbaa !5
  %2782 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2781, i32 0, i32 83
  %2783 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2782, i32 0, i32 4
  %2784 = load ptr, ptr %2783, align 8, !tbaa !27
  %2785 = load i64, ptr %8, align 8, !tbaa !28
  %2786 = getelementptr inbounds double, ptr %2784, i64 %2785
  store double %2780, ptr %2786, align 8, !tbaa !32
  %2787 = load ptr, ptr %4, align 8, !tbaa !5
  %2788 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2787, i32 0, i32 84
  %2789 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2788, i32 0, i32 4
  %2790 = load ptr, ptr %2789, align 8, !tbaa !27
  %2791 = load i64, ptr %8, align 8, !tbaa !28
  %2792 = add nsw i64 %2791, 1
  %2793 = getelementptr inbounds double, ptr %2790, i64 %2792
  %2794 = load double, ptr %2793, align 8, !tbaa !32
  %2795 = load ptr, ptr %4, align 8, !tbaa !5
  %2796 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2795, i32 0, i32 84
  %2797 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2796, i32 0, i32 4
  %2798 = load ptr, ptr %2797, align 8, !tbaa !27
  %2799 = load i64, ptr %8, align 8, !tbaa !28
  %2800 = getelementptr inbounds double, ptr %2798, i64 %2799
  store double %2794, ptr %2800, align 8, !tbaa !32
  br label %2801

2801:                                             ; preds = %2772
  %2802 = load i64, ptr %8, align 8, !tbaa !28
  %2803 = add nsw i64 %2802, 1
  store i64 %2803, ptr %8, align 8, !tbaa !28
  br label %2765, !llvm.loop !99

2804:                                             ; preds = %2765
  br label %2812

2805:                                             ; preds = %2706
  %2806 = load ptr, ptr %4, align 8, !tbaa !5
  %2807 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2806, i32 0, i32 85
  %2808 = load i64, ptr %2807, align 8, !tbaa !78
  %2809 = add nsw i64 %2808, 1
  %2810 = load ptr, ptr %4, align 8, !tbaa !5
  %2811 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2810, i32 0, i32 85
  store i64 %2809, ptr %2811, align 8, !tbaa !78
  br label %2812

2812:                                             ; preds = %2805, %2804
  %2813 = load ptr, ptr %4, align 8, !tbaa !5
  %2814 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2813, i32 0, i32 81
  %2815 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2814, i32 0, i32 6
  %2816 = load ptr, ptr %2815, align 8, !tbaa !27
  %2817 = load ptr, ptr %4, align 8, !tbaa !5
  %2818 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2817, i32 0, i32 85
  %2819 = load i64, ptr %2818, align 8, !tbaa !78
  %2820 = sub nsw i64 %2819, 1
  %2821 = getelementptr inbounds ptr, ptr %2816, i64 %2820
  %2822 = load ptr, ptr %2821, align 8, !tbaa !5
  %2823 = getelementptr inbounds double, ptr %2822, i64 0
  %2824 = load ptr, ptr %4, align 8, !tbaa !5
  %2825 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2824, i32 0, i32 82
  %2826 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2825, i32 0, i32 6
  %2827 = load ptr, ptr %2826, align 8, !tbaa !27
  %2828 = load ptr, ptr %4, align 8, !tbaa !5
  %2829 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2828, i32 0, i32 85
  %2830 = load i64, ptr %2829, align 8, !tbaa !78
  %2831 = sub nsw i64 %2830, 1
  %2832 = getelementptr inbounds ptr, ptr %2827, i64 %2831
  %2833 = load ptr, ptr %2832, align 8, !tbaa !5
  %2834 = getelementptr inbounds double, ptr %2833, i64 0
  %2835 = load i64, ptr %6, align 8, !tbaa !28
  %2836 = sub nsw i64 %2835, 1
  %2837 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2836)
  %2838 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2823, i64 noundef 1, ptr noundef %2834, i64 noundef 1, i64 noundef %2837)
  store double %2838, ptr %10, align 8, !tbaa !32
  %2839 = load ptr, ptr %4, align 8, !tbaa !5
  %2840 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2839, i32 0, i32 81
  %2841 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2840, i32 0, i32 6
  %2842 = load ptr, ptr %2841, align 8, !tbaa !27
  %2843 = load ptr, ptr %4, align 8, !tbaa !5
  %2844 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2843, i32 0, i32 85
  %2845 = load i64, ptr %2844, align 8, !tbaa !78
  %2846 = sub nsw i64 %2845, 1
  %2847 = getelementptr inbounds ptr, ptr %2842, i64 %2846
  %2848 = load ptr, ptr %2847, align 8, !tbaa !5
  %2849 = getelementptr inbounds double, ptr %2848, i64 0
  %2850 = load ptr, ptr %4, align 8, !tbaa !5
  %2851 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2850, i32 0, i32 81
  %2852 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2851, i32 0, i32 6
  %2853 = load ptr, ptr %2852, align 8, !tbaa !27
  %2854 = load ptr, ptr %4, align 8, !tbaa !5
  %2855 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2854, i32 0, i32 85
  %2856 = load i64, ptr %2855, align 8, !tbaa !78
  %2857 = sub nsw i64 %2856, 1
  %2858 = getelementptr inbounds ptr, ptr %2853, i64 %2857
  %2859 = load ptr, ptr %2858, align 8, !tbaa !5
  %2860 = getelementptr inbounds double, ptr %2859, i64 0
  %2861 = load i64, ptr %6, align 8, !tbaa !28
  %2862 = sub nsw i64 %2861, 1
  %2863 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2862)
  %2864 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2849, i64 noundef 1, ptr noundef %2860, i64 noundef 1, i64 noundef %2863)
  store double %2864, ptr %11, align 8, !tbaa !32
  %2865 = load double, ptr %10, align 8, !tbaa !32
  %2866 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2865, double noundef 0.000000e+00)
  br i1 %2866, label %2870, label %2867

2867:                                             ; preds = %2812
  %2868 = load double, ptr %11, align 8, !tbaa !32
  %2869 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2868, double noundef 0.000000e+00)
  br i1 %2869, label %2870, label %2871

2870:                                             ; preds = %2867, %2812
  br label %3112

2871:                                             ; preds = %2867
  %2872 = load double, ptr %10, align 8, !tbaa !32
  %2873 = fdiv double 1.000000e+00, %2872
  %2874 = load ptr, ptr %4, align 8, !tbaa !5
  %2875 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2874, i32 0, i32 83
  %2876 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2875, i32 0, i32 4
  %2877 = load ptr, ptr %2876, align 8, !tbaa !27
  %2878 = load ptr, ptr %4, align 8, !tbaa !5
  %2879 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2878, i32 0, i32 85
  %2880 = load i64, ptr %2879, align 8, !tbaa !78
  %2881 = sub nsw i64 %2880, 1
  %2882 = getelementptr inbounds double, ptr %2877, i64 %2881
  store double %2873, ptr %2882, align 8, !tbaa !32
  %2883 = load ptr, ptr %4, align 8, !tbaa !5
  %2884 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2883, i32 0, i32 85
  %2885 = load i64, ptr %2884, align 8, !tbaa !78
  %2886 = load i64, ptr %7, align 8, !tbaa !28
  %2887 = icmp sle i64 %2885, %2886
  %2888 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2887, ptr noundef @.str.1577, ptr noundef %2888)
  store double 0.000000e+00, ptr %10, align 8, !tbaa !32
  store double 0.000000e+00, ptr %11, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %2889

2889:                                             ; preds = %2943, %2871
  %2890 = load i64, ptr %8, align 8, !tbaa !28
  %2891 = load i64, ptr %6, align 8, !tbaa !28
  %2892 = sub nsw i64 %2891, 1
  %2893 = icmp sle i64 %2890, %2892
  br i1 %2893, label %2894, label %2946

2894:                                             ; preds = %2889
  %2895 = load double, ptr %10, align 8, !tbaa !32
  %2896 = load ptr, ptr %4, align 8, !tbaa !5
  %2897 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2896, i32 0, i32 10
  %2898 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2897, i32 0, i32 2
  %2899 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2898, i32 0, i32 4
  %2900 = load ptr, ptr %2899, align 8, !tbaa !27
  %2901 = load i64, ptr %8, align 8, !tbaa !28
  %2902 = getelementptr inbounds double, ptr %2900, i64 %2901
  %2903 = load double, ptr %2902, align 8, !tbaa !32
  %2904 = load ptr, ptr %4, align 8, !tbaa !5
  %2905 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2904, i32 0, i32 31
  %2906 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2905, i32 0, i32 4
  %2907 = load ptr, ptr %2906, align 8, !tbaa !27
  %2908 = load i64, ptr %8, align 8, !tbaa !28
  %2909 = getelementptr inbounds double, ptr %2907, i64 %2908
  %2910 = load double, ptr %2909, align 8, !tbaa !32
  %2911 = fsub double %2903, %2910
  %2912 = load ptr, ptr %4, align 8, !tbaa !5
  %2913 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2912, i32 0, i32 11
  %2914 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2913, i32 0, i32 4
  %2915 = load ptr, ptr %2914, align 8, !tbaa !27
  %2916 = load i64, ptr %8, align 8, !tbaa !28
  %2917 = getelementptr inbounds double, ptr %2915, i64 %2916
  %2918 = load double, ptr %2917, align 8, !tbaa !32
  %2919 = fdiv double %2911, %2918
  %2920 = load ptr, ptr %5, align 8, !tbaa !5
  %2921 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2919, ptr noundef %2920)
  %2922 = fadd double %2895, %2921
  store double %2922, ptr %10, align 8, !tbaa !32
  %2923 = load double, ptr %11, align 8, !tbaa !32
  %2924 = load ptr, ptr %4, align 8, !tbaa !5
  %2925 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2924, i32 0, i32 10
  %2926 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2925, i32 0, i32 2
  %2927 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2926, i32 0, i32 4
  %2928 = load ptr, ptr %2927, align 8, !tbaa !27
  %2929 = load i64, ptr %8, align 8, !tbaa !28
  %2930 = getelementptr inbounds double, ptr %2928, i64 %2929
  %2931 = load double, ptr %2930, align 8, !tbaa !32
  %2932 = load ptr, ptr %4, align 8, !tbaa !5
  %2933 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2932, i32 0, i32 31
  %2934 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2933, i32 0, i32 4
  %2935 = load ptr, ptr %2934, align 8, !tbaa !27
  %2936 = load i64, ptr %8, align 8, !tbaa !28
  %2937 = getelementptr inbounds double, ptr %2935, i64 %2936
  %2938 = load double, ptr %2937, align 8, !tbaa !32
  %2939 = fsub double %2931, %2938
  %2940 = load ptr, ptr %5, align 8, !tbaa !5
  %2941 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2939, ptr noundef %2940)
  %2942 = fadd double %2923, %2941
  store double %2942, ptr %11, align 8, !tbaa !32
  br label %2943

2943:                                             ; preds = %2894
  %2944 = load i64, ptr %8, align 8, !tbaa !28
  %2945 = add nsw i64 %2944, 1
  store i64 %2945, ptr %8, align 8, !tbaa !28
  br label %2889, !llvm.loop !100

2946:                                             ; preds = %2889
  %2947 = load double, ptr %11, align 8, !tbaa !32
  %2948 = load ptr, ptr %5, align 8, !tbaa !5
  %2949 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2947, ptr noundef %2948)
  %2950 = load ptr, ptr %4, align 8, !tbaa !5
  %2951 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2950, i32 0, i32 39
  store double %2949, ptr %2951, align 8, !tbaa !61
  %2952 = load ptr, ptr %4, align 8, !tbaa !5
  %2953 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2952, i32 0, i32 40
  %2954 = load double, ptr %10, align 8, !tbaa !32
  %2955 = load ptr, ptr %5, align 8, !tbaa !5
  %2956 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2954, ptr noundef %2955)
  %2957 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL33minbleic_updateestimateofgoodstepEPddPNS_8ae_stateE(ptr noundef %2953, double noundef %2956, ptr noundef %2957)
  br label %2958

2958:                                             ; preds = %2946, %2697
  %2959 = load i64, ptr %14, align 8, !tbaa !28
  %2960 = icmp eq i64 %2959, 1
  br i1 %2960, label %2961, label %3049

2961:                                             ; preds = %2958
  %2962 = load ptr, ptr %4, align 8, !tbaa !5
  %2963 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2962, i32 0, i32 22
  %2964 = load i8, ptr %2963, align 4, !tbaa !34, !range !30, !noundef !31
  %2965 = trunc i8 %2964 to i1
  br i1 %2965, label %2966, label %3049

2966:                                             ; preds = %2961
  store double 0.000000e+00, ptr %10, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %2967

2967:                                             ; preds = %3001, %2966
  %2968 = load i64, ptr %8, align 8, !tbaa !28
  %2969 = load i64, ptr %6, align 8, !tbaa !28
  %2970 = sub nsw i64 %2969, 1
  %2971 = icmp sle i64 %2968, %2970
  br i1 %2971, label %2972, label %3004

2972:                                             ; preds = %2967
  %2973 = load double, ptr %10, align 8, !tbaa !32
  %2974 = load ptr, ptr %4, align 8, !tbaa !5
  %2975 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2974, i32 0, i32 10
  %2976 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2975, i32 0, i32 2
  %2977 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2976, i32 0, i32 4
  %2978 = load ptr, ptr %2977, align 8, !tbaa !27
  %2979 = load i64, ptr %8, align 8, !tbaa !28
  %2980 = getelementptr inbounds double, ptr %2978, i64 %2979
  %2981 = load double, ptr %2980, align 8, !tbaa !32
  %2982 = load ptr, ptr %4, align 8, !tbaa !5
  %2983 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2982, i32 0, i32 31
  %2984 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2983, i32 0, i32 4
  %2985 = load ptr, ptr %2984, align 8, !tbaa !27
  %2986 = load i64, ptr %8, align 8, !tbaa !28
  %2987 = getelementptr inbounds double, ptr %2985, i64 %2986
  %2988 = load double, ptr %2987, align 8, !tbaa !32
  %2989 = fsub double %2981, %2988
  %2990 = load ptr, ptr %4, align 8, !tbaa !5
  %2991 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2990, i32 0, i32 11
  %2992 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2991, i32 0, i32 4
  %2993 = load ptr, ptr %2992, align 8, !tbaa !27
  %2994 = load i64, ptr %8, align 8, !tbaa !28
  %2995 = getelementptr inbounds double, ptr %2993, i64 %2994
  %2996 = load double, ptr %2995, align 8, !tbaa !32
  %2997 = fdiv double %2989, %2996
  %2998 = load ptr, ptr %5, align 8, !tbaa !5
  %2999 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2997, ptr noundef %2998)
  %3000 = fadd double %2973, %2999
  store double %3000, ptr %10, align 8, !tbaa !32
  br label %3001

3001:                                             ; preds = %2972
  %3002 = load i64, ptr %8, align 8, !tbaa !28
  %3003 = add nsw i64 %3002, 1
  store i64 %3003, ptr %8, align 8, !tbaa !28
  br label %2967, !llvm.loop !101

3004:                                             ; preds = %2967
  %3005 = load double, ptr %10, align 8, !tbaa !32
  %3006 = load ptr, ptr %5, align 8, !tbaa !5
  %3007 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3005, ptr noundef %3006)
  store double %3007, ptr %10, align 8, !tbaa !32
  %3008 = load double, ptr %10, align 8, !tbaa !32
  %3009 = load ptr, ptr %4, align 8, !tbaa !5
  %3010 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3009, i32 0, i32 4
  %3011 = load double, ptr %3010, align 8, !tbaa !102
  %3012 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %3008, double noundef %3011)
  br i1 %3012, label %3013, label %3016

3013:                                             ; preds = %3004
  %3014 = load ptr, ptr %4, align 8, !tbaa !5
  %3015 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3014, i32 0, i32 50
  store i64 2, ptr %3015, align 8, !tbaa !36
  br label %3112

3016:                                             ; preds = %3004
  %3017 = load ptr, ptr %4, align 8, !tbaa !5
  %3018 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3017, i32 0, i32 34
  %3019 = load double, ptr %3018, align 8, !tbaa !97
  %3020 = load ptr, ptr %4, align 8, !tbaa !5
  %3021 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3020, i32 0, i32 32
  %3022 = load double, ptr %3021, align 8, !tbaa !67
  %3023 = fsub double %3019, %3022
  %3024 = load ptr, ptr %5, align 8, !tbaa !5
  %3025 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3023, ptr noundef %3024)
  %3026 = load ptr, ptr %4, align 8, !tbaa !5
  %3027 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3026, i32 0, i32 3
  %3028 = load double, ptr %3027, align 8, !tbaa !103
  %3029 = load ptr, ptr %4, align 8, !tbaa !5
  %3030 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3029, i32 0, i32 32
  %3031 = load double, ptr %3030, align 8, !tbaa !67
  %3032 = load ptr, ptr %5, align 8, !tbaa !5
  %3033 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3031, ptr noundef %3032)
  %3034 = load ptr, ptr %4, align 8, !tbaa !5
  %3035 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3034, i32 0, i32 34
  %3036 = load double, ptr %3035, align 8, !tbaa !97
  %3037 = load ptr, ptr %5, align 8, !tbaa !5
  %3038 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3036, ptr noundef %3037)
  %3039 = load ptr, ptr %5, align 8, !tbaa !5
  %3040 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3038, double noundef 1.000000e+00, ptr noundef %3039)
  %3041 = load ptr, ptr %5, align 8, !tbaa !5
  %3042 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3033, double noundef %3040, ptr noundef %3041)
  %3043 = fmul double %3028, %3042
  %3044 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %3025, double noundef %3043)
  br i1 %3044, label %3045, label %3048

3045:                                             ; preds = %3016
  %3046 = load ptr, ptr %4, align 8, !tbaa !5
  %3047 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3046, i32 0, i32 50
  store i64 1, ptr %3047, align 8, !tbaa !36
  br label %3112

3048:                                             ; preds = %3016
  br label %3049

3049:                                             ; preds = %3048, %2961, %2958
  %3050 = load ptr, ptr %4, align 8, !tbaa !5
  %3051 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3050, i32 0, i32 5
  %3052 = load i64, ptr %3051, align 8, !tbaa !104
  %3053 = icmp sgt i64 %3052, 0
  br i1 %3053, label %3054, label %3065

3054:                                             ; preds = %3049
  %3055 = load ptr, ptr %4, align 8, !tbaa !5
  %3056 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3055, i32 0, i32 46
  %3057 = load i64, ptr %3056, align 8, !tbaa !37
  %3058 = load ptr, ptr %4, align 8, !tbaa !5
  %3059 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3058, i32 0, i32 5
  %3060 = load i64, ptr %3059, align 8, !tbaa !104
  %3061 = icmp sge i64 %3057, %3060
  br i1 %3061, label %3062, label %3065

3062:                                             ; preds = %3054
  %3063 = load ptr, ptr %4, align 8, !tbaa !5
  %3064 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3063, i32 0, i32 50
  store i64 5, ptr %3064, align 8, !tbaa !36
  br label %3112

3065:                                             ; preds = %3054, %3049
  %3066 = load ptr, ptr %4, align 8, !tbaa !5
  %3067 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3066, i32 0, i32 22
  store i8 0, ptr %3067, align 4, !tbaa !34
  %3068 = load i64, ptr %15, align 8, !tbaa !28
  %3069 = icmp sge i64 %3068, 0
  br i1 %3069, label %3070, label %3073

3070:                                             ; preds = %3065
  %3071 = load ptr, ptr %4, align 8, !tbaa !5
  %3072 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3071, i32 0, i32 85
  store i64 0, ptr %3072, align 8, !tbaa !78
  br label %1293

3073:                                             ; preds = %3065
  store double 0.000000e+00, ptr %10, align 8, !tbaa !32
  store i64 0, ptr %8, align 8, !tbaa !28
  br label %3074

3074:                                             ; preds = %3099, %3073
  %3075 = load i64, ptr %8, align 8, !tbaa !28
  %3076 = load i64, ptr %6, align 8, !tbaa !28
  %3077 = sub nsw i64 %3076, 1
  %3078 = icmp sle i64 %3075, %3077
  br i1 %3078, label %3079, label %3102

3079:                                             ; preds = %3074
  %3080 = load double, ptr %10, align 8, !tbaa !32
  %3081 = load ptr, ptr %4, align 8, !tbaa !5
  %3082 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3081, i32 0, i32 27
  %3083 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3082, i32 0, i32 4
  %3084 = load ptr, ptr %3083, align 8, !tbaa !27
  %3085 = load i64, ptr %8, align 8, !tbaa !28
  %3086 = getelementptr inbounds double, ptr %3084, i64 %3085
  %3087 = load double, ptr %3086, align 8, !tbaa !32
  %3088 = load ptr, ptr %4, align 8, !tbaa !5
  %3089 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3088, i32 0, i32 11
  %3090 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3089, i32 0, i32 4
  %3091 = load ptr, ptr %3090, align 8, !tbaa !27
  %3092 = load i64, ptr %8, align 8, !tbaa !28
  %3093 = getelementptr inbounds double, ptr %3091, i64 %3092
  %3094 = load double, ptr %3093, align 8, !tbaa !32
  %3095 = fmul double %3087, %3094
  %3096 = load ptr, ptr %5, align 8, !tbaa !5
  %3097 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3095, ptr noundef %3096)
  %3098 = fadd double %3080, %3097
  store double %3098, ptr %10, align 8, !tbaa !32
  br label %3099

3099:                                             ; preds = %3079
  %3100 = load i64, ptr %8, align 8, !tbaa !28
  %3101 = add nsw i64 %3100, 1
  store i64 %3101, ptr %8, align 8, !tbaa !28
  br label %3074, !llvm.loop !105

3102:                                             ; preds = %3074
  %3103 = load double, ptr %10, align 8, !tbaa !32
  %3104 = load ptr, ptr %5, align 8, !tbaa !5
  %3105 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3103, ptr noundef %3104)
  %3106 = load double, ptr %19, align 8, !tbaa !32
  %3107 = load double, ptr %18, align 8, !tbaa !32
  %3108 = fmul double %3106, %3107
  %3109 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %3105, double noundef %3108)
  br i1 %3109, label %3110, label %3111

3110:                                             ; preds = %3102
  br label %3112

3111:                                             ; preds = %3102
  br label %1293

3112:                                             ; preds = %3110, %3062, %3045, %3013, %2870, %2589, %2582, %2579, %2456, %1525, %1317, %1298
  %3113 = load ptr, ptr %4, align 8, !tbaa !5
  %3114 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3113, i32 0, i32 24
  %3115 = load i8, ptr %3114, align 2, !tbaa !35, !range !30, !noundef !31
  %3116 = trunc i8 %3115 to i1
  br i1 %3116, label %3117, label %3120

3117:                                             ; preds = %3112
  %3118 = load ptr, ptr %4, align 8, !tbaa !5
  %3119 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3118, i32 0, i32 50
  store i64 8, ptr %3119, align 8, !tbaa !36
  br label %3133

3120:                                             ; preds = %3112
  %3121 = load ptr, ptr %4, align 8, !tbaa !5
  %3122 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3121, i32 0, i32 50
  %3123 = load i64, ptr %3122, align 8, !tbaa !36
  %3124 = icmp ne i64 %3123, 0
  br i1 %3124, label %3125, label %3126

3125:                                             ; preds = %3120
  br label %3133

3126:                                             ; preds = %3120
  %3127 = load double, ptr %19, align 8, !tbaa !32
  %3128 = load double, ptr @_ZN11alglib_implL24minbleic_decaycorrectionE, align 8, !tbaa !32
  %3129 = fmul double %3127, %3128
  %3130 = load double, ptr @_ZN11alglib_implL17minbleic_mindecayE, align 8, !tbaa !32
  %3131 = load ptr, ptr %5, align 8, !tbaa !5
  %3132 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3129, double noundef %3130, ptr noundef %3131)
  store double %3132, ptr %19, align 8, !tbaa !32
  br label %712

3133:                                             ; preds = %3125, %3117
  %3134 = load ptr, ptr %4, align 8, !tbaa !5
  %3135 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3134, i32 0, i32 10
  %3136 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %3135, ptr noundef %3136)
  %3137 = load ptr, ptr %4, align 8, !tbaa !5
  %3138 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3137, i32 0, i32 47
  store i64 1, ptr %3138, align 8, !tbaa !38
  store i8 0, ptr %20, align 1, !tbaa !29
  %3139 = load i8, ptr %20, align 1, !tbaa !29, !range !30, !noundef !31
  %3140 = trunc i8 %3139 to i1
  store i1 %3140, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3244

3141:                                             ; preds = %2672, %2173, %2160, %1995, %1967, %1938, %1915, %1813, %1798, %1635, %1097, %1084, %925, %897, %868, %845, %743, %734, %670, %638, %629, %464
  store i8 1, ptr %20, align 1, !tbaa !29
  %3142 = load i64, ptr %6, align 8, !tbaa !28
  %3143 = load ptr, ptr %4, align 8, !tbaa !5
  %3144 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3143, i32 0, i32 25
  %3145 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3144, i32 0, i32 1
  %3146 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3145, i32 0, i32 4
  %3147 = load ptr, ptr %3146, align 8, !tbaa !27
  %3148 = getelementptr inbounds i64, ptr %3147, i64 0
  store i64 %3142, ptr %3148, align 8, !tbaa !28
  %3149 = load i64, ptr %7, align 8, !tbaa !28
  %3150 = load ptr, ptr %4, align 8, !tbaa !5
  %3151 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3150, i32 0, i32 25
  %3152 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3151, i32 0, i32 1
  %3153 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3152, i32 0, i32 4
  %3154 = load ptr, ptr %3153, align 8, !tbaa !27
  %3155 = getelementptr inbounds i64, ptr %3154, i64 1
  store i64 %3149, ptr %3155, align 8, !tbaa !28
  %3156 = load i64, ptr %8, align 8, !tbaa !28
  %3157 = load ptr, ptr %4, align 8, !tbaa !5
  %3158 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3157, i32 0, i32 25
  %3159 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3158, i32 0, i32 1
  %3160 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3159, i32 0, i32 4
  %3161 = load ptr, ptr %3160, align 8, !tbaa !27
  %3162 = getelementptr inbounds i64, ptr %3161, i64 2
  store i64 %3156, ptr %3162, align 8, !tbaa !28
  %3163 = load i64, ptr %9, align 8, !tbaa !28
  %3164 = load ptr, ptr %4, align 8, !tbaa !5
  %3165 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3164, i32 0, i32 25
  %3166 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3165, i32 0, i32 1
  %3167 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3166, i32 0, i32 4
  %3168 = load ptr, ptr %3167, align 8, !tbaa !27
  %3169 = getelementptr inbounds i64, ptr %3168, i64 3
  store i64 %3163, ptr %3169, align 8, !tbaa !28
  %3170 = load i64, ptr %14, align 8, !tbaa !28
  %3171 = load ptr, ptr %4, align 8, !tbaa !5
  %3172 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3171, i32 0, i32 25
  %3173 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3172, i32 0, i32 1
  %3174 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3173, i32 0, i32 4
  %3175 = load ptr, ptr %3174, align 8, !tbaa !27
  %3176 = getelementptr inbounds i64, ptr %3175, i64 4
  store i64 %3170, ptr %3176, align 8, !tbaa !28
  %3177 = load i64, ptr %15, align 8, !tbaa !28
  %3178 = load ptr, ptr %4, align 8, !tbaa !5
  %3179 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3178, i32 0, i32 25
  %3180 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3179, i32 0, i32 1
  %3181 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3180, i32 0, i32 4
  %3182 = load ptr, ptr %3181, align 8, !tbaa !27
  %3183 = getelementptr inbounds i64, ptr %3182, i64 5
  store i64 %3177, ptr %3183, align 8, !tbaa !28
  %3184 = load i64, ptr %16, align 8, !tbaa !28
  %3185 = load ptr, ptr %4, align 8, !tbaa !5
  %3186 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3185, i32 0, i32 25
  %3187 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3186, i32 0, i32 1
  %3188 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3187, i32 0, i32 4
  %3189 = load ptr, ptr %3188, align 8, !tbaa !27
  %3190 = getelementptr inbounds i64, ptr %3189, i64 6
  store i64 %3184, ptr %3190, align 8, !tbaa !28
  %3191 = load i8, ptr %13, align 1, !tbaa !29, !range !30, !noundef !31
  %3192 = trunc i8 %3191 to i1
  %3193 = load ptr, ptr %4, align 8, !tbaa !5
  %3194 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3193, i32 0, i32 25
  %3195 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3194, i32 0, i32 2
  %3196 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3195, i32 0, i32 4
  %3197 = load ptr, ptr %3196, align 8, !tbaa !27
  %3198 = getelementptr inbounds i8, ptr %3197, i64 0
  %3199 = zext i1 %3192 to i8
  store i8 %3199, ptr %3198, align 1, !tbaa !29
  %3200 = load double, ptr %10, align 8, !tbaa !32
  %3201 = load ptr, ptr %4, align 8, !tbaa !5
  %3202 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3201, i32 0, i32 25
  %3203 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3202, i32 0, i32 3
  %3204 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3203, i32 0, i32 4
  %3205 = load ptr, ptr %3204, align 8, !tbaa !27
  %3206 = getelementptr inbounds double, ptr %3205, i64 0
  store double %3200, ptr %3206, align 8, !tbaa !32
  %3207 = load double, ptr %11, align 8, !tbaa !32
  %3208 = load ptr, ptr %4, align 8, !tbaa !5
  %3209 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3208, i32 0, i32 25
  %3210 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3209, i32 0, i32 3
  %3211 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3210, i32 0, i32 4
  %3212 = load ptr, ptr %3211, align 8, !tbaa !27
  %3213 = getelementptr inbounds double, ptr %3212, i64 1
  store double %3207, ptr %3213, align 8, !tbaa !32
  %3214 = load double, ptr %12, align 8, !tbaa !32
  %3215 = load ptr, ptr %4, align 8, !tbaa !5
  %3216 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3215, i32 0, i32 25
  %3217 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3216, i32 0, i32 3
  %3218 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3217, i32 0, i32 4
  %3219 = load ptr, ptr %3218, align 8, !tbaa !27
  %3220 = getelementptr inbounds double, ptr %3219, i64 2
  store double %3214, ptr %3220, align 8, !tbaa !32
  %3221 = load double, ptr %17, align 8, !tbaa !32
  %3222 = load ptr, ptr %4, align 8, !tbaa !5
  %3223 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3222, i32 0, i32 25
  %3224 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3223, i32 0, i32 3
  %3225 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3224, i32 0, i32 4
  %3226 = load ptr, ptr %3225, align 8, !tbaa !27
  %3227 = getelementptr inbounds double, ptr %3226, i64 3
  store double %3221, ptr %3227, align 8, !tbaa !32
  %3228 = load double, ptr %18, align 8, !tbaa !32
  %3229 = load ptr, ptr %4, align 8, !tbaa !5
  %3230 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3229, i32 0, i32 25
  %3231 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3230, i32 0, i32 3
  %3232 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3231, i32 0, i32 4
  %3233 = load ptr, ptr %3232, align 8, !tbaa !27
  %3234 = getelementptr inbounds double, ptr %3233, i64 4
  store double %3228, ptr %3234, align 8, !tbaa !32
  %3235 = load double, ptr %19, align 8, !tbaa !32
  %3236 = load ptr, ptr %4, align 8, !tbaa !5
  %3237 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3236, i32 0, i32 25
  %3238 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3237, i32 0, i32 3
  %3239 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3238, i32 0, i32 4
  %3240 = load ptr, ptr %3239, align 8, !tbaa !27
  %3241 = getelementptr inbounds double, ptr %3240, i64 5
  store double %3235, ptr %3241, align 8, !tbaa !32
  %3242 = load i8, ptr %20, align 1, !tbaa !29, !range !30, !noundef !31
  %3243 = trunc i8 %3242 to i1
  store i1 %3243, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3244

3244:                                             ; preds = %3141, %3133, %1280, %1267, %703, %582, %333
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  %3245 = load i1, ptr %3, align 1
  ret i1 %3245
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef, i64 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_impl9ae_v_adddEPdlPKdlld(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, double noundef) #1

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

declare void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 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_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL33minbleic_updateestimateofgoodstepEPddPNS_8ae_stateE(ptr noundef, double 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, !20, i64 4704}
!10 = !{!"_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, !14, i64 72, !15, i64 4416, !11, i64 4480, !15, i64 4488, !11, i64 4552, !15, i64 4560, !12, i64 4624, !15, i64 4632, !13, i64 4696, !13, i64 4697, !13, i64 4698, !13, i64 4699, !13, i64 4700, !13, i64 4701, !13, i64 4702, !19, i64 4704, !15, i64 4968, !15, i64 5032, !15, i64 5096, !15, i64 5160, !15, i64 5224, !15, i64 5288, !12, i64 5352, !12, i64 5360, !12, i64 5368, !15, i64 5376, !17, i64 5440, !11, i64 5520, !11, i64 5528, !12, i64 5536, !12, i64 5544, !12, i64 5552, !15, i64 5560, !15, i64 5624, !15, i64 5688, !15, i64 5752, !11, i64 5816, !11, i64 5824, !11, i64 5832, !11, i64 5840, !11, i64 5848, !12, i64 5856, !12, i64 5864, !12, i64 5872, !12, i64 5880, !11, i64 5888, !11, i64 5896, !15, i64 5904, !18, i64 5968, !12, i64 7608, !12, i64 7616, !12, i64 7624, !12, i64 7632, !12, i64 7640, !12, i64 7648, !12, i64 7656, !12, i64 7664, !12, i64 7672, !11, i64 7680, !12, i64 7688, !15, i64 7696, !15, i64 7760, !11, i64 7824, !11, i64 7832, !12, i64 7840, !12, i64 7848, !12, i64 7856, !15, i64 7864, !21, i64 7928, !12, i64 8120, !11, i64 8128, !17, i64 8136, !17, i64 8216, !15, i64 8296, !15, i64 8360, !11, i64 8424, !12, i64 8432, !11, i64 8440, !22, i64 8448, !15, i64 14152, !15, i64 14216}
!11 = !{!"long", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl10sactivesetE", !11, i64 0, !11, i64 8, !15, i64 16, !13, i64 80, !15, i64 88, !15, i64 152, !15, i64 216, !13, i64 280, !17, i64 288, !17, i64 368, !17, i64 448, !11, i64 528, !15, i64 536, !11, i64 600, !11, i64 608, !13, i64 616, !13, i64 617, !15, i64 624, !15, i64 688, !15, i64 752, !15, i64 816, !17, i64 880, !11, i64 960, !11, i64 968, !15, i64 976, !15, i64 1040, !15, i64 1104, !15, i64 1168, !15, i64 1232, !15, i64 1296, !18, i64 1360, !15, i64 3000, !15, i64 3064, !15, i64 3128, !17, i64 3192, !15, i64 3272, !15, i64 3336, !15, i64 3400, !17, i64 3464, !17, i64 3544, !15, i64 3624, !15, i64 3688, !15, i64 3752, !17, i64 3816, !15, i64 3896, !15, i64 3960, !15, i64 4024, !15, i64 4088, !15, i64 4152, !15, i64 4216, !15, i64 4280}
!15 = !{!"_ZTSN11alglib_impl9ae_vectorE", !11, i64 0, !11, i64 8, !13, i64 16, !16, i64 24, !7, i64 56}
!16 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !13, i64 32, !16, i64 40, !7, i64 72}
!18 = !{!"_ZTSN11alglib_impl11snnlssolverE", !11, i64 0, !11, i64 8, !11, i64 16, !17, i64 24, !15, i64 104, !15, i64 168, !12, i64 232, !11, i64 240, !15, i64 248, !15, i64 312, !17, i64 376, !17, i64 456, !17, i64 536, !15, i64 616, !15, i64 680, !15, i64 744, !15, i64 808, !15, i64 872, !15, i64 936, !15, i64 1000, !15, i64 1064, !15, i64 1128, !15, i64 1192, !15, i64 1256, !15, i64 1320, !15, i64 1384, !15, i64 1448, !15, i64 1512, !15, i64 1576}
!19 = !{!"_ZTSN11alglib_impl10rcommstateE", !20, i64 0, !15, i64 8, !15, i64 72, !15, i64 136, !15, i64 200}
!20 = !{!"int", !7, i64 0}
!21 = !{!"_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}
!22 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !11, i64 0, !11, i64 8, !13, i64 16, !15, i64 24, !15, i64 88, !11, i64 152, !15, i64 160, !15, i64 224, !15, i64 288, !17, i64 352, !15, i64 432, !15, i64 496, !11, i64 560, !11, i64 568, !11, i64 576, !12, i64 584, !11, i64 592, !15, i64 600, !15, i64 664, !12, i64 728, !15, i64 736, !15, i64 800, !12, i64 864, !17, i64 872, !17, i64 952, !17, i64 1032, !15, i64 1112, !15, i64 1176, !19, i64 1240, !13, i64 1504, !13, i64 1505, !11, i64 1512, !11, i64 1520, !12, i64 1528, !12, i64 1536, !13, i64 1544, !23, i64 1552, !12, i64 1848, !12, i64 1856, !24, i64 1864, !24, i64 2184, !12, i64 2504, !12, i64 2512, !25, i64 2520, !25, i64 2840, !12, i64 3160, !12, i64 3168, !26, i64 3176, !26, i64 3504, !13, i64 3832, !15, i64 3840, !15, i64 3904, !17, i64 3968, !19, i64 4048, !15, i64 4312, !15, i64 4376, !15, i64 4440, !15, i64 4504, !15, i64 4568, !15, i64 4632, !15, i64 4696, !15, i64 4760, !17, i64 4824, !17, i64 4904, !15, i64 4984, !15, i64 5048, !15, i64 5112, !15, i64 5176, !15, i64 5240, !15, i64 5304, !15, i64 5368, !15, i64 5432, !15, i64 5496, !15, i64 5560, !17, i64 5624}
!23 = !{!"_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, !15, i64 72, !17, i64 136, !17, i64 216}
!24 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !13, i64 0, !11, i64 8, !15, i64 16, !15, i64 80, !11, i64 144, !15, i64 152, !15, i64 216, !11, i64 280, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312}
!25 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !13, i64 0, !11, i64 8, !15, i64 16, !15, i64 80, !11, i64 144, !15, i64 152, !15, i64 216, !11, i64 280, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312}
!26 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !13, i64 0, !11, i64 8, !11, i64 16, !15, i64 24, !15, i64 88, !11, i64 152, !15, i64 160, !15, i64 224, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312, !11, i64 320}
!27 = !{!7, !7, i64 0}
!28 = !{!11, !11, i64 0}
!29 = !{!13, !13, i64 0}
!30 = !{i8 0, i8 2}
!31 = !{}
!32 = !{!12, !12, i64 0}
!33 = !{!10, !11, i64 0}
!34 = !{!10, !13, i64 4700}
!35 = !{!10, !13, i64 4702}
!36 = !{!10, !11, i64 5848}
!37 = !{!10, !11, i64 5816}
!38 = !{!10, !11, i64 5824}
!39 = !{!10, !11, i64 5832}
!40 = !{!10, !11, i64 5840}
!41 = !{!10, !12, i64 5856}
!42 = !{!43, !12, i64 8}
!43 = !{!"_ZTSN11alglib_impl8ae_stateE", !11, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !6, i64 32, !16, i64 40, !6, i64 72, !44, i64 80, !6, i64 88, !45, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!44 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !7, i64 0}
!45 = !{!"long long", !7, i64 0}
!46 = !{!10, !12, i64 5864}
!47 = !{!10, !12, i64 5872}
!48 = !{!10, !12, i64 5880}
!49 = !{!10, !12, i64 56}
!50 = !{!10, !11, i64 4480}
!51 = !{!10, !11, i64 8440}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = !{!10, !12, i64 64}
!55 = !{!10, !12, i64 8432}
!56 = distinct !{!56, !53}
!57 = !{!10, !13, i64 4697}
!58 = !{!10, !12, i64 4624}
!59 = distinct !{!59, !53}
!60 = distinct !{!60, !53}
!61 = !{!10, !12, i64 5536}
!62 = !{!10, !12, i64 5544}
!63 = !{!10, !12, i64 5552}
!64 = !{!10, !11, i64 5528}
!65 = !{!10, !11, i64 8128}
!66 = !{!10, !13, i64 4696}
!67 = !{!10, !12, i64 5352}
!68 = !{!10, !13, i64 48}
!69 = !{!10, !13, i64 4698}
!70 = !{!10, !12, i64 7608}
!71 = !{!10, !12, i64 7616}
!72 = !{!10, !12, i64 7624}
!73 = !{!10, !12, i64 7632}
!74 = !{!10, !12, i64 7640}
!75 = !{!10, !12, i64 7648}
!76 = !{!10, !12, i64 7656}
!77 = distinct !{!77, !53}
!78 = !{!10, !11, i64 8424}
!79 = !{!10, !12, i64 16}
!80 = distinct !{!80, !53}
!81 = distinct !{!81, !53}
!82 = distinct !{!82, !53}
!83 = !{!10, !12, i64 7840}
!84 = !{!10, !12, i64 7848}
!85 = !{!10, !12, i64 7856}
!86 = !{!10, !11, i64 7680}
!87 = !{!10, !12, i64 7688}
!88 = !{!10, !13, i64 49}
!89 = !{!10, !13, i64 4699}
!90 = !{!10, !13, i64 4701}
!91 = !{!10, !12, i64 5360}
!92 = !{!10, !11, i64 7832}
!93 = distinct !{!93, !53}
!94 = !{!10, !12, i64 8120}
!95 = distinct !{!95, !53}
!96 = distinct !{!96, !53}
!97 = !{!10, !12, i64 5368}
!98 = distinct !{!98, !53}
!99 = distinct !{!99, !53}
!100 = distinct !{!100, !53}
!101 = distinct !{!101, !53}
!102 = !{!10, !12, i64 32}
!103 = !{!10, !12, i64 24}
!104 = !{!10, !11, i64 40}
!105 = distinct !{!105, !53}


; 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"

@_ZN11alglib_implL21minbleic_initialdecayE = external hidden local_unnamed_addr global double, align 8
@.str.1577 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZN11alglib_implL13minbleic_gtolE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL22minbleic_penaltyfactorE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL27minbleic_maxnonmonotoniclenE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL24minbleic_decaycorrectionE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL17minbleic_mindecayE = external hidden local_unnamed_addr global double, align 8

; 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
define dso_local noundef zeroext i1 @_ZN11alglib_impl17minbleiciterationEPNS_13minbleicstateEPNS_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 4704
  %6 = load i32, ptr %5, align 8, !tbaa !5
  %7 = icmp sgt i32 %6, -1
  br i1 %7, label %8, label %40

8:                                                ; preds = %2
  %9 = getelementptr inbounds i8, ptr %0, i64 4768
  %10 = load ptr, ptr %9, align 8, !tbaa !26
  %11 = load i64, ptr %10, align 8, !tbaa !27
  %12 = getelementptr inbounds i8, ptr %10, i64 8
  %13 = load i64, ptr %12, align 8, !tbaa !27
  %14 = getelementptr inbounds i8, ptr %10, i64 16
  %15 = load i64, ptr %14, align 8, !tbaa !27
  %16 = getelementptr inbounds i8, ptr %10, i64 24
  %17 = load i64, ptr %16, align 8, !tbaa !27
  %18 = getelementptr inbounds i8, ptr %10, i64 32
  %19 = load i64, ptr %18, align 8, !tbaa !27
  %20 = getelementptr inbounds i8, ptr %10, i64 40
  %21 = load i64, ptr %20, align 8, !tbaa !27
  %22 = getelementptr inbounds i8, ptr %10, i64 48
  %23 = load i64, ptr %22, align 8, !tbaa !27
  %24 = getelementptr inbounds i8, ptr %0, i64 4832
  %25 = load ptr, ptr %24, align 8, !tbaa !26
  %26 = load i8, ptr %25, align 1, !tbaa !28, !range !29, !noundef !30
  %27 = getelementptr inbounds i8, ptr %0, i64 4896
  %28 = load ptr, ptr %27, align 8, !tbaa !26
  %29 = load double, ptr %28, align 8, !tbaa !31
  %30 = getelementptr inbounds i8, ptr %28, i64 8
  %31 = load double, ptr %30, align 8, !tbaa !31
  %32 = getelementptr inbounds i8, ptr %28, i64 16
  %33 = load double, ptr %32, align 8, !tbaa !31
  %34 = getelementptr inbounds i8, ptr %28, i64 24
  %35 = load double, ptr %34, align 8, !tbaa !31
  %36 = getelementptr inbounds i8, ptr %28, i64 32
  %37 = load double, ptr %36, align 8, !tbaa !31
  %38 = getelementptr inbounds i8, ptr %28, i64 40
  %39 = load double, ptr %38, align 8, !tbaa !31
  br label %40

40:                                               ; preds = %2, %8
  %.sink1272 = phi i64 [ %19, %8 ], [ 81, %2 ]
  %41 = phi double [ %35, %8 ], [ 9.390000e+02, %2 ]
  %.01037 = phi i64 [ %11, %8 ], [ 359, %2 ]
  %.01033 = phi i64 [ %13, %8 ], [ -58, %2 ]
  %.01014 = phi i64 [ %15, %8 ], [ -919, %2 ]
  %.01013 = phi i64 [ %17, %8 ], [ -909, %2 ]
  %.0999 = phi double [ %29, %8 ], [ 8.090000e+02, %2 ]
  %.0987 = phi double [ %31, %8 ], [ 2.050000e+02, %2 ]
  %.0986 = phi double [ %33, %8 ], [ -8.380000e+02, %2 ]
  %.0977 = phi i8 [ %26, %8 ], [ 0, %2 ]
  %.0969 = phi i64 [ %21, %8 ], [ 255, %2 ]
  %.0961 = phi i64 [ %23, %8 ], [ 74, %2 ]
  %.0956 = phi double [ %37, %8 ], [ -5.260000e+02, %2 ]
  %.0 = phi double [ %39, %8 ], [ 7.630000e+02, %2 ]
  store i64 %.sink1272, ptr %3, align 8
  store double %41, ptr %4, align 8
  switch i32 %6, label %42 [
    i32 0, label %173
    i32 1, label %246
    i32 2, label %250
    i32 3, label %272
    i32 4, label %293
    i32 5, label %297
    i32 6, label %362
    i32 7, label %377
    i32 8, label %392
    i32 9, label %406
    i32 10, label %475
    i32 11, label %484
    i32 12, label %706
    i32 13, label %790
    i32 14, label %797
    i32 15, label %862
    i32 16, label %877
    i32 17, label %892
    i32 18, label %906
    i32 19, label %975
    i32 20, label %984
    i32 21, label %1220
  ]

42:                                               ; preds = %40
  %43 = load i64, ptr %0, align 8, !tbaa !32
  %44 = tail call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef 5, i64 noundef %43, ptr noundef %1)
  %45 = load double, ptr @_ZN11alglib_implL21minbleic_initialdecayE, align 8, !tbaa !31
  %46 = load i64, ptr %0, align 8, !tbaa !32
  %47 = getelementptr inbounds i8, ptr %0, i64 4700
  store i8 0, ptr %47, align 4, !tbaa !33
  %48 = getelementptr inbounds i8, ptr %0, i64 4702
  store i8 0, ptr %48, align 2, !tbaa !34
  %49 = getelementptr inbounds i8, ptr %0, i64 5848
  store i64 0, ptr %49, align 8, !tbaa !35
  %50 = getelementptr inbounds i8, ptr %0, i64 5816
  %51 = getelementptr inbounds i8, ptr %0, i64 5840
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %50, i8 0, i64 24, i1 false)
  store i64 -1, ptr %51, align 8, !tbaa !36
  %52 = getelementptr inbounds i8, ptr %0, i64 5856
  store double 0.000000e+00, ptr %52, align 8, !tbaa !37
  %53 = getelementptr inbounds i8, ptr %1, i64 8
  %54 = load double, ptr %53, align 8, !tbaa !38
  %55 = getelementptr inbounds i8, ptr %0, i64 5864
  store double %54, ptr %55, align 8, !tbaa !42
  %56 = getelementptr inbounds i8, ptr %0, i64 5872
  store double %54, ptr %56, align 8, !tbaa !43
  %57 = getelementptr inbounds i8, ptr %0, i64 5880
  store double %54, ptr %57, align 8, !tbaa !44
  %58 = getelementptr inbounds i8, ptr %0, i64 56
  %59 = load double, ptr %58, align 8, !tbaa !45
  %60 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %59, double noundef 0.000000e+00)
  br i1 %60, label %61, label %65

61:                                               ; preds = %42
  %62 = getelementptr inbounds i8, ptr %0, i64 4480
  %63 = load i64, ptr %62, align 8, !tbaa !46
  %.not = icmp eq i64 %63, 0
  br i1 %.not, label %65, label %64

64:                                               ; preds = %61
  store i64 -10, ptr %49, align 8, !tbaa !35
  br label %1464

65:                                               ; preds = %61, %42
  %66 = getelementptr inbounds i8, ptr %0, i64 8136
  %67 = add nsw i64 %44, 1
  tail call void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %66, i64 noundef %67, i64 noundef %46, ptr noundef nonnull %1)
  %68 = getelementptr inbounds i8, ptr %0, i64 8216
  tail call void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %68, i64 noundef %67, i64 noundef %46, ptr noundef nonnull %1)
  %69 = getelementptr inbounds i8, ptr %0, i64 8296
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %69, i64 noundef %44, ptr noundef nonnull %1)
  %70 = getelementptr inbounds i8, ptr %0, i64 8360
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %70, i64 noundef %44, ptr noundef nonnull %1)
  %71 = getelementptr inbounds i8, ptr %0, i64 7760
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %71, i64 noundef %46, ptr noundef nonnull %1)
  %72 = getelementptr inbounds i8, ptr %0, i64 8448
  %73 = getelementptr inbounds i8, ptr %0, i64 4416
  %74 = getelementptr inbounds i8, ptr %0, i64 8440
  %75 = load i64, ptr %74, align 8, !tbaa !47
  %76 = icmp sgt i64 %75, 0
  tail call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEPKNS_9ae_vectorEllbPNS_8ae_stateE(ptr noundef nonnull %72, ptr noundef nonnull %73, i64 noundef %46, i64 noundef 1, i1 noundef zeroext %76, ptr noundef nonnull %1)
  %.not1049.not1207 = icmp sgt i64 %46, 0
  br i1 %.not1049.not1207, label %.lr.ph1210, label %._crit_edge1211

.lr.ph1210:                                       ; preds = %65
  %77 = getelementptr inbounds i8, ptr %0, i64 4472
  %78 = getelementptr inbounds i8, ptr %0, i64 14208
  %79 = getelementptr inbounds i8, ptr %0, i64 14272
  %xtraiter1379 = and i64 %46, 1
  %80 = icmp eq i64 %46, 1
  br i1 %80, label %._crit_edge1211.loopexit.unr-lcssa, label %.lr.ph1210.new

.lr.ph1210.new:                                   ; preds = %.lr.ph1210
  %unroll_iter1382 = and i64 %46, 9223372036854775806
  br label %81

81:                                               ; preds = %81, %.lr.ph1210.new
  %.110151208 = phi i64 [ 0, %.lr.ph1210.new ], [ %105, %81 ]
  %niter1383 = phi i64 [ 0, %.lr.ph1210.new ], [ %niter1383.next.1, %81 ]
  %82 = load ptr, ptr %77, align 8, !tbaa !26
  %83 = getelementptr inbounds double, ptr %82, i64 %.110151208
  %84 = load double, ptr %83, align 8, !tbaa !31
  %85 = load ptr, ptr %78, align 8, !tbaa !26
  %86 = getelementptr inbounds double, ptr %85, i64 %.110151208
  store double %84, ptr %86, align 8, !tbaa !31
  %87 = load ptr, ptr %77, align 8, !tbaa !26
  %88 = getelementptr inbounds double, ptr %87, i64 %.110151208
  %89 = load double, ptr %88, align 8, !tbaa !31
  %90 = fdiv double 1.000000e+00, %89
  %91 = load ptr, ptr %79, align 8, !tbaa !26
  %92 = getelementptr inbounds double, ptr %91, i64 %.110151208
  store double %90, ptr %92, align 8, !tbaa !31
  %93 = or disjoint i64 %.110151208, 1
  %94 = load ptr, ptr %77, align 8, !tbaa !26
  %95 = getelementptr inbounds double, ptr %94, i64 %93
  %96 = load double, ptr %95, align 8, !tbaa !31
  %97 = load ptr, ptr %78, align 8, !tbaa !26
  %98 = getelementptr inbounds double, ptr %97, i64 %93
  store double %96, ptr %98, align 8, !tbaa !31
  %99 = load ptr, ptr %77, align 8, !tbaa !26
  %100 = getelementptr inbounds double, ptr %99, i64 %93
  %101 = load double, ptr %100, align 8, !tbaa !31
  %102 = fdiv double 1.000000e+00, %101
  %103 = load ptr, ptr %79, align 8, !tbaa !26
  %104 = getelementptr inbounds double, ptr %103, i64 %93
  store double %102, ptr %104, align 8, !tbaa !31
  %105 = add nuw nsw i64 %.110151208, 2
  %niter1383.next.1 = add i64 %niter1383, 2
  %niter1383.ncmp.1 = icmp eq i64 %niter1383.next.1, %unroll_iter1382
  br i1 %niter1383.ncmp.1, label %._crit_edge1211.loopexit.unr-lcssa, label %81, !llvm.loop !48

._crit_edge1211.loopexit.unr-lcssa:               ; preds = %81, %.lr.ph1210
  %.110151208.unr = phi i64 [ 0, %.lr.ph1210 ], [ %105, %81 ]
  %lcmp.mod1381.not = icmp eq i64 %xtraiter1379, 0
  br i1 %lcmp.mod1381.not, label %._crit_edge1211, label %._crit_edge1211.loopexit.epilog-lcssa

._crit_edge1211.loopexit.epilog-lcssa:            ; preds = %._crit_edge1211.loopexit.unr-lcssa
  %106 = load ptr, ptr %77, align 8, !tbaa !26
  %107 = getelementptr inbounds double, ptr %106, i64 %.110151208.unr
  %108 = load double, ptr %107, align 8, !tbaa !31
  %109 = load ptr, ptr %78, align 8, !tbaa !26
  %110 = getelementptr inbounds double, ptr %109, i64 %.110151208.unr
  store double %108, ptr %110, align 8, !tbaa !31
  %111 = load ptr, ptr %77, align 8, !tbaa !26
  %112 = getelementptr inbounds double, ptr %111, i64 %.110151208.unr
  %113 = load double, ptr %112, align 8, !tbaa !31
  %114 = fdiv double 1.000000e+00, %113
  %115 = load ptr, ptr %79, align 8, !tbaa !26
  %116 = getelementptr inbounds double, ptr %115, i64 %.110151208.unr
  store double %114, ptr %116, align 8, !tbaa !31
  br label %._crit_edge1211

._crit_edge1211:                                  ; preds = %._crit_edge1211.loopexit.epilog-lcssa, %._crit_edge1211.loopexit.unr-lcssa, %65
  tail call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %117 = getelementptr inbounds i8, ptr %0, i64 64
  %118 = load double, ptr %117, align 8, !tbaa !50
  %119 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %118, double noundef 0.000000e+00)
  br i1 %119, label %120, label %197

120:                                              ; preds = %._crit_edge1211
  %121 = getelementptr inbounds i8, ptr %0, i64 8432
  %122 = load double, ptr %121, align 8, !tbaa !51
  %123 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %122, double noundef 0.000000e+00)
  br i1 %123, label %.loopexit, label %197

.loopexit.loopexit.unr-lcssa:                     ; preds = %182, %.lr.ph1206
  %.310171204.unr = phi i64 [ 0, %.lr.ph1206 ], [ %196, %182 ]
  %lcmp.mod1375.not = icmp eq i64 %xtraiter1373, 0
  br i1 %lcmp.mod1375.not, label %.loopexit, label %.loopexit.loopexit.epilog-lcssa

.loopexit.loopexit.epilog-lcssa:                  ; preds = %.loopexit.loopexit.unr-lcssa
  %124 = load ptr, ptr %179, align 8, !tbaa !26
  %125 = getelementptr inbounds double, ptr %124, i64 %.310171204.unr
  %126 = load double, ptr %125, align 8, !tbaa !31
  %127 = load ptr, ptr %180, align 8, !tbaa !26
  %128 = load ptr, ptr %127, align 8, !tbaa !52
  %129 = getelementptr inbounds double, ptr %128, i64 %.310171204.unr
  store double %126, ptr %129, align 8, !tbaa !31
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit.epilog-lcssa, %.loopexit.loopexit.unr-lcssa, %173, %120
  %.11038 = phi i64 [ %46, %120 ], [ %.01037, %173 ], [ %.01037, %.loopexit.loopexit.unr-lcssa ], [ %.01037, %.loopexit.loopexit.epilog-lcssa ]
  %.11034 = phi i64 [ %44, %120 ], [ %.01033, %173 ], [ %.01033, %.loopexit.loopexit.unr-lcssa ], [ %.01033, %.loopexit.loopexit.epilog-lcssa ]
  %.1 = phi double [ %45, %120 ], [ %.0, %173 ], [ %.0, %.loopexit.loopexit.unr-lcssa ], [ %.0, %.loopexit.loopexit.epilog-lcssa ]
  %130 = getelementptr inbounds i8, ptr %0, i64 8448
  %131 = getelementptr inbounds i8, ptr %0, i64 5904
  %132 = getelementptr inbounds i8, ptr %0, i64 4416
  %133 = getelementptr inbounds i8, ptr %0, i64 5688
  %134 = getelementptr inbounds i8, ptr %0, i64 5752
  %135 = getelementptr inbounds i8, ptr %0, i64 8432
  %136 = load double, ptr %135, align 8, !tbaa !51
  %137 = tail call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_S4_bdPNS_8ae_stateE(ptr noundef nonnull %130, ptr noundef nonnull %131, ptr noundef nonnull %132, ptr noundef nonnull %133, ptr noundef nonnull %134, i1 noundef zeroext true, double noundef %136, ptr noundef %1)
  br i1 %137, label %.preheader, label %197

.preheader:                                       ; preds = %.loopexit
  %.not1068.not1218 = icmp sgt i64 %.11038, 0
  br i1 %.not1068.not1218, label %.lr.ph1220, label %._crit_edge1221

.lr.ph1220:                                       ; preds = %.preheader
  %138 = getelementptr inbounds i8, ptr %0, i64 12344
  %139 = getelementptr inbounds i8, ptr %0, i64 4616
  %xtraiter1385 = and i64 %.11038, 3
  %140 = icmp ult i64 %.11038, 4
  br i1 %140, label %._crit_edge1221.loopexit.unr-lcssa, label %.lr.ph1220.new

.lr.ph1220.new:                                   ; preds = %.lr.ph1220
  %unroll_iter1388 = and i64 %.11038, 9223372036854775804
  br label %141

141:                                              ; preds = %141, %.lr.ph1220.new
  %.210161219 = phi i64 [ 0, %.lr.ph1220.new ], [ %165, %141 ]
  %niter1389 = phi i64 [ 0, %.lr.ph1220.new ], [ %niter1389.next.3, %141 ]
  %142 = load ptr, ptr %138, align 8, !tbaa !26
  %143 = getelementptr inbounds double, ptr %142, i64 %.210161219
  %144 = load double, ptr %143, align 8, !tbaa !31
  %145 = load ptr, ptr %139, align 8, !tbaa !26
  %146 = getelementptr inbounds double, ptr %145, i64 %.210161219
  store double %144, ptr %146, align 8, !tbaa !31
  %147 = or disjoint i64 %.210161219, 1
  %148 = load ptr, ptr %138, align 8, !tbaa !26
  %149 = getelementptr inbounds double, ptr %148, i64 %147
  %150 = load double, ptr %149, align 8, !tbaa !31
  %151 = load ptr, ptr %139, align 8, !tbaa !26
  %152 = getelementptr inbounds double, ptr %151, i64 %147
  store double %150, ptr %152, align 8, !tbaa !31
  %153 = or disjoint i64 %.210161219, 2
  %154 = load ptr, ptr %138, align 8, !tbaa !26
  %155 = getelementptr inbounds double, ptr %154, i64 %153
  %156 = load double, ptr %155, align 8, !tbaa !31
  %157 = load ptr, ptr %139, align 8, !tbaa !26
  %158 = getelementptr inbounds double, ptr %157, i64 %153
  store double %156, ptr %158, align 8, !tbaa !31
  %159 = or disjoint i64 %.210161219, 3
  %160 = load ptr, ptr %138, align 8, !tbaa !26
  %161 = getelementptr inbounds double, ptr %160, i64 %159
  %162 = load double, ptr %161, align 8, !tbaa !31
  %163 = load ptr, ptr %139, align 8, !tbaa !26
  %164 = getelementptr inbounds double, ptr %163, i64 %159
  store double %162, ptr %164, align 8, !tbaa !31
  %165 = add nuw nsw i64 %.210161219, 4
  %niter1389.next.3 = add i64 %niter1389, 4
  %niter1389.ncmp.3 = icmp eq i64 %niter1389.next.3, %unroll_iter1388
  br i1 %niter1389.ncmp.3, label %._crit_edge1221.loopexit.unr-lcssa, label %141, !llvm.loop !53

._crit_edge1221.loopexit.unr-lcssa:               ; preds = %141, %.lr.ph1220
  %.210161219.unr = phi i64 [ 0, %.lr.ph1220 ], [ %165, %141 ]
  %lcmp.mod1387.not = icmp eq i64 %xtraiter1385, 0
  br i1 %lcmp.mod1387.not, label %._crit_edge1221, label %.epil.preheader1384

.epil.preheader1384:                              ; preds = %._crit_edge1221.loopexit.unr-lcssa, %.epil.preheader1384
  %.210161219.epil = phi i64 [ %171, %.epil.preheader1384 ], [ %.210161219.unr, %._crit_edge1221.loopexit.unr-lcssa ]
  %epil.iter1386 = phi i64 [ %epil.iter1386.next, %.epil.preheader1384 ], [ 0, %._crit_edge1221.loopexit.unr-lcssa ]
  %166 = load ptr, ptr %138, align 8, !tbaa !26
  %167 = getelementptr inbounds double, ptr %166, i64 %.210161219.epil
  %168 = load double, ptr %167, align 8, !tbaa !31
  %169 = load ptr, ptr %139, align 8, !tbaa !26
  %170 = getelementptr inbounds double, ptr %169, i64 %.210161219.epil
  store double %168, ptr %170, align 8, !tbaa !31
  %171 = add nuw nsw i64 %.210161219.epil, 1
  %epil.iter1386.next = add i64 %epil.iter1386, 1
  %epil.iter1386.cmp.not = icmp eq i64 %epil.iter1386.next, %xtraiter1385
  br i1 %epil.iter1386.cmp.not, label %._crit_edge1221, label %.epil.preheader1384, !llvm.loop !54

._crit_edge1221:                                  ; preds = %._crit_edge1221.loopexit.unr-lcssa, %.epil.preheader1384, %.preheader
  %.21016.lcssa = phi i64 [ 0, %.preheader ], [ %.11038, %.epil.preheader1384 ], [ %.11038, %._crit_edge1221.loopexit.unr-lcssa ]
  %172 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 1, ptr %172, align 1, !tbaa !56
  br label %1432

173:                                              ; preds = %40
  %174 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 0, ptr %174, align 1, !tbaa !56
  %175 = getelementptr inbounds i8, ptr %0, i64 4624
  %176 = load double, ptr %175, align 8, !tbaa !57
  %177 = getelementptr inbounds i8, ptr %0, i64 12408
  %178 = load ptr, ptr %177, align 8, !tbaa !26
  store double %176, ptr %178, align 8, !tbaa !31
  %.not1066.not1203 = icmp sgt i64 %.01037, 0
  br i1 %.not1066.not1203, label %.lr.ph1206, label %.loopexit

.lr.ph1206:                                       ; preds = %173
  %179 = getelementptr inbounds i8, ptr %0, i64 4688
  %180 = getelementptr inbounds i8, ptr %0, i64 12488
  %xtraiter1373 = and i64 %.01037, 1
  %181 = icmp eq i64 %.01037, 1
  br i1 %181, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph1206.new

.lr.ph1206.new:                                   ; preds = %.lr.ph1206
  %unroll_iter1376 = and i64 %.01037, 9223372036854775806
  br label %182

182:                                              ; preds = %182, %.lr.ph1206.new
  %.310171204 = phi i64 [ 0, %.lr.ph1206.new ], [ %196, %182 ]
  %niter1377 = phi i64 [ 0, %.lr.ph1206.new ], [ %niter1377.next.1, %182 ]
  %183 = load ptr, ptr %179, align 8, !tbaa !26
  %184 = getelementptr inbounds double, ptr %183, i64 %.310171204
  %185 = load double, ptr %184, align 8, !tbaa !31
  %186 = load ptr, ptr %180, align 8, !tbaa !26
  %187 = load ptr, ptr %186, align 8, !tbaa !52
  %188 = getelementptr inbounds double, ptr %187, i64 %.310171204
  store double %185, ptr %188, align 8, !tbaa !31
  %189 = or disjoint i64 %.310171204, 1
  %190 = load ptr, ptr %179, align 8, !tbaa !26
  %191 = getelementptr inbounds double, ptr %190, i64 %189
  %192 = load double, ptr %191, align 8, !tbaa !31
  %193 = load ptr, ptr %180, align 8, !tbaa !26
  %194 = load ptr, ptr %193, align 8, !tbaa !52
  %195 = getelementptr inbounds double, ptr %194, i64 %189
  store double %192, ptr %195, align 8, !tbaa !31
  %196 = add nuw nsw i64 %.310171204, 2
  %niter1377.next.1 = add i64 %niter1377, 2
  %niter1377.ncmp.1 = icmp eq i64 %niter1377.next.1, %unroll_iter1376
  br i1 %niter1377.ncmp.1, label %.loopexit.loopexit.unr-lcssa, label %182, !llvm.loop !58

197:                                              ; preds = %.loopexit, %._crit_edge1211, %120
  %.21039 = phi i64 [ %.11038, %.loopexit ], [ %46, %120 ], [ %46, %._crit_edge1211 ]
  %.21035 = phi i64 [ %.11034, %.loopexit ], [ %44, %120 ], [ %44, %._crit_edge1211 ]
  %.2 = phi double [ %.1, %.loopexit ], [ %45, %120 ], [ %45, %._crit_edge1211 ]
  %198 = getelementptr inbounds i8, ptr %0, i64 7696
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %198, i64 noundef %.21039, ptr noundef %1)
  %.not1067.not1212 = icmp sgt i64 %.21039, 0
  br i1 %.not1067.not1212, label %.lr.ph1215, label %._crit_edge1216

.lr.ph1215:                                       ; preds = %197
  %199 = getelementptr inbounds i8, ptr %0, i64 4480
  %200 = getelementptr inbounds i8, ptr %0, i64 4472
  %201 = getelementptr inbounds i8, ptr %0, i64 7752
  %202 = getelementptr inbounds i8, ptr %0, i64 4544
  br label %203

203:                                              ; preds = %.lr.ph1215, %215
  %.410181213 = phi i64 [ 0, %.lr.ph1215 ], [ %218, %215 ]
  %204 = load i64, ptr %199, align 8, !tbaa !46
  switch i64 %204, label %215 [
    i64 2, label %205
    i64 3, label %209
  ]

205:                                              ; preds = %203
  %206 = load ptr, ptr %202, align 8, !tbaa !26
  %207 = getelementptr inbounds double, ptr %206, i64 %.410181213
  %208 = load double, ptr %207, align 8, !tbaa !31
  br label %215

209:                                              ; preds = %203
  %210 = load ptr, ptr %200, align 8, !tbaa !26
  %211 = getelementptr inbounds double, ptr %210, i64 %.410181213
  %212 = load double, ptr %211, align 8, !tbaa !31
  %213 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %212, ptr noundef %1)
  %214 = fdiv double 1.000000e+00, %213
  br label %215

215:                                              ; preds = %203, %209, %205
  %.sink = phi double [ %214, %209 ], [ %208, %205 ], [ 1.000000e+00, %203 ]
  %216 = load ptr, ptr %201, align 8, !tbaa !26
  %217 = getelementptr inbounds double, ptr %216, i64 %.410181213
  store double %.sink, ptr %217, align 8, !tbaa !31
  %218 = add nuw nsw i64 %.410181213, 1
  %exitcond1270.not = icmp eq i64 %218, %.21039
  br i1 %exitcond1270.not, label %._crit_edge1216, label %203, !llvm.loop !59

._crit_edge1216:                                  ; preds = %215, %197
  %.41018.lcssa = phi i64 [ 0, %197 ], [ %.21039, %215 ]
  %219 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl14sassetprecdiagEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %219, ptr noundef nonnull %198, ptr noundef %1)
  %220 = getelementptr inbounds i8, ptr %0, i64 5904
  %221 = tail call noundef zeroext i1 @_ZN11alglib_impl20sasstartoptimizationEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %219, ptr noundef nonnull %220, ptr noundef %1)
  br i1 %221, label %224, label %222

222:                                              ; preds = %._crit_edge1216
  %223 = getelementptr inbounds i8, ptr %0, i64 5848
  store i64 -3, ptr %223, align 8, !tbaa !35
  br label %1464

224:                                              ; preds = %._crit_edge1216
  %225 = add nsw i64 %.21039, -1
  %226 = getelementptr inbounds i8, ptr %0, i64 5848
  store i64 0, ptr %226, align 8, !tbaa !35
  %227 = getelementptr inbounds i8, ptr %0, i64 5536
  %228 = getelementptr inbounds i8, ptr %0, i64 5528
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %227, i8 0, i64 24, i1 false)
  %229 = load i64, ptr %228, align 8, !tbaa !60
  %230 = add nsw i64 %229, %.21039
  %231 = sitofp i64 %230 to double
  %232 = fmul double %231, 1.500000e+00
  %233 = tail call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %232, ptr noundef %1)
  %234 = add nsw i64 %233, 5
  %235 = getelementptr inbounds i8, ptr %0, i64 8128
  store i64 %234, ptr %235, align 8, !tbaa !61
  %236 = getelementptr inbounds i8, ptr %0, i64 4616
  %237 = load ptr, ptr %236, align 8, !tbaa !26
  %238 = getelementptr inbounds i8, ptr %0, i64 144
  %239 = load ptr, ptr %238, align 8, !tbaa !26
  %240 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %225)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %237, i64 noundef 1, ptr noundef %239, i64 noundef 1, i64 noundef %240)
  tail call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %241 = getelementptr inbounds i8, ptr %0, i64 64
  %242 = load double, ptr %241, align 8, !tbaa !50
  %243 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %242, double noundef 0.000000e+00)
  br i1 %243, label %248, label %244

244:                                              ; preds = %224
  %245 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 1, ptr %245, align 1, !tbaa !56
  br label %1432

246:                                              ; preds = %40
  %247 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 0, ptr %247, align 1, !tbaa !56
  br label %252

248:                                              ; preds = %224
  %249 = getelementptr inbounds i8, ptr %0, i64 4696
  store i8 1, ptr %249, align 8, !tbaa !62
  br label %1432

250:                                              ; preds = %40
  %251 = getelementptr inbounds i8, ptr %0, i64 4696
  store i8 0, ptr %251, align 8, !tbaa !62
  br label %252

252:                                              ; preds = %250, %246
  %253 = getelementptr inbounds i8, ptr %0, i64 4624
  %254 = load double, ptr %253, align 8, !tbaa !57
  %255 = getelementptr inbounds i8, ptr %0, i64 5352
  store double %254, ptr %255, align 8, !tbaa !63
  %256 = getelementptr inbounds i8, ptr %0, i64 8120
  tail call void @_ZN11alglib_impl11trimprepareEdPdPNS_8ae_stateE(double noundef %254, ptr noundef nonnull %256, ptr noundef %1)
  %257 = getelementptr inbounds i8, ptr %0, i64 5832
  %258 = load i64, ptr %257, align 8, !tbaa !64
  %259 = add nsw i64 %258, 1
  store i64 %259, ptr %257, align 8, !tbaa !64
  %260 = getelementptr inbounds i8, ptr %0, i64 48
  %261 = load i8, ptr %260, align 8, !tbaa !65, !range !29, !noundef !30
  %262 = trunc nuw i8 %261 to i1
  br i1 %262, label %263, label %274

263:                                              ; preds = %252
  %264 = getelementptr inbounds i8, ptr %0, i64 4616
  %265 = load ptr, ptr %264, align 8, !tbaa !26
  %266 = getelementptr inbounds i8, ptr %0, i64 144
  %267 = load ptr, ptr %266, align 8, !tbaa !26
  %268 = add nsw i64 %.01037, -1
  %269 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %268)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %265, i64 noundef 1, ptr noundef %267, i64 noundef 1, i64 noundef %269)
  %270 = load double, ptr %255, align 8, !tbaa !63
  store double %270, ptr %253, align 8, !tbaa !57
  %271 = getelementptr inbounds i8, ptr %0, i64 4698
  store i8 1, ptr %271, align 2, !tbaa !66
  br label %1432

272:                                              ; preds = %40
  %273 = getelementptr inbounds i8, ptr %0, i64 4698
  store i8 0, ptr %273, align 2, !tbaa !66
  br label %274

274:                                              ; preds = %252, %272
  %275 = getelementptr inbounds i8, ptr %0, i64 4702
  %276 = load i8, ptr %275, align 2, !tbaa !34, !range !29, !noundef !30
  %277 = trunc nuw i8 %276 to i1
  br i1 %277, label %278, label %281

278:                                              ; preds = %274
  %279 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %279, ptr noundef %1)
  %280 = getelementptr inbounds i8, ptr %0, i64 5848
  store i64 8, ptr %280, align 8, !tbaa !35
  br label %1464

281:                                              ; preds = %274, %1424
  %.51019 = phi i64 [ %.01014, %274 ], [ %.26, %1424 ]
  %.11000 = phi double [ %.0999, %274 ], [ %.17, %1424 ]
  %.1988 = phi double [ %.0987, %274 ], [ %.10997, %1424 ]
  %.1978 = phi i8 [ %.0977, %274 ], [ %.12, %1424 ]
  %.1970 = phi i64 [ %.0969, %274 ], [ %.6975, %1424 ]
  %.1962 = phi i64 [ %.0961, %274 ], [ %.6967, %1424 ]
  %.1957 = phi double [ %.0956, %274 ], [ %.7, %1424 ]
  %.3 = phi double [ %.0, %274 ], [ %1428, %1424 ]
  %282 = getelementptr inbounds i8, ptr %0, i64 4616
  %283 = load ptr, ptr %282, align 8, !tbaa !26
  %284 = getelementptr inbounds i8, ptr %0, i64 144
  %285 = load ptr, ptr %284, align 8, !tbaa !26
  %286 = add nsw i64 %.01037, -1
  %287 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %286)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %283, i64 noundef 1, ptr noundef %285, i64 noundef 1, i64 noundef %287)
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %288 = getelementptr inbounds i8, ptr %0, i64 64
  %289 = load double, ptr %288, align 8, !tbaa !50
  %290 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %289, double noundef 0.000000e+00)
  br i1 %290, label %295, label %291

291:                                              ; preds = %281
  %292 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 1, ptr %292, align 1, !tbaa !56
  br label %1432

293:                                              ; preds = %40
  %294 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 0, ptr %294, align 1, !tbaa !56
  %.phi.trans.insert1273 = getelementptr inbounds i8, ptr %0, i64 4624
  %.pre1274 = load double, ptr %.phi.trans.insert1273, align 8, !tbaa !57
  br label %515

295:                                              ; preds = %281
  %296 = getelementptr inbounds i8, ptr %0, i64 4696
  store i8 1, ptr %296, align 8, !tbaa !62
  br label %1432

297:                                              ; preds = %40
  %298 = getelementptr inbounds i8, ptr %0, i64 4624
  %299 = load double, ptr %298, align 8, !tbaa !57
  %300 = getelementptr inbounds i8, ptr %0, i64 7608
  store double %299, ptr %300, align 8, !tbaa !67
  br label %301

301:                                              ; preds = %502, %297
  %.61020 = phi i64 [ 0, %297 ], [ %509, %502 ]
  %.not1051 = icmp slt i64 %.61020, %.01037
  br i1 %.not1051, label %302, label %510

302:                                              ; preds = %301
  %303 = getelementptr inbounds i8, ptr %0, i64 4616
  %304 = load ptr, ptr %303, align 8, !tbaa !26
  %305 = getelementptr inbounds double, ptr %304, i64 %.61020
  %306 = load double, ptr %305, align 8, !tbaa !31
  %307 = getelementptr inbounds i8, ptr %0, i64 5616
  %308 = load ptr, ptr %307, align 8, !tbaa !26
  %309 = getelementptr inbounds i8, ptr %308, i64 %.61020
  %310 = load i8, ptr %309, align 1, !tbaa !28, !range !29, !noundef !30
  %311 = trunc nuw i8 %310 to i1
  br i1 %311, label %312, label %327

312:                                              ; preds = %302
  %313 = getelementptr inbounds i8, ptr %0, i64 64
  %314 = load double, ptr %313, align 8, !tbaa !50
  %315 = getelementptr inbounds i8, ptr %0, i64 4472
  %316 = load ptr, ptr %315, align 8, !tbaa !26
  %317 = getelementptr inbounds double, ptr %316, i64 %.61020
  %318 = load double, ptr %317, align 8, !tbaa !31
  %319 = fneg double %314
  %320 = tail call double @llvm.fmuladd.f64(double %319, double %318, double %306)
  %321 = getelementptr inbounds i8, ptr %0, i64 5744
  %322 = load ptr, ptr %321, align 8, !tbaa !26
  %323 = getelementptr inbounds double, ptr %322, i64 %.61020
  %324 = load double, ptr %323, align 8, !tbaa !31
  %325 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %320, double noundef %324)
  %326 = zext i1 %325 to i8
  br label %327

327:                                              ; preds = %312, %302
  %.2979 = phi i8 [ %326, %312 ], [ 0, %302 ]
  %328 = getelementptr inbounds i8, ptr %0, i64 5680
  %329 = load ptr, ptr %328, align 8, !tbaa !26
  %330 = getelementptr inbounds i8, ptr %329, i64 %.61020
  %331 = load i8, ptr %330, align 1, !tbaa !28, !range !29, !noundef !30
  %332 = trunc nuw i8 %331 to i1
  br i1 %332, label %333, label %349

333:                                              ; preds = %327
  %334 = trunc nuw i8 %.2979 to i1
  br i1 %334, label %.thread, label %335

335:                                              ; preds = %333
  %336 = getelementptr inbounds i8, ptr %0, i64 64
  %337 = load double, ptr %336, align 8, !tbaa !50
  %338 = getelementptr inbounds i8, ptr %0, i64 4472
  %339 = load ptr, ptr %338, align 8, !tbaa !26
  %340 = getelementptr inbounds double, ptr %339, i64 %.61020
  %341 = load double, ptr %340, align 8, !tbaa !31
  %342 = tail call double @llvm.fmuladd.f64(double %337, double %341, double %306)
  %343 = getelementptr inbounds i8, ptr %0, i64 5808
  %344 = load ptr, ptr %343, align 8, !tbaa !26
  %345 = getelementptr inbounds double, ptr %344, i64 %.61020
  %346 = load double, ptr %345, align 8, !tbaa !31
  %347 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %342, double noundef %346)
  %348 = zext i1 %347 to i8
  br label %349

349:                                              ; preds = %335, %327
  %.3980 = phi i8 [ %.2979, %327 ], [ %348, %335 ]
  %350 = trunc nuw i8 %.3980 to i1
  br i1 %350, label %.thread, label %351

351:                                              ; preds = %349
  %352 = getelementptr inbounds i8, ptr %0, i64 64
  %353 = load double, ptr %352, align 8, !tbaa !50
  %354 = getelementptr inbounds i8, ptr %0, i64 4472
  %355 = load ptr, ptr %354, align 8, !tbaa !26
  %356 = getelementptr inbounds double, ptr %355, i64 %.61020
  %357 = load double, ptr %356, align 8, !tbaa !31
  %358 = fneg double %353
  %359 = tail call double @llvm.fmuladd.f64(double %358, double %357, double %306)
  %360 = load ptr, ptr %303, align 8, !tbaa !26
  %361 = getelementptr inbounds double, ptr %360, i64 %.61020
  store double %359, ptr %361, align 8, !tbaa !31
  br label %1432

362:                                              ; preds = %40
  %363 = getelementptr inbounds i8, ptr %0, i64 4624
  %364 = load double, ptr %363, align 8, !tbaa !57
  %365 = getelementptr inbounds i8, ptr %0, i64 7616
  store double %364, ptr %365, align 8, !tbaa !68
  %366 = getelementptr inbounds i8, ptr %0, i64 64
  %367 = load double, ptr %366, align 8, !tbaa !50
  %368 = getelementptr inbounds i8, ptr %0, i64 4472
  %369 = load ptr, ptr %368, align 8, !tbaa !26
  %370 = getelementptr inbounds double, ptr %369, i64 %.01014
  %371 = load double, ptr %370, align 8, !tbaa !31
  %372 = fmul double %367, -5.000000e-01
  %373 = tail call double @llvm.fmuladd.f64(double %372, double %371, double %.0999)
  %374 = getelementptr inbounds i8, ptr %0, i64 4616
  %375 = load ptr, ptr %374, align 8, !tbaa !26
  %376 = getelementptr inbounds double, ptr %375, i64 %.01014
  store double %373, ptr %376, align 8, !tbaa !31
  br label %1432

377:                                              ; preds = %40
  %378 = getelementptr inbounds i8, ptr %0, i64 4624
  %379 = load double, ptr %378, align 8, !tbaa !57
  %380 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %379, ptr %380, align 8, !tbaa !69
  %381 = getelementptr inbounds i8, ptr %0, i64 64
  %382 = load double, ptr %381, align 8, !tbaa !50
  %383 = fmul double %382, 5.000000e-01
  %384 = getelementptr inbounds i8, ptr %0, i64 4472
  %385 = load ptr, ptr %384, align 8, !tbaa !26
  %386 = getelementptr inbounds double, ptr %385, i64 %.01014
  %387 = load double, ptr %386, align 8, !tbaa !31
  %388 = tail call double @llvm.fmuladd.f64(double %383, double %387, double %.0999)
  %389 = getelementptr inbounds i8, ptr %0, i64 4616
  %390 = load ptr, ptr %389, align 8, !tbaa !26
  %391 = getelementptr inbounds double, ptr %390, i64 %.01014
  store double %388, ptr %391, align 8, !tbaa !31
  br label %1432

392:                                              ; preds = %40
  %393 = getelementptr inbounds i8, ptr %0, i64 4624
  %394 = load double, ptr %393, align 8, !tbaa !57
  %395 = getelementptr inbounds i8, ptr %0, i64 7632
  store double %394, ptr %395, align 8, !tbaa !70
  %396 = getelementptr inbounds i8, ptr %0, i64 64
  %397 = load double, ptr %396, align 8, !tbaa !50
  %398 = getelementptr inbounds i8, ptr %0, i64 4472
  %399 = load ptr, ptr %398, align 8, !tbaa !26
  %400 = getelementptr inbounds double, ptr %399, i64 %.01014
  %401 = load double, ptr %400, align 8, !tbaa !31
  %402 = tail call double @llvm.fmuladd.f64(double %397, double %401, double %.0999)
  %403 = getelementptr inbounds i8, ptr %0, i64 4616
  %404 = load ptr, ptr %403, align 8, !tbaa !26
  %405 = getelementptr inbounds double, ptr %404, i64 %.01014
  store double %402, ptr %405, align 8, !tbaa !31
  br label %1432

406:                                              ; preds = %40
  %407 = getelementptr inbounds i8, ptr %0, i64 4624
  %408 = load double, ptr %407, align 8, !tbaa !57
  %409 = getelementptr inbounds i8, ptr %0, i64 7640
  store double %408, ptr %409, align 8, !tbaa !71
  %410 = getelementptr inbounds i8, ptr %0, i64 7632
  %411 = load double, ptr %410, align 8, !tbaa !70
  %412 = getelementptr inbounds i8, ptr %0, i64 7624
  %413 = load double, ptr %412, align 8, !tbaa !69
  %414 = fsub double %411, %413
  %415 = getelementptr inbounds i8, ptr %0, i64 7616
  %416 = load double, ptr %415, align 8, !tbaa !68
  %417 = fsub double %408, %416
  %418 = fneg double %417
  %419 = tail call double @llvm.fmuladd.f64(double %414, double 8.000000e+00, double %418)
  %420 = getelementptr inbounds i8, ptr %0, i64 64
  %421 = load double, ptr %420, align 8, !tbaa !50
  %422 = fmul double %421, 6.000000e+00
  %423 = getelementptr inbounds i8, ptr %0, i64 4472
  %424 = load ptr, ptr %423, align 8, !tbaa !26
  %425 = getelementptr inbounds double, ptr %424, i64 %.01014
  %426 = load double, ptr %425, align 8, !tbaa !31
  %427 = fmul double %422, %426
  %428 = fdiv double %419, %427
  br label %502

.thread:                                          ; preds = %333, %349
  %.39801070 = phi i8 [ %.3980, %349 ], [ 1, %333 ]
  %429 = getelementptr inbounds i8, ptr %0, i64 64
  %430 = load double, ptr %429, align 8, !tbaa !50
  %431 = getelementptr inbounds i8, ptr %0, i64 4472
  %432 = load ptr, ptr %431, align 8, !tbaa !26
  %433 = getelementptr inbounds double, ptr %432, i64 %.61020
  %434 = load double, ptr %433, align 8, !tbaa !31
  %435 = fneg double %430
  %436 = tail call double @llvm.fmuladd.f64(double %435, double %434, double %306)
  %437 = getelementptr inbounds i8, ptr %0, i64 7648
  store double %436, ptr %437, align 8, !tbaa !72
  %438 = load double, ptr %433, align 8, !tbaa !31
  %439 = tail call double @llvm.fmuladd.f64(double %430, double %438, double %306)
  %440 = getelementptr inbounds i8, ptr %0, i64 7656
  store double %439, ptr %440, align 8, !tbaa !73
  %441 = load ptr, ptr %307, align 8, !tbaa !26
  %442 = getelementptr inbounds i8, ptr %441, i64 %.61020
  %443 = load i8, ptr %442, align 1, !tbaa !28, !range !29, !noundef !30
  %444 = trunc nuw i8 %443 to i1
  br i1 %444, label %445, label %455

445:                                              ; preds = %.thread
  %446 = getelementptr inbounds i8, ptr %0, i64 5744
  %447 = load ptr, ptr %446, align 8, !tbaa !26
  %448 = getelementptr inbounds double, ptr %447, i64 %.61020
  %449 = load double, ptr %448, align 8, !tbaa !31
  %450 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %436, double noundef %449)
  br i1 %450, label %451, label %455

451:                                              ; preds = %445
  %452 = load ptr, ptr %446, align 8, !tbaa !26
  %453 = getelementptr inbounds double, ptr %452, i64 %.61020
  %454 = load double, ptr %453, align 8, !tbaa !31
  store double %454, ptr %437, align 8, !tbaa !72
  br label %455

455:                                              ; preds = %451, %445, %.thread
  %456 = load ptr, ptr %328, align 8, !tbaa !26
  %457 = getelementptr inbounds i8, ptr %456, i64 %.61020
  %458 = load i8, ptr %457, align 1, !tbaa !28, !range !29, !noundef !30
  %459 = trunc nuw i8 %458 to i1
  br i1 %459, label %460, label %471

460:                                              ; preds = %455
  %461 = load double, ptr %440, align 8, !tbaa !73
  %462 = getelementptr inbounds i8, ptr %0, i64 5808
  %463 = load ptr, ptr %462, align 8, !tbaa !26
  %464 = getelementptr inbounds double, ptr %463, i64 %.61020
  %465 = load double, ptr %464, align 8, !tbaa !31
  %466 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %461, double noundef %465)
  br i1 %466, label %467, label %471

467:                                              ; preds = %460
  %468 = load ptr, ptr %462, align 8, !tbaa !26
  %469 = getelementptr inbounds double, ptr %468, i64 %.61020
  %470 = load double, ptr %469, align 8, !tbaa !31
  store double %470, ptr %440, align 8, !tbaa !73
  br label %471

471:                                              ; preds = %467, %460, %455
  %472 = load double, ptr %437, align 8, !tbaa !72
  %473 = load ptr, ptr %303, align 8, !tbaa !26
  %474 = getelementptr inbounds double, ptr %473, i64 %.61020
  store double %472, ptr %474, align 8, !tbaa !31
  br label %1432

475:                                              ; preds = %40
  %476 = getelementptr inbounds i8, ptr %0, i64 4624
  %477 = load double, ptr %476, align 8, !tbaa !57
  %478 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %477, ptr %478, align 8, !tbaa !69
  %479 = getelementptr inbounds i8, ptr %0, i64 7656
  %480 = load double, ptr %479, align 8, !tbaa !73
  %481 = getelementptr inbounds i8, ptr %0, i64 4616
  %482 = load ptr, ptr %481, align 8, !tbaa !26
  %483 = getelementptr inbounds double, ptr %482, i64 %.01014
  store double %480, ptr %483, align 8, !tbaa !31
  br label %1432

484:                                              ; preds = %40
  %485 = getelementptr inbounds i8, ptr %0, i64 4624
  %486 = load double, ptr %485, align 8, !tbaa !57
  %487 = getelementptr inbounds i8, ptr %0, i64 7632
  store double %486, ptr %487, align 8, !tbaa !70
  %488 = getelementptr inbounds i8, ptr %0, i64 7648
  %489 = load double, ptr %488, align 8, !tbaa !72
  %490 = getelementptr inbounds i8, ptr %0, i64 7656
  %491 = load double, ptr %490, align 8, !tbaa !73
  %492 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %489, double noundef %491)
  br i1 %492, label %493, label %502

493:                                              ; preds = %484
  %494 = load double, ptr %487, align 8, !tbaa !70
  %495 = getelementptr inbounds i8, ptr %0, i64 7624
  %496 = load double, ptr %495, align 8, !tbaa !69
  %497 = fsub double %494, %496
  %498 = load double, ptr %490, align 8, !tbaa !73
  %499 = load double, ptr %488, align 8, !tbaa !72
  %500 = fsub double %498, %499
  %501 = fdiv double %497, %500
  br label %502

502:                                              ; preds = %484, %493, %406
  %.sink1302 = phi double [ %501, %493 ], [ %428, %406 ], [ 0.000000e+00, %484 ]
  %503 = getelementptr inbounds i8, ptr %0, i64 4688
  %504 = load ptr, ptr %503, align 8, !tbaa !26
  %505 = getelementptr inbounds double, ptr %504, i64 %.01014
  store double %.sink1302, ptr %505, align 8, !tbaa !31
  %506 = getelementptr inbounds i8, ptr %0, i64 4616
  %507 = load ptr, ptr %506, align 8, !tbaa !26
  %508 = getelementptr inbounds double, ptr %507, i64 %.01014
  store double %.0999, ptr %508, align 8, !tbaa !31
  %509 = add nsw i64 %.01014, 1
  br label %301

510:                                              ; preds = %301
  %511 = getelementptr inbounds i8, ptr %0, i64 7608
  %512 = load double, ptr %511, align 8, !tbaa !67
  %513 = getelementptr inbounds i8, ptr %0, i64 4624
  store double %512, ptr %513, align 8, !tbaa !57
  %514 = getelementptr inbounds i8, ptr %0, i64 4696
  store i8 0, ptr %514, align 8, !tbaa !62
  br label %515

515:                                              ; preds = %510, %293
  %516 = phi double [ %512, %510 ], [ %.pre1274, %293 ]
  %517 = getelementptr inbounds i8, ptr %0, i64 5352
  store double %516, ptr %517, align 8, !tbaa !63
  %518 = getelementptr inbounds i8, ptr %0, i64 4968
  %519 = getelementptr inbounds i8, ptr %0, i64 5024
  %520 = load ptr, ptr %519, align 8, !tbaa !26
  %521 = getelementptr inbounds i8, ptr %0, i64 4688
  %522 = load ptr, ptr %521, align 8, !tbaa !26
  %523 = add nsw i64 %.01037, -1
  %524 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %523)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %520, i64 noundef 1, ptr noundef %522, i64 noundef 1, i64 noundef %524)
  %525 = getelementptr inbounds i8, ptr %0, i64 5032
  %526 = getelementptr inbounds i8, ptr %0, i64 5088
  %527 = load ptr, ptr %526, align 8, !tbaa !26
  %528 = load ptr, ptr %521, align 8, !tbaa !26
  %529 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %523)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %527, i64 noundef 1, ptr noundef %528, i64 noundef 1, i64 noundef %529)
  %530 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl28sasreactivateconstraintsprecEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %530, ptr noundef nonnull %518, ptr noundef %1)
  tail call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %530, ptr noundef nonnull %525, ptr noundef %1)
  %.not1052.not1120 = icmp sgt i64 %.01037, 0
  br i1 %.not1052.not1120, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %515
  %531 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %532

532:                                              ; preds = %.lr.ph, %532
  %.29581122 = phi double [ 0.000000e+00, %.lr.ph ], [ %541, %532 ]
  %.710211121 = phi i64 [ 0, %.lr.ph ], [ %542, %532 ]
  %533 = load ptr, ptr %526, align 8, !tbaa !26
  %534 = getelementptr inbounds double, ptr %533, i64 %.710211121
  %535 = load double, ptr %534, align 8, !tbaa !31
  %536 = load ptr, ptr %531, align 8, !tbaa !26
  %537 = getelementptr inbounds double, ptr %536, i64 %.710211121
  %538 = load double, ptr %537, align 8, !tbaa !31
  %539 = fmul double %535, %538
  %540 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %539, ptr noundef %1)
  %541 = fadd double %.29581122, %540
  %542 = add nuw nsw i64 %.710211121, 1
  %exitcond.not = icmp eq i64 %542, %.01037
  br i1 %exitcond.not, label %._crit_edge, label %532, !llvm.loop !74

._crit_edge:                                      ; preds = %532, %515
  %.71021.lcssa = phi i64 [ 0, %515 ], [ %.01037, %532 ]
  %.2958.lcssa = phi double [ 0.000000e+00, %515 ], [ %541, %532 ]
  %543 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.2958.lcssa, ptr noundef %1)
  %544 = getelementptr inbounds i8, ptr %0, i64 5552
  %545 = load double, ptr %544, align 8, !tbaa !75
  %546 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %545, double noundef %543, ptr noundef %1)
  store double %546, ptr %544, align 8, !tbaa !75
  %547 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %543, ptr noundef %1)
  br i1 %547, label %548, label %551

548:                                              ; preds = %._crit_edge
  %549 = load double, ptr %517, align 8, !tbaa !63
  %550 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %549, ptr noundef %1)
  br i1 %550, label %553, label %551

551:                                              ; preds = %548, %._crit_edge
  tail call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %530, ptr noundef %1)
  %552 = getelementptr inbounds i8, ptr %0, i64 5848
  store i64 -8, ptr %552, align 8, !tbaa !35
  br label %1464

553:                                              ; preds = %548
  %554 = getelementptr inbounds i8, ptr %0, i64 4702
  %555 = load i8, ptr %554, align 2, !tbaa !34, !range !29, !noundef !30
  %556 = trunc nuw i8 %555 to i1
  br i1 %556, label %557, label %559

557:                                              ; preds = %553
  tail call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %530, ptr noundef %1)
  %558 = getelementptr inbounds i8, ptr %0, i64 5848
  store i64 8, ptr %558, align 8, !tbaa !35
  br label %1464

559:                                              ; preds = %553
  %560 = getelementptr inbounds i8, ptr %0, i64 8424
  store i64 0, ptr %560, align 8, !tbaa !76
  %561 = getelementptr inbounds i8, ptr %0, i64 4700
  store i8 1, ptr %561, align 4, !tbaa !33
  br label %.preheader1090

.preheader1090:                                   ; preds = %559, %1400, %._crit_edge1200
  %.81022.ph = phi i64 [ %.25.lcssa, %._crit_edge1200 ], [ %.24, %1400 ], [ %.71021.lcssa, %559 ]
  %.21001.ph = phi double [ %.16.lcssa, %._crit_edge1200 ], [ %.15, %1400 ], [ %.0999, %559 ]
  %.2989.ph = phi double [ %.99961083, %._crit_edge1200 ], [ %.99961083, %1400 ], [ %.0987, %559 ]
  %.4981.ph = phi i8 [ %.11, %._crit_edge1200 ], [ %.11, %1400 ], [ %.0977, %559 ]
  %.2971.ph = phi i64 [ %.5974, %._crit_edge1200 ], [ %.5974, %1400 ], [ %.0969, %559 ]
  %.2963.ph = phi i64 [ %.5966, %._crit_edge1200 ], [ %.5966, %1400 ], [ -1, %559 ]
  %.3959.ph = phi double [ %.6, %._crit_edge1200 ], [ %.6, %1400 ], [ %543, %559 ]
  %562 = add nsw i64 %.01037, -1
  %.not1053 = icmp slt i64 %.2963.ph, %562
  br i1 %.not1053, label %.lr.ph1146, label %.loopexit1091

.lr.ph1146:                                       ; preds = %.preheader1090
  %563 = getelementptr inbounds i8, ptr %0, i64 4700
  %564 = getelementptr inbounds i8, ptr %0, i64 72
  %565 = getelementptr inbounds i8, ptr %0, i64 4968
  %566 = getelementptr inbounds i8, ptr %0, i64 16
  %567 = getelementptr inbounds i8, ptr %0, i64 7864
  %568 = getelementptr inbounds i8, ptr %0, i64 7920
  %569 = getelementptr inbounds i8, ptr %0, i64 5088
  %570 = getelementptr inbounds i8, ptr %0, i64 8424
  %571 = getelementptr inbounds i8, ptr %0, i64 8288
  %572 = getelementptr inbounds i8, ptr %0, i64 8416
  %573 = getelementptr inbounds i8, ptr %0, i64 8352
  %574 = getelementptr inbounds i8, ptr %0, i64 8208
  %575 = getelementptr inbounds i8, ptr %0, i64 5376
  %576 = getelementptr inbounds i8, ptr %0, i64 5432
  %.not1055.not1135 = icmp sgt i64 %.01037, 0
  %577 = getelementptr inbounds i8, ptr %0, i64 4472
  %578 = getelementptr inbounds i8, ptr %0, i64 5544
  %579 = getelementptr inbounds i8, ptr %0, i64 7840
  %580 = getelementptr inbounds i8, ptr %0, i64 7848
  %581 = getelementptr inbounds i8, ptr %0, i64 7680
  %582 = getelementptr inbounds i8, ptr %0, i64 7688
  %583 = getelementptr inbounds i8, ptr %0, i64 7856
  %smax = call i64 @llvm.smax.i64(i64 %.01037, i64 0)
  br label %584

584:                                              ; preds = %672, %.lr.ph1146
  %.29891145 = phi double [ %.2989.ph, %.lr.ph1146 ], [ %.4991.lcssa, %672 ]
  %.210011144 = phi double [ %.21001.ph, %.lr.ph1146 ], [ %652, %672 ]
  %.810221143 = phi i64 [ %.81022.ph, %.lr.ph1146 ], [ %.111025.lcssa, %672 ]
  %585 = load i8, ptr %563, align 4, !tbaa !33, !range !29, !noundef !30
  %586 = trunc nuw i8 %585 to i1
  br i1 %586, label %587, label %593

587:                                              ; preds = %584
  %588 = call noundef double @_ZN11alglib_impl24sasscaledconstrainednormEPNS_10sactivesetEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %564, ptr noundef nonnull %565, ptr noundef %1)
  %589 = load double, ptr %566, align 8, !tbaa !77
  %590 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %588, double noundef %589)
  br i1 %590, label %591, label %593

591:                                              ; preds = %587
  %592 = add nsw i64 %.2963.ph, 1
  br label %.loopexit1091.sink.split

593:                                              ; preds = %587, %584
  %594 = load ptr, ptr %568, align 8, !tbaa !26
  %595 = load ptr, ptr %569, align 8, !tbaa !26
  %596 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %594, i64 noundef 1, ptr noundef %595, i64 noundef 1, i64 noundef %596)
  %597 = load i64, ptr %570, align 8, !tbaa !76
  %598 = icmp sgt i64 %597, 0
  br i1 %598, label %.lr.ph1126, label %._crit_edge1127

.lr.ph1126:                                       ; preds = %593, %.lr.ph1126
  %.91023.in1124 = phi i64 [ %.91023, %.lr.ph1126 ], [ %597, %593 ]
  %.91023 = add nsw i64 %.91023.in1124, -1
  %599 = load ptr, ptr %571, align 8, !tbaa !26
  %600 = getelementptr inbounds ptr, ptr %599, i64 %.91023
  %601 = load ptr, ptr %600, align 8, !tbaa !52
  %602 = load ptr, ptr %568, align 8, !tbaa !26
  %603 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  %604 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %601, i64 noundef 1, ptr noundef %602, i64 noundef 1, i64 noundef %603)
  %605 = load ptr, ptr %572, align 8, !tbaa !26
  %606 = getelementptr inbounds double, ptr %605, i64 %.91023
  store double %604, ptr %606, align 8, !tbaa !31
  %607 = load ptr, ptr %573, align 8, !tbaa !26
  %608 = getelementptr inbounds double, ptr %607, i64 %.91023
  %609 = load double, ptr %608, align 8, !tbaa !31
  %610 = fmul double %604, %609
  %611 = load ptr, ptr %568, align 8, !tbaa !26
  %612 = load ptr, ptr %574, align 8, !tbaa !26
  %613 = getelementptr inbounds ptr, ptr %612, i64 %.91023
  %614 = load ptr, ptr %613, align 8, !tbaa !52
  %615 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  call void @_ZN11alglib_impl9ae_v_subdEPdlPKdlld(ptr noundef %611, i64 noundef 1, ptr noundef %614, i64 noundef 1, i64 noundef %615, double noundef %610)
  %616 = icmp ugt i64 %.91023.in1124, 1
  br i1 %616, label %.lr.ph1126, label %._crit_edge1127, !llvm.loop !78

._crit_edge1127:                                  ; preds = %.lr.ph1126, %593
  %.3990.lcssa = phi double [ %.29891145, %593 ], [ %610, %.lr.ph1126 ]
  call void @_ZN11alglib_impl27sasconstraineddirectionprecEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %564, ptr noundef nonnull %567, ptr noundef %1)
  %617 = load i64, ptr %570, align 8, !tbaa !76
  %.not1054.not1129 = icmp sgt i64 %617, 0
  br i1 %.not1054.not1129, label %.lr.ph1132, label %._crit_edge1133

.lr.ph1132:                                       ; preds = %._crit_edge1127, %.lr.ph1132
  %.1010241130 = phi i64 [ %637, %.lr.ph1132 ], [ 0, %._crit_edge1127 ]
  %618 = load ptr, ptr %574, align 8, !tbaa !26
  %619 = getelementptr inbounds ptr, ptr %618, i64 %.1010241130
  %620 = load ptr, ptr %619, align 8, !tbaa !52
  %621 = load ptr, ptr %568, align 8, !tbaa !26
  %622 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  %623 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %620, i64 noundef 1, ptr noundef %621, i64 noundef 1, i64 noundef %622)
  %624 = load ptr, ptr %573, align 8, !tbaa !26
  %625 = getelementptr inbounds double, ptr %624, i64 %.1010241130
  %626 = load double, ptr %625, align 8, !tbaa !31
  %627 = load ptr, ptr %572, align 8, !tbaa !26
  %628 = getelementptr inbounds double, ptr %627, i64 %.1010241130
  %629 = load double, ptr %628, align 8, !tbaa !31
  %630 = fsub double %629, %623
  %631 = fmul double %626, %630
  %632 = load ptr, ptr %568, align 8, !tbaa !26
  %633 = load ptr, ptr %571, align 8, !tbaa !26
  %634 = getelementptr inbounds ptr, ptr %633, i64 %.1010241130
  %635 = load ptr, ptr %634, align 8, !tbaa !52
  %636 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %632, i64 noundef 1, ptr noundef %635, i64 noundef 1, i64 noundef %636, double noundef %631)
  %637 = add nuw nsw i64 %.1010241130, 1
  %638 = load i64, ptr %570, align 8, !tbaa !76
  %.not1054.not = icmp slt i64 %637, %638
  br i1 %.not1054.not, label %.lr.ph1132, label %._crit_edge1133, !llvm.loop !79

._crit_edge1133:                                  ; preds = %.lr.ph1132, %._crit_edge1127
  %.4991.lcssa = phi double [ %.3990.lcssa, %._crit_edge1127 ], [ %631, %.lr.ph1132 ]
  call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %564, ptr noundef nonnull %567, ptr noundef %1)
  %639 = load ptr, ptr %576, align 8, !tbaa !26
  %640 = load ptr, ptr %568, align 8, !tbaa !26
  %641 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %639, i64 noundef 1, ptr noundef %640, i64 noundef 1, i64 noundef %641)
  br i1 %.not1055.not1135, label %.lr.ph1139, label %._crit_edge1140

.lr.ph1139:                                       ; preds = %._crit_edge1133, %.lr.ph1139
  %.310021137 = phi double [ %650, %.lr.ph1139 ], [ 0.000000e+00, %._crit_edge1133 ]
  %.1110251136 = phi i64 [ %651, %.lr.ph1139 ], [ 0, %._crit_edge1133 ]
  %642 = load ptr, ptr %576, align 8, !tbaa !26
  %643 = getelementptr inbounds double, ptr %642, i64 %.1110251136
  %644 = load double, ptr %643, align 8, !tbaa !31
  %645 = load ptr, ptr %577, align 8, !tbaa !26
  %646 = getelementptr inbounds double, ptr %645, i64 %.1110251136
  %647 = load double, ptr %646, align 8, !tbaa !31
  %648 = fdiv double %644, %647
  %649 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %648, ptr noundef %1)
  %650 = fadd double %.310021137, %649
  %651 = add nuw nsw i64 %.1110251136, 1
  %exitcond1260.not = icmp eq i64 %651, %.01037
  br i1 %exitcond1260.not, label %._crit_edge1140, label %.lr.ph1139, !llvm.loop !80

._crit_edge1140:                                  ; preds = %.lr.ph1139, %._crit_edge1133
  %.111025.lcssa = phi i64 [ 0, %._crit_edge1133 ], [ %.01037, %.lr.ph1139 ]
  %.31002.lcssa = phi double [ 0.000000e+00, %._crit_edge1133 ], [ %650, %.lr.ph1139 ]
  %652 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.31002.lcssa, ptr noundef %1)
  %653 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %652, double noundef 0.000000e+00)
  br i1 %653, label %654, label %658

654:                                              ; preds = %._crit_edge1140
  %655 = add nsw i64 %.2963.ph, 1
  %656 = load i8, ptr %563, align 4, !tbaa !33, !range !29, !noundef !30
  %657 = trunc nuw i8 %656 to i1
  br i1 %657, label %.loopexit1091.sink.split, label %.loopexit1091

658:                                              ; preds = %._crit_edge1140
  %659 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %652, double noundef 0.000000e+00)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %659, ptr noundef nonnull @.str.1577, ptr noundef %1)
  %660 = load double, ptr %578, align 8, !tbaa !81
  %661 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %660, double noundef 0.000000e+00)
  br i1 %661, label %662, label %666

662:                                              ; preds = %658
  %663 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %652, double noundef 0.000000e+00)
  br i1 %663, label %664, label %666

664:                                              ; preds = %662
  %665 = load double, ptr %578, align 8, !tbaa !81
  br label %666

666:                                              ; preds = %658, %662, %664
  %.pn = phi double [ %665, %664 ], [ 1.000000e+00, %662 ], [ 1.000000e+00, %658 ]
  %storemerge = fdiv double %.pn, %652
  store double %storemerge, ptr %579, align 8, !tbaa !82
  call void @_ZN11alglib_impl19sasexploredirectionEPKNS_10sactivesetEPKNS_9ae_vectorEPdPlS6_PNS_8ae_stateE(ptr noundef nonnull %564, ptr noundef nonnull %575, ptr noundef nonnull %580, ptr noundef nonnull %581, ptr noundef nonnull %582, ptr noundef %1)
  %667 = load double, ptr %580, align 8, !tbaa !83
  store double %667, ptr %583, align 8, !tbaa !84
  %668 = load i64, ptr %581, align 8, !tbaa !85
  %669 = icmp sgt i64 %668, -1
  br i1 %669, label %670, label %675

670:                                              ; preds = %666
  %671 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %667, double noundef 0.000000e+00)
  br i1 %671, label %672, label %675

672:                                              ; preds = %670
  %673 = load i64, ptr %581, align 8, !tbaa !85
  %674 = load double, ptr %582, align 8, !tbaa !86
  call void @_ZN11alglib_impl22sasimmediateactivationEPNS_10sactivesetEldPNS_8ae_stateE(ptr noundef nonnull %564, i64 noundef %673, double noundef %674, ptr noundef %1)
  store i64 0, ptr %570, align 8, !tbaa !76
  br label %584

675:                                              ; preds = %670, %666
  %676 = add nsw i64 %.2963.ph, 1
  %677 = getelementptr inbounds i8, ptr %0, i64 56
  %678 = load double, ptr %677, align 8, !tbaa !45
  %679 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %678, double noundef 0.000000e+00)
  br i1 %679, label %680, label %691

680:                                              ; preds = %675
  %681 = load ptr, ptr %576, align 8, !tbaa !26
  %682 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  %683 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %681, i64 noundef 1, ptr noundef %681, i64 noundef 1, i64 noundef %682)
  %684 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %683, ptr noundef %1)
  %685 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %684, double noundef 0.000000e+00)
  br i1 %685, label %686, label %691

686:                                              ; preds = %680
  %687 = load double, ptr %580, align 8, !tbaa !83
  %688 = load double, ptr %677, align 8, !tbaa !45
  %689 = fdiv double %688, %684
  %690 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %687, double noundef %689, ptr noundef %1)
  store double %690, ptr %580, align 8, !tbaa !83
  br label %691

691:                                              ; preds = %680, %686, %675
  %.41003 = phi double [ %684, %686 ], [ %684, %680 ], [ %652, %675 ]
  %692 = getelementptr inbounds i8, ptr %0, i64 49
  %693 = load i8, ptr %692, align 1, !tbaa !87, !range !29, !noundef !30
  %694 = trunc nuw i8 %693 to i1
  br i1 %694, label %695, label %708

695:                                              ; preds = %691
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %696 = getelementptr inbounds i8, ptr %0, i64 4699
  store i8 1, ptr %696, align 1, !tbaa !88
  %697 = load i64, ptr %581, align 8, !tbaa !85
  %698 = icmp sgt i64 %697, -1
  %699 = getelementptr inbounds i8, ptr %0, i64 4701
  %700 = zext i1 %698 to i8
  store i8 %700, ptr %699, align 1, !tbaa !89
  %701 = getelementptr inbounds i8, ptr %0, i64 4616
  %702 = load ptr, ptr %701, align 8, !tbaa !26
  %703 = getelementptr inbounds i8, ptr %0, i64 144
  %704 = load ptr, ptr %703, align 8, !tbaa !26
  %705 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %562)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %702, i64 noundef 1, ptr noundef %704, i64 noundef 1, i64 noundef %705)
  br label %1432

706:                                              ; preds = %40
  %707 = getelementptr inbounds i8, ptr %0, i64 4699
  store i8 0, ptr %707, align 1, !tbaa !88
  %.pre1278 = add nsw i64 %.01037, -1
  br label %708

708:                                              ; preds = %691, %706
  %.pre-phi = phi i64 [ %562, %691 ], [ %.pre1278, %706 ]
  %.51004 = phi double [ %.41003, %691 ], [ %.0999, %706 ]
  %.5992 = phi double [ %.4991.lcssa, %691 ], [ %.0987, %706 ]
  %.5982 = phi i8 [ %.4981.ph, %691 ], [ %.0977, %706 ]
  %.3972 = phi i64 [ %.2971.ph, %691 ], [ %.0969, %706 ]
  %.3964 = phi i64 [ %676, %691 ], [ %.0961, %706 ]
  %.4960 = phi double [ %.3959.ph, %691 ], [ %.0956, %706 ]
  %709 = getelementptr inbounds i8, ptr %0, i64 5096
  %710 = getelementptr inbounds i8, ptr %0, i64 5152
  %711 = load ptr, ptr %710, align 8, !tbaa !26
  %712 = getelementptr inbounds i8, ptr %0, i64 144
  %713 = load ptr, ptr %712, align 8, !tbaa !26
  %714 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %.pre-phi)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %711, i64 noundef 1, ptr noundef %713, i64 noundef 1, i64 noundef %714)
  %715 = getelementptr inbounds i8, ptr %0, i64 5280
  %716 = load ptr, ptr %715, align 8, !tbaa !26
  %717 = getelementptr inbounds i8, ptr %0, i64 5088
  %718 = load ptr, ptr %717, align 8, !tbaa !26
  %719 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %.pre-phi)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %716, i64 noundef 1, ptr noundef %718, i64 noundef 1, i64 noundef %719)
  %720 = getelementptr inbounds i8, ptr %0, i64 5160
  %721 = getelementptr inbounds i8, ptr %0, i64 5216
  %722 = load ptr, ptr %721, align 8, !tbaa !26
  %723 = getelementptr inbounds i8, ptr %0, i64 5024
  %724 = load ptr, ptr %723, align 8, !tbaa !26
  %725 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %.pre-phi)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %722, i64 noundef 1, ptr noundef %724, i64 noundef 1, i64 noundef %725)
  %726 = getelementptr inbounds i8, ptr %0, i64 5352
  %727 = load double, ptr %726, align 8, !tbaa !63
  %728 = getelementptr inbounds i8, ptr %0, i64 5360
  store double %727, ptr %728, align 8, !tbaa !90
  %729 = getelementptr inbounds i8, ptr %0, i64 7832
  store i64 0, ptr %729, align 8, !tbaa !91
  %730 = getelementptr inbounds i8, ptr %0, i64 8448
  %731 = getelementptr inbounds i8, ptr %0, i64 4416
  %732 = getelementptr inbounds i8, ptr %0, i64 14216
  %733 = getelementptr inbounds i8, ptr %0, i64 5816
  %734 = load i64, ptr %733, align 8, !tbaa !92
  call void @_ZN11alglib_impl34smoothnessmonitorstartlinesearch1uEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_dS4_llPNS_8ae_stateE(ptr noundef nonnull %730, ptr noundef nonnull %731, ptr noundef nonnull %732, ptr noundef nonnull %709, double noundef %727, ptr noundef nonnull %720, i64 noundef %734, i64 noundef -1, ptr noundef %1)
  %735 = getelementptr inbounds i8, ptr %0, i64 5376
  %736 = getelementptr inbounds i8, ptr %0, i64 7840
  %737 = getelementptr inbounds i8, ptr %0, i64 7848
  %738 = load double, ptr %737, align 8, !tbaa !83
  %739 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !31
  %740 = getelementptr inbounds i8, ptr %0, i64 7824
  %741 = getelementptr inbounds i8, ptr %0, i64 7864
  %742 = getelementptr inbounds i8, ptr %0, i64 7928
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %.01037, ptr noundef nonnull %709, ptr noundef nonnull %728, ptr noundef nonnull %720, ptr noundef nonnull %735, ptr noundef nonnull %736, double noundef %738, double noundef %739, ptr noundef nonnull %3, ptr noundef nonnull %740, ptr noundef nonnull %741, ptr noundef nonnull %742, ptr noundef nonnull %729, ptr noundef %1)
  br label %743

743:                                              ; preds = %1018, %708
  %.61005 = phi double [ %.51004, %708 ], [ %.0999, %1018 ]
  %.6993 = phi double [ %.5992, %708 ], [ %.0987, %1018 ]
  %.6983 = phi i8 [ %.5982, %708 ], [ %.0977, %1018 ]
  %.4973 = phi i64 [ %.3972, %708 ], [ %.0969, %1018 ]
  %.4965 = phi i64 [ %.3964, %708 ], [ %.0961, %1018 ]
  %.5 = phi double [ %.4960, %708 ], [ %.0956, %1018 ]
  %744 = getelementptr inbounds i8, ptr %0, i64 7832
  %745 = load i64, ptr %744, align 8, !tbaa !91
  %746 = icmp eq i64 %745, 0
  br i1 %746, label %1059, label %747

747:                                              ; preds = %743
  %748 = getelementptr inbounds i8, ptr %0, i64 72
  %749 = getelementptr inbounds i8, ptr %0, i64 5096
  call void @_ZN11alglib_impl13sascorrectionEPNS_10sactivesetEPNS_9ae_vectorEPdPNS_8ae_stateE(ptr noundef nonnull %748, ptr noundef nonnull %749, ptr noundef nonnull %4, ptr noundef %1)
  %.not1056.not1150 = icmp sgt i64 %.01037, 0
  br i1 %.not1056.not1150, label %.lr.ph1153, label %._crit_edge1154

.lr.ph1153:                                       ; preds = %747
  %750 = getelementptr inbounds i8, ptr %0, i64 5152
  %751 = getelementptr inbounds i8, ptr %0, i64 4616
  %752 = add nsw i64 %.01037, -1
  %xtraiter = and i64 %.01037, 3
  %753 = icmp ult i64 %752, 3
  br i1 %753, label %._crit_edge1154.loopexit.unr-lcssa, label %.lr.ph1153.new

.lr.ph1153.new:                                   ; preds = %.lr.ph1153
  %unroll_iter = and i64 %.01037, 9223372036854775804
  br label %754

754:                                              ; preds = %754, %.lr.ph1153.new
  %.1210261151 = phi i64 [ 0, %.lr.ph1153.new ], [ %778, %754 ]
  %niter = phi i64 [ 0, %.lr.ph1153.new ], [ %niter.next.3, %754 ]
  %755 = load ptr, ptr %750, align 8, !tbaa !26
  %756 = getelementptr inbounds double, ptr %755, i64 %.1210261151
  %757 = load double, ptr %756, align 8, !tbaa !31
  %758 = load ptr, ptr %751, align 8, !tbaa !26
  %759 = getelementptr inbounds double, ptr %758, i64 %.1210261151
  store double %757, ptr %759, align 8, !tbaa !31
  %760 = or disjoint i64 %.1210261151, 1
  %761 = load ptr, ptr %750, align 8, !tbaa !26
  %762 = getelementptr inbounds double, ptr %761, i64 %760
  %763 = load double, ptr %762, align 8, !tbaa !31
  %764 = load ptr, ptr %751, align 8, !tbaa !26
  %765 = getelementptr inbounds double, ptr %764, i64 %760
  store double %763, ptr %765, align 8, !tbaa !31
  %766 = or disjoint i64 %.1210261151, 2
  %767 = load ptr, ptr %750, align 8, !tbaa !26
  %768 = getelementptr inbounds double, ptr %767, i64 %766
  %769 = load double, ptr %768, align 8, !tbaa !31
  %770 = load ptr, ptr %751, align 8, !tbaa !26
  %771 = getelementptr inbounds double, ptr %770, i64 %766
  store double %769, ptr %771, align 8, !tbaa !31
  %772 = or disjoint i64 %.1210261151, 3
  %773 = load ptr, ptr %750, align 8, !tbaa !26
  %774 = getelementptr inbounds double, ptr %773, i64 %772
  %775 = load double, ptr %774, align 8, !tbaa !31
  %776 = load ptr, ptr %751, align 8, !tbaa !26
  %777 = getelementptr inbounds double, ptr %776, i64 %772
  store double %775, ptr %777, align 8, !tbaa !31
  %778 = add nuw nsw i64 %.1210261151, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge1154.loopexit.unr-lcssa, label %754, !llvm.loop !93

._crit_edge1154.loopexit.unr-lcssa:               ; preds = %754, %.lr.ph1153
  %.1210261151.unr = phi i64 [ 0, %.lr.ph1153 ], [ %778, %754 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1154, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge1154.loopexit.unr-lcssa, %.epil.preheader
  %.1210261151.epil = phi i64 [ %784, %.epil.preheader ], [ %.1210261151.unr, %._crit_edge1154.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge1154.loopexit.unr-lcssa ]
  %779 = load ptr, ptr %750, align 8, !tbaa !26
  %780 = getelementptr inbounds double, ptr %779, i64 %.1210261151.epil
  %781 = load double, ptr %780, align 8, !tbaa !31
  %782 = load ptr, ptr %751, align 8, !tbaa !26
  %783 = getelementptr inbounds double, ptr %782, i64 %.1210261151.epil
  store double %781, ptr %783, align 8, !tbaa !31
  %784 = add nuw nsw i64 %.1210261151.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge1154, label %.epil.preheader, !llvm.loop !94

._crit_edge1154:                                  ; preds = %._crit_edge1154.loopexit.unr-lcssa, %.epil.preheader, %747
  %.121026.lcssa = phi i64 [ 0, %747 ], [ %.01037, %.epil.preheader ], [ %.01037, %._crit_edge1154.loopexit.unr-lcssa ]
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %785 = getelementptr inbounds i8, ptr %0, i64 64
  %786 = load double, ptr %785, align 8, !tbaa !50
  %787 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %786, double noundef 0.000000e+00)
  br i1 %787, label %795, label %788

788:                                              ; preds = %._crit_edge1154
  %789 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 1, ptr %789, align 1, !tbaa !56
  br label %1432

790:                                              ; preds = %40
  %791 = getelementptr inbounds i8, ptr %0, i64 4697
  store i8 0, ptr %791, align 1, !tbaa !56
  %792 = getelementptr inbounds i8, ptr %0, i64 5832
  %793 = load i64, ptr %792, align 8, !tbaa !64
  %794 = add nsw i64 %793, 1
  store i64 %794, ptr %792, align 8, !tbaa !64
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 4624
  %.pre = load double, ptr %.phi.trans.insert, align 8, !tbaa !57
  br label %1018

795:                                              ; preds = %._crit_edge1154
  %796 = getelementptr inbounds i8, ptr %0, i64 4696
  store i8 1, ptr %796, align 8, !tbaa !62
  br label %1432

797:                                              ; preds = %40
  %798 = getelementptr inbounds i8, ptr %0, i64 4624
  %799 = load double, ptr %798, align 8, !tbaa !57
  %800 = getelementptr inbounds i8, ptr %0, i64 7608
  store double %799, ptr %800, align 8, !tbaa !67
  br label %801

801:                                              ; preds = %1002, %797
  %.131027 = phi i64 [ 0, %797 ], [ %1012, %1002 ]
  %.not1050 = icmp slt i64 %.131027, %.01037
  br i1 %.not1050, label %802, label %1013

802:                                              ; preds = %801
  %803 = getelementptr inbounds i8, ptr %0, i64 4616
  %804 = load ptr, ptr %803, align 8, !tbaa !26
  %805 = getelementptr inbounds double, ptr %804, i64 %.131027
  %806 = load double, ptr %805, align 8, !tbaa !31
  %807 = getelementptr inbounds i8, ptr %0, i64 5616
  %808 = load ptr, ptr %807, align 8, !tbaa !26
  %809 = getelementptr inbounds i8, ptr %808, i64 %.131027
  %810 = load i8, ptr %809, align 1, !tbaa !28, !range !29, !noundef !30
  %811 = trunc nuw i8 %810 to i1
  br i1 %811, label %812, label %827

812:                                              ; preds = %802
  %813 = getelementptr inbounds i8, ptr %0, i64 64
  %814 = load double, ptr %813, align 8, !tbaa !50
  %815 = getelementptr inbounds i8, ptr %0, i64 4472
  %816 = load ptr, ptr %815, align 8, !tbaa !26
  %817 = getelementptr inbounds double, ptr %816, i64 %.131027
  %818 = load double, ptr %817, align 8, !tbaa !31
  %819 = fneg double %814
  %820 = tail call double @llvm.fmuladd.f64(double %819, double %818, double %806)
  %821 = getelementptr inbounds i8, ptr %0, i64 5744
  %822 = load ptr, ptr %821, align 8, !tbaa !26
  %823 = getelementptr inbounds double, ptr %822, i64 %.131027
  %824 = load double, ptr %823, align 8, !tbaa !31
  %825 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %820, double noundef %824)
  %826 = zext i1 %825 to i8
  br label %827

827:                                              ; preds = %812, %802
  %.7984 = phi i8 [ %826, %812 ], [ 0, %802 ]
  %828 = getelementptr inbounds i8, ptr %0, i64 5680
  %829 = load ptr, ptr %828, align 8, !tbaa !26
  %830 = getelementptr inbounds i8, ptr %829, i64 %.131027
  %831 = load i8, ptr %830, align 1, !tbaa !28, !range !29, !noundef !30
  %832 = trunc nuw i8 %831 to i1
  br i1 %832, label %833, label %849

833:                                              ; preds = %827
  %834 = trunc nuw i8 %.7984 to i1
  br i1 %834, label %.thread1071, label %835

835:                                              ; preds = %833
  %836 = getelementptr inbounds i8, ptr %0, i64 64
  %837 = load double, ptr %836, align 8, !tbaa !50
  %838 = getelementptr inbounds i8, ptr %0, i64 4472
  %839 = load ptr, ptr %838, align 8, !tbaa !26
  %840 = getelementptr inbounds double, ptr %839, i64 %.131027
  %841 = load double, ptr %840, align 8, !tbaa !31
  %842 = tail call double @llvm.fmuladd.f64(double %837, double %841, double %806)
  %843 = getelementptr inbounds i8, ptr %0, i64 5808
  %844 = load ptr, ptr %843, align 8, !tbaa !26
  %845 = getelementptr inbounds double, ptr %844, i64 %.131027
  %846 = load double, ptr %845, align 8, !tbaa !31
  %847 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %842, double noundef %846)
  %848 = zext i1 %847 to i8
  br label %849

849:                                              ; preds = %835, %827
  %.8985 = phi i8 [ %.7984, %827 ], [ %848, %835 ]
  %850 = trunc nuw i8 %.8985 to i1
  br i1 %850, label %.thread1071, label %851

851:                                              ; preds = %849
  %852 = getelementptr inbounds i8, ptr %0, i64 64
  %853 = load double, ptr %852, align 8, !tbaa !50
  %854 = getelementptr inbounds i8, ptr %0, i64 4472
  %855 = load ptr, ptr %854, align 8, !tbaa !26
  %856 = getelementptr inbounds double, ptr %855, i64 %.131027
  %857 = load double, ptr %856, align 8, !tbaa !31
  %858 = fneg double %853
  %859 = tail call double @llvm.fmuladd.f64(double %858, double %857, double %806)
  %860 = load ptr, ptr %803, align 8, !tbaa !26
  %861 = getelementptr inbounds double, ptr %860, i64 %.131027
  store double %859, ptr %861, align 8, !tbaa !31
  br label %1432

862:                                              ; preds = %40
  %863 = getelementptr inbounds i8, ptr %0, i64 4624
  %864 = load double, ptr %863, align 8, !tbaa !57
  %865 = getelementptr inbounds i8, ptr %0, i64 7616
  store double %864, ptr %865, align 8, !tbaa !68
  %866 = getelementptr inbounds i8, ptr %0, i64 64
  %867 = load double, ptr %866, align 8, !tbaa !50
  %868 = getelementptr inbounds i8, ptr %0, i64 4472
  %869 = load ptr, ptr %868, align 8, !tbaa !26
  %870 = getelementptr inbounds double, ptr %869, i64 %.01014
  %871 = load double, ptr %870, align 8, !tbaa !31
  %872 = fmul double %867, -5.000000e-01
  %873 = tail call double @llvm.fmuladd.f64(double %872, double %871, double %.0999)
  %874 = getelementptr inbounds i8, ptr %0, i64 4616
  %875 = load ptr, ptr %874, align 8, !tbaa !26
  %876 = getelementptr inbounds double, ptr %875, i64 %.01014
  store double %873, ptr %876, align 8, !tbaa !31
  br label %1432

877:                                              ; preds = %40
  %878 = getelementptr inbounds i8, ptr %0, i64 4624
  %879 = load double, ptr %878, align 8, !tbaa !57
  %880 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %879, ptr %880, align 8, !tbaa !69
  %881 = getelementptr inbounds i8, ptr %0, i64 64
  %882 = load double, ptr %881, align 8, !tbaa !50
  %883 = fmul double %882, 5.000000e-01
  %884 = getelementptr inbounds i8, ptr %0, i64 4472
  %885 = load ptr, ptr %884, align 8, !tbaa !26
  %886 = getelementptr inbounds double, ptr %885, i64 %.01014
  %887 = load double, ptr %886, align 8, !tbaa !31
  %888 = tail call double @llvm.fmuladd.f64(double %883, double %887, double %.0999)
  %889 = getelementptr inbounds i8, ptr %0, i64 4616
  %890 = load ptr, ptr %889, align 8, !tbaa !26
  %891 = getelementptr inbounds double, ptr %890, i64 %.01014
  store double %888, ptr %891, align 8, !tbaa !31
  br label %1432

892:                                              ; preds = %40
  %893 = getelementptr inbounds i8, ptr %0, i64 4624
  %894 = load double, ptr %893, align 8, !tbaa !57
  %895 = getelementptr inbounds i8, ptr %0, i64 7632
  store double %894, ptr %895, align 8, !tbaa !70
  %896 = getelementptr inbounds i8, ptr %0, i64 64
  %897 = load double, ptr %896, align 8, !tbaa !50
  %898 = getelementptr inbounds i8, ptr %0, i64 4472
  %899 = load ptr, ptr %898, align 8, !tbaa !26
  %900 = getelementptr inbounds double, ptr %899, i64 %.01014
  %901 = load double, ptr %900, align 8, !tbaa !31
  %902 = tail call double @llvm.fmuladd.f64(double %897, double %901, double %.0999)
  %903 = getelementptr inbounds i8, ptr %0, i64 4616
  %904 = load ptr, ptr %903, align 8, !tbaa !26
  %905 = getelementptr inbounds double, ptr %904, i64 %.01014
  store double %902, ptr %905, align 8, !tbaa !31
  br label %1432

906:                                              ; preds = %40
  %907 = getelementptr inbounds i8, ptr %0, i64 4624
  %908 = load double, ptr %907, align 8, !tbaa !57
  %909 = getelementptr inbounds i8, ptr %0, i64 7640
  store double %908, ptr %909, align 8, !tbaa !71
  %910 = getelementptr inbounds i8, ptr %0, i64 7632
  %911 = load double, ptr %910, align 8, !tbaa !70
  %912 = getelementptr inbounds i8, ptr %0, i64 7624
  %913 = load double, ptr %912, align 8, !tbaa !69
  %914 = fsub double %911, %913
  %915 = getelementptr inbounds i8, ptr %0, i64 7616
  %916 = load double, ptr %915, align 8, !tbaa !68
  %917 = fsub double %908, %916
  %918 = fneg double %917
  %919 = tail call double @llvm.fmuladd.f64(double %914, double 8.000000e+00, double %918)
  %920 = getelementptr inbounds i8, ptr %0, i64 64
  %921 = load double, ptr %920, align 8, !tbaa !50
  %922 = fmul double %921, 6.000000e+00
  %923 = getelementptr inbounds i8, ptr %0, i64 4472
  %924 = load ptr, ptr %923, align 8, !tbaa !26
  %925 = getelementptr inbounds double, ptr %924, i64 %.01014
  %926 = load double, ptr %925, align 8, !tbaa !31
  %927 = fmul double %922, %926
  %928 = fdiv double %919, %927
  br label %1002

.thread1071:                                      ; preds = %833, %849
  %.89851073 = phi i8 [ %.8985, %849 ], [ 1, %833 ]
  %929 = getelementptr inbounds i8, ptr %0, i64 64
  %930 = load double, ptr %929, align 8, !tbaa !50
  %931 = getelementptr inbounds i8, ptr %0, i64 4472
  %932 = load ptr, ptr %931, align 8, !tbaa !26
  %933 = getelementptr inbounds double, ptr %932, i64 %.131027
  %934 = load double, ptr %933, align 8, !tbaa !31
  %935 = fneg double %930
  %936 = tail call double @llvm.fmuladd.f64(double %935, double %934, double %806)
  %937 = getelementptr inbounds i8, ptr %0, i64 7648
  store double %936, ptr %937, align 8, !tbaa !72
  %938 = load double, ptr %933, align 8, !tbaa !31
  %939 = tail call double @llvm.fmuladd.f64(double %930, double %938, double %806)
  %940 = getelementptr inbounds i8, ptr %0, i64 7656
  store double %939, ptr %940, align 8, !tbaa !73
  %941 = load ptr, ptr %807, align 8, !tbaa !26
  %942 = getelementptr inbounds i8, ptr %941, i64 %.131027
  %943 = load i8, ptr %942, align 1, !tbaa !28, !range !29, !noundef !30
  %944 = trunc nuw i8 %943 to i1
  br i1 %944, label %945, label %955

945:                                              ; preds = %.thread1071
  %946 = getelementptr inbounds i8, ptr %0, i64 5744
  %947 = load ptr, ptr %946, align 8, !tbaa !26
  %948 = getelementptr inbounds double, ptr %947, i64 %.131027
  %949 = load double, ptr %948, align 8, !tbaa !31
  %950 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %936, double noundef %949)
  br i1 %950, label %951, label %955

951:                                              ; preds = %945
  %952 = load ptr, ptr %946, align 8, !tbaa !26
  %953 = getelementptr inbounds double, ptr %952, i64 %.131027
  %954 = load double, ptr %953, align 8, !tbaa !31
  store double %954, ptr %937, align 8, !tbaa !72
  br label %955

955:                                              ; preds = %951, %945, %.thread1071
  %956 = load ptr, ptr %828, align 8, !tbaa !26
  %957 = getelementptr inbounds i8, ptr %956, i64 %.131027
  %958 = load i8, ptr %957, align 1, !tbaa !28, !range !29, !noundef !30
  %959 = trunc nuw i8 %958 to i1
  br i1 %959, label %960, label %971

960:                                              ; preds = %955
  %961 = load double, ptr %940, align 8, !tbaa !73
  %962 = getelementptr inbounds i8, ptr %0, i64 5808
  %963 = load ptr, ptr %962, align 8, !tbaa !26
  %964 = getelementptr inbounds double, ptr %963, i64 %.131027
  %965 = load double, ptr %964, align 8, !tbaa !31
  %966 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %961, double noundef %965)
  br i1 %966, label %967, label %971

967:                                              ; preds = %960
  %968 = load ptr, ptr %962, align 8, !tbaa !26
  %969 = getelementptr inbounds double, ptr %968, i64 %.131027
  %970 = load double, ptr %969, align 8, !tbaa !31
  store double %970, ptr %940, align 8, !tbaa !73
  br label %971

971:                                              ; preds = %967, %960, %955
  %972 = load double, ptr %937, align 8, !tbaa !72
  %973 = load ptr, ptr %803, align 8, !tbaa !26
  %974 = getelementptr inbounds double, ptr %973, i64 %.131027
  store double %972, ptr %974, align 8, !tbaa !31
  br label %1432

975:                                              ; preds = %40
  %976 = getelementptr inbounds i8, ptr %0, i64 4624
  %977 = load double, ptr %976, align 8, !tbaa !57
  %978 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %977, ptr %978, align 8, !tbaa !69
  %979 = getelementptr inbounds i8, ptr %0, i64 7656
  %980 = load double, ptr %979, align 8, !tbaa !73
  %981 = getelementptr inbounds i8, ptr %0, i64 4616
  %982 = load ptr, ptr %981, align 8, !tbaa !26
  %983 = getelementptr inbounds double, ptr %982, i64 %.01014
  store double %980, ptr %983, align 8, !tbaa !31
  br label %1432

984:                                              ; preds = %40
  %985 = getelementptr inbounds i8, ptr %0, i64 4624
  %986 = load double, ptr %985, align 8, !tbaa !57
  %987 = getelementptr inbounds i8, ptr %0, i64 7632
  store double %986, ptr %987, align 8, !tbaa !70
  %988 = getelementptr inbounds i8, ptr %0, i64 7648
  %989 = load double, ptr %988, align 8, !tbaa !72
  %990 = getelementptr inbounds i8, ptr %0, i64 7656
  %991 = load double, ptr %990, align 8, !tbaa !73
  %992 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %989, double noundef %991)
  br i1 %992, label %993, label %1002

993:                                              ; preds = %984
  %994 = load double, ptr %987, align 8, !tbaa !70
  %995 = getelementptr inbounds i8, ptr %0, i64 7624
  %996 = load double, ptr %995, align 8, !tbaa !69
  %997 = fsub double %994, %996
  %998 = load double, ptr %990, align 8, !tbaa !73
  %999 = load double, ptr %988, align 8, !tbaa !72
  %1000 = fsub double %998, %999
  %1001 = fdiv double %997, %1000
  br label %1002

1002:                                             ; preds = %993, %984, %906
  %.sink1306.sink = phi double [ %928, %906 ], [ %1001, %993 ], [ 0.000000e+00, %984 ]
  %.sink1313 = phi i64 [ 4, %906 ], [ 2, %993 ], [ 2, %984 ]
  %1003 = getelementptr inbounds i8, ptr %0, i64 4688
  %1004 = load ptr, ptr %1003, align 8, !tbaa !26
  %1005 = getelementptr inbounds double, ptr %1004, i64 %.01014
  store double %.sink1306.sink, ptr %1005, align 8, !tbaa !31
  %1006 = getelementptr inbounds i8, ptr %0, i64 5832
  %1007 = load i64, ptr %1006, align 8, !tbaa !64
  %1008 = add nsw i64 %1007, %.sink1313
  store i64 %1008, ptr %1006, align 8, !tbaa !64
  %1009 = getelementptr inbounds i8, ptr %0, i64 4616
  %1010 = load ptr, ptr %1009, align 8, !tbaa !26
  %1011 = getelementptr inbounds double, ptr %1010, i64 %.01014
  store double %.0999, ptr %1011, align 8, !tbaa !31
  %1012 = add nsw i64 %.01014, 1
  br label %801

1013:                                             ; preds = %801
  %1014 = getelementptr inbounds i8, ptr %0, i64 7608
  %1015 = load double, ptr %1014, align 8, !tbaa !67
  %1016 = getelementptr inbounds i8, ptr %0, i64 4624
  store double %1015, ptr %1016, align 8, !tbaa !57
  %1017 = getelementptr inbounds i8, ptr %0, i64 4696
  store i8 0, ptr %1017, align 8, !tbaa !62
  br label %1018

1018:                                             ; preds = %1013, %790
  %1019 = phi double [ %1015, %1013 ], [ %.pre, %790 ]
  %1020 = getelementptr inbounds i8, ptr %0, i64 8448
  %1021 = getelementptr inbounds i8, ptr %0, i64 4416
  %1022 = getelementptr inbounds i8, ptr %0, i64 14216
  %1023 = getelementptr inbounds i8, ptr %0, i64 5376
  %1024 = getelementptr inbounds i8, ptr %0, i64 7840
  %1025 = load double, ptr %1024, align 8, !tbaa !82
  %1026 = getelementptr inbounds i8, ptr %0, i64 4560
  %1027 = getelementptr inbounds i8, ptr %0, i64 4624
  %1028 = getelementptr inbounds i8, ptr %0, i64 4632
  tail call void @_ZN11alglib_impl31smoothnessmonitorenqueuepoint1uEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_S4_dS4_dS4_PNS_8ae_stateE(ptr noundef nonnull %1020, ptr noundef nonnull %1021, ptr noundef nonnull %1022, ptr noundef nonnull %1023, double noundef %1025, ptr noundef nonnull %1026, double noundef %1019, ptr noundef nonnull %1028, ptr noundef %1)
  %1029 = load double, ptr %1027, align 8, !tbaa !57
  %1030 = load double, ptr @_ZN11alglib_implL22minbleic_penaltyfactorE, align 8, !tbaa !31
  %1031 = getelementptr inbounds i8, ptr %0, i64 5552
  %1032 = load double, ptr %1031, align 8, !tbaa !75
  %1033 = fmul double %1030, %1032
  %1034 = tail call double @llvm.fmuladd.f64(double %1033, double %41, double %1029)
  %1035 = getelementptr inbounds i8, ptr %0, i64 5360
  store double %1034, ptr %1035, align 8, !tbaa !90
  %1036 = getelementptr inbounds i8, ptr %0, i64 5224
  %1037 = getelementptr inbounds i8, ptr %0, i64 5280
  %1038 = load ptr, ptr %1037, align 8, !tbaa !26
  %1039 = getelementptr inbounds i8, ptr %0, i64 4688
  %1040 = load ptr, ptr %1039, align 8, !tbaa !26
  %1041 = add nsw i64 %.01037, -1
  %1042 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1041)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1038, i64 noundef 1, ptr noundef %1040, i64 noundef 1, i64 noundef %1042)
  %1043 = getelementptr inbounds i8, ptr %0, i64 5160
  %1044 = getelementptr inbounds i8, ptr %0, i64 5216
  %1045 = load ptr, ptr %1044, align 8, !tbaa !26
  %1046 = load ptr, ptr %1039, align 8, !tbaa !26
  %1047 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1041)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1045, i64 noundef 1, ptr noundef %1046, i64 noundef 1, i64 noundef %1047)
  %1048 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1048, ptr noundef nonnull %1036, ptr noundef %1)
  %1049 = getelementptr inbounds i8, ptr %0, i64 8120
  %1050 = load double, ptr %1049, align 8, !tbaa !95
  tail call void @_ZN11alglib_impl12trimfunctionEPdPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %1035, ptr noundef nonnull %1036, i64 noundef %.01037, double noundef %1050, ptr noundef %1)
  %1051 = getelementptr inbounds i8, ptr %0, i64 5096
  %1052 = getelementptr inbounds i8, ptr %0, i64 7848
  %1053 = load double, ptr %1052, align 8, !tbaa !83
  %1054 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !31
  %1055 = getelementptr inbounds i8, ptr %0, i64 7824
  %1056 = getelementptr inbounds i8, ptr %0, i64 7864
  %1057 = getelementptr inbounds i8, ptr %0, i64 7928
  %1058 = getelementptr inbounds i8, ptr %0, i64 7832
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %.01037, ptr noundef nonnull %1051, ptr noundef nonnull %1035, ptr noundef nonnull %1043, ptr noundef nonnull %1023, ptr noundef nonnull %1024, double noundef %1053, double noundef %1054, ptr noundef nonnull %3, ptr noundef nonnull %1055, ptr noundef nonnull %1056, ptr noundef nonnull %1057, ptr noundef nonnull %1058, ptr noundef %1)
  br label %743

1059:                                             ; preds = %743
  %1060 = getelementptr inbounds i8, ptr %0, i64 8288
  %1061 = load ptr, ptr %1060, align 8, !tbaa !26
  %1062 = getelementptr inbounds i8, ptr %0, i64 8424
  %1063 = load i64, ptr %1062, align 8, !tbaa !76
  %1064 = getelementptr inbounds ptr, ptr %1061, i64 %1063
  %1065 = load ptr, ptr %1064, align 8, !tbaa !52
  %1066 = getelementptr inbounds i8, ptr %0, i64 72
  %1067 = getelementptr inbounds i8, ptr %0, i64 144
  %1068 = load ptr, ptr %1067, align 8, !tbaa !26
  %1069 = add nsw i64 %.01037, -1
  %1070 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %1065, i64 noundef 1, ptr noundef %1068, i64 noundef 1, i64 noundef %1070)
  %1071 = getelementptr inbounds i8, ptr %0, i64 8208
  %1072 = load ptr, ptr %1071, align 8, !tbaa !26
  %1073 = load i64, ptr %1062, align 8, !tbaa !76
  %1074 = getelementptr inbounds ptr, ptr %1072, i64 %1073
  %1075 = load ptr, ptr %1074, align 8, !tbaa !52
  %1076 = getelementptr inbounds i8, ptr %0, i64 5088
  %1077 = load ptr, ptr %1076, align 8, !tbaa !26
  %1078 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %1075, i64 noundef 1, ptr noundef %1077, i64 noundef 1, i64 noundef %1078)
  %1079 = load ptr, ptr %1060, align 8, !tbaa !26
  %1080 = load i64, ptr %1062, align 8, !tbaa !76
  %1081 = getelementptr inbounds ptr, ptr %1079, i64 %1080
  %1082 = load ptr, ptr %1081, align 8, !tbaa !52
  %1083 = getelementptr inbounds i8, ptr %0, i64 5096
  %1084 = getelementptr inbounds i8, ptr %0, i64 5152
  %1085 = load ptr, ptr %1084, align 8, !tbaa !26
  %1086 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1082, i64 noundef 1, ptr noundef %1085, i64 noundef 1, i64 noundef %1086)
  %1087 = load ptr, ptr %1071, align 8, !tbaa !26
  %1088 = load i64, ptr %1062, align 8, !tbaa !76
  %1089 = getelementptr inbounds ptr, ptr %1087, i64 %1088
  %1090 = load ptr, ptr %1089, align 8, !tbaa !52
  %1091 = getelementptr inbounds i8, ptr %0, i64 5280
  %1092 = load ptr, ptr %1091, align 8, !tbaa !26
  %1093 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1090, i64 noundef 1, ptr noundef %1092, i64 noundef 1, i64 noundef %1093)
  %1094 = getelementptr inbounds i8, ptr %0, i64 8448
  call void @_ZN11alglib_impl35smoothnessmonitorfinalizelinesearchEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef nonnull %1094, ptr noundef %1)
  %1095 = getelementptr inbounds i8, ptr %0, i64 5360
  %1096 = load double, ptr %1095, align 8, !tbaa !90
  %.not1057.not1156 = icmp sgt i64 %.01037, 0
  br i1 %.not1057.not1156, label %.lr.ph1160, label %._crit_edge1161

.lr.ph1160:                                       ; preds = %1059
  %1097 = getelementptr inbounds i8, ptr %0, i64 5216
  %1098 = load ptr, ptr %1097, align 8, !tbaa !26
  %1099 = add nsw i64 %.01037, -1
  %xtraiter1360 = and i64 %.01037, 3
  %1100 = icmp ult i64 %1099, 3
  br i1 %1100, label %._crit_edge1161.loopexit.unr-lcssa, label %.lr.ph1160.new

.lr.ph1160.new:                                   ; preds = %.lr.ph1160
  %unroll_iter1364 = and i64 %.01037, 9223372036854775804
  br label %1101

1101:                                             ; preds = %1101, %.lr.ph1160.new
  %.710061158 = phi double [ %1096, %.lr.ph1160.new ], [ %1116, %1101 ]
  %.1410281157 = phi i64 [ 0, %.lr.ph1160.new ], [ %1117, %1101 ]
  %niter1365 = phi i64 [ 0, %.lr.ph1160.new ], [ %niter1365.next.3, %1101 ]
  %1102 = getelementptr inbounds double, ptr %1098, i64 %.1410281157
  %1103 = load double, ptr %1102, align 8, !tbaa !31
  %1104 = call double @llvm.fmuladd.f64(double %.710061158, double 1.000000e-01, double %1103)
  %1105 = or disjoint i64 %.1410281157, 1
  %1106 = getelementptr inbounds double, ptr %1098, i64 %1105
  %1107 = load double, ptr %1106, align 8, !tbaa !31
  %1108 = call double @llvm.fmuladd.f64(double %1104, double 1.000000e-01, double %1107)
  %1109 = or disjoint i64 %.1410281157, 2
  %1110 = getelementptr inbounds double, ptr %1098, i64 %1109
  %1111 = load double, ptr %1110, align 8, !tbaa !31
  %1112 = call double @llvm.fmuladd.f64(double %1108, double 1.000000e-01, double %1111)
  %1113 = or disjoint i64 %.1410281157, 3
  %1114 = getelementptr inbounds double, ptr %1098, i64 %1113
  %1115 = load double, ptr %1114, align 8, !tbaa !31
  %1116 = call double @llvm.fmuladd.f64(double %1112, double 1.000000e-01, double %1115)
  %1117 = add nuw nsw i64 %.1410281157, 4
  %niter1365.next.3 = add i64 %niter1365, 4
  %niter1365.ncmp.3 = icmp eq i64 %niter1365.next.3, %unroll_iter1364
  br i1 %niter1365.ncmp.3, label %._crit_edge1161.loopexit.unr-lcssa, label %1101, !llvm.loop !96

._crit_edge1161.loopexit.unr-lcssa:               ; preds = %1101, %.lr.ph1160
  %.lcssa1345.ph = phi double [ poison, %.lr.ph1160 ], [ %1116, %1101 ]
  %.710061158.unr = phi double [ %1096, %.lr.ph1160 ], [ %1116, %1101 ]
  %.1410281157.unr = phi i64 [ 0, %.lr.ph1160 ], [ %1117, %1101 ]
  %lcmp.mod1362.not = icmp eq i64 %xtraiter1360, 0
  br i1 %lcmp.mod1362.not, label %._crit_edge1161, label %.epil.preheader1359

.epil.preheader1359:                              ; preds = %._crit_edge1161.loopexit.unr-lcssa, %.epil.preheader1359
  %.710061158.epil = phi double [ %1120, %.epil.preheader1359 ], [ %.710061158.unr, %._crit_edge1161.loopexit.unr-lcssa ]
  %.1410281157.epil = phi i64 [ %1121, %.epil.preheader1359 ], [ %.1410281157.unr, %._crit_edge1161.loopexit.unr-lcssa ]
  %epil.iter1361 = phi i64 [ %epil.iter1361.next, %.epil.preheader1359 ], [ 0, %._crit_edge1161.loopexit.unr-lcssa ]
  %1118 = getelementptr inbounds double, ptr %1098, i64 %.1410281157.epil
  %1119 = load double, ptr %1118, align 8, !tbaa !31
  %1120 = call double @llvm.fmuladd.f64(double %.710061158.epil, double 1.000000e-01, double %1119)
  %1121 = add nuw nsw i64 %.1410281157.epil, 1
  %epil.iter1361.next = add i64 %epil.iter1361, 1
  %epil.iter1361.cmp.not = icmp eq i64 %epil.iter1361.next, %xtraiter1360
  br i1 %epil.iter1361.cmp.not, label %._crit_edge1161, label %.epil.preheader1359, !llvm.loop !97

._crit_edge1161:                                  ; preds = %._crit_edge1161.loopexit.unr-lcssa, %.epil.preheader1359, %1059
  %.141028.lcssa = phi i64 [ 0, %1059 ], [ %.01037, %.epil.preheader1359 ], [ %.01037, %._crit_edge1161.loopexit.unr-lcssa ]
  %.71006.lcssa = phi double [ %1096, %1059 ], [ %.lcssa1345.ph, %._crit_edge1161.loopexit.unr-lcssa ], [ %1120, %.epil.preheader1359 ]
  %1122 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %.71006.lcssa, ptr noundef %1)
  br i1 %1122, label %1123, label %.loopexit1091.sink.split

1123:                                             ; preds = %._crit_edge1161
  %1124 = load i64, ptr %3, align 8
  %1125 = and i64 %1124, -5
  %or.cond.not = icmp eq i64 %1125, 1
  br i1 %or.cond.not, label %1175, label %.preheader1089

.preheader1089:                                   ; preds = %1123
  br i1 %.not1057.not1156, label %.lr.ph1167, label %._crit_edge1168

.lr.ph1167:                                       ; preds = %.preheader1089
  %1126 = getelementptr inbounds i8, ptr %0, i64 5432
  %1127 = getelementptr inbounds i8, ptr %0, i64 7848
  %1128 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1129

1129:                                             ; preds = %.lr.ph1167, %1129
  %.810071166 = phi double [ 0.000000e+00, %.lr.ph1167 ], [ %1140, %1129 ]
  %.1510291165 = phi i64 [ 0, %.lr.ph1167 ], [ %1141, %1129 ]
  %1130 = load ptr, ptr %1126, align 8, !tbaa !26
  %1131 = getelementptr inbounds double, ptr %1130, i64 %.1510291165
  %1132 = load double, ptr %1131, align 8, !tbaa !31
  %1133 = load double, ptr %1127, align 8, !tbaa !83
  %1134 = fmul double %1132, %1133
  %1135 = load ptr, ptr %1128, align 8, !tbaa !26
  %1136 = getelementptr inbounds double, ptr %1135, i64 %.1510291165
  %1137 = load double, ptr %1136, align 8, !tbaa !31
  %1138 = fdiv double %1134, %1137
  %1139 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1138, ptr noundef %1)
  %1140 = fadd double %.810071166, %1139
  %1141 = add nuw nsw i64 %.1510291165, 1
  %exitcond1263.not = icmp eq i64 %1141, %.01037
  br i1 %exitcond1263.not, label %._crit_edge1168, label %1129, !llvm.loop !98

._crit_edge1168:                                  ; preds = %1129, %.preheader1089
  %.151029.lcssa = phi i64 [ 0, %.preheader1089 ], [ %.01037, %1129 ]
  %.81007.lcssa = phi double [ 0.000000e+00, %.preheader1089 ], [ %1140, %1129 ]
  %1142 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.81007.lcssa, ptr noundef %1)
  %1143 = getelementptr inbounds i8, ptr %0, i64 7680
  %1144 = load i64, ptr %1143, align 8, !tbaa !85
  %1145 = icmp sgt i64 %1144, -1
  br i1 %1145, label %1146, label %1171

1146:                                             ; preds = %._crit_edge1168
  %1147 = load double, ptr @_ZN11alglib_implL27minbleic_maxnonmonotoniclenE, align 8, !tbaa !31
  %1148 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1142, double noundef %1147)
  br i1 %1148, label %1149, label %1171

1149:                                             ; preds = %1146
  %1150 = getelementptr inbounds i8, ptr %0, i64 8128
  %1151 = load i64, ptr %1150, align 8, !tbaa !61
  %1152 = icmp sgt i64 %1151, 0
  br i1 %1152, label %1153, label %1171

1153:                                             ; preds = %1149
  %1154 = getelementptr inbounds i8, ptr %0, i64 7848
  %1155 = load double, ptr %1154, align 8, !tbaa !83
  %1156 = getelementptr inbounds i8, ptr %0, i64 7816
  %1157 = load ptr, ptr %1156, align 8, !tbaa !26
  %1158 = load ptr, ptr %1067, align 8, !tbaa !26
  %1159 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1157, i64 noundef 1, ptr noundef %1158, i64 noundef 1, i64 noundef %1159)
  %1160 = load ptr, ptr %1156, align 8, !tbaa !26
  %1161 = getelementptr inbounds i8, ptr %0, i64 5432
  %1162 = load ptr, ptr %1161, align 8, !tbaa !26
  %1163 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %1160, i64 noundef 1, ptr noundef %1162, i64 noundef 1, i64 noundef %1163, double noundef %1155)
  %1164 = load double, ptr %1154, align 8, !tbaa !83
  %1165 = getelementptr inbounds i8, ptr %0, i64 7840
  store double %1164, ptr %1165, align 8, !tbaa !82
  store i64 5, ptr %3, align 8, !tbaa !27
  %1166 = load ptr, ptr %1084, align 8, !tbaa !26
  %1167 = load ptr, ptr %1156, align 8, !tbaa !26
  %1168 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1166, i64 noundef 1, ptr noundef %1167, i64 noundef 1, i64 noundef %1168)
  %1169 = load i64, ptr %1150, align 8, !tbaa !61
  %1170 = add nsw i64 %1169, -1
  store i64 %1170, ptr %1150, align 8, !tbaa !61
  br label %1175

1171:                                             ; preds = %1149, %1146, %._crit_edge1168
  %1172 = getelementptr inbounds i8, ptr %0, i64 4700
  %1173 = load i8, ptr %1172, align 4, !tbaa !33, !range !29, !noundef !30
  %1174 = trunc nuw i8 %1173 to i1
  br i1 %1174, label %.loopexit1091.sink.split, label %.loopexit1091

1175:                                             ; preds = %1153, %1123
  %.161030 = phi i64 [ %.151029.lcssa, %1153 ], [ %.141028.lcssa, %1123 ]
  %.101009 = phi double [ %1155, %1153 ], [ %.71006.lcssa, %1123 ]
  %.10 = phi i8 [ 1, %1153 ], [ %.6983, %1123 ]
  %1176 = getelementptr inbounds i8, ptr %0, i64 4702
  %1177 = load i8, ptr %1176, align 2, !tbaa !34, !range !29, !noundef !30
  %1178 = trunc nuw i8 %1177 to i1
  br i1 %1178, label %.loopexit1091, label %1179

1179:                                             ; preds = %1175
  %1180 = getelementptr inbounds i8, ptr %0, i64 5352
  %1181 = load double, ptr %1180, align 8, !tbaa !63
  %1182 = getelementptr inbounds i8, ptr %0, i64 5368
  store double %1181, ptr %1182, align 8, !tbaa !99
  %1183 = getelementptr inbounds i8, ptr %0, i64 5344
  %1184 = load ptr, ptr %1183, align 8, !tbaa !26
  %1185 = load ptr, ptr %1067, align 8, !tbaa !26
  %1186 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1184, i64 noundef 1, ptr noundef %1185, i64 noundef 1, i64 noundef %1186)
  %1187 = load double, ptr %1095, align 8, !tbaa !90
  store double %1187, ptr %1180, align 8, !tbaa !63
  %1188 = load ptr, ptr %1076, align 8, !tbaa !26
  %1189 = load ptr, ptr %1091, align 8, !tbaa !26
  %1190 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1188, i64 noundef 1, ptr noundef %1189, i64 noundef 1, i64 noundef %1190)
  %1191 = getelementptr inbounds i8, ptr %0, i64 5024
  %1192 = load ptr, ptr %1191, align 8, !tbaa !26
  %1193 = getelementptr inbounds i8, ptr %0, i64 5216
  %1194 = load ptr, ptr %1193, align 8, !tbaa !26
  %1195 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1192, i64 noundef 1, ptr noundef %1194, i64 noundef 1, i64 noundef %1195)
  %1196 = getelementptr inbounds i8, ptr %0, i64 7680
  %1197 = load i64, ptr %1196, align 8, !tbaa !85
  %1198 = icmp sgt i64 %1197, -1
  br i1 %1198, label %1199, label %1205

1199:                                             ; preds = %1179
  %1200 = getelementptr inbounds i8, ptr %0, i64 7840
  %1201 = load double, ptr %1200, align 8, !tbaa !82
  %1202 = getelementptr inbounds i8, ptr %0, i64 7856
  %1203 = load double, ptr %1202, align 8, !tbaa !84
  %1204 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1201, double noundef %1203)
  %.pre1275 = load i64, ptr %1196, align 8, !tbaa !85
  br label %1205

1205:                                             ; preds = %1199, %1179
  %1206 = phi i64 [ %1197, %1179 ], [ %.pre1275, %1199 ]
  %1207 = phi i1 [ false, %1179 ], [ %1204, %1199 ]
  %1208 = getelementptr inbounds i8, ptr %0, i64 7688
  %1209 = load double, ptr %1208, align 8, !tbaa !86
  %1210 = call noundef i64 @_ZN11alglib_impl9sasmovetoEPNS_10sactivesetEPKNS_9ae_vectorEbldPNS_8ae_stateE(ptr noundef nonnull %1066, ptr noundef nonnull %1083, i1 noundef zeroext %1207, i64 noundef %1206, double noundef %1209, ptr noundef %1)
  %1211 = getelementptr inbounds i8, ptr %0, i64 48
  %1212 = load i8, ptr %1211, align 8, !tbaa !65, !range !29, !noundef !30
  %1213 = trunc nuw i8 %1212 to i1
  br i1 %1213, label %1214, label %._crit_edge1276

._crit_edge1276:                                  ; preds = %1205
  %.pre1277 = load i64, ptr %3, align 8, !tbaa !27
  br label %1222

1214:                                             ; preds = %1205
  %1215 = getelementptr inbounds i8, ptr %0, i64 4616
  %1216 = load ptr, ptr %1215, align 8, !tbaa !26
  %1217 = load ptr, ptr %1067, align 8, !tbaa !26
  %1218 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1069)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1216, i64 noundef 1, ptr noundef %1217, i64 noundef 1, i64 noundef %1218)
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1219 = getelementptr inbounds i8, ptr %0, i64 4698
  store i8 1, ptr %1219, align 2, !tbaa !66
  br label %1432

1220:                                             ; preds = %40
  %1221 = getelementptr inbounds i8, ptr %0, i64 4698
  store i8 0, ptr %1221, align 2, !tbaa !66
  br label %1222

1222:                                             ; preds = %._crit_edge1276, %1220
  %1223 = phi i64 [ %.pre1277, %._crit_edge1276 ], [ %.sink1272, %1220 ]
  %.171031 = phi i64 [ %.161030, %._crit_edge1276 ], [ %.01014, %1220 ]
  %.111010 = phi double [ %.101009, %._crit_edge1276 ], [ %.0999, %1220 ]
  %.7994 = phi double [ %.6993, %._crit_edge1276 ], [ %.0987, %1220 ]
  %.11 = phi i8 [ %.10, %._crit_edge1276 ], [ %.0977, %1220 ]
  %.5974 = phi i64 [ %1210, %._crit_edge1276 ], [ %.0969, %1220 ]
  %.5966 = phi i64 [ %.4965, %._crit_edge1276 ], [ %.0961, %1220 ]
  %.6 = phi double [ %.5, %._crit_edge1276 ], [ %.0956, %1220 ]
  %1224 = getelementptr inbounds i8, ptr %0, i64 5816
  %1225 = load i64, ptr %1224, align 8, !tbaa !92
  %1226 = add nsw i64 %1225, 1
  store i64 %1226, ptr %1224, align 8, !tbaa !92
  %1227 = icmp eq i64 %1223, 1
  br i1 %1227, label %1228, label %.thread1079

1228:                                             ; preds = %1222
  %1229 = getelementptr inbounds i8, ptr %0, i64 8424
  %1230 = load i64, ptr %1229, align 8, !tbaa !76
  %1231 = icmp eq i64 %1230, %.01033
  br i1 %1231, label %.preheader1088, label %1273

.preheader1088:                                   ; preds = %1228
  %.not1059.not1171 = icmp sgt i64 %.01033, 0
  br i1 %.not1059.not1171, label %.lr.ph1173, label %.loopexit1087

.lr.ph1173:                                       ; preds = %.preheader1088
  %1232 = getelementptr inbounds i8, ptr %0, i64 8288
  %1233 = add nsw i64 %.01037, -1
  %1234 = getelementptr inbounds i8, ptr %0, i64 8208
  br label %1239

.preheader1086:                                   ; preds = %1239
  %.not10601175 = icmp slt i64 %1253, 2
  br i1 %.not10601175, label %.loopexit1087, label %.lr.ph1177

.lr.ph1177:                                       ; preds = %.preheader1086
  %1235 = getelementptr inbounds i8, ptr %0, i64 8352
  %1236 = getelementptr inbounds i8, ptr %0, i64 8416
  %1237 = add nsw i64 %1253, -1
  %xtraiter1367 = and i64 %1237, 1
  %1238 = icmp eq i64 %1253, 2
  br i1 %1238, label %.loopexit1087.loopexit.unr-lcssa, label %.lr.ph1177.new

.lr.ph1177.new:                                   ; preds = %.lr.ph1177
  %unroll_iter1370 = and i64 %1237, -2
  br label %1254

1239:                                             ; preds = %.lr.ph1173, %1239
  %.1810321172 = phi i64 [ 0, %.lr.ph1173 ], [ %1243, %1239 ]
  %1240 = load ptr, ptr %1232, align 8, !tbaa !26
  %1241 = getelementptr inbounds ptr, ptr %1240, i64 %.1810321172
  %1242 = load ptr, ptr %1241, align 8, !tbaa !52
  %1243 = add nuw nsw i64 %.1810321172, 1
  %1244 = getelementptr inbounds ptr, ptr %1240, i64 %1243
  %1245 = load ptr, ptr %1244, align 8, !tbaa !52
  %1246 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1233)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1242, i64 noundef 1, ptr noundef %1245, i64 noundef 1, i64 noundef %1246)
  %1247 = load ptr, ptr %1234, align 8, !tbaa !26
  %1248 = getelementptr inbounds ptr, ptr %1247, i64 %.1810321172
  %1249 = load ptr, ptr %1248, align 8, !tbaa !52
  %1250 = getelementptr inbounds ptr, ptr %1247, i64 %1243
  %1251 = load ptr, ptr %1250, align 8, !tbaa !52
  %1252 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1233)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1249, i64 noundef 1, ptr noundef %1251, i64 noundef 1, i64 noundef %1252)
  %1253 = load i64, ptr %1229, align 8, !tbaa !76
  %.not1059.not = icmp slt i64 %1243, %1253
  br i1 %.not1059.not, label %1239, label %.preheader1086, !llvm.loop !100

1254:                                             ; preds = %1254, %.lr.ph1177.new
  %.191176 = phi i64 [ 0, %.lr.ph1177.new ], [ %1265, %1254 ]
  %niter1371 = phi i64 [ 0, %.lr.ph1177.new ], [ %niter1371.next.1, %1254 ]
  %1255 = load ptr, ptr %1235, align 8, !tbaa !26
  %1256 = or disjoint i64 %.191176, 1
  %1257 = getelementptr inbounds double, ptr %1255, i64 %1256
  %1258 = load double, ptr %1257, align 8, !tbaa !31
  %1259 = getelementptr inbounds double, ptr %1255, i64 %.191176
  store double %1258, ptr %1259, align 8, !tbaa !31
  %1260 = load ptr, ptr %1236, align 8, !tbaa !26
  %1261 = getelementptr inbounds double, ptr %1260, i64 %1256
  %1262 = load double, ptr %1261, align 8, !tbaa !31
  %1263 = getelementptr inbounds double, ptr %1260, i64 %.191176
  store double %1262, ptr %1263, align 8, !tbaa !31
  %1264 = load ptr, ptr %1235, align 8, !tbaa !26
  %1265 = add nuw nsw i64 %.191176, 2
  %1266 = getelementptr inbounds double, ptr %1264, i64 %1265
  %1267 = load double, ptr %1266, align 8, !tbaa !31
  %1268 = getelementptr inbounds double, ptr %1264, i64 %1256
  store double %1267, ptr %1268, align 8, !tbaa !31
  %1269 = load ptr, ptr %1236, align 8, !tbaa !26
  %1270 = getelementptr inbounds double, ptr %1269, i64 %1265
  %1271 = load double, ptr %1270, align 8, !tbaa !31
  %1272 = getelementptr inbounds double, ptr %1269, i64 %1256
  store double %1271, ptr %1272, align 8, !tbaa !31
  %niter1371.next.1 = add i64 %niter1371, 2
  %niter1371.ncmp.1 = icmp eq i64 %niter1371.next.1, %unroll_iter1370
  br i1 %niter1371.ncmp.1, label %.loopexit1087.loopexit.unr-lcssa, label %1254, !llvm.loop !101

1273:                                             ; preds = %1228
  %1274 = add nsw i64 %1230, 1
  store i64 %1274, ptr %1229, align 8, !tbaa !76
  br label %.loopexit1087

.loopexit1087.loopexit.unr-lcssa:                 ; preds = %1254, %.lr.ph1177
  %.191176.unr = phi i64 [ 0, %.lr.ph1177 ], [ %1265, %1254 ]
  %lcmp.mod1369.not = icmp eq i64 %xtraiter1367, 0
  br i1 %lcmp.mod1369.not, label %.loopexit1087, label %.loopexit1087.loopexit.epilog-lcssa

.loopexit1087.loopexit.epilog-lcssa:              ; preds = %.loopexit1087.loopexit.unr-lcssa
  %1275 = load ptr, ptr %1235, align 8, !tbaa !26
  %1276 = add nuw nsw i64 %.191176.unr, 1
  %1277 = getelementptr inbounds double, ptr %1275, i64 %1276
  %1278 = load double, ptr %1277, align 8, !tbaa !31
  %1279 = getelementptr inbounds double, ptr %1275, i64 %.191176.unr
  store double %1278, ptr %1279, align 8, !tbaa !31
  %1280 = load ptr, ptr %1236, align 8, !tbaa !26
  %1281 = getelementptr inbounds double, ptr %1280, i64 %1276
  %1282 = load double, ptr %1281, align 8, !tbaa !31
  %1283 = getelementptr inbounds double, ptr %1280, i64 %.191176.unr
  store double %1282, ptr %1283, align 8, !tbaa !31
  br label %.loopexit1087

.loopexit1087:                                    ; preds = %.loopexit1087.loopexit.epilog-lcssa, %.loopexit1087.loopexit.unr-lcssa, %.preheader1088, %.preheader1086, %1273
  %1284 = phi i64 [ %1274, %1273 ], [ %1253, %.preheader1086 ], [ %.01033, %.preheader1088 ], [ %1253, %.loopexit1087.loopexit.unr-lcssa ], [ %1253, %.loopexit1087.loopexit.epilog-lcssa ]
  %.20 = phi i64 [ %.171031, %1273 ], [ 0, %.preheader1086 ], [ 0, %.preheader1088 ], [ %1237, %.loopexit1087.loopexit.unr-lcssa ], [ %1237, %.loopexit1087.loopexit.epilog-lcssa ]
  %1285 = getelementptr inbounds i8, ptr %0, i64 8208
  %1286 = load ptr, ptr %1285, align 8, !tbaa !26
  %1287 = add nsw i64 %1284, -1
  %1288 = getelementptr inbounds ptr, ptr %1286, i64 %1287
  %1289 = load ptr, ptr %1288, align 8, !tbaa !52
  %1290 = getelementptr inbounds i8, ptr %0, i64 8288
  %1291 = load ptr, ptr %1290, align 8, !tbaa !26
  %1292 = getelementptr inbounds ptr, ptr %1291, i64 %1287
  %1293 = load ptr, ptr %1292, align 8, !tbaa !52
  %1294 = add nsw i64 %.01037, -1
  %1295 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1294)
  %1296 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1289, i64 noundef 1, ptr noundef %1293, i64 noundef 1, i64 noundef %1295)
  %1297 = load ptr, ptr %1285, align 8, !tbaa !26
  %1298 = load i64, ptr %1229, align 8, !tbaa !76
  %1299 = getelementptr ptr, ptr %1297, i64 %1298
  %1300 = getelementptr i8, ptr %1299, i64 -8
  %1301 = load ptr, ptr %1300, align 8, !tbaa !52
  %1302 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1294)
  %1303 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1301, i64 noundef 1, ptr noundef %1301, i64 noundef 1, i64 noundef %1302)
  %1304 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1296, double noundef 0.000000e+00)
  br i1 %1304, label %.loopexit1091, label %1305

1305:                                             ; preds = %.loopexit1087
  %1306 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1303, double noundef 0.000000e+00)
  br i1 %1306, label %.loopexit1091, label %1307

1307:                                             ; preds = %1305
  %1308 = fdiv double 1.000000e+00, %1296
  %1309 = getelementptr inbounds i8, ptr %0, i64 8352
  %1310 = load ptr, ptr %1309, align 8, !tbaa !26
  %1311 = load i64, ptr %1229, align 8, !tbaa !76
  %1312 = getelementptr double, ptr %1310, i64 %1311
  %1313 = getelementptr i8, ptr %1312, i64 -8
  store double %1308, ptr %1313, align 8, !tbaa !31
  %1314 = icmp sle i64 %1311, %.01033
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1314, ptr noundef nonnull @.str.1577, ptr noundef %1)
  %.not1061.not1179 = icmp sgt i64 %.01037, 0
  br i1 %.not1061.not1179, label %.lr.ph1184, label %._crit_edge1185

.lr.ph1184:                                       ; preds = %1307
  %1315 = getelementptr inbounds i8, ptr %0, i64 144
  %1316 = getelementptr inbounds i8, ptr %0, i64 5344
  %1317 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1318

1318:                                             ; preds = %.lr.ph1184, %1318
  %.89951182 = phi double [ 0.000000e+00, %.lr.ph1184 ], [ %1340, %1318 ]
  %.1210111181 = phi double [ 0.000000e+00, %.lr.ph1184 ], [ %1331, %1318 ]
  %.211180 = phi i64 [ 0, %.lr.ph1184 ], [ %1341, %1318 ]
  %1319 = load ptr, ptr %1315, align 8, !tbaa !26
  %1320 = getelementptr inbounds double, ptr %1319, i64 %.211180
  %1321 = load double, ptr %1320, align 8, !tbaa !31
  %1322 = load ptr, ptr %1316, align 8, !tbaa !26
  %1323 = getelementptr inbounds double, ptr %1322, i64 %.211180
  %1324 = load double, ptr %1323, align 8, !tbaa !31
  %1325 = fsub double %1321, %1324
  %1326 = load ptr, ptr %1317, align 8, !tbaa !26
  %1327 = getelementptr inbounds double, ptr %1326, i64 %.211180
  %1328 = load double, ptr %1327, align 8, !tbaa !31
  %1329 = fdiv double %1325, %1328
  %1330 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1329, ptr noundef %1)
  %1331 = fadd double %.1210111181, %1330
  %1332 = load ptr, ptr %1315, align 8, !tbaa !26
  %1333 = getelementptr inbounds double, ptr %1332, i64 %.211180
  %1334 = load double, ptr %1333, align 8, !tbaa !31
  %1335 = load ptr, ptr %1316, align 8, !tbaa !26
  %1336 = getelementptr inbounds double, ptr %1335, i64 %.211180
  %1337 = load double, ptr %1336, align 8, !tbaa !31
  %1338 = fsub double %1334, %1337
  %1339 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1338, ptr noundef %1)
  %1340 = fadd double %.89951182, %1339
  %1341 = add nuw nsw i64 %.211180, 1
  %exitcond1265.not = icmp eq i64 %1341, %.01037
  br i1 %exitcond1265.not, label %._crit_edge1185, label %1318, !llvm.loop !102

._crit_edge1185:                                  ; preds = %1318, %1307
  %.21.lcssa = phi i64 [ 0, %1307 ], [ %.01037, %1318 ]
  %.121011.lcssa = phi double [ 0.000000e+00, %1307 ], [ %1331, %1318 ]
  %.8995.lcssa = phi double [ 0.000000e+00, %1307 ], [ %1340, %1318 ]
  %1342 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.8995.lcssa, ptr noundef %1)
  %1343 = getelementptr inbounds i8, ptr %0, i64 5536
  store double %1342, ptr %1343, align 8, !tbaa !103
  %1344 = getelementptr inbounds i8, ptr %0, i64 5544
  %1345 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.121011.lcssa, ptr noundef %1)
  call void @_ZN11alglib_implL33minbleic_updateestimateofgoodstepEPddPNS_8ae_stateE(ptr noundef nonnull %1344, double noundef %1345, ptr noundef %1)
  %.pr = load i64, ptr %3, align 8, !tbaa !27
  %1346 = icmp eq i64 %.pr, 1
  br i1 %1346, label %1347, label %.thread1079

1347:                                             ; preds = %._crit_edge1185
  %1348 = getelementptr inbounds i8, ptr %0, i64 4700
  %1349 = load i8, ptr %1348, align 4, !tbaa !33, !range !29, !noundef !30
  %1350 = trunc nuw i8 %1349 to i1
  br i1 %1350, label %.preheader1085, label %.thread1079

.preheader1085:                                   ; preds = %1347
  br i1 %.not1061.not1179, label %.lr.ph1192, label %._crit_edge1193

.lr.ph1192:                                       ; preds = %.preheader1085
  %1351 = getelementptr inbounds i8, ptr %0, i64 144
  %1352 = getelementptr inbounds i8, ptr %0, i64 5344
  %1353 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1354

1354:                                             ; preds = %.lr.ph1192, %1354
  %.141191 = phi double [ 0.000000e+00, %.lr.ph1192 ], [ %1367, %1354 ]
  %.231190 = phi i64 [ 0, %.lr.ph1192 ], [ %1368, %1354 ]
  %1355 = load ptr, ptr %1351, align 8, !tbaa !26
  %1356 = getelementptr inbounds double, ptr %1355, i64 %.231190
  %1357 = load double, ptr %1356, align 8, !tbaa !31
  %1358 = load ptr, ptr %1352, align 8, !tbaa !26
  %1359 = getelementptr inbounds double, ptr %1358, i64 %.231190
  %1360 = load double, ptr %1359, align 8, !tbaa !31
  %1361 = fsub double %1357, %1360
  %1362 = load ptr, ptr %1353, align 8, !tbaa !26
  %1363 = getelementptr inbounds double, ptr %1362, i64 %.231190
  %1364 = load double, ptr %1363, align 8, !tbaa !31
  %1365 = fdiv double %1361, %1364
  %1366 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1365, ptr noundef %1)
  %1367 = fadd double %.141191, %1366
  %1368 = add nuw nsw i64 %.231190, 1
  %exitcond1266.not = icmp eq i64 %1368, %.01037
  br i1 %exitcond1266.not, label %._crit_edge1193, label %1354, !llvm.loop !104

._crit_edge1193:                                  ; preds = %1354, %.preheader1085
  %.23.lcssa = phi i64 [ 0, %.preheader1085 ], [ %.01037, %1354 ]
  %.14.lcssa = phi double [ 0.000000e+00, %.preheader1085 ], [ %1367, %1354 ]
  %1369 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.14.lcssa, ptr noundef %1)
  %1370 = getelementptr inbounds i8, ptr %0, i64 32
  %1371 = load double, ptr %1370, align 8, !tbaa !105
  %1372 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1369, double noundef %1371)
  br i1 %1372, label %.loopexit1091.sink.split, label %1373

1373:                                             ; preds = %._crit_edge1193
  %1374 = getelementptr inbounds i8, ptr %0, i64 5368
  %1375 = load double, ptr %1374, align 8, !tbaa !99
  %1376 = getelementptr inbounds i8, ptr %0, i64 5352
  %1377 = load double, ptr %1376, align 8, !tbaa !63
  %1378 = fsub double %1375, %1377
  %1379 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1378, ptr noundef %1)
  %1380 = getelementptr inbounds i8, ptr %0, i64 24
  %1381 = load double, ptr %1380, align 8, !tbaa !106
  %1382 = load double, ptr %1376, align 8, !tbaa !63
  %1383 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1382, ptr noundef %1)
  %1384 = load double, ptr %1374, align 8, !tbaa !99
  %1385 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1384, ptr noundef %1)
  %1386 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1385, double noundef 1.000000e+00, ptr noundef %1)
  %1387 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1383, double noundef %1386, ptr noundef %1)
  %1388 = fmul double %1381, %1387
  %1389 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1379, double noundef %1388)
  br i1 %1389, label %.loopexit1091.sink.split, label %.thread1079

.thread1079:                                      ; preds = %1222, %1373, %1347, %._crit_edge1185
  %.99961083 = phi double [ %.8995.lcssa, %1373 ], [ %.8995.lcssa, %1347 ], [ %.8995.lcssa, %._crit_edge1185 ], [ %.7994, %1222 ]
  %.24 = phi i64 [ %.23.lcssa, %1373 ], [ %.21.lcssa, %1347 ], [ %.21.lcssa, %._crit_edge1185 ], [ %.171031, %1222 ]
  %.15 = phi double [ %1369, %1373 ], [ %.121011.lcssa, %1347 ], [ %.121011.lcssa, %._crit_edge1185 ], [ %.111010, %1222 ]
  %1390 = getelementptr inbounds i8, ptr %0, i64 40
  %1391 = load i64, ptr %1390, align 8, !tbaa !107
  %1392 = icmp sgt i64 %1391, 0
  br i1 %1392, label %1393, label %1395

1393:                                             ; preds = %.thread1079
  %1394 = load i64, ptr %1224, align 8, !tbaa !92
  %.not1063 = icmp slt i64 %1394, %1391
  br i1 %.not1063, label %1395, label %.loopexit1091.sink.split

1395:                                             ; preds = %1393, %.thread1079
  %1396 = getelementptr inbounds i8, ptr %0, i64 4700
  store i8 0, ptr %1396, align 4, !tbaa !33
  %1397 = icmp sgt i64 %.5974, -1
  br i1 %1397, label %1400, label %.preheader1084

.preheader1084:                                   ; preds = %1395
  %.not1064.not1196 = icmp sgt i64 %.01037, 0
  br i1 %.not1064.not1196, label %.lr.ph1199, label %._crit_edge1200

.lr.ph1199:                                       ; preds = %.preheader1084
  %1398 = getelementptr inbounds i8, ptr %0, i64 5088
  %1399 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1402

1400:                                             ; preds = %1395
  %1401 = getelementptr inbounds i8, ptr %0, i64 8424
  store i64 0, ptr %1401, align 8, !tbaa !76
  br label %.preheader1090

1402:                                             ; preds = %.lr.ph1199, %1402
  %.161198 = phi double [ 0.000000e+00, %.lr.ph1199 ], [ %1411, %1402 ]
  %.251197 = phi i64 [ 0, %.lr.ph1199 ], [ %1412, %1402 ]
  %1403 = load ptr, ptr %1398, align 8, !tbaa !26
  %1404 = getelementptr inbounds double, ptr %1403, i64 %.251197
  %1405 = load double, ptr %1404, align 8, !tbaa !31
  %1406 = load ptr, ptr %1399, align 8, !tbaa !26
  %1407 = getelementptr inbounds double, ptr %1406, i64 %.251197
  %1408 = load double, ptr %1407, align 8, !tbaa !31
  %1409 = fmul double %1405, %1408
  %1410 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1409, ptr noundef %1)
  %1411 = fadd double %.161198, %1410
  %1412 = add nuw nsw i64 %.251197, 1
  %exitcond1267.not = icmp eq i64 %1412, %.01037
  br i1 %exitcond1267.not, label %._crit_edge1200, label %1402, !llvm.loop !108

._crit_edge1200:                                  ; preds = %1402, %.preheader1084
  %.25.lcssa = phi i64 [ 0, %.preheader1084 ], [ %.01037, %1402 ]
  %.16.lcssa = phi double [ 0.000000e+00, %.preheader1084 ], [ %1411, %1402 ]
  %1413 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.16.lcssa, ptr noundef %1)
  %1414 = fmul double %.0, %.6
  %1415 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1413, double noundef %1414)
  br i1 %1415, label %.loopexit1091, label %.preheader1090

.loopexit1091.sink.split:                         ; preds = %1393, %1373, %._crit_edge1193, %1171, %._crit_edge1161, %654, %591
  %.sink1318 = phi i64 [ 4, %591 ], [ 4, %654 ], [ -8, %._crit_edge1161 ], [ 7, %1171 ], [ 2, %._crit_edge1193 ], [ 1, %1373 ], [ 5, %1393 ]
  %.26.ph = phi i64 [ %.810221143, %591 ], [ %smax, %654 ], [ %.141028.lcssa, %._crit_edge1161 ], [ %.151029.lcssa, %1171 ], [ %.23.lcssa, %._crit_edge1193 ], [ %.23.lcssa, %1373 ], [ %.24, %1393 ]
  %.17.ph = phi double [ %.210011144, %591 ], [ %652, %654 ], [ %.71006.lcssa, %._crit_edge1161 ], [ %1142, %1171 ], [ %1369, %._crit_edge1193 ], [ %1369, %1373 ], [ %.15, %1393 ]
  %.10997.ph = phi double [ %.29891145, %591 ], [ %.4991.lcssa, %654 ], [ %.6993, %._crit_edge1161 ], [ %.6993, %1171 ], [ %.8995.lcssa, %._crit_edge1193 ], [ %.8995.lcssa, %1373 ], [ %.99961083, %1393 ]
  %.12.ph = phi i8 [ %.4981.ph, %591 ], [ %.4981.ph, %654 ], [ %.6983, %._crit_edge1161 ], [ 0, %1171 ], [ %.11, %._crit_edge1193 ], [ %.11, %1373 ], [ %.11, %1393 ]
  %.6975.ph = phi i64 [ %.2971.ph, %591 ], [ %.2971.ph, %654 ], [ %.4973, %._crit_edge1161 ], [ %.4973, %1171 ], [ %.5974, %._crit_edge1193 ], [ %.5974, %1373 ], [ %.5974, %1393 ]
  %.6967.ph = phi i64 [ %592, %591 ], [ %655, %654 ], [ %.4965, %._crit_edge1161 ], [ %.4965, %1171 ], [ %.5966, %._crit_edge1193 ], [ %.5966, %1373 ], [ %.5966, %1393 ]
  %.7.ph = phi double [ %.3959.ph, %591 ], [ %.3959.ph, %654 ], [ %.5, %._crit_edge1161 ], [ %.5, %1171 ], [ %.6, %._crit_edge1193 ], [ %.6, %1373 ], [ %.6, %1393 ]
  %1416 = getelementptr inbounds i8, ptr %0, i64 5848
  store i64 %.sink1318, ptr %1416, align 8, !tbaa !35
  br label %.loopexit1091

.loopexit1091:                                    ; preds = %.loopexit1091.sink.split, %.preheader1090, %._crit_edge1200, %.loopexit1087, %1305, %1175, %1171, %654
  %.26 = phi i64 [ %smax, %654 ], [ %.161030, %1175 ], [ %.20, %.loopexit1087 ], [ %.20, %1305 ], [ %.25.lcssa, %._crit_edge1200 ], [ %.151029.lcssa, %1171 ], [ %.81022.ph, %.preheader1090 ], [ %.26.ph, %.loopexit1091.sink.split ]
  %.17 = phi double [ %652, %654 ], [ %.101009, %1175 ], [ %1296, %.loopexit1087 ], [ %1296, %1305 ], [ %.16.lcssa, %._crit_edge1200 ], [ %1142, %1171 ], [ %.21001.ph, %.preheader1090 ], [ %.17.ph, %.loopexit1091.sink.split ]
  %.10997 = phi double [ %.4991.lcssa, %654 ], [ %.6993, %1175 ], [ %1303, %.loopexit1087 ], [ %1303, %1305 ], [ %.99961083, %._crit_edge1200 ], [ %.6993, %1171 ], [ %.2989.ph, %.preheader1090 ], [ %.10997.ph, %.loopexit1091.sink.split ]
  %.12 = phi i8 [ %.4981.ph, %654 ], [ %.10, %1175 ], [ %.11, %.loopexit1087 ], [ %.11, %1305 ], [ %.11, %._crit_edge1200 ], [ 0, %1171 ], [ %.4981.ph, %.preheader1090 ], [ %.12.ph, %.loopexit1091.sink.split ]
  %.6975 = phi i64 [ %.2971.ph, %654 ], [ %.4973, %1175 ], [ %.5974, %.loopexit1087 ], [ %.5974, %1305 ], [ %.5974, %._crit_edge1200 ], [ %.4973, %1171 ], [ %.2971.ph, %.preheader1090 ], [ %.6975.ph, %.loopexit1091.sink.split ]
  %.6967 = phi i64 [ %655, %654 ], [ %.4965, %1175 ], [ %.5966, %.loopexit1087 ], [ %.5966, %1305 ], [ %.5966, %._crit_edge1200 ], [ %.4965, %1171 ], [ %.2963.ph, %.preheader1090 ], [ %.6967.ph, %.loopexit1091.sink.split ]
  %.7 = phi double [ %.3959.ph, %654 ], [ %.5, %1175 ], [ %.6, %.loopexit1087 ], [ %.6, %1305 ], [ %.6, %._crit_edge1200 ], [ %.5, %1171 ], [ %.3959.ph, %.preheader1090 ], [ %.7.ph, %.loopexit1091.sink.split ]
  %1417 = getelementptr inbounds i8, ptr %0, i64 4702
  %1418 = load i8, ptr %1417, align 2, !tbaa !34, !range !29, !noundef !30
  %1419 = trunc nuw i8 %1418 to i1
  %1420 = getelementptr inbounds i8, ptr %0, i64 5848
  br i1 %1419, label %1421, label %1422

1421:                                             ; preds = %.loopexit1091
  store i64 8, ptr %1420, align 8, !tbaa !35
  br label %1429

1422:                                             ; preds = %.loopexit1091
  %1423 = load i64, ptr %1420, align 8, !tbaa !35
  %.not1065 = icmp eq i64 %1423, 0
  br i1 %.not1065, label %1424, label %1429

1424:                                             ; preds = %1422
  %1425 = load double, ptr @_ZN11alglib_implL24minbleic_decaycorrectionE, align 8, !tbaa !31
  %1426 = fmul double %.0, %1425
  %1427 = load double, ptr @_ZN11alglib_implL17minbleic_mindecayE, align 8, !tbaa !31
  %1428 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1426, double noundef %1427, ptr noundef %1)
  br label %281

1429:                                             ; preds = %1422, %1421
  %1430 = getelementptr inbounds i8, ptr %0, i64 72
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %1430, ptr noundef %1)
  %1431 = getelementptr inbounds i8, ptr %0, i64 5824
  store i64 1, ptr %1431, align 8, !tbaa !109
  br label %1464

1432:                                             ; preds = %1214, %975, %971, %892, %877, %862, %851, %795, %788, %695, %475, %471, %392, %377, %362, %351, %295, %291, %263, %248, %244, %._crit_edge1221
  %.sink1320 = phi i32 [ 21, %1214 ], [ 20, %975 ], [ 19, %971 ], [ 18, %892 ], [ 17, %877 ], [ 16, %862 ], [ 15, %851 ], [ 14, %795 ], [ 13, %788 ], [ 12, %695 ], [ 11, %475 ], [ 10, %471 ], [ 9, %392 ], [ 8, %377 ], [ 7, %362 ], [ 6, %351 ], [ 5, %295 ], [ 4, %291 ], [ 3, %263 ], [ 2, %248 ], [ 1, %244 ], [ 0, %._crit_edge1221 ]
  %.31040 = phi i64 [ %.01037, %1214 ], [ %.01037, %975 ], [ %.01037, %971 ], [ %.01037, %892 ], [ %.01037, %877 ], [ %.01037, %862 ], [ %.01037, %851 ], [ %.01037, %795 ], [ %.01037, %788 ], [ %.01037, %695 ], [ %.01037, %475 ], [ %.01037, %471 ], [ %.01037, %392 ], [ %.01037, %377 ], [ %.01037, %362 ], [ %.01037, %351 ], [ %.01037, %295 ], [ %.01037, %291 ], [ %.01037, %263 ], [ %.21039, %248 ], [ %.21039, %244 ], [ %.11038, %._crit_edge1221 ]
  %.31036 = phi i64 [ %.01033, %1214 ], [ %.01033, %975 ], [ %.01033, %971 ], [ %.01033, %892 ], [ %.01033, %877 ], [ %.01033, %862 ], [ %.01033, %851 ], [ %.01033, %795 ], [ %.01033, %788 ], [ %.01033, %695 ], [ %.01033, %475 ], [ %.01033, %471 ], [ %.01033, %392 ], [ %.01033, %377 ], [ %.01033, %362 ], [ %.01033, %351 ], [ %.01033, %295 ], [ %.01033, %291 ], [ %.01033, %263 ], [ %.21035, %248 ], [ %.21035, %244 ], [ %.11034, %._crit_edge1221 ]
  %.27 = phi i64 [ %.161030, %1214 ], [ %.01014, %975 ], [ %.131027, %971 ], [ %.01014, %892 ], [ %.01014, %877 ], [ %.01014, %862 ], [ %.131027, %851 ], [ %.121026.lcssa, %795 ], [ %.121026.lcssa, %788 ], [ %smax, %695 ], [ %.01014, %475 ], [ %.61020, %471 ], [ %.01014, %392 ], [ %.01014, %377 ], [ %.01014, %362 ], [ %.61020, %351 ], [ %.51019, %295 ], [ %.51019, %291 ], [ %.01014, %263 ], [ %.41018.lcssa, %248 ], [ %.41018.lcssa, %244 ], [ %.21016.lcssa, %._crit_edge1221 ]
  %.18 = phi double [ %.101009, %1214 ], [ %.0999, %975 ], [ %806, %971 ], [ %.0999, %892 ], [ %.0999, %877 ], [ %.0999, %862 ], [ %806, %851 ], [ %.61005, %795 ], [ %.61005, %788 ], [ %.41003, %695 ], [ %.0999, %475 ], [ %306, %471 ], [ %.0999, %392 ], [ %.0999, %377 ], [ %.0999, %362 ], [ %306, %351 ], [ %.11000, %295 ], [ %.11000, %291 ], [ %.0999, %263 ], [ %.0999, %248 ], [ %.0999, %244 ], [ %.0999, %._crit_edge1221 ]
  %.11998 = phi double [ %.6993, %1214 ], [ %.0987, %975 ], [ %.0987, %971 ], [ %.0987, %892 ], [ %.0987, %877 ], [ %.0987, %862 ], [ %.0987, %851 ], [ %.6993, %795 ], [ %.6993, %788 ], [ %.4991.lcssa, %695 ], [ %.0987, %475 ], [ %.0987, %471 ], [ %.0987, %392 ], [ %.0987, %377 ], [ %.0987, %362 ], [ %.0987, %351 ], [ %.1988, %295 ], [ %.1988, %291 ], [ %.0987, %263 ], [ %.0987, %248 ], [ %.0987, %244 ], [ %.0987, %._crit_edge1221 ]
  %.13 = phi i8 [ %.10, %1214 ], [ %.0977, %975 ], [ %.89851073, %971 ], [ %.0977, %892 ], [ %.0977, %877 ], [ %.0977, %862 ], [ %.8985, %851 ], [ %.6983, %795 ], [ %.6983, %788 ], [ %.4981.ph, %695 ], [ %.0977, %475 ], [ %.39801070, %471 ], [ %.0977, %392 ], [ %.0977, %377 ], [ %.0977, %362 ], [ %.3980, %351 ], [ %.1978, %295 ], [ %.1978, %291 ], [ %.0977, %263 ], [ %.0977, %248 ], [ %.0977, %244 ], [ %.0977, %._crit_edge1221 ]
  %.7976 = phi i64 [ %1210, %1214 ], [ %.0969, %975 ], [ %.0969, %971 ], [ %.0969, %892 ], [ %.0969, %877 ], [ %.0969, %862 ], [ %.0969, %851 ], [ %.4973, %795 ], [ %.4973, %788 ], [ %.2971.ph, %695 ], [ %.0969, %475 ], [ %.0969, %471 ], [ %.0969, %392 ], [ %.0969, %377 ], [ %.0969, %362 ], [ %.0969, %351 ], [ %.1970, %295 ], [ %.1970, %291 ], [ %.0969, %263 ], [ %.0969, %248 ], [ %.0969, %244 ], [ %.0969, %._crit_edge1221 ]
  %.7968 = phi i64 [ %.4965, %1214 ], [ %.0961, %975 ], [ %.0961, %971 ], [ %.0961, %892 ], [ %.0961, %877 ], [ %.0961, %862 ], [ %.0961, %851 ], [ %.4965, %795 ], [ %.4965, %788 ], [ %676, %695 ], [ %.0961, %475 ], [ %.0961, %471 ], [ %.0961, %392 ], [ %.0961, %377 ], [ %.0961, %362 ], [ %.0961, %351 ], [ %.1962, %295 ], [ %.1962, %291 ], [ %.0961, %263 ], [ %.0961, %248 ], [ %.0961, %244 ], [ %.0961, %._crit_edge1221 ]
  %.8 = phi double [ %.5, %1214 ], [ %.0956, %975 ], [ %.0956, %971 ], [ %.0956, %892 ], [ %.0956, %877 ], [ %.0956, %862 ], [ %.0956, %851 ], [ %.5, %795 ], [ %.5, %788 ], [ %.3959.ph, %695 ], [ %.0956, %475 ], [ %.0956, %471 ], [ %.0956, %392 ], [ %.0956, %377 ], [ %.0956, %362 ], [ %.0956, %351 ], [ %.1957, %295 ], [ %.1957, %291 ], [ %.0956, %263 ], [ %.0956, %248 ], [ %.0956, %244 ], [ %.0956, %._crit_edge1221 ]
  %.4 = phi double [ %.0, %1214 ], [ %.0, %975 ], [ %.0, %971 ], [ %.0, %892 ], [ %.0, %877 ], [ %.0, %862 ], [ %.0, %851 ], [ %.0, %795 ], [ %.0, %788 ], [ %.0, %695 ], [ %.0, %475 ], [ %.0, %471 ], [ %.0, %392 ], [ %.0, %377 ], [ %.0, %362 ], [ %.0, %351 ], [ %.3, %295 ], [ %.3, %291 ], [ %.0, %263 ], [ %.2, %248 ], [ %.2, %244 ], [ %.1, %._crit_edge1221 ]
  store i32 %.sink1320, ptr %5, align 8, !tbaa !5
  %1433 = getelementptr inbounds i8, ptr %0, i64 4768
  %1434 = load ptr, ptr %1433, align 8, !tbaa !26
  store i64 %.31040, ptr %1434, align 8, !tbaa !27
  %1435 = load ptr, ptr %1433, align 8, !tbaa !26
  %1436 = getelementptr inbounds i8, ptr %1435, i64 8
  store i64 %.31036, ptr %1436, align 8, !tbaa !27
  %1437 = load ptr, ptr %1433, align 8, !tbaa !26
  %1438 = getelementptr inbounds i8, ptr %1437, i64 16
  store i64 %.27, ptr %1438, align 8, !tbaa !27
  %1439 = load ptr, ptr %1433, align 8, !tbaa !26
  %1440 = getelementptr inbounds i8, ptr %1439, i64 24
  store i64 %.01013, ptr %1440, align 8, !tbaa !27
  %1441 = load i64, ptr %3, align 8, !tbaa !27
  %1442 = load ptr, ptr %1433, align 8, !tbaa !26
  %1443 = getelementptr inbounds i8, ptr %1442, i64 32
  store i64 %1441, ptr %1443, align 8, !tbaa !27
  %1444 = load ptr, ptr %1433, align 8, !tbaa !26
  %1445 = getelementptr inbounds i8, ptr %1444, i64 40
  store i64 %.7976, ptr %1445, align 8, !tbaa !27
  %1446 = load ptr, ptr %1433, align 8, !tbaa !26
  %1447 = getelementptr inbounds i8, ptr %1446, i64 48
  store i64 %.7968, ptr %1447, align 8, !tbaa !27
  %1448 = getelementptr inbounds i8, ptr %0, i64 4832
  %1449 = load ptr, ptr %1448, align 8, !tbaa !26
  %1450 = and i8 %.13, 1
  store i8 %1450, ptr %1449, align 1, !tbaa !28
  %1451 = getelementptr inbounds i8, ptr %0, i64 4896
  %1452 = load ptr, ptr %1451, align 8, !tbaa !26
  store double %.18, ptr %1452, align 8, !tbaa !31
  %1453 = load ptr, ptr %1451, align 8, !tbaa !26
  %1454 = getelementptr inbounds i8, ptr %1453, i64 8
  store double %.11998, ptr %1454, align 8, !tbaa !31
  %1455 = load ptr, ptr %1451, align 8, !tbaa !26
  %1456 = getelementptr inbounds i8, ptr %1455, i64 16
  store double %.0986, ptr %1456, align 8, !tbaa !31
  %1457 = load double, ptr %4, align 8, !tbaa !31
  %1458 = load ptr, ptr %1451, align 8, !tbaa !26
  %1459 = getelementptr inbounds i8, ptr %1458, i64 24
  store double %1457, ptr %1459, align 8, !tbaa !31
  %1460 = load ptr, ptr %1451, align 8, !tbaa !26
  %1461 = getelementptr inbounds i8, ptr %1460, i64 32
  store double %.8, ptr %1461, align 8, !tbaa !31
  %1462 = load ptr, ptr %1451, align 8, !tbaa !26
  %1463 = getelementptr inbounds i8, ptr %1462, i64 40
  store double %.4, ptr %1463, align 8, !tbaa !31
  br label %1464

1464:                                             ; preds = %1432, %1429, %557, %551, %278, %222, %64
  %.01041 = phi i1 [ true, %1432 ], [ false, %222 ], [ false, %278 ], [ false, %557 ], [ false, %1429 ], [ false, %551 ], [ false, %64 ]
  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 %.01041
}

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef, ptr 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_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_impl9ae_v_adddEPdlPKdlld(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, double 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 void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 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_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL33minbleic_updateestimateofgoodstepEPddPNS_8ae_stateE(ptr noundef, double 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, !19, i64 4704}
!6 = !{!"_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, !12, i64 72, !13, i64 4416, !7, i64 4480, !13, i64 4488, !7, i64 4552, !13, i64 4560, !10, i64 4624, !13, i64 4632, !11, i64 4696, !11, i64 4697, !11, i64 4698, !11, i64 4699, !11, i64 4700, !11, i64 4701, !11, i64 4702, !18, i64 4704, !13, i64 4968, !13, i64 5032, !13, i64 5096, !13, i64 5160, !13, i64 5224, !13, i64 5288, !10, i64 5352, !10, i64 5360, !10, i64 5368, !13, i64 5376, !16, i64 5440, !7, i64 5520, !7, i64 5528, !10, i64 5536, !10, i64 5544, !10, i64 5552, !13, i64 5560, !13, i64 5624, !13, i64 5688, !13, i64 5752, !7, i64 5816, !7, i64 5824, !7, i64 5832, !7, i64 5840, !7, i64 5848, !10, i64 5856, !10, i64 5864, !10, i64 5872, !10, i64 5880, !7, i64 5888, !7, i64 5896, !13, i64 5904, !17, i64 5968, !10, i64 7608, !10, i64 7616, !10, i64 7624, !10, i64 7632, !10, i64 7640, !10, i64 7648, !10, i64 7656, !10, i64 7664, !10, i64 7672, !7, i64 7680, !10, i64 7688, !13, i64 7696, !13, i64 7760, !7, i64 7824, !7, i64 7832, !10, i64 7840, !10, i64 7848, !10, i64 7856, !13, i64 7864, !20, i64 7928, !10, i64 8120, !7, i64 8128, !16, i64 8136, !16, i64 8216, !13, i64 8296, !13, i64 8360, !7, i64 8424, !10, i64 8432, !7, i64 8440, !21, i64 8448, !13, i64 14152, !13, i64 14216}
!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_impl10sactivesetE", !7, i64 0, !7, i64 8, !13, i64 16, !11, i64 80, !13, i64 88, !13, i64 152, !13, i64 216, !11, i64 280, !16, i64 288, !16, i64 368, !16, i64 448, !7, i64 528, !13, i64 536, !7, i64 600, !7, i64 608, !11, i64 616, !11, i64 617, !13, i64 624, !13, i64 688, !13, i64 752, !13, i64 816, !16, i64 880, !7, i64 960, !7, i64 968, !13, i64 976, !13, i64 1040, !13, i64 1104, !13, i64 1168, !13, i64 1232, !13, i64 1296, !17, i64 1360, !13, i64 3000, !13, i64 3064, !13, i64 3128, !16, i64 3192, !13, i64 3272, !13, i64 3336, !13, i64 3400, !16, i64 3464, !16, i64 3544, !13, i64 3624, !13, i64 3688, !13, i64 3752, !16, i64 3816, !13, i64 3896, !13, i64 3960, !13, i64 4024, !13, i64 4088, !13, i64 4152, !13, i64 4216, !13, i64 4280}
!13 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !14, i64 24, !8, i64 56}
!14 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !14, i64 40, !8, i64 72}
!17 = !{!"_ZTSN11alglib_impl11snnlssolverE", !7, i64 0, !7, i64 8, !7, i64 16, !16, i64 24, !13, i64 104, !13, i64 168, !10, i64 232, !7, i64 240, !13, i64 248, !13, i64 312, !16, i64 376, !16, i64 456, !16, i64 536, !13, i64 616, !13, i64 680, !13, i64 744, !13, i64 808, !13, i64 872, !13, i64 936, !13, i64 1000, !13, i64 1064, !13, i64 1128, !13, i64 1192, !13, i64 1256, !13, i64 1320, !13, i64 1384, !13, i64 1448, !13, i64 1512, !13, i64 1576}
!18 = !{!"_ZTSN11alglib_impl10rcommstateE", !19, i64 0, !13, i64 8, !13, i64 72, !13, i64 136, !13, i64 200}
!19 = !{!"int", !8, i64 0}
!20 = !{!"_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}
!21 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !7, i64 0, !7, i64 8, !11, i64 16, !13, i64 24, !13, i64 88, !7, i64 152, !13, i64 160, !13, i64 224, !13, i64 288, !16, i64 352, !13, i64 432, !13, i64 496, !7, i64 560, !7, i64 568, !7, i64 576, !10, i64 584, !7, i64 592, !13, i64 600, !13, i64 664, !10, i64 728, !13, i64 736, !13, i64 800, !10, i64 864, !16, i64 872, !16, i64 952, !16, i64 1032, !13, i64 1112, !13, i64 1176, !18, i64 1240, !11, i64 1504, !11, i64 1505, !7, i64 1512, !7, i64 1520, !10, i64 1528, !10, i64 1536, !11, i64 1544, !22, i64 1552, !10, i64 1848, !10, i64 1856, !23, i64 1864, !23, i64 2184, !10, i64 2504, !10, i64 2512, !24, i64 2520, !24, i64 2840, !10, i64 3160, !10, i64 3168, !25, i64 3176, !25, i64 3504, !11, i64 3832, !13, i64 3840, !13, i64 3904, !16, i64 3968, !18, i64 4048, !13, i64 4312, !13, i64 4376, !13, i64 4440, !13, i64 4504, !13, i64 4568, !13, i64 4632, !13, i64 4696, !13, i64 4760, !16, i64 4824, !16, i64 4904, !13, i64 4984, !13, i64 5048, !13, i64 5112, !13, i64 5176, !13, i64 5240, !13, i64 5304, !13, i64 5368, !13, i64 5432, !13, i64 5496, !13, i64 5560, !16, i64 5624}
!22 = !{!"_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, !13, i64 72, !16, i64 136, !16, i64 216}
!23 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !11, i64 0, !7, i64 8, !13, i64 16, !13, i64 80, !7, i64 144, !13, i64 152, !13, i64 216, !7, i64 280, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312}
!24 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !11, i64 0, !7, i64 8, !13, i64 16, !13, i64 80, !7, i64 144, !13, i64 152, !13, i64 216, !7, i64 280, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312}
!25 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !11, i64 0, !7, i64 8, !7, i64 16, !13, i64 24, !13, i64 88, !7, i64 152, !13, i64 160, !13, i64 224, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312, !7, i64 320}
!26 = !{!8, !8, i64 0}
!27 = !{!7, !7, i64 0}
!28 = !{!11, !11, i64 0}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = !{!10, !10, i64 0}
!32 = !{!6, !7, i64 0}
!33 = !{!6, !11, i64 4700}
!34 = !{!6, !11, i64 4702}
!35 = !{!6, !7, i64 5848}
!36 = !{!6, !7, i64 5840}
!37 = !{!6, !10, i64 5856}
!38 = !{!39, !10, i64 8}
!39 = !{!"_ZTSN11alglib_impl8ae_stateE", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !15, i64 32, !14, i64 40, !15, i64 72, !40, i64 80, !15, i64 88, !41, i64 96, !15, i64 104, !15, i64 112, !15, i64 120}
!40 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !8, i64 0}
!41 = !{!"long long", !8, i64 0}
!42 = !{!6, !10, i64 5864}
!43 = !{!6, !10, i64 5872}
!44 = !{!6, !10, i64 5880}
!45 = !{!6, !10, i64 56}
!46 = !{!6, !7, i64 4480}
!47 = !{!6, !7, i64 8440}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!6, !10, i64 64}
!51 = !{!6, !10, i64 8432}
!52 = !{!15, !15, i64 0}
!53 = distinct !{!53, !49}
!54 = distinct !{!54, !55}
!55 = !{!"llvm.loop.unroll.disable"}
!56 = !{!6, !11, i64 4697}
!57 = !{!6, !10, i64 4624}
!58 = distinct !{!58, !49}
!59 = distinct !{!59, !49}
!60 = !{!6, !7, i64 5528}
!61 = !{!6, !7, i64 8128}
!62 = !{!6, !11, i64 4696}
!63 = !{!6, !10, i64 5352}
!64 = !{!6, !7, i64 5832}
!65 = !{!6, !11, i64 48}
!66 = !{!6, !11, i64 4698}
!67 = !{!6, !10, i64 7608}
!68 = !{!6, !10, i64 7616}
!69 = !{!6, !10, i64 7624}
!70 = !{!6, !10, i64 7632}
!71 = !{!6, !10, i64 7640}
!72 = !{!6, !10, i64 7648}
!73 = !{!6, !10, i64 7656}
!74 = distinct !{!74, !49}
!75 = !{!6, !10, i64 5552}
!76 = !{!6, !7, i64 8424}
!77 = !{!6, !10, i64 16}
!78 = distinct !{!78, !49}
!79 = distinct !{!79, !49}
!80 = distinct !{!80, !49}
!81 = !{!6, !10, i64 5544}
!82 = !{!6, !10, i64 7840}
!83 = !{!6, !10, i64 7848}
!84 = !{!6, !10, i64 7856}
!85 = !{!6, !7, i64 7680}
!86 = !{!6, !10, i64 7688}
!87 = !{!6, !11, i64 49}
!88 = !{!6, !11, i64 4699}
!89 = !{!6, !11, i64 4701}
!90 = !{!6, !10, i64 5360}
!91 = !{!6, !7, i64 7832}
!92 = !{!6, !7, i64 5816}
!93 = distinct !{!93, !49}
!94 = distinct !{!94, !55}
!95 = !{!6, !10, i64 8120}
!96 = distinct !{!96, !49}
!97 = distinct !{!97, !55}
!98 = distinct !{!98, !49}
!99 = !{!6, !10, i64 5368}
!100 = distinct !{!100, !49}
!101 = distinct !{!101, !49}
!102 = distinct !{!102, !49}
!103 = !{!6, !10, i64 5536}
!104 = distinct !{!104, !49}
!105 = !{!6, !10, i64 32}
!106 = !{!6, !10, i64 24}
!107 = !{!6, !7, i64 40}
!108 = distinct !{!108, !49}
!109 = !{!6, !7, i64 5824}


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