; LLVM IR from venumb/ZSPACE :: cpp/depends/alglib/cpp/src (optimization)

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

%"struct.alglib_impl::minbleicstate" = type { i64, i64, double, double, double, i64, i8, i8, double, double, %"struct.alglib_impl::sactiveset", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, i8, i8, %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, i64, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, double, double, double, double, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::snnlssolver", double, double, double, double, double, double, double, double, double, i64, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::linminstate", double, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, double, i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sactiveset" = type { i64, i64, %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_vector", i64, i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::snnlssolver", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::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", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, i8, double, double, i8, %"struct.alglib_impl::optguardreport", double, double, %"struct.alglib_impl::optguardnonc1test0report", %"struct.alglib_impl::optguardnonc1test0report", double, double, %"struct.alglib_impl::optguardnonc1test1report", %"struct.alglib_impl::optguardnonc1test1report", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardreport" = type { i8, i8, i64, double, i8, i8, i8, i64, double, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardnonc1test0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test1report" = type { i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::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.281 = 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_implL15minbleic_nmstolE = 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 24
  %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 24
  %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 !26
  %33 = getelementptr inbounds i64, ptr %32, i64 0
  %34 = load i64, ptr %33, align 8, !tbaa !27
  store i64 %34, ptr %6, align 8, !tbaa !27
  %35 = load ptr, ptr %4, align 8, !tbaa !5
  %36 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %35, i32 0, i32 24
  %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 !26
  %40 = getelementptr inbounds i64, ptr %39, i64 1
  %41 = load i64, ptr %40, align 8, !tbaa !27
  store i64 %41, ptr %7, align 8, !tbaa !27
  %42 = load ptr, ptr %4, align 8, !tbaa !5
  %43 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %42, i32 0, i32 24
  %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 !26
  %47 = getelementptr inbounds i64, ptr %46, i64 2
  %48 = load i64, ptr %47, align 8, !tbaa !27
  store i64 %48, ptr %8, align 8, !tbaa !27
  %49 = load ptr, ptr %4, align 8, !tbaa !5
  %50 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %49, i32 0, i32 24
  %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 !26
  %54 = getelementptr inbounds i64, ptr %53, i64 3
  %55 = load i64, ptr %54, align 8, !tbaa !27
  store i64 %55, ptr %9, align 8, !tbaa !27
  %56 = load ptr, ptr %4, align 8, !tbaa !5
  %57 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %56, i32 0, i32 24
  %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 !26
  %61 = getelementptr inbounds i64, ptr %60, i64 4
  %62 = load i64, ptr %61, align 8, !tbaa !27
  store i64 %62, ptr %14, align 8, !tbaa !27
  %63 = load ptr, ptr %4, align 8, !tbaa !5
  %64 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %63, i32 0, i32 24
  %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 !26
  %68 = getelementptr inbounds i64, ptr %67, i64 5
  %69 = load i64, ptr %68, align 8, !tbaa !27
  store i64 %69, ptr %15, align 8, !tbaa !27
  %70 = load ptr, ptr %4, align 8, !tbaa !5
  %71 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %70, i32 0, i32 24
  %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 !26
  %75 = getelementptr inbounds i64, ptr %74, i64 6
  %76 = load i64, ptr %75, align 8, !tbaa !27
  store i64 %76, ptr %16, align 8, !tbaa !27
  %77 = load ptr, ptr %4, align 8, !tbaa !5
  %78 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %77, i32 0, i32 24
  %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 !26
  %82 = getelementptr inbounds i8, ptr %81, i64 0
  %83 = load i8, ptr %82, align 1, !tbaa !28, !range !29, !noundef !30
  %84 = trunc i8 %83 to i1
  %85 = zext i1 %84 to i8
  store i8 %85, ptr %13, align 1, !tbaa !28
  %86 = load ptr, ptr %4, align 8, !tbaa !5
  %87 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %86, i32 0, i32 24
  %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 !26
  %91 = getelementptr inbounds double, ptr %90, i64 0
  %92 = load double, ptr %91, align 8, !tbaa !31
  store double %92, ptr %10, align 8, !tbaa !31
  %93 = load ptr, ptr %4, align 8, !tbaa !5
  %94 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %93, i32 0, i32 24
  %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 !26
  %98 = getelementptr inbounds double, ptr %97, i64 1
  %99 = load double, ptr %98, align 8, !tbaa !31
  store double %99, ptr %11, align 8, !tbaa !31
  %100 = load ptr, ptr %4, align 8, !tbaa !5
  %101 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %100, i32 0, i32 24
  %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 !26
  %105 = getelementptr inbounds double, ptr %104, i64 2
  %106 = load double, ptr %105, align 8, !tbaa !31
  store double %106, ptr %12, align 8, !tbaa !31
  %107 = load ptr, ptr %4, align 8, !tbaa !5
  %108 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %107, i32 0, i32 24
  %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 !26
  %112 = getelementptr inbounds double, ptr %111, i64 3
  %113 = load double, ptr %112, align 8, !tbaa !31
  store double %113, ptr %17, align 8, !tbaa !31
  %114 = load ptr, ptr %4, align 8, !tbaa !5
  %115 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %114, i32 0, i32 24
  %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 !26
  %119 = getelementptr inbounds double, ptr %118, i64 4
  %120 = load double, ptr %119, align 8, !tbaa !31
  store double %120, ptr %18, align 8, !tbaa !31
  %121 = load ptr, ptr %4, align 8, !tbaa !5
  %122 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %121, i32 0, i32 24
  %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 !26
  %126 = getelementptr inbounds double, ptr %125, i64 5
  %127 = load double, ptr %126, align 8, !tbaa !31
  store double %127, ptr %19, align 8, !tbaa !31
  br label %129

128:                                              ; preds = %2
  store i64 359, ptr %6, align 8, !tbaa !27
  store i64 -58, ptr %7, align 8, !tbaa !27
  store i64 -919, ptr %8, align 8, !tbaa !27
  store i64 -909, ptr %9, align 8, !tbaa !27
  store i64 81, ptr %14, align 8, !tbaa !27
  store i64 255, ptr %15, align 8, !tbaa !27
  store i64 74, ptr %16, align 8, !tbaa !27
  store i8 0, ptr %13, align 1, !tbaa !28
  store double 8.090000e+02, ptr %10, align 8, !tbaa !31
  store double 2.050000e+02, ptr %11, align 8, !tbaa !31
  store double -8.380000e+02, ptr %12, align 8, !tbaa !31
  store double 9.390000e+02, ptr %17, align 8, !tbaa !31
  store double -5.260000e+02, ptr %18, align 8, !tbaa !31
  store double 7.630000e+02, ptr %19, align 8, !tbaa !31
  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 24
  %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 %468

136:                                              ; preds = %129
  %137 = load ptr, ptr %4, align 8, !tbaa !5
  %138 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %137, i32 0, i32 24
  %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 %633

143:                                              ; preds = %136
  %144 = load ptr, ptr %4, align 8, !tbaa !5
  %145 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %144, i32 0, i32 24
  %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 %642

150:                                              ; preds = %143
  %151 = load ptr, ptr %4, align 8, !tbaa !5
  %152 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %151, i32 0, i32 24
  %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 %693

157:                                              ; preds = %150
  %158 = load ptr, ptr %4, align 8, !tbaa !5
  %159 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %158, i32 0, i32 24
  %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 %738

164:                                              ; preds = %157
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %165, i32 0, i32 24
  %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 %747

171:                                              ; preds = %164
  %172 = load ptr, ptr %4, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %172, i32 0, i32 24
  %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 %866

178:                                              ; preds = %171
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %179, i32 0, i32 24
  %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 %895

185:                                              ; preds = %178
  %186 = load ptr, ptr %4, align 8, !tbaa !5
  %187 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %186, i32 0, i32 24
  %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 %923

192:                                              ; preds = %185
  %193 = load ptr, ptr %4, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %193, i32 0, i32 24
  %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 %950

199:                                              ; preds = %192
  %200 = load ptr, ptr %4, align 8, !tbaa !5
  %201 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %200, i32 0, i32 24
  %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 %1095

206:                                              ; preds = %199
  %207 = load ptr, ptr %4, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %207, i32 0, i32 24
  %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 %1113

213:                                              ; preds = %206
  %214 = load ptr, ptr %4, align 8, !tbaa !5
  %215 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %214, i32 0, i32 24
  %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 %1662

220:                                              ; preds = %213
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %221, i32 0, i32 24
  %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 %1799

227:                                              ; preds = %220
  %228 = load ptr, ptr %4, align 8, !tbaa !5
  %229 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %228, i32 0, i32 24
  %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 %1814

234:                                              ; preds = %227
  %235 = load ptr, ptr %4, align 8, !tbaa !5
  %236 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %235, i32 0, i32 24
  %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 %1933

241:                                              ; preds = %234
  %242 = load ptr, ptr %4, align 8, !tbaa !5
  %243 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %242, i32 0, i32 24
  %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 %1962

248:                                              ; preds = %241
  %249 = load ptr, ptr %4, align 8, !tbaa !5
  %250 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %249, i32 0, i32 24
  %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 %1990

255:                                              ; preds = %248
  %256 = load ptr, ptr %4, align 8, !tbaa !5
  %257 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %256, i32 0, i32 24
  %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 %2017

262:                                              ; preds = %255
  %263 = load ptr, ptr %4, align 8, !tbaa !5
  %264 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %263, i32 0, i32 24
  %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 %2168

269:                                              ; preds = %262
  %270 = load ptr, ptr %4, align 8, !tbaa !5
  %271 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %270, i32 0, i32 24
  %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 %2186

276:                                              ; preds = %269
  %277 = load ptr, ptr %4, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %277, i32 0, i32 24
  %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 %2714

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 !32
  %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 !27
  %289 = load double, ptr @_ZN11alglib_implL21minbleic_initialdecayE, align 8, !tbaa !31
  store double %289, ptr %19, align 8, !tbaa !31
  %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 !32
  store i64 %292, ptr %6, align 8, !tbaa !27
  %293 = load ptr, ptr %4, align 8, !tbaa !5
  %294 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %293, i32 0, i32 21
  store i8 0, ptr %294, align 4, !tbaa !33
  %295 = load ptr, ptr %4, align 8, !tbaa !5
  %296 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %295, i32 0, i32 23
  store i8 0, ptr %296, align 2, !tbaa !34
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %297, i32 0, i32 49
  store i64 0, ptr %298, align 8, !tbaa !35
  %299 = load ptr, ptr %4, align 8, !tbaa !5
  %300 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %299, i32 0, i32 45
  store i64 0, ptr %300, align 8, !tbaa !36
  %301 = load ptr, ptr %4, align 8, !tbaa !5
  %302 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %301, i32 0, i32 46
  store i64 0, ptr %302, align 8, !tbaa !37
  %303 = load ptr, ptr %4, align 8, !tbaa !5
  %304 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %303, i32 0, i32 47
  store i64 0, ptr %304, align 8, !tbaa !38
  %305 = load ptr, ptr %4, align 8, !tbaa !5
  %306 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %305, i32 0, i32 48
  store i64 -1, ptr %306, align 8, !tbaa !39
  %307 = load ptr, ptr %4, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %307, i32 0, i32 50
  store double 0.000000e+00, ptr %308, align 8, !tbaa !40
  %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 !41
  %312 = load ptr, ptr %4, align 8, !tbaa !5
  %313 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %312, i32 0, i32 51
  store double %311, ptr %313, align 8, !tbaa !45
  %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 !41
  %317 = load ptr, ptr %4, align 8, !tbaa !5
  %318 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %317, i32 0, i32 52
  store double %316, ptr %318, align 8, !tbaa !46
  %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 !41
  %322 = load ptr, ptr %4, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %322, i32 0, i32 53
  store double %321, ptr %323, align 8, !tbaa !47
  %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 !48
  %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 !49
  %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 49
  store i64 -10, ptr %335, align 8, !tbaa !35
  store i8 0, ptr %20, align 1, !tbaa !28
  %336 = load i8, ptr %20, align 1, !tbaa !28, !range !29, !noundef !30
  %337 = trunc i8 %336 to i1
  store i1 %337, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3264

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 80
  %341 = load i64, ptr %7, align 8, !tbaa !27
  %342 = add nsw i64 %341, 1
  %343 = load i64, ptr %6, align 8, !tbaa !27
  %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 81
  %347 = load i64, ptr %7, align 8, !tbaa !27
  %348 = add nsw i64 %347, 1
  %349 = load i64, ptr %6, align 8, !tbaa !27
  %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 82
  %353 = load i64, ptr %7, align 8, !tbaa !27
  %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 83
  %357 = load i64, ptr %7, align 8, !tbaa !27
  %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 70
  %361 = load i64, ptr %6, align 8, !tbaa !27
  %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 87
  %365 = load i64, ptr %6, align 8, !tbaa !27
  %366 = load ptr, ptr %4, align 8, !tbaa !5
  %367 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %366, i32 0, i32 86
  %368 = load i64, ptr %367, align 8, !tbaa !50
  %369 = icmp sgt i64 %368, 0
  %370 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEllbPNS_8ae_stateE(ptr noundef %364, i64 noundef %365, i64 noundef 1, i1 noundef zeroext %369, ptr noundef %370)
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %371

371:                                              ; preds = %404, %338
  %372 = load i64, ptr %8, align 8, !tbaa !27
  %373 = load i64, ptr %6, align 8, !tbaa !27
  %374 = sub nsw i64 %373, 1
  %375 = icmp sle i64 %372, %374
  br i1 %375, label %376, label %407

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

404:                                              ; preds = %376
  %405 = load i64, ptr %8, align 8, !tbaa !27
  %406 = add nsw i64 %405, 1
  store i64 %406, ptr %8, align 8, !tbaa !27
  br label %371, !llvm.loop !51

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

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

419:                                              ; preds = %414, %407
  br label %507

420:                                              ; preds = %414
  br label %421

421:                                              ; preds = %505, %420
  %422 = load ptr, ptr %4, align 8, !tbaa !5
  %423 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %422, i32 0, i32 87
  %424 = load ptr, ptr %4, align 8, !tbaa !5
  %425 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %424, i32 0, i32 56
  %426 = load ptr, ptr %4, align 8, !tbaa !5
  %427 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %426, i32 0, i32 11
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  %429 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %428, i32 0, i32 43
  %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 85
  %434 = load double, ptr %433, align 8, !tbaa !54
  %435 = load ptr, ptr %5, align 8, !tbaa !5
  %436 = call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_S3_bdPNS_8ae_stateE(ptr noundef %423, ptr noundef %425, ptr noundef %427, ptr noundef %429, ptr noundef %431, i1 noundef zeroext true, double noundef %434, ptr noundef %435)
  br i1 %436, label %438, label %437

437:                                              ; preds = %421
  br label %506

438:                                              ; preds = %421
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %439

439:                                              ; preds = %459, %438
  %440 = load i64, ptr %8, align 8, !tbaa !27
  %441 = load i64, ptr %6, align 8, !tbaa !27
  %442 = sub nsw i64 %441, 1
  %443 = icmp sle i64 %440, %442
  br i1 %443, label %444, label %462

444:                                              ; preds = %439
  %445 = load ptr, ptr %4, align 8, !tbaa !5
  %446 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %445, i32 0, i32 87
  %447 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %446, i32 0, i32 27
  %448 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %447, i32 0, i32 4
  %449 = load ptr, ptr %448, align 8, !tbaa !26
  %450 = load i64, ptr %8, align 8, !tbaa !27
  %451 = getelementptr inbounds double, ptr %449, i64 %450
  %452 = load double, ptr %451, align 8, !tbaa !31
  %453 = load ptr, ptr %4, align 8, !tbaa !5
  %454 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %453, i32 0, i32 14
  %455 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %454, i32 0, i32 4
  %456 = load ptr, ptr %455, align 8, !tbaa !26
  %457 = load i64, ptr %8, align 8, !tbaa !27
  %458 = getelementptr inbounds double, ptr %456, i64 %457
  store double %452, ptr %458, align 8, !tbaa !31
  br label %459

459:                                              ; preds = %444
  %460 = load i64, ptr %8, align 8, !tbaa !27
  %461 = add nsw i64 %460, 1
  store i64 %461, ptr %8, align 8, !tbaa !27
  br label %439, !llvm.loop !55

462:                                              ; preds = %439
  %463 = load ptr, ptr %4, align 8, !tbaa !5
  %464 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %463, i32 0, i32 18
  store i8 1, ptr %464, align 1, !tbaa !56
  %465 = load ptr, ptr %4, align 8, !tbaa !5
  %466 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %465, i32 0, i32 24
  %467 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %466, i32 0, i32 0
  store i32 0, ptr %467, align 8, !tbaa !9
  br label %3161

468:                                              ; preds = %135
  %469 = load ptr, ptr %4, align 8, !tbaa !5
  %470 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %469, i32 0, i32 18
  store i8 0, ptr %470, align 1, !tbaa !56
  %471 = load ptr, ptr %4, align 8, !tbaa !5
  %472 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %471, i32 0, i32 15
  %473 = load double, ptr %472, align 8, !tbaa !57
  %474 = load ptr, ptr %4, align 8, !tbaa !5
  %475 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %474, i32 0, i32 87
  %476 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %475, i32 0, i32 28
  %477 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %476, i32 0, i32 4
  %478 = load ptr, ptr %477, align 8, !tbaa !26
  %479 = getelementptr inbounds double, ptr %478, i64 0
  store double %473, ptr %479, align 8, !tbaa !31
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %480

480:                                              ; preds = %502, %468
  %481 = load i64, ptr %8, align 8, !tbaa !27
  %482 = load i64, ptr %6, align 8, !tbaa !27
  %483 = sub nsw i64 %482, 1
  %484 = icmp sle i64 %481, %483
  br i1 %484, label %485, label %505

485:                                              ; preds = %480
  %486 = load ptr, ptr %4, align 8, !tbaa !5
  %487 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %486, i32 0, i32 16
  %488 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %487, i32 0, i32 4
  %489 = load ptr, ptr %488, align 8, !tbaa !26
  %490 = load i64, ptr %8, align 8, !tbaa !27
  %491 = getelementptr inbounds double, ptr %489, i64 %490
  %492 = load double, ptr %491, align 8, !tbaa !31
  %493 = load ptr, ptr %4, align 8, !tbaa !5
  %494 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %493, i32 0, i32 87
  %495 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %494, i32 0, i32 29
  %496 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %495, i32 0, i32 6
  %497 = load ptr, ptr %496, align 8, !tbaa !26
  %498 = getelementptr inbounds ptr, ptr %497, i64 0
  %499 = load ptr, ptr %498, align 8, !tbaa !5
  %500 = load i64, ptr %8, align 8, !tbaa !27
  %501 = getelementptr inbounds double, ptr %499, i64 %500
  store double %492, ptr %501, align 8, !tbaa !31
  br label %502

502:                                              ; preds = %485
  %503 = load i64, ptr %8, align 8, !tbaa !27
  %504 = add nsw i64 %503, 1
  store i64 %504, ptr %8, align 8, !tbaa !27
  br label %480, !llvm.loop !58

505:                                              ; preds = %480
  br label %421

506:                                              ; preds = %437
  br label %507

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

512:                                              ; preds = %565, %507
  %513 = load i64, ptr %8, align 8, !tbaa !27
  %514 = load i64, ptr %6, align 8, !tbaa !27
  %515 = sub nsw i64 %514, 1
  %516 = icmp sle i64 %513, %515
  br i1 %516, label %517, label %568

517:                                              ; preds = %512
  %518 = load ptr, ptr %4, align 8, !tbaa !5
  %519 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %518, i32 0, i32 12
  %520 = load i64, ptr %519, align 8, !tbaa !49
  %521 = icmp eq i64 %520, 2
  br i1 %521, label %522, label %536

522:                                              ; preds = %517
  %523 = load ptr, ptr %4, align 8, !tbaa !5
  %524 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %523, i32 0, i32 13
  %525 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %524, i32 0, i32 4
  %526 = load ptr, ptr %525, align 8, !tbaa !26
  %527 = load i64, ptr %8, align 8, !tbaa !27
  %528 = getelementptr inbounds double, ptr %526, i64 %527
  %529 = load double, ptr %528, align 8, !tbaa !31
  %530 = load ptr, ptr %4, align 8, !tbaa !5
  %531 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %530, i32 0, i32 69
  %532 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %531, i32 0, i32 4
  %533 = load ptr, ptr %532, align 8, !tbaa !26
  %534 = load i64, ptr %8, align 8, !tbaa !27
  %535 = getelementptr inbounds double, ptr %533, i64 %534
  store double %529, ptr %535, align 8, !tbaa !31
  br label %565

536:                                              ; preds = %517
  %537 = load ptr, ptr %4, align 8, !tbaa !5
  %538 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %537, i32 0, i32 12
  %539 = load i64, ptr %538, align 8, !tbaa !49
  %540 = icmp eq i64 %539, 3
  br i1 %540, label %541, label %558

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

558:                                              ; preds = %536
  %559 = load ptr, ptr %4, align 8, !tbaa !5
  %560 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %559, i32 0, i32 69
  %561 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %560, i32 0, i32 4
  %562 = load ptr, ptr %561, align 8, !tbaa !26
  %563 = load i64, ptr %8, align 8, !tbaa !27
  %564 = getelementptr inbounds double, ptr %562, i64 %563
  store double 1.000000e+00, ptr %564, align 8, !tbaa !31
  br label %565

565:                                              ; preds = %558, %541, %522
  %566 = load i64, ptr %8, align 8, !tbaa !27
  %567 = add nsw i64 %566, 1
  store i64 %567, ptr %8, align 8, !tbaa !27
  br label %512, !llvm.loop !59

568:                                              ; preds = %512
  %569 = load ptr, ptr %4, align 8, !tbaa !5
  %570 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %569, i32 0, i32 10
  %571 = load ptr, ptr %4, align 8, !tbaa !5
  %572 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %571, i32 0, i32 69
  %573 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl14sassetprecdiagEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %570, ptr noundef %572, ptr noundef %573)
  %574 = load ptr, ptr %4, align 8, !tbaa !5
  %575 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %574, i32 0, i32 10
  %576 = load ptr, ptr %4, align 8, !tbaa !5
  %577 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %576, i32 0, i32 56
  %578 = load ptr, ptr %5, align 8, !tbaa !5
  %579 = call noundef zeroext i1 @_ZN11alglib_impl20sasstartoptimizationEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %575, ptr noundef %577, ptr noundef %578)
  br i1 %579, label %585, label %580

580:                                              ; preds = %568
  %581 = load ptr, ptr %4, align 8, !tbaa !5
  %582 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %581, i32 0, i32 49
  store i64 -3, ptr %582, align 8, !tbaa !35
  store i8 0, ptr %20, align 1, !tbaa !28
  %583 = load i8, ptr %20, align 1, !tbaa !28, !range !29, !noundef !30
  %584 = trunc i8 %583 to i1
  store i1 %584, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3264

585:                                              ; preds = %568
  %586 = load ptr, ptr %4, align 8, !tbaa !5
  %587 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %586, i32 0, i32 49
  store i64 0, ptr %587, align 8, !tbaa !35
  %588 = load ptr, ptr %4, align 8, !tbaa !5
  %589 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %588, i32 0, i32 38
  store double 0.000000e+00, ptr %589, align 8, !tbaa !60
  %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 i64, ptr %6, align 8, !tbaa !27
  %595 = load ptr, ptr %4, align 8, !tbaa !5
  %596 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %595, i32 0, i32 37
  %597 = load i64, ptr %596, align 8, !tbaa !63
  %598 = add nsw i64 %594, %597
  %599 = sitofp i64 %598 to double
  %600 = fmul double 1.500000e+00, %599
  %601 = load ptr, ptr %5, align 8, !tbaa !5
  %602 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %600, ptr noundef %601)
  %603 = add nsw i64 %602, 5
  %604 = load ptr, ptr %4, align 8, !tbaa !5
  %605 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %604, i32 0, i32 79
  store i64 %603, ptr %605, align 8, !tbaa !64
  %606 = load ptr, ptr %4, align 8, !tbaa !5
  %607 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %606, i32 0, i32 14
  %608 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %607, i32 0, i32 4
  %609 = load ptr, ptr %608, align 8, !tbaa !26
  %610 = getelementptr inbounds double, ptr %609, i64 0
  %611 = load ptr, ptr %4, align 8, !tbaa !5
  %612 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %611, i32 0, i32 10
  %613 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %612, i32 0, i32 2
  %614 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %613, i32 0, i32 4
  %615 = load ptr, ptr %614, align 8, !tbaa !26
  %616 = getelementptr inbounds double, ptr %615, i64 0
  %617 = load i64, ptr %6, align 8, !tbaa !27
  %618 = sub nsw i64 %617, 1
  %619 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %618)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %610, i64 noundef 1, ptr noundef %616, i64 noundef 1, i64 noundef %619)
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %620, ptr noundef %621)
  %622 = load ptr, ptr %4, align 8, !tbaa !5
  %623 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %622, i32 0, i32 9
  %624 = load double, ptr %623, align 8, !tbaa !53
  %625 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %624, double noundef 0.000000e+00)
  br i1 %625, label %626, label %627

626:                                              ; preds = %585
  br label %636

627:                                              ; preds = %585
  %628 = load ptr, ptr %4, align 8, !tbaa !5
  %629 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %628, i32 0, i32 18
  store i8 1, ptr %629, align 1, !tbaa !56
  %630 = load ptr, ptr %4, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %630, i32 0, i32 24
  %632 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %631, i32 0, i32 0
  store i32 1, ptr %632, align 8, !tbaa !9
  br label %3161

633:                                              ; preds = %142
  %634 = load ptr, ptr %4, align 8, !tbaa !5
  %635 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %634, i32 0, i32 18
  store i8 0, ptr %635, align 1, !tbaa !56
  br label %645

636:                                              ; preds = %626
  %637 = load ptr, ptr %4, align 8, !tbaa !5
  %638 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %637, i32 0, i32 17
  store i8 1, ptr %638, align 8, !tbaa !65
  %639 = load ptr, ptr %4, align 8, !tbaa !5
  %640 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %639, i32 0, i32 24
  %641 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %640, i32 0, i32 0
  store i32 2, ptr %641, align 8, !tbaa !9
  br label %3161

642:                                              ; preds = %149
  %643 = load ptr, ptr %4, align 8, !tbaa !5
  %644 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %643, i32 0, i32 17
  store i8 0, ptr %644, align 8, !tbaa !65
  br label %645

645:                                              ; preds = %642, %633
  %646 = load ptr, ptr %4, align 8, !tbaa !5
  %647 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %646, i32 0, i32 15
  %648 = load double, ptr %647, align 8, !tbaa !57
  %649 = load ptr, ptr %4, align 8, !tbaa !5
  %650 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %649, i32 0, i32 31
  store double %648, ptr %650, align 8, !tbaa !66
  %651 = load ptr, ptr %4, align 8, !tbaa !5
  %652 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %651, i32 0, i32 15
  %653 = load double, ptr %652, align 8, !tbaa !57
  %654 = load ptr, ptr %4, align 8, !tbaa !5
  %655 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %654, i32 0, i32 78
  %656 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11trimprepareEdPdPNS_8ae_stateE(double noundef %653, ptr noundef %655, ptr noundef %656)
  %657 = load ptr, ptr %4, align 8, !tbaa !5
  %658 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %657, i32 0, i32 47
  %659 = load i64, ptr %658, align 8, !tbaa !38
  %660 = add nsw i64 %659, 1
  %661 = load ptr, ptr %4, align 8, !tbaa !5
  %662 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %661, i32 0, i32 47
  store i64 %660, ptr %662, align 8, !tbaa !38
  %663 = load ptr, ptr %4, align 8, !tbaa !5
  %664 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %663, i32 0, i32 6
  %665 = load i8, ptr %664, align 8, !tbaa !67, !range !29, !noundef !30
  %666 = trunc i8 %665 to i1
  br i1 %666, label %668, label %667

667:                                              ; preds = %645
  br label %696

668:                                              ; preds = %645
  %669 = load ptr, ptr %4, align 8, !tbaa !5
  %670 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %669, i32 0, i32 14
  %671 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %670, i32 0, i32 4
  %672 = load ptr, ptr %671, align 8, !tbaa !26
  %673 = getelementptr inbounds double, ptr %672, i64 0
  %674 = load ptr, ptr %4, align 8, !tbaa !5
  %675 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %674, i32 0, i32 10
  %676 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %675, i32 0, i32 2
  %677 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %676, i32 0, i32 4
  %678 = load ptr, ptr %677, align 8, !tbaa !26
  %679 = getelementptr inbounds double, ptr %678, i64 0
  %680 = load i64, ptr %6, align 8, !tbaa !27
  %681 = sub nsw i64 %680, 1
  %682 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %681)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %673, i64 noundef 1, ptr noundef %679, i64 noundef 1, i64 noundef %682)
  %683 = load ptr, ptr %4, align 8, !tbaa !5
  %684 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %683, i32 0, i32 31
  %685 = load double, ptr %684, align 8, !tbaa !66
  %686 = load ptr, ptr %4, align 8, !tbaa !5
  %687 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %686, i32 0, i32 15
  store double %685, ptr %687, align 8, !tbaa !57
  %688 = load ptr, ptr %4, align 8, !tbaa !5
  %689 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %688, i32 0, i32 19
  store i8 1, ptr %689, align 2, !tbaa !68
  %690 = load ptr, ptr %4, align 8, !tbaa !5
  %691 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %690, i32 0, i32 24
  %692 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %691, i32 0, i32 0
  store i32 3, ptr %692, align 8, !tbaa !9
  br label %3161

693:                                              ; preds = %156
  %694 = load ptr, ptr %4, align 8, !tbaa !5
  %695 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %694, i32 0, i32 19
  store i8 0, ptr %695, align 2, !tbaa !68
  br label %696

696:                                              ; preds = %693, %667
  %697 = load ptr, ptr %4, align 8, !tbaa !5
  %698 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %697, i32 0, i32 23
  %699 = load i8, ptr %698, align 2, !tbaa !34, !range !29, !noundef !30
  %700 = trunc i8 %699 to i1
  br i1 %700, label %701, label %709

701:                                              ; preds = %696
  %702 = load ptr, ptr %4, align 8, !tbaa !5
  %703 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %702, i32 0, i32 10
  %704 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %703, ptr noundef %704)
  %705 = load ptr, ptr %4, align 8, !tbaa !5
  %706 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %705, i32 0, i32 49
  store i64 8, ptr %706, align 8, !tbaa !35
  store i8 0, ptr %20, align 1, !tbaa !28
  %707 = load i8, ptr %20, align 1, !tbaa !28, !range !29, !noundef !30
  %708 = trunc i8 %707 to i1
  store i1 %708, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3264

709:                                              ; preds = %696
  br label %710

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

731:                                              ; preds = %710
  br label %741

732:                                              ; preds = %710
  %733 = load ptr, ptr %4, align 8, !tbaa !5
  %734 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %733, i32 0, i32 18
  store i8 1, ptr %734, align 1, !tbaa !56
  %735 = load ptr, ptr %4, align 8, !tbaa !5
  %736 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %735, i32 0, i32 24
  %737 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %736, i32 0, i32 0
  store i32 4, ptr %737, align 8, !tbaa !9
  br label %3161

738:                                              ; preds = %163
  %739 = load ptr, ptr %4, align 8, !tbaa !5
  %740 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %739, i32 0, i32 18
  store i8 0, ptr %740, align 1, !tbaa !56
  br label %1174

741:                                              ; preds = %731
  %742 = load ptr, ptr %4, align 8, !tbaa !5
  %743 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %742, i32 0, i32 17
  store i8 1, ptr %743, align 8, !tbaa !65
  %744 = load ptr, ptr %4, align 8, !tbaa !5
  %745 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %744, i32 0, i32 24
  %746 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %745, i32 0, i32 0
  store i32 5, ptr %746, align 8, !tbaa !9
  br label %3161

747:                                              ; preds = %170
  %748 = load ptr, ptr %4, align 8, !tbaa !5
  %749 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %748, i32 0, i32 15
  %750 = load double, ptr %749, align 8, !tbaa !57
  %751 = load ptr, ptr %4, align 8, !tbaa !5
  %752 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %751, i32 0, i32 58
  store double %750, ptr %752, align 8, !tbaa !69
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %753

753:                                              ; preds = %1156, %747
  %754 = load i64, ptr %8, align 8, !tbaa !27
  %755 = load i64, ptr %6, align 8, !tbaa !27
  %756 = sub nsw i64 %755, 1
  %757 = icmp sgt i64 %754, %756
  br i1 %757, label %758, label %759

758:                                              ; preds = %753
  br label %1166

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

775:                                              ; preds = %759
  %776 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %777 = trunc i8 %776 to i1
  br i1 %777, label %800, label %778

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

800:                                              ; preds = %778, %775
  %801 = phi i1 [ true, %775 ], [ %799, %778 ]
  %802 = zext i1 %801 to i8
  store i8 %802, ptr %13, align 1, !tbaa !28
  br label %803

803:                                              ; preds = %800, %759
  %804 = load ptr, ptr %4, align 8, !tbaa !5
  %805 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %804, i32 0, i32 42
  %806 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %805, i32 0, i32 4
  %807 = load ptr, ptr %806, align 8, !tbaa !26
  %808 = load i64, ptr %8, align 8, !tbaa !27
  %809 = getelementptr inbounds i8, ptr %807, i64 %808
  %810 = load i8, ptr %809, align 1, !tbaa !28, !range !29, !noundef !30
  %811 = trunc i8 %810 to i1
  br i1 %811, label %812, label %839

812:                                              ; preds = %803
  %813 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %814 = trunc i8 %813 to i1
  br i1 %814, label %836, label %815

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

836:                                              ; preds = %815, %812
  %837 = phi i1 [ true, %812 ], [ %835, %815 ]
  %838 = zext i1 %837 to i8
  store i8 %838, ptr %13, align 1, !tbaa !28
  br label %839

839:                                              ; preds = %836, %803
  %840 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %841 = trunc i8 %840 to i1
  br i1 %841, label %842, label %843

842:                                              ; preds = %839
  br label %991

843:                                              ; preds = %839
  %844 = load double, ptr %10, align 8, !tbaa !31
  %845 = load ptr, ptr %4, align 8, !tbaa !5
  %846 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %845, i32 0, i32 9
  %847 = load double, ptr %846, align 8, !tbaa !53
  %848 = load ptr, ptr %4, align 8, !tbaa !5
  %849 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %848, i32 0, i32 11
  %850 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %849, i32 0, i32 4
  %851 = load ptr, ptr %850, align 8, !tbaa !26
  %852 = load i64, ptr %8, align 8, !tbaa !27
  %853 = getelementptr inbounds double, ptr %851, i64 %852
  %854 = load double, ptr %853, align 8, !tbaa !31
  %855 = fneg double %847
  %856 = call double @llvm.fmuladd.f64(double %855, double %854, double %844)
  %857 = load ptr, ptr %4, align 8, !tbaa !5
  %858 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %857, i32 0, i32 14
  %859 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %858, i32 0, i32 4
  %860 = load ptr, ptr %859, align 8, !tbaa !26
  %861 = load i64, ptr %8, align 8, !tbaa !27
  %862 = getelementptr inbounds double, ptr %860, i64 %861
  store double %856, ptr %862, align 8, !tbaa !31
  %863 = load ptr, ptr %4, align 8, !tbaa !5
  %864 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %863, i32 0, i32 24
  %865 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %864, i32 0, i32 0
  store i32 6, ptr %865, align 8, !tbaa !9
  br label %3161

866:                                              ; preds = %177
  %867 = load ptr, ptr %4, align 8, !tbaa !5
  %868 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %867, i32 0, i32 15
  %869 = load double, ptr %868, align 8, !tbaa !57
  %870 = load ptr, ptr %4, align 8, !tbaa !5
  %871 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %870, i32 0, i32 59
  store double %869, ptr %871, align 8, !tbaa !70
  %872 = load double, ptr %10, align 8, !tbaa !31
  %873 = load ptr, ptr %4, align 8, !tbaa !5
  %874 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %873, i32 0, i32 9
  %875 = load double, ptr %874, align 8, !tbaa !53
  %876 = fmul double 5.000000e-01, %875
  %877 = load ptr, ptr %4, align 8, !tbaa !5
  %878 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %877, i32 0, i32 11
  %879 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %878, i32 0, i32 4
  %880 = load ptr, ptr %879, align 8, !tbaa !26
  %881 = load i64, ptr %8, align 8, !tbaa !27
  %882 = getelementptr inbounds double, ptr %880, i64 %881
  %883 = load double, ptr %882, align 8, !tbaa !31
  %884 = fneg double %876
  %885 = call double @llvm.fmuladd.f64(double %884, double %883, double %872)
  %886 = load ptr, ptr %4, align 8, !tbaa !5
  %887 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %886, i32 0, i32 14
  %888 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %887, i32 0, i32 4
  %889 = load ptr, ptr %888, align 8, !tbaa !26
  %890 = load i64, ptr %8, align 8, !tbaa !27
  %891 = getelementptr inbounds double, ptr %889, i64 %890
  store double %885, ptr %891, align 8, !tbaa !31
  %892 = load ptr, ptr %4, align 8, !tbaa !5
  %893 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %892, i32 0, i32 24
  %894 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %893, i32 0, i32 0
  store i32 7, ptr %894, align 8, !tbaa !9
  br label %3161

895:                                              ; preds = %184
  %896 = load ptr, ptr %4, align 8, !tbaa !5
  %897 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %896, i32 0, i32 15
  %898 = load double, ptr %897, align 8, !tbaa !57
  %899 = load ptr, ptr %4, align 8, !tbaa !5
  %900 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %899, i32 0, i32 60
  store double %898, ptr %900, align 8, !tbaa !71
  %901 = load double, ptr %10, align 8, !tbaa !31
  %902 = load ptr, ptr %4, align 8, !tbaa !5
  %903 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %902, i32 0, i32 9
  %904 = load double, ptr %903, align 8, !tbaa !53
  %905 = fmul double 5.000000e-01, %904
  %906 = load ptr, ptr %4, align 8, !tbaa !5
  %907 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %906, i32 0, i32 11
  %908 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %907, i32 0, i32 4
  %909 = load ptr, ptr %908, align 8, !tbaa !26
  %910 = load i64, ptr %8, align 8, !tbaa !27
  %911 = getelementptr inbounds double, ptr %909, i64 %910
  %912 = load double, ptr %911, align 8, !tbaa !31
  %913 = call double @llvm.fmuladd.f64(double %905, double %912, double %901)
  %914 = load ptr, ptr %4, align 8, !tbaa !5
  %915 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %914, i32 0, i32 14
  %916 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %915, i32 0, i32 4
  %917 = load ptr, ptr %916, align 8, !tbaa !26
  %918 = load i64, ptr %8, align 8, !tbaa !27
  %919 = getelementptr inbounds double, ptr %917, i64 %918
  store double %913, ptr %919, align 8, !tbaa !31
  %920 = load ptr, ptr %4, align 8, !tbaa !5
  %921 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %920, i32 0, i32 24
  %922 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %921, i32 0, i32 0
  store i32 8, ptr %922, align 8, !tbaa !9
  br label %3161

923:                                              ; preds = %191
  %924 = load ptr, ptr %4, align 8, !tbaa !5
  %925 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %924, i32 0, i32 15
  %926 = load double, ptr %925, align 8, !tbaa !57
  %927 = load ptr, ptr %4, align 8, !tbaa !5
  %928 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %927, i32 0, i32 61
  store double %926, ptr %928, align 8, !tbaa !72
  %929 = load double, ptr %10, align 8, !tbaa !31
  %930 = load ptr, ptr %4, align 8, !tbaa !5
  %931 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %930, i32 0, i32 9
  %932 = load double, ptr %931, align 8, !tbaa !53
  %933 = load ptr, ptr %4, align 8, !tbaa !5
  %934 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %933, i32 0, i32 11
  %935 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %934, i32 0, i32 4
  %936 = load ptr, ptr %935, align 8, !tbaa !26
  %937 = load i64, ptr %8, align 8, !tbaa !27
  %938 = getelementptr inbounds double, ptr %936, i64 %937
  %939 = load double, ptr %938, align 8, !tbaa !31
  %940 = call double @llvm.fmuladd.f64(double %932, double %939, double %929)
  %941 = load ptr, ptr %4, align 8, !tbaa !5
  %942 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %941, i32 0, i32 14
  %943 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %942, i32 0, i32 4
  %944 = load ptr, ptr %943, align 8, !tbaa !26
  %945 = load i64, ptr %8, align 8, !tbaa !27
  %946 = getelementptr inbounds double, ptr %944, i64 %945
  store double %940, ptr %946, align 8, !tbaa !31
  %947 = load ptr, ptr %4, align 8, !tbaa !5
  %948 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %947, i32 0, i32 24
  %949 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %948, i32 0, i32 0
  store i32 9, ptr %949, align 8, !tbaa !9
  br label %3161

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

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

1029:                                             ; preds = %991
  %1030 = load ptr, ptr %4, align 8, !tbaa !5
  %1031 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1030, i32 0, i32 63
  %1032 = load double, ptr %1031, align 8, !tbaa !74
  %1033 = load ptr, ptr %4, align 8, !tbaa !5
  %1034 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1033, i32 0, i32 43
  %1035 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1034, i32 0, i32 4
  %1036 = load ptr, ptr %1035, align 8, !tbaa !26
  %1037 = load i64, ptr %8, align 8, !tbaa !27
  %1038 = getelementptr inbounds double, ptr %1036, i64 %1037
  %1039 = load double, ptr %1038, align 8, !tbaa !31
  %1040 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1032, double noundef %1039)
  br i1 %1040, label %1041, label %1051

1041:                                             ; preds = %1029
  %1042 = load ptr, ptr %4, align 8, !tbaa !5
  %1043 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1042, i32 0, i32 43
  %1044 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1043, i32 0, i32 4
  %1045 = load ptr, ptr %1044, align 8, !tbaa !26
  %1046 = load i64, ptr %8, align 8, !tbaa !27
  %1047 = getelementptr inbounds double, ptr %1045, i64 %1046
  %1048 = load double, ptr %1047, align 8, !tbaa !31
  %1049 = load ptr, ptr %4, align 8, !tbaa !5
  %1050 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1049, i32 0, i32 63
  store double %1048, ptr %1050, align 8, !tbaa !74
  br label %1051

1051:                                             ; preds = %1041, %1029, %991
  %1052 = load ptr, ptr %4, align 8, !tbaa !5
  %1053 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1052, i32 0, i32 42
  %1054 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1053, i32 0, i32 4
  %1055 = load ptr, ptr %1054, align 8, !tbaa !26
  %1056 = load i64, ptr %8, align 8, !tbaa !27
  %1057 = getelementptr inbounds i8, ptr %1055, i64 %1056
  %1058 = load i8, ptr %1057, align 1, !tbaa !28, !range !29, !noundef !30
  %1059 = trunc i8 %1058 to i1
  br i1 %1059, label %1060, label %1082

1060:                                             ; preds = %1051
  %1061 = load ptr, ptr %4, align 8, !tbaa !5
  %1062 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1061, i32 0, i32 64
  %1063 = load double, ptr %1062, align 8, !tbaa !75
  %1064 = load ptr, ptr %4, align 8, !tbaa !5
  %1065 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1064, i32 0, i32 44
  %1066 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1065, i32 0, i32 4
  %1067 = load ptr, ptr %1066, align 8, !tbaa !26
  %1068 = load i64, ptr %8, align 8, !tbaa !27
  %1069 = getelementptr inbounds double, ptr %1067, i64 %1068
  %1070 = load double, ptr %1069, align 8, !tbaa !31
  %1071 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1063, double noundef %1070)
  br i1 %1071, label %1072, label %1082

1072:                                             ; preds = %1060
  %1073 = load ptr, ptr %4, align 8, !tbaa !5
  %1074 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1073, i32 0, i32 44
  %1075 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1074, i32 0, i32 4
  %1076 = load ptr, ptr %1075, align 8, !tbaa !26
  %1077 = load i64, ptr %8, align 8, !tbaa !27
  %1078 = getelementptr inbounds double, ptr %1076, i64 %1077
  %1079 = load double, ptr %1078, align 8, !tbaa !31
  %1080 = load ptr, ptr %4, align 8, !tbaa !5
  %1081 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1080, i32 0, i32 64
  store double %1079, ptr %1081, align 8, !tbaa !75
  br label %1082

1082:                                             ; preds = %1072, %1060, %1051
  %1083 = load ptr, ptr %4, align 8, !tbaa !5
  %1084 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1083, i32 0, i32 63
  %1085 = load double, ptr %1084, align 8, !tbaa !74
  %1086 = load ptr, ptr %4, align 8, !tbaa !5
  %1087 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1086, i32 0, i32 14
  %1088 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1087, i32 0, i32 4
  %1089 = load ptr, ptr %1088, align 8, !tbaa !26
  %1090 = load i64, ptr %8, align 8, !tbaa !27
  %1091 = getelementptr inbounds double, ptr %1089, i64 %1090
  store double %1085, ptr %1091, align 8, !tbaa !31
  %1092 = load ptr, ptr %4, align 8, !tbaa !5
  %1093 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1092, i32 0, i32 24
  %1094 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1093, i32 0, i32 0
  store i32 10, ptr %1094, align 8, !tbaa !9
  br label %3161

1095:                                             ; preds = %205
  %1096 = load ptr, ptr %4, align 8, !tbaa !5
  %1097 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1096, i32 0, i32 15
  %1098 = load double, ptr %1097, align 8, !tbaa !57
  %1099 = load ptr, ptr %4, align 8, !tbaa !5
  %1100 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1099, i32 0, i32 60
  store double %1098, ptr %1100, align 8, !tbaa !71
  %1101 = load ptr, ptr %4, align 8, !tbaa !5
  %1102 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1101, i32 0, i32 64
  %1103 = load double, ptr %1102, align 8, !tbaa !75
  %1104 = load ptr, ptr %4, align 8, !tbaa !5
  %1105 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1104, i32 0, i32 14
  %1106 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1105, i32 0, i32 4
  %1107 = load ptr, ptr %1106, align 8, !tbaa !26
  %1108 = load i64, ptr %8, align 8, !tbaa !27
  %1109 = getelementptr inbounds double, ptr %1107, i64 %1108
  store double %1103, ptr %1109, align 8, !tbaa !31
  %1110 = load ptr, ptr %4, align 8, !tbaa !5
  %1111 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1110, i32 0, i32 24
  %1112 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1111, i32 0, i32 0
  store i32 11, ptr %1112, align 8, !tbaa !9
  br label %3161

1113:                                             ; preds = %212
  %1114 = load ptr, ptr %4, align 8, !tbaa !5
  %1115 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1114, i32 0, i32 15
  %1116 = load double, ptr %1115, align 8, !tbaa !57
  %1117 = load ptr, ptr %4, align 8, !tbaa !5
  %1118 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1117, i32 0, i32 61
  store double %1116, ptr %1118, align 8, !tbaa !72
  %1119 = load ptr, ptr %4, align 8, !tbaa !5
  %1120 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1119, i32 0, i32 63
  %1121 = load double, ptr %1120, align 8, !tbaa !74
  %1122 = load ptr, ptr %4, align 8, !tbaa !5
  %1123 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1122, i32 0, i32 64
  %1124 = load double, ptr %1123, align 8, !tbaa !75
  %1125 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1121, double noundef %1124)
  br i1 %1125, label %1126, label %1148

1126:                                             ; preds = %1113
  %1127 = load ptr, ptr %4, align 8, !tbaa !5
  %1128 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1127, i32 0, i32 61
  %1129 = load double, ptr %1128, align 8, !tbaa !72
  %1130 = load ptr, ptr %4, align 8, !tbaa !5
  %1131 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1130, i32 0, i32 60
  %1132 = load double, ptr %1131, align 8, !tbaa !71
  %1133 = fsub double %1129, %1132
  %1134 = load ptr, ptr %4, align 8, !tbaa !5
  %1135 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1134, i32 0, i32 64
  %1136 = load double, ptr %1135, align 8, !tbaa !75
  %1137 = load ptr, ptr %4, align 8, !tbaa !5
  %1138 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1137, i32 0, i32 63
  %1139 = load double, ptr %1138, align 8, !tbaa !74
  %1140 = fsub double %1136, %1139
  %1141 = fdiv double %1133, %1140
  %1142 = load ptr, ptr %4, align 8, !tbaa !5
  %1143 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1142, i32 0, i32 16
  %1144 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1143, i32 0, i32 4
  %1145 = load ptr, ptr %1144, align 8, !tbaa !26
  %1146 = load i64, ptr %8, align 8, !tbaa !27
  %1147 = getelementptr inbounds double, ptr %1145, i64 %1146
  store double %1141, ptr %1147, align 8, !tbaa !31
  br label %1155

1148:                                             ; preds = %1113
  %1149 = load ptr, ptr %4, align 8, !tbaa !5
  %1150 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1149, i32 0, i32 16
  %1151 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1150, i32 0, i32 4
  %1152 = load ptr, ptr %1151, align 8, !tbaa !26
  %1153 = load i64, ptr %8, align 8, !tbaa !27
  %1154 = getelementptr inbounds double, ptr %1152, i64 %1153
  store double 0.000000e+00, ptr %1154, align 8, !tbaa !31
  br label %1155

1155:                                             ; preds = %1148, %1126
  br label %1156

1156:                                             ; preds = %1155, %950
  %1157 = load double, ptr %10, align 8, !tbaa !31
  %1158 = load ptr, ptr %4, align 8, !tbaa !5
  %1159 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1158, i32 0, i32 14
  %1160 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1159, i32 0, i32 4
  %1161 = load ptr, ptr %1160, align 8, !tbaa !26
  %1162 = load i64, ptr %8, align 8, !tbaa !27
  %1163 = getelementptr inbounds double, ptr %1161, i64 %1162
  store double %1157, ptr %1163, align 8, !tbaa !31
  %1164 = load i64, ptr %8, align 8, !tbaa !27
  %1165 = add nsw i64 %1164, 1
  store i64 %1165, ptr %8, align 8, !tbaa !27
  br label %753

1166:                                             ; preds = %758
  %1167 = load ptr, ptr %4, align 8, !tbaa !5
  %1168 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1167, i32 0, i32 58
  %1169 = load double, ptr %1168, align 8, !tbaa !69
  %1170 = load ptr, ptr %4, align 8, !tbaa !5
  %1171 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1170, i32 0, i32 15
  store double %1169, ptr %1171, align 8, !tbaa !57
  %1172 = load ptr, ptr %4, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1172, i32 0, i32 17
  store i8 0, ptr %1173, align 8, !tbaa !65
  br label %1174

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

1216:                                             ; preds = %1241, %1174
  %1217 = load i64, ptr %8, align 8, !tbaa !27
  %1218 = load i64, ptr %6, align 8, !tbaa !27
  %1219 = sub nsw i64 %1218, 1
  %1220 = icmp sle i64 %1217, %1219
  br i1 %1220, label %1221, label %1244

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

1241:                                             ; preds = %1221
  %1242 = load i64, ptr %8, align 8, !tbaa !27
  %1243 = add nsw i64 %1242, 1
  store i64 %1243, ptr %8, align 8, !tbaa !27
  br label %1216, !llvm.loop !76

1244:                                             ; preds = %1216
  %1245 = load double, ptr %18, align 8, !tbaa !31
  %1246 = load ptr, ptr %5, align 8, !tbaa !5
  %1247 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1245, ptr noundef %1246)
  store double %1247, ptr %18, align 8, !tbaa !31
  %1248 = load ptr, ptr %4, align 8, !tbaa !5
  %1249 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1248, i32 0, i32 40
  %1250 = load double, ptr %1249, align 8, !tbaa !62
  %1251 = load double, ptr %18, align 8, !tbaa !31
  %1252 = load ptr, ptr %5, align 8, !tbaa !5
  %1253 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1250, double noundef %1251, ptr noundef %1252)
  %1254 = load ptr, ptr %4, align 8, !tbaa !5
  %1255 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1254, i32 0, i32 40
  store double %1253, ptr %1255, align 8, !tbaa !62
  %1256 = load double, ptr %18, align 8, !tbaa !31
  %1257 = load ptr, ptr %5, align 8, !tbaa !5
  %1258 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1256, ptr noundef %1257)
  br i1 %1258, label %1259, label %1265

1259:                                             ; preds = %1244
  %1260 = load ptr, ptr %4, align 8, !tbaa !5
  %1261 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1260, i32 0, i32 31
  %1262 = load double, ptr %1261, align 8, !tbaa !66
  %1263 = load ptr, ptr %5, align 8, !tbaa !5
  %1264 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1262, ptr noundef %1263)
  br i1 %1264, label %1273, label %1265

1265:                                             ; preds = %1259, %1244
  %1266 = load ptr, ptr %4, align 8, !tbaa !5
  %1267 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1266, i32 0, i32 10
  %1268 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %1267, ptr noundef %1268)
  %1269 = load ptr, ptr %4, align 8, !tbaa !5
  %1270 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1269, i32 0, i32 49
  store i64 -8, ptr %1270, align 8, !tbaa !35
  store i8 0, ptr %20, align 1, !tbaa !28
  %1271 = load i8, ptr %20, align 1, !tbaa !28, !range !29, !noundef !30
  %1272 = trunc i8 %1271 to i1
  store i1 %1272, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3264

1273:                                             ; preds = %1259
  %1274 = load ptr, ptr %4, align 8, !tbaa !5
  %1275 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1274, i32 0, i32 23
  %1276 = load i8, ptr %1275, align 2, !tbaa !34, !range !29, !noundef !30
  %1277 = trunc i8 %1276 to i1
  br i1 %1277, label %1278, label %1286

1278:                                             ; preds = %1273
  %1279 = load ptr, ptr %4, align 8, !tbaa !5
  %1280 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1279, i32 0, i32 10
  %1281 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %1280, ptr noundef %1281)
  %1282 = load ptr, ptr %4, align 8, !tbaa !5
  %1283 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1282, i32 0, i32 49
  store i64 8, ptr %1283, align 8, !tbaa !35
  store i8 0, ptr %20, align 1, !tbaa !28
  %1284 = load i8, ptr %20, align 1, !tbaa !28, !range !29, !noundef !30
  %1285 = trunc i8 %1284 to i1
  store i1 %1285, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3264

1286:                                             ; preds = %1273
  %1287 = load ptr, ptr %4, align 8, !tbaa !5
  %1288 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1287, i32 0, i32 84
  store i64 0, ptr %1288, align 8, !tbaa !77
  %1289 = load ptr, ptr %4, align 8, !tbaa !5
  %1290 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1289, i32 0, i32 21
  store i8 1, ptr %1290, align 4, !tbaa !33
  store i64 -1, ptr %16, align 8, !tbaa !27
  br label %1291

1291:                                             ; preds = %3131, %3090, %1574, %1286
  %1292 = load i64, ptr %16, align 8, !tbaa !27
  %1293 = load i64, ptr %6, align 8, !tbaa !27
  %1294 = sub nsw i64 %1293, 1
  %1295 = icmp sge i64 %1292, %1294
  br i1 %1295, label %1296, label %1297

1296:                                             ; preds = %1291
  br label %3132

1297:                                             ; preds = %1291
  %1298 = load i64, ptr %16, align 8, !tbaa !27
  %1299 = add nsw i64 %1298, 1
  store i64 %1299, ptr %16, align 8, !tbaa !27
  %1300 = load ptr, ptr %4, align 8, !tbaa !5
  %1301 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1300, i32 0, i32 21
  %1302 = load i8, ptr %1301, align 4, !tbaa !33, !range !29, !noundef !30
  %1303 = trunc i8 %1302 to i1
  br i1 %1303, label %1304, label %1318

1304:                                             ; preds = %1297
  %1305 = load ptr, ptr %4, align 8, !tbaa !5
  %1306 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1305, i32 0, i32 10
  %1307 = load ptr, ptr %4, align 8, !tbaa !5
  %1308 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1307, i32 0, i32 25
  %1309 = load ptr, ptr %5, align 8, !tbaa !5
  %1310 = call noundef double @_ZN11alglib_impl24sasscaledconstrainednormEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1306, ptr noundef %1308, ptr noundef %1309)
  %1311 = load ptr, ptr %4, align 8, !tbaa !5
  %1312 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1311, i32 0, i32 2
  %1313 = load double, ptr %1312, align 8, !tbaa !78
  %1314 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1310, double noundef %1313)
  br i1 %1314, label %1315, label %1318

1315:                                             ; preds = %1304
  %1316 = load ptr, ptr %4, align 8, !tbaa !5
  %1317 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1316, i32 0, i32 49
  store i64 4, ptr %1317, align 8, !tbaa !35
  br label %3132

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

1336:                                             ; preds = %1390, %1318
  %1337 = load i64, ptr %8, align 8, !tbaa !27
  %1338 = icmp sge i64 %1337, 0
  br i1 %1338, label %1339, label %1393

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

1390:                                             ; preds = %1339
  %1391 = load i64, ptr %8, align 8, !tbaa !27
  %1392 = add nsw i64 %1391, -1
  store i64 %1392, ptr %8, align 8, !tbaa !27
  br label %1336, !llvm.loop !79

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

1399:                                             ; preds = %1459, %1393
  %1400 = load i64, ptr %8, align 8, !tbaa !27
  %1401 = load ptr, ptr %4, align 8, !tbaa !5
  %1402 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1401, i32 0, i32 84
  %1403 = load i64, ptr %1402, align 8, !tbaa !77
  %1404 = sub nsw i64 %1403, 1
  %1405 = icmp sle i64 %1400, %1404
  br i1 %1405, label %1406, label %1462

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

1459:                                             ; preds = %1406
  %1460 = load i64, ptr %8, align 8, !tbaa !27
  %1461 = add nsw i64 %1460, 1
  store i64 %1461, ptr %8, align 8, !tbaa !27
  br label %1399, !llvm.loop !80

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

1481:                                             ; preds = %1506, %1462
  %1482 = load i64, ptr %8, align 8, !tbaa !27
  %1483 = load i64, ptr %6, align 8, !tbaa !27
  %1484 = sub nsw i64 %1483, 1
  %1485 = icmp sle i64 %1482, %1484
  br i1 %1485, label %1486, label %1509

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

1506:                                             ; preds = %1486
  %1507 = load i64, ptr %8, align 8, !tbaa !27
  %1508 = add nsw i64 %1507, 1
  store i64 %1508, ptr %8, align 8, !tbaa !27
  br label %1481, !llvm.loop !81

1509:                                             ; preds = %1481
  %1510 = load double, ptr %10, align 8, !tbaa !31
  %1511 = load ptr, ptr %5, align 8, !tbaa !5
  %1512 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1510, ptr noundef %1511)
  store double %1512, ptr %10, align 8, !tbaa !31
  %1513 = load double, ptr %10, align 8, !tbaa !31
  %1514 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1513, double noundef 0.000000e+00)
  br i1 %1514, label %1515, label %1524

1515:                                             ; preds = %1509
  %1516 = load ptr, ptr %4, align 8, !tbaa !5
  %1517 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1516, i32 0, i32 21
  %1518 = load i8, ptr %1517, align 4, !tbaa !33, !range !29, !noundef !30
  %1519 = trunc i8 %1518 to i1
  br i1 %1519, label %1520, label %1523

1520:                                             ; preds = %1515
  %1521 = load ptr, ptr %4, align 8, !tbaa !5
  %1522 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1521, i32 0, i32 49
  store i64 4, ptr %1522, align 8, !tbaa !35
  br label %1523

1523:                                             ; preds = %1520, %1515
  br label %3132

1524:                                             ; preds = %1509
  %1525 = load double, ptr %10, align 8, !tbaa !31
  %1526 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1525, double noundef 0.000000e+00)
  %1527 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1526, ptr noundef @.str.281, ptr noundef %1527)
  %1528 = load ptr, ptr %4, align 8, !tbaa !5
  %1529 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1528, i32 0, i32 39
  %1530 = load double, ptr %1529, align 8, !tbaa !61
  %1531 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1530, double noundef 0.000000e+00)
  br i1 %1531, label %1532, label %1543

1532:                                             ; preds = %1524
  %1533 = load double, ptr %10, align 8, !tbaa !31
  %1534 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1533, double noundef 0.000000e+00)
  br i1 %1534, label %1535, label %1543

1535:                                             ; preds = %1532
  %1536 = load ptr, ptr %4, align 8, !tbaa !5
  %1537 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1536, i32 0, i32 39
  %1538 = load double, ptr %1537, align 8, !tbaa !61
  %1539 = load double, ptr %10, align 8, !tbaa !31
  %1540 = fdiv double %1538, %1539
  %1541 = load ptr, ptr %4, align 8, !tbaa !5
  %1542 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1541, i32 0, i32 73
  store double %1540, ptr %1542, align 8, !tbaa !82
  br label %1548

1543:                                             ; preds = %1532, %1524
  %1544 = load double, ptr %10, align 8, !tbaa !31
  %1545 = fdiv double 1.000000e+00, %1544
  %1546 = load ptr, ptr %4, align 8, !tbaa !5
  %1547 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1546, i32 0, i32 73
  store double %1545, ptr %1547, align 8, !tbaa !82
  br label %1548

1548:                                             ; preds = %1543, %1535
  %1549 = load ptr, ptr %4, align 8, !tbaa !5
  %1550 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1549, i32 0, i32 10
  %1551 = load ptr, ptr %4, align 8, !tbaa !5
  %1552 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1551, i32 0, i32 34
  %1553 = load ptr, ptr %4, align 8, !tbaa !5
  %1554 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1553, i32 0, i32 74
  %1555 = load ptr, ptr %4, align 8, !tbaa !5
  %1556 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1555, i32 0, i32 67
  %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 %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasexploredirectionEPNS_10sactivesetEPNS_9ae_vectorEPdPlS4_PNS_8ae_stateE(ptr noundef %1550, ptr noundef %1552, ptr noundef %1554, ptr noundef %1556, ptr noundef %1558, ptr noundef %1559)
  %1560 = load ptr, ptr %4, align 8, !tbaa !5
  %1561 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1560, i32 0, i32 74
  %1562 = load double, ptr %1561, align 8, !tbaa !83
  %1563 = load ptr, ptr %4, align 8, !tbaa !5
  %1564 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1563, i32 0, i32 75
  store double %1562, ptr %1564, 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 67
  %1567 = load i64, ptr %1566, align 8, !tbaa !85
  %1568 = icmp sge i64 %1567, 0
  br i1 %1568, label %1569, label %1588

1569:                                             ; preds = %1548
  %1570 = load ptr, ptr %4, align 8, !tbaa !5
  %1571 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1570, i32 0, i32 75
  %1572 = load double, ptr %1571, align 8, !tbaa !84
  %1573 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1572, double noundef 0.000000e+00)
  br i1 %1573, label %1574, label %1588

1574:                                             ; preds = %1569
  %1575 = load ptr, ptr %4, align 8, !tbaa !5
  %1576 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1575, i32 0, i32 10
  %1577 = load ptr, ptr %4, align 8, !tbaa !5
  %1578 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1577, i32 0, i32 67
  %1579 = load i64, ptr %1578, align 8, !tbaa !85
  %1580 = load ptr, ptr %4, align 8, !tbaa !5
  %1581 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1580, i32 0, i32 68
  %1582 = load double, ptr %1581, align 8, !tbaa !86
  %1583 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl22sasimmediateactivationEPNS_10sactivesetEldPNS_8ae_stateE(ptr noundef %1576, i64 noundef %1579, double noundef %1582, ptr noundef %1583)
  %1584 = load ptr, ptr %4, align 8, !tbaa !5
  %1585 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1584, i32 0, i32 84
  store i64 0, ptr %1585, align 8, !tbaa !77
  %1586 = load i64, ptr %16, align 8, !tbaa !27
  %1587 = sub nsw i64 %1586, 1
  store i64 %1587, ptr %16, align 8, !tbaa !27
  br label %1291

1588:                                             ; preds = %1569, %1548
  %1589 = load ptr, ptr %4, align 8, !tbaa !5
  %1590 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1589, i32 0, i32 8
  %1591 = load double, ptr %1590, align 8, !tbaa !48
  %1592 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1591, double noundef 0.000000e+00)
  br i1 %1592, label %1593, label %1627

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

1613:                                             ; preds = %1593
  %1614 = load ptr, ptr %4, align 8, !tbaa !5
  %1615 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1614, i32 0, i32 74
  %1616 = load double, ptr %1615, align 8, !tbaa !83
  %1617 = load ptr, ptr %4, align 8, !tbaa !5
  %1618 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1617, i32 0, i32 8
  %1619 = load double, ptr %1618, align 8, !tbaa !48
  %1620 = load double, ptr %10, align 8, !tbaa !31
  %1621 = fdiv double %1619, %1620
  %1622 = load ptr, ptr %5, align 8, !tbaa !5
  %1623 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1616, double noundef %1621, ptr noundef %1622)
  %1624 = load ptr, ptr %4, align 8, !tbaa !5
  %1625 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1624, i32 0, i32 74
  store double %1623, ptr %1625, align 8, !tbaa !83
  br label %1626

1626:                                             ; preds = %1613, %1593
  br label %1627

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

1632:                                             ; preds = %1627
  br label %1665

1633:                                             ; preds = %1627
  %1634 = load ptr, ptr %4, align 8, !tbaa !5
  %1635 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %1634, ptr noundef %1635)
  %1636 = load ptr, ptr %4, align 8, !tbaa !5
  %1637 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1636, i32 0, i32 20
  store i8 1, ptr %1637, align 1, !tbaa !88
  %1638 = load ptr, ptr %4, align 8, !tbaa !5
  %1639 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1638, i32 0, i32 67
  %1640 = load i64, ptr %1639, align 8, !tbaa !85
  %1641 = icmp sge i64 %1640, 0
  %1642 = load ptr, ptr %4, align 8, !tbaa !5
  %1643 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1642, i32 0, i32 22
  %1644 = zext i1 %1641 to i8
  store i8 %1644, ptr %1643, align 1, !tbaa !89
  %1645 = load ptr, ptr %4, align 8, !tbaa !5
  %1646 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1645, i32 0, i32 14
  %1647 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1646, i32 0, i32 4
  %1648 = load ptr, ptr %1647, align 8, !tbaa !26
  %1649 = getelementptr inbounds double, ptr %1648, i64 0
  %1650 = load ptr, ptr %4, align 8, !tbaa !5
  %1651 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1650, i32 0, i32 10
  %1652 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %1651, i32 0, i32 2
  %1653 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1652, i32 0, i32 4
  %1654 = load ptr, ptr %1653, align 8, !tbaa !26
  %1655 = getelementptr inbounds double, ptr %1654, i64 0
  %1656 = load i64, ptr %6, align 8, !tbaa !27
  %1657 = sub nsw i64 %1656, 1
  %1658 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1657)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1649, i64 noundef 1, ptr noundef %1655, i64 noundef 1, i64 noundef %1658)
  %1659 = load ptr, ptr %4, align 8, !tbaa !5
  %1660 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1659, i32 0, i32 24
  %1661 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1660, i32 0, i32 0
  store i32 12, ptr %1661, align 8, !tbaa !9
  br label %3161

1662:                                             ; preds = %219
  %1663 = load ptr, ptr %4, align 8, !tbaa !5
  %1664 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1663, i32 0, i32 20
  store i8 0, ptr %1664, align 1, !tbaa !88
  br label %1665

1665:                                             ; preds = %1662, %1632
  %1666 = load ptr, ptr %4, align 8, !tbaa !5
  %1667 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1666, i32 0, i32 27
  %1668 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1667, i32 0, i32 4
  %1669 = load ptr, ptr %1668, align 8, !tbaa !26
  %1670 = getelementptr inbounds double, ptr %1669, i64 0
  %1671 = load ptr, ptr %4, align 8, !tbaa !5
  %1672 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1671, i32 0, i32 10
  %1673 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %1672, i32 0, i32 2
  %1674 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1673, i32 0, i32 4
  %1675 = load ptr, ptr %1674, align 8, !tbaa !26
  %1676 = getelementptr inbounds double, ptr %1675, i64 0
  %1677 = load i64, ptr %6, align 8, !tbaa !27
  %1678 = sub nsw i64 %1677, 1
  %1679 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1678)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1670, i64 noundef 1, ptr noundef %1676, i64 noundef 1, i64 noundef %1679)
  %1680 = load ptr, ptr %4, align 8, !tbaa !5
  %1681 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1680, i32 0, i32 29
  %1682 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1681, i32 0, i32 4
  %1683 = load ptr, ptr %1682, align 8, !tbaa !26
  %1684 = getelementptr inbounds double, ptr %1683, i64 0
  %1685 = load ptr, ptr %4, align 8, !tbaa !5
  %1686 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1685, i32 0, i32 26
  %1687 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1686, i32 0, i32 4
  %1688 = load ptr, ptr %1687, align 8, !tbaa !26
  %1689 = getelementptr inbounds double, ptr %1688, i64 0
  %1690 = load i64, ptr %6, align 8, !tbaa !27
  %1691 = sub nsw i64 %1690, 1
  %1692 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1691)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1684, i64 noundef 1, ptr noundef %1689, i64 noundef 1, i64 noundef %1692)
  %1693 = load ptr, ptr %4, align 8, !tbaa !5
  %1694 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1693, i32 0, i32 28
  %1695 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1694, i32 0, i32 4
  %1696 = load ptr, ptr %1695, align 8, !tbaa !26
  %1697 = getelementptr inbounds double, ptr %1696, i64 0
  %1698 = load ptr, ptr %4, align 8, !tbaa !5
  %1699 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1698, i32 0, i32 25
  %1700 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1699, i32 0, i32 4
  %1701 = load ptr, ptr %1700, align 8, !tbaa !26
  %1702 = getelementptr inbounds double, ptr %1701, i64 0
  %1703 = load i64, ptr %6, align 8, !tbaa !27
  %1704 = sub nsw i64 %1703, 1
  %1705 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1704)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1697, i64 noundef 1, ptr noundef %1702, i64 noundef 1, i64 noundef %1705)
  %1706 = load ptr, ptr %4, align 8, !tbaa !5
  %1707 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1706, i32 0, i32 31
  %1708 = load double, ptr %1707, align 8, !tbaa !66
  %1709 = load ptr, ptr %4, align 8, !tbaa !5
  %1710 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1709, i32 0, i32 32
  store double %1708, ptr %1710, align 8, !tbaa !90
  %1711 = load ptr, ptr %4, align 8, !tbaa !5
  %1712 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1711, i32 0, i32 72
  store i64 0, 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 87
  %1715 = load ptr, ptr %4, align 8, !tbaa !5
  %1716 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1715, i32 0, i32 11
  %1717 = load ptr, ptr %4, align 8, !tbaa !5
  %1718 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1717, i32 0, i32 89
  %1719 = load ptr, ptr %4, align 8, !tbaa !5
  %1720 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1719, i32 0, i32 27
  %1721 = load ptr, ptr %4, align 8, !tbaa !5
  %1722 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1721, i32 0, i32 32
  %1723 = load double, ptr %1722, align 8, !tbaa !90
  %1724 = load ptr, ptr %4, align 8, !tbaa !5
  %1725 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1724, i32 0, i32 28
  %1726 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl34smoothnessmonitorstartlinesearch1uEPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_dS3_PNS_8ae_stateE(ptr noundef %1714, ptr noundef %1716, ptr noundef %1718, ptr noundef %1720, double noundef %1723, ptr noundef %1725, ptr noundef %1726)
  %1727 = load i64, ptr %6, align 8, !tbaa !27
  %1728 = load ptr, ptr %4, align 8, !tbaa !5
  %1729 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1728, i32 0, i32 27
  %1730 = load ptr, ptr %4, align 8, !tbaa !5
  %1731 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1730, i32 0, i32 32
  %1732 = load ptr, ptr %4, align 8, !tbaa !5
  %1733 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1732, i32 0, i32 28
  %1734 = load ptr, ptr %4, align 8, !tbaa !5
  %1735 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1734, i32 0, i32 34
  %1736 = load ptr, ptr %4, align 8, !tbaa !5
  %1737 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1736, i32 0, i32 73
  %1738 = load ptr, ptr %4, align 8, !tbaa !5
  %1739 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1738, i32 0, i32 74
  %1740 = load double, ptr %1739, align 8, !tbaa !83
  %1741 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !31
  %1742 = load ptr, ptr %4, align 8, !tbaa !5
  %1743 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1742, i32 0, i32 71
  %1744 = load ptr, ptr %4, align 8, !tbaa !5
  %1745 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1744, i32 0, i32 76
  %1746 = load ptr, ptr %4, align 8, !tbaa !5
  %1747 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1746, i32 0, i32 77
  %1748 = load ptr, ptr %4, align 8, !tbaa !5
  %1749 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1748, i32 0, i32 72
  %1750 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_S1_S2_ddPlS3_S1_PNS_11linminstateES3_PNS_8ae_stateE(i64 noundef %1727, ptr noundef %1729, ptr noundef %1731, ptr noundef %1733, ptr noundef %1735, ptr noundef %1737, double noundef %1740, double noundef %1741, ptr noundef %14, ptr noundef %1743, ptr noundef %1745, ptr noundef %1747, ptr noundef %1749, ptr noundef %1750)
  br label %1751

1751:                                             ; preds = %2253, %1665
  %1752 = load ptr, ptr %4, align 8, !tbaa !5
  %1753 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1752, i32 0, i32 72
  %1754 = load i64, ptr %1753, align 8, !tbaa !91
  %1755 = icmp eq i64 %1754, 0
  br i1 %1755, label %1756, label %1757

1756:                                             ; preds = %1751
  br label %2349

1757:                                             ; preds = %1751
  %1758 = load ptr, ptr %4, align 8, !tbaa !5
  %1759 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1758, i32 0, i32 10
  %1760 = load ptr, ptr %4, align 8, !tbaa !5
  %1761 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1760, i32 0, i32 27
  %1762 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sascorrectionEPNS_10sactivesetEPNS_9ae_vectorEPdPNS_8ae_stateE(ptr noundef %1759, ptr noundef %1761, ptr noundef %17, ptr noundef %1762)
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %1763

1763:                                             ; preds = %1782, %1757
  %1764 = load i64, ptr %8, align 8, !tbaa !27
  %1765 = load i64, ptr %6, align 8, !tbaa !27
  %1766 = sub nsw i64 %1765, 1
  %1767 = icmp sle i64 %1764, %1766
  br i1 %1767, label %1768, label %1785

1768:                                             ; preds = %1763
  %1769 = load ptr, ptr %4, align 8, !tbaa !5
  %1770 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1769, i32 0, i32 27
  %1771 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1770, i32 0, i32 4
  %1772 = load ptr, ptr %1771, align 8, !tbaa !26
  %1773 = load i64, ptr %8, align 8, !tbaa !27
  %1774 = getelementptr inbounds double, ptr %1772, i64 %1773
  %1775 = load double, ptr %1774, align 8, !tbaa !31
  %1776 = load ptr, ptr %4, align 8, !tbaa !5
  %1777 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1776, i32 0, i32 14
  %1778 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1777, i32 0, i32 4
  %1779 = load ptr, ptr %1778, align 8, !tbaa !26
  %1780 = load i64, ptr %8, align 8, !tbaa !27
  %1781 = getelementptr inbounds double, ptr %1779, i64 %1780
  store double %1775, ptr %1781, align 8, !tbaa !31
  br label %1782

1782:                                             ; preds = %1768
  %1783 = load i64, ptr %8, align 8, !tbaa !27
  %1784 = add nsw i64 %1783, 1
  store i64 %1784, ptr %8, align 8, !tbaa !27
  br label %1763, !llvm.loop !92

1785:                                             ; preds = %1763
  %1786 = load ptr, ptr %4, align 8, !tbaa !5
  %1787 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %1786, ptr noundef %1787)
  %1788 = load ptr, ptr %4, align 8, !tbaa !5
  %1789 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1788, i32 0, i32 9
  %1790 = load double, ptr %1789, align 8, !tbaa !53
  %1791 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1790, double noundef 0.000000e+00)
  br i1 %1791, label %1792, label %1793

1792:                                             ; preds = %1785
  br label %1808

1793:                                             ; preds = %1785
  %1794 = load ptr, ptr %4, align 8, !tbaa !5
  %1795 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1794, i32 0, i32 18
  store i8 1, ptr %1795, align 1, !tbaa !56
  %1796 = load ptr, ptr %4, align 8, !tbaa !5
  %1797 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1796, i32 0, i32 24
  %1798 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1797, i32 0, i32 0
  store i32 13, ptr %1798, align 8, !tbaa !9
  br label %3161

1799:                                             ; preds = %226
  %1800 = load ptr, ptr %4, align 8, !tbaa !5
  %1801 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1800, i32 0, i32 18
  store i8 0, ptr %1801, align 1, !tbaa !56
  %1802 = load ptr, ptr %4, align 8, !tbaa !5
  %1803 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1802, i32 0, i32 47
  %1804 = load i64, ptr %1803, align 8, !tbaa !38
  %1805 = add nsw i64 %1804, 1
  %1806 = load ptr, ptr %4, align 8, !tbaa !5
  %1807 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1806, i32 0, i32 47
  store i64 %1805, ptr %1807, align 8, !tbaa !38
  br label %2253

1808:                                             ; preds = %1792
  %1809 = load ptr, ptr %4, align 8, !tbaa !5
  %1810 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1809, i32 0, i32 17
  store i8 1, ptr %1810, align 8, !tbaa !65
  %1811 = load ptr, ptr %4, align 8, !tbaa !5
  %1812 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1811, i32 0, i32 24
  %1813 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1812, i32 0, i32 0
  store i32 14, ptr %1813, align 8, !tbaa !9
  br label %3161

1814:                                             ; preds = %233
  %1815 = load ptr, ptr %4, align 8, !tbaa !5
  %1816 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1815, i32 0, i32 15
  %1817 = load double, ptr %1816, align 8, !tbaa !57
  %1818 = load ptr, ptr %4, align 8, !tbaa !5
  %1819 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1818, i32 0, i32 58
  store double %1817, ptr %1819, align 8, !tbaa !69
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %1820

1820:                                             ; preds = %2235, %1814
  %1821 = load i64, ptr %8, align 8, !tbaa !27
  %1822 = load i64, ptr %6, align 8, !tbaa !27
  %1823 = sub nsw i64 %1822, 1
  %1824 = icmp sgt i64 %1821, %1823
  br i1 %1824, label %1825, label %1826

1825:                                             ; preds = %1820
  br label %2245

1826:                                             ; preds = %1820
  %1827 = load ptr, ptr %4, align 8, !tbaa !5
  %1828 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1827, i32 0, i32 14
  %1829 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1828, i32 0, i32 4
  %1830 = load ptr, ptr %1829, align 8, !tbaa !26
  %1831 = load i64, ptr %8, align 8, !tbaa !27
  %1832 = getelementptr inbounds double, ptr %1830, i64 %1831
  %1833 = load double, ptr %1832, align 8, !tbaa !31
  store double %1833, ptr %10, align 8, !tbaa !31
  store i8 0, ptr %13, align 1, !tbaa !28
  %1834 = load ptr, ptr %4, align 8, !tbaa !5
  %1835 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1834, i32 0, i32 41
  %1836 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1835, i32 0, i32 4
  %1837 = load ptr, ptr %1836, align 8, !tbaa !26
  %1838 = load i64, ptr %8, align 8, !tbaa !27
  %1839 = getelementptr inbounds i8, ptr %1837, i64 %1838
  %1840 = load i8, ptr %1839, align 1, !tbaa !28, !range !29, !noundef !30
  %1841 = trunc i8 %1840 to i1
  br i1 %1841, label %1842, label %1870

1842:                                             ; preds = %1826
  %1843 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %1844 = trunc i8 %1843 to i1
  br i1 %1844, label %1867, label %1845

1845:                                             ; preds = %1842
  %1846 = load double, ptr %10, align 8, !tbaa !31
  %1847 = load ptr, ptr %4, align 8, !tbaa !5
  %1848 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1847, i32 0, i32 9
  %1849 = load double, ptr %1848, align 8, !tbaa !53
  %1850 = load ptr, ptr %4, align 8, !tbaa !5
  %1851 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1850, i32 0, i32 11
  %1852 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1851, i32 0, i32 4
  %1853 = load ptr, ptr %1852, align 8, !tbaa !26
  %1854 = load i64, ptr %8, align 8, !tbaa !27
  %1855 = getelementptr inbounds double, ptr %1853, i64 %1854
  %1856 = load double, ptr %1855, align 8, !tbaa !31
  %1857 = fneg double %1849
  %1858 = call double @llvm.fmuladd.f64(double %1857, double %1856, double %1846)
  %1859 = load ptr, ptr %4, align 8, !tbaa !5
  %1860 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1859, i32 0, i32 43
  %1861 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1860, i32 0, i32 4
  %1862 = load ptr, ptr %1861, align 8, !tbaa !26
  %1863 = load i64, ptr %8, align 8, !tbaa !27
  %1864 = getelementptr inbounds double, ptr %1862, i64 %1863
  %1865 = load double, ptr %1864, align 8, !tbaa !31
  %1866 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1858, double noundef %1865)
  br label %1867

1867:                                             ; preds = %1845, %1842
  %1868 = phi i1 [ true, %1842 ], [ %1866, %1845 ]
  %1869 = zext i1 %1868 to i8
  store i8 %1869, ptr %13, align 1, !tbaa !28
  br label %1870

1870:                                             ; preds = %1867, %1826
  %1871 = load ptr, ptr %4, align 8, !tbaa !5
  %1872 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1871, i32 0, i32 42
  %1873 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1872, i32 0, i32 4
  %1874 = load ptr, ptr %1873, align 8, !tbaa !26
  %1875 = load i64, ptr %8, align 8, !tbaa !27
  %1876 = getelementptr inbounds i8, ptr %1874, i64 %1875
  %1877 = load i8, ptr %1876, align 1, !tbaa !28, !range !29, !noundef !30
  %1878 = trunc i8 %1877 to i1
  br i1 %1878, label %1879, label %1906

1879:                                             ; preds = %1870
  %1880 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %1881 = trunc i8 %1880 to i1
  br i1 %1881, label %1903, label %1882

1882:                                             ; preds = %1879
  %1883 = load double, ptr %10, align 8, !tbaa !31
  %1884 = load ptr, ptr %4, align 8, !tbaa !5
  %1885 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1884, i32 0, i32 9
  %1886 = load double, ptr %1885, align 8, !tbaa !53
  %1887 = load ptr, ptr %4, align 8, !tbaa !5
  %1888 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1887, i32 0, i32 11
  %1889 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1888, i32 0, i32 4
  %1890 = load ptr, ptr %1889, align 8, !tbaa !26
  %1891 = load i64, ptr %8, align 8, !tbaa !27
  %1892 = getelementptr inbounds double, ptr %1890, i64 %1891
  %1893 = load double, ptr %1892, align 8, !tbaa !31
  %1894 = call double @llvm.fmuladd.f64(double %1886, double %1893, double %1883)
  %1895 = load ptr, ptr %4, align 8, !tbaa !5
  %1896 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1895, i32 0, i32 44
  %1897 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1896, i32 0, i32 4
  %1898 = load ptr, ptr %1897, align 8, !tbaa !26
  %1899 = load i64, ptr %8, align 8, !tbaa !27
  %1900 = getelementptr inbounds double, ptr %1898, i64 %1899
  %1901 = load double, ptr %1900, align 8, !tbaa !31
  %1902 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1894, double noundef %1901)
  br label %1903

1903:                                             ; preds = %1882, %1879
  %1904 = phi i1 [ true, %1879 ], [ %1902, %1882 ]
  %1905 = zext i1 %1904 to i8
  store i8 %1905, ptr %13, align 1, !tbaa !28
  br label %1906

1906:                                             ; preds = %1903, %1870
  %1907 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1909, label %1910

1909:                                             ; preds = %1906
  br label %2064

1910:                                             ; preds = %1906
  %1911 = load double, ptr %10, align 8, !tbaa !31
  %1912 = load ptr, ptr %4, align 8, !tbaa !5
  %1913 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1912, i32 0, i32 9
  %1914 = load double, ptr %1913, align 8, !tbaa !53
  %1915 = load ptr, ptr %4, align 8, !tbaa !5
  %1916 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1915, i32 0, i32 11
  %1917 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1916, i32 0, i32 4
  %1918 = load ptr, ptr %1917, align 8, !tbaa !26
  %1919 = load i64, ptr %8, align 8, !tbaa !27
  %1920 = getelementptr inbounds double, ptr %1918, i64 %1919
  %1921 = load double, ptr %1920, align 8, !tbaa !31
  %1922 = fneg double %1914
  %1923 = call double @llvm.fmuladd.f64(double %1922, double %1921, double %1911)
  %1924 = load ptr, ptr %4, align 8, !tbaa !5
  %1925 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1924, i32 0, i32 14
  %1926 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1925, i32 0, i32 4
  %1927 = load ptr, ptr %1926, align 8, !tbaa !26
  %1928 = load i64, ptr %8, align 8, !tbaa !27
  %1929 = getelementptr inbounds double, ptr %1927, i64 %1928
  store double %1923, ptr %1929, align 8, !tbaa !31
  %1930 = load ptr, ptr %4, align 8, !tbaa !5
  %1931 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1930, i32 0, i32 24
  %1932 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1931, i32 0, i32 0
  store i32 15, ptr %1932, align 8, !tbaa !9
  br label %3161

1933:                                             ; preds = %240
  %1934 = load ptr, ptr %4, align 8, !tbaa !5
  %1935 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1934, i32 0, i32 15
  %1936 = load double, ptr %1935, align 8, !tbaa !57
  %1937 = load ptr, ptr %4, align 8, !tbaa !5
  %1938 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1937, i32 0, i32 59
  store double %1936, ptr %1938, align 8, !tbaa !70
  %1939 = load double, ptr %10, align 8, !tbaa !31
  %1940 = load ptr, ptr %4, align 8, !tbaa !5
  %1941 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1940, i32 0, i32 9
  %1942 = load double, ptr %1941, align 8, !tbaa !53
  %1943 = fmul double 5.000000e-01, %1942
  %1944 = load ptr, ptr %4, align 8, !tbaa !5
  %1945 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1944, i32 0, i32 11
  %1946 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1945, i32 0, i32 4
  %1947 = load ptr, ptr %1946, align 8, !tbaa !26
  %1948 = load i64, ptr %8, align 8, !tbaa !27
  %1949 = getelementptr inbounds double, ptr %1947, i64 %1948
  %1950 = load double, ptr %1949, align 8, !tbaa !31
  %1951 = fneg double %1943
  %1952 = call double @llvm.fmuladd.f64(double %1951, double %1950, double %1939)
  %1953 = load ptr, ptr %4, align 8, !tbaa !5
  %1954 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1953, i32 0, i32 14
  %1955 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1954, i32 0, i32 4
  %1956 = load ptr, ptr %1955, align 8, !tbaa !26
  %1957 = load i64, ptr %8, align 8, !tbaa !27
  %1958 = getelementptr inbounds double, ptr %1956, i64 %1957
  store double %1952, ptr %1958, align 8, !tbaa !31
  %1959 = load ptr, ptr %4, align 8, !tbaa !5
  %1960 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1959, i32 0, i32 24
  %1961 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1960, i32 0, i32 0
  store i32 16, ptr %1961, align 8, !tbaa !9
  br label %3161

1962:                                             ; preds = %247
  %1963 = load ptr, ptr %4, align 8, !tbaa !5
  %1964 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1963, i32 0, i32 15
  %1965 = load double, ptr %1964, align 8, !tbaa !57
  %1966 = load ptr, ptr %4, align 8, !tbaa !5
  %1967 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1966, i32 0, i32 60
  store double %1965, ptr %1967, align 8, !tbaa !71
  %1968 = load double, ptr %10, align 8, !tbaa !31
  %1969 = load ptr, ptr %4, align 8, !tbaa !5
  %1970 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1969, i32 0, i32 9
  %1971 = load double, ptr %1970, align 8, !tbaa !53
  %1972 = fmul double 5.000000e-01, %1971
  %1973 = load ptr, ptr %4, align 8, !tbaa !5
  %1974 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1973, i32 0, i32 11
  %1975 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1974, i32 0, i32 4
  %1976 = load ptr, ptr %1975, align 8, !tbaa !26
  %1977 = load i64, ptr %8, align 8, !tbaa !27
  %1978 = getelementptr inbounds double, ptr %1976, i64 %1977
  %1979 = load double, ptr %1978, align 8, !tbaa !31
  %1980 = call double @llvm.fmuladd.f64(double %1972, double %1979, double %1968)
  %1981 = load ptr, ptr %4, align 8, !tbaa !5
  %1982 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1981, i32 0, i32 14
  %1983 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1982, i32 0, i32 4
  %1984 = load ptr, ptr %1983, align 8, !tbaa !26
  %1985 = load i64, ptr %8, align 8, !tbaa !27
  %1986 = getelementptr inbounds double, ptr %1984, i64 %1985
  store double %1980, ptr %1986, align 8, !tbaa !31
  %1987 = load ptr, ptr %4, align 8, !tbaa !5
  %1988 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1987, i32 0, i32 24
  %1989 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1988, i32 0, i32 0
  store i32 17, ptr %1989, align 8, !tbaa !9
  br label %3161

1990:                                             ; preds = %254
  %1991 = load ptr, ptr %4, align 8, !tbaa !5
  %1992 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1991, i32 0, i32 15
  %1993 = load double, ptr %1992, align 8, !tbaa !57
  %1994 = load ptr, ptr %4, align 8, !tbaa !5
  %1995 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1994, i32 0, i32 61
  store double %1993, ptr %1995, align 8, !tbaa !72
  %1996 = load double, ptr %10, align 8, !tbaa !31
  %1997 = load ptr, ptr %4, align 8, !tbaa !5
  %1998 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %1997, i32 0, i32 9
  %1999 = load double, ptr %1998, align 8, !tbaa !53
  %2000 = load ptr, ptr %4, align 8, !tbaa !5
  %2001 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2000, i32 0, i32 11
  %2002 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2001, i32 0, i32 4
  %2003 = load ptr, ptr %2002, align 8, !tbaa !26
  %2004 = load i64, ptr %8, align 8, !tbaa !27
  %2005 = getelementptr inbounds double, ptr %2003, i64 %2004
  %2006 = load double, ptr %2005, align 8, !tbaa !31
  %2007 = call double @llvm.fmuladd.f64(double %1999, double %2006, double %1996)
  %2008 = load ptr, ptr %4, align 8, !tbaa !5
  %2009 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2008, i32 0, i32 14
  %2010 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2009, i32 0, i32 4
  %2011 = load ptr, ptr %2010, align 8, !tbaa !26
  %2012 = load i64, ptr %8, align 8, !tbaa !27
  %2013 = getelementptr inbounds double, ptr %2011, i64 %2012
  store double %2007, ptr %2013, align 8, !tbaa !31
  %2014 = load ptr, ptr %4, align 8, !tbaa !5
  %2015 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2014, i32 0, i32 24
  %2016 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2015, i32 0, i32 0
  store i32 18, ptr %2016, align 8, !tbaa !9
  br label %3161

2017:                                             ; preds = %261
  %2018 = load ptr, ptr %4, align 8, !tbaa !5
  %2019 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2018, i32 0, i32 15
  %2020 = load double, ptr %2019, align 8, !tbaa !57
  %2021 = load ptr, ptr %4, align 8, !tbaa !5
  %2022 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2021, i32 0, i32 62
  store double %2020, ptr %2022, align 8, !tbaa !73
  %2023 = load ptr, ptr %4, align 8, !tbaa !5
  %2024 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2023, i32 0, i32 61
  %2025 = load double, ptr %2024, align 8, !tbaa !72
  %2026 = load ptr, ptr %4, align 8, !tbaa !5
  %2027 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2026, i32 0, i32 60
  %2028 = load double, ptr %2027, align 8, !tbaa !71
  %2029 = fsub double %2025, %2028
  %2030 = load ptr, ptr %4, align 8, !tbaa !5
  %2031 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2030, i32 0, i32 62
  %2032 = load double, ptr %2031, align 8, !tbaa !73
  %2033 = load ptr, ptr %4, align 8, !tbaa !5
  %2034 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2033, i32 0, i32 59
  %2035 = load double, ptr %2034, align 8, !tbaa !70
  %2036 = fsub double %2032, %2035
  %2037 = fneg double %2036
  %2038 = call double @llvm.fmuladd.f64(double 8.000000e+00, double %2029, double %2037)
  %2039 = load ptr, ptr %4, align 8, !tbaa !5
  %2040 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2039, i32 0, i32 9
  %2041 = load double, ptr %2040, align 8, !tbaa !53
  %2042 = fmul double 6.000000e+00, %2041
  %2043 = load ptr, ptr %4, align 8, !tbaa !5
  %2044 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2043, i32 0, i32 11
  %2045 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2044, i32 0, i32 4
  %2046 = load ptr, ptr %2045, align 8, !tbaa !26
  %2047 = load i64, ptr %8, align 8, !tbaa !27
  %2048 = getelementptr inbounds double, ptr %2046, i64 %2047
  %2049 = load double, ptr %2048, align 8, !tbaa !31
  %2050 = fmul double %2042, %2049
  %2051 = fdiv double %2038, %2050
  %2052 = load ptr, ptr %4, align 8, !tbaa !5
  %2053 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2052, i32 0, i32 16
  %2054 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2053, i32 0, i32 4
  %2055 = load ptr, ptr %2054, align 8, !tbaa !26
  %2056 = load i64, ptr %8, align 8, !tbaa !27
  %2057 = getelementptr inbounds double, ptr %2055, i64 %2056
  store double %2051, ptr %2057, align 8, !tbaa !31
  %2058 = load ptr, ptr %4, align 8, !tbaa !5
  %2059 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2058, i32 0, i32 47
  %2060 = load i64, ptr %2059, align 8, !tbaa !38
  %2061 = add nsw i64 %2060, 4
  %2062 = load ptr, ptr %4, align 8, !tbaa !5
  %2063 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2062, i32 0, i32 47
  store i64 %2061, ptr %2063, align 8, !tbaa !38
  br label %2235

2064:                                             ; preds = %1909
  %2065 = load double, ptr %10, align 8, !tbaa !31
  %2066 = load ptr, ptr %4, align 8, !tbaa !5
  %2067 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2066, i32 0, i32 9
  %2068 = load double, ptr %2067, align 8, !tbaa !53
  %2069 = load ptr, ptr %4, align 8, !tbaa !5
  %2070 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2069, i32 0, i32 11
  %2071 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2070, i32 0, i32 4
  %2072 = load ptr, ptr %2071, align 8, !tbaa !26
  %2073 = load i64, ptr %8, align 8, !tbaa !27
  %2074 = getelementptr inbounds double, ptr %2072, i64 %2073
  %2075 = load double, ptr %2074, align 8, !tbaa !31
  %2076 = fneg double %2068
  %2077 = call double @llvm.fmuladd.f64(double %2076, double %2075, double %2065)
  %2078 = load ptr, ptr %4, align 8, !tbaa !5
  %2079 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2078, i32 0, i32 63
  store double %2077, ptr %2079, align 8, !tbaa !74
  %2080 = load double, ptr %10, align 8, !tbaa !31
  %2081 = load ptr, ptr %4, align 8, !tbaa !5
  %2082 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2081, i32 0, i32 9
  %2083 = load double, ptr %2082, align 8, !tbaa !53
  %2084 = load ptr, ptr %4, align 8, !tbaa !5
  %2085 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2084, i32 0, i32 11
  %2086 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2085, i32 0, i32 4
  %2087 = load ptr, ptr %2086, align 8, !tbaa !26
  %2088 = load i64, ptr %8, align 8, !tbaa !27
  %2089 = getelementptr inbounds double, ptr %2087, i64 %2088
  %2090 = load double, ptr %2089, align 8, !tbaa !31
  %2091 = call double @llvm.fmuladd.f64(double %2083, double %2090, double %2080)
  %2092 = load ptr, ptr %4, align 8, !tbaa !5
  %2093 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2092, i32 0, i32 64
  store double %2091, ptr %2093, align 8, !tbaa !75
  %2094 = load ptr, ptr %4, align 8, !tbaa !5
  %2095 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2094, i32 0, i32 41
  %2096 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2095, i32 0, i32 4
  %2097 = load ptr, ptr %2096, align 8, !tbaa !26
  %2098 = load i64, ptr %8, align 8, !tbaa !27
  %2099 = getelementptr inbounds i8, ptr %2097, i64 %2098
  %2100 = load i8, ptr %2099, align 1, !tbaa !28, !range !29, !noundef !30
  %2101 = trunc i8 %2100 to i1
  br i1 %2101, label %2102, label %2124

2102:                                             ; preds = %2064
  %2103 = load ptr, ptr %4, align 8, !tbaa !5
  %2104 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2103, i32 0, i32 63
  %2105 = load double, ptr %2104, align 8, !tbaa !74
  %2106 = load ptr, ptr %4, align 8, !tbaa !5
  %2107 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2106, i32 0, i32 43
  %2108 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2107, i32 0, i32 4
  %2109 = load ptr, ptr %2108, align 8, !tbaa !26
  %2110 = load i64, ptr %8, align 8, !tbaa !27
  %2111 = getelementptr inbounds double, ptr %2109, i64 %2110
  %2112 = load double, ptr %2111, align 8, !tbaa !31
  %2113 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2105, double noundef %2112)
  br i1 %2113, label %2114, label %2124

2114:                                             ; preds = %2102
  %2115 = load ptr, ptr %4, align 8, !tbaa !5
  %2116 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2115, i32 0, i32 43
  %2117 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2116, i32 0, i32 4
  %2118 = load ptr, ptr %2117, align 8, !tbaa !26
  %2119 = load i64, ptr %8, align 8, !tbaa !27
  %2120 = getelementptr inbounds double, ptr %2118, i64 %2119
  %2121 = load double, ptr %2120, align 8, !tbaa !31
  %2122 = load ptr, ptr %4, align 8, !tbaa !5
  %2123 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2122, i32 0, i32 63
  store double %2121, ptr %2123, align 8, !tbaa !74
  br label %2124

2124:                                             ; preds = %2114, %2102, %2064
  %2125 = load ptr, ptr %4, align 8, !tbaa !5
  %2126 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2125, i32 0, i32 42
  %2127 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2126, i32 0, i32 4
  %2128 = load ptr, ptr %2127, align 8, !tbaa !26
  %2129 = load i64, ptr %8, align 8, !tbaa !27
  %2130 = getelementptr inbounds i8, ptr %2128, i64 %2129
  %2131 = load i8, ptr %2130, align 1, !tbaa !28, !range !29, !noundef !30
  %2132 = trunc i8 %2131 to i1
  br i1 %2132, label %2133, label %2155

2133:                                             ; preds = %2124
  %2134 = load ptr, ptr %4, align 8, !tbaa !5
  %2135 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2134, i32 0, i32 64
  %2136 = load double, ptr %2135, align 8, !tbaa !75
  %2137 = load ptr, ptr %4, align 8, !tbaa !5
  %2138 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2137, i32 0, i32 44
  %2139 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2138, i32 0, i32 4
  %2140 = load ptr, ptr %2139, align 8, !tbaa !26
  %2141 = load i64, ptr %8, align 8, !tbaa !27
  %2142 = getelementptr inbounds double, ptr %2140, i64 %2141
  %2143 = load double, ptr %2142, align 8, !tbaa !31
  %2144 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2136, double noundef %2143)
  br i1 %2144, label %2145, label %2155

2145:                                             ; preds = %2133
  %2146 = load ptr, ptr %4, align 8, !tbaa !5
  %2147 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2146, i32 0, i32 44
  %2148 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2147, i32 0, i32 4
  %2149 = load ptr, ptr %2148, align 8, !tbaa !26
  %2150 = load i64, ptr %8, align 8, !tbaa !27
  %2151 = getelementptr inbounds double, ptr %2149, i64 %2150
  %2152 = load double, ptr %2151, align 8, !tbaa !31
  %2153 = load ptr, ptr %4, align 8, !tbaa !5
  %2154 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2153, i32 0, i32 64
  store double %2152, ptr %2154, align 8, !tbaa !75
  br label %2155

2155:                                             ; preds = %2145, %2133, %2124
  %2156 = load ptr, ptr %4, align 8, !tbaa !5
  %2157 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2156, i32 0, i32 63
  %2158 = load double, ptr %2157, align 8, !tbaa !74
  %2159 = load ptr, ptr %4, align 8, !tbaa !5
  %2160 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2159, i32 0, i32 14
  %2161 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2160, i32 0, i32 4
  %2162 = load ptr, ptr %2161, align 8, !tbaa !26
  %2163 = load i64, ptr %8, align 8, !tbaa !27
  %2164 = getelementptr inbounds double, ptr %2162, i64 %2163
  store double %2158, ptr %2164, align 8, !tbaa !31
  %2165 = load ptr, ptr %4, align 8, !tbaa !5
  %2166 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2165, i32 0, i32 24
  %2167 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2166, i32 0, i32 0
  store i32 19, ptr %2167, align 8, !tbaa !9
  br label %3161

2168:                                             ; preds = %268
  %2169 = load ptr, ptr %4, align 8, !tbaa !5
  %2170 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2169, i32 0, i32 15
  %2171 = load double, ptr %2170, align 8, !tbaa !57
  %2172 = load ptr, ptr %4, align 8, !tbaa !5
  %2173 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2172, i32 0, i32 60
  store double %2171, ptr %2173, align 8, !tbaa !71
  %2174 = load ptr, ptr %4, align 8, !tbaa !5
  %2175 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2174, i32 0, i32 64
  %2176 = load double, ptr %2175, align 8, !tbaa !75
  %2177 = load ptr, ptr %4, align 8, !tbaa !5
  %2178 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2177, i32 0, i32 14
  %2179 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2178, i32 0, i32 4
  %2180 = load ptr, ptr %2179, align 8, !tbaa !26
  %2181 = load i64, ptr %8, align 8, !tbaa !27
  %2182 = getelementptr inbounds double, ptr %2180, i64 %2181
  store double %2176, ptr %2182, align 8, !tbaa !31
  %2183 = load ptr, ptr %4, align 8, !tbaa !5
  %2184 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2183, i32 0, i32 24
  %2185 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2184, i32 0, i32 0
  store i32 20, ptr %2185, align 8, !tbaa !9
  br label %3161

2186:                                             ; preds = %275
  %2187 = load ptr, ptr %4, align 8, !tbaa !5
  %2188 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2187, i32 0, i32 15
  %2189 = load double, ptr %2188, align 8, !tbaa !57
  %2190 = load ptr, ptr %4, align 8, !tbaa !5
  %2191 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2190, i32 0, i32 61
  store double %2189, ptr %2191, align 8, !tbaa !72
  %2192 = load ptr, ptr %4, align 8, !tbaa !5
  %2193 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2192, i32 0, i32 63
  %2194 = load double, ptr %2193, align 8, !tbaa !74
  %2195 = load ptr, ptr %4, align 8, !tbaa !5
  %2196 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2195, i32 0, i32 64
  %2197 = load double, ptr %2196, align 8, !tbaa !75
  %2198 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2194, double noundef %2197)
  br i1 %2198, label %2199, label %2221

2199:                                             ; preds = %2186
  %2200 = load ptr, ptr %4, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2200, i32 0, i32 61
  %2202 = load double, ptr %2201, align 8, !tbaa !72
  %2203 = load ptr, ptr %4, align 8, !tbaa !5
  %2204 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2203, i32 0, i32 60
  %2205 = load double, ptr %2204, align 8, !tbaa !71
  %2206 = fsub double %2202, %2205
  %2207 = load ptr, ptr %4, align 8, !tbaa !5
  %2208 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2207, i32 0, i32 64
  %2209 = load double, ptr %2208, align 8, !tbaa !75
  %2210 = load ptr, ptr %4, align 8, !tbaa !5
  %2211 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2210, i32 0, i32 63
  %2212 = load double, ptr %2211, align 8, !tbaa !74
  %2213 = fsub double %2209, %2212
  %2214 = fdiv double %2206, %2213
  %2215 = load ptr, ptr %4, align 8, !tbaa !5
  %2216 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2215, i32 0, i32 16
  %2217 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2216, i32 0, i32 4
  %2218 = load ptr, ptr %2217, align 8, !tbaa !26
  %2219 = load i64, ptr %8, align 8, !tbaa !27
  %2220 = getelementptr inbounds double, ptr %2218, i64 %2219
  store double %2214, ptr %2220, align 8, !tbaa !31
  br label %2228

2221:                                             ; preds = %2186
  %2222 = load ptr, ptr %4, align 8, !tbaa !5
  %2223 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2222, i32 0, i32 16
  %2224 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2223, i32 0, i32 4
  %2225 = load ptr, ptr %2224, align 8, !tbaa !26
  %2226 = load i64, ptr %8, align 8, !tbaa !27
  %2227 = getelementptr inbounds double, ptr %2225, i64 %2226
  store double 0.000000e+00, ptr %2227, align 8, !tbaa !31
  br label %2228

2228:                                             ; preds = %2221, %2199
  %2229 = load ptr, ptr %4, align 8, !tbaa !5
  %2230 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2229, i32 0, i32 47
  %2231 = load i64, ptr %2230, align 8, !tbaa !38
  %2232 = add nsw i64 %2231, 2
  %2233 = load ptr, ptr %4, align 8, !tbaa !5
  %2234 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2233, i32 0, i32 47
  store i64 %2232, ptr %2234, align 8, !tbaa !38
  br label %2235

2235:                                             ; preds = %2228, %2017
  %2236 = load double, ptr %10, align 8, !tbaa !31
  %2237 = load ptr, ptr %4, align 8, !tbaa !5
  %2238 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2237, i32 0, i32 14
  %2239 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2238, i32 0, i32 4
  %2240 = load ptr, ptr %2239, align 8, !tbaa !26
  %2241 = load i64, ptr %8, align 8, !tbaa !27
  %2242 = getelementptr inbounds double, ptr %2240, i64 %2241
  store double %2236, ptr %2242, align 8, !tbaa !31
  %2243 = load i64, ptr %8, align 8, !tbaa !27
  %2244 = add nsw i64 %2243, 1
  store i64 %2244, ptr %8, align 8, !tbaa !27
  br label %1820

2245:                                             ; preds = %1825
  %2246 = load ptr, ptr %4, align 8, !tbaa !5
  %2247 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2246, i32 0, i32 58
  %2248 = load double, ptr %2247, align 8, !tbaa !69
  %2249 = load ptr, ptr %4, align 8, !tbaa !5
  %2250 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2249, i32 0, i32 15
  store double %2248, ptr %2250, align 8, !tbaa !57
  %2251 = load ptr, ptr %4, align 8, !tbaa !5
  %2252 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2251, i32 0, i32 17
  store i8 0, ptr %2252, align 8, !tbaa !65
  br label %2253

2253:                                             ; preds = %2245, %1799
  %2254 = load ptr, ptr %4, align 8, !tbaa !5
  %2255 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2254, i32 0, i32 87
  %2256 = load ptr, ptr %4, align 8, !tbaa !5
  %2257 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2256, i32 0, i32 11
  %2258 = load ptr, ptr %4, align 8, !tbaa !5
  %2259 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2258, i32 0, i32 89
  %2260 = load ptr, ptr %4, align 8, !tbaa !5
  %2261 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2260, i32 0, i32 34
  %2262 = load ptr, ptr %4, align 8, !tbaa !5
  %2263 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2262, i32 0, i32 73
  %2264 = load double, ptr %2263, align 8, !tbaa !82
  %2265 = load ptr, ptr %4, align 8, !tbaa !5
  %2266 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2265, i32 0, i32 14
  %2267 = load ptr, ptr %4, align 8, !tbaa !5
  %2268 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2267, i32 0, i32 15
  %2269 = load double, ptr %2268, align 8, !tbaa !57
  %2270 = load ptr, ptr %4, align 8, !tbaa !5
  %2271 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2270, i32 0, i32 16
  %2272 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl31smoothnessmonitorenqueuepoint1uEPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_dS3_dS3_PNS_8ae_stateE(ptr noundef %2255, ptr noundef %2257, ptr noundef %2259, ptr noundef %2261, double noundef %2264, ptr noundef %2266, double noundef %2269, ptr noundef %2271, ptr noundef %2272)
  %2273 = load ptr, ptr %4, align 8, !tbaa !5
  %2274 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2273, i32 0, i32 15
  %2275 = load double, ptr %2274, align 8, !tbaa !57
  %2276 = load double, ptr @_ZN11alglib_implL22minbleic_penaltyfactorE, align 8, !tbaa !31
  %2277 = load ptr, ptr %4, align 8, !tbaa !5
  %2278 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2277, i32 0, i32 40
  %2279 = load double, ptr %2278, align 8, !tbaa !62
  %2280 = fmul double %2276, %2279
  %2281 = load double, ptr %17, align 8, !tbaa !31
  %2282 = call double @llvm.fmuladd.f64(double %2280, double %2281, double %2275)
  %2283 = load ptr, ptr %4, align 8, !tbaa !5
  %2284 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2283, i32 0, i32 32
  store double %2282, ptr %2284, align 8, !tbaa !90
  %2285 = load ptr, ptr %4, align 8, !tbaa !5
  %2286 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2285, i32 0, i32 29
  %2287 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2286, i32 0, i32 4
  %2288 = load ptr, ptr %2287, align 8, !tbaa !26
  %2289 = getelementptr inbounds double, ptr %2288, i64 0
  %2290 = load ptr, ptr %4, align 8, !tbaa !5
  %2291 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2290, i32 0, i32 16
  %2292 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2291, i32 0, i32 4
  %2293 = load ptr, ptr %2292, align 8, !tbaa !26
  %2294 = getelementptr inbounds double, ptr %2293, i64 0
  %2295 = load i64, ptr %6, align 8, !tbaa !27
  %2296 = sub nsw i64 %2295, 1
  %2297 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2296)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2289, i64 noundef 1, ptr noundef %2294, i64 noundef 1, i64 noundef %2297)
  %2298 = load ptr, ptr %4, align 8, !tbaa !5
  %2299 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2298, i32 0, i32 28
  %2300 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2299, i32 0, i32 4
  %2301 = load ptr, ptr %2300, align 8, !tbaa !26
  %2302 = getelementptr inbounds double, ptr %2301, i64 0
  %2303 = load ptr, ptr %4, align 8, !tbaa !5
  %2304 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2303, i32 0, i32 16
  %2305 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2304, i32 0, i32 4
  %2306 = load ptr, ptr %2305, align 8, !tbaa !26
  %2307 = getelementptr inbounds double, ptr %2306, i64 0
  %2308 = load i64, ptr %6, align 8, !tbaa !27
  %2309 = sub nsw i64 %2308, 1
  %2310 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2309)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2302, i64 noundef 1, ptr noundef %2307, i64 noundef 1, i64 noundef %2310)
  %2311 = load ptr, ptr %4, align 8, !tbaa !5
  %2312 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2311, i32 0, i32 10
  %2313 = load ptr, ptr %4, align 8, !tbaa !5
  %2314 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2313, i32 0, i32 29
  %2315 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %2312, ptr noundef %2314, ptr noundef %2315)
  %2316 = load ptr, ptr %4, align 8, !tbaa !5
  %2317 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2316, i32 0, i32 32
  %2318 = load ptr, ptr %4, align 8, !tbaa !5
  %2319 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2318, i32 0, i32 29
  %2320 = load i64, ptr %6, align 8, !tbaa !27
  %2321 = load ptr, ptr %4, align 8, !tbaa !5
  %2322 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2321, i32 0, i32 78
  %2323 = load double, ptr %2322, align 8, !tbaa !93
  %2324 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12trimfunctionEPdPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %2317, ptr noundef %2319, i64 noundef %2320, double noundef %2323, ptr noundef %2324)
  %2325 = load i64, ptr %6, align 8, !tbaa !27
  %2326 = load ptr, ptr %4, align 8, !tbaa !5
  %2327 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2326, i32 0, i32 27
  %2328 = load ptr, ptr %4, align 8, !tbaa !5
  %2329 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2328, i32 0, i32 32
  %2330 = load ptr, ptr %4, align 8, !tbaa !5
  %2331 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2330, i32 0, i32 28
  %2332 = load ptr, ptr %4, align 8, !tbaa !5
  %2333 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2332, i32 0, i32 34
  %2334 = load ptr, ptr %4, align 8, !tbaa !5
  %2335 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2334, i32 0, i32 73
  %2336 = load ptr, ptr %4, align 8, !tbaa !5
  %2337 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2336, i32 0, i32 74
  %2338 = load double, ptr %2337, align 8, !tbaa !83
  %2339 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !31
  %2340 = load ptr, ptr %4, align 8, !tbaa !5
  %2341 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2340, i32 0, i32 71
  %2342 = load ptr, ptr %4, align 8, !tbaa !5
  %2343 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2342, i32 0, i32 76
  %2344 = load ptr, ptr %4, align 8, !tbaa !5
  %2345 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2344, i32 0, i32 77
  %2346 = load ptr, ptr %4, align 8, !tbaa !5
  %2347 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2346, i32 0, i32 72
  %2348 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_S1_S2_ddPlS3_S1_PNS_11linminstateES3_PNS_8ae_stateE(i64 noundef %2325, ptr noundef %2327, ptr noundef %2329, ptr noundef %2331, ptr noundef %2333, ptr noundef %2335, double noundef %2338, double noundef %2339, ptr noundef %14, ptr noundef %2341, ptr noundef %2343, ptr noundef %2345, ptr noundef %2347, ptr noundef %2348)
  br label %1751

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

2429:                                             ; preds = %2444, %2349
  %2430 = load i64, ptr %8, align 8, !tbaa !27
  %2431 = load i64, ptr %6, align 8, !tbaa !27
  %2432 = sub nsw i64 %2431, 1
  %2433 = icmp sle i64 %2430, %2432
  br i1 %2433, label %2434, label %2447

2434:                                             ; preds = %2429
  %2435 = load double, ptr %10, align 8, !tbaa !31
  %2436 = load ptr, ptr %4, align 8, !tbaa !5
  %2437 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2436, i32 0, i32 28
  %2438 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2437, i32 0, i32 4
  %2439 = load ptr, ptr %2438, align 8, !tbaa !26
  %2440 = load i64, ptr %8, align 8, !tbaa !27
  %2441 = getelementptr inbounds double, ptr %2439, i64 %2440
  %2442 = load double, ptr %2441, align 8, !tbaa !31
  %2443 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %2435, double %2442)
  store double %2443, ptr %10, align 8, !tbaa !31
  br label %2444

2444:                                             ; preds = %2434
  %2445 = load i64, ptr %8, align 8, !tbaa !27
  %2446 = add nsw i64 %2445, 1
  store i64 %2446, ptr %8, align 8, !tbaa !27
  br label %2429, !llvm.loop !94

2447:                                             ; preds = %2429
  %2448 = load double, ptr %10, align 8, !tbaa !31
  %2449 = load ptr, ptr %5, align 8, !tbaa !5
  %2450 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2448, ptr noundef %2449)
  br i1 %2450, label %2454, label %2451

2451:                                             ; preds = %2447
  %2452 = load ptr, ptr %4, align 8, !tbaa !5
  %2453 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2452, i32 0, i32 49
  store i64 -8, ptr %2453, align 8, !tbaa !35
  br label %3132

2454:                                             ; preds = %2447
  %2455 = load i64, ptr %14, align 8, !tbaa !27
  %2456 = icmp ne i64 %2455, 1
  br i1 %2456, label %2457, label %2604

2457:                                             ; preds = %2454
  %2458 = load i64, ptr %14, align 8, !tbaa !27
  %2459 = icmp ne i64 %2458, 5
  br i1 %2459, label %2460, label %2604

2460:                                             ; preds = %2457
  store double 0.000000e+00, ptr %10, align 8, !tbaa !31
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %2461

2461:                                             ; preds = %2490, %2460
  %2462 = load i64, ptr %8, align 8, !tbaa !27
  %2463 = load i64, ptr %6, align 8, !tbaa !27
  %2464 = sub nsw i64 %2463, 1
  %2465 = icmp sle i64 %2462, %2464
  br i1 %2465, label %2466, label %2493

2466:                                             ; preds = %2461
  %2467 = load double, ptr %10, align 8, !tbaa !31
  %2468 = load ptr, ptr %4, align 8, !tbaa !5
  %2469 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2468, i32 0, i32 34
  %2470 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2469, i32 0, i32 4
  %2471 = load ptr, ptr %2470, align 8, !tbaa !26
  %2472 = load i64, ptr %8, align 8, !tbaa !27
  %2473 = getelementptr inbounds double, ptr %2471, i64 %2472
  %2474 = load double, ptr %2473, align 8, !tbaa !31
  %2475 = load ptr, ptr %4, align 8, !tbaa !5
  %2476 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2475, i32 0, i32 74
  %2477 = load double, ptr %2476, align 8, !tbaa !83
  %2478 = fmul double %2474, %2477
  %2479 = load ptr, ptr %4, align 8, !tbaa !5
  %2480 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2479, i32 0, i32 11
  %2481 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2480, i32 0, i32 4
  %2482 = load ptr, ptr %2481, align 8, !tbaa !26
  %2483 = load i64, ptr %8, align 8, !tbaa !27
  %2484 = getelementptr inbounds double, ptr %2482, i64 %2483
  %2485 = load double, ptr %2484, align 8, !tbaa !31
  %2486 = fdiv double %2478, %2485
  %2487 = load ptr, ptr %5, align 8, !tbaa !5
  %2488 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2486, ptr noundef %2487)
  %2489 = fadd double %2467, %2488
  store double %2489, ptr %10, align 8, !tbaa !31
  br label %2490

2490:                                             ; preds = %2466
  %2491 = load i64, ptr %8, align 8, !tbaa !27
  %2492 = add nsw i64 %2491, 1
  store i64 %2492, ptr %8, align 8, !tbaa !27
  br label %2461, !llvm.loop !95

2493:                                             ; preds = %2461
  %2494 = load double, ptr %10, align 8, !tbaa !31
  %2495 = load ptr, ptr %5, align 8, !tbaa !5
  %2496 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2494, ptr noundef %2495)
  store double %2496, ptr %10, align 8, !tbaa !31
  store i8 0, ptr %13, align 1, !tbaa !28
  %2497 = load ptr, ptr %4, align 8, !tbaa !5
  %2498 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2497, i32 0, i32 67
  %2499 = load i64, ptr %2498, align 8, !tbaa !85
  %2500 = icmp sge i64 %2499, 0
  br i1 %2500, label %2501, label %2591

2501:                                             ; preds = %2493
  %2502 = load double, ptr %10, align 8, !tbaa !31
  %2503 = load double, ptr @_ZN11alglib_implL27minbleic_maxnonmonotoniclenE, align 8, !tbaa !31
  %2504 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2502, double noundef %2503)
  br i1 %2504, label %2505, label %2591

2505:                                             ; preds = %2501
  %2506 = load ptr, ptr %4, align 8, !tbaa !5
  %2507 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2506, i32 0, i32 79
  %2508 = load i64, ptr %2507, align 8, !tbaa !64
  %2509 = icmp sgt i64 %2508, 0
  br i1 %2509, label %2510, label %2591

2510:                                             ; preds = %2505
  %2511 = load ptr, ptr %4, align 8, !tbaa !5
  %2512 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2511, i32 0, i32 74
  %2513 = load double, ptr %2512, align 8, !tbaa !83
  store double %2513, ptr %10, align 8, !tbaa !31
  %2514 = load ptr, ptr %4, align 8, !tbaa !5
  %2515 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2514, i32 0, i32 70
  %2516 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2515, i32 0, i32 4
  %2517 = load ptr, ptr %2516, align 8, !tbaa !26
  %2518 = getelementptr inbounds double, ptr %2517, i64 0
  %2519 = load ptr, ptr %4, align 8, !tbaa !5
  %2520 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2519, i32 0, i32 10
  %2521 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2520, i32 0, i32 2
  %2522 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2521, i32 0, i32 4
  %2523 = load ptr, ptr %2522, align 8, !tbaa !26
  %2524 = getelementptr inbounds double, ptr %2523, i64 0
  %2525 = load i64, ptr %6, align 8, !tbaa !27
  %2526 = sub nsw i64 %2525, 1
  %2527 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2526)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2518, i64 noundef 1, ptr noundef %2524, i64 noundef 1, i64 noundef %2527)
  %2528 = load ptr, ptr %4, align 8, !tbaa !5
  %2529 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2528, i32 0, i32 70
  %2530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2529, i32 0, i32 4
  %2531 = load ptr, ptr %2530, align 8, !tbaa !26
  %2532 = getelementptr inbounds double, ptr %2531, i64 0
  %2533 = load ptr, ptr %4, align 8, !tbaa !5
  %2534 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2533, i32 0, i32 34
  %2535 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2534, i32 0, i32 4
  %2536 = load ptr, ptr %2535, align 8, !tbaa !26
  %2537 = getelementptr inbounds double, ptr %2536, i64 0
  %2538 = load i64, ptr %6, align 8, !tbaa !27
  %2539 = sub nsw i64 %2538, 1
  %2540 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2539)
  %2541 = load double, ptr %10, align 8, !tbaa !31
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %2532, i64 noundef 1, ptr noundef %2537, i64 noundef 1, i64 noundef %2540, double noundef %2541)
  %2542 = load ptr, ptr %4, align 8, !tbaa !5
  %2543 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2542, i32 0, i32 70
  %2544 = load ptr, ptr %4, align 8, !tbaa !5
  %2545 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2544, i32 0, i32 11
  %2546 = load i64, ptr %6, align 8, !tbaa !27
  %2547 = load ptr, ptr %4, align 8, !tbaa !5
  %2548 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2547, i32 0, i32 35
  %2549 = load ptr, ptr %4, align 8, !tbaa !5
  %2550 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2549, i32 0, i32 36
  %2551 = load i64, ptr %2550, align 8, !tbaa !96
  %2552 = load ptr, ptr %4, align 8, !tbaa !5
  %2553 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2552, i32 0, i32 37
  %2554 = load i64, ptr %2553, align 8, !tbaa !63
  %2555 = load ptr, ptr %5, align 8, !tbaa !5
  %2556 = call noundef double @_ZN11alglib_implL25minbleic_feasibilityerrorEPNS_9ae_vectorES1_lPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %2543, ptr noundef %2545, i64 noundef %2546, ptr noundef %2548, i64 noundef %2551, i64 noundef %2554, ptr noundef %2555)
  %2557 = load double, ptr @_ZN11alglib_implL15minbleic_nmstolE, align 8, !tbaa !31
  %2558 = load i64, ptr %6, align 8, !tbaa !27
  %2559 = sitofp i64 %2558 to double
  %2560 = load ptr, ptr %5, align 8, !tbaa !5
  %2561 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2559, ptr noundef %2560)
  %2562 = fmul double %2557, %2561
  %2563 = fmul double %2562, 5.000000e-16
  %2564 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2556, double noundef %2563)
  br i1 %2564, label %2565, label %2590

2565:                                             ; preds = %2510
  %2566 = load ptr, ptr %4, align 8, !tbaa !5
  %2567 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2566, i32 0, i32 74
  %2568 = load double, ptr %2567, align 8, !tbaa !83
  %2569 = load ptr, ptr %4, align 8, !tbaa !5
  %2570 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2569, i32 0, i32 73
  store double %2568, ptr %2570, align 8, !tbaa !82
  store i64 5, ptr %14, align 8, !tbaa !27
  %2571 = load ptr, ptr %4, align 8, !tbaa !5
  %2572 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2571, i32 0, i32 27
  %2573 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2572, i32 0, i32 4
  %2574 = load ptr, ptr %2573, align 8, !tbaa !26
  %2575 = getelementptr inbounds double, ptr %2574, i64 0
  %2576 = load ptr, ptr %4, align 8, !tbaa !5
  %2577 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2576, i32 0, i32 70
  %2578 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2577, i32 0, i32 4
  %2579 = load ptr, ptr %2578, align 8, !tbaa !26
  %2580 = getelementptr inbounds double, ptr %2579, i64 0
  %2581 = load i64, ptr %6, align 8, !tbaa !27
  %2582 = sub nsw i64 %2581, 1
  %2583 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2582)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2575, i64 noundef 1, ptr noundef %2580, i64 noundef 1, i64 noundef %2583)
  %2584 = load ptr, ptr %4, align 8, !tbaa !5
  %2585 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2584, i32 0, i32 79
  %2586 = load i64, ptr %2585, align 8, !tbaa !64
  %2587 = sub nsw i64 %2586, 1
  %2588 = load ptr, ptr %4, align 8, !tbaa !5
  %2589 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2588, i32 0, i32 79
  store i64 %2587, ptr %2589, align 8, !tbaa !64
  store i8 1, ptr %13, align 1, !tbaa !28
  br label %2590

2590:                                             ; preds = %2565, %2510
  br label %2591

2591:                                             ; preds = %2590, %2505, %2501, %2493
  %2592 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %2593 = trunc i8 %2592 to i1
  br i1 %2593, label %2603, label %2594

2594:                                             ; preds = %2591
  %2595 = load ptr, ptr %4, align 8, !tbaa !5
  %2596 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2595, i32 0, i32 21
  %2597 = load i8, ptr %2596, align 4, !tbaa !33, !range !29, !noundef !30
  %2598 = trunc i8 %2597 to i1
  br i1 %2598, label %2599, label %2602

2599:                                             ; preds = %2594
  %2600 = load ptr, ptr %4, align 8, !tbaa !5
  %2601 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2600, i32 0, i32 49
  store i64 7, ptr %2601, align 8, !tbaa !35
  br label %3132

2602:                                             ; preds = %2594
  br label %3132

2603:                                             ; preds = %2591
  br label %2604

2604:                                             ; preds = %2603, %2457, %2454
  %2605 = load ptr, ptr %4, align 8, !tbaa !5
  %2606 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2605, i32 0, i32 23
  %2607 = load i8, ptr %2606, align 2, !tbaa !34, !range !29, !noundef !30
  %2608 = trunc i8 %2607 to i1
  br i1 %2608, label %2609, label %2610

2609:                                             ; preds = %2604
  br label %3132

2610:                                             ; preds = %2604
  %2611 = load ptr, ptr %4, align 8, !tbaa !5
  %2612 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2611, i32 0, i32 31
  %2613 = load double, ptr %2612, align 8, !tbaa !66
  %2614 = load ptr, ptr %4, align 8, !tbaa !5
  %2615 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2614, i32 0, i32 33
  store double %2613, ptr %2615, align 8, !tbaa !97
  %2616 = load ptr, ptr %4, align 8, !tbaa !5
  %2617 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2616, i32 0, i32 30
  %2618 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2617, i32 0, i32 4
  %2619 = load ptr, ptr %2618, align 8, !tbaa !26
  %2620 = getelementptr inbounds double, ptr %2619, i64 0
  %2621 = load ptr, ptr %4, align 8, !tbaa !5
  %2622 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2621, i32 0, i32 10
  %2623 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2622, i32 0, i32 2
  %2624 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2623, i32 0, i32 4
  %2625 = load ptr, ptr %2624, align 8, !tbaa !26
  %2626 = getelementptr inbounds double, ptr %2625, i64 0
  %2627 = load i64, ptr %6, align 8, !tbaa !27
  %2628 = sub nsw i64 %2627, 1
  %2629 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2628)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2620, i64 noundef 1, ptr noundef %2626, i64 noundef 1, i64 noundef %2629)
  %2630 = load ptr, ptr %4, align 8, !tbaa !5
  %2631 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2630, i32 0, i32 32
  %2632 = load double, ptr %2631, align 8, !tbaa !90
  %2633 = load ptr, ptr %4, align 8, !tbaa !5
  %2634 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2633, i32 0, i32 31
  store double %2632, ptr %2634, align 8, !tbaa !66
  %2635 = load ptr, ptr %4, align 8, !tbaa !5
  %2636 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2635, i32 0, i32 26
  %2637 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2636, i32 0, i32 4
  %2638 = load ptr, ptr %2637, align 8, !tbaa !26
  %2639 = getelementptr inbounds double, ptr %2638, i64 0
  %2640 = load ptr, ptr %4, align 8, !tbaa !5
  %2641 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2640, i32 0, i32 29
  %2642 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2641, i32 0, i32 4
  %2643 = load ptr, ptr %2642, align 8, !tbaa !26
  %2644 = getelementptr inbounds double, ptr %2643, i64 0
  %2645 = load i64, ptr %6, align 8, !tbaa !27
  %2646 = sub nsw i64 %2645, 1
  %2647 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2646)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2639, i64 noundef 1, ptr noundef %2644, i64 noundef 1, i64 noundef %2647)
  %2648 = load ptr, ptr %4, align 8, !tbaa !5
  %2649 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2648, i32 0, i32 25
  %2650 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2649, i32 0, i32 4
  %2651 = load ptr, ptr %2650, align 8, !tbaa !26
  %2652 = getelementptr inbounds double, ptr %2651, i64 0
  %2653 = load ptr, ptr %4, align 8, !tbaa !5
  %2654 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2653, i32 0, i32 28
  %2655 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2654, i32 0, i32 4
  %2656 = load ptr, ptr %2655, align 8, !tbaa !26
  %2657 = getelementptr inbounds double, ptr %2656, i64 0
  %2658 = load i64, ptr %6, align 8, !tbaa !27
  %2659 = sub nsw i64 %2658, 1
  %2660 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2659)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2652, i64 noundef 1, ptr noundef %2657, i64 noundef 1, i64 noundef %2660)
  %2661 = load ptr, ptr %4, align 8, !tbaa !5
  %2662 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2661, i32 0, i32 10
  %2663 = load ptr, ptr %4, align 8, !tbaa !5
  %2664 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2663, i32 0, i32 27
  %2665 = load ptr, ptr %4, align 8, !tbaa !5
  %2666 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2665, i32 0, i32 67
  %2667 = load i64, ptr %2666, align 8, !tbaa !85
  %2668 = icmp sge i64 %2667, 0
  br i1 %2668, label %2669, label %2677

2669:                                             ; preds = %2610
  %2670 = load ptr, ptr %4, align 8, !tbaa !5
  %2671 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2670, i32 0, i32 73
  %2672 = load double, ptr %2671, align 8, !tbaa !82
  %2673 = load ptr, ptr %4, align 8, !tbaa !5
  %2674 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2673, i32 0, i32 75
  %2675 = load double, ptr %2674, align 8, !tbaa !84
  %2676 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %2672, double noundef %2675)
  br label %2677

2677:                                             ; preds = %2669, %2610
  %2678 = phi i1 [ false, %2610 ], [ %2676, %2669 ]
  %2679 = load ptr, ptr %4, align 8, !tbaa !5
  %2680 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2679, i32 0, i32 67
  %2681 = load i64, ptr %2680, align 8, !tbaa !85
  %2682 = load ptr, ptr %4, align 8, !tbaa !5
  %2683 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2682, i32 0, i32 68
  %2684 = load double, ptr %2683, align 8, !tbaa !86
  %2685 = load ptr, ptr %5, align 8, !tbaa !5
  %2686 = call noundef i64 @_ZN11alglib_impl9sasmovetoEPNS_10sactivesetEPNS_9ae_vectorEbldPNS_8ae_stateE(ptr noundef %2662, ptr noundef %2664, i1 noundef zeroext %2678, i64 noundef %2681, double noundef %2684, ptr noundef %2685)
  store i64 %2686, ptr %15, align 8, !tbaa !27
  %2687 = load ptr, ptr %4, align 8, !tbaa !5
  %2688 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2687, i32 0, i32 6
  %2689 = load i8, ptr %2688, align 8, !tbaa !67, !range !29, !noundef !30
  %2690 = trunc i8 %2689 to i1
  br i1 %2690, label %2692, label %2691

2691:                                             ; preds = %2677
  br label %2717

2692:                                             ; preds = %2677
  %2693 = load ptr, ptr %4, align 8, !tbaa !5
  %2694 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2693, i32 0, i32 14
  %2695 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2694, i32 0, i32 4
  %2696 = load ptr, ptr %2695, align 8, !tbaa !26
  %2697 = getelementptr inbounds double, ptr %2696, i64 0
  %2698 = load ptr, ptr %4, align 8, !tbaa !5
  %2699 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2698, i32 0, i32 10
  %2700 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2699, i32 0, i32 2
  %2701 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2700, i32 0, i32 4
  %2702 = load ptr, ptr %2701, align 8, !tbaa !26
  %2703 = getelementptr inbounds double, ptr %2702, i64 0
  %2704 = load i64, ptr %6, align 8, !tbaa !27
  %2705 = sub nsw i64 %2704, 1
  %2706 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2705)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2697, i64 noundef 1, ptr noundef %2703, i64 noundef 1, i64 noundef %2706)
  %2707 = load ptr, ptr %4, align 8, !tbaa !5
  %2708 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef %2707, ptr noundef %2708)
  %2709 = load ptr, ptr %4, align 8, !tbaa !5
  %2710 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2709, i32 0, i32 19
  store i8 1, ptr %2710, align 2, !tbaa !68
  %2711 = load ptr, ptr %4, align 8, !tbaa !5
  %2712 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2711, i32 0, i32 24
  %2713 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2712, i32 0, i32 0
  store i32 21, ptr %2713, align 8, !tbaa !9
  br label %3161

2714:                                             ; preds = %282
  %2715 = load ptr, ptr %4, align 8, !tbaa !5
  %2716 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2715, i32 0, i32 19
  store i8 0, ptr %2716, align 2, !tbaa !68
  br label %2717

2717:                                             ; preds = %2714, %2691
  %2718 = load ptr, ptr %4, align 8, !tbaa !5
  %2719 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2718, i32 0, i32 45
  %2720 = load i64, ptr %2719, align 8, !tbaa !36
  %2721 = add nsw i64 %2720, 1
  %2722 = load ptr, ptr %4, align 8, !tbaa !5
  %2723 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2722, i32 0, i32 45
  store i64 %2721, ptr %2723, align 8, !tbaa !36
  %2724 = load i64, ptr %14, align 8, !tbaa !27
  %2725 = icmp eq i64 %2724, 1
  br i1 %2725, label %2726, label %2978

2726:                                             ; preds = %2717
  %2727 = load ptr, ptr %4, align 8, !tbaa !5
  %2728 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2727, i32 0, i32 84
  %2729 = load i64, ptr %2728, align 8, !tbaa !77
  %2730 = load i64, ptr %7, align 8, !tbaa !27
  %2731 = icmp eq i64 %2729, %2730
  br i1 %2731, label %2732, label %2825

2732:                                             ; preds = %2726
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %2733

2733:                                             ; preds = %2781, %2732
  %2734 = load i64, ptr %8, align 8, !tbaa !27
  %2735 = load ptr, ptr %4, align 8, !tbaa !5
  %2736 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2735, i32 0, i32 84
  %2737 = load i64, ptr %2736, align 8, !tbaa !77
  %2738 = sub nsw i64 %2737, 1
  %2739 = icmp sle i64 %2734, %2738
  br i1 %2739, label %2740, label %2784

2740:                                             ; preds = %2733
  %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 !26
  %2745 = load i64, ptr %8, align 8, !tbaa !27
  %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 !26
  %2753 = load i64, ptr %8, align 8, !tbaa !27
  %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 !27
  %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)
  %2761 = load ptr, ptr %4, align 8, !tbaa !5
  %2762 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2761, i32 0, i32 80
  %2763 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2762, i32 0, i32 6
  %2764 = load ptr, ptr %2763, align 8, !tbaa !26
  %2765 = load i64, ptr %8, align 8, !tbaa !27
  %2766 = getelementptr inbounds ptr, ptr %2764, i64 %2765
  %2767 = load ptr, ptr %2766, align 8, !tbaa !5
  %2768 = getelementptr inbounds double, ptr %2767, i64 0
  %2769 = load ptr, ptr %4, align 8, !tbaa !5
  %2770 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2769, i32 0, i32 80
  %2771 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2770, i32 0, i32 6
  %2772 = load ptr, ptr %2771, align 8, !tbaa !26
  %2773 = load i64, ptr %8, align 8, !tbaa !27
  %2774 = add nsw i64 %2773, 1
  %2775 = getelementptr inbounds ptr, ptr %2772, i64 %2774
  %2776 = load ptr, ptr %2775, align 8, !tbaa !5
  %2777 = getelementptr inbounds double, ptr %2776, i64 0
  %2778 = load i64, ptr %6, align 8, !tbaa !27
  %2779 = sub nsw i64 %2778, 1
  %2780 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2779)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2768, i64 noundef 1, ptr noundef %2777, i64 noundef 1, i64 noundef %2780)
  br label %2781

2781:                                             ; preds = %2740
  %2782 = load i64, ptr %8, align 8, !tbaa !27
  %2783 = add nsw i64 %2782, 1
  store i64 %2783, ptr %8, align 8, !tbaa !27
  br label %2733, !llvm.loop !98

2784:                                             ; preds = %2733
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %2785

2785:                                             ; preds = %2821, %2784
  %2786 = load i64, ptr %8, align 8, !tbaa !27
  %2787 = load ptr, ptr %4, align 8, !tbaa !5
  %2788 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2787, i32 0, i32 84
  %2789 = load i64, ptr %2788, align 8, !tbaa !77
  %2790 = sub nsw i64 %2789, 2
  %2791 = icmp sle i64 %2786, %2790
  br i1 %2791, label %2792, label %2824

2792:                                             ; preds = %2785
  %2793 = load ptr, ptr %4, align 8, !tbaa !5
  %2794 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2793, i32 0, i32 82
  %2795 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2794, i32 0, i32 4
  %2796 = load ptr, ptr %2795, align 8, !tbaa !26
  %2797 = load i64, ptr %8, align 8, !tbaa !27
  %2798 = add nsw i64 %2797, 1
  %2799 = getelementptr inbounds double, ptr %2796, i64 %2798
  %2800 = load double, ptr %2799, align 8, !tbaa !31
  %2801 = load ptr, ptr %4, align 8, !tbaa !5
  %2802 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2801, i32 0, i32 82
  %2803 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2802, i32 0, i32 4
  %2804 = load ptr, ptr %2803, align 8, !tbaa !26
  %2805 = load i64, ptr %8, align 8, !tbaa !27
  %2806 = getelementptr inbounds double, ptr %2804, i64 %2805
  store double %2800, ptr %2806, align 8, !tbaa !31
  %2807 = load ptr, ptr %4, align 8, !tbaa !5
  %2808 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2807, i32 0, i32 83
  %2809 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2808, i32 0, i32 4
  %2810 = load ptr, ptr %2809, align 8, !tbaa !26
  %2811 = load i64, ptr %8, align 8, !tbaa !27
  %2812 = add nsw i64 %2811, 1
  %2813 = getelementptr inbounds double, ptr %2810, i64 %2812
  %2814 = load double, ptr %2813, align 8, !tbaa !31
  %2815 = load ptr, ptr %4, align 8, !tbaa !5
  %2816 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2815, i32 0, i32 83
  %2817 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2816, i32 0, i32 4
  %2818 = load ptr, ptr %2817, align 8, !tbaa !26
  %2819 = load i64, ptr %8, align 8, !tbaa !27
  %2820 = getelementptr inbounds double, ptr %2818, i64 %2819
  store double %2814, ptr %2820, align 8, !tbaa !31
  br label %2821

2821:                                             ; preds = %2792
  %2822 = load i64, ptr %8, align 8, !tbaa !27
  %2823 = add nsw i64 %2822, 1
  store i64 %2823, ptr %8, align 8, !tbaa !27
  br label %2785, !llvm.loop !99

2824:                                             ; preds = %2785
  br label %2832

2825:                                             ; preds = %2726
  %2826 = load ptr, ptr %4, align 8, !tbaa !5
  %2827 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2826, i32 0, i32 84
  %2828 = load i64, ptr %2827, align 8, !tbaa !77
  %2829 = add nsw i64 %2828, 1
  %2830 = load ptr, ptr %4, align 8, !tbaa !5
  %2831 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2830, i32 0, i32 84
  store i64 %2829, ptr %2831, align 8, !tbaa !77
  br label %2832

2832:                                             ; preds = %2825, %2824
  %2833 = load ptr, ptr %4, align 8, !tbaa !5
  %2834 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2833, i32 0, i32 80
  %2835 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2834, i32 0, i32 6
  %2836 = load ptr, ptr %2835, align 8, !tbaa !26
  %2837 = load ptr, ptr %4, align 8, !tbaa !5
  %2838 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2837, i32 0, i32 84
  %2839 = load i64, ptr %2838, align 8, !tbaa !77
  %2840 = sub nsw i64 %2839, 1
  %2841 = getelementptr inbounds ptr, ptr %2836, i64 %2840
  %2842 = load ptr, ptr %2841, align 8, !tbaa !5
  %2843 = getelementptr inbounds double, ptr %2842, i64 0
  %2844 = load ptr, ptr %4, align 8, !tbaa !5
  %2845 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2844, i32 0, i32 81
  %2846 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2845, i32 0, i32 6
  %2847 = load ptr, ptr %2846, align 8, !tbaa !26
  %2848 = load ptr, ptr %4, align 8, !tbaa !5
  %2849 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2848, i32 0, i32 84
  %2850 = load i64, ptr %2849, align 8, !tbaa !77
  %2851 = sub nsw i64 %2850, 1
  %2852 = getelementptr inbounds ptr, ptr %2847, i64 %2851
  %2853 = load ptr, ptr %2852, align 8, !tbaa !5
  %2854 = getelementptr inbounds double, ptr %2853, i64 0
  %2855 = load i64, ptr %6, align 8, !tbaa !27
  %2856 = sub nsw i64 %2855, 1
  %2857 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2856)
  %2858 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2843, i64 noundef 1, ptr noundef %2854, i64 noundef 1, i64 noundef %2857)
  store double %2858, ptr %10, align 8, !tbaa !31
  %2859 = load ptr, ptr %4, align 8, !tbaa !5
  %2860 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2859, i32 0, i32 80
  %2861 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2860, i32 0, i32 6
  %2862 = load ptr, ptr %2861, align 8, !tbaa !26
  %2863 = load ptr, ptr %4, align 8, !tbaa !5
  %2864 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2863, i32 0, i32 84
  %2865 = load i64, ptr %2864, align 8, !tbaa !77
  %2866 = sub nsw i64 %2865, 1
  %2867 = getelementptr inbounds ptr, ptr %2862, i64 %2866
  %2868 = load ptr, ptr %2867, align 8, !tbaa !5
  %2869 = getelementptr inbounds double, ptr %2868, i64 0
  %2870 = load ptr, ptr %4, align 8, !tbaa !5
  %2871 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2870, i32 0, i32 80
  %2872 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2871, i32 0, i32 6
  %2873 = load ptr, ptr %2872, align 8, !tbaa !26
  %2874 = load ptr, ptr %4, align 8, !tbaa !5
  %2875 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2874, i32 0, i32 84
  %2876 = load i64, ptr %2875, align 8, !tbaa !77
  %2877 = sub nsw i64 %2876, 1
  %2878 = getelementptr inbounds ptr, ptr %2873, i64 %2877
  %2879 = load ptr, ptr %2878, align 8, !tbaa !5
  %2880 = getelementptr inbounds double, ptr %2879, i64 0
  %2881 = load i64, ptr %6, align 8, !tbaa !27
  %2882 = sub nsw i64 %2881, 1
  %2883 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2882)
  %2884 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2869, i64 noundef 1, ptr noundef %2880, i64 noundef 1, i64 noundef %2883)
  store double %2884, ptr %11, align 8, !tbaa !31
  %2885 = load double, ptr %10, align 8, !tbaa !31
  %2886 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2885, double noundef 0.000000e+00)
  br i1 %2886, label %2890, label %2887

2887:                                             ; preds = %2832
  %2888 = load double, ptr %11, align 8, !tbaa !31
  %2889 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2888, double noundef 0.000000e+00)
  br i1 %2889, label %2890, label %2891

2890:                                             ; preds = %2887, %2832
  br label %3132

2891:                                             ; preds = %2887
  %2892 = load double, ptr %10, align 8, !tbaa !31
  %2893 = fdiv double 1.000000e+00, %2892
  %2894 = load ptr, ptr %4, align 8, !tbaa !5
  %2895 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2894, i32 0, i32 82
  %2896 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2895, i32 0, i32 4
  %2897 = load ptr, ptr %2896, align 8, !tbaa !26
  %2898 = load ptr, ptr %4, align 8, !tbaa !5
  %2899 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2898, i32 0, i32 84
  %2900 = load i64, ptr %2899, align 8, !tbaa !77
  %2901 = sub nsw i64 %2900, 1
  %2902 = getelementptr inbounds double, ptr %2897, i64 %2901
  store double %2893, ptr %2902, align 8, !tbaa !31
  %2903 = load ptr, ptr %4, align 8, !tbaa !5
  %2904 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2903, i32 0, i32 84
  %2905 = load i64, ptr %2904, align 8, !tbaa !77
  %2906 = load i64, ptr %7, align 8, !tbaa !27
  %2907 = icmp sle i64 %2905, %2906
  %2908 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2907, ptr noundef @.str.281, ptr noundef %2908)
  store double 0.000000e+00, ptr %10, align 8, !tbaa !31
  store double 0.000000e+00, ptr %11, align 8, !tbaa !31
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %2909

2909:                                             ; preds = %2963, %2891
  %2910 = load i64, ptr %8, align 8, !tbaa !27
  %2911 = load i64, ptr %6, align 8, !tbaa !27
  %2912 = sub nsw i64 %2911, 1
  %2913 = icmp sle i64 %2910, %2912
  br i1 %2913, label %2914, label %2966

2914:                                             ; preds = %2909
  %2915 = load double, ptr %10, align 8, !tbaa !31
  %2916 = load ptr, ptr %4, align 8, !tbaa !5
  %2917 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2916, i32 0, i32 10
  %2918 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2917, i32 0, i32 2
  %2919 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2918, i32 0, i32 4
  %2920 = load ptr, ptr %2919, align 8, !tbaa !26
  %2921 = load i64, ptr %8, align 8, !tbaa !27
  %2922 = getelementptr inbounds double, ptr %2920, i64 %2921
  %2923 = load double, ptr %2922, align 8, !tbaa !31
  %2924 = load ptr, ptr %4, align 8, !tbaa !5
  %2925 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2924, i32 0, i32 30
  %2926 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2925, i32 0, i32 4
  %2927 = load ptr, ptr %2926, align 8, !tbaa !26
  %2928 = load i64, ptr %8, align 8, !tbaa !27
  %2929 = getelementptr inbounds double, ptr %2927, i64 %2928
  %2930 = load double, ptr %2929, align 8, !tbaa !31
  %2931 = fsub double %2923, %2930
  %2932 = load ptr, ptr %4, align 8, !tbaa !5
  %2933 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2932, i32 0, i32 11
  %2934 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2933, i32 0, i32 4
  %2935 = load ptr, ptr %2934, align 8, !tbaa !26
  %2936 = load i64, ptr %8, align 8, !tbaa !27
  %2937 = getelementptr inbounds double, ptr %2935, i64 %2936
  %2938 = load double, ptr %2937, align 8, !tbaa !31
  %2939 = fdiv 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 %2915, %2941
  store double %2942, ptr %10, align 8, !tbaa !31
  %2943 = load double, ptr %11, align 8, !tbaa !31
  %2944 = load ptr, ptr %4, align 8, !tbaa !5
  %2945 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2944, i32 0, i32 10
  %2946 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2945, i32 0, i32 2
  %2947 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2946, i32 0, i32 4
  %2948 = load ptr, ptr %2947, align 8, !tbaa !26
  %2949 = load i64, ptr %8, align 8, !tbaa !27
  %2950 = getelementptr inbounds double, ptr %2948, i64 %2949
  %2951 = load double, ptr %2950, align 8, !tbaa !31
  %2952 = load ptr, ptr %4, align 8, !tbaa !5
  %2953 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2952, i32 0, i32 30
  %2954 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2953, i32 0, i32 4
  %2955 = load ptr, ptr %2954, align 8, !tbaa !26
  %2956 = load i64, ptr %8, align 8, !tbaa !27
  %2957 = getelementptr inbounds double, ptr %2955, i64 %2956
  %2958 = load double, ptr %2957, align 8, !tbaa !31
  %2959 = fsub double %2951, %2958
  %2960 = load ptr, ptr %5, align 8, !tbaa !5
  %2961 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2959, ptr noundef %2960)
  %2962 = fadd double %2943, %2961
  store double %2962, ptr %11, align 8, !tbaa !31
  br label %2963

2963:                                             ; preds = %2914
  %2964 = load i64, ptr %8, align 8, !tbaa !27
  %2965 = add nsw i64 %2964, 1
  store i64 %2965, ptr %8, align 8, !tbaa !27
  br label %2909, !llvm.loop !100

2966:                                             ; preds = %2909
  %2967 = load double, ptr %11, align 8, !tbaa !31
  %2968 = load ptr, ptr %5, align 8, !tbaa !5
  %2969 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2967, ptr noundef %2968)
  %2970 = load ptr, ptr %4, align 8, !tbaa !5
  %2971 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2970, i32 0, i32 38
  store double %2969, ptr %2971, align 8, !tbaa !60
  %2972 = load ptr, ptr %4, align 8, !tbaa !5
  %2973 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2972, i32 0, i32 39
  %2974 = load double, ptr %10, align 8, !tbaa !31
  %2975 = load ptr, ptr %5, align 8, !tbaa !5
  %2976 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2974, ptr noundef %2975)
  %2977 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL33minbleic_updateestimateofgoodstepEPddPNS_8ae_stateE(ptr noundef %2973, double noundef %2976, ptr noundef %2977)
  br label %2978

2978:                                             ; preds = %2966, %2717
  %2979 = load i64, ptr %14, align 8, !tbaa !27
  %2980 = icmp eq i64 %2979, 1
  br i1 %2980, label %2981, label %3069

2981:                                             ; preds = %2978
  %2982 = load ptr, ptr %4, align 8, !tbaa !5
  %2983 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2982, i32 0, i32 21
  %2984 = load i8, ptr %2983, align 4, !tbaa !33, !range !29, !noundef !30
  %2985 = trunc i8 %2984 to i1
  br i1 %2985, label %2986, label %3069

2986:                                             ; preds = %2981
  store double 0.000000e+00, ptr %10, align 8, !tbaa !31
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %2987

2987:                                             ; preds = %3021, %2986
  %2988 = load i64, ptr %8, align 8, !tbaa !27
  %2989 = load i64, ptr %6, align 8, !tbaa !27
  %2990 = sub nsw i64 %2989, 1
  %2991 = icmp sle i64 %2988, %2990
  br i1 %2991, label %2992, label %3024

2992:                                             ; preds = %2987
  %2993 = load double, ptr %10, align 8, !tbaa !31
  %2994 = load ptr, ptr %4, align 8, !tbaa !5
  %2995 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %2994, i32 0, i32 10
  %2996 = getelementptr inbounds %"struct.alglib_impl::sactiveset", ptr %2995, i32 0, i32 2
  %2997 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2996, i32 0, i32 4
  %2998 = load ptr, ptr %2997, align 8, !tbaa !26
  %2999 = load i64, ptr %8, align 8, !tbaa !27
  %3000 = getelementptr inbounds double, ptr %2998, i64 %2999
  %3001 = load double, ptr %3000, align 8, !tbaa !31
  %3002 = load ptr, ptr %4, align 8, !tbaa !5
  %3003 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3002, i32 0, i32 30
  %3004 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3003, i32 0, i32 4
  %3005 = load ptr, ptr %3004, align 8, !tbaa !26
  %3006 = load i64, ptr %8, align 8, !tbaa !27
  %3007 = getelementptr inbounds double, ptr %3005, i64 %3006
  %3008 = load double, ptr %3007, align 8, !tbaa !31
  %3009 = fsub double %3001, %3008
  %3010 = load ptr, ptr %4, align 8, !tbaa !5
  %3011 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3010, i32 0, i32 11
  %3012 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3011, i32 0, i32 4
  %3013 = load ptr, ptr %3012, align 8, !tbaa !26
  %3014 = load i64, ptr %8, align 8, !tbaa !27
  %3015 = getelementptr inbounds double, ptr %3013, i64 %3014
  %3016 = load double, ptr %3015, align 8, !tbaa !31
  %3017 = fdiv double %3009, %3016
  %3018 = load ptr, ptr %5, align 8, !tbaa !5
  %3019 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3017, ptr noundef %3018)
  %3020 = fadd double %2993, %3019
  store double %3020, ptr %10, align 8, !tbaa !31
  br label %3021

3021:                                             ; preds = %2992
  %3022 = load i64, ptr %8, align 8, !tbaa !27
  %3023 = add nsw i64 %3022, 1
  store i64 %3023, ptr %8, align 8, !tbaa !27
  br label %2987, !llvm.loop !101

3024:                                             ; preds = %2987
  %3025 = load double, ptr %10, align 8, !tbaa !31
  %3026 = load ptr, ptr %5, align 8, !tbaa !5
  %3027 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3025, ptr noundef %3026)
  store double %3027, ptr %10, align 8, !tbaa !31
  %3028 = load double, ptr %10, align 8, !tbaa !31
  %3029 = load ptr, ptr %4, align 8, !tbaa !5
  %3030 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3029, i32 0, i32 4
  %3031 = load double, ptr %3030, align 8, !tbaa !102
  %3032 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %3028, double noundef %3031)
  br i1 %3032, label %3033, label %3036

3033:                                             ; preds = %3024
  %3034 = load ptr, ptr %4, align 8, !tbaa !5
  %3035 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3034, i32 0, i32 49
  store i64 2, ptr %3035, align 8, !tbaa !35
  br label %3132

3036:                                             ; preds = %3024
  %3037 = load ptr, ptr %4, align 8, !tbaa !5
  %3038 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3037, i32 0, i32 33
  %3039 = load double, ptr %3038, align 8, !tbaa !97
  %3040 = load ptr, ptr %4, align 8, !tbaa !5
  %3041 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3040, i32 0, i32 31
  %3042 = load double, ptr %3041, align 8, !tbaa !66
  %3043 = fsub double %3039, %3042
  %3044 = load ptr, ptr %5, align 8, !tbaa !5
  %3045 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3043, ptr noundef %3044)
  %3046 = load ptr, ptr %4, align 8, !tbaa !5
  %3047 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3046, i32 0, i32 3
  %3048 = load double, ptr %3047, align 8, !tbaa !103
  %3049 = load ptr, ptr %4, align 8, !tbaa !5
  %3050 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3049, i32 0, i32 31
  %3051 = load double, ptr %3050, align 8, !tbaa !66
  %3052 = load ptr, ptr %5, align 8, !tbaa !5
  %3053 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3051, ptr noundef %3052)
  %3054 = load ptr, ptr %4, align 8, !tbaa !5
  %3055 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3054, i32 0, i32 33
  %3056 = load double, ptr %3055, align 8, !tbaa !97
  %3057 = load ptr, ptr %5, align 8, !tbaa !5
  %3058 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3056, ptr noundef %3057)
  %3059 = load ptr, ptr %5, align 8, !tbaa !5
  %3060 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3058, double noundef 1.000000e+00, ptr noundef %3059)
  %3061 = load ptr, ptr %5, align 8, !tbaa !5
  %3062 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3053, double noundef %3060, ptr noundef %3061)
  %3063 = fmul double %3048, %3062
  %3064 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %3045, double noundef %3063)
  br i1 %3064, label %3065, label %3068

3065:                                             ; preds = %3036
  %3066 = load ptr, ptr %4, align 8, !tbaa !5
  %3067 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3066, i32 0, i32 49
  store i64 1, ptr %3067, align 8, !tbaa !35
  br label %3132

3068:                                             ; preds = %3036
  br label %3069

3069:                                             ; preds = %3068, %2981, %2978
  %3070 = load ptr, ptr %4, align 8, !tbaa !5
  %3071 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3070, i32 0, i32 5
  %3072 = load i64, ptr %3071, align 8, !tbaa !104
  %3073 = icmp sgt i64 %3072, 0
  br i1 %3073, label %3074, label %3085

3074:                                             ; preds = %3069
  %3075 = load ptr, ptr %4, align 8, !tbaa !5
  %3076 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3075, i32 0, i32 45
  %3077 = load i64, ptr %3076, align 8, !tbaa !36
  %3078 = load ptr, ptr %4, align 8, !tbaa !5
  %3079 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3078, i32 0, i32 5
  %3080 = load i64, ptr %3079, align 8, !tbaa !104
  %3081 = icmp sge i64 %3077, %3080
  br i1 %3081, label %3082, label %3085

3082:                                             ; preds = %3074
  %3083 = load ptr, ptr %4, align 8, !tbaa !5
  %3084 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3083, i32 0, i32 49
  store i64 5, ptr %3084, align 8, !tbaa !35
  br label %3132

3085:                                             ; preds = %3074, %3069
  %3086 = load ptr, ptr %4, align 8, !tbaa !5
  %3087 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3086, i32 0, i32 21
  store i8 0, ptr %3087, align 4, !tbaa !33
  %3088 = load i64, ptr %15, align 8, !tbaa !27
  %3089 = icmp sge i64 %3088, 0
  br i1 %3089, label %3090, label %3093

3090:                                             ; preds = %3085
  %3091 = load ptr, ptr %4, align 8, !tbaa !5
  %3092 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3091, i32 0, i32 84
  store i64 0, ptr %3092, align 8, !tbaa !77
  br label %1291

3093:                                             ; preds = %3085
  store double 0.000000e+00, ptr %10, align 8, !tbaa !31
  store i64 0, ptr %8, align 8, !tbaa !27
  br label %3094

3094:                                             ; preds = %3119, %3093
  %3095 = load i64, ptr %8, align 8, !tbaa !27
  %3096 = load i64, ptr %6, align 8, !tbaa !27
  %3097 = sub nsw i64 %3096, 1
  %3098 = icmp sle i64 %3095, %3097
  br i1 %3098, label %3099, label %3122

3099:                                             ; preds = %3094
  %3100 = load double, ptr %10, align 8, !tbaa !31
  %3101 = load ptr, ptr %4, align 8, !tbaa !5
  %3102 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3101, i32 0, i32 26
  %3103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3102, i32 0, i32 4
  %3104 = load ptr, ptr %3103, align 8, !tbaa !26
  %3105 = load i64, ptr %8, align 8, !tbaa !27
  %3106 = getelementptr inbounds double, ptr %3104, i64 %3105
  %3107 = load double, ptr %3106, align 8, !tbaa !31
  %3108 = load ptr, ptr %4, align 8, !tbaa !5
  %3109 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3108, i32 0, i32 11
  %3110 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3109, i32 0, i32 4
  %3111 = load ptr, ptr %3110, align 8, !tbaa !26
  %3112 = load i64, ptr %8, align 8, !tbaa !27
  %3113 = getelementptr inbounds double, ptr %3111, i64 %3112
  %3114 = load double, ptr %3113, align 8, !tbaa !31
  %3115 = fmul double %3107, %3114
  %3116 = load ptr, ptr %5, align 8, !tbaa !5
  %3117 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3115, ptr noundef %3116)
  %3118 = fadd double %3100, %3117
  store double %3118, ptr %10, align 8, !tbaa !31
  br label %3119

3119:                                             ; preds = %3099
  %3120 = load i64, ptr %8, align 8, !tbaa !27
  %3121 = add nsw i64 %3120, 1
  store i64 %3121, ptr %8, align 8, !tbaa !27
  br label %3094, !llvm.loop !105

3122:                                             ; preds = %3094
  %3123 = load double, ptr %10, align 8, !tbaa !31
  %3124 = load ptr, ptr %5, align 8, !tbaa !5
  %3125 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3123, ptr noundef %3124)
  %3126 = load double, ptr %19, align 8, !tbaa !31
  %3127 = load double, ptr %18, align 8, !tbaa !31
  %3128 = fmul double %3126, %3127
  %3129 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %3125, double noundef %3128)
  br i1 %3129, label %3130, label %3131

3130:                                             ; preds = %3122
  br label %3132

3131:                                             ; preds = %3122
  br label %1291

3132:                                             ; preds = %3130, %3082, %3065, %3033, %2890, %2609, %2602, %2599, %2451, %1523, %1315, %1296
  %3133 = load ptr, ptr %4, align 8, !tbaa !5
  %3134 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3133, i32 0, i32 23
  %3135 = load i8, ptr %3134, align 2, !tbaa !34, !range !29, !noundef !30
  %3136 = trunc i8 %3135 to i1
  br i1 %3136, label %3137, label %3140

3137:                                             ; preds = %3132
  %3138 = load ptr, ptr %4, align 8, !tbaa !5
  %3139 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3138, i32 0, i32 49
  store i64 8, ptr %3139, align 8, !tbaa !35
  br label %3153

3140:                                             ; preds = %3132
  %3141 = load ptr, ptr %4, align 8, !tbaa !5
  %3142 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3141, i32 0, i32 49
  %3143 = load i64, ptr %3142, align 8, !tbaa !35
  %3144 = icmp ne i64 %3143, 0
  br i1 %3144, label %3145, label %3146

3145:                                             ; preds = %3140
  br label %3153

3146:                                             ; preds = %3140
  %3147 = load double, ptr %19, align 8, !tbaa !31
  %3148 = load double, ptr @_ZN11alglib_implL24minbleic_decaycorrectionE, align 8, !tbaa !31
  %3149 = fmul double %3147, %3148
  %3150 = load double, ptr @_ZN11alglib_implL17minbleic_mindecayE, align 8, !tbaa !31
  %3151 = load ptr, ptr %5, align 8, !tbaa !5
  %3152 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3149, double noundef %3150, ptr noundef %3151)
  store double %3152, ptr %19, align 8, !tbaa !31
  br label %710

3153:                                             ; preds = %3145, %3137
  %3154 = load ptr, ptr %4, align 8, !tbaa !5
  %3155 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3154, i32 0, i32 10
  %3156 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef %3155, ptr noundef %3156)
  %3157 = load ptr, ptr %4, align 8, !tbaa !5
  %3158 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3157, i32 0, i32 46
  store i64 1, ptr %3158, align 8, !tbaa !37
  store i8 0, ptr %20, align 1, !tbaa !28
  %3159 = load i8, ptr %20, align 1, !tbaa !28, !range !29, !noundef !30
  %3160 = trunc i8 %3159 to i1
  store i1 %3160, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3264

3161:                                             ; preds = %2692, %2168, %2155, %1990, %1962, %1933, %1910, %1808, %1793, %1633, %1095, %1082, %923, %895, %866, %843, %741, %732, %668, %636, %627, %462
  store i8 1, ptr %20, align 1, !tbaa !28
  %3162 = load i64, ptr %6, align 8, !tbaa !27
  %3163 = load ptr, ptr %4, align 8, !tbaa !5
  %3164 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3163, i32 0, i32 24
  %3165 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3164, i32 0, i32 1
  %3166 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3165, i32 0, i32 4
  %3167 = load ptr, ptr %3166, align 8, !tbaa !26
  %3168 = getelementptr inbounds i64, ptr %3167, i64 0
  store i64 %3162, ptr %3168, align 8, !tbaa !27
  %3169 = load i64, ptr %7, align 8, !tbaa !27
  %3170 = load ptr, ptr %4, align 8, !tbaa !5
  %3171 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3170, i32 0, i32 24
  %3172 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3171, i32 0, i32 1
  %3173 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3172, i32 0, i32 4
  %3174 = load ptr, ptr %3173, align 8, !tbaa !26
  %3175 = getelementptr inbounds i64, ptr %3174, i64 1
  store i64 %3169, ptr %3175, align 8, !tbaa !27
  %3176 = load i64, ptr %8, align 8, !tbaa !27
  %3177 = load ptr, ptr %4, align 8, !tbaa !5
  %3178 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3177, i32 0, i32 24
  %3179 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3178, i32 0, i32 1
  %3180 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3179, i32 0, i32 4
  %3181 = load ptr, ptr %3180, align 8, !tbaa !26
  %3182 = getelementptr inbounds i64, ptr %3181, i64 2
  store i64 %3176, ptr %3182, align 8, !tbaa !27
  %3183 = load i64, ptr %9, align 8, !tbaa !27
  %3184 = load ptr, ptr %4, align 8, !tbaa !5
  %3185 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3184, i32 0, i32 24
  %3186 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3185, i32 0, i32 1
  %3187 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3186, i32 0, i32 4
  %3188 = load ptr, ptr %3187, align 8, !tbaa !26
  %3189 = getelementptr inbounds i64, ptr %3188, i64 3
  store i64 %3183, ptr %3189, align 8, !tbaa !27
  %3190 = load i64, ptr %14, align 8, !tbaa !27
  %3191 = load ptr, ptr %4, align 8, !tbaa !5
  %3192 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3191, i32 0, i32 24
  %3193 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3192, i32 0, i32 1
  %3194 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3193, i32 0, i32 4
  %3195 = load ptr, ptr %3194, align 8, !tbaa !26
  %3196 = getelementptr inbounds i64, ptr %3195, i64 4
  store i64 %3190, ptr %3196, align 8, !tbaa !27
  %3197 = load i64, ptr %15, align 8, !tbaa !27
  %3198 = load ptr, ptr %4, align 8, !tbaa !5
  %3199 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3198, i32 0, i32 24
  %3200 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3199, i32 0, i32 1
  %3201 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3200, i32 0, i32 4
  %3202 = load ptr, ptr %3201, align 8, !tbaa !26
  %3203 = getelementptr inbounds i64, ptr %3202, i64 5
  store i64 %3197, ptr %3203, align 8, !tbaa !27
  %3204 = load i64, ptr %16, align 8, !tbaa !27
  %3205 = load ptr, ptr %4, align 8, !tbaa !5
  %3206 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3205, i32 0, i32 24
  %3207 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3206, i32 0, i32 1
  %3208 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3207, i32 0, i32 4
  %3209 = load ptr, ptr %3208, align 8, !tbaa !26
  %3210 = getelementptr inbounds i64, ptr %3209, i64 6
  store i64 %3204, ptr %3210, align 8, !tbaa !27
  %3211 = load i8, ptr %13, align 1, !tbaa !28, !range !29, !noundef !30
  %3212 = trunc i8 %3211 to i1
  %3213 = load ptr, ptr %4, align 8, !tbaa !5
  %3214 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3213, i32 0, i32 24
  %3215 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3214, i32 0, i32 2
  %3216 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3215, i32 0, i32 4
  %3217 = load ptr, ptr %3216, align 8, !tbaa !26
  %3218 = getelementptr inbounds i8, ptr %3217, i64 0
  %3219 = zext i1 %3212 to i8
  store i8 %3219, ptr %3218, align 1, !tbaa !28
  %3220 = load double, ptr %10, align 8, !tbaa !31
  %3221 = load ptr, ptr %4, align 8, !tbaa !5
  %3222 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3221, i32 0, i32 24
  %3223 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3222, i32 0, i32 3
  %3224 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3223, i32 0, i32 4
  %3225 = load ptr, ptr %3224, align 8, !tbaa !26
  %3226 = getelementptr inbounds double, ptr %3225, i64 0
  store double %3220, ptr %3226, align 8, !tbaa !31
  %3227 = load double, ptr %11, align 8, !tbaa !31
  %3228 = load ptr, ptr %4, align 8, !tbaa !5
  %3229 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3228, i32 0, i32 24
  %3230 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3229, i32 0, i32 3
  %3231 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3230, i32 0, i32 4
  %3232 = load ptr, ptr %3231, align 8, !tbaa !26
  %3233 = getelementptr inbounds double, ptr %3232, i64 1
  store double %3227, ptr %3233, align 8, !tbaa !31
  %3234 = load double, ptr %12, align 8, !tbaa !31
  %3235 = load ptr, ptr %4, align 8, !tbaa !5
  %3236 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3235, i32 0, i32 24
  %3237 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3236, i32 0, i32 3
  %3238 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3237, i32 0, i32 4
  %3239 = load ptr, ptr %3238, align 8, !tbaa !26
  %3240 = getelementptr inbounds double, ptr %3239, i64 2
  store double %3234, ptr %3240, align 8, !tbaa !31
  %3241 = load double, ptr %17, align 8, !tbaa !31
  %3242 = load ptr, ptr %4, align 8, !tbaa !5
  %3243 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3242, i32 0, i32 24
  %3244 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3243, i32 0, i32 3
  %3245 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3244, i32 0, i32 4
  %3246 = load ptr, ptr %3245, align 8, !tbaa !26
  %3247 = getelementptr inbounds double, ptr %3246, i64 3
  store double %3241, ptr %3247, align 8, !tbaa !31
  %3248 = load double, ptr %18, align 8, !tbaa !31
  %3249 = load ptr, ptr %4, align 8, !tbaa !5
  %3250 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3249, i32 0, i32 24
  %3251 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3250, i32 0, i32 3
  %3252 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3251, i32 0, i32 4
  %3253 = load ptr, ptr %3252, align 8, !tbaa !26
  %3254 = getelementptr inbounds double, ptr %3253, i64 4
  store double %3248, ptr %3254, align 8, !tbaa !31
  %3255 = load double, ptr %19, align 8, !tbaa !31
  %3256 = load ptr, ptr %4, align 8, !tbaa !5
  %3257 = getelementptr inbounds %"struct.alglib_impl::minbleicstate", ptr %3256, i32 0, i32 24
  %3258 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3257, i32 0, i32 3
  %3259 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3258, i32 0, i32 4
  %3260 = load ptr, ptr %3259, align 8, !tbaa !26
  %3261 = getelementptr inbounds double, ptr %3260, i64 5
  store double %3255, ptr %3261, align 8, !tbaa !31
  %3262 = load i8, ptr %20, align 1, !tbaa !28, !range !29, !noundef !30
  %3263 = trunc i8 %3262 to i1
  store i1 %3263, ptr %3, align 1
  store i32 1, ptr %21, align 4
  br label %3264

3264:                                             ; preds = %3161, %3153, %1278, %1265, %701, %580, %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
  %3265 = load i1, ptr %3, align 1
  ret i1 %3265
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef double @_ZN11alglib_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_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

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

; Function Attrs: mustprogress 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_17smoothnessmonitorEPNS_9ae_vectorES3_S3_dS3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef) #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl19sasexploredirectionEPNS_10sactivesetEPNS_9ae_vectorEPdPlS4_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_10sactivesetEPNS_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_10sactivesetEPNS_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_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #2

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

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

declare void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_S1_S2_ddPlS3_S1_PNS_11linminstateES3_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 nounwind uwtable
declare hidden void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #4

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

; 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 4696}
!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, !15, i64 4552, !12, i64 4616, !15, i64 4624, !13, i64 4688, !13, i64 4689, !13, i64 4690, !13, i64 4691, !13, i64 4692, !13, i64 4693, !13, i64 4694, !19, i64 4696, !15, i64 4960, !15, i64 5024, !15, i64 5088, !15, i64 5152, !15, i64 5216, !15, i64 5280, !12, i64 5344, !12, i64 5352, !12, i64 5360, !15, i64 5368, !17, i64 5432, !11, i64 5512, !11, i64 5520, !12, i64 5528, !12, i64 5536, !12, i64 5544, !15, i64 5552, !15, i64 5616, !15, i64 5680, !15, i64 5744, !11, i64 5808, !11, i64 5816, !11, i64 5824, !11, i64 5832, !11, i64 5840, !12, i64 5848, !12, i64 5856, !12, i64 5864, !12, i64 5872, !11, i64 5880, !11, i64 5888, !15, i64 5896, !18, i64 5960, !12, i64 7600, !12, i64 7608, !12, i64 7616, !12, i64 7624, !12, i64 7632, !12, i64 7640, !12, i64 7648, !12, i64 7656, !12, i64 7664, !11, i64 7672, !12, i64 7680, !15, i64 7688, !15, i64 7752, !11, i64 7816, !11, i64 7824, !12, i64 7832, !12, i64 7840, !12, i64 7848, !15, i64 7856, !21, i64 7920, !12, i64 8112, !11, i64 8120, !17, i64 8128, !17, i64 8208, !15, i64 8288, !15, i64 8352, !11, i64 8416, !12, i64 8424, !11, i64 8432, !22, i64 8440, !15, i64 12408, !15, i64 12472}
!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, !11, i64 88, !15, i64 96, !15, i64 160, !15, i64 224, !17, i64 288, !15, i64 368, !15, i64 432, !11, i64 496, !13, i64 504, !13, i64 505, !12, i64 512, !12, i64 520, !13, i64 528, !23, i64 536, !12, i64 832, !12, i64 840, !24, i64 848, !24, i64 1152, !12, i64 1456, !12, i64 1464, !25, i64 1472, !25, i64 1784, !13, i64 2096, !15, i64 2104, !15, i64 2168, !17, i64 2232, !19, i64 2312, !15, i64 2576, !15, i64 2640, !15, i64 2704, !15, i64 2768, !15, i64 2832, !15, i64 2896, !15, i64 2960, !15, i64 3024, !17, i64 3088, !17, i64 3168, !15, i64 3248, !15, i64 3312, !15, i64 3376, !15, i64 3440, !15, i64 3504, !15, i64 3568, !15, i64 3632, !15, i64 3696, !15, i64 3760, !15, i64 3824, !17, i64 3888}
!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_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}
!25 = !{!"_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}
!26 = !{!7, !7, i64 0}
!27 = !{!11, !11, i64 0}
!28 = !{!13, !13, i64 0}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = !{!12, !12, i64 0}
!32 = !{!10, !11, i64 0}
!33 = !{!10, !13, i64 4692}
!34 = !{!10, !13, i64 4694}
!35 = !{!10, !11, i64 5840}
!36 = !{!10, !11, i64 5808}
!37 = !{!10, !11, i64 5816}
!38 = !{!10, !11, i64 5824}
!39 = !{!10, !11, i64 5832}
!40 = !{!10, !12, i64 5848}
!41 = !{!42, !12, i64 8}
!42 = !{!"_ZTSN11alglib_impl8ae_stateE", !11, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !6, i64 32, !16, i64 40, !6, i64 72, !43, i64 80, !6, i64 88, !44, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!43 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !7, i64 0}
!44 = !{!"long long", !7, i64 0}
!45 = !{!10, !12, i64 5856}
!46 = !{!10, !12, i64 5864}
!47 = !{!10, !12, i64 5872}
!48 = !{!10, !12, i64 56}
!49 = !{!10, !11, i64 4480}
!50 = !{!10, !11, i64 8432}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = !{!10, !12, i64 64}
!54 = !{!10, !12, i64 8424}
!55 = distinct !{!55, !52}
!56 = !{!10, !13, i64 4689}
!57 = !{!10, !12, i64 4616}
!58 = distinct !{!58, !52}
!59 = distinct !{!59, !52}
!60 = !{!10, !12, i64 5528}
!61 = !{!10, !12, i64 5536}
!62 = !{!10, !12, i64 5544}
!63 = !{!10, !11, i64 5520}
!64 = !{!10, !11, i64 8120}
!65 = !{!10, !13, i64 4688}
!66 = !{!10, !12, i64 5344}
!67 = !{!10, !13, i64 48}
!68 = !{!10, !13, i64 4690}
!69 = !{!10, !12, i64 7600}
!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 = distinct !{!76, !52}
!77 = !{!10, !11, i64 8416}
!78 = !{!10, !12, i64 16}
!79 = distinct !{!79, !52}
!80 = distinct !{!80, !52}
!81 = distinct !{!81, !52}
!82 = !{!10, !12, i64 7832}
!83 = !{!10, !12, i64 7840}
!84 = !{!10, !12, i64 7848}
!85 = !{!10, !11, i64 7672}
!86 = !{!10, !12, i64 7680}
!87 = !{!10, !13, i64 49}
!88 = !{!10, !13, i64 4691}
!89 = !{!10, !13, i64 4693}
!90 = !{!10, !12, i64 5352}
!91 = !{!10, !11, i64 7824}
!92 = distinct !{!92, !52}
!93 = !{!10, !12, i64 8112}
!94 = distinct !{!94, !52}
!95 = distinct !{!95, !52}
!96 = !{!10, !11, i64 5512}
!97 = !{!10, !12, i64 5360}
!98 = distinct !{!98, !52}
!99 = distinct !{!99, !52}
!100 = distinct !{!100, !52}
!101 = distinct !{!101, !52}
!102 = !{!10, !12, i64 32}
!103 = !{!10, !12, i64 24}
!104 = !{!10, !11, i64 40}
!105 = distinct !{!105, !52}


; 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.281 = 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_implL15minbleic_nmstolE = 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 4696
  %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 4760
  %10 = load ptr, ptr %9, align 8, !tbaa !25
  %11 = load i64, ptr %10, align 8, !tbaa !26
  %12 = getelementptr inbounds i8, ptr %10, i64 8
  %13 = load i64, ptr %12, align 8, !tbaa !26
  %14 = getelementptr inbounds i8, ptr %10, i64 16
  %15 = load i64, ptr %14, align 8, !tbaa !26
  %16 = getelementptr inbounds i8, ptr %10, i64 24
  %17 = load i64, ptr %16, align 8, !tbaa !26
  %18 = getelementptr inbounds i8, ptr %10, i64 32
  %19 = load i64, ptr %18, align 8, !tbaa !26
  %20 = getelementptr inbounds i8, ptr %10, i64 40
  %21 = load i64, ptr %20, align 8, !tbaa !26
  %22 = getelementptr inbounds i8, ptr %10, i64 48
  %23 = load i64, ptr %22, align 8, !tbaa !26
  %24 = getelementptr inbounds i8, ptr %0, i64 4824
  %25 = load ptr, ptr %24, align 8, !tbaa !25
  %26 = load i8, ptr %25, align 1, !tbaa !27, !range !28, !noundef !29
  %27 = getelementptr inbounds i8, ptr %0, i64 4888
  %28 = load ptr, ptr %27, align 8, !tbaa !25
  %29 = load double, ptr %28, align 8, !tbaa !30
  %30 = getelementptr inbounds i8, ptr %28, i64 8
  %31 = load double, ptr %30, align 8, !tbaa !30
  %32 = getelementptr inbounds i8, ptr %28, i64 16
  %33 = load double, ptr %32, align 8, !tbaa !30
  %34 = getelementptr inbounds i8, ptr %28, i64 24
  %35 = load double, ptr %34, align 8, !tbaa !30
  %36 = getelementptr inbounds i8, ptr %28, i64 32
  %37 = load double, ptr %36, align 8, !tbaa !30
  %38 = getelementptr inbounds i8, ptr %28, i64 40
  %39 = load double, ptr %38, align 8, !tbaa !30
  br label %40

40:                                               ; preds = %2, %8
  %.sink1279 = phi i64 [ %19, %8 ], [ 81, %2 ]
  %41 = phi double [ %35, %8 ], [ 9.390000e+02, %2 ]
  %.01044 = phi i64 [ %11, %8 ], [ 359, %2 ]
  %.01040 = phi i64 [ %13, %8 ], [ -58, %2 ]
  %.01021 = phi i64 [ %15, %8 ], [ -919, %2 ]
  %.01020 = phi i64 [ %17, %8 ], [ -909, %2 ]
  %.01006 = phi double [ %29, %8 ], [ 8.090000e+02, %2 ]
  %.0994 = phi double [ %31, %8 ], [ 2.050000e+02, %2 ]
  %.0993 = phi double [ %33, %8 ], [ -8.380000e+02, %2 ]
  %.0984 = phi i8 [ %26, %8 ], [ 0, %2 ]
  %.0976 = phi i64 [ %21, %8 ], [ 255, %2 ]
  %.0968 = phi i64 [ %23, %8 ], [ 74, %2 ]
  %.0963 = phi double [ %37, %8 ], [ -5.260000e+02, %2 ]
  %.0 = phi double [ %39, %8 ], [ 7.630000e+02, %2 ]
  store i64 %.sink1279, ptr %3, align 8
  store double %41, ptr %4, align 8
  switch i32 %6, label %42 [
    i32 0, label %172
    i32 1, label %245
    i32 2, label %249
    i32 3, label %271
    i32 4, label %292
    i32 5, label %296
    i32 6, label %361
    i32 7, label %376
    i32 8, label %391
    i32 9, label %405
    i32 10, label %474
    i32 11, label %483
    i32 12, label %705
    i32 13, label %787
    i32 14, label %794
    i32 15, label %859
    i32 16, label %874
    i32 17, label %889
    i32 18, label %903
    i32 19, label %972
    i32 20, label %981
    i32 21, label %1232
  ]

42:                                               ; preds = %40
  %43 = load i64, ptr %0, align 8, !tbaa !31
  %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 !30
  %46 = load i64, ptr %0, align 8, !tbaa !31
  %47 = getelementptr inbounds i8, ptr %0, i64 4692
  store i8 0, ptr %47, align 4, !tbaa !32
  %48 = getelementptr inbounds i8, ptr %0, i64 4694
  store i8 0, ptr %48, align 2, !tbaa !33
  %49 = getelementptr inbounds i8, ptr %0, i64 5840
  store i64 0, ptr %49, align 8, !tbaa !34
  %50 = getelementptr inbounds i8, ptr %0, i64 5808
  %51 = getelementptr inbounds i8, ptr %0, i64 5832
  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 !35
  %52 = getelementptr inbounds i8, ptr %0, i64 5848
  store double 0.000000e+00, ptr %52, align 8, !tbaa !36
  %53 = getelementptr inbounds i8, ptr %1, i64 8
  %54 = load double, ptr %53, align 8, !tbaa !37
  %55 = getelementptr inbounds i8, ptr %0, i64 5856
  store double %54, ptr %55, align 8, !tbaa !41
  %56 = getelementptr inbounds i8, ptr %0, i64 5864
  store double %54, ptr %56, align 8, !tbaa !42
  %57 = getelementptr inbounds i8, ptr %0, i64 5872
  store double %54, ptr %57, align 8, !tbaa !43
  %58 = getelementptr inbounds i8, ptr %0, i64 56
  %59 = load double, ptr %58, align 8, !tbaa !44
  %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 !45
  %.not = icmp eq i64 %63, 0
  br i1 %.not, label %65, label %64

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

65:                                               ; preds = %61, %42
  %66 = getelementptr inbounds i8, ptr %0, i64 8128
  %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 8208
  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 8288
  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 8352
  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 7752
  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 8440
  %73 = getelementptr inbounds i8, ptr %0, i64 8432
  %74 = load i64, ptr %73, align 8, !tbaa !46
  %75 = icmp sgt i64 %74, 0
  tail call void @_ZN11alglib_impl21smoothnessmonitorinitEPNS_17smoothnessmonitorEllbPNS_8ae_stateE(ptr noundef nonnull %72, i64 noundef %46, i64 noundef 1, i1 noundef zeroext %75, ptr noundef nonnull %1)
  %.not1056.not1214 = icmp sgt i64 %46, 0
  br i1 %.not1056.not1214, label %.lr.ph1217, label %._crit_edge1218

.lr.ph1217:                                       ; preds = %65
  %76 = getelementptr inbounds i8, ptr %0, i64 4472
  %77 = getelementptr inbounds i8, ptr %0, i64 12464
  %78 = getelementptr inbounds i8, ptr %0, i64 12528
  %xtraiter1386 = and i64 %46, 1
  %79 = icmp eq i64 %46, 1
  br i1 %79, label %._crit_edge1218.loopexit.unr-lcssa, label %.lr.ph1217.new

.lr.ph1217.new:                                   ; preds = %.lr.ph1217
  %unroll_iter1389 = and i64 %46, 9223372036854775806
  br label %80

80:                                               ; preds = %80, %.lr.ph1217.new
  %.110221215 = phi i64 [ 0, %.lr.ph1217.new ], [ %104, %80 ]
  %niter1390 = phi i64 [ 0, %.lr.ph1217.new ], [ %niter1390.next.1, %80 ]
  %81 = load ptr, ptr %76, align 8, !tbaa !25
  %82 = getelementptr inbounds double, ptr %81, i64 %.110221215
  %83 = load double, ptr %82, align 8, !tbaa !30
  %84 = load ptr, ptr %77, align 8, !tbaa !25
  %85 = getelementptr inbounds double, ptr %84, i64 %.110221215
  store double %83, ptr %85, align 8, !tbaa !30
  %86 = load ptr, ptr %76, align 8, !tbaa !25
  %87 = getelementptr inbounds double, ptr %86, i64 %.110221215
  %88 = load double, ptr %87, align 8, !tbaa !30
  %89 = fdiv double 1.000000e+00, %88
  %90 = load ptr, ptr %78, align 8, !tbaa !25
  %91 = getelementptr inbounds double, ptr %90, i64 %.110221215
  store double %89, ptr %91, align 8, !tbaa !30
  %92 = or disjoint i64 %.110221215, 1
  %93 = load ptr, ptr %76, align 8, !tbaa !25
  %94 = getelementptr inbounds double, ptr %93, i64 %92
  %95 = load double, ptr %94, align 8, !tbaa !30
  %96 = load ptr, ptr %77, align 8, !tbaa !25
  %97 = getelementptr inbounds double, ptr %96, i64 %92
  store double %95, ptr %97, align 8, !tbaa !30
  %98 = load ptr, ptr %76, align 8, !tbaa !25
  %99 = getelementptr inbounds double, ptr %98, i64 %92
  %100 = load double, ptr %99, align 8, !tbaa !30
  %101 = fdiv double 1.000000e+00, %100
  %102 = load ptr, ptr %78, align 8, !tbaa !25
  %103 = getelementptr inbounds double, ptr %102, i64 %92
  store double %101, ptr %103, align 8, !tbaa !30
  %104 = add nuw nsw i64 %.110221215, 2
  %niter1390.next.1 = add i64 %niter1390, 2
  %niter1390.ncmp.1 = icmp eq i64 %niter1390.next.1, %unroll_iter1389
  br i1 %niter1390.ncmp.1, label %._crit_edge1218.loopexit.unr-lcssa, label %80, !llvm.loop !47

._crit_edge1218.loopexit.unr-lcssa:               ; preds = %80, %.lr.ph1217
  %.110221215.unr = phi i64 [ 0, %.lr.ph1217 ], [ %104, %80 ]
  %lcmp.mod1388.not = icmp eq i64 %xtraiter1386, 0
  br i1 %lcmp.mod1388.not, label %._crit_edge1218, label %._crit_edge1218.loopexit.epilog-lcssa

._crit_edge1218.loopexit.epilog-lcssa:            ; preds = %._crit_edge1218.loopexit.unr-lcssa
  %105 = load ptr, ptr %76, align 8, !tbaa !25
  %106 = getelementptr inbounds double, ptr %105, i64 %.110221215.unr
  %107 = load double, ptr %106, align 8, !tbaa !30
  %108 = load ptr, ptr %77, align 8, !tbaa !25
  %109 = getelementptr inbounds double, ptr %108, i64 %.110221215.unr
  store double %107, ptr %109, align 8, !tbaa !30
  %110 = load ptr, ptr %76, align 8, !tbaa !25
  %111 = getelementptr inbounds double, ptr %110, i64 %.110221215.unr
  %112 = load double, ptr %111, align 8, !tbaa !30
  %113 = fdiv double 1.000000e+00, %112
  %114 = load ptr, ptr %78, align 8, !tbaa !25
  %115 = getelementptr inbounds double, ptr %114, i64 %.110221215.unr
  store double %113, ptr %115, align 8, !tbaa !30
  br label %._crit_edge1218

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

119:                                              ; preds = %._crit_edge1218
  %120 = getelementptr inbounds i8, ptr %0, i64 8424
  %121 = load double, ptr %120, align 8, !tbaa !50
  %122 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %121, double noundef 0.000000e+00)
  br i1 %122, label %.loopexit, label %196

.loopexit.loopexit.unr-lcssa:                     ; preds = %181, %.lr.ph1213
  %.310241211.unr = phi i64 [ 0, %.lr.ph1213 ], [ %195, %181 ]
  %lcmp.mod1382.not = icmp eq i64 %xtraiter1380, 0
  br i1 %lcmp.mod1382.not, label %.loopexit, label %.loopexit.loopexit.epilog-lcssa

.loopexit.loopexit.epilog-lcssa:                  ; preds = %.loopexit.loopexit.unr-lcssa
  %123 = load ptr, ptr %178, align 8, !tbaa !25
  %124 = getelementptr inbounds double, ptr %123, i64 %.310241211.unr
  %125 = load double, ptr %124, align 8, !tbaa !30
  %126 = load ptr, ptr %179, align 8, !tbaa !25
  %127 = load ptr, ptr %126, align 8, !tbaa !51
  %128 = getelementptr inbounds double, ptr %127, i64 %.310241211.unr
  store double %125, ptr %128, align 8, !tbaa !30
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit.epilog-lcssa, %.loopexit.loopexit.unr-lcssa, %172, %119
  %.11045 = phi i64 [ %46, %119 ], [ %.01044, %172 ], [ %.01044, %.loopexit.loopexit.unr-lcssa ], [ %.01044, %.loopexit.loopexit.epilog-lcssa ]
  %.11041 = phi i64 [ %44, %119 ], [ %.01040, %172 ], [ %.01040, %.loopexit.loopexit.unr-lcssa ], [ %.01040, %.loopexit.loopexit.epilog-lcssa ]
  %.1 = phi double [ %45, %119 ], [ %.0, %172 ], [ %.0, %.loopexit.loopexit.unr-lcssa ], [ %.0, %.loopexit.loopexit.epilog-lcssa ]
  %129 = getelementptr inbounds i8, ptr %0, i64 8440
  %130 = getelementptr inbounds i8, ptr %0, i64 5896
  %131 = getelementptr inbounds i8, ptr %0, i64 4416
  %132 = getelementptr inbounds i8, ptr %0, i64 5680
  %133 = getelementptr inbounds i8, ptr %0, i64 5744
  %134 = getelementptr inbounds i8, ptr %0, i64 8424
  %135 = load double, ptr %134, align 8, !tbaa !50
  %136 = tail call noundef zeroext i1 @_ZN11alglib_impl34smoothnessmonitorcheckgradientatx0EPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_S3_bdPNS_8ae_stateE(ptr noundef nonnull %129, ptr noundef nonnull %130, ptr noundef nonnull %131, ptr noundef nonnull %132, ptr noundef nonnull %133, i1 noundef zeroext true, double noundef %135, ptr noundef %1)
  br i1 %136, label %.preheader, label %196

.preheader:                                       ; preds = %.loopexit
  %.not1075.not1225 = icmp sgt i64 %.11045, 0
  br i1 %.not1075.not1225, label %.lr.ph1227, label %._crit_edge1228

.lr.ph1227:                                       ; preds = %.preheader
  %137 = getelementptr inbounds i8, ptr %0, i64 10600
  %138 = getelementptr inbounds i8, ptr %0, i64 4608
  %xtraiter1392 = and i64 %.11045, 3
  %139 = icmp ult i64 %.11045, 4
  br i1 %139, label %._crit_edge1228.loopexit.unr-lcssa, label %.lr.ph1227.new

.lr.ph1227.new:                                   ; preds = %.lr.ph1227
  %unroll_iter1395 = and i64 %.11045, 9223372036854775804
  br label %140

140:                                              ; preds = %140, %.lr.ph1227.new
  %.210231226 = phi i64 [ 0, %.lr.ph1227.new ], [ %164, %140 ]
  %niter1396 = phi i64 [ 0, %.lr.ph1227.new ], [ %niter1396.next.3, %140 ]
  %141 = load ptr, ptr %137, align 8, !tbaa !25
  %142 = getelementptr inbounds double, ptr %141, i64 %.210231226
  %143 = load double, ptr %142, align 8, !tbaa !30
  %144 = load ptr, ptr %138, align 8, !tbaa !25
  %145 = getelementptr inbounds double, ptr %144, i64 %.210231226
  store double %143, ptr %145, align 8, !tbaa !30
  %146 = or disjoint i64 %.210231226, 1
  %147 = load ptr, ptr %137, align 8, !tbaa !25
  %148 = getelementptr inbounds double, ptr %147, i64 %146
  %149 = load double, ptr %148, align 8, !tbaa !30
  %150 = load ptr, ptr %138, align 8, !tbaa !25
  %151 = getelementptr inbounds double, ptr %150, i64 %146
  store double %149, ptr %151, align 8, !tbaa !30
  %152 = or disjoint i64 %.210231226, 2
  %153 = load ptr, ptr %137, align 8, !tbaa !25
  %154 = getelementptr inbounds double, ptr %153, i64 %152
  %155 = load double, ptr %154, align 8, !tbaa !30
  %156 = load ptr, ptr %138, align 8, !tbaa !25
  %157 = getelementptr inbounds double, ptr %156, i64 %152
  store double %155, ptr %157, align 8, !tbaa !30
  %158 = or disjoint i64 %.210231226, 3
  %159 = load ptr, ptr %137, align 8, !tbaa !25
  %160 = getelementptr inbounds double, ptr %159, i64 %158
  %161 = load double, ptr %160, align 8, !tbaa !30
  %162 = load ptr, ptr %138, align 8, !tbaa !25
  %163 = getelementptr inbounds double, ptr %162, i64 %158
  store double %161, ptr %163, align 8, !tbaa !30
  %164 = add nuw nsw i64 %.210231226, 4
  %niter1396.next.3 = add i64 %niter1396, 4
  %niter1396.ncmp.3 = icmp eq i64 %niter1396.next.3, %unroll_iter1395
  br i1 %niter1396.ncmp.3, label %._crit_edge1228.loopexit.unr-lcssa, label %140, !llvm.loop !52

._crit_edge1228.loopexit.unr-lcssa:               ; preds = %140, %.lr.ph1227
  %.210231226.unr = phi i64 [ 0, %.lr.ph1227 ], [ %164, %140 ]
  %lcmp.mod1394.not = icmp eq i64 %xtraiter1392, 0
  br i1 %lcmp.mod1394.not, label %._crit_edge1228, label %.epil.preheader1391

.epil.preheader1391:                              ; preds = %._crit_edge1228.loopexit.unr-lcssa, %.epil.preheader1391
  %.210231226.epil = phi i64 [ %170, %.epil.preheader1391 ], [ %.210231226.unr, %._crit_edge1228.loopexit.unr-lcssa ]
  %epil.iter1393 = phi i64 [ %epil.iter1393.next, %.epil.preheader1391 ], [ 0, %._crit_edge1228.loopexit.unr-lcssa ]
  %165 = load ptr, ptr %137, align 8, !tbaa !25
  %166 = getelementptr inbounds double, ptr %165, i64 %.210231226.epil
  %167 = load double, ptr %166, align 8, !tbaa !30
  %168 = load ptr, ptr %138, align 8, !tbaa !25
  %169 = getelementptr inbounds double, ptr %168, i64 %.210231226.epil
  store double %167, ptr %169, align 8, !tbaa !30
  %170 = add nuw nsw i64 %.210231226.epil, 1
  %epil.iter1393.next = add i64 %epil.iter1393, 1
  %epil.iter1393.cmp.not = icmp eq i64 %epil.iter1393.next, %xtraiter1392
  br i1 %epil.iter1393.cmp.not, label %._crit_edge1228, label %.epil.preheader1391, !llvm.loop !53

._crit_edge1228:                                  ; preds = %._crit_edge1228.loopexit.unr-lcssa, %.epil.preheader1391, %.preheader
  %.21023.lcssa = phi i64 [ 0, %.preheader ], [ %.11045, %.epil.preheader1391 ], [ %.11045, %._crit_edge1228.loopexit.unr-lcssa ]
  %171 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 1, ptr %171, align 1, !tbaa !55
  br label %1444

172:                                              ; preds = %40
  %173 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 0, ptr %173, align 1, !tbaa !55
  %174 = getelementptr inbounds i8, ptr %0, i64 4616
  %175 = load double, ptr %174, align 8, !tbaa !56
  %176 = getelementptr inbounds i8, ptr %0, i64 10664
  %177 = load ptr, ptr %176, align 8, !tbaa !25
  store double %175, ptr %177, align 8, !tbaa !30
  %.not1073.not1210 = icmp sgt i64 %.01044, 0
  br i1 %.not1073.not1210, label %.lr.ph1213, label %.loopexit

.lr.ph1213:                                       ; preds = %172
  %178 = getelementptr inbounds i8, ptr %0, i64 4680
  %179 = getelementptr inbounds i8, ptr %0, i64 10744
  %xtraiter1380 = and i64 %.01044, 1
  %180 = icmp eq i64 %.01044, 1
  br i1 %180, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph1213.new

.lr.ph1213.new:                                   ; preds = %.lr.ph1213
  %unroll_iter1383 = and i64 %.01044, 9223372036854775806
  br label %181

181:                                              ; preds = %181, %.lr.ph1213.new
  %.310241211 = phi i64 [ 0, %.lr.ph1213.new ], [ %195, %181 ]
  %niter1384 = phi i64 [ 0, %.lr.ph1213.new ], [ %niter1384.next.1, %181 ]
  %182 = load ptr, ptr %178, align 8, !tbaa !25
  %183 = getelementptr inbounds double, ptr %182, i64 %.310241211
  %184 = load double, ptr %183, align 8, !tbaa !30
  %185 = load ptr, ptr %179, align 8, !tbaa !25
  %186 = load ptr, ptr %185, align 8, !tbaa !51
  %187 = getelementptr inbounds double, ptr %186, i64 %.310241211
  store double %184, ptr %187, align 8, !tbaa !30
  %188 = or disjoint i64 %.310241211, 1
  %189 = load ptr, ptr %178, align 8, !tbaa !25
  %190 = getelementptr inbounds double, ptr %189, i64 %188
  %191 = load double, ptr %190, align 8, !tbaa !30
  %192 = load ptr, ptr %179, align 8, !tbaa !25
  %193 = load ptr, ptr %192, align 8, !tbaa !51
  %194 = getelementptr inbounds double, ptr %193, i64 %188
  store double %191, ptr %194, align 8, !tbaa !30
  %195 = add nuw nsw i64 %.310241211, 2
  %niter1384.next.1 = add i64 %niter1384, 2
  %niter1384.ncmp.1 = icmp eq i64 %niter1384.next.1, %unroll_iter1383
  br i1 %niter1384.ncmp.1, label %.loopexit.loopexit.unr-lcssa, label %181, !llvm.loop !57

196:                                              ; preds = %.loopexit, %._crit_edge1218, %119
  %.21046 = phi i64 [ %.11045, %.loopexit ], [ %46, %119 ], [ %46, %._crit_edge1218 ]
  %.21042 = phi i64 [ %.11041, %.loopexit ], [ %44, %119 ], [ %44, %._crit_edge1218 ]
  %.2 = phi double [ %.1, %.loopexit ], [ %45, %119 ], [ %45, %._crit_edge1218 ]
  %197 = getelementptr inbounds i8, ptr %0, i64 7688
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %197, i64 noundef %.21046, ptr noundef %1)
  %.not1074.not1219 = icmp sgt i64 %.21046, 0
  br i1 %.not1074.not1219, label %.lr.ph1222, label %._crit_edge1223

.lr.ph1222:                                       ; preds = %196
  %198 = getelementptr inbounds i8, ptr %0, i64 4480
  %199 = getelementptr inbounds i8, ptr %0, i64 4472
  %200 = getelementptr inbounds i8, ptr %0, i64 7744
  %201 = getelementptr inbounds i8, ptr %0, i64 4544
  br label %202

202:                                              ; preds = %.lr.ph1222, %214
  %.410251220 = phi i64 [ 0, %.lr.ph1222 ], [ %217, %214 ]
  %203 = load i64, ptr %198, align 8, !tbaa !45
  switch i64 %203, label %214 [
    i64 2, label %204
    i64 3, label %208
  ]

204:                                              ; preds = %202
  %205 = load ptr, ptr %201, align 8, !tbaa !25
  %206 = getelementptr inbounds double, ptr %205, i64 %.410251220
  %207 = load double, ptr %206, align 8, !tbaa !30
  br label %214

208:                                              ; preds = %202
  %209 = load ptr, ptr %199, align 8, !tbaa !25
  %210 = getelementptr inbounds double, ptr %209, i64 %.410251220
  %211 = load double, ptr %210, align 8, !tbaa !30
  %212 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %211, ptr noundef %1)
  %213 = fdiv double 1.000000e+00, %212
  br label %214

214:                                              ; preds = %202, %208, %204
  %.sink = phi double [ %213, %208 ], [ %207, %204 ], [ 1.000000e+00, %202 ]
  %215 = load ptr, ptr %200, align 8, !tbaa !25
  %216 = getelementptr inbounds double, ptr %215, i64 %.410251220
  store double %.sink, ptr %216, align 8, !tbaa !30
  %217 = add nuw nsw i64 %.410251220, 1
  %exitcond1277.not = icmp eq i64 %217, %.21046
  br i1 %exitcond1277.not, label %._crit_edge1223, label %202, !llvm.loop !58

._crit_edge1223:                                  ; preds = %214, %196
  %.41025.lcssa = phi i64 [ 0, %196 ], [ %.21046, %214 ]
  %218 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl14sassetprecdiagEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %218, ptr noundef nonnull %197, ptr noundef %1)
  %219 = getelementptr inbounds i8, ptr %0, i64 5896
  %220 = tail call noundef zeroext i1 @_ZN11alglib_impl20sasstartoptimizationEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %218, ptr noundef nonnull %219, ptr noundef %1)
  br i1 %220, label %223, label %221

221:                                              ; preds = %._crit_edge1223
  %222 = getelementptr inbounds i8, ptr %0, i64 5840
  store i64 -3, ptr %222, align 8, !tbaa !34
  br label %1476

223:                                              ; preds = %._crit_edge1223
  %224 = add nsw i64 %.21046, -1
  %225 = getelementptr inbounds i8, ptr %0, i64 5840
  store i64 0, ptr %225, align 8, !tbaa !34
  %226 = getelementptr inbounds i8, ptr %0, i64 5528
  %227 = getelementptr inbounds i8, ptr %0, i64 5520
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %226, i8 0, i64 24, i1 false)
  %228 = load i64, ptr %227, align 8, !tbaa !59
  %229 = add nsw i64 %228, %.21046
  %230 = sitofp i64 %229 to double
  %231 = fmul double %230, 1.500000e+00
  %232 = tail call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %231, ptr noundef %1)
  %233 = add nsw i64 %232, 5
  %234 = getelementptr inbounds i8, ptr %0, i64 8120
  store i64 %233, ptr %234, align 8, !tbaa !60
  %235 = getelementptr inbounds i8, ptr %0, i64 4608
  %236 = load ptr, ptr %235, align 8, !tbaa !25
  %237 = getelementptr inbounds i8, ptr %0, i64 144
  %238 = load ptr, ptr %237, align 8, !tbaa !25
  %239 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %224)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %236, i64 noundef 1, ptr noundef %238, i64 noundef 1, i64 noundef %239)
  tail call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %240 = getelementptr inbounds i8, ptr %0, i64 64
  %241 = load double, ptr %240, align 8, !tbaa !49
  %242 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %241, double noundef 0.000000e+00)
  br i1 %242, label %247, label %243

243:                                              ; preds = %223
  %244 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 1, ptr %244, align 1, !tbaa !55
  br label %1444

245:                                              ; preds = %40
  %246 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 0, ptr %246, align 1, !tbaa !55
  br label %251

247:                                              ; preds = %223
  %248 = getelementptr inbounds i8, ptr %0, i64 4688
  store i8 1, ptr %248, align 8, !tbaa !61
  br label %1444

249:                                              ; preds = %40
  %250 = getelementptr inbounds i8, ptr %0, i64 4688
  store i8 0, ptr %250, align 8, !tbaa !61
  br label %251

251:                                              ; preds = %249, %245
  %252 = getelementptr inbounds i8, ptr %0, i64 4616
  %253 = load double, ptr %252, align 8, !tbaa !56
  %254 = getelementptr inbounds i8, ptr %0, i64 5344
  store double %253, ptr %254, align 8, !tbaa !62
  %255 = getelementptr inbounds i8, ptr %0, i64 8112
  tail call void @_ZN11alglib_impl11trimprepareEdPdPNS_8ae_stateE(double noundef %253, ptr noundef nonnull %255, ptr noundef %1)
  %256 = getelementptr inbounds i8, ptr %0, i64 5824
  %257 = load i64, ptr %256, align 8, !tbaa !63
  %258 = add nsw i64 %257, 1
  store i64 %258, ptr %256, align 8, !tbaa !63
  %259 = getelementptr inbounds i8, ptr %0, i64 48
  %260 = load i8, ptr %259, align 8, !tbaa !64, !range !28, !noundef !29
  %261 = trunc nuw i8 %260 to i1
  br i1 %261, label %262, label %273

262:                                              ; preds = %251
  %263 = getelementptr inbounds i8, ptr %0, i64 4608
  %264 = load ptr, ptr %263, align 8, !tbaa !25
  %265 = getelementptr inbounds i8, ptr %0, i64 144
  %266 = load ptr, ptr %265, align 8, !tbaa !25
  %267 = add nsw i64 %.01044, -1
  %268 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %267)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %264, i64 noundef 1, ptr noundef %266, i64 noundef 1, i64 noundef %268)
  %269 = load double, ptr %254, align 8, !tbaa !62
  store double %269, ptr %252, align 8, !tbaa !56
  %270 = getelementptr inbounds i8, ptr %0, i64 4690
  store i8 1, ptr %270, align 2, !tbaa !65
  br label %1444

271:                                              ; preds = %40
  %272 = getelementptr inbounds i8, ptr %0, i64 4690
  store i8 0, ptr %272, align 2, !tbaa !65
  br label %273

273:                                              ; preds = %251, %271
  %274 = getelementptr inbounds i8, ptr %0, i64 4694
  %275 = load i8, ptr %274, align 2, !tbaa !33, !range !28, !noundef !29
  %276 = trunc nuw i8 %275 to i1
  br i1 %276, label %277, label %280

277:                                              ; preds = %273
  %278 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %278, ptr noundef %1)
  %279 = getelementptr inbounds i8, ptr %0, i64 5840
  store i64 8, ptr %279, align 8, !tbaa !34
  br label %1476

280:                                              ; preds = %273, %1436
  %.51026 = phi i64 [ %.01021, %273 ], [ %.26, %1436 ]
  %.11007 = phi double [ %.01006, %273 ], [ %.17, %1436 ]
  %.1995 = phi double [ %.0994, %273 ], [ %.101004, %1436 ]
  %.1985 = phi i8 [ %.0984, %273 ], [ %.12, %1436 ]
  %.1977 = phi i64 [ %.0976, %273 ], [ %.6982, %1436 ]
  %.1969 = phi i64 [ %.0968, %273 ], [ %.6974, %1436 ]
  %.1964 = phi double [ %.0963, %273 ], [ %.7, %1436 ]
  %.3 = phi double [ %.0, %273 ], [ %1440, %1436 ]
  %281 = getelementptr inbounds i8, ptr %0, i64 4608
  %282 = load ptr, ptr %281, align 8, !tbaa !25
  %283 = getelementptr inbounds i8, ptr %0, i64 144
  %284 = load ptr, ptr %283, align 8, !tbaa !25
  %285 = add nsw i64 %.01044, -1
  %286 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %285)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %282, i64 noundef 1, ptr noundef %284, i64 noundef 1, i64 noundef %286)
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %287 = getelementptr inbounds i8, ptr %0, i64 64
  %288 = load double, ptr %287, align 8, !tbaa !49
  %289 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %288, double noundef 0.000000e+00)
  br i1 %289, label %294, label %290

290:                                              ; preds = %280
  %291 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 1, ptr %291, align 1, !tbaa !55
  br label %1444

292:                                              ; preds = %40
  %293 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 0, ptr %293, align 1, !tbaa !55
  %.phi.trans.insert1280 = getelementptr inbounds i8, ptr %0, i64 4616
  %.pre1281 = load double, ptr %.phi.trans.insert1280, align 8, !tbaa !56
  br label %514

294:                                              ; preds = %280
  %295 = getelementptr inbounds i8, ptr %0, i64 4688
  store i8 1, ptr %295, align 8, !tbaa !61
  br label %1444

296:                                              ; preds = %40
  %297 = getelementptr inbounds i8, ptr %0, i64 4616
  %298 = load double, ptr %297, align 8, !tbaa !56
  %299 = getelementptr inbounds i8, ptr %0, i64 7600
  store double %298, ptr %299, align 8, !tbaa !66
  br label %300

300:                                              ; preds = %501, %296
  %.61027 = phi i64 [ 0, %296 ], [ %508, %501 ]
  %.not1058 = icmp slt i64 %.61027, %.01044
  br i1 %.not1058, label %301, label %509

301:                                              ; preds = %300
  %302 = getelementptr inbounds i8, ptr %0, i64 4608
  %303 = load ptr, ptr %302, align 8, !tbaa !25
  %304 = getelementptr inbounds double, ptr %303, i64 %.61027
  %305 = load double, ptr %304, align 8, !tbaa !30
  %306 = getelementptr inbounds i8, ptr %0, i64 5608
  %307 = load ptr, ptr %306, align 8, !tbaa !25
  %308 = getelementptr inbounds i8, ptr %307, i64 %.61027
  %309 = load i8, ptr %308, align 1, !tbaa !27, !range !28, !noundef !29
  %310 = trunc nuw i8 %309 to i1
  br i1 %310, label %311, label %326

311:                                              ; preds = %301
  %312 = getelementptr inbounds i8, ptr %0, i64 64
  %313 = load double, ptr %312, align 8, !tbaa !49
  %314 = getelementptr inbounds i8, ptr %0, i64 4472
  %315 = load ptr, ptr %314, align 8, !tbaa !25
  %316 = getelementptr inbounds double, ptr %315, i64 %.61027
  %317 = load double, ptr %316, align 8, !tbaa !30
  %318 = fneg double %313
  %319 = tail call double @llvm.fmuladd.f64(double %318, double %317, double %305)
  %320 = getelementptr inbounds i8, ptr %0, i64 5736
  %321 = load ptr, ptr %320, align 8, !tbaa !25
  %322 = getelementptr inbounds double, ptr %321, i64 %.61027
  %323 = load double, ptr %322, align 8, !tbaa !30
  %324 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %319, double noundef %323)
  %325 = zext i1 %324 to i8
  br label %326

326:                                              ; preds = %311, %301
  %.2986 = phi i8 [ %325, %311 ], [ 0, %301 ]
  %327 = getelementptr inbounds i8, ptr %0, i64 5672
  %328 = load ptr, ptr %327, align 8, !tbaa !25
  %329 = getelementptr inbounds i8, ptr %328, i64 %.61027
  %330 = load i8, ptr %329, align 1, !tbaa !27, !range !28, !noundef !29
  %331 = trunc nuw i8 %330 to i1
  br i1 %331, label %332, label %348

332:                                              ; preds = %326
  %333 = trunc nuw i8 %.2986 to i1
  br i1 %333, label %.thread, label %334

334:                                              ; preds = %332
  %335 = getelementptr inbounds i8, ptr %0, i64 64
  %336 = load double, ptr %335, align 8, !tbaa !49
  %337 = getelementptr inbounds i8, ptr %0, i64 4472
  %338 = load ptr, ptr %337, align 8, !tbaa !25
  %339 = getelementptr inbounds double, ptr %338, i64 %.61027
  %340 = load double, ptr %339, align 8, !tbaa !30
  %341 = tail call double @llvm.fmuladd.f64(double %336, double %340, double %305)
  %342 = getelementptr inbounds i8, ptr %0, i64 5800
  %343 = load ptr, ptr %342, align 8, !tbaa !25
  %344 = getelementptr inbounds double, ptr %343, i64 %.61027
  %345 = load double, ptr %344, align 8, !tbaa !30
  %346 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %341, double noundef %345)
  %347 = zext i1 %346 to i8
  br label %348

348:                                              ; preds = %334, %326
  %.3987 = phi i8 [ %.2986, %326 ], [ %347, %334 ]
  %349 = trunc nuw i8 %.3987 to i1
  br i1 %349, label %.thread, label %350

350:                                              ; preds = %348
  %351 = getelementptr inbounds i8, ptr %0, i64 64
  %352 = load double, ptr %351, align 8, !tbaa !49
  %353 = getelementptr inbounds i8, ptr %0, i64 4472
  %354 = load ptr, ptr %353, align 8, !tbaa !25
  %355 = getelementptr inbounds double, ptr %354, i64 %.61027
  %356 = load double, ptr %355, align 8, !tbaa !30
  %357 = fneg double %352
  %358 = tail call double @llvm.fmuladd.f64(double %357, double %356, double %305)
  %359 = load ptr, ptr %302, align 8, !tbaa !25
  %360 = getelementptr inbounds double, ptr %359, i64 %.61027
  store double %358, ptr %360, align 8, !tbaa !30
  br label %1444

361:                                              ; preds = %40
  %362 = getelementptr inbounds i8, ptr %0, i64 4616
  %363 = load double, ptr %362, align 8, !tbaa !56
  %364 = getelementptr inbounds i8, ptr %0, i64 7608
  store double %363, ptr %364, align 8, !tbaa !67
  %365 = getelementptr inbounds i8, ptr %0, i64 64
  %366 = load double, ptr %365, align 8, !tbaa !49
  %367 = getelementptr inbounds i8, ptr %0, i64 4472
  %368 = load ptr, ptr %367, align 8, !tbaa !25
  %369 = getelementptr inbounds double, ptr %368, i64 %.01021
  %370 = load double, ptr %369, align 8, !tbaa !30
  %371 = fmul double %366, -5.000000e-01
  %372 = tail call double @llvm.fmuladd.f64(double %371, double %370, double %.01006)
  %373 = getelementptr inbounds i8, ptr %0, i64 4608
  %374 = load ptr, ptr %373, align 8, !tbaa !25
  %375 = getelementptr inbounds double, ptr %374, i64 %.01021
  store double %372, ptr %375, align 8, !tbaa !30
  br label %1444

376:                                              ; preds = %40
  %377 = getelementptr inbounds i8, ptr %0, i64 4616
  %378 = load double, ptr %377, align 8, !tbaa !56
  %379 = getelementptr inbounds i8, ptr %0, i64 7616
  store double %378, ptr %379, align 8, !tbaa !68
  %380 = getelementptr inbounds i8, ptr %0, i64 64
  %381 = load double, ptr %380, align 8, !tbaa !49
  %382 = fmul double %381, 5.000000e-01
  %383 = getelementptr inbounds i8, ptr %0, i64 4472
  %384 = load ptr, ptr %383, align 8, !tbaa !25
  %385 = getelementptr inbounds double, ptr %384, i64 %.01021
  %386 = load double, ptr %385, align 8, !tbaa !30
  %387 = tail call double @llvm.fmuladd.f64(double %382, double %386, double %.01006)
  %388 = getelementptr inbounds i8, ptr %0, i64 4608
  %389 = load ptr, ptr %388, align 8, !tbaa !25
  %390 = getelementptr inbounds double, ptr %389, i64 %.01021
  store double %387, ptr %390, align 8, !tbaa !30
  br label %1444

391:                                              ; preds = %40
  %392 = getelementptr inbounds i8, ptr %0, i64 4616
  %393 = load double, ptr %392, align 8, !tbaa !56
  %394 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %393, ptr %394, align 8, !tbaa !69
  %395 = getelementptr inbounds i8, ptr %0, i64 64
  %396 = load double, ptr %395, align 8, !tbaa !49
  %397 = getelementptr inbounds i8, ptr %0, i64 4472
  %398 = load ptr, ptr %397, align 8, !tbaa !25
  %399 = getelementptr inbounds double, ptr %398, i64 %.01021
  %400 = load double, ptr %399, align 8, !tbaa !30
  %401 = tail call double @llvm.fmuladd.f64(double %396, double %400, double %.01006)
  %402 = getelementptr inbounds i8, ptr %0, i64 4608
  %403 = load ptr, ptr %402, align 8, !tbaa !25
  %404 = getelementptr inbounds double, ptr %403, i64 %.01021
  store double %401, ptr %404, align 8, !tbaa !30
  br label %1444

405:                                              ; preds = %40
  %406 = getelementptr inbounds i8, ptr %0, i64 4616
  %407 = load double, ptr %406, align 8, !tbaa !56
  %408 = getelementptr inbounds i8, ptr %0, i64 7632
  store double %407, ptr %408, align 8, !tbaa !70
  %409 = getelementptr inbounds i8, ptr %0, i64 7624
  %410 = load double, ptr %409, align 8, !tbaa !69
  %411 = getelementptr inbounds i8, ptr %0, i64 7616
  %412 = load double, ptr %411, align 8, !tbaa !68
  %413 = fsub double %410, %412
  %414 = getelementptr inbounds i8, ptr %0, i64 7608
  %415 = load double, ptr %414, align 8, !tbaa !67
  %416 = fsub double %407, %415
  %417 = fneg double %416
  %418 = tail call double @llvm.fmuladd.f64(double %413, double 8.000000e+00, double %417)
  %419 = getelementptr inbounds i8, ptr %0, i64 64
  %420 = load double, ptr %419, align 8, !tbaa !49
  %421 = fmul double %420, 6.000000e+00
  %422 = getelementptr inbounds i8, ptr %0, i64 4472
  %423 = load ptr, ptr %422, align 8, !tbaa !25
  %424 = getelementptr inbounds double, ptr %423, i64 %.01021
  %425 = load double, ptr %424, align 8, !tbaa !30
  %426 = fmul double %421, %425
  %427 = fdiv double %418, %426
  br label %501

.thread:                                          ; preds = %332, %348
  %.39871077 = phi i8 [ %.3987, %348 ], [ 1, %332 ]
  %428 = getelementptr inbounds i8, ptr %0, i64 64
  %429 = load double, ptr %428, align 8, !tbaa !49
  %430 = getelementptr inbounds i8, ptr %0, i64 4472
  %431 = load ptr, ptr %430, align 8, !tbaa !25
  %432 = getelementptr inbounds double, ptr %431, i64 %.61027
  %433 = load double, ptr %432, align 8, !tbaa !30
  %434 = fneg double %429
  %435 = tail call double @llvm.fmuladd.f64(double %434, double %433, double %305)
  %436 = getelementptr inbounds i8, ptr %0, i64 7640
  store double %435, ptr %436, align 8, !tbaa !71
  %437 = load double, ptr %432, align 8, !tbaa !30
  %438 = tail call double @llvm.fmuladd.f64(double %429, double %437, double %305)
  %439 = getelementptr inbounds i8, ptr %0, i64 7648
  store double %438, ptr %439, align 8, !tbaa !72
  %440 = load ptr, ptr %306, align 8, !tbaa !25
  %441 = getelementptr inbounds i8, ptr %440, i64 %.61027
  %442 = load i8, ptr %441, align 1, !tbaa !27, !range !28, !noundef !29
  %443 = trunc nuw i8 %442 to i1
  br i1 %443, label %444, label %454

444:                                              ; preds = %.thread
  %445 = getelementptr inbounds i8, ptr %0, i64 5736
  %446 = load ptr, ptr %445, align 8, !tbaa !25
  %447 = getelementptr inbounds double, ptr %446, i64 %.61027
  %448 = load double, ptr %447, align 8, !tbaa !30
  %449 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %435, double noundef %448)
  br i1 %449, label %450, label %454

450:                                              ; preds = %444
  %451 = load ptr, ptr %445, align 8, !tbaa !25
  %452 = getelementptr inbounds double, ptr %451, i64 %.61027
  %453 = load double, ptr %452, align 8, !tbaa !30
  store double %453, ptr %436, align 8, !tbaa !71
  br label %454

454:                                              ; preds = %450, %444, %.thread
  %455 = load ptr, ptr %327, align 8, !tbaa !25
  %456 = getelementptr inbounds i8, ptr %455, i64 %.61027
  %457 = load i8, ptr %456, align 1, !tbaa !27, !range !28, !noundef !29
  %458 = trunc nuw i8 %457 to i1
  br i1 %458, label %459, label %470

459:                                              ; preds = %454
  %460 = load double, ptr %439, align 8, !tbaa !72
  %461 = getelementptr inbounds i8, ptr %0, i64 5800
  %462 = load ptr, ptr %461, align 8, !tbaa !25
  %463 = getelementptr inbounds double, ptr %462, i64 %.61027
  %464 = load double, ptr %463, align 8, !tbaa !30
  %465 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %460, double noundef %464)
  br i1 %465, label %466, label %470

466:                                              ; preds = %459
  %467 = load ptr, ptr %461, align 8, !tbaa !25
  %468 = getelementptr inbounds double, ptr %467, i64 %.61027
  %469 = load double, ptr %468, align 8, !tbaa !30
  store double %469, ptr %439, align 8, !tbaa !72
  br label %470

470:                                              ; preds = %466, %459, %454
  %471 = load double, ptr %436, align 8, !tbaa !71
  %472 = load ptr, ptr %302, align 8, !tbaa !25
  %473 = getelementptr inbounds double, ptr %472, i64 %.61027
  store double %471, ptr %473, align 8, !tbaa !30
  br label %1444

474:                                              ; preds = %40
  %475 = getelementptr inbounds i8, ptr %0, i64 4616
  %476 = load double, ptr %475, align 8, !tbaa !56
  %477 = getelementptr inbounds i8, ptr %0, i64 7616
  store double %476, ptr %477, align 8, !tbaa !68
  %478 = getelementptr inbounds i8, ptr %0, i64 7648
  %479 = load double, ptr %478, align 8, !tbaa !72
  %480 = getelementptr inbounds i8, ptr %0, i64 4608
  %481 = load ptr, ptr %480, align 8, !tbaa !25
  %482 = getelementptr inbounds double, ptr %481, i64 %.01021
  store double %479, ptr %482, align 8, !tbaa !30
  br label %1444

483:                                              ; preds = %40
  %484 = getelementptr inbounds i8, ptr %0, i64 4616
  %485 = load double, ptr %484, align 8, !tbaa !56
  %486 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %485, ptr %486, align 8, !tbaa !69
  %487 = getelementptr inbounds i8, ptr %0, i64 7640
  %488 = load double, ptr %487, align 8, !tbaa !71
  %489 = getelementptr inbounds i8, ptr %0, i64 7648
  %490 = load double, ptr %489, align 8, !tbaa !72
  %491 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %488, double noundef %490)
  br i1 %491, label %492, label %501

492:                                              ; preds = %483
  %493 = load double, ptr %486, align 8, !tbaa !69
  %494 = getelementptr inbounds i8, ptr %0, i64 7616
  %495 = load double, ptr %494, align 8, !tbaa !68
  %496 = fsub double %493, %495
  %497 = load double, ptr %489, align 8, !tbaa !72
  %498 = load double, ptr %487, align 8, !tbaa !71
  %499 = fsub double %497, %498
  %500 = fdiv double %496, %499
  br label %501

501:                                              ; preds = %483, %492, %405
  %.sink1309 = phi double [ %500, %492 ], [ %427, %405 ], [ 0.000000e+00, %483 ]
  %502 = getelementptr inbounds i8, ptr %0, i64 4680
  %503 = load ptr, ptr %502, align 8, !tbaa !25
  %504 = getelementptr inbounds double, ptr %503, i64 %.01021
  store double %.sink1309, ptr %504, align 8, !tbaa !30
  %505 = getelementptr inbounds i8, ptr %0, i64 4608
  %506 = load ptr, ptr %505, align 8, !tbaa !25
  %507 = getelementptr inbounds double, ptr %506, i64 %.01021
  store double %.01006, ptr %507, align 8, !tbaa !30
  %508 = add nsw i64 %.01021, 1
  br label %300

509:                                              ; preds = %300
  %510 = getelementptr inbounds i8, ptr %0, i64 7600
  %511 = load double, ptr %510, align 8, !tbaa !66
  %512 = getelementptr inbounds i8, ptr %0, i64 4616
  store double %511, ptr %512, align 8, !tbaa !56
  %513 = getelementptr inbounds i8, ptr %0, i64 4688
  store i8 0, ptr %513, align 8, !tbaa !61
  br label %514

514:                                              ; preds = %509, %292
  %515 = phi double [ %511, %509 ], [ %.pre1281, %292 ]
  %516 = getelementptr inbounds i8, ptr %0, i64 5344
  store double %515, ptr %516, align 8, !tbaa !62
  %517 = getelementptr inbounds i8, ptr %0, i64 4960
  %518 = getelementptr inbounds i8, ptr %0, i64 5016
  %519 = load ptr, ptr %518, align 8, !tbaa !25
  %520 = getelementptr inbounds i8, ptr %0, i64 4680
  %521 = load ptr, ptr %520, align 8, !tbaa !25
  %522 = add nsw i64 %.01044, -1
  %523 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %522)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %519, i64 noundef 1, ptr noundef %521, i64 noundef 1, i64 noundef %523)
  %524 = getelementptr inbounds i8, ptr %0, i64 5024
  %525 = getelementptr inbounds i8, ptr %0, i64 5080
  %526 = load ptr, ptr %525, align 8, !tbaa !25
  %527 = load ptr, ptr %520, align 8, !tbaa !25
  %528 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %522)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %526, i64 noundef 1, ptr noundef %527, i64 noundef 1, i64 noundef %528)
  %529 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl28sasreactivateconstraintsprecEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %529, ptr noundef nonnull %517, ptr noundef %1)
  tail call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %529, ptr noundef nonnull %524, ptr noundef %1)
  %.not1059.not1127 = icmp sgt i64 %.01044, 0
  br i1 %.not1059.not1127, label %.lr.ph, label %._crit_edge

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

531:                                              ; preds = %.lr.ph, %531
  %.29651129 = phi double [ 0.000000e+00, %.lr.ph ], [ %540, %531 ]
  %.710281128 = phi i64 [ 0, %.lr.ph ], [ %541, %531 ]
  %532 = load ptr, ptr %525, align 8, !tbaa !25
  %533 = getelementptr inbounds double, ptr %532, i64 %.710281128
  %534 = load double, ptr %533, align 8, !tbaa !30
  %535 = load ptr, ptr %530, align 8, !tbaa !25
  %536 = getelementptr inbounds double, ptr %535, i64 %.710281128
  %537 = load double, ptr %536, align 8, !tbaa !30
  %538 = fmul double %534, %537
  %539 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %538, ptr noundef %1)
  %540 = fadd double %.29651129, %539
  %541 = add nuw nsw i64 %.710281128, 1
  %exitcond.not = icmp eq i64 %541, %.01044
  br i1 %exitcond.not, label %._crit_edge, label %531, !llvm.loop !73

._crit_edge:                                      ; preds = %531, %514
  %.71028.lcssa = phi i64 [ 0, %514 ], [ %.01044, %531 ]
  %.2965.lcssa = phi double [ 0.000000e+00, %514 ], [ %540, %531 ]
  %542 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.2965.lcssa, ptr noundef %1)
  %543 = getelementptr inbounds i8, ptr %0, i64 5544
  %544 = load double, ptr %543, align 8, !tbaa !74
  %545 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %544, double noundef %542, ptr noundef %1)
  store double %545, ptr %543, align 8, !tbaa !74
  %546 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %542, ptr noundef %1)
  br i1 %546, label %547, label %550

547:                                              ; preds = %._crit_edge
  %548 = load double, ptr %516, align 8, !tbaa !62
  %549 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %548, ptr noundef %1)
  br i1 %549, label %552, label %550

550:                                              ; preds = %547, %._crit_edge
  tail call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %529, ptr noundef %1)
  %551 = getelementptr inbounds i8, ptr %0, i64 5840
  store i64 -8, ptr %551, align 8, !tbaa !34
  br label %1476

552:                                              ; preds = %547
  %553 = getelementptr inbounds i8, ptr %0, i64 4694
  %554 = load i8, ptr %553, align 2, !tbaa !33, !range !28, !noundef !29
  %555 = trunc nuw i8 %554 to i1
  br i1 %555, label %556, label %558

556:                                              ; preds = %552
  tail call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %529, ptr noundef %1)
  %557 = getelementptr inbounds i8, ptr %0, i64 5840
  store i64 8, ptr %557, align 8, !tbaa !34
  br label %1476

558:                                              ; preds = %552
  %559 = getelementptr inbounds i8, ptr %0, i64 8416
  store i64 0, ptr %559, align 8, !tbaa !75
  %560 = getelementptr inbounds i8, ptr %0, i64 4692
  store i8 1, ptr %560, align 4, !tbaa !32
  br label %.preheader1097

.preheader1097:                                   ; preds = %558, %1412, %._crit_edge1207
  %.81029.ph = phi i64 [ %.25.lcssa, %._crit_edge1207 ], [ %.24, %1412 ], [ %.71028.lcssa, %558 ]
  %.21008.ph = phi double [ %.16.lcssa, %._crit_edge1207 ], [ %.15, %1412 ], [ %.01006, %558 ]
  %.2996.ph = phi double [ %.910031090, %._crit_edge1207 ], [ %.910031090, %1412 ], [ %.0994, %558 ]
  %.4988.ph = phi i8 [ %.11, %._crit_edge1207 ], [ %.11, %1412 ], [ %.0984, %558 ]
  %.2978.ph = phi i64 [ %.5981, %._crit_edge1207 ], [ %.5981, %1412 ], [ %.0976, %558 ]
  %.2970.ph = phi i64 [ %.5973, %._crit_edge1207 ], [ %.5973, %1412 ], [ -1, %558 ]
  %.3966.ph = phi double [ %.6, %._crit_edge1207 ], [ %.6, %1412 ], [ %542, %558 ]
  %561 = add nsw i64 %.01044, -1
  %.not1060 = icmp slt i64 %.2970.ph, %561
  br i1 %.not1060, label %.lr.ph1153, label %.loopexit1098

.lr.ph1153:                                       ; preds = %.preheader1097
  %562 = getelementptr inbounds i8, ptr %0, i64 4692
  %563 = getelementptr inbounds i8, ptr %0, i64 72
  %564 = getelementptr inbounds i8, ptr %0, i64 4960
  %565 = getelementptr inbounds i8, ptr %0, i64 16
  %566 = getelementptr inbounds i8, ptr %0, i64 7856
  %567 = getelementptr inbounds i8, ptr %0, i64 7912
  %568 = getelementptr inbounds i8, ptr %0, i64 5080
  %569 = getelementptr inbounds i8, ptr %0, i64 8416
  %570 = getelementptr inbounds i8, ptr %0, i64 8280
  %571 = getelementptr inbounds i8, ptr %0, i64 8408
  %572 = getelementptr inbounds i8, ptr %0, i64 8344
  %573 = getelementptr inbounds i8, ptr %0, i64 8200
  %574 = getelementptr inbounds i8, ptr %0, i64 5368
  %575 = getelementptr inbounds i8, ptr %0, i64 5424
  %.not1062.not1142 = icmp sgt i64 %.01044, 0
  %576 = getelementptr inbounds i8, ptr %0, i64 4472
  %577 = getelementptr inbounds i8, ptr %0, i64 5536
  %578 = getelementptr inbounds i8, ptr %0, i64 7832
  %579 = getelementptr inbounds i8, ptr %0, i64 7840
  %580 = getelementptr inbounds i8, ptr %0, i64 7672
  %581 = getelementptr inbounds i8, ptr %0, i64 7680
  %582 = getelementptr inbounds i8, ptr %0, i64 7848
  %smax = call i64 @llvm.smax.i64(i64 %.01044, i64 0)
  br label %583

583:                                              ; preds = %671, %.lr.ph1153
  %.29961152 = phi double [ %.2996.ph, %.lr.ph1153 ], [ %.4998.lcssa, %671 ]
  %.210081151 = phi double [ %.21008.ph, %.lr.ph1153 ], [ %651, %671 ]
  %.810291150 = phi i64 [ %.81029.ph, %.lr.ph1153 ], [ %.111032.lcssa, %671 ]
  %584 = load i8, ptr %562, align 4, !tbaa !32, !range !28, !noundef !29
  %585 = trunc nuw i8 %584 to i1
  br i1 %585, label %586, label %592

586:                                              ; preds = %583
  %587 = call noundef double @_ZN11alglib_impl24sasscaledconstrainednormEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %563, ptr noundef nonnull %564, ptr noundef %1)
  %588 = load double, ptr %565, align 8, !tbaa !76
  %589 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %587, double noundef %588)
  br i1 %589, label %590, label %592

590:                                              ; preds = %586
  %591 = add nsw i64 %.2970.ph, 1
  br label %.loopexit1098.sink.split

592:                                              ; preds = %586, %583
  %593 = load ptr, ptr %567, align 8, !tbaa !25
  %594 = load ptr, ptr %568, align 8, !tbaa !25
  %595 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %593, i64 noundef 1, ptr noundef %594, i64 noundef 1, i64 noundef %595)
  %596 = load i64, ptr %569, align 8, !tbaa !75
  %597 = icmp sgt i64 %596, 0
  br i1 %597, label %.lr.ph1133, label %._crit_edge1134

.lr.ph1133:                                       ; preds = %592, %.lr.ph1133
  %.91030.in1131 = phi i64 [ %.91030, %.lr.ph1133 ], [ %596, %592 ]
  %.91030 = add nsw i64 %.91030.in1131, -1
  %598 = load ptr, ptr %570, align 8, !tbaa !25
  %599 = getelementptr inbounds ptr, ptr %598, i64 %.91030
  %600 = load ptr, ptr %599, align 8, !tbaa !51
  %601 = load ptr, ptr %567, align 8, !tbaa !25
  %602 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  %603 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %600, i64 noundef 1, ptr noundef %601, i64 noundef 1, i64 noundef %602)
  %604 = load ptr, ptr %571, align 8, !tbaa !25
  %605 = getelementptr inbounds double, ptr %604, i64 %.91030
  store double %603, ptr %605, align 8, !tbaa !30
  %606 = load ptr, ptr %572, align 8, !tbaa !25
  %607 = getelementptr inbounds double, ptr %606, i64 %.91030
  %608 = load double, ptr %607, align 8, !tbaa !30
  %609 = fmul double %603, %608
  %610 = load ptr, ptr %567, align 8, !tbaa !25
  %611 = load ptr, ptr %573, align 8, !tbaa !25
  %612 = getelementptr inbounds ptr, ptr %611, i64 %.91030
  %613 = load ptr, ptr %612, align 8, !tbaa !51
  %614 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  call void @_ZN11alglib_impl9ae_v_subdEPdlPKdlld(ptr noundef %610, i64 noundef 1, ptr noundef %613, i64 noundef 1, i64 noundef %614, double noundef %609)
  %615 = icmp ugt i64 %.91030.in1131, 1
  br i1 %615, label %.lr.ph1133, label %._crit_edge1134, !llvm.loop !77

._crit_edge1134:                                  ; preds = %.lr.ph1133, %592
  %.3997.lcssa = phi double [ %.29961152, %592 ], [ %609, %.lr.ph1133 ]
  call void @_ZN11alglib_impl27sasconstraineddirectionprecEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %563, ptr noundef nonnull %566, ptr noundef %1)
  %616 = load i64, ptr %569, align 8, !tbaa !75
  %.not1061.not1136 = icmp sgt i64 %616, 0
  br i1 %.not1061.not1136, label %.lr.ph1139, label %._crit_edge1140

.lr.ph1139:                                       ; preds = %._crit_edge1134, %.lr.ph1139
  %.1010311137 = phi i64 [ %636, %.lr.ph1139 ], [ 0, %._crit_edge1134 ]
  %617 = load ptr, ptr %573, align 8, !tbaa !25
  %618 = getelementptr inbounds ptr, ptr %617, i64 %.1010311137
  %619 = load ptr, ptr %618, align 8, !tbaa !51
  %620 = load ptr, ptr %567, align 8, !tbaa !25
  %621 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  %622 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %619, i64 noundef 1, ptr noundef %620, i64 noundef 1, i64 noundef %621)
  %623 = load ptr, ptr %572, align 8, !tbaa !25
  %624 = getelementptr inbounds double, ptr %623, i64 %.1010311137
  %625 = load double, ptr %624, align 8, !tbaa !30
  %626 = load ptr, ptr %571, align 8, !tbaa !25
  %627 = getelementptr inbounds double, ptr %626, i64 %.1010311137
  %628 = load double, ptr %627, align 8, !tbaa !30
  %629 = fsub double %628, %622
  %630 = fmul double %625, %629
  %631 = load ptr, ptr %567, align 8, !tbaa !25
  %632 = load ptr, ptr %570, align 8, !tbaa !25
  %633 = getelementptr inbounds ptr, ptr %632, i64 %.1010311137
  %634 = load ptr, ptr %633, align 8, !tbaa !51
  %635 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %631, i64 noundef 1, ptr noundef %634, i64 noundef 1, i64 noundef %635, double noundef %630)
  %636 = add nuw nsw i64 %.1010311137, 1
  %637 = load i64, ptr %569, align 8, !tbaa !75
  %.not1061.not = icmp slt i64 %636, %637
  br i1 %.not1061.not, label %.lr.ph1139, label %._crit_edge1140, !llvm.loop !78

._crit_edge1140:                                  ; preds = %.lr.ph1139, %._crit_edge1134
  %.4998.lcssa = phi double [ %.3997.lcssa, %._crit_edge1134 ], [ %630, %.lr.ph1139 ]
  call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %563, ptr noundef nonnull %566, ptr noundef %1)
  %638 = load ptr, ptr %575, align 8, !tbaa !25
  %639 = load ptr, ptr %567, align 8, !tbaa !25
  %640 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %638, i64 noundef 1, ptr noundef %639, i64 noundef 1, i64 noundef %640)
  br i1 %.not1062.not1142, label %.lr.ph1146, label %._crit_edge1147

.lr.ph1146:                                       ; preds = %._crit_edge1140, %.lr.ph1146
  %.310091144 = phi double [ %649, %.lr.ph1146 ], [ 0.000000e+00, %._crit_edge1140 ]
  %.1110321143 = phi i64 [ %650, %.lr.ph1146 ], [ 0, %._crit_edge1140 ]
  %641 = load ptr, ptr %575, align 8, !tbaa !25
  %642 = getelementptr inbounds double, ptr %641, i64 %.1110321143
  %643 = load double, ptr %642, align 8, !tbaa !30
  %644 = load ptr, ptr %576, align 8, !tbaa !25
  %645 = getelementptr inbounds double, ptr %644, i64 %.1110321143
  %646 = load double, ptr %645, align 8, !tbaa !30
  %647 = fdiv double %643, %646
  %648 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %647, ptr noundef %1)
  %649 = fadd double %.310091144, %648
  %650 = add nuw nsw i64 %.1110321143, 1
  %exitcond1267.not = icmp eq i64 %650, %.01044
  br i1 %exitcond1267.not, label %._crit_edge1147, label %.lr.ph1146, !llvm.loop !79

._crit_edge1147:                                  ; preds = %.lr.ph1146, %._crit_edge1140
  %.111032.lcssa = phi i64 [ 0, %._crit_edge1140 ], [ %.01044, %.lr.ph1146 ]
  %.31009.lcssa = phi double [ 0.000000e+00, %._crit_edge1140 ], [ %649, %.lr.ph1146 ]
  %651 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.31009.lcssa, ptr noundef %1)
  %652 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %651, double noundef 0.000000e+00)
  br i1 %652, label %653, label %657

653:                                              ; preds = %._crit_edge1147
  %654 = add nsw i64 %.2970.ph, 1
  %655 = load i8, ptr %562, align 4, !tbaa !32, !range !28, !noundef !29
  %656 = trunc nuw i8 %655 to i1
  br i1 %656, label %.loopexit1098.sink.split, label %.loopexit1098

657:                                              ; preds = %._crit_edge1147
  %658 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %651, double noundef 0.000000e+00)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %658, ptr noundef nonnull @.str.281, ptr noundef %1)
  %659 = load double, ptr %577, align 8, !tbaa !80
  %660 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %659, double noundef 0.000000e+00)
  br i1 %660, label %661, label %665

661:                                              ; preds = %657
  %662 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %651, double noundef 0.000000e+00)
  br i1 %662, label %663, label %665

663:                                              ; preds = %661
  %664 = load double, ptr %577, align 8, !tbaa !80
  br label %665

665:                                              ; preds = %657, %661, %663
  %.pn = phi double [ %664, %663 ], [ 1.000000e+00, %661 ], [ 1.000000e+00, %657 ]
  %storemerge = fdiv double %.pn, %651
  store double %storemerge, ptr %578, align 8, !tbaa !81
  call void @_ZN11alglib_impl19sasexploredirectionEPNS_10sactivesetEPNS_9ae_vectorEPdPlS4_PNS_8ae_stateE(ptr noundef nonnull %563, ptr noundef nonnull %574, ptr noundef nonnull %579, ptr noundef nonnull %580, ptr noundef nonnull %581, ptr noundef %1)
  %666 = load double, ptr %579, align 8, !tbaa !82
  store double %666, ptr %582, align 8, !tbaa !83
  %667 = load i64, ptr %580, align 8, !tbaa !84
  %668 = icmp sgt i64 %667, -1
  br i1 %668, label %669, label %674

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

671:                                              ; preds = %669
  %672 = load i64, ptr %580, align 8, !tbaa !84
  %673 = load double, ptr %581, align 8, !tbaa !85
  call void @_ZN11alglib_impl22sasimmediateactivationEPNS_10sactivesetEldPNS_8ae_stateE(ptr noundef nonnull %563, i64 noundef %672, double noundef %673, ptr noundef %1)
  store i64 0, ptr %569, align 8, !tbaa !75
  br label %583

674:                                              ; preds = %669, %665
  %675 = add nsw i64 %.2970.ph, 1
  %676 = getelementptr inbounds i8, ptr %0, i64 56
  %677 = load double, ptr %676, align 8, !tbaa !44
  %678 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %677, double noundef 0.000000e+00)
  br i1 %678, label %679, label %690

679:                                              ; preds = %674
  %680 = load ptr, ptr %575, align 8, !tbaa !25
  %681 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  %682 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %680, i64 noundef 1, ptr noundef %680, i64 noundef 1, i64 noundef %681)
  %683 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %682, ptr noundef %1)
  %684 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %683, double noundef 0.000000e+00)
  br i1 %684, label %685, label %690

685:                                              ; preds = %679
  %686 = load double, ptr %579, align 8, !tbaa !82
  %687 = load double, ptr %676, align 8, !tbaa !44
  %688 = fdiv double %687, %683
  %689 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %686, double noundef %688, ptr noundef %1)
  store double %689, ptr %579, align 8, !tbaa !82
  br label %690

690:                                              ; preds = %679, %685, %674
  %.41010 = phi double [ %683, %685 ], [ %683, %679 ], [ %651, %674 ]
  %691 = getelementptr inbounds i8, ptr %0, i64 49
  %692 = load i8, ptr %691, align 1, !tbaa !86, !range !28, !noundef !29
  %693 = trunc nuw i8 %692 to i1
  br i1 %693, label %694, label %707

694:                                              ; preds = %690
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %695 = getelementptr inbounds i8, ptr %0, i64 4691
  store i8 1, ptr %695, align 1, !tbaa !87
  %696 = load i64, ptr %580, align 8, !tbaa !84
  %697 = icmp sgt i64 %696, -1
  %698 = getelementptr inbounds i8, ptr %0, i64 4693
  %699 = zext i1 %697 to i8
  store i8 %699, ptr %698, align 1, !tbaa !88
  %700 = getelementptr inbounds i8, ptr %0, i64 4608
  %701 = load ptr, ptr %700, align 8, !tbaa !25
  %702 = getelementptr inbounds i8, ptr %0, i64 144
  %703 = load ptr, ptr %702, align 8, !tbaa !25
  %704 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %561)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %701, i64 noundef 1, ptr noundef %703, i64 noundef 1, i64 noundef %704)
  br label %1444

705:                                              ; preds = %40
  %706 = getelementptr inbounds i8, ptr %0, i64 4691
  store i8 0, ptr %706, align 1, !tbaa !87
  %.pre1285 = add nsw i64 %.01044, -1
  br label %707

707:                                              ; preds = %690, %705
  %.pre-phi = phi i64 [ %561, %690 ], [ %.pre1285, %705 ]
  %.51011 = phi double [ %.41010, %690 ], [ %.01006, %705 ]
  %.5999 = phi double [ %.4998.lcssa, %690 ], [ %.0994, %705 ]
  %.5989 = phi i8 [ %.4988.ph, %690 ], [ %.0984, %705 ]
  %.3979 = phi i64 [ %.2978.ph, %690 ], [ %.0976, %705 ]
  %.3971 = phi i64 [ %675, %690 ], [ %.0968, %705 ]
  %.4967 = phi double [ %.3966.ph, %690 ], [ %.0963, %705 ]
  %708 = getelementptr inbounds i8, ptr %0, i64 5088
  %709 = getelementptr inbounds i8, ptr %0, i64 5144
  %710 = load ptr, ptr %709, align 8, !tbaa !25
  %711 = getelementptr inbounds i8, ptr %0, i64 144
  %712 = load ptr, ptr %711, align 8, !tbaa !25
  %713 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %.pre-phi)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %710, i64 noundef 1, ptr noundef %712, i64 noundef 1, i64 noundef %713)
  %714 = getelementptr inbounds i8, ptr %0, i64 5272
  %715 = load ptr, ptr %714, align 8, !tbaa !25
  %716 = getelementptr inbounds i8, ptr %0, i64 5080
  %717 = load ptr, ptr %716, align 8, !tbaa !25
  %718 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %.pre-phi)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %715, i64 noundef 1, ptr noundef %717, i64 noundef 1, i64 noundef %718)
  %719 = getelementptr inbounds i8, ptr %0, i64 5152
  %720 = getelementptr inbounds i8, ptr %0, i64 5208
  %721 = load ptr, ptr %720, align 8, !tbaa !25
  %722 = getelementptr inbounds i8, ptr %0, i64 5016
  %723 = load ptr, ptr %722, align 8, !tbaa !25
  %724 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %.pre-phi)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %721, i64 noundef 1, ptr noundef %723, i64 noundef 1, i64 noundef %724)
  %725 = getelementptr inbounds i8, ptr %0, i64 5344
  %726 = load double, ptr %725, align 8, !tbaa !62
  %727 = getelementptr inbounds i8, ptr %0, i64 5352
  store double %726, ptr %727, align 8, !tbaa !89
  %728 = getelementptr inbounds i8, ptr %0, i64 7824
  store i64 0, ptr %728, align 8, !tbaa !90
  %729 = getelementptr inbounds i8, ptr %0, i64 8440
  %730 = getelementptr inbounds i8, ptr %0, i64 4416
  %731 = getelementptr inbounds i8, ptr %0, i64 12472
  call void @_ZN11alglib_impl34smoothnessmonitorstartlinesearch1uEPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_dS3_PNS_8ae_stateE(ptr noundef nonnull %729, ptr noundef nonnull %730, ptr noundef nonnull %731, ptr noundef nonnull %708, double noundef %726, ptr noundef nonnull %719, ptr noundef %1)
  %732 = getelementptr inbounds i8, ptr %0, i64 5368
  %733 = getelementptr inbounds i8, ptr %0, i64 7832
  %734 = getelementptr inbounds i8, ptr %0, i64 7840
  %735 = load double, ptr %734, align 8, !tbaa !82
  %736 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !30
  %737 = getelementptr inbounds i8, ptr %0, i64 7816
  %738 = getelementptr inbounds i8, ptr %0, i64 7856
  %739 = getelementptr inbounds i8, ptr %0, i64 7920
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_S1_S2_ddPlS3_S1_PNS_11linminstateES3_PNS_8ae_stateE(i64 noundef %.01044, ptr noundef nonnull %708, ptr noundef nonnull %727, ptr noundef nonnull %719, ptr noundef nonnull %732, ptr noundef nonnull %733, double noundef %735, double noundef %736, ptr noundef nonnull %3, ptr noundef nonnull %737, ptr noundef nonnull %738, ptr noundef nonnull %739, ptr noundef nonnull %728, ptr noundef %1)
  br label %740

740:                                              ; preds = %1015, %707
  %.61012 = phi double [ %.51011, %707 ], [ %.01006, %1015 ]
  %.61000 = phi double [ %.5999, %707 ], [ %.0994, %1015 ]
  %.6990 = phi i8 [ %.5989, %707 ], [ %.0984, %1015 ]
  %.4980 = phi i64 [ %.3979, %707 ], [ %.0976, %1015 ]
  %.4972 = phi i64 [ %.3971, %707 ], [ %.0968, %1015 ]
  %.5 = phi double [ %.4967, %707 ], [ %.0963, %1015 ]
  %741 = getelementptr inbounds i8, ptr %0, i64 7824
  %742 = load i64, ptr %741, align 8, !tbaa !90
  %743 = icmp eq i64 %742, 0
  br i1 %743, label %1056, label %744

744:                                              ; preds = %740
  %745 = getelementptr inbounds i8, ptr %0, i64 72
  %746 = getelementptr inbounds i8, ptr %0, i64 5088
  call void @_ZN11alglib_impl13sascorrectionEPNS_10sactivesetEPNS_9ae_vectorEPdPNS_8ae_stateE(ptr noundef nonnull %745, ptr noundef nonnull %746, ptr noundef nonnull %4, ptr noundef %1)
  %.not1063.not1157 = icmp sgt i64 %.01044, 0
  br i1 %.not1063.not1157, label %.lr.ph1160, label %._crit_edge1161

.lr.ph1160:                                       ; preds = %744
  %747 = getelementptr inbounds i8, ptr %0, i64 5144
  %748 = getelementptr inbounds i8, ptr %0, i64 4608
  %749 = add nsw i64 %.01044, -1
  %xtraiter = and i64 %.01044, 3
  %750 = icmp ult i64 %749, 3
  br i1 %750, label %._crit_edge1161.loopexit.unr-lcssa, label %.lr.ph1160.new

.lr.ph1160.new:                                   ; preds = %.lr.ph1160
  %unroll_iter = and i64 %.01044, 9223372036854775804
  br label %751

751:                                              ; preds = %751, %.lr.ph1160.new
  %.1210331158 = phi i64 [ 0, %.lr.ph1160.new ], [ %775, %751 ]
  %niter = phi i64 [ 0, %.lr.ph1160.new ], [ %niter.next.3, %751 ]
  %752 = load ptr, ptr %747, align 8, !tbaa !25
  %753 = getelementptr inbounds double, ptr %752, i64 %.1210331158
  %754 = load double, ptr %753, align 8, !tbaa !30
  %755 = load ptr, ptr %748, align 8, !tbaa !25
  %756 = getelementptr inbounds double, ptr %755, i64 %.1210331158
  store double %754, ptr %756, align 8, !tbaa !30
  %757 = or disjoint i64 %.1210331158, 1
  %758 = load ptr, ptr %747, align 8, !tbaa !25
  %759 = getelementptr inbounds double, ptr %758, i64 %757
  %760 = load double, ptr %759, align 8, !tbaa !30
  %761 = load ptr, ptr %748, align 8, !tbaa !25
  %762 = getelementptr inbounds double, ptr %761, i64 %757
  store double %760, ptr %762, align 8, !tbaa !30
  %763 = or disjoint i64 %.1210331158, 2
  %764 = load ptr, ptr %747, align 8, !tbaa !25
  %765 = getelementptr inbounds double, ptr %764, i64 %763
  %766 = load double, ptr %765, align 8, !tbaa !30
  %767 = load ptr, ptr %748, align 8, !tbaa !25
  %768 = getelementptr inbounds double, ptr %767, i64 %763
  store double %766, ptr %768, align 8, !tbaa !30
  %769 = or disjoint i64 %.1210331158, 3
  %770 = load ptr, ptr %747, align 8, !tbaa !25
  %771 = getelementptr inbounds double, ptr %770, i64 %769
  %772 = load double, ptr %771, align 8, !tbaa !30
  %773 = load ptr, ptr %748, align 8, !tbaa !25
  %774 = getelementptr inbounds double, ptr %773, i64 %769
  store double %772, ptr %774, align 8, !tbaa !30
  %775 = add nuw nsw i64 %.1210331158, 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_edge1161.loopexit.unr-lcssa, label %751, !llvm.loop !91

._crit_edge1161.loopexit.unr-lcssa:               ; preds = %751, %.lr.ph1160
  %.1210331158.unr = phi i64 [ 0, %.lr.ph1160 ], [ %775, %751 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1161, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge1161.loopexit.unr-lcssa, %.epil.preheader
  %.1210331158.epil = phi i64 [ %781, %.epil.preheader ], [ %.1210331158.unr, %._crit_edge1161.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge1161.loopexit.unr-lcssa ]
  %776 = load ptr, ptr %747, align 8, !tbaa !25
  %777 = getelementptr inbounds double, ptr %776, i64 %.1210331158.epil
  %778 = load double, ptr %777, align 8, !tbaa !30
  %779 = load ptr, ptr %748, align 8, !tbaa !25
  %780 = getelementptr inbounds double, ptr %779, i64 %.1210331158.epil
  store double %778, ptr %780, align 8, !tbaa !30
  %781 = add nuw nsw i64 %.1210331158.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_edge1161, label %.epil.preheader, !llvm.loop !92

._crit_edge1161:                                  ; preds = %._crit_edge1161.loopexit.unr-lcssa, %.epil.preheader, %744
  %.121033.lcssa = phi i64 [ 0, %744 ], [ %.01044, %.epil.preheader ], [ %.01044, %._crit_edge1161.loopexit.unr-lcssa ]
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %782 = getelementptr inbounds i8, ptr %0, i64 64
  %783 = load double, ptr %782, align 8, !tbaa !49
  %784 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %783, double noundef 0.000000e+00)
  br i1 %784, label %792, label %785

785:                                              ; preds = %._crit_edge1161
  %786 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 1, ptr %786, align 1, !tbaa !55
  br label %1444

787:                                              ; preds = %40
  %788 = getelementptr inbounds i8, ptr %0, i64 4689
  store i8 0, ptr %788, align 1, !tbaa !55
  %789 = getelementptr inbounds i8, ptr %0, i64 5824
  %790 = load i64, ptr %789, align 8, !tbaa !63
  %791 = add nsw i64 %790, 1
  store i64 %791, ptr %789, align 8, !tbaa !63
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 4616
  %.pre = load double, ptr %.phi.trans.insert, align 8, !tbaa !56
  br label %1015

792:                                              ; preds = %._crit_edge1161
  %793 = getelementptr inbounds i8, ptr %0, i64 4688
  store i8 1, ptr %793, align 8, !tbaa !61
  br label %1444

794:                                              ; preds = %40
  %795 = getelementptr inbounds i8, ptr %0, i64 4616
  %796 = load double, ptr %795, align 8, !tbaa !56
  %797 = getelementptr inbounds i8, ptr %0, i64 7600
  store double %796, ptr %797, align 8, !tbaa !66
  br label %798

798:                                              ; preds = %999, %794
  %.131034 = phi i64 [ 0, %794 ], [ %1009, %999 ]
  %.not1057 = icmp slt i64 %.131034, %.01044
  br i1 %.not1057, label %799, label %1010

799:                                              ; preds = %798
  %800 = getelementptr inbounds i8, ptr %0, i64 4608
  %801 = load ptr, ptr %800, align 8, !tbaa !25
  %802 = getelementptr inbounds double, ptr %801, i64 %.131034
  %803 = load double, ptr %802, align 8, !tbaa !30
  %804 = getelementptr inbounds i8, ptr %0, i64 5608
  %805 = load ptr, ptr %804, align 8, !tbaa !25
  %806 = getelementptr inbounds i8, ptr %805, i64 %.131034
  %807 = load i8, ptr %806, align 1, !tbaa !27, !range !28, !noundef !29
  %808 = trunc nuw i8 %807 to i1
  br i1 %808, label %809, label %824

809:                                              ; preds = %799
  %810 = getelementptr inbounds i8, ptr %0, i64 64
  %811 = load double, ptr %810, align 8, !tbaa !49
  %812 = getelementptr inbounds i8, ptr %0, i64 4472
  %813 = load ptr, ptr %812, align 8, !tbaa !25
  %814 = getelementptr inbounds double, ptr %813, i64 %.131034
  %815 = load double, ptr %814, align 8, !tbaa !30
  %816 = fneg double %811
  %817 = tail call double @llvm.fmuladd.f64(double %816, double %815, double %803)
  %818 = getelementptr inbounds i8, ptr %0, i64 5736
  %819 = load ptr, ptr %818, align 8, !tbaa !25
  %820 = getelementptr inbounds double, ptr %819, i64 %.131034
  %821 = load double, ptr %820, align 8, !tbaa !30
  %822 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %817, double noundef %821)
  %823 = zext i1 %822 to i8
  br label %824

824:                                              ; preds = %809, %799
  %.7991 = phi i8 [ %823, %809 ], [ 0, %799 ]
  %825 = getelementptr inbounds i8, ptr %0, i64 5672
  %826 = load ptr, ptr %825, align 8, !tbaa !25
  %827 = getelementptr inbounds i8, ptr %826, i64 %.131034
  %828 = load i8, ptr %827, align 1, !tbaa !27, !range !28, !noundef !29
  %829 = trunc nuw i8 %828 to i1
  br i1 %829, label %830, label %846

830:                                              ; preds = %824
  %831 = trunc nuw i8 %.7991 to i1
  br i1 %831, label %.thread1078, label %832

832:                                              ; preds = %830
  %833 = getelementptr inbounds i8, ptr %0, i64 64
  %834 = load double, ptr %833, align 8, !tbaa !49
  %835 = getelementptr inbounds i8, ptr %0, i64 4472
  %836 = load ptr, ptr %835, align 8, !tbaa !25
  %837 = getelementptr inbounds double, ptr %836, i64 %.131034
  %838 = load double, ptr %837, align 8, !tbaa !30
  %839 = tail call double @llvm.fmuladd.f64(double %834, double %838, double %803)
  %840 = getelementptr inbounds i8, ptr %0, i64 5800
  %841 = load ptr, ptr %840, align 8, !tbaa !25
  %842 = getelementptr inbounds double, ptr %841, i64 %.131034
  %843 = load double, ptr %842, align 8, !tbaa !30
  %844 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %839, double noundef %843)
  %845 = zext i1 %844 to i8
  br label %846

846:                                              ; preds = %832, %824
  %.8992 = phi i8 [ %.7991, %824 ], [ %845, %832 ]
  %847 = trunc nuw i8 %.8992 to i1
  br i1 %847, label %.thread1078, label %848

848:                                              ; preds = %846
  %849 = getelementptr inbounds i8, ptr %0, i64 64
  %850 = load double, ptr %849, align 8, !tbaa !49
  %851 = getelementptr inbounds i8, ptr %0, i64 4472
  %852 = load ptr, ptr %851, align 8, !tbaa !25
  %853 = getelementptr inbounds double, ptr %852, i64 %.131034
  %854 = load double, ptr %853, align 8, !tbaa !30
  %855 = fneg double %850
  %856 = tail call double @llvm.fmuladd.f64(double %855, double %854, double %803)
  %857 = load ptr, ptr %800, align 8, !tbaa !25
  %858 = getelementptr inbounds double, ptr %857, i64 %.131034
  store double %856, ptr %858, align 8, !tbaa !30
  br label %1444

859:                                              ; preds = %40
  %860 = getelementptr inbounds i8, ptr %0, i64 4616
  %861 = load double, ptr %860, align 8, !tbaa !56
  %862 = getelementptr inbounds i8, ptr %0, i64 7608
  store double %861, ptr %862, align 8, !tbaa !67
  %863 = getelementptr inbounds i8, ptr %0, i64 64
  %864 = load double, ptr %863, align 8, !tbaa !49
  %865 = getelementptr inbounds i8, ptr %0, i64 4472
  %866 = load ptr, ptr %865, align 8, !tbaa !25
  %867 = getelementptr inbounds double, ptr %866, i64 %.01021
  %868 = load double, ptr %867, align 8, !tbaa !30
  %869 = fmul double %864, -5.000000e-01
  %870 = tail call double @llvm.fmuladd.f64(double %869, double %868, double %.01006)
  %871 = getelementptr inbounds i8, ptr %0, i64 4608
  %872 = load ptr, ptr %871, align 8, !tbaa !25
  %873 = getelementptr inbounds double, ptr %872, i64 %.01021
  store double %870, ptr %873, align 8, !tbaa !30
  br label %1444

874:                                              ; preds = %40
  %875 = getelementptr inbounds i8, ptr %0, i64 4616
  %876 = load double, ptr %875, align 8, !tbaa !56
  %877 = getelementptr inbounds i8, ptr %0, i64 7616
  store double %876, ptr %877, align 8, !tbaa !68
  %878 = getelementptr inbounds i8, ptr %0, i64 64
  %879 = load double, ptr %878, align 8, !tbaa !49
  %880 = fmul double %879, 5.000000e-01
  %881 = getelementptr inbounds i8, ptr %0, i64 4472
  %882 = load ptr, ptr %881, align 8, !tbaa !25
  %883 = getelementptr inbounds double, ptr %882, i64 %.01021
  %884 = load double, ptr %883, align 8, !tbaa !30
  %885 = tail call double @llvm.fmuladd.f64(double %880, double %884, double %.01006)
  %886 = getelementptr inbounds i8, ptr %0, i64 4608
  %887 = load ptr, ptr %886, align 8, !tbaa !25
  %888 = getelementptr inbounds double, ptr %887, i64 %.01021
  store double %885, ptr %888, align 8, !tbaa !30
  br label %1444

889:                                              ; preds = %40
  %890 = getelementptr inbounds i8, ptr %0, i64 4616
  %891 = load double, ptr %890, align 8, !tbaa !56
  %892 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %891, ptr %892, align 8, !tbaa !69
  %893 = getelementptr inbounds i8, ptr %0, i64 64
  %894 = load double, ptr %893, align 8, !tbaa !49
  %895 = getelementptr inbounds i8, ptr %0, i64 4472
  %896 = load ptr, ptr %895, align 8, !tbaa !25
  %897 = getelementptr inbounds double, ptr %896, i64 %.01021
  %898 = load double, ptr %897, align 8, !tbaa !30
  %899 = tail call double @llvm.fmuladd.f64(double %894, double %898, double %.01006)
  %900 = getelementptr inbounds i8, ptr %0, i64 4608
  %901 = load ptr, ptr %900, align 8, !tbaa !25
  %902 = getelementptr inbounds double, ptr %901, i64 %.01021
  store double %899, ptr %902, align 8, !tbaa !30
  br label %1444

903:                                              ; preds = %40
  %904 = getelementptr inbounds i8, ptr %0, i64 4616
  %905 = load double, ptr %904, align 8, !tbaa !56
  %906 = getelementptr inbounds i8, ptr %0, i64 7632
  store double %905, ptr %906, align 8, !tbaa !70
  %907 = getelementptr inbounds i8, ptr %0, i64 7624
  %908 = load double, ptr %907, align 8, !tbaa !69
  %909 = getelementptr inbounds i8, ptr %0, i64 7616
  %910 = load double, ptr %909, align 8, !tbaa !68
  %911 = fsub double %908, %910
  %912 = getelementptr inbounds i8, ptr %0, i64 7608
  %913 = load double, ptr %912, align 8, !tbaa !67
  %914 = fsub double %905, %913
  %915 = fneg double %914
  %916 = tail call double @llvm.fmuladd.f64(double %911, double 8.000000e+00, double %915)
  %917 = getelementptr inbounds i8, ptr %0, i64 64
  %918 = load double, ptr %917, align 8, !tbaa !49
  %919 = fmul double %918, 6.000000e+00
  %920 = getelementptr inbounds i8, ptr %0, i64 4472
  %921 = load ptr, ptr %920, align 8, !tbaa !25
  %922 = getelementptr inbounds double, ptr %921, i64 %.01021
  %923 = load double, ptr %922, align 8, !tbaa !30
  %924 = fmul double %919, %923
  %925 = fdiv double %916, %924
  br label %999

.thread1078:                                      ; preds = %830, %846
  %.89921080 = phi i8 [ %.8992, %846 ], [ 1, %830 ]
  %926 = getelementptr inbounds i8, ptr %0, i64 64
  %927 = load double, ptr %926, align 8, !tbaa !49
  %928 = getelementptr inbounds i8, ptr %0, i64 4472
  %929 = load ptr, ptr %928, align 8, !tbaa !25
  %930 = getelementptr inbounds double, ptr %929, i64 %.131034
  %931 = load double, ptr %930, align 8, !tbaa !30
  %932 = fneg double %927
  %933 = tail call double @llvm.fmuladd.f64(double %932, double %931, double %803)
  %934 = getelementptr inbounds i8, ptr %0, i64 7640
  store double %933, ptr %934, align 8, !tbaa !71
  %935 = load double, ptr %930, align 8, !tbaa !30
  %936 = tail call double @llvm.fmuladd.f64(double %927, double %935, double %803)
  %937 = getelementptr inbounds i8, ptr %0, i64 7648
  store double %936, ptr %937, align 8, !tbaa !72
  %938 = load ptr, ptr %804, align 8, !tbaa !25
  %939 = getelementptr inbounds i8, ptr %938, i64 %.131034
  %940 = load i8, ptr %939, align 1, !tbaa !27, !range !28, !noundef !29
  %941 = trunc nuw i8 %940 to i1
  br i1 %941, label %942, label %952

942:                                              ; preds = %.thread1078
  %943 = getelementptr inbounds i8, ptr %0, i64 5736
  %944 = load ptr, ptr %943, align 8, !tbaa !25
  %945 = getelementptr inbounds double, ptr %944, i64 %.131034
  %946 = load double, ptr %945, align 8, !tbaa !30
  %947 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %933, double noundef %946)
  br i1 %947, label %948, label %952

948:                                              ; preds = %942
  %949 = load ptr, ptr %943, align 8, !tbaa !25
  %950 = getelementptr inbounds double, ptr %949, i64 %.131034
  %951 = load double, ptr %950, align 8, !tbaa !30
  store double %951, ptr %934, align 8, !tbaa !71
  br label %952

952:                                              ; preds = %948, %942, %.thread1078
  %953 = load ptr, ptr %825, align 8, !tbaa !25
  %954 = getelementptr inbounds i8, ptr %953, i64 %.131034
  %955 = load i8, ptr %954, align 1, !tbaa !27, !range !28, !noundef !29
  %956 = trunc nuw i8 %955 to i1
  br i1 %956, label %957, label %968

957:                                              ; preds = %952
  %958 = load double, ptr %937, align 8, !tbaa !72
  %959 = getelementptr inbounds i8, ptr %0, i64 5800
  %960 = load ptr, ptr %959, align 8, !tbaa !25
  %961 = getelementptr inbounds double, ptr %960, i64 %.131034
  %962 = load double, ptr %961, align 8, !tbaa !30
  %963 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %958, double noundef %962)
  br i1 %963, label %964, label %968

964:                                              ; preds = %957
  %965 = load ptr, ptr %959, align 8, !tbaa !25
  %966 = getelementptr inbounds double, ptr %965, i64 %.131034
  %967 = load double, ptr %966, align 8, !tbaa !30
  store double %967, ptr %937, align 8, !tbaa !72
  br label %968

968:                                              ; preds = %964, %957, %952
  %969 = load double, ptr %934, align 8, !tbaa !71
  %970 = load ptr, ptr %800, align 8, !tbaa !25
  %971 = getelementptr inbounds double, ptr %970, i64 %.131034
  store double %969, ptr %971, align 8, !tbaa !30
  br label %1444

972:                                              ; preds = %40
  %973 = getelementptr inbounds i8, ptr %0, i64 4616
  %974 = load double, ptr %973, align 8, !tbaa !56
  %975 = getelementptr inbounds i8, ptr %0, i64 7616
  store double %974, ptr %975, align 8, !tbaa !68
  %976 = getelementptr inbounds i8, ptr %0, i64 7648
  %977 = load double, ptr %976, align 8, !tbaa !72
  %978 = getelementptr inbounds i8, ptr %0, i64 4608
  %979 = load ptr, ptr %978, align 8, !tbaa !25
  %980 = getelementptr inbounds double, ptr %979, i64 %.01021
  store double %977, ptr %980, align 8, !tbaa !30
  br label %1444

981:                                              ; preds = %40
  %982 = getelementptr inbounds i8, ptr %0, i64 4616
  %983 = load double, ptr %982, align 8, !tbaa !56
  %984 = getelementptr inbounds i8, ptr %0, i64 7624
  store double %983, ptr %984, align 8, !tbaa !69
  %985 = getelementptr inbounds i8, ptr %0, i64 7640
  %986 = load double, ptr %985, align 8, !tbaa !71
  %987 = getelementptr inbounds i8, ptr %0, i64 7648
  %988 = load double, ptr %987, align 8, !tbaa !72
  %989 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %986, double noundef %988)
  br i1 %989, label %990, label %999

990:                                              ; preds = %981
  %991 = load double, ptr %984, align 8, !tbaa !69
  %992 = getelementptr inbounds i8, ptr %0, i64 7616
  %993 = load double, ptr %992, align 8, !tbaa !68
  %994 = fsub double %991, %993
  %995 = load double, ptr %987, align 8, !tbaa !72
  %996 = load double, ptr %985, align 8, !tbaa !71
  %997 = fsub double %995, %996
  %998 = fdiv double %994, %997
  br label %999

999:                                              ; preds = %990, %981, %903
  %.sink1313.sink = phi double [ %925, %903 ], [ %998, %990 ], [ 0.000000e+00, %981 ]
  %.sink1320 = phi i64 [ 4, %903 ], [ 2, %990 ], [ 2, %981 ]
  %1000 = getelementptr inbounds i8, ptr %0, i64 4680
  %1001 = load ptr, ptr %1000, align 8, !tbaa !25
  %1002 = getelementptr inbounds double, ptr %1001, i64 %.01021
  store double %.sink1313.sink, ptr %1002, align 8, !tbaa !30
  %1003 = getelementptr inbounds i8, ptr %0, i64 5824
  %1004 = load i64, ptr %1003, align 8, !tbaa !63
  %1005 = add nsw i64 %1004, %.sink1320
  store i64 %1005, ptr %1003, align 8, !tbaa !63
  %1006 = getelementptr inbounds i8, ptr %0, i64 4608
  %1007 = load ptr, ptr %1006, align 8, !tbaa !25
  %1008 = getelementptr inbounds double, ptr %1007, i64 %.01021
  store double %.01006, ptr %1008, align 8, !tbaa !30
  %1009 = add nsw i64 %.01021, 1
  br label %798

1010:                                             ; preds = %798
  %1011 = getelementptr inbounds i8, ptr %0, i64 7600
  %1012 = load double, ptr %1011, align 8, !tbaa !66
  %1013 = getelementptr inbounds i8, ptr %0, i64 4616
  store double %1012, ptr %1013, align 8, !tbaa !56
  %1014 = getelementptr inbounds i8, ptr %0, i64 4688
  store i8 0, ptr %1014, align 8, !tbaa !61
  br label %1015

1015:                                             ; preds = %1010, %787
  %1016 = phi double [ %1012, %1010 ], [ %.pre, %787 ]
  %1017 = getelementptr inbounds i8, ptr %0, i64 8440
  %1018 = getelementptr inbounds i8, ptr %0, i64 4416
  %1019 = getelementptr inbounds i8, ptr %0, i64 12472
  %1020 = getelementptr inbounds i8, ptr %0, i64 5368
  %1021 = getelementptr inbounds i8, ptr %0, i64 7832
  %1022 = load double, ptr %1021, align 8, !tbaa !81
  %1023 = getelementptr inbounds i8, ptr %0, i64 4552
  %1024 = getelementptr inbounds i8, ptr %0, i64 4616
  %1025 = getelementptr inbounds i8, ptr %0, i64 4624
  tail call void @_ZN11alglib_impl31smoothnessmonitorenqueuepoint1uEPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_dS3_dS3_PNS_8ae_stateE(ptr noundef nonnull %1017, ptr noundef nonnull %1018, ptr noundef nonnull %1019, ptr noundef nonnull %1020, double noundef %1022, ptr noundef nonnull %1023, double noundef %1016, ptr noundef nonnull %1025, ptr noundef %1)
  %1026 = load double, ptr %1024, align 8, !tbaa !56
  %1027 = load double, ptr @_ZN11alglib_implL22minbleic_penaltyfactorE, align 8, !tbaa !30
  %1028 = getelementptr inbounds i8, ptr %0, i64 5544
  %1029 = load double, ptr %1028, align 8, !tbaa !74
  %1030 = fmul double %1027, %1029
  %1031 = tail call double @llvm.fmuladd.f64(double %1030, double %41, double %1026)
  %1032 = getelementptr inbounds i8, ptr %0, i64 5352
  store double %1031, ptr %1032, align 8, !tbaa !89
  %1033 = getelementptr inbounds i8, ptr %0, i64 5216
  %1034 = getelementptr inbounds i8, ptr %0, i64 5272
  %1035 = load ptr, ptr %1034, align 8, !tbaa !25
  %1036 = getelementptr inbounds i8, ptr %0, i64 4680
  %1037 = load ptr, ptr %1036, align 8, !tbaa !25
  %1038 = add nsw i64 %.01044, -1
  %1039 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1038)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1035, i64 noundef 1, ptr noundef %1037, i64 noundef 1, i64 noundef %1039)
  %1040 = getelementptr inbounds i8, ptr %0, i64 5152
  %1041 = getelementptr inbounds i8, ptr %0, i64 5208
  %1042 = load ptr, ptr %1041, align 8, !tbaa !25
  %1043 = load ptr, ptr %1036, align 8, !tbaa !25
  %1044 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1038)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1042, i64 noundef 1, ptr noundef %1043, i64 noundef 1, i64 noundef %1044)
  %1045 = getelementptr inbounds i8, ptr %0, i64 72
  tail call void @_ZN11alglib_impl23sasconstraineddirectionEPNS_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %1045, ptr noundef nonnull %1033, ptr noundef %1)
  %1046 = getelementptr inbounds i8, ptr %0, i64 8112
  %1047 = load double, ptr %1046, align 8, !tbaa !93
  tail call void @_ZN11alglib_impl12trimfunctionEPdPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %1032, ptr noundef nonnull %1033, i64 noundef %.01044, double noundef %1047, ptr noundef %1)
  %1048 = getelementptr inbounds i8, ptr %0, i64 5088
  %1049 = getelementptr inbounds i8, ptr %0, i64 7840
  %1050 = load double, ptr %1049, align 8, !tbaa !82
  %1051 = load double, ptr @_ZN11alglib_implL13minbleic_gtolE, align 8, !tbaa !30
  %1052 = getelementptr inbounds i8, ptr %0, i64 7816
  %1053 = getelementptr inbounds i8, ptr %0, i64 7856
  %1054 = getelementptr inbounds i8, ptr %0, i64 7920
  %1055 = getelementptr inbounds i8, ptr %0, i64 7824
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_S1_S2_ddPlS3_S1_PNS_11linminstateES3_PNS_8ae_stateE(i64 noundef %.01044, ptr noundef nonnull %1048, ptr noundef nonnull %1032, ptr noundef nonnull %1040, ptr noundef nonnull %1020, ptr noundef nonnull %1021, double noundef %1050, double noundef %1051, ptr noundef nonnull %3, ptr noundef nonnull %1052, ptr noundef nonnull %1053, ptr noundef nonnull %1054, ptr noundef nonnull %1055, ptr noundef %1)
  br label %740

1056:                                             ; preds = %740
  %1057 = getelementptr inbounds i8, ptr %0, i64 8280
  %1058 = load ptr, ptr %1057, align 8, !tbaa !25
  %1059 = getelementptr inbounds i8, ptr %0, i64 8416
  %1060 = load i64, ptr %1059, align 8, !tbaa !75
  %1061 = getelementptr inbounds ptr, ptr %1058, i64 %1060
  %1062 = load ptr, ptr %1061, align 8, !tbaa !51
  %1063 = getelementptr inbounds i8, ptr %0, i64 72
  %1064 = getelementptr inbounds i8, ptr %0, i64 144
  %1065 = load ptr, ptr %1064, align 8, !tbaa !25
  %1066 = add nsw i64 %.01044, -1
  %1067 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %1062, i64 noundef 1, ptr noundef %1065, i64 noundef 1, i64 noundef %1067)
  %1068 = getelementptr inbounds i8, ptr %0, i64 8200
  %1069 = load ptr, ptr %1068, align 8, !tbaa !25
  %1070 = load i64, ptr %1059, align 8, !tbaa !75
  %1071 = getelementptr inbounds ptr, ptr %1069, i64 %1070
  %1072 = load ptr, ptr %1071, align 8, !tbaa !51
  %1073 = getelementptr inbounds i8, ptr %0, i64 5080
  %1074 = load ptr, ptr %1073, align 8, !tbaa !25
  %1075 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl12ae_v_movenegEPdlPKdll(ptr noundef %1072, i64 noundef 1, ptr noundef %1074, i64 noundef 1, i64 noundef %1075)
  %1076 = load ptr, ptr %1057, align 8, !tbaa !25
  %1077 = load i64, ptr %1059, align 8, !tbaa !75
  %1078 = getelementptr inbounds ptr, ptr %1076, i64 %1077
  %1079 = load ptr, ptr %1078, align 8, !tbaa !51
  %1080 = getelementptr inbounds i8, ptr %0, i64 5088
  %1081 = getelementptr inbounds i8, ptr %0, i64 5144
  %1082 = load ptr, ptr %1081, align 8, !tbaa !25
  %1083 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1079, i64 noundef 1, ptr noundef %1082, i64 noundef 1, i64 noundef %1083)
  %1084 = load ptr, ptr %1068, align 8, !tbaa !25
  %1085 = load i64, ptr %1059, align 8, !tbaa !75
  %1086 = getelementptr inbounds ptr, ptr %1084, i64 %1085
  %1087 = load ptr, ptr %1086, align 8, !tbaa !51
  %1088 = getelementptr inbounds i8, ptr %0, i64 5272
  %1089 = load ptr, ptr %1088, align 8, !tbaa !25
  %1090 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl8ae_v_addEPdlPKdll(ptr noundef %1087, i64 noundef 1, ptr noundef %1089, i64 noundef 1, i64 noundef %1090)
  %1091 = getelementptr inbounds i8, ptr %0, i64 8440
  call void @_ZN11alglib_impl35smoothnessmonitorfinalizelinesearchEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef nonnull %1091, ptr noundef %1)
  %1092 = getelementptr inbounds i8, ptr %0, i64 5352
  %1093 = load double, ptr %1092, align 8, !tbaa !89
  %.not1064.not1163 = icmp sgt i64 %.01044, 0
  br i1 %.not1064.not1163, label %.lr.ph1167, label %._crit_edge1168

.lr.ph1167:                                       ; preds = %1056
  %1094 = getelementptr inbounds i8, ptr %0, i64 5208
  %1095 = load ptr, ptr %1094, align 8, !tbaa !25
  %1096 = add nsw i64 %.01044, -1
  %xtraiter1367 = and i64 %.01044, 3
  %1097 = icmp ult i64 %1096, 3
  br i1 %1097, label %._crit_edge1168.loopexit.unr-lcssa, label %.lr.ph1167.new

.lr.ph1167.new:                                   ; preds = %.lr.ph1167
  %unroll_iter1371 = and i64 %.01044, 9223372036854775804
  br label %1098

1098:                                             ; preds = %1098, %.lr.ph1167.new
  %.710131165 = phi double [ %1093, %.lr.ph1167.new ], [ %1113, %1098 ]
  %.1410351164 = phi i64 [ 0, %.lr.ph1167.new ], [ %1114, %1098 ]
  %niter1372 = phi i64 [ 0, %.lr.ph1167.new ], [ %niter1372.next.3, %1098 ]
  %1099 = getelementptr inbounds double, ptr %1095, i64 %.1410351164
  %1100 = load double, ptr %1099, align 8, !tbaa !30
  %1101 = call double @llvm.fmuladd.f64(double %.710131165, double 1.000000e-01, double %1100)
  %1102 = or disjoint i64 %.1410351164, 1
  %1103 = getelementptr inbounds double, ptr %1095, i64 %1102
  %1104 = load double, ptr %1103, align 8, !tbaa !30
  %1105 = call double @llvm.fmuladd.f64(double %1101, double 1.000000e-01, double %1104)
  %1106 = or disjoint i64 %.1410351164, 2
  %1107 = getelementptr inbounds double, ptr %1095, i64 %1106
  %1108 = load double, ptr %1107, align 8, !tbaa !30
  %1109 = call double @llvm.fmuladd.f64(double %1105, double 1.000000e-01, double %1108)
  %1110 = or disjoint i64 %.1410351164, 3
  %1111 = getelementptr inbounds double, ptr %1095, i64 %1110
  %1112 = load double, ptr %1111, align 8, !tbaa !30
  %1113 = call double @llvm.fmuladd.f64(double %1109, double 1.000000e-01, double %1112)
  %1114 = add nuw nsw i64 %.1410351164, 4
  %niter1372.next.3 = add i64 %niter1372, 4
  %niter1372.ncmp.3 = icmp eq i64 %niter1372.next.3, %unroll_iter1371
  br i1 %niter1372.ncmp.3, label %._crit_edge1168.loopexit.unr-lcssa, label %1098, !llvm.loop !94

._crit_edge1168.loopexit.unr-lcssa:               ; preds = %1098, %.lr.ph1167
  %.lcssa1352.ph = phi double [ poison, %.lr.ph1167 ], [ %1113, %1098 ]
  %.710131165.unr = phi double [ %1093, %.lr.ph1167 ], [ %1113, %1098 ]
  %.1410351164.unr = phi i64 [ 0, %.lr.ph1167 ], [ %1114, %1098 ]
  %lcmp.mod1369.not = icmp eq i64 %xtraiter1367, 0
  br i1 %lcmp.mod1369.not, label %._crit_edge1168, label %.epil.preheader1366

.epil.preheader1366:                              ; preds = %._crit_edge1168.loopexit.unr-lcssa, %.epil.preheader1366
  %.710131165.epil = phi double [ %1117, %.epil.preheader1366 ], [ %.710131165.unr, %._crit_edge1168.loopexit.unr-lcssa ]
  %.1410351164.epil = phi i64 [ %1118, %.epil.preheader1366 ], [ %.1410351164.unr, %._crit_edge1168.loopexit.unr-lcssa ]
  %epil.iter1368 = phi i64 [ %epil.iter1368.next, %.epil.preheader1366 ], [ 0, %._crit_edge1168.loopexit.unr-lcssa ]
  %1115 = getelementptr inbounds double, ptr %1095, i64 %.1410351164.epil
  %1116 = load double, ptr %1115, align 8, !tbaa !30
  %1117 = call double @llvm.fmuladd.f64(double %.710131165.epil, double 1.000000e-01, double %1116)
  %1118 = add nuw nsw i64 %.1410351164.epil, 1
  %epil.iter1368.next = add i64 %epil.iter1368, 1
  %epil.iter1368.cmp.not = icmp eq i64 %epil.iter1368.next, %xtraiter1367
  br i1 %epil.iter1368.cmp.not, label %._crit_edge1168, label %.epil.preheader1366, !llvm.loop !95

._crit_edge1168:                                  ; preds = %._crit_edge1168.loopexit.unr-lcssa, %.epil.preheader1366, %1056
  %.141035.lcssa = phi i64 [ 0, %1056 ], [ %.01044, %.epil.preheader1366 ], [ %.01044, %._crit_edge1168.loopexit.unr-lcssa ]
  %.71013.lcssa = phi double [ %1093, %1056 ], [ %.lcssa1352.ph, %._crit_edge1168.loopexit.unr-lcssa ], [ %1117, %.epil.preheader1366 ]
  %1119 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %.71013.lcssa, ptr noundef %1)
  br i1 %1119, label %1120, label %.loopexit1098.sink.split

1120:                                             ; preds = %._crit_edge1168
  %1121 = load i64, ptr %3, align 8
  %1122 = and i64 %1121, -5
  %or.cond.not = icmp eq i64 %1122, 1
  br i1 %or.cond.not, label %1187, label %.preheader1096

.preheader1096:                                   ; preds = %1120
  br i1 %.not1064.not1163, label %.lr.ph1174, label %._crit_edge1175

.lr.ph1174:                                       ; preds = %.preheader1096
  %1123 = getelementptr inbounds i8, ptr %0, i64 5424
  %1124 = getelementptr inbounds i8, ptr %0, i64 7840
  %1125 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1126

1126:                                             ; preds = %.lr.ph1174, %1126
  %.810141173 = phi double [ 0.000000e+00, %.lr.ph1174 ], [ %1137, %1126 ]
  %.1510361172 = phi i64 [ 0, %.lr.ph1174 ], [ %1138, %1126 ]
  %1127 = load ptr, ptr %1123, align 8, !tbaa !25
  %1128 = getelementptr inbounds double, ptr %1127, i64 %.1510361172
  %1129 = load double, ptr %1128, align 8, !tbaa !30
  %1130 = load double, ptr %1124, align 8, !tbaa !82
  %1131 = fmul double %1129, %1130
  %1132 = load ptr, ptr %1125, align 8, !tbaa !25
  %1133 = getelementptr inbounds double, ptr %1132, i64 %.1510361172
  %1134 = load double, ptr %1133, align 8, !tbaa !30
  %1135 = fdiv double %1131, %1134
  %1136 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1135, ptr noundef %1)
  %1137 = fadd double %.810141173, %1136
  %1138 = add nuw nsw i64 %.1510361172, 1
  %exitcond1270.not = icmp eq i64 %1138, %.01044
  br i1 %exitcond1270.not, label %._crit_edge1175, label %1126, !llvm.loop !96

._crit_edge1175:                                  ; preds = %1126, %.preheader1096
  %.151036.lcssa = phi i64 [ 0, %.preheader1096 ], [ %.01044, %1126 ]
  %.81014.lcssa = phi double [ 0.000000e+00, %.preheader1096 ], [ %1137, %1126 ]
  %1139 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.81014.lcssa, ptr noundef %1)
  %1140 = getelementptr inbounds i8, ptr %0, i64 7672
  %1141 = load i64, ptr %1140, align 8, !tbaa !84
  %1142 = icmp sgt i64 %1141, -1
  br i1 %1142, label %1143, label %1183

1143:                                             ; preds = %._crit_edge1175
  %1144 = load double, ptr @_ZN11alglib_implL27minbleic_maxnonmonotoniclenE, align 8, !tbaa !30
  %1145 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1139, double noundef %1144)
  br i1 %1145, label %1146, label %1183

1146:                                             ; preds = %1143
  %1147 = getelementptr inbounds i8, ptr %0, i64 8120
  %1148 = load i64, ptr %1147, align 8, !tbaa !60
  %1149 = icmp sgt i64 %1148, 0
  br i1 %1149, label %1150, label %1183

1150:                                             ; preds = %1146
  %1151 = getelementptr inbounds i8, ptr %0, i64 7840
  %1152 = load double, ptr %1151, align 8, !tbaa !82
  %1153 = getelementptr inbounds i8, ptr %0, i64 7752
  %1154 = getelementptr inbounds i8, ptr %0, i64 7808
  %1155 = load ptr, ptr %1154, align 8, !tbaa !25
  %1156 = load ptr, ptr %1064, align 8, !tbaa !25
  %1157 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1155, i64 noundef 1, ptr noundef %1156, i64 noundef 1, i64 noundef %1157)
  %1158 = load ptr, ptr %1154, align 8, !tbaa !25
  %1159 = getelementptr inbounds i8, ptr %0, i64 5424
  %1160 = load ptr, ptr %1159, align 8, !tbaa !25
  %1161 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %1158, i64 noundef 1, ptr noundef %1160, i64 noundef 1, i64 noundef %1161, double noundef %1152)
  %1162 = getelementptr inbounds i8, ptr %0, i64 4416
  %1163 = getelementptr inbounds i8, ptr %0, i64 5432
  %1164 = getelementptr inbounds i8, ptr %0, i64 5512
  %1165 = load i64, ptr %1164, align 8, !tbaa !97
  %1166 = getelementptr inbounds i8, ptr %0, i64 5520
  %1167 = load i64, ptr %1166, align 8, !tbaa !59
  %1168 = call noundef double @_ZN11alglib_implL25minbleic_feasibilityerrorEPNS_9ae_vectorES1_lPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %1153, ptr noundef nonnull %1162, i64 noundef %.01044, ptr noundef nonnull %1163, i64 noundef %1165, i64 noundef %1167, ptr noundef %1)
  %1169 = load double, ptr @_ZN11alglib_implL15minbleic_nmstolE, align 8, !tbaa !30
  %1170 = sitofp i64 %.01044 to double
  %1171 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1170, ptr noundef %1)
  %1172 = fmul double %1169, %1171
  %1173 = fmul double %1172, 5.000000e-16
  %1174 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1168, double noundef %1173)
  br i1 %1174, label %1175, label %1183

1175:                                             ; preds = %1150
  %1176 = load double, ptr %1151, align 8, !tbaa !82
  %1177 = getelementptr inbounds i8, ptr %0, i64 7832
  store double %1176, ptr %1177, align 8, !tbaa !81
  store i64 5, ptr %3, align 8, !tbaa !26
  %1178 = load ptr, ptr %1081, align 8, !tbaa !25
  %1179 = load ptr, ptr %1154, align 8, !tbaa !25
  %1180 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1178, i64 noundef 1, ptr noundef %1179, i64 noundef 1, i64 noundef %1180)
  %1181 = load i64, ptr %1147, align 8, !tbaa !60
  %1182 = add nsw i64 %1181, -1
  store i64 %1182, ptr %1147, align 8, !tbaa !60
  br label %1187

1183:                                             ; preds = %1150, %1146, %1143, %._crit_edge1175
  %.91015.ph = phi double [ %1139, %._crit_edge1175 ], [ %1139, %1143 ], [ %1139, %1146 ], [ %1152, %1150 ]
  %1184 = getelementptr inbounds i8, ptr %0, i64 4692
  %1185 = load i8, ptr %1184, align 4, !tbaa !32, !range !28, !noundef !29
  %1186 = trunc nuw i8 %1185 to i1
  br i1 %1186, label %.loopexit1098.sink.split, label %.loopexit1098

1187:                                             ; preds = %1175, %1120
  %.161037 = phi i64 [ %.151036.lcssa, %1175 ], [ %.141035.lcssa, %1120 ]
  %.101016 = phi double [ %1152, %1175 ], [ %.71013.lcssa, %1120 ]
  %.10 = phi i8 [ 1, %1175 ], [ %.6990, %1120 ]
  %1188 = getelementptr inbounds i8, ptr %0, i64 4694
  %1189 = load i8, ptr %1188, align 2, !tbaa !33, !range !28, !noundef !29
  %1190 = trunc nuw i8 %1189 to i1
  br i1 %1190, label %.loopexit1098, label %1191

1191:                                             ; preds = %1187
  %1192 = getelementptr inbounds i8, ptr %0, i64 5344
  %1193 = load double, ptr %1192, align 8, !tbaa !62
  %1194 = getelementptr inbounds i8, ptr %0, i64 5360
  store double %1193, ptr %1194, align 8, !tbaa !98
  %1195 = getelementptr inbounds i8, ptr %0, i64 5336
  %1196 = load ptr, ptr %1195, align 8, !tbaa !25
  %1197 = load ptr, ptr %1064, align 8, !tbaa !25
  %1198 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1196, i64 noundef 1, ptr noundef %1197, i64 noundef 1, i64 noundef %1198)
  %1199 = load double, ptr %1092, align 8, !tbaa !89
  store double %1199, ptr %1192, align 8, !tbaa !62
  %1200 = load ptr, ptr %1073, align 8, !tbaa !25
  %1201 = load ptr, ptr %1088, align 8, !tbaa !25
  %1202 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1200, i64 noundef 1, ptr noundef %1201, i64 noundef 1, i64 noundef %1202)
  %1203 = getelementptr inbounds i8, ptr %0, i64 5016
  %1204 = load ptr, ptr %1203, align 8, !tbaa !25
  %1205 = getelementptr inbounds i8, ptr %0, i64 5208
  %1206 = load ptr, ptr %1205, align 8, !tbaa !25
  %1207 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1204, i64 noundef 1, ptr noundef %1206, i64 noundef 1, i64 noundef %1207)
  %1208 = getelementptr inbounds i8, ptr %0, i64 7672
  %1209 = load i64, ptr %1208, align 8, !tbaa !84
  %1210 = icmp sgt i64 %1209, -1
  br i1 %1210, label %1211, label %1217

1211:                                             ; preds = %1191
  %1212 = getelementptr inbounds i8, ptr %0, i64 7832
  %1213 = load double, ptr %1212, align 8, !tbaa !81
  %1214 = getelementptr inbounds i8, ptr %0, i64 7848
  %1215 = load double, ptr %1214, align 8, !tbaa !83
  %1216 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1213, double noundef %1215)
  %.pre1282 = load i64, ptr %1208, align 8, !tbaa !84
  br label %1217

1217:                                             ; preds = %1211, %1191
  %1218 = phi i64 [ %1209, %1191 ], [ %.pre1282, %1211 ]
  %1219 = phi i1 [ false, %1191 ], [ %1216, %1211 ]
  %1220 = getelementptr inbounds i8, ptr %0, i64 7680
  %1221 = load double, ptr %1220, align 8, !tbaa !85
  %1222 = call noundef i64 @_ZN11alglib_impl9sasmovetoEPNS_10sactivesetEPNS_9ae_vectorEbldPNS_8ae_stateE(ptr noundef nonnull %1063, ptr noundef nonnull %1080, i1 noundef zeroext %1219, i64 noundef %1218, double noundef %1221, ptr noundef %1)
  %1223 = getelementptr inbounds i8, ptr %0, i64 48
  %1224 = load i8, ptr %1223, align 8, !tbaa !64, !range !28, !noundef !29
  %1225 = trunc nuw i8 %1224 to i1
  br i1 %1225, label %1226, label %._crit_edge1283

._crit_edge1283:                                  ; preds = %1217
  %.pre1284 = load i64, ptr %3, align 8, !tbaa !26
  br label %1234

1226:                                             ; preds = %1217
  %1227 = getelementptr inbounds i8, ptr %0, i64 4608
  %1228 = load ptr, ptr %1227, align 8, !tbaa !25
  %1229 = load ptr, ptr %1064, align 8, !tbaa !25
  %1230 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1066)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1228, i64 noundef 1, ptr noundef %1229, i64 noundef 1, i64 noundef %1230)
  call void @_ZN11alglib_implL27minbleic_clearrequestfieldsEPNS_13minbleicstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1231 = getelementptr inbounds i8, ptr %0, i64 4690
  store i8 1, ptr %1231, align 2, !tbaa !65
  br label %1444

1232:                                             ; preds = %40
  %1233 = getelementptr inbounds i8, ptr %0, i64 4690
  store i8 0, ptr %1233, align 2, !tbaa !65
  br label %1234

1234:                                             ; preds = %._crit_edge1283, %1232
  %1235 = phi i64 [ %.pre1284, %._crit_edge1283 ], [ %.sink1279, %1232 ]
  %.171038 = phi i64 [ %.161037, %._crit_edge1283 ], [ %.01021, %1232 ]
  %.111017 = phi double [ %.101016, %._crit_edge1283 ], [ %.01006, %1232 ]
  %.71001 = phi double [ %.61000, %._crit_edge1283 ], [ %.0994, %1232 ]
  %.11 = phi i8 [ %.10, %._crit_edge1283 ], [ %.0984, %1232 ]
  %.5981 = phi i64 [ %1222, %._crit_edge1283 ], [ %.0976, %1232 ]
  %.5973 = phi i64 [ %.4972, %._crit_edge1283 ], [ %.0968, %1232 ]
  %.6 = phi double [ %.5, %._crit_edge1283 ], [ %.0963, %1232 ]
  %1236 = getelementptr inbounds i8, ptr %0, i64 5808
  %1237 = load i64, ptr %1236, align 8, !tbaa !99
  %1238 = add nsw i64 %1237, 1
  store i64 %1238, ptr %1236, align 8, !tbaa !99
  %1239 = icmp eq i64 %1235, 1
  br i1 %1239, label %1240, label %.thread1086

1240:                                             ; preds = %1234
  %1241 = getelementptr inbounds i8, ptr %0, i64 8416
  %1242 = load i64, ptr %1241, align 8, !tbaa !75
  %1243 = icmp eq i64 %1242, %.01040
  br i1 %1243, label %.preheader1095, label %1285

.preheader1095:                                   ; preds = %1240
  %.not1066.not1178 = icmp sgt i64 %.01040, 0
  br i1 %.not1066.not1178, label %.lr.ph1180, label %.loopexit1094

.lr.ph1180:                                       ; preds = %.preheader1095
  %1244 = getelementptr inbounds i8, ptr %0, i64 8280
  %1245 = add nsw i64 %.01044, -1
  %1246 = getelementptr inbounds i8, ptr %0, i64 8200
  br label %1251

.preheader1093:                                   ; preds = %1251
  %.not10671182 = icmp slt i64 %1265, 2
  br i1 %.not10671182, label %.loopexit1094, label %.lr.ph1184

.lr.ph1184:                                       ; preds = %.preheader1093
  %1247 = getelementptr inbounds i8, ptr %0, i64 8344
  %1248 = getelementptr inbounds i8, ptr %0, i64 8408
  %1249 = add nsw i64 %1265, -1
  %xtraiter1374 = and i64 %1249, 1
  %1250 = icmp eq i64 %1265, 2
  br i1 %1250, label %.loopexit1094.loopexit.unr-lcssa, label %.lr.ph1184.new

.lr.ph1184.new:                                   ; preds = %.lr.ph1184
  %unroll_iter1377 = and i64 %1249, -2
  br label %1266

1251:                                             ; preds = %.lr.ph1180, %1251
  %.1810391179 = phi i64 [ 0, %.lr.ph1180 ], [ %1255, %1251 ]
  %1252 = load ptr, ptr %1244, align 8, !tbaa !25
  %1253 = getelementptr inbounds ptr, ptr %1252, i64 %.1810391179
  %1254 = load ptr, ptr %1253, align 8, !tbaa !51
  %1255 = add nuw nsw i64 %.1810391179, 1
  %1256 = getelementptr inbounds ptr, ptr %1252, i64 %1255
  %1257 = load ptr, ptr %1256, align 8, !tbaa !51
  %1258 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1245)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1254, i64 noundef 1, ptr noundef %1257, i64 noundef 1, i64 noundef %1258)
  %1259 = load ptr, ptr %1246, align 8, !tbaa !25
  %1260 = getelementptr inbounds ptr, ptr %1259, i64 %.1810391179
  %1261 = load ptr, ptr %1260, align 8, !tbaa !51
  %1262 = getelementptr inbounds ptr, ptr %1259, i64 %1255
  %1263 = load ptr, ptr %1262, align 8, !tbaa !51
  %1264 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1245)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1261, i64 noundef 1, ptr noundef %1263, i64 noundef 1, i64 noundef %1264)
  %1265 = load i64, ptr %1241, align 8, !tbaa !75
  %.not1066.not = icmp slt i64 %1255, %1265
  br i1 %.not1066.not, label %1251, label %.preheader1093, !llvm.loop !100

1266:                                             ; preds = %1266, %.lr.ph1184.new
  %.191183 = phi i64 [ 0, %.lr.ph1184.new ], [ %1277, %1266 ]
  %niter1378 = phi i64 [ 0, %.lr.ph1184.new ], [ %niter1378.next.1, %1266 ]
  %1267 = load ptr, ptr %1247, align 8, !tbaa !25
  %1268 = or disjoint i64 %.191183, 1
  %1269 = getelementptr inbounds double, ptr %1267, i64 %1268
  %1270 = load double, ptr %1269, align 8, !tbaa !30
  %1271 = getelementptr inbounds double, ptr %1267, i64 %.191183
  store double %1270, ptr %1271, align 8, !tbaa !30
  %1272 = load ptr, ptr %1248, align 8, !tbaa !25
  %1273 = getelementptr inbounds double, ptr %1272, i64 %1268
  %1274 = load double, ptr %1273, align 8, !tbaa !30
  %1275 = getelementptr inbounds double, ptr %1272, i64 %.191183
  store double %1274, ptr %1275, align 8, !tbaa !30
  %1276 = load ptr, ptr %1247, align 8, !tbaa !25
  %1277 = add nuw nsw i64 %.191183, 2
  %1278 = getelementptr inbounds double, ptr %1276, i64 %1277
  %1279 = load double, ptr %1278, align 8, !tbaa !30
  %1280 = getelementptr inbounds double, ptr %1276, i64 %1268
  store double %1279, ptr %1280, align 8, !tbaa !30
  %1281 = load ptr, ptr %1248, align 8, !tbaa !25
  %1282 = getelementptr inbounds double, ptr %1281, i64 %1277
  %1283 = load double, ptr %1282, align 8, !tbaa !30
  %1284 = getelementptr inbounds double, ptr %1281, i64 %1268
  store double %1283, ptr %1284, align 8, !tbaa !30
  %niter1378.next.1 = add i64 %niter1378, 2
  %niter1378.ncmp.1 = icmp eq i64 %niter1378.next.1, %unroll_iter1377
  br i1 %niter1378.ncmp.1, label %.loopexit1094.loopexit.unr-lcssa, label %1266, !llvm.loop !101

1285:                                             ; preds = %1240
  %1286 = add nsw i64 %1242, 1
  store i64 %1286, ptr %1241, align 8, !tbaa !75
  br label %.loopexit1094

.loopexit1094.loopexit.unr-lcssa:                 ; preds = %1266, %.lr.ph1184
  %.191183.unr = phi i64 [ 0, %.lr.ph1184 ], [ %1277, %1266 ]
  %lcmp.mod1376.not = icmp eq i64 %xtraiter1374, 0
  br i1 %lcmp.mod1376.not, label %.loopexit1094, label %.loopexit1094.loopexit.epilog-lcssa

.loopexit1094.loopexit.epilog-lcssa:              ; preds = %.loopexit1094.loopexit.unr-lcssa
  %1287 = load ptr, ptr %1247, align 8, !tbaa !25
  %1288 = add nuw nsw i64 %.191183.unr, 1
  %1289 = getelementptr inbounds double, ptr %1287, i64 %1288
  %1290 = load double, ptr %1289, align 8, !tbaa !30
  %1291 = getelementptr inbounds double, ptr %1287, i64 %.191183.unr
  store double %1290, ptr %1291, align 8, !tbaa !30
  %1292 = load ptr, ptr %1248, align 8, !tbaa !25
  %1293 = getelementptr inbounds double, ptr %1292, i64 %1288
  %1294 = load double, ptr %1293, align 8, !tbaa !30
  %1295 = getelementptr inbounds double, ptr %1292, i64 %.191183.unr
  store double %1294, ptr %1295, align 8, !tbaa !30
  br label %.loopexit1094

.loopexit1094:                                    ; preds = %.loopexit1094.loopexit.epilog-lcssa, %.loopexit1094.loopexit.unr-lcssa, %.preheader1095, %.preheader1093, %1285
  %1296 = phi i64 [ %1286, %1285 ], [ %1265, %.preheader1093 ], [ %.01040, %.preheader1095 ], [ %1265, %.loopexit1094.loopexit.unr-lcssa ], [ %1265, %.loopexit1094.loopexit.epilog-lcssa ]
  %.20 = phi i64 [ %.171038, %1285 ], [ 0, %.preheader1093 ], [ 0, %.preheader1095 ], [ %1249, %.loopexit1094.loopexit.unr-lcssa ], [ %1249, %.loopexit1094.loopexit.epilog-lcssa ]
  %1297 = getelementptr inbounds i8, ptr %0, i64 8200
  %1298 = load ptr, ptr %1297, align 8, !tbaa !25
  %1299 = add nsw i64 %1296, -1
  %1300 = getelementptr inbounds ptr, ptr %1298, i64 %1299
  %1301 = load ptr, ptr %1300, align 8, !tbaa !51
  %1302 = getelementptr inbounds i8, ptr %0, i64 8280
  %1303 = load ptr, ptr %1302, align 8, !tbaa !25
  %1304 = getelementptr inbounds ptr, ptr %1303, i64 %1299
  %1305 = load ptr, ptr %1304, align 8, !tbaa !51
  %1306 = add nsw i64 %.01044, -1
  %1307 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1306)
  %1308 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1301, i64 noundef 1, ptr noundef %1305, i64 noundef 1, i64 noundef %1307)
  %1309 = load ptr, ptr %1297, align 8, !tbaa !25
  %1310 = load i64, ptr %1241, align 8, !tbaa !75
  %1311 = getelementptr ptr, ptr %1309, i64 %1310
  %1312 = getelementptr i8, ptr %1311, i64 -8
  %1313 = load ptr, ptr %1312, align 8, !tbaa !51
  %1314 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1306)
  %1315 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1313, i64 noundef 1, ptr noundef %1313, i64 noundef 1, i64 noundef %1314)
  %1316 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1308, double noundef 0.000000e+00)
  br i1 %1316, label %.loopexit1098, label %1317

1317:                                             ; preds = %.loopexit1094
  %1318 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1315, double noundef 0.000000e+00)
  br i1 %1318, label %.loopexit1098, label %1319

1319:                                             ; preds = %1317
  %1320 = fdiv double 1.000000e+00, %1308
  %1321 = getelementptr inbounds i8, ptr %0, i64 8344
  %1322 = load ptr, ptr %1321, align 8, !tbaa !25
  %1323 = load i64, ptr %1241, align 8, !tbaa !75
  %1324 = getelementptr double, ptr %1322, i64 %1323
  %1325 = getelementptr i8, ptr %1324, i64 -8
  store double %1320, ptr %1325, align 8, !tbaa !30
  %1326 = icmp sle i64 %1323, %.01040
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1326, ptr noundef nonnull @.str.281, ptr noundef %1)
  %.not1068.not1186 = icmp sgt i64 %.01044, 0
  br i1 %.not1068.not1186, label %.lr.ph1191, label %._crit_edge1192

.lr.ph1191:                                       ; preds = %1319
  %1327 = getelementptr inbounds i8, ptr %0, i64 144
  %1328 = getelementptr inbounds i8, ptr %0, i64 5336
  %1329 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1330

1330:                                             ; preds = %.lr.ph1191, %1330
  %.810021189 = phi double [ 0.000000e+00, %.lr.ph1191 ], [ %1352, %1330 ]
  %.1210181188 = phi double [ 0.000000e+00, %.lr.ph1191 ], [ %1343, %1330 ]
  %.211187 = phi i64 [ 0, %.lr.ph1191 ], [ %1353, %1330 ]
  %1331 = load ptr, ptr %1327, align 8, !tbaa !25
  %1332 = getelementptr inbounds double, ptr %1331, i64 %.211187
  %1333 = load double, ptr %1332, align 8, !tbaa !30
  %1334 = load ptr, ptr %1328, align 8, !tbaa !25
  %1335 = getelementptr inbounds double, ptr %1334, i64 %.211187
  %1336 = load double, ptr %1335, align 8, !tbaa !30
  %1337 = fsub double %1333, %1336
  %1338 = load ptr, ptr %1329, align 8, !tbaa !25
  %1339 = getelementptr inbounds double, ptr %1338, i64 %.211187
  %1340 = load double, ptr %1339, align 8, !tbaa !30
  %1341 = fdiv double %1337, %1340
  %1342 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1341, ptr noundef %1)
  %1343 = fadd double %.1210181188, %1342
  %1344 = load ptr, ptr %1327, align 8, !tbaa !25
  %1345 = getelementptr inbounds double, ptr %1344, i64 %.211187
  %1346 = load double, ptr %1345, align 8, !tbaa !30
  %1347 = load ptr, ptr %1328, align 8, !tbaa !25
  %1348 = getelementptr inbounds double, ptr %1347, i64 %.211187
  %1349 = load double, ptr %1348, align 8, !tbaa !30
  %1350 = fsub double %1346, %1349
  %1351 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1350, ptr noundef %1)
  %1352 = fadd double %.810021189, %1351
  %1353 = add nuw nsw i64 %.211187, 1
  %exitcond1272.not = icmp eq i64 %1353, %.01044
  br i1 %exitcond1272.not, label %._crit_edge1192, label %1330, !llvm.loop !102

._crit_edge1192:                                  ; preds = %1330, %1319
  %.21.lcssa = phi i64 [ 0, %1319 ], [ %.01044, %1330 ]
  %.121018.lcssa = phi double [ 0.000000e+00, %1319 ], [ %1343, %1330 ]
  %.81002.lcssa = phi double [ 0.000000e+00, %1319 ], [ %1352, %1330 ]
  %1354 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.81002.lcssa, ptr noundef %1)
  %1355 = getelementptr inbounds i8, ptr %0, i64 5528
  store double %1354, ptr %1355, align 8, !tbaa !103
  %1356 = getelementptr inbounds i8, ptr %0, i64 5536
  %1357 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.121018.lcssa, ptr noundef %1)
  call void @_ZN11alglib_implL33minbleic_updateestimateofgoodstepEPddPNS_8ae_stateE(ptr noundef nonnull %1356, double noundef %1357, ptr noundef %1)
  %.pr = load i64, ptr %3, align 8, !tbaa !26
  %1358 = icmp eq i64 %.pr, 1
  br i1 %1358, label %1359, label %.thread1086

1359:                                             ; preds = %._crit_edge1192
  %1360 = getelementptr inbounds i8, ptr %0, i64 4692
  %1361 = load i8, ptr %1360, align 4, !tbaa !32, !range !28, !noundef !29
  %1362 = trunc nuw i8 %1361 to i1
  br i1 %1362, label %.preheader1092, label %.thread1086

.preheader1092:                                   ; preds = %1359
  br i1 %.not1068.not1186, label %.lr.ph1199, label %._crit_edge1200

.lr.ph1199:                                       ; preds = %.preheader1092
  %1363 = getelementptr inbounds i8, ptr %0, i64 144
  %1364 = getelementptr inbounds i8, ptr %0, i64 5336
  %1365 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1366

1366:                                             ; preds = %.lr.ph1199, %1366
  %.141198 = phi double [ 0.000000e+00, %.lr.ph1199 ], [ %1379, %1366 ]
  %.231197 = phi i64 [ 0, %.lr.ph1199 ], [ %1380, %1366 ]
  %1367 = load ptr, ptr %1363, align 8, !tbaa !25
  %1368 = getelementptr inbounds double, ptr %1367, i64 %.231197
  %1369 = load double, ptr %1368, align 8, !tbaa !30
  %1370 = load ptr, ptr %1364, align 8, !tbaa !25
  %1371 = getelementptr inbounds double, ptr %1370, i64 %.231197
  %1372 = load double, ptr %1371, align 8, !tbaa !30
  %1373 = fsub double %1369, %1372
  %1374 = load ptr, ptr %1365, align 8, !tbaa !25
  %1375 = getelementptr inbounds double, ptr %1374, i64 %.231197
  %1376 = load double, ptr %1375, align 8, !tbaa !30
  %1377 = fdiv double %1373, %1376
  %1378 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1377, ptr noundef %1)
  %1379 = fadd double %.141198, %1378
  %1380 = add nuw nsw i64 %.231197, 1
  %exitcond1273.not = icmp eq i64 %1380, %.01044
  br i1 %exitcond1273.not, label %._crit_edge1200, label %1366, !llvm.loop !104

._crit_edge1200:                                  ; preds = %1366, %.preheader1092
  %.23.lcssa = phi i64 [ 0, %.preheader1092 ], [ %.01044, %1366 ]
  %.14.lcssa = phi double [ 0.000000e+00, %.preheader1092 ], [ %1379, %1366 ]
  %1381 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.14.lcssa, ptr noundef %1)
  %1382 = getelementptr inbounds i8, ptr %0, i64 32
  %1383 = load double, ptr %1382, align 8, !tbaa !105
  %1384 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1381, double noundef %1383)
  br i1 %1384, label %.loopexit1098.sink.split, label %1385

1385:                                             ; preds = %._crit_edge1200
  %1386 = getelementptr inbounds i8, ptr %0, i64 5360
  %1387 = load double, ptr %1386, align 8, !tbaa !98
  %1388 = getelementptr inbounds i8, ptr %0, i64 5344
  %1389 = load double, ptr %1388, align 8, !tbaa !62
  %1390 = fsub double %1387, %1389
  %1391 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1390, ptr noundef %1)
  %1392 = getelementptr inbounds i8, ptr %0, i64 24
  %1393 = load double, ptr %1392, align 8, !tbaa !106
  %1394 = load double, ptr %1388, align 8, !tbaa !62
  %1395 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1394, ptr noundef %1)
  %1396 = load double, ptr %1386, align 8, !tbaa !98
  %1397 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1396, ptr noundef %1)
  %1398 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1397, double noundef 1.000000e+00, ptr noundef %1)
  %1399 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1395, double noundef %1398, ptr noundef %1)
  %1400 = fmul double %1393, %1399
  %1401 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1391, double noundef %1400)
  br i1 %1401, label %.loopexit1098.sink.split, label %.thread1086

.thread1086:                                      ; preds = %1234, %1385, %1359, %._crit_edge1192
  %.910031090 = phi double [ %.81002.lcssa, %1385 ], [ %.81002.lcssa, %1359 ], [ %.81002.lcssa, %._crit_edge1192 ], [ %.71001, %1234 ]
  %.24 = phi i64 [ %.23.lcssa, %1385 ], [ %.21.lcssa, %1359 ], [ %.21.lcssa, %._crit_edge1192 ], [ %.171038, %1234 ]
  %.15 = phi double [ %1381, %1385 ], [ %.121018.lcssa, %1359 ], [ %.121018.lcssa, %._crit_edge1192 ], [ %.111017, %1234 ]
  %1402 = getelementptr inbounds i8, ptr %0, i64 40
  %1403 = load i64, ptr %1402, align 8, !tbaa !107
  %1404 = icmp sgt i64 %1403, 0
  br i1 %1404, label %1405, label %1407

1405:                                             ; preds = %.thread1086
  %1406 = load i64, ptr %1236, align 8, !tbaa !99
  %.not1070 = icmp slt i64 %1406, %1403
  br i1 %.not1070, label %1407, label %.loopexit1098.sink.split

1407:                                             ; preds = %1405, %.thread1086
  %1408 = getelementptr inbounds i8, ptr %0, i64 4692
  store i8 0, ptr %1408, align 4, !tbaa !32
  %1409 = icmp sgt i64 %.5981, -1
  br i1 %1409, label %1412, label %.preheader1091

.preheader1091:                                   ; preds = %1407
  %.not1071.not1203 = icmp sgt i64 %.01044, 0
  br i1 %.not1071.not1203, label %.lr.ph1206, label %._crit_edge1207

.lr.ph1206:                                       ; preds = %.preheader1091
  %1410 = getelementptr inbounds i8, ptr %0, i64 5080
  %1411 = getelementptr inbounds i8, ptr %0, i64 4472
  br label %1414

1412:                                             ; preds = %1407
  %1413 = getelementptr inbounds i8, ptr %0, i64 8416
  store i64 0, ptr %1413, align 8, !tbaa !75
  br label %.preheader1097

1414:                                             ; preds = %.lr.ph1206, %1414
  %.161205 = phi double [ 0.000000e+00, %.lr.ph1206 ], [ %1423, %1414 ]
  %.251204 = phi i64 [ 0, %.lr.ph1206 ], [ %1424, %1414 ]
  %1415 = load ptr, ptr %1410, align 8, !tbaa !25
  %1416 = getelementptr inbounds double, ptr %1415, i64 %.251204
  %1417 = load double, ptr %1416, align 8, !tbaa !30
  %1418 = load ptr, ptr %1411, align 8, !tbaa !25
  %1419 = getelementptr inbounds double, ptr %1418, i64 %.251204
  %1420 = load double, ptr %1419, align 8, !tbaa !30
  %1421 = fmul double %1417, %1420
  %1422 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1421, ptr noundef %1)
  %1423 = fadd double %.161205, %1422
  %1424 = add nuw nsw i64 %.251204, 1
  %exitcond1274.not = icmp eq i64 %1424, %.01044
  br i1 %exitcond1274.not, label %._crit_edge1207, label %1414, !llvm.loop !108

._crit_edge1207:                                  ; preds = %1414, %.preheader1091
  %.25.lcssa = phi i64 [ 0, %.preheader1091 ], [ %.01044, %1414 ]
  %.16.lcssa = phi double [ 0.000000e+00, %.preheader1091 ], [ %1423, %1414 ]
  %1425 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.16.lcssa, ptr noundef %1)
  %1426 = fmul double %.0, %.6
  %1427 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1425, double noundef %1426)
  br i1 %1427, label %.loopexit1098, label %.preheader1097

.loopexit1098.sink.split:                         ; preds = %1405, %1385, %._crit_edge1200, %1183, %._crit_edge1168, %653, %590
  %.sink1325 = phi i64 [ 4, %590 ], [ 4, %653 ], [ -8, %._crit_edge1168 ], [ 7, %1183 ], [ 2, %._crit_edge1200 ], [ 1, %1385 ], [ 5, %1405 ]
  %.26.ph = phi i64 [ %.810291150, %590 ], [ %smax, %653 ], [ %.141035.lcssa, %._crit_edge1168 ], [ %.151036.lcssa, %1183 ], [ %.23.lcssa, %._crit_edge1200 ], [ %.23.lcssa, %1385 ], [ %.24, %1405 ]
  %.17.ph = phi double [ %.210081151, %590 ], [ %651, %653 ], [ %.71013.lcssa, %._crit_edge1168 ], [ %.91015.ph, %1183 ], [ %1381, %._crit_edge1200 ], [ %1381, %1385 ], [ %.15, %1405 ]
  %.101004.ph = phi double [ %.29961152, %590 ], [ %.4998.lcssa, %653 ], [ %.61000, %._crit_edge1168 ], [ %.61000, %1183 ], [ %.81002.lcssa, %._crit_edge1200 ], [ %.81002.lcssa, %1385 ], [ %.910031090, %1405 ]
  %.12.ph = phi i8 [ %.4988.ph, %590 ], [ %.4988.ph, %653 ], [ %.6990, %._crit_edge1168 ], [ 0, %1183 ], [ %.11, %._crit_edge1200 ], [ %.11, %1385 ], [ %.11, %1405 ]
  %.6982.ph = phi i64 [ %.2978.ph, %590 ], [ %.2978.ph, %653 ], [ %.4980, %._crit_edge1168 ], [ %.4980, %1183 ], [ %.5981, %._crit_edge1200 ], [ %.5981, %1385 ], [ %.5981, %1405 ]
  %.6974.ph = phi i64 [ %591, %590 ], [ %654, %653 ], [ %.4972, %._crit_edge1168 ], [ %.4972, %1183 ], [ %.5973, %._crit_edge1200 ], [ %.5973, %1385 ], [ %.5973, %1405 ]
  %.7.ph = phi double [ %.3966.ph, %590 ], [ %.3966.ph, %653 ], [ %.5, %._crit_edge1168 ], [ %.5, %1183 ], [ %.6, %._crit_edge1200 ], [ %.6, %1385 ], [ %.6, %1405 ]
  %1428 = getelementptr inbounds i8, ptr %0, i64 5840
  store i64 %.sink1325, ptr %1428, align 8, !tbaa !34
  br label %.loopexit1098

.loopexit1098:                                    ; preds = %.loopexit1098.sink.split, %.preheader1097, %._crit_edge1207, %.loopexit1094, %1317, %1187, %1183, %653
  %.26 = phi i64 [ %smax, %653 ], [ %.161037, %1187 ], [ %.20, %.loopexit1094 ], [ %.20, %1317 ], [ %.25.lcssa, %._crit_edge1207 ], [ %.151036.lcssa, %1183 ], [ %.81029.ph, %.preheader1097 ], [ %.26.ph, %.loopexit1098.sink.split ]
  %.17 = phi double [ %651, %653 ], [ %.101016, %1187 ], [ %1308, %.loopexit1094 ], [ %1308, %1317 ], [ %.16.lcssa, %._crit_edge1207 ], [ %.91015.ph, %1183 ], [ %.21008.ph, %.preheader1097 ], [ %.17.ph, %.loopexit1098.sink.split ]
  %.101004 = phi double [ %.4998.lcssa, %653 ], [ %.61000, %1187 ], [ %1315, %.loopexit1094 ], [ %1315, %1317 ], [ %.910031090, %._crit_edge1207 ], [ %.61000, %1183 ], [ %.2996.ph, %.preheader1097 ], [ %.101004.ph, %.loopexit1098.sink.split ]
  %.12 = phi i8 [ %.4988.ph, %653 ], [ %.10, %1187 ], [ %.11, %.loopexit1094 ], [ %.11, %1317 ], [ %.11, %._crit_edge1207 ], [ 0, %1183 ], [ %.4988.ph, %.preheader1097 ], [ %.12.ph, %.loopexit1098.sink.split ]
  %.6982 = phi i64 [ %.2978.ph, %653 ], [ %.4980, %1187 ], [ %.5981, %.loopexit1094 ], [ %.5981, %1317 ], [ %.5981, %._crit_edge1207 ], [ %.4980, %1183 ], [ %.2978.ph, %.preheader1097 ], [ %.6982.ph, %.loopexit1098.sink.split ]
  %.6974 = phi i64 [ %654, %653 ], [ %.4972, %1187 ], [ %.5973, %.loopexit1094 ], [ %.5973, %1317 ], [ %.5973, %._crit_edge1207 ], [ %.4972, %1183 ], [ %.2970.ph, %.preheader1097 ], [ %.6974.ph, %.loopexit1098.sink.split ]
  %.7 = phi double [ %.3966.ph, %653 ], [ %.5, %1187 ], [ %.6, %.loopexit1094 ], [ %.6, %1317 ], [ %.6, %._crit_edge1207 ], [ %.5, %1183 ], [ %.3966.ph, %.preheader1097 ], [ %.7.ph, %.loopexit1098.sink.split ]
  %1429 = getelementptr inbounds i8, ptr %0, i64 4694
  %1430 = load i8, ptr %1429, align 2, !tbaa !33, !range !28, !noundef !29
  %1431 = trunc nuw i8 %1430 to i1
  %1432 = getelementptr inbounds i8, ptr %0, i64 5840
  br i1 %1431, label %1433, label %1434

1433:                                             ; preds = %.loopexit1098
  store i64 8, ptr %1432, align 8, !tbaa !34
  br label %1441

1434:                                             ; preds = %.loopexit1098
  %1435 = load i64, ptr %1432, align 8, !tbaa !34
  %.not1072 = icmp eq i64 %1435, 0
  br i1 %.not1072, label %1436, label %1441

1436:                                             ; preds = %1434
  %1437 = load double, ptr @_ZN11alglib_implL24minbleic_decaycorrectionE, align 8, !tbaa !30
  %1438 = fmul double %.0, %1437
  %1439 = load double, ptr @_ZN11alglib_implL17minbleic_mindecayE, align 8, !tbaa !30
  %1440 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1438, double noundef %1439, ptr noundef %1)
  br label %280

1441:                                             ; preds = %1434, %1433
  %1442 = getelementptr inbounds i8, ptr %0, i64 72
  call void @_ZN11alglib_impl19sasstopoptimizationEPNS_10sactivesetEPNS_8ae_stateE(ptr noundef nonnull %1442, ptr noundef %1)
  %1443 = getelementptr inbounds i8, ptr %0, i64 5816
  store i64 1, ptr %1443, align 8, !tbaa !109
  br label %1476

1444:                                             ; preds = %1226, %972, %968, %889, %874, %859, %848, %792, %785, %694, %474, %470, %391, %376, %361, %350, %294, %290, %262, %247, %243, %._crit_edge1228
  %.sink1327 = phi i32 [ 21, %1226 ], [ 20, %972 ], [ 19, %968 ], [ 18, %889 ], [ 17, %874 ], [ 16, %859 ], [ 15, %848 ], [ 14, %792 ], [ 13, %785 ], [ 12, %694 ], [ 11, %474 ], [ 10, %470 ], [ 9, %391 ], [ 8, %376 ], [ 7, %361 ], [ 6, %350 ], [ 5, %294 ], [ 4, %290 ], [ 3, %262 ], [ 2, %247 ], [ 1, %243 ], [ 0, %._crit_edge1228 ]
  %.31047 = phi i64 [ %.01044, %1226 ], [ %.01044, %972 ], [ %.01044, %968 ], [ %.01044, %889 ], [ %.01044, %874 ], [ %.01044, %859 ], [ %.01044, %848 ], [ %.01044, %792 ], [ %.01044, %785 ], [ %.01044, %694 ], [ %.01044, %474 ], [ %.01044, %470 ], [ %.01044, %391 ], [ %.01044, %376 ], [ %.01044, %361 ], [ %.01044, %350 ], [ %.01044, %294 ], [ %.01044, %290 ], [ %.01044, %262 ], [ %.21046, %247 ], [ %.21046, %243 ], [ %.11045, %._crit_edge1228 ]
  %.31043 = phi i64 [ %.01040, %1226 ], [ %.01040, %972 ], [ %.01040, %968 ], [ %.01040, %889 ], [ %.01040, %874 ], [ %.01040, %859 ], [ %.01040, %848 ], [ %.01040, %792 ], [ %.01040, %785 ], [ %.01040, %694 ], [ %.01040, %474 ], [ %.01040, %470 ], [ %.01040, %391 ], [ %.01040, %376 ], [ %.01040, %361 ], [ %.01040, %350 ], [ %.01040, %294 ], [ %.01040, %290 ], [ %.01040, %262 ], [ %.21042, %247 ], [ %.21042, %243 ], [ %.11041, %._crit_edge1228 ]
  %.27 = phi i64 [ %.161037, %1226 ], [ %.01021, %972 ], [ %.131034, %968 ], [ %.01021, %889 ], [ %.01021, %874 ], [ %.01021, %859 ], [ %.131034, %848 ], [ %.121033.lcssa, %792 ], [ %.121033.lcssa, %785 ], [ %smax, %694 ], [ %.01021, %474 ], [ %.61027, %470 ], [ %.01021, %391 ], [ %.01021, %376 ], [ %.01021, %361 ], [ %.61027, %350 ], [ %.51026, %294 ], [ %.51026, %290 ], [ %.01021, %262 ], [ %.41025.lcssa, %247 ], [ %.41025.lcssa, %243 ], [ %.21023.lcssa, %._crit_edge1228 ]
  %.18 = phi double [ %.101016, %1226 ], [ %.01006, %972 ], [ %803, %968 ], [ %.01006, %889 ], [ %.01006, %874 ], [ %.01006, %859 ], [ %803, %848 ], [ %.61012, %792 ], [ %.61012, %785 ], [ %.41010, %694 ], [ %.01006, %474 ], [ %305, %470 ], [ %.01006, %391 ], [ %.01006, %376 ], [ %.01006, %361 ], [ %305, %350 ], [ %.11007, %294 ], [ %.11007, %290 ], [ %.01006, %262 ], [ %.01006, %247 ], [ %.01006, %243 ], [ %.01006, %._crit_edge1228 ]
  %.111005 = phi double [ %.61000, %1226 ], [ %.0994, %972 ], [ %.0994, %968 ], [ %.0994, %889 ], [ %.0994, %874 ], [ %.0994, %859 ], [ %.0994, %848 ], [ %.61000, %792 ], [ %.61000, %785 ], [ %.4998.lcssa, %694 ], [ %.0994, %474 ], [ %.0994, %470 ], [ %.0994, %391 ], [ %.0994, %376 ], [ %.0994, %361 ], [ %.0994, %350 ], [ %.1995, %294 ], [ %.1995, %290 ], [ %.0994, %262 ], [ %.0994, %247 ], [ %.0994, %243 ], [ %.0994, %._crit_edge1228 ]
  %.13 = phi i8 [ %.10, %1226 ], [ %.0984, %972 ], [ %.89921080, %968 ], [ %.0984, %889 ], [ %.0984, %874 ], [ %.0984, %859 ], [ %.8992, %848 ], [ %.6990, %792 ], [ %.6990, %785 ], [ %.4988.ph, %694 ], [ %.0984, %474 ], [ %.39871077, %470 ], [ %.0984, %391 ], [ %.0984, %376 ], [ %.0984, %361 ], [ %.3987, %350 ], [ %.1985, %294 ], [ %.1985, %290 ], [ %.0984, %262 ], [ %.0984, %247 ], [ %.0984, %243 ], [ %.0984, %._crit_edge1228 ]
  %.7983 = phi i64 [ %1222, %1226 ], [ %.0976, %972 ], [ %.0976, %968 ], [ %.0976, %889 ], [ %.0976, %874 ], [ %.0976, %859 ], [ %.0976, %848 ], [ %.4980, %792 ], [ %.4980, %785 ], [ %.2978.ph, %694 ], [ %.0976, %474 ], [ %.0976, %470 ], [ %.0976, %391 ], [ %.0976, %376 ], [ %.0976, %361 ], [ %.0976, %350 ], [ %.1977, %294 ], [ %.1977, %290 ], [ %.0976, %262 ], [ %.0976, %247 ], [ %.0976, %243 ], [ %.0976, %._crit_edge1228 ]
  %.7975 = phi i64 [ %.4972, %1226 ], [ %.0968, %972 ], [ %.0968, %968 ], [ %.0968, %889 ], [ %.0968, %874 ], [ %.0968, %859 ], [ %.0968, %848 ], [ %.4972, %792 ], [ %.4972, %785 ], [ %675, %694 ], [ %.0968, %474 ], [ %.0968, %470 ], [ %.0968, %391 ], [ %.0968, %376 ], [ %.0968, %361 ], [ %.0968, %350 ], [ %.1969, %294 ], [ %.1969, %290 ], [ %.0968, %262 ], [ %.0968, %247 ], [ %.0968, %243 ], [ %.0968, %._crit_edge1228 ]
  %.8 = phi double [ %.5, %1226 ], [ %.0963, %972 ], [ %.0963, %968 ], [ %.0963, %889 ], [ %.0963, %874 ], [ %.0963, %859 ], [ %.0963, %848 ], [ %.5, %792 ], [ %.5, %785 ], [ %.3966.ph, %694 ], [ %.0963, %474 ], [ %.0963, %470 ], [ %.0963, %391 ], [ %.0963, %376 ], [ %.0963, %361 ], [ %.0963, %350 ], [ %.1964, %294 ], [ %.1964, %290 ], [ %.0963, %262 ], [ %.0963, %247 ], [ %.0963, %243 ], [ %.0963, %._crit_edge1228 ]
  %.4 = phi double [ %.0, %1226 ], [ %.0, %972 ], [ %.0, %968 ], [ %.0, %889 ], [ %.0, %874 ], [ %.0, %859 ], [ %.0, %848 ], [ %.0, %792 ], [ %.0, %785 ], [ %.0, %694 ], [ %.0, %474 ], [ %.0, %470 ], [ %.0, %391 ], [ %.0, %376 ], [ %.0, %361 ], [ %.0, %350 ], [ %.3, %294 ], [ %.3, %290 ], [ %.0, %262 ], [ %.2, %247 ], [ %.2, %243 ], [ %.1, %._crit_edge1228 ]
  store i32 %.sink1327, ptr %5, align 8, !tbaa !5
  %1445 = getelementptr inbounds i8, ptr %0, i64 4760
  %1446 = load ptr, ptr %1445, align 8, !tbaa !25
  store i64 %.31047, ptr %1446, align 8, !tbaa !26
  %1447 = load ptr, ptr %1445, align 8, !tbaa !25
  %1448 = getelementptr inbounds i8, ptr %1447, i64 8
  store i64 %.31043, ptr %1448, align 8, !tbaa !26
  %1449 = load ptr, ptr %1445, align 8, !tbaa !25
  %1450 = getelementptr inbounds i8, ptr %1449, i64 16
  store i64 %.27, ptr %1450, align 8, !tbaa !26
  %1451 = load ptr, ptr %1445, align 8, !tbaa !25
  %1452 = getelementptr inbounds i8, ptr %1451, i64 24
  store i64 %.01020, ptr %1452, align 8, !tbaa !26
  %1453 = load i64, ptr %3, align 8, !tbaa !26
  %1454 = load ptr, ptr %1445, align 8, !tbaa !25
  %1455 = getelementptr inbounds i8, ptr %1454, i64 32
  store i64 %1453, ptr %1455, align 8, !tbaa !26
  %1456 = load ptr, ptr %1445, align 8, !tbaa !25
  %1457 = getelementptr inbounds i8, ptr %1456, i64 40
  store i64 %.7983, ptr %1457, align 8, !tbaa !26
  %1458 = load ptr, ptr %1445, align 8, !tbaa !25
  %1459 = getelementptr inbounds i8, ptr %1458, i64 48
  store i64 %.7975, ptr %1459, align 8, !tbaa !26
  %1460 = getelementptr inbounds i8, ptr %0, i64 4824
  %1461 = load ptr, ptr %1460, align 8, !tbaa !25
  %1462 = and i8 %.13, 1
  store i8 %1462, ptr %1461, align 1, !tbaa !27
  %1463 = getelementptr inbounds i8, ptr %0, i64 4888
  %1464 = load ptr, ptr %1463, align 8, !tbaa !25
  store double %.18, ptr %1464, align 8, !tbaa !30
  %1465 = load ptr, ptr %1463, align 8, !tbaa !25
  %1466 = getelementptr inbounds i8, ptr %1465, i64 8
  store double %.111005, ptr %1466, align 8, !tbaa !30
  %1467 = load ptr, ptr %1463, align 8, !tbaa !25
  %1468 = getelementptr inbounds i8, ptr %1467, i64 16
  store double %.0993, ptr %1468, align 8, !tbaa !30
  %1469 = load double, ptr %4, align 8, !tbaa !30
  %1470 = load ptr, ptr %1463, align 8, !tbaa !25
  %1471 = getelementptr inbounds i8, ptr %1470, i64 24
  store double %1469, ptr %1471, align 8, !tbaa !30
  %1472 = load ptr, ptr %1463, align 8, !tbaa !25
  %1473 = getelementptr inbounds i8, ptr %1472, i64 32
  store double %.8, ptr %1473, align 8, !tbaa !30
  %1474 = load ptr, ptr %1463, align 8, !tbaa !25
  %1475 = getelementptr inbounds i8, ptr %1474, i64 40
  store double %.4, ptr %1475, align 8, !tbaa !30
  br label %1476

1476:                                             ; preds = %1444, %1441, %556, %550, %277, %221, %64
  %.01048 = phi i1 [ true, %1444 ], [ false, %221 ], [ false, %277 ], [ false, %556 ], [ false, %1441 ], [ false, %550 ], [ 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 %.01048
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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_impl10ae_fp_lessEdd(double noundef, double noundef) local_unnamed_addr #1

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

declare noundef double @_ZN11alglib_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_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

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

; Function Attrs: mustprogress 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_17smoothnessmonitorEPNS_9ae_vectorES3_S3_dS3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl31smoothnessmonitorenqueuepoint1uEPNS_17smoothnessmonitorEPNS_9ae_vectorES3_S3_dS3_dS3_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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl14sassetprecdiagEPNS_10sactivesetEPNS_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_10sactivesetEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl19sasexploredirectionEPNS_10sactivesetEPNS_9ae_vectorEPdPlS4_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_10sactivesetEPNS_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_10sactivesetEPNS_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_10sactivesetEPNS_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

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

declare void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_S1_S2_ddPlS3_S1_PNS_11linminstateES3_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 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 noundef double @_ZN11alglib_implL25minbleic_feasibilityerrorEPNS_9ae_vectorES1_lPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

; 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 4696}
!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, !13, i64 4552, !10, i64 4616, !13, i64 4624, !11, i64 4688, !11, i64 4689, !11, i64 4690, !11, i64 4691, !11, i64 4692, !11, i64 4693, !11, i64 4694, !18, i64 4696, !13, i64 4960, !13, i64 5024, !13, i64 5088, !13, i64 5152, !13, i64 5216, !13, i64 5280, !10, i64 5344, !10, i64 5352, !10, i64 5360, !13, i64 5368, !16, i64 5432, !7, i64 5512, !7, i64 5520, !10, i64 5528, !10, i64 5536, !10, i64 5544, !13, i64 5552, !13, i64 5616, !13, i64 5680, !13, i64 5744, !7, i64 5808, !7, i64 5816, !7, i64 5824, !7, i64 5832, !7, i64 5840, !10, i64 5848, !10, i64 5856, !10, i64 5864, !10, i64 5872, !7, i64 5880, !7, i64 5888, !13, i64 5896, !17, i64 5960, !10, i64 7600, !10, i64 7608, !10, i64 7616, !10, i64 7624, !10, i64 7632, !10, i64 7640, !10, i64 7648, !10, i64 7656, !10, i64 7664, !7, i64 7672, !10, i64 7680, !13, i64 7688, !13, i64 7752, !7, i64 7816, !7, i64 7824, !10, i64 7832, !10, i64 7840, !10, i64 7848, !13, i64 7856, !20, i64 7920, !10, i64 8112, !7, i64 8120, !16, i64 8128, !16, i64 8208, !13, i64 8288, !13, i64 8352, !7, i64 8416, !10, i64 8424, !7, i64 8432, !21, i64 8440, !13, i64 12408, !13, i64 12472}
!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, !7, i64 88, !13, i64 96, !13, i64 160, !13, i64 224, !16, i64 288, !13, i64 368, !13, i64 432, !7, i64 496, !11, i64 504, !11, i64 505, !10, i64 512, !10, i64 520, !11, i64 528, !22, i64 536, !10, i64 832, !10, i64 840, !23, i64 848, !23, i64 1152, !10, i64 1456, !10, i64 1464, !24, i64 1472, !24, i64 1784, !11, i64 2096, !13, i64 2104, !13, i64 2168, !16, i64 2232, !18, i64 2312, !13, i64 2576, !13, i64 2640, !13, i64 2704, !13, i64 2768, !13, i64 2832, !13, i64 2896, !13, i64 2960, !13, i64 3024, !16, i64 3088, !16, i64 3168, !13, i64 3248, !13, i64 3312, !13, i64 3376, !13, i64 3440, !13, i64 3504, !13, i64 3568, !13, i64 3632, !13, i64 3696, !13, i64 3760, !13, i64 3824, !16, i64 3888}
!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_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}
!24 = !{!"_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}
!25 = !{!8, !8, i64 0}
!26 = !{!7, !7, i64 0}
!27 = !{!11, !11, i64 0}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = !{!10, !10, i64 0}
!31 = !{!6, !7, i64 0}
!32 = !{!6, !11, i64 4692}
!33 = !{!6, !11, i64 4694}
!34 = !{!6, !7, i64 5840}
!35 = !{!6, !7, i64 5832}
!36 = !{!6, !10, i64 5848}
!37 = !{!38, !10, i64 8}
!38 = !{!"_ZTSN11alglib_impl8ae_stateE", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !15, i64 32, !14, i64 40, !15, i64 72, !39, i64 80, !15, i64 88, !40, i64 96, !15, i64 104, !15, i64 112, !15, i64 120}
!39 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !8, i64 0}
!40 = !{!"long long", !8, i64 0}
!41 = !{!6, !10, i64 5856}
!42 = !{!6, !10, i64 5864}
!43 = !{!6, !10, i64 5872}
!44 = !{!6, !10, i64 56}
!45 = !{!6, !7, i64 4480}
!46 = !{!6, !7, i64 8432}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}
!49 = !{!6, !10, i64 64}
!50 = !{!6, !10, i64 8424}
!51 = !{!15, !15, i64 0}
!52 = distinct !{!52, !48}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.unroll.disable"}
!55 = !{!6, !11, i64 4689}
!56 = !{!6, !10, i64 4616}
!57 = distinct !{!57, !48}
!58 = distinct !{!58, !48}
!59 = !{!6, !7, i64 5520}
!60 = !{!6, !7, i64 8120}
!61 = !{!6, !11, i64 4688}
!62 = !{!6, !10, i64 5344}
!63 = !{!6, !7, i64 5824}
!64 = !{!6, !11, i64 48}
!65 = !{!6, !11, i64 4690}
!66 = !{!6, !10, i64 7600}
!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 = distinct !{!73, !48}
!74 = !{!6, !10, i64 5544}
!75 = !{!6, !7, i64 8416}
!76 = !{!6, !10, i64 16}
!77 = distinct !{!77, !48}
!78 = distinct !{!78, !48}
!79 = distinct !{!79, !48}
!80 = !{!6, !10, i64 5536}
!81 = !{!6, !10, i64 7832}
!82 = !{!6, !10, i64 7840}
!83 = !{!6, !10, i64 7848}
!84 = !{!6, !7, i64 7672}
!85 = !{!6, !10, i64 7680}
!86 = !{!6, !11, i64 49}
!87 = !{!6, !11, i64 4691}
!88 = !{!6, !11, i64 4693}
!89 = !{!6, !10, i64 5352}
!90 = !{!6, !7, i64 7824}
!91 = distinct !{!91, !48}
!92 = distinct !{!92, !54}
!93 = !{!6, !10, i64 8112}
!94 = distinct !{!94, !48}
!95 = distinct !{!95, !54}
!96 = distinct !{!96, !48}
!97 = !{!6, !7, i64 5512}
!98 = !{!6, !10, i64 5360}
!99 = !{!6, !7, i64 5808}
!100 = distinct !{!100, !48}
!101 = distinct !{!101, !48}
!102 = distinct !{!102, !48}
!103 = !{!6, !10, i64 5528}
!104 = distinct !{!104, !48}
!105 = !{!6, !10, i64 32}
!106 = !{!6, !10, i64 24}
!107 = !{!6, !7, i64 40}
!108 = distinct !{!108, !48}
!109 = !{!6, !7, i64 5816}


; 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