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

; 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::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::rbf3evaluator" = type { i64, i64, %"struct.alglib_impl::ae_matrix", i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_shared_pool", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_shared_pool" = type { %"struct.alglib_impl::ae_lock", ptr, ptr, ptr, ptr, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"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::rbf3fastevaluator" = type { i64, i64, i64, i64, i64, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, %"struct.alglib_impl::ae_obj_array", %"struct.alglib_impl::biharmonicevaluator", %"struct.alglib_impl::ae_shared_pool", %"struct.alglib_impl::ae_matrix", i8, i64, i64, i64 }
%"struct.alglib_impl::ae_obj_array" = type { i64, i64, i8, ptr, ptr, ptr, ptr, %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::biharmonicevaluator" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::sparsesolverstate" = type { i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i8, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::fblsgmresstate", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::fblsgmresstate" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, double, double, double, i64, i64, double, %"struct.alglib_impl::rcommstate" }
%"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::sparsesolverreport" = type { i64, i64, i64, double }
%"struct.alglib_impl::rbf3ddmsolver" = type { double, %"struct.alglib_impl::kdtree", %"struct.alglib_impl::ae_shared_pool", i64, %"struct.alglib_impl::ae_shared_pool", %"struct.alglib_impl::ae_shared_pool", i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i64, i64 }
%"struct.alglib_impl::kdtree" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::kdtreerequestbuffer", i64 }
%"struct.alglib_impl::kdtreerequestbuffer" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, double, i8, double, 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", double, %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::savgcounter" = type { double, double, double }
%"struct.alglib_impl::rbfv3model" = type { i64, i64, i64, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::rbf3evaluator", %"struct.alglib_impl::rbf3fastevaluator", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rbfv3calcbuffer", i8, double }
%"struct.alglib_impl::rbfv3calcbuffer" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rbf3evaluatorbuffer", %"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::rbf3evaluatorbuffer" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::rbfv3report" = type { i64, double, double, i64 }

@.str.376 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.734 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [39 x i8], align 1
@_ZN11alglib_implL25rbfv3_defaultmaxpanelsizeE = external hidden global i64, align 8
@.str.736 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.742 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.754 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.755 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.756 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.757 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.758 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZN11alglib_implL15rbfv3_maxddmitsE = external hidden global i64, align 8
@_ZN11alglib_implL12rbfv3_epsredE = external hidden global double, align 8
@.str.764 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.765 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.767 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.769 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.773 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.775 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.776 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.779 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.780 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.781 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.782 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.783 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.784 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.785 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.786 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.787 = external hidden unnamed_addr constant [49 x i8], align 1

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #2

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #2

declare noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) #2

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

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

declare noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) #2

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

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

declare noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) #2

declare void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #2

declare void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #2

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

declare noundef i64 @_ZN11alglib_impl12ae_tickcountEv() #2

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

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

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

declare noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl7rcopycvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) #2

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl10rbfv3buildEPKNS_9ae_matrixES2_lPKNS_9ae_vectorElddlldPNS_10rbfv3modelEPlPbPNS_11rbfv3reportEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, double noundef %5, double noundef %6, i64 noundef %7, i64 noundef %8, double noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14) #4 {
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i64, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i64, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca double, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"struct.alglib_impl::ae_frame", align 8
  %32 = alloca double, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %50 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %51 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %52 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %53 = alloca %"struct.alglib_impl::rbf3evaluator", align 8
  %54 = alloca %"struct.alglib_impl::rbf3fastevaluator", align 8
  %55 = alloca %"struct.alglib_impl::ae_vector", align 8
  %56 = alloca %"struct.alglib_impl::ae_vector", align 8
  %57 = alloca %"struct.alglib_impl::ae_vector", align 8
  %58 = alloca %"struct.alglib_impl::ae_vector", align 8
  %59 = alloca %"struct.alglib_impl::ae_vector", align 8
  %60 = alloca %"struct.alglib_impl::ae_vector", align 8
  %61 = alloca %"struct.alglib_impl::ae_vector", align 8
  %62 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %63 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %64 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %65 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %66 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %67 = alloca i64, align 8
  %68 = alloca %"struct.alglib_impl::ae_vector", align 8
  %69 = alloca %"struct.alglib_impl::ae_vector", align 8
  %70 = alloca %"struct.alglib_impl::ae_vector", align 8
  %71 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %72 = alloca %"struct.alglib_impl::sparsesolverstate", align 8
  %73 = alloca %"struct.alglib_impl::sparsesolverreport", align 8
  %74 = alloca %"struct.alglib_impl::rbf3ddmsolver", align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca i8, align 1
  %80 = alloca i8, align 1
  %81 = alloca %"struct.alglib_impl::fblsgmresstate", align 8
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca %"struct.alglib_impl::savgcounter", align 8
  %94 = alloca i64, align 8
  %95 = alloca i64, align 8
  %96 = alloca i64, align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %100 = alloca %"struct.alglib_impl::ae_vector", align 8
  %101 = alloca %"struct.alglib_impl::ae_vector", align 8
  %102 = alloca double, align 8
  %103 = alloca i32, align 4
  store ptr %0, ptr %16, align 8, !tbaa !5
  store ptr %1, ptr %17, align 8, !tbaa !5
  store i64 %2, ptr %18, align 8, !tbaa !9
  store ptr %3, ptr %19, align 8, !tbaa !5
  store i64 %4, ptr %20, align 8, !tbaa !9
  store double %5, ptr %21, align 8, !tbaa !11
  store double %6, ptr %22, align 8, !tbaa !11
  store i64 %7, ptr %23, align 8, !tbaa !9
  store i64 %8, ptr %24, align 8, !tbaa !9
  store double %9, ptr %25, align 8, !tbaa !11
  store ptr %10, ptr %26, align 8, !tbaa !5
  store ptr %11, ptr %27, align 8, !tbaa !5
  store ptr %12, ptr %28, align 8, !tbaa !5
  store ptr %13, ptr %29, align 8, !tbaa !5
  store ptr %14, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 552, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 1576, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 2360, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 1976, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 1248, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  %104 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %104, ptr noundef %31)
  call void @llvm.memset.p0.i64(ptr align 8 %49, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %50, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %51, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 552, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %54, i8 0, i64 1576, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %55, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %56, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %57, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %58, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %59, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %60, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %61, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %62, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %63, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %64, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %65, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %66, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %68, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %69, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %70, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %71, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 2360, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %73, i8 0, i64 32, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %74, i8 0, i64 1976, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %81, i8 0, i64 1248, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %93, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %99, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %100, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %101, i8 0, i64 64, i1 false)
  %105 = load ptr, ptr %29, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_rbfv3report_clearEPv(ptr noundef %105)
  %106 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %49, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %106, i1 noundef zeroext true)
  %107 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %50, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %107, i1 noundef zeroext true)
  %108 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %51, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %108, i1 noundef zeroext true)
  %109 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %52, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %109, i1 noundef zeroext true)
  %110 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl19_rbf3evaluator_initEPvPNS_8ae_stateEb(ptr noundef %53, ptr noundef %110, i1 noundef zeroext true)
  %111 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl23_rbf3fastevaluator_initEPvPNS_8ae_stateEb(ptr noundef %54, ptr noundef %111, i1 noundef zeroext true)
  %112 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %55, i64 noundef 0, i64 noundef 3, ptr noundef %112, i1 noundef zeroext true)
  %113 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %56, i64 noundef 0, i64 noundef 3, ptr noundef %113, i1 noundef zeroext true)
  %114 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %57, i64 noundef 0, i64 noundef 3, ptr noundef %114, i1 noundef zeroext true)
  %115 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %58, i64 noundef 0, i64 noundef 3, ptr noundef %115, i1 noundef zeroext true)
  %116 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %59, i64 noundef 0, i64 noundef 3, ptr noundef %116, i1 noundef zeroext true)
  %117 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %60, i64 noundef 0, i64 noundef 3, ptr noundef %117, i1 noundef zeroext true)
  %118 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %61, i64 noundef 0, i64 noundef 3, ptr noundef %118, i1 noundef zeroext true)
  %119 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %62, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %119, i1 noundef zeroext true)
  %120 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %63, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %120, i1 noundef zeroext true)
  %121 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %64, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %121, i1 noundef zeroext true)
  %122 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %65, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %122, i1 noundef zeroext true)
  %123 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %66, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %123, i1 noundef zeroext true)
  %124 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %68, i64 noundef 0, i64 noundef 2, ptr noundef %124, i1 noundef zeroext true)
  %125 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %69, i64 noundef 0, i64 noundef 2, ptr noundef %125, i1 noundef zeroext true)
  %126 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %70, i64 noundef 0, i64 noundef 2, ptr noundef %126, i1 noundef zeroext true)
  %127 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %71, ptr noundef %127, i1 noundef zeroext true)
  %128 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl23_sparsesolverstate_initEPvPNS_8ae_stateEb(ptr noundef %72, ptr noundef %128, i1 noundef zeroext true)
  %129 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl24_sparsesolverreport_initEPvPNS_8ae_stateEb(ptr noundef %73, ptr noundef %129, i1 noundef zeroext true)
  %130 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl19_rbf3ddmsolver_initEPvPNS_8ae_stateEb(ptr noundef %74, ptr noundef %130, i1 noundef zeroext true)
  %131 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl20_fblsgmresstate_initEPvPNS_8ae_stateEb(ptr noundef %81, ptr noundef %131, i1 noundef zeroext true)
  %132 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl17_savgcounter_initEPvPNS_8ae_stateEb(ptr noundef %93, ptr noundef %132, i1 noundef zeroext true)
  %133 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %99, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %133, i1 noundef zeroext true)
  %134 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %100, i64 noundef 0, i64 noundef 3, ptr noundef %134, i1 noundef zeroext true)
  %135 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %101, i64 noundef 0, i64 noundef 3, ptr noundef %135, i1 noundef zeroext true)
  store double 5.000000e-13, ptr %39, align 8, !tbaa !11
  %136 = load double, ptr %25, align 8, !tbaa !11
  %137 = load ptr, ptr %30, align 8, !tbaa !5
  %138 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %136, ptr noundef %137)
  %139 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %138, ptr noundef @.str.724, ptr noundef %139)
  %140 = load ptr, ptr %26, align 8, !tbaa !5
  %141 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %140, i32 0, i32 1
  %142 = load i64, ptr %141, align 8, !tbaa !13
  %143 = icmp sgt i64 %142, 0
  %144 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %143, ptr noundef @.str.725, ptr noundef %144)
  %145 = load ptr, ptr %26, align 8, !tbaa !5
  %146 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %145, i32 0, i32 0
  %147 = load i64, ptr %146, align 8, !tbaa !27
  %148 = icmp sgt i64 %147, 0
  %149 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %148, ptr noundef @.str.726, ptr noundef %149)
  %150 = load i64, ptr %20, align 8, !tbaa !9
  %151 = icmp eq i64 %150, 1
  br i1 %151, label %158, label %152

152:                                              ; preds = %15
  %153 = load i64, ptr %20, align 8, !tbaa !9
  %154 = icmp eq i64 %153, 2
  br i1 %154, label %158, label %155

155:                                              ; preds = %152
  %156 = load i64, ptr %20, align 8, !tbaa !9
  %157 = icmp eq i64 %156, 3
  br label %158

158:                                              ; preds = %155, %152, %15
  %159 = phi i1 [ true, %152 ], [ true, %15 ], [ %157, %155 ]
  %160 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %159, ptr noundef @.str.727, ptr noundef %160)
  %161 = load i64, ptr %23, align 8, !tbaa !9
  %162 = icmp eq i64 %161, 1
  br i1 %162, label %169, label %163

163:                                              ; preds = %158
  %164 = load i64, ptr %23, align 8, !tbaa !9
  %165 = icmp eq i64 %164, 2
  br i1 %165, label %169, label %166

166:                                              ; preds = %163
  %167 = load i64, ptr %23, align 8, !tbaa !9
  %168 = icmp eq i64 %167, 3
  br label %169

169:                                              ; preds = %166, %163, %158
  %170 = phi i1 [ true, %163 ], [ true, %158 ], [ %168, %166 ]
  %171 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %170, ptr noundef @.str.728, ptr noundef %171)
  %172 = load i64, ptr %24, align 8, !tbaa !9
  %173 = icmp eq i64 %172, -2
  br i1 %173, label %180, label %174

174:                                              ; preds = %169
  %175 = load i64, ptr %24, align 8, !tbaa !9
  %176 = icmp eq i64 %175, -1
  br i1 %176, label %180, label %177

177:                                              ; preds = %174
  %178 = load i64, ptr %24, align 8, !tbaa !9
  %179 = icmp eq i64 %178, 0
  br label %180

180:                                              ; preds = %177, %174, %169
  %181 = phi i1 [ true, %174 ], [ true, %169 ], [ %179, %177 ]
  %182 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %181, ptr noundef @.str.729, ptr noundef %182)
  store i64 0, ptr %95, align 8, !tbaa !9
  br label %183

183:                                              ; preds = %199, %180
  %184 = load i64, ptr %95, align 8, !tbaa !9
  %185 = load ptr, ptr %26, align 8, !tbaa !5
  %186 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %185, i32 0, i32 1
  %187 = load i64, ptr %186, align 8, !tbaa !13
  %188 = sub nsw i64 %187, 1
  %189 = icmp sle i64 %184, %188
  br i1 %189, label %190, label %202

190:                                              ; preds = %183
  %191 = load ptr, ptr %19, align 8, !tbaa !5
  %192 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %191, i32 0, i32 4
  %193 = load ptr, ptr %192, align 8, !tbaa !28
  %194 = load i64, ptr %95, align 8, !tbaa !9
  %195 = getelementptr inbounds double, ptr %193, i64 %194
  %196 = load double, ptr %195, align 8, !tbaa !11
  %197 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %196, double noundef 0.000000e+00)
  %198 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %197, ptr noundef @.str.730, ptr noundef %198)
  br label %199

199:                                              ; preds = %190
  %200 = load i64, ptr %95, align 8, !tbaa !9
  %201 = add nsw i64 %200, 1
  store i64 %201, ptr %95, align 8, !tbaa !9
  br label %183, !llvm.loop !29

202:                                              ; preds = %183
  %203 = load ptr, ptr %26, align 8, !tbaa !5
  %204 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %203, i32 0, i32 1
  %205 = load i64, ptr %204, align 8, !tbaa !13
  store i64 %205, ptr %34, align 8, !tbaa !9
  %206 = load ptr, ptr %26, align 8, !tbaa !5
  %207 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %206, i32 0, i32 0
  %208 = load i64, ptr %207, align 8, !tbaa !27
  store i64 %208, ptr %35, align 8, !tbaa !9
  %209 = load double, ptr %21, align 8, !tbaa !11
  store double %209, ptr %36, align 8, !tbaa !11
  %210 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.731)
  %211 = zext i1 %210 to i8
  store i8 %211, ptr %79, align 1, !tbaa !31
  %212 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %213 = trunc i8 %212 to i1
  br i1 %213, label %214, label %216

214:                                              ; preds = %202
  %215 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.732)
  br label %216

216:                                              ; preds = %214, %202
  %217 = phi i1 [ false, %202 ], [ %215, %214 ]
  %218 = zext i1 %217 to i8
  store i8 %218, ptr %80, align 1, !tbaa !31
  %219 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %220 = trunc i8 %219 to i1
  br i1 %220, label %221, label %222

221:                                              ; preds = %216
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.376)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.377)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.733)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.377)
  br label %222

222:                                              ; preds = %221, %216
  %223 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 0, ptr %223, align 8, !tbaa !9
  %224 = load ptr, ptr %29, align 8, !tbaa !5
  %225 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %224, i32 0, i32 1
  store double 0.000000e+00, ptr %225, align 8, !tbaa !34
  %226 = load ptr, ptr %29, align 8, !tbaa !5
  %227 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %226, i32 0, i32 2
  store double 0.000000e+00, ptr %227, align 8, !tbaa !36
  %228 = load ptr, ptr %29, align 8, !tbaa !5
  %229 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %228, i32 0, i32 3
  store i64 0, ptr %229, align 8, !tbaa !37
  store i64 0, ptr %85, align 8, !tbaa !9
  store i64 0, ptr %86, align 8, !tbaa !9
  store i64 0, ptr %87, align 8, !tbaa !9
  store i64 0, ptr %88, align 8, !tbaa !9
  store i64 0, ptr %89, align 8, !tbaa !9
  store i64 0, ptr %90, align 8, !tbaa !9
  store i64 0, ptr %91, align 8, !tbaa !9
  %230 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %231 = sub nsw i64 0, %230
  store i64 %231, ptr %92, align 8, !tbaa !9
  %232 = load ptr, ptr %26, align 8, !tbaa !5
  %233 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %232, i32 0, i32 13
  store i8 0, ptr %233, align 8, !tbaa !38
  %234 = load ptr, ptr %26, align 8, !tbaa !5
  %235 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %234, i32 0, i32 14
  store double 0.000000e+00, ptr %235, align 8, !tbaa !39
  %236 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl15savgcounterinitEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef %93, double noundef 0.000000e+00, ptr noundef %236)
  %237 = load i64, ptr %18, align 8, !tbaa !9
  %238 = icmp eq i64 %237, 0
  br i1 %238, label %239, label %248

239:                                              ; preds = %222
  %240 = load ptr, ptr %26, align 8, !tbaa !5
  %241 = load i64, ptr %34, align 8, !tbaa !9
  %242 = load i64, ptr %35, align 8, !tbaa !9
  %243 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL14rbfv3_zerofillEPNS_10rbfv3modelEllPNS_8ae_stateE(ptr noundef %240, i64 noundef %241, i64 noundef %242, ptr noundef %243)
  %244 = load ptr, ptr %29, align 8, !tbaa !5
  %245 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %244, i32 0, i32 0
  store i64 1, ptr %245, align 8, !tbaa !40
  %246 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 10000, ptr %246, align 8, !tbaa !9
  %247 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %247)
  store i32 1, ptr %103, align 4
  br label %1271

248:                                              ; preds = %222
  %249 = load ptr, ptr %16, align 8, !tbaa !5
  %250 = load double, ptr %39, align 8, !tbaa !11
  %251 = load ptr, ptr %17, align 8, !tbaa !5
  %252 = load ptr, ptr %19, align 8, !tbaa !5
  %253 = load i64, ptr %18, align 8, !tbaa !9
  %254 = load i64, ptr %34, align 8, !tbaa !9
  %255 = load i64, ptr %35, align 8, !tbaa !9
  %256 = load i64, ptr %20, align 8, !tbaa !9
  %257 = load double, ptr %21, align 8, !tbaa !11
  %258 = load double, ptr %22, align 8, !tbaa !11
  %259 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL23rbfv3_preprocessdatasetEPKNS_9ae_matrixEdS2_PKNS_9ae_vectorEllllddPS0_S6_PS3_S7_PlS7_S7_PdS9_S9_PNS_8ae_stateE(ptr noundef %249, double noundef %250, ptr noundef %251, ptr noundef %252, i64 noundef %253, i64 noundef %254, i64 noundef %255, i64 noundef %256, double noundef %257, double noundef %258, ptr noundef %49, ptr noundef %50, ptr noundef %68, ptr noundef %69, ptr noundef %33, ptr noundef %61, ptr noundef %60, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %259)
  %260 = load i64, ptr %34, align 8, !tbaa !9
  %261 = add nsw i64 %260, 1
  %262 = load i64, ptr %33, align 8, !tbaa !9
  %263 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %261, i64 noundef %262, ptr noundef %52, ptr noundef %263)
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %264

264:                                              ; preds = %302, %248
  %265 = load i64, ptr %94, align 8, !tbaa !9
  %266 = load i64, ptr %33, align 8, !tbaa !9
  %267 = sub nsw i64 %266, 1
  %268 = icmp sle i64 %265, %267
  br i1 %268, label %269, label %305

269:                                              ; preds = %264
  store i64 0, ptr %95, align 8, !tbaa !9
  br label %270

270:                                              ; preds = %291, %269
  %271 = load i64, ptr %95, align 8, !tbaa !9
  %272 = load i64, ptr %34, align 8, !tbaa !9
  %273 = sub nsw i64 %272, 1
  %274 = icmp sle i64 %271, %273
  br i1 %274, label %275, label %294

275:                                              ; preds = %270
  %276 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %49, i32 0, i32 6
  %277 = load ptr, ptr %276, align 8, !tbaa !28
  %278 = load i64, ptr %94, align 8, !tbaa !9
  %279 = getelementptr inbounds ptr, ptr %277, i64 %278
  %280 = load ptr, ptr %279, align 8, !tbaa !5
  %281 = load i64, ptr %95, align 8, !tbaa !9
  %282 = getelementptr inbounds double, ptr %280, i64 %281
  %283 = load double, ptr %282, align 8, !tbaa !11
  %284 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %52, i32 0, i32 6
  %285 = load ptr, ptr %284, align 8, !tbaa !28
  %286 = load i64, ptr %95, align 8, !tbaa !9
  %287 = getelementptr inbounds ptr, ptr %285, i64 %286
  %288 = load ptr, ptr %287, align 8, !tbaa !5
  %289 = load i64, ptr %94, align 8, !tbaa !9
  %290 = getelementptr inbounds double, ptr %288, i64 %289
  store double %283, ptr %290, align 8, !tbaa !11
  br label %291

291:                                              ; preds = %275
  %292 = load i64, ptr %95, align 8, !tbaa !9
  %293 = add nsw i64 %292, 1
  store i64 %293, ptr %95, align 8, !tbaa !9
  br label %270, !llvm.loop !41

294:                                              ; preds = %270
  %295 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %52, i32 0, i32 6
  %296 = load ptr, ptr %295, align 8, !tbaa !28
  %297 = load i64, ptr %34, align 8, !tbaa !9
  %298 = getelementptr inbounds ptr, ptr %296, i64 %297
  %299 = load ptr, ptr %298, align 8, !tbaa !5
  %300 = load i64, ptr %94, align 8, !tbaa !9
  %301 = getelementptr inbounds double, ptr %299, i64 %300
  store double 1.000000e+00, ptr %301, align 8, !tbaa !11
  br label %302

302:                                              ; preds = %294
  %303 = load i64, ptr %94, align 8, !tbaa !9
  %304 = add nsw i64 %303, 1
  store i64 %304, ptr %94, align 8, !tbaa !9
  br label %264, !llvm.loop !42

305:                                              ; preds = %264
  %306 = load i64, ptr %24, align 8, !tbaa !9
  %307 = icmp eq i64 %306, -2
  br i1 %307, label %314, label %308

308:                                              ; preds = %305
  %309 = load i64, ptr %24, align 8, !tbaa !9
  %310 = icmp eq i64 %309, -1
  br i1 %310, label %314, label %311

311:                                              ; preds = %308
  %312 = load i64, ptr %24, align 8, !tbaa !9
  %313 = icmp eq i64 %312, 0
  br label %314

314:                                              ; preds = %311, %308, %305
  %315 = phi i1 [ true, %308 ], [ true, %305 ], [ %313, %311 ]
  %316 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %315, ptr noundef @.str.729, ptr noundef %316)
  %317 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %318 = trunc i8 %317 to i1
  br i1 %318, label %319, label %323

319:                                              ; preds = %314
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.734)
  %320 = load double, ptr %25, align 8, !tbaa !11
  %321 = load i64, ptr %24, align 8, !tbaa !9
  %322 = trunc i64 %321 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.735, double noundef %320, i32 noundef %322)
  br label %323

323:                                              ; preds = %319, %314
  %324 = load double, ptr %25, align 8, !tbaa !11
  %325 = load ptr, ptr %30, align 8, !tbaa !5
  %326 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %324, double noundef 0x3EB0C6F7A0B5ED8D, ptr noundef %325)
  store double %326, ptr %25, align 8, !tbaa !11
  store i64 0, ptr %42, align 8, !tbaa !9
  %327 = load i64, ptr %34, align 8, !tbaa !9
  %328 = sitofp i64 %327 to double
  %329 = load ptr, ptr %30, align 8, !tbaa !5
  %330 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 5.000000e+00, double noundef %328, ptr noundef %329)
  %331 = load ptr, ptr %30, align 8, !tbaa !5
  %332 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %330, ptr noundef %331)
  %333 = load ptr, ptr %30, align 8, !tbaa !5
  %334 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %332, i64 noundef 25, ptr noundef %333)
  store i64 %334, ptr %43, align 8, !tbaa !9
  %335 = load i64, ptr %34, align 8, !tbaa !9
  %336 = sitofp i64 %335 to double
  %337 = load ptr, ptr %30, align 8, !tbaa !5
  %338 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 5.000000e+00, double noundef %336, ptr noundef %337)
  %339 = load ptr, ptr %30, align 8, !tbaa !5
  %340 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %338, ptr noundef %339)
  store i64 %340, ptr %44, align 8, !tbaa !9
  store i64 32, ptr %41, align 8, !tbaa !9
  store i64 0, ptr %46, align 8, !tbaa !9
  %341 = load i64, ptr %33, align 8, !tbaa !9
  %342 = load ptr, ptr %30, align 8, !tbaa !5
  %343 = call noundef i64 @_ZN11alglib_impl5imin2EllPNS_8ae_stateE(i64 noundef 1000, i64 noundef %341, ptr noundef %342)
  store i64 %343, ptr %45, align 8, !tbaa !9
  %344 = load i64, ptr %33, align 8, !tbaa !9
  %345 = sitofp i64 %344 to double
  %346 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %345, double 1.000000e+01)
  %347 = load ptr, ptr %30, align 8, !tbaa !5
  %348 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %346, ptr noundef %347)
  %349 = load i64, ptr %33, align 8, !tbaa !9
  %350 = load ptr, ptr %30, align 8, !tbaa !5
  %351 = call noundef i64 @_ZN11alglib_impl5imin3ElllPNS_8ae_stateE(i64 noundef %348, i64 noundef 2048, i64 noundef %349, ptr noundef %350)
  store i64 %351, ptr %47, align 8, !tbaa !9
  %352 = load i64, ptr @_ZN11alglib_implL25rbfv3_defaultmaxpanelsizeE, align 8, !tbaa !9
  store i64 %352, ptr %48, align 8, !tbaa !9
  store double 0.000000e+00, ptr %102, align 8, !tbaa !11
  %353 = load i64, ptr %24, align 8, !tbaa !9
  %354 = icmp eq i64 %353, -1
  br i1 %354, label %358, label %355

355:                                              ; preds = %323
  %356 = load i64, ptr %24, align 8, !tbaa !9
  %357 = icmp eq i64 %356, -2
  br i1 %357, label %358, label %375

358:                                              ; preds = %355, %323
  %359 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %360 = trunc i8 %359 to i1
  br i1 %360, label %361, label %362

361:                                              ; preds = %358
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.736)
  br label %362

362:                                              ; preds = %361, %358
  store i64 16, ptr %41, align 8, !tbaa !9
  store i64 3, ptr %46, align 8, !tbaa !9
  store i64 16, ptr %45, align 8, !tbaa !9
  %363 = load i64, ptr %33, align 8, !tbaa !9
  %364 = sitofp i64 %363 to double
  %365 = call double @llvm.fmuladd.f64(double 5.000000e-02, double %364, double 2.000000e+00)
  %366 = load ptr, ptr %30, align 8, !tbaa !5
  %367 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %365, ptr noundef %366)
  %368 = load i64, ptr %33, align 8, !tbaa !9
  %369 = load ptr, ptr %30, align 8, !tbaa !5
  %370 = call noundef i64 @_ZN11alglib_impl5imin3ElllPNS_8ae_stateE(i64 noundef %367, i64 noundef 512, i64 noundef %368, ptr noundef %369)
  store i64 %370, ptr %47, align 8, !tbaa !9
  store i64 16, ptr %48, align 8, !tbaa !9
  %371 = load i64, ptr %24, align 8, !tbaa !9
  %372 = icmp eq i64 %371, -2
  br i1 %372, label %373, label %374

373:                                              ; preds = %362
  store double 0x3EB0C6F7A0B5ED8D, ptr %102, align 8, !tbaa !11
  br label %374

374:                                              ; preds = %373, %362
  br label %375

375:                                              ; preds = %374, %355
  %376 = load double, ptr %25, align 8, !tbaa !11
  store double %376, ptr %32, align 8, !tbaa !11
  %377 = load i64, ptr %33, align 8, !tbaa !9
  %378 = load i64, ptr %34, align 8, !tbaa !9
  %379 = load i64, ptr %48, align 8, !tbaa !9
  %380 = load i64, ptr %20, align 8, !tbaa !9
  %381 = load double, ptr %36, align 8, !tbaa !11
  %382 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %383 = trunc i8 %382 to i1
  %384 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL23rbfv3_fastevaluatorinitEPNS_17rbf3fastevaluatorEPKNS_9ae_matrixEllllldbPNS_8ae_stateE(ptr noundef %54, ptr noundef %49, i64 noundef %377, i64 noundef %378, i64 noundef 1, i64 noundef %379, i64 noundef %380, double noundef %381, i1 noundef zeroext %383, ptr noundef %384)
  store i64 1, ptr %40, align 8, !tbaa !9
  %385 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %386 = trunc i8 %385 to i1
  br i1 %386, label %387, label %448

387:                                              ; preds = %375
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.737)
  %388 = load i64, ptr %33, align 8, !tbaa !9
  %389 = trunc i64 %388 to i32
  %390 = load i64, ptr %34, align 8, !tbaa !9
  %391 = trunc i64 %390 to i32
  %392 = load i64, ptr %35, align 8, !tbaa !9
  %393 = trunc i64 %392 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.738, i32 noundef %389, i32 noundef %391, i32 noundef %393)
  %394 = load i64, ptr %20, align 8, !tbaa !9
  %395 = trunc i64 %394 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.739, i32 noundef %395)
  %396 = load i64, ptr %20, align 8, !tbaa !9
  %397 = icmp eq i64 %396, 1
  br i1 %397, label %398, label %403

398:                                              ; preds = %387
  %399 = load double, ptr %21, align 8, !tbaa !11
  %400 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %399, double noundef 0.000000e+00)
  br i1 %400, label %401, label %403

401:                                              ; preds = %398
  %402 = load double, ptr %21, align 8, !tbaa !11
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.740, double noundef %402)
  br label %403

403:                                              ; preds = %401, %398, %387
  %404 = load i64, ptr %20, align 8, !tbaa !9
  %405 = icmp eq i64 %404, 1
  br i1 %405, label %406, label %410

406:                                              ; preds = %403
  %407 = load double, ptr %21, align 8, !tbaa !11
  %408 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %407, double noundef 0.000000e+00)
  br i1 %408, label %409, label %410

409:                                              ; preds = %406
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.741)
  br label %410

410:                                              ; preds = %409, %406, %403
  %411 = load i64, ptr %20, align 8, !tbaa !9
  %412 = icmp eq i64 %411, 1
  br i1 %412, label %413, label %420

413:                                              ; preds = %410
  %414 = load double, ptr %21, align 8, !tbaa !11
  %415 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %414, double noundef 0.000000e+00)
  br i1 %415, label %416, label %420

416:                                              ; preds = %413
  %417 = load double, ptr %21, align 8, !tbaa !11
  %418 = fneg double %417
  %419 = load double, ptr %36, align 8, !tbaa !11
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.742, double noundef %418, double noundef %419)
  br label %420

420:                                              ; preds = %416, %413, %410
  %421 = load i64, ptr %20, align 8, !tbaa !9
  %422 = icmp eq i64 %421, 2
  br i1 %422, label %423, label %424

423:                                              ; preds = %420
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.743)
  br label %424

424:                                              ; preds = %423, %420
  %425 = load i64, ptr %20, align 8, !tbaa !9
  %426 = icmp eq i64 %425, 3
  br i1 %426, label %427, label %428

427:                                              ; preds = %424
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.744)
  br label %428

428:                                              ; preds = %427, %424
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.745)
  %429 = load i64, ptr %23, align 8, !tbaa !9
  %430 = trunc i64 %429 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.746, i32 noundef %430)
  %431 = load i64, ptr %23, align 8, !tbaa !9
  %432 = icmp eq i64 %431, 1
  br i1 %432, label %433, label %434

433:                                              ; preds = %428
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.747)
  br label %434

434:                                              ; preds = %433, %428
  %435 = load i64, ptr %23, align 8, !tbaa !9
  %436 = icmp eq i64 %435, 2
  br i1 %436, label %437, label %438

437:                                              ; preds = %434
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.748)
  br label %438

438:                                              ; preds = %437, %434
  %439 = load i64, ptr %23, align 8, !tbaa !9
  %440 = icmp eq i64 %439, 3
  br i1 %440, label %441, label %442

441:                                              ; preds = %438
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.749)
  br label %442

442:                                              ; preds = %441, %438
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.745)
  %443 = load double, ptr %22, align 8, !tbaa !11
  %444 = load double, ptr %37, align 8, !tbaa !11
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.750, double noundef %443, double noundef %444)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.751)
  %445 = load ptr, ptr %19, align 8, !tbaa !5
  %446 = load i64, ptr %34, align 8, !tbaa !9
  %447 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl13tracevectore3EPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %445, i64 noundef 0, i64 noundef %446, ptr noundef %447)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.752)
  br label %448

448:                                              ; preds = %442, %375
  %449 = load i64, ptr %86, align 8, !tbaa !9
  %450 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %451 = sub nsw i64 %449, %450
  store i64 %451, ptr %86, align 8, !tbaa !9
  %452 = load i64, ptr %33, align 8, !tbaa !9
  %453 = load i64, ptr %34, align 8, !tbaa !9
  %454 = load i64, ptr %20, align 8, !tbaa !9
  %455 = load double, ptr %36, align 8, !tbaa !11
  %456 = load i64, ptr %40, align 8, !tbaa !9
  %457 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL21rbfv3_modelmatrixinitEPKNS_9ae_matrixEllldlPNS_13rbf3evaluatorEPNS_8ae_stateE(ptr noundef %49, i64 noundef %452, i64 noundef %453, i64 noundef %454, double noundef %455, i64 noundef %456, ptr noundef %53, ptr noundef %457)
  %458 = load i64, ptr %86, align 8, !tbaa !9
  %459 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %460 = add nsw i64 %458, %459
  store i64 %460, ptr %86, align 8, !tbaa !9
  %461 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %466

463:                                              ; preds = %448
  %464 = load i64, ptr %86, align 8, !tbaa !9
  %465 = trunc i64 %464 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.753, i32 noundef %465)
  br label %466

466:                                              ; preds = %463, %448
  %467 = load i64, ptr %34, align 8, !tbaa !9
  %468 = add nsw i64 %467, 1
  %469 = load i64, ptr %33, align 8, !tbaa !9
  %470 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %468, i64 noundef %469, ptr noundef %66, ptr noundef %470)
  %471 = load i64, ptr %33, align 8, !tbaa !9
  %472 = load i64, ptr %33, align 8, !tbaa !9
  %473 = sitofp i64 %472 to double
  %474 = load ptr, ptr %30, align 8, !tbaa !5
  %475 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %473, ptr noundef %474)
  %476 = fdiv double 1.000000e+00, %475
  %477 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %471, double noundef %476, ptr noundef %66, i64 noundef 0, ptr noundef %477)
  store i64 1, ptr %67, align 8, !tbaa !9
  %478 = load i64, ptr %33, align 8, !tbaa !9
  %479 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %478, ptr noundef %56, ptr noundef %479)
  store i64 0, ptr %96, align 8, !tbaa !9
  br label %480

480:                                              ; preds = %537, %466
  %481 = load i64, ptr %96, align 8, !tbaa !9
  %482 = load i64, ptr %34, align 8, !tbaa !9
  %483 = sub nsw i64 %482, 1
  %484 = icmp sle i64 %481, %483
  br i1 %484, label %485, label %540

485:                                              ; preds = %480
  store i64 0, ptr %95, align 8, !tbaa !9
  br label %486

486:                                              ; preds = %504, %485
  %487 = load i64, ptr %95, align 8, !tbaa !9
  %488 = load i64, ptr %33, align 8, !tbaa !9
  %489 = sub nsw i64 %488, 1
  %490 = icmp sle i64 %487, %489
  br i1 %490, label %491, label %507

491:                                              ; preds = %486
  %492 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %49, i32 0, i32 6
  %493 = load ptr, ptr %492, align 8, !tbaa !28
  %494 = load i64, ptr %95, align 8, !tbaa !9
  %495 = getelementptr inbounds ptr, ptr %493, i64 %494
  %496 = load ptr, ptr %495, align 8, !tbaa !5
  %497 = load i64, ptr %96, align 8, !tbaa !9
  %498 = getelementptr inbounds double, ptr %496, i64 %497
  %499 = load double, ptr %498, align 8, !tbaa !11
  %500 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %56, i32 0, i32 4
  %501 = load ptr, ptr %500, align 8, !tbaa !28
  %502 = load i64, ptr %95, align 8, !tbaa !9
  %503 = getelementptr inbounds double, ptr %501, i64 %502
  store double %499, ptr %503, align 8, !tbaa !11
  br label %504

504:                                              ; preds = %491
  %505 = load i64, ptr %95, align 8, !tbaa !9
  %506 = add nsw i64 %505, 1
  store i64 %506, ptr %95, align 8, !tbaa !9
  br label %486, !llvm.loop !43

507:                                              ; preds = %486
  %508 = load i64, ptr %33, align 8, !tbaa !9
  %509 = load ptr, ptr %30, align 8, !tbaa !5
  %510 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %508, ptr noundef %56, ptr noundef %509)
  %511 = load ptr, ptr %30, align 8, !tbaa !5
  %512 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %510, ptr noundef %511)
  store double %512, ptr %97, align 8, !tbaa !11
  %513 = load i64, ptr %67, align 8, !tbaa !9
  %514 = load i64, ptr %33, align 8, !tbaa !9
  %515 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl18rowwisegramschmidtEPKNS_9ae_matrixEllPNS_9ae_vectorES4_bPNS_8ae_stateE(ptr noundef %66, i64 noundef %513, i64 noundef %514, ptr noundef %56, ptr noundef %56, i1 noundef zeroext false, ptr noundef %515)
  %516 = load i64, ptr %33, align 8, !tbaa !9
  %517 = load ptr, ptr %30, align 8, !tbaa !5
  %518 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %516, ptr noundef %56, ptr noundef %517)
  %519 = load ptr, ptr %30, align 8, !tbaa !5
  %520 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %518, ptr noundef %519)
  store double %520, ptr %98, align 8, !tbaa !11
  %521 = load double, ptr %98, align 8, !tbaa !11
  %522 = load ptr, ptr %30, align 8, !tbaa !5
  %523 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %522)
  %524 = load double, ptr %97, align 8, !tbaa !11
  %525 = fadd double %524, 1.000000e+00
  %526 = fmul double %523, %525
  %527 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %521, double noundef %526)
  br i1 %527, label %528, label %536

528:                                              ; preds = %507
  %529 = load i64, ptr %33, align 8, !tbaa !9
  %530 = load double, ptr %98, align 8, !tbaa !11
  %531 = fdiv double 1.000000e+00, %530
  %532 = load i64, ptr %67, align 8, !tbaa !9
  %533 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rcopymulvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %529, double noundef %531, ptr noundef %56, ptr noundef %66, i64 noundef %532, ptr noundef %533)
  %534 = load i64, ptr %67, align 8, !tbaa !9
  %535 = add nsw i64 %534, 1
  store i64 %535, ptr %67, align 8, !tbaa !9
  br label %536

536:                                              ; preds = %528, %507
  br label %537

537:                                              ; preds = %536
  %538 = load i64, ptr %96, align 8, !tbaa !9
  %539 = add nsw i64 %538, 1
  store i64 %539, ptr %96, align 8, !tbaa !9
  br label %480, !llvm.loop !44

540:                                              ; preds = %480
  %541 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %542 = trunc i8 %541 to i1
  br i1 %542, label %543, label %552

543:                                              ; preds = %540
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.754)
  %544 = load i64, ptr %42, align 8, !tbaa !9
  %545 = trunc i64 %544 to i32
  %546 = load i64, ptr %43, align 8, !tbaa !9
  %547 = trunc i64 %546 to i32
  %548 = load i64, ptr %44, align 8, !tbaa !9
  %549 = trunc i64 %548 to i32
  %550 = load i64, ptr %41, align 8, !tbaa !9
  %551 = trunc i64 %550 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.755, i32 noundef %545, i32 noundef %547, i32 noundef %549, i32 noundef %551)
  br label %552

552:                                              ; preds = %543, %540
  %553 = load i64, ptr %85, align 8, !tbaa !9
  %554 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %555 = sub nsw i64 %553, %554
  store i64 %555, ptr %85, align 8, !tbaa !9
  %556 = load i64, ptr %33, align 8, !tbaa !9
  %557 = load i64, ptr %34, align 8, !tbaa !9
  %558 = load i64, ptr %20, align 8, !tbaa !9
  %559 = load double, ptr %36, align 8, !tbaa !11
  %560 = load i64, ptr %23, align 8, !tbaa !9
  %561 = load i64, ptr %41, align 8, !tbaa !9
  %562 = load i64, ptr %42, align 8, !tbaa !9
  %563 = load i64, ptr %43, align 8, !tbaa !9
  %564 = load i64, ptr %44, align 8, !tbaa !9
  %565 = load double, ptr %37, align 8, !tbaa !11
  %566 = load double, ptr %102, align 8, !tbaa !11
  %567 = fadd double %565, %566
  %568 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL31rbfv3_computeacbfpreconditionerEPKNS_9ae_matrixEllldllllllldPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %49, i64 noundef %556, i64 noundef %557, i64 noundef %558, double noundef %559, i64 noundef %560, i64 noundef %561, i64 noundef %562, i64 noundef %563, i64 noundef %564, i64 noundef 5, i64 noundef 2, double noundef %567, ptr noundef %71, ptr noundef %568)
  %569 = load i64, ptr %85, align 8, !tbaa !9
  %570 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %571 = add nsw i64 %569, %570
  store i64 %571, ptr %85, align 8, !tbaa !9
  %572 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %573 = trunc i8 %572 to i1
  br i1 %573, label %574, label %577

574:                                              ; preds = %552
  %575 = load i64, ptr %85, align 8, !tbaa !9
  %576 = trunc i64 %575 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.756, i32 noundef %576)
  br label %577

577:                                              ; preds = %574, %552
  %578 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %579 = trunc i8 %578 to i1
  br i1 %579, label %580, label %581

580:                                              ; preds = %577
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.757)
  br label %581

581:                                              ; preds = %580, %577
  %582 = load i64, ptr %33, align 8, !tbaa !9
  %583 = load i64, ptr %34, align 8, !tbaa !9
  %584 = add nsw i64 %582, %583
  %585 = add nsw i64 %584, 1
  %586 = load i64, ptr %35, align 8, !tbaa !9
  %587 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %585, i64 noundef %586, double noundef 0.000000e+00, ptr noundef %62, ptr noundef %587)
  %588 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %589 = trunc i8 %588 to i1
  br i1 %589, label %590, label %597

590:                                              ; preds = %581
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.758)
  %591 = load i64, ptr %46, align 8, !tbaa !9
  %592 = trunc i64 %591 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.759, i32 noundef %592)
  %593 = load i64, ptr %45, align 8, !tbaa !9
  %594 = trunc i64 %593 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.760, i32 noundef %594)
  %595 = load i64, ptr %47, align 8, !tbaa !9
  %596 = trunc i64 %595 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.761, i32 noundef %596)
  br label %597

597:                                              ; preds = %590, %581
  %598 = load double, ptr %38, align 8, !tbaa !11
  %599 = load i64, ptr %33, align 8, !tbaa !9
  %600 = load i64, ptr %34, align 8, !tbaa !9
  %601 = load i64, ptr %20, align 8, !tbaa !9
  %602 = load double, ptr %36, align 8, !tbaa !11
  %603 = load double, ptr %37, align 8, !tbaa !11
  %604 = load i64, ptr %23, align 8, !tbaa !9
  %605 = load i64, ptr %46, align 8, !tbaa !9
  %606 = load i64, ptr %45, align 8, !tbaa !9
  %607 = load i64, ptr %47, align 8, !tbaa !9
  %608 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %609 = trunc i8 %608 to i1
  %610 = load i8, ptr %80, align 1, !tbaa !31, !range !32, !noundef !33
  %611 = trunc i8 %610 to i1
  %612 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL19rbfv3_ddmsolverinitEPKNS_9ae_matrixEdllPKNS_13rbf3evaluatorElddlPKNS_12sparsematrixElllbbPNS_13rbf3ddmsolverEPlSB_PNS_8ae_stateE(ptr noundef %49, double noundef %598, i64 noundef %599, i64 noundef %600, ptr noundef %53, i64 noundef %601, double noundef %602, double noundef %603, i64 noundef %604, ptr noundef %71, i64 noundef %605, i64 noundef %606, i64 noundef %607, i1 noundef zeroext %609, i1 noundef zeroext %611, ptr noundef %74, ptr noundef %87, ptr noundef %89, ptr noundef %612)
  %613 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %614 = trunc i8 %613 to i1
  br i1 %614, label %615, label %627

615:                                              ; preds = %597
  %616 = load i64, ptr %87, align 8, !tbaa !9
  %617 = trunc i64 %616 to i32
  %618 = getelementptr inbounds %"struct.alglib_impl::rbf3ddmsolver", ptr %74, i32 0, i32 3
  %619 = load i64, ptr %618, align 8, !tbaa !45
  %620 = trunc i64 %619 to i32
  %621 = getelementptr inbounds %"struct.alglib_impl::rbf3ddmsolver", ptr %74, i32 0, i32 13
  %622 = load i64, ptr %621, align 8, !tbaa !49
  %623 = trunc i64 %622 to i32
  %624 = getelementptr inbounds %"struct.alglib_impl::rbf3ddmsolver", ptr %74, i32 0, i32 14
  %625 = load i64, ptr %624, align 8, !tbaa !50
  %626 = trunc i64 %625 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.762, i32 noundef %617, i32 noundef %620, i32 noundef %623, i32 noundef %626)
  br label %627

627:                                              ; preds = %615, %597
  %628 = load ptr, ptr %29, align 8, !tbaa !5
  %629 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %628, i32 0, i32 2
  store double 0.000000e+00, ptr %629, align 8, !tbaa !36
  %630 = load ptr, ptr %29, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %630, i32 0, i32 1
  store double 0.000000e+00, ptr %631, align 8, !tbaa !34
  %632 = load ptr, ptr %29, align 8, !tbaa !5
  %633 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %632, i32 0, i32 3
  store i64 0, ptr %633, align 8, !tbaa !37
  store i64 0, ptr %78, align 8, !tbaa !9
  br label %634

634:                                              ; preds = %919, %627
  %635 = load i64, ptr %78, align 8, !tbaa !9
  %636 = load i64, ptr %35, align 8, !tbaa !9
  %637 = sub nsw i64 %636, 1
  %638 = icmp sle i64 %635, %637
  br i1 %638, label %639, label %922

639:                                              ; preds = %634
  %640 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %641 = trunc i8 %640 to i1
  br i1 %641, label %642, label %645

642:                                              ; preds = %639
  %643 = load i64, ptr %78, align 8, !tbaa !9
  %644 = trunc i64 %643 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.763, i32 noundef %644)
  br label %645

645:                                              ; preds = %642, %639
  %646 = load i64, ptr %33, align 8, !tbaa !9
  %647 = load i64, ptr %34, align 8, !tbaa !9
  %648 = add nsw i64 %646, %647
  %649 = add nsw i64 %648, 1
  %650 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %649, double noundef 0.000000e+00, ptr noundef %58, ptr noundef %650)
  %651 = load i64, ptr %33, align 8, !tbaa !9
  %652 = load i64, ptr %34, align 8, !tbaa !9
  %653 = add nsw i64 %651, %652
  %654 = add nsw i64 %653, 1
  %655 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %654, double noundef 0.000000e+00, ptr noundef %59, ptr noundef %655)
  %656 = load i64, ptr %33, align 8, !tbaa !9
  %657 = load i64, ptr %78, align 8, !tbaa !9
  %658 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopycvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %656, ptr noundef %50, i64 noundef %657, ptr noundef %58, ptr noundef %658)
  %659 = load i64, ptr %33, align 8, !tbaa !9
  %660 = load ptr, ptr %30, align 8, !tbaa !5
  %661 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %659, ptr noundef %58, ptr noundef %660)
  %662 = load ptr, ptr %30, align 8, !tbaa !5
  %663 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %661, ptr noundef %662)
  store double %663, ptr %76, align 8, !tbaa !11
  %664 = load i64, ptr %33, align 8, !tbaa !9
  %665 = load i64, ptr @_ZN11alglib_implL15rbfv3_maxddmitsE, align 8, !tbaa !9
  %666 = load i64, ptr %33, align 8, !tbaa !9
  %667 = load ptr, ptr %30, align 8, !tbaa !5
  %668 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %665, i64 noundef %666, ptr noundef %667)
  %669 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl15fblsgmrescreateEPKNS_9ae_vectorEllPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef %58, i64 noundef %664, i64 noundef %668, ptr noundef %81, ptr noundef %669)
  %670 = load double, ptr %25, align 8, !tbaa !11
  %671 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 16
  store double %670, ptr %671, align 8, !tbaa !51
  %672 = load double, ptr @_ZN11alglib_implL12rbfv3_epsredE, align 8, !tbaa !11
  %673 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 17
  store double %672, ptr %673, align 8, !tbaa !55
  store i64 0, ptr %77, align 8, !tbaa !9
  br label %674

674:                                              ; preds = %780, %645
  %675 = load ptr, ptr %30, align 8, !tbaa !5
  %676 = call noundef zeroext i1 @_ZN11alglib_impl18fblsgmresiterationEPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef %81, ptr noundef %675)
  br i1 %676, label %677, label %783

677:                                              ; preds = %674
  %678 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %679 = trunc i8 %678 to i1
  br i1 %679, label %680, label %685

680:                                              ; preds = %677
  %681 = load i64, ptr %77, align 8, !tbaa !9
  %682 = trunc i64 %681 to i32
  %683 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 21
  %684 = load double, ptr %683, align 8, !tbaa !56
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.764, i32 noundef %682, double noundef %684)
  br label %685

685:                                              ; preds = %680, %677
  %686 = load i64, ptr %33, align 8, !tbaa !9
  %687 = load i64, ptr %34, align 8, !tbaa !9
  %688 = add nsw i64 %686, %687
  %689 = add nsw i64 %688, 1
  %690 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %689, ptr noundef %58, ptr noundef %690)
  %691 = load i64, ptr %33, align 8, !tbaa !9
  %692 = load i64, ptr %34, align 8, !tbaa !9
  %693 = add nsw i64 %691, %692
  %694 = add nsw i64 %693, 1
  %695 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %694, ptr noundef %59, ptr noundef %695)
  %696 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 1
  %697 = load i64, ptr %33, align 8, !tbaa !9
  %698 = load i64, ptr %34, align 8, !tbaa !9
  %699 = load double, ptr %32, align 8, !tbaa !11
  %700 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL19rbfv3_ddmsolverrun1EPNS_13rbf3ddmsolverEPKNS_9ae_vectorEllPKNS_12sparsematrixEPNS_13rbf3evaluatorEPNS_17rbf3fastevaluatorEdPS2_PlSD_PNS_8ae_stateE(ptr noundef %74, ptr noundef %696, i64 noundef %697, i64 noundef %698, ptr noundef %71, ptr noundef %53, ptr noundef %54, double noundef %699, ptr noundef %58, ptr noundef %88, ptr noundef %90, ptr noundef %700)
  %701 = load i64, ptr %91, align 8, !tbaa !9
  %702 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %703 = sub nsw i64 %701, %702
  store i64 %703, ptr %91, align 8, !tbaa !9
  %704 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL30rbfv3_fastevaluatorloadcoeffs1EPNS_17rbf3fastevaluatorEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %54, ptr noundef %58, ptr noundef %704)
  %705 = load double, ptr %32, align 8, !tbaa !11
  %706 = load double, ptr %76, align 8, !tbaa !11
  %707 = fmul double %705, %706
  %708 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL26rbfv3_fastevaluatorpushtolEPNS_17rbf3fastevaluatorEdPNS_8ae_stateE(ptr noundef %54, double noundef %707, ptr noundef %708)
  %709 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL29rbfv3_fastevaluatorcomputeallEPNS_17rbf3fastevaluatorEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %54, ptr noundef %59, ptr noundef %709)
  %710 = getelementptr inbounds %"struct.alglib_impl::rbf3fastevaluator", ptr %54, i32 0, i32 17
  %711 = load i64, ptr %710, align 8, !tbaa !57
  %712 = sitofp i64 %711 to double
  %713 = load ptr, ptr %30, align 8, !tbaa !5
  %714 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %712, ptr noundef %713)
  %715 = getelementptr inbounds %"struct.alglib_impl::rbf3fastevaluator", ptr %54, i32 0, i32 15
  %716 = load i64, ptr %715, align 8, !tbaa !58
  %717 = getelementptr inbounds %"struct.alglib_impl::rbf3fastevaluator", ptr %54, i32 0, i32 16
  %718 = load i64, ptr %717, align 8, !tbaa !59
  %719 = add nsw i64 %716, %718
  %720 = sitofp i64 %719 to double
  %721 = load ptr, ptr %30, align 8, !tbaa !5
  %722 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %720, double noundef 1.000000e+00, ptr noundef %721)
  %723 = fdiv double %714, %722
  %724 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl18savgcounterenqueueEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef %93, double noundef %723, ptr noundef %724)
  %725 = load i64, ptr %33, align 8, !tbaa !9
  %726 = load i64, ptr %34, align 8, !tbaa !9
  %727 = add nsw i64 %726, 1
  %728 = load i64, ptr %33, align 8, !tbaa !9
  %729 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rgemvxElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %725, i64 noundef %727, double noundef 1.000000e+00, ptr noundef %52, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef %58, i64 noundef %728, double noundef 1.000000e+00, ptr noundef %59, i64 noundef 0, ptr noundef %729)
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %730

730:                                              ; preds = %752, %685
  %731 = load i64, ptr %94, align 8, !tbaa !9
  %732 = load i64, ptr %33, align 8, !tbaa !9
  %733 = sub nsw i64 %732, 1
  %734 = icmp sle i64 %731, %733
  br i1 %734, label %735, label %755

735:                                              ; preds = %730
  %736 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %59, i32 0, i32 4
  %737 = load ptr, ptr %736, align 8, !tbaa !28
  %738 = load i64, ptr %94, align 8, !tbaa !9
  %739 = getelementptr inbounds double, ptr %737, i64 %738
  %740 = load double, ptr %739, align 8, !tbaa !11
  %741 = load double, ptr %37, align 8, !tbaa !11
  %742 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %58, i32 0, i32 4
  %743 = load ptr, ptr %742, align 8, !tbaa !28
  %744 = load i64, ptr %94, align 8, !tbaa !9
  %745 = getelementptr inbounds double, ptr %743, i64 %744
  %746 = load double, ptr %745, align 8, !tbaa !11
  %747 = call double @llvm.fmuladd.f64(double %741, double %746, double %740)
  %748 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %59, i32 0, i32 4
  %749 = load ptr, ptr %748, align 8, !tbaa !28
  %750 = load i64, ptr %94, align 8, !tbaa !9
  %751 = getelementptr inbounds double, ptr %749, i64 %750
  store double %747, ptr %751, align 8, !tbaa !11
  br label %752

752:                                              ; preds = %735
  %753 = load i64, ptr %94, align 8, !tbaa !9
  %754 = add nsw i64 %753, 1
  store i64 %754, ptr %94, align 8, !tbaa !9
  br label %730, !llvm.loop !60

755:                                              ; preds = %730
  %756 = load i64, ptr %91, align 8, !tbaa !9
  %757 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %758 = add nsw i64 %756, %757
  store i64 %758, ptr %91, align 8, !tbaa !9
  %759 = load i64, ptr %33, align 8, !tbaa !9
  %760 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 2
  %761 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %759, ptr noundef %59, ptr noundef %760, ptr noundef %761)
  %762 = load ptr, ptr %29, align 8, !tbaa !5
  %763 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %762, i32 0, i32 3
  %764 = load i64, ptr %763, align 8, !tbaa !37
  %765 = add nsw i64 %764, 1
  %766 = load ptr, ptr %29, align 8, !tbaa !5
  %767 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %766, i32 0, i32 3
  store i64 %765, ptr %767, align 8, !tbaa !37
  %768 = load i64, ptr %77, align 8, !tbaa !9
  %769 = icmp eq i64 %768, 1
  br i1 %769, label %770, label %780

770:                                              ; preds = %755
  %771 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 21
  %772 = load double, ptr %771, align 8, !tbaa !56
  %773 = load ptr, ptr %26, align 8, !tbaa !5
  %774 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %773, i32 0, i32 14
  %775 = load double, ptr %774, align 8, !tbaa !39
  %776 = load ptr, ptr %30, align 8, !tbaa !5
  %777 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %772, double noundef %775, ptr noundef %776)
  %778 = load ptr, ptr %26, align 8, !tbaa !5
  %779 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %778, i32 0, i32 14
  store double %777, ptr %779, align 8, !tbaa !39
  br label %780

780:                                              ; preds = %770, %755
  %781 = load i64, ptr %77, align 8, !tbaa !9
  %782 = add nsw i64 %781, 1
  store i64 %782, ptr %77, align 8, !tbaa !9
  br label %674, !llvm.loop !61

783:                                              ; preds = %674
  %784 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 3
  %785 = load i64, ptr %33, align 8, !tbaa !9
  %786 = load i64, ptr %34, align 8, !tbaa !9
  %787 = load double, ptr %32, align 8, !tbaa !11
  %788 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL19rbfv3_ddmsolverrun1EPNS_13rbf3ddmsolverEPKNS_9ae_vectorEllPKNS_12sparsematrixEPNS_13rbf3evaluatorEPNS_17rbf3fastevaluatorEdPS2_PlSD_PNS_8ae_stateE(ptr noundef %74, ptr noundef %784, i64 noundef %785, i64 noundef %786, ptr noundef %71, ptr noundef %53, ptr noundef %54, double noundef %787, ptr noundef %57, ptr noundef %88, ptr noundef %90, ptr noundef %788)
  %789 = load i64, ptr %33, align 8, !tbaa !9
  %790 = load i64, ptr %34, align 8, !tbaa !9
  %791 = add nsw i64 %789, %790
  %792 = add nsw i64 %791, 1
  %793 = load ptr, ptr %30, align 8, !tbaa !5
  %794 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %792, ptr noundef %57, ptr noundef %793)
  %795 = load ptr, ptr %30, align 8, !tbaa !5
  %796 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %794, ptr noundef %795)
  %797 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %796, ptr noundef @.str.765, ptr noundef %797)
  %798 = load i64, ptr %33, align 8, !tbaa !9
  %799 = load i64, ptr %34, align 8, !tbaa !9
  %800 = add nsw i64 %798, %799
  %801 = add nsw i64 %800, 1
  %802 = load i64, ptr %78, align 8, !tbaa !9
  %803 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvcElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %801, ptr noundef %57, ptr noundef %62, i64 noundef %802, ptr noundef %803)
  %804 = load i64, ptr %91, align 8, !tbaa !9
  %805 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %806 = sub nsw i64 %804, %805
  store i64 %806, ptr %91, align 8, !tbaa !9
  %807 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL30rbfv3_fastevaluatorloadcoeffs1EPNS_17rbf3fastevaluatorEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %54, ptr noundef %57, ptr noundef %807)
  %808 = load double, ptr %32, align 8, !tbaa !11
  %809 = load double, ptr %76, align 8, !tbaa !11
  %810 = fmul double %808, %809
  %811 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL26rbfv3_fastevaluatorpushtolEPNS_17rbf3fastevaluatorEdPNS_8ae_stateE(ptr noundef %54, double noundef %810, ptr noundef %811)
  %812 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL29rbfv3_fastevaluatorcomputeallEPNS_17rbf3fastevaluatorEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %54, ptr noundef %59, ptr noundef %812)
  %813 = load i64, ptr %33, align 8, !tbaa !9
  %814 = load i64, ptr %34, align 8, !tbaa !9
  %815 = add nsw i64 %814, 1
  %816 = load i64, ptr %33, align 8, !tbaa !9
  %817 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rgemvxElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %813, i64 noundef %815, double noundef 1.000000e+00, ptr noundef %52, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef %57, i64 noundef %816, double noundef 1.000000e+00, ptr noundef %59, i64 noundef 0, ptr noundef %817)
  %818 = load i64, ptr %91, align 8, !tbaa !9
  %819 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %820 = add nsw i64 %818, %819
  store i64 %820, ptr %91, align 8, !tbaa !9
  store double 0.000000e+00, ptr %75, align 8, !tbaa !11
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %821

821:                                              ; preds = %853, %783
  %822 = load i64, ptr %94, align 8, !tbaa !9
  %823 = load i64, ptr %33, align 8, !tbaa !9
  %824 = sub nsw i64 %823, 1
  %825 = icmp sle i64 %822, %824
  br i1 %825, label %826, label %856

826:                                              ; preds = %821
  %827 = load double, ptr %75, align 8, !tbaa !11
  %828 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %50, i32 0, i32 6
  %829 = load ptr, ptr %828, align 8, !tbaa !28
  %830 = load i64, ptr %94, align 8, !tbaa !9
  %831 = getelementptr inbounds ptr, ptr %829, i64 %830
  %832 = load ptr, ptr %831, align 8, !tbaa !5
  %833 = load i64, ptr %78, align 8, !tbaa !9
  %834 = getelementptr inbounds double, ptr %832, i64 %833
  %835 = load double, ptr %834, align 8, !tbaa !11
  %836 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %59, i32 0, i32 4
  %837 = load ptr, ptr %836, align 8, !tbaa !28
  %838 = load i64, ptr %94, align 8, !tbaa !9
  %839 = getelementptr inbounds double, ptr %837, i64 %838
  %840 = load double, ptr %839, align 8, !tbaa !11
  %841 = fsub double %835, %840
  %842 = load double, ptr %37, align 8, !tbaa !11
  %843 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %57, i32 0, i32 4
  %844 = load ptr, ptr %843, align 8, !tbaa !28
  %845 = load i64, ptr %94, align 8, !tbaa !9
  %846 = getelementptr inbounds double, ptr %844, i64 %845
  %847 = load double, ptr %846, align 8, !tbaa !11
  %848 = fneg double %842
  %849 = call double @llvm.fmuladd.f64(double %848, double %847, double %841)
  %850 = load ptr, ptr %30, align 8, !tbaa !5
  %851 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %849, ptr noundef %850)
  %852 = fadd double %827, %851
  store double %852, ptr %75, align 8, !tbaa !11
  br label %853

853:                                              ; preds = %826
  %854 = load i64, ptr %94, align 8, !tbaa !9
  %855 = add nsw i64 %854, 1
  store i64 %855, ptr %94, align 8, !tbaa !9
  br label %821, !llvm.loop !62

856:                                              ; preds = %821
  %857 = load double, ptr %75, align 8, !tbaa !11
  %858 = load ptr, ptr %30, align 8, !tbaa !5
  %859 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %857, ptr noundef %858)
  store double %859, ptr %75, align 8, !tbaa !11
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %860

860:                                              ; preds = %903, %856
  %861 = load i64, ptr %94, align 8, !tbaa !9
  %862 = load i64, ptr %18, align 8, !tbaa !9
  %863 = sub nsw i64 %862, 1
  %864 = icmp sle i64 %861, %863
  br i1 %864, label %865, label %906

865:                                              ; preds = %860
  %866 = load ptr, ptr %17, align 8, !tbaa !5
  %867 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %866, i32 0, i32 6
  %868 = load ptr, ptr %867, align 8, !tbaa !28
  %869 = load i64, ptr %94, align 8, !tbaa !9
  %870 = getelementptr inbounds ptr, ptr %868, i64 %869
  %871 = load ptr, ptr %870, align 8, !tbaa !5
  %872 = load i64, ptr %78, align 8, !tbaa !9
  %873 = getelementptr inbounds double, ptr %871, i64 %872
  %874 = load double, ptr %873, align 8, !tbaa !11
  %875 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %59, i32 0, i32 4
  %876 = load ptr, ptr %875, align 8, !tbaa !28
  %877 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %68, i32 0, i32 4
  %878 = load ptr, ptr %877, align 8, !tbaa !28
  %879 = load i64, ptr %94, align 8, !tbaa !9
  %880 = getelementptr inbounds i64, ptr %878, i64 %879
  %881 = load i64, ptr %880, align 8, !tbaa !9
  %882 = getelementptr inbounds double, ptr %876, i64 %881
  %883 = load double, ptr %882, align 8, !tbaa !11
  %884 = fsub double %874, %883
  store double %884, ptr %97, align 8, !tbaa !11
  %885 = load ptr, ptr %29, align 8, !tbaa !5
  %886 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %885, i32 0, i32 1
  %887 = load double, ptr %886, align 8, !tbaa !34
  %888 = load double, ptr %97, align 8, !tbaa !11
  %889 = load ptr, ptr %30, align 8, !tbaa !5
  %890 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %888, ptr noundef %889)
  %891 = load ptr, ptr %30, align 8, !tbaa !5
  %892 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %887, double noundef %890, ptr noundef %891)
  %893 = load ptr, ptr %29, align 8, !tbaa !5
  %894 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %893, i32 0, i32 1
  store double %892, ptr %894, align 8, !tbaa !34
  %895 = load ptr, ptr %29, align 8, !tbaa !5
  %896 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %895, i32 0, i32 2
  %897 = load double, ptr %896, align 8, !tbaa !36
  %898 = load double, ptr %97, align 8, !tbaa !11
  %899 = load double, ptr %97, align 8, !tbaa !11
  %900 = call double @llvm.fmuladd.f64(double %898, double %899, double %897)
  %901 = load ptr, ptr %29, align 8, !tbaa !5
  %902 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %901, i32 0, i32 2
  store double %900, ptr %902, align 8, !tbaa !36
  br label %903

903:                                              ; preds = %865
  %904 = load i64, ptr %94, align 8, !tbaa !9
  %905 = add nsw i64 %904, 1
  store i64 %905, ptr %94, align 8, !tbaa !9
  br label %860, !llvm.loop !63

906:                                              ; preds = %860
  %907 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %908 = trunc i8 %907 to i1
  br i1 %908, label %909, label %918

909:                                              ; preds = %906
  %910 = load double, ptr %75, align 8, !tbaa !11
  %911 = load double, ptr %76, align 8, !tbaa !11
  %912 = load ptr, ptr %30, align 8, !tbaa !5
  %913 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %911, double noundef 1.000000e+00, ptr noundef %912)
  %914 = fdiv double %910, %913
  %915 = getelementptr inbounds %"struct.alglib_impl::fblsgmresstate", ptr %81, i32 0, i32 20
  %916 = load i64, ptr %915, align 8, !tbaa !64
  %917 = trunc i64 %916 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.766, double noundef %914, i32 noundef %917)
  br label %918

918:                                              ; preds = %909, %906
  br label %919

919:                                              ; preds = %918
  %920 = load i64, ptr %78, align 8, !tbaa !9
  %921 = add nsw i64 %920, 1
  store i64 %921, ptr %78, align 8, !tbaa !9
  br label %634, !llvm.loop !65

922:                                              ; preds = %634
  %923 = load ptr, ptr %29, align 8, !tbaa !5
  %924 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %923, i32 0, i32 2
  %925 = load double, ptr %924, align 8, !tbaa !36
  %926 = load i64, ptr %18, align 8, !tbaa !9
  %927 = load i64, ptr %35, align 8, !tbaa !9
  %928 = mul nsw i64 %926, %927
  %929 = sitofp i64 %928 to double
  %930 = fdiv double %925, %929
  %931 = load ptr, ptr %30, align 8, !tbaa !5
  %932 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %930, ptr noundef %931)
  %933 = load ptr, ptr %29, align 8, !tbaa !5
  %934 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %933, i32 0, i32 2
  store double %932, ptr %934, align 8, !tbaa !36
  %935 = load i64, ptr %92, align 8, !tbaa !9
  %936 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %937 = add nsw i64 %935, %936
  store i64 %937, ptr %92, align 8, !tbaa !9
  %938 = load i8, ptr %79, align 1, !tbaa !31, !range !32, !noundef !33
  %939 = trunc i8 %938 to i1
  br i1 %939, label %940, label %1043

940:                                              ; preds = %922
  %941 = load i64, ptr %33, align 8, !tbaa !9
  %942 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %941, ptr noundef %58, ptr noundef %942)
  store double 0.000000e+00, ptr %82, align 8, !tbaa !11
  store double 0.000000e+00, ptr %83, align 8, !tbaa !11
  store double 0.000000e+00, ptr %84, align 8, !tbaa !11
  store i64 0, ptr %96, align 8, !tbaa !9
  br label %943

943:                                              ; preds = %996, %940
  %944 = load i64, ptr %96, align 8, !tbaa !9
  %945 = load i64, ptr %35, align 8, !tbaa !9
  %946 = sub nsw i64 %945, 1
  %947 = icmp sle i64 %944, %946
  br i1 %947, label %948, label %999

948:                                              ; preds = %943
  %949 = load i64, ptr %33, align 8, !tbaa !9
  %950 = load i64, ptr %96, align 8, !tbaa !9
  %951 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopycvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %949, ptr noundef %62, i64 noundef %950, ptr noundef %58, ptr noundef %951)
  %952 = load double, ptr %84, align 8, !tbaa !11
  %953 = load i64, ptr %33, align 8, !tbaa !9
  %954 = load ptr, ptr %30, align 8, !tbaa !5
  %955 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %953, ptr noundef %58, ptr noundef %954)
  %956 = load ptr, ptr %30, align 8, !tbaa !5
  %957 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %952, double noundef %955, ptr noundef %956)
  store double %957, ptr %84, align 8, !tbaa !11
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %958

958:                                              ; preds = %973, %948
  %959 = load i64, ptr %94, align 8, !tbaa !9
  %960 = load i64, ptr %33, align 8, !tbaa !9
  %961 = sub nsw i64 %960, 1
  %962 = icmp sle i64 %959, %961
  br i1 %962, label %963, label %976

963:                                              ; preds = %958
  %964 = load double, ptr %83, align 8, !tbaa !11
  %965 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %58, i32 0, i32 4
  %966 = load ptr, ptr %965, align 8, !tbaa !28
  %967 = load i64, ptr %94, align 8, !tbaa !9
  %968 = getelementptr inbounds double, ptr %966, i64 %967
  %969 = load double, ptr %968, align 8, !tbaa !11
  %970 = load ptr, ptr %30, align 8, !tbaa !5
  %971 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %969, ptr noundef %970)
  %972 = fadd double %964, %971
  store double %972, ptr %83, align 8, !tbaa !11
  br label %973

973:                                              ; preds = %963
  %974 = load i64, ptr %94, align 8, !tbaa !9
  %975 = add nsw i64 %974, 1
  store i64 %975, ptr %94, align 8, !tbaa !9
  br label %958, !llvm.loop !66

976:                                              ; preds = %958
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %977

977:                                              ; preds = %992, %976
  %978 = load i64, ptr %94, align 8, !tbaa !9
  %979 = load i64, ptr %67, align 8, !tbaa !9
  %980 = sub nsw i64 %979, 1
  %981 = icmp sle i64 %978, %980
  br i1 %981, label %982, label %995

982:                                              ; preds = %977
  %983 = load double, ptr %82, align 8, !tbaa !11
  %984 = load i64, ptr %33, align 8, !tbaa !9
  %985 = load i64, ptr %94, align 8, !tbaa !9
  %986 = load ptr, ptr %30, align 8, !tbaa !5
  %987 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %984, ptr noundef %58, ptr noundef %66, i64 noundef %985, ptr noundef %986)
  %988 = load ptr, ptr %30, align 8, !tbaa !5
  %989 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %987, ptr noundef %988)
  %990 = load ptr, ptr %30, align 8, !tbaa !5
  %991 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %983, double noundef %989, ptr noundef %990)
  store double %991, ptr %82, align 8, !tbaa !11
  br label %992

992:                                              ; preds = %982
  %993 = load i64, ptr %94, align 8, !tbaa !9
  %994 = add nsw i64 %993, 1
  store i64 %994, ptr %94, align 8, !tbaa !9
  br label %977, !llvm.loop !67

995:                                              ; preds = %977
  br label %996

996:                                              ; preds = %995
  %997 = load i64, ptr %96, align 8, !tbaa !9
  %998 = add nsw i64 %997, 1
  store i64 %998, ptr %96, align 8, !tbaa !9
  br label %943, !llvm.loop !68

999:                                              ; preds = %943
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.767)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.768)
  %1000 = load ptr, ptr %29, align 8, !tbaa !5
  %1001 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %1000, i32 0, i32 2
  %1002 = load double, ptr %1001, align 8, !tbaa !36
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.769, double noundef %1002)
  %1003 = load ptr, ptr %29, align 8, !tbaa !5
  %1004 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %1003, i32 0, i32 1
  %1005 = load double, ptr %1004, align 8, !tbaa !34
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.770, double noundef %1005)
  %1006 = load double, ptr %82, align 8, !tbaa !11
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.771, double noundef %1006)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.772)
  %1007 = load double, ptr %83, align 8, !tbaa !11
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.773, double noundef %1007)
  %1008 = load double, ptr %84, align 8, !tbaa !11
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.774, double noundef %1008)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.775)
  %1009 = load ptr, ptr %29, align 8, !tbaa !5
  %1010 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %1009, i32 0, i32 3
  %1011 = load i64, ptr %1010, align 8, !tbaa !37
  %1012 = trunc i64 %1011 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.776, i32 noundef %1012)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.777)
  %1013 = load ptr, ptr %30, align 8, !tbaa !5
  %1014 = call noundef double @_ZN11alglib_impl14savgcountergetEPKNS_11savgcounterEPNS_8ae_stateE(ptr noundef %93, ptr noundef %1013)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.778, double noundef %1014)
  %1015 = load i64, ptr %92, align 8, !tbaa !9
  %1016 = sitofp i64 %1015 to double
  %1017 = load i64, ptr %91, align 8, !tbaa !9
  %1018 = sitofp i64 %1017 to double
  %1019 = load ptr, ptr %30, align 8, !tbaa !5
  %1020 = call noundef double @_ZN11alglib_impl14savgcountergetEPKNS_11savgcounterEPNS_8ae_stateE(ptr noundef %93, ptr noundef %1019)
  %1021 = fsub double %1020, 1.000000e+00
  %1022 = call double @llvm.fmuladd.f64(double %1018, double %1021, double %1016)
  %1023 = load i64, ptr %92, align 8, !tbaa !9
  %1024 = sitofp i64 %1023 to double
  %1025 = fadd double %1024, 5.000000e-16
  %1026 = fdiv double %1022, %1025
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.779, double noundef %1026)
  %1027 = load i64, ptr %92, align 8, !tbaa !9
  %1028 = trunc i64 %1027 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.780, i32 noundef %1028)
  %1029 = load i64, ptr %86, align 8, !tbaa !9
  %1030 = trunc i64 %1029 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.781, i32 noundef %1030)
  %1031 = load i64, ptr %85, align 8, !tbaa !9
  %1032 = trunc i64 %1031 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.782, i32 noundef %1032)
  %1033 = load i64, ptr %87, align 8, !tbaa !9
  %1034 = trunc i64 %1033 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.783, i32 noundef %1034)
  %1035 = load i64, ptr %89, align 8, !tbaa !9
  %1036 = trunc i64 %1035 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.784, i32 noundef %1036)
  %1037 = load i64, ptr %88, align 8, !tbaa !9
  %1038 = trunc i64 %1037 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.785, i32 noundef %1038)
  %1039 = load i64, ptr %90, align 8, !tbaa !9
  %1040 = trunc i64 %1039 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.786, i32 noundef %1040)
  %1041 = load i64, ptr %91, align 8, !tbaa !9
  %1042 = trunc i64 %1041 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.787, i32 noundef %1042)
  br label %1043

1043:                                             ; preds = %999, %922
  %1044 = load i64, ptr %20, align 8, !tbaa !9
  %1045 = load ptr, ptr %26, align 8, !tbaa !5
  %1046 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1045, i32 0, i32 2
  store i64 %1044, ptr %1046, align 8, !tbaa !69
  %1047 = load double, ptr %36, align 8, !tbaa !11
  %1048 = load ptr, ptr %26, align 8, !tbaa !5
  %1049 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1048, i32 0, i32 3
  store double %1047, ptr %1049, align 8, !tbaa !70
  %1050 = load i64, ptr %34, align 8, !tbaa !9
  %1051 = load ptr, ptr %26, align 8, !tbaa !5
  %1052 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1051, i32 0, i32 4
  %1053 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1050, ptr noundef %61, ptr noundef %1052, ptr noundef %1053)
  store i64 0, ptr %95, align 8, !tbaa !9
  br label %1054

1054:                                             ; preds = %1156, %1043
  %1055 = load i64, ptr %95, align 8, !tbaa !9
  %1056 = load i64, ptr %35, align 8, !tbaa !9
  %1057 = sub nsw i64 %1056, 1
  %1058 = icmp sle i64 %1055, %1057
  br i1 %1058, label %1059, label %1159

1059:                                             ; preds = %1054
  %1060 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %62, i32 0, i32 6
  %1061 = load ptr, ptr %1060, align 8, !tbaa !28
  %1062 = load i64, ptr %33, align 8, !tbaa !9
  %1063 = load i64, ptr %34, align 8, !tbaa !9
  %1064 = add nsw i64 %1062, %1063
  %1065 = getelementptr inbounds ptr, ptr %1061, i64 %1064
  %1066 = load ptr, ptr %1065, align 8, !tbaa !5
  %1067 = load i64, ptr %95, align 8, !tbaa !9
  %1068 = getelementptr inbounds double, ptr %1066, i64 %1067
  %1069 = load double, ptr %1068, align 8, !tbaa !11
  %1070 = load ptr, ptr %26, align 8, !tbaa !5
  %1071 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1070, i32 0, i32 5
  %1072 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1071, i32 0, i32 6
  %1073 = load ptr, ptr %1072, align 8, !tbaa !28
  %1074 = load i64, ptr %95, align 8, !tbaa !9
  %1075 = getelementptr inbounds ptr, ptr %1073, i64 %1074
  %1076 = load ptr, ptr %1075, align 8, !tbaa !5
  %1077 = load i64, ptr %34, align 8, !tbaa !9
  %1078 = getelementptr inbounds double, ptr %1076, i64 %1077
  store double %1069, ptr %1078, align 8, !tbaa !11
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %1079

1079:                                             ; preds = %1152, %1059
  %1080 = load i64, ptr %94, align 8, !tbaa !9
  %1081 = load i64, ptr %34, align 8, !tbaa !9
  %1082 = sub nsw i64 %1081, 1
  %1083 = icmp sle i64 %1080, %1082
  br i1 %1083, label %1084, label %1155

1084:                                             ; preds = %1079
  %1085 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %62, i32 0, i32 6
  %1086 = load ptr, ptr %1085, align 8, !tbaa !28
  %1087 = load i64, ptr %33, align 8, !tbaa !9
  %1088 = load i64, ptr %94, align 8, !tbaa !9
  %1089 = add nsw i64 %1087, %1088
  %1090 = getelementptr inbounds ptr, ptr %1086, i64 %1089
  %1091 = load ptr, ptr %1090, align 8, !tbaa !5
  %1092 = load i64, ptr %95, align 8, !tbaa !9
  %1093 = getelementptr inbounds double, ptr %1091, i64 %1092
  %1094 = load double, ptr %1093, align 8, !tbaa !11
  %1095 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %61, i32 0, i32 4
  %1096 = load ptr, ptr %1095, align 8, !tbaa !28
  %1097 = load i64, ptr %94, align 8, !tbaa !9
  %1098 = getelementptr inbounds double, ptr %1096, i64 %1097
  %1099 = load double, ptr %1098, align 8, !tbaa !11
  %1100 = fdiv double %1094, %1099
  %1101 = load ptr, ptr %26, align 8, !tbaa !5
  %1102 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1101, i32 0, i32 5
  %1103 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1102, i32 0, i32 6
  %1104 = load ptr, ptr %1103, align 8, !tbaa !28
  %1105 = load i64, ptr %95, align 8, !tbaa !9
  %1106 = getelementptr inbounds ptr, ptr %1104, i64 %1105
  %1107 = load ptr, ptr %1106, align 8, !tbaa !5
  %1108 = load i64, ptr %94, align 8, !tbaa !9
  %1109 = getelementptr inbounds double, ptr %1107, i64 %1108
  store double %1100, ptr %1109, align 8, !tbaa !11
  %1110 = load ptr, ptr %26, align 8, !tbaa !5
  %1111 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1110, i32 0, i32 5
  %1112 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1111, i32 0, i32 6
  %1113 = load ptr, ptr %1112, align 8, !tbaa !28
  %1114 = load i64, ptr %95, align 8, !tbaa !9
  %1115 = getelementptr inbounds ptr, ptr %1113, i64 %1114
  %1116 = load ptr, ptr %1115, align 8, !tbaa !5
  %1117 = load i64, ptr %34, align 8, !tbaa !9
  %1118 = getelementptr inbounds double, ptr %1116, i64 %1117
  %1119 = load double, ptr %1118, align 8, !tbaa !11
  %1120 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %62, i32 0, i32 6
  %1121 = load ptr, ptr %1120, align 8, !tbaa !28
  %1122 = load i64, ptr %33, align 8, !tbaa !9
  %1123 = load i64, ptr %94, align 8, !tbaa !9
  %1124 = add nsw i64 %1122, %1123
  %1125 = getelementptr inbounds ptr, ptr %1121, i64 %1124
  %1126 = load ptr, ptr %1125, align 8, !tbaa !5
  %1127 = load i64, ptr %95, align 8, !tbaa !9
  %1128 = getelementptr inbounds double, ptr %1126, i64 %1127
  %1129 = load double, ptr %1128, align 8, !tbaa !11
  %1130 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %60, i32 0, i32 4
  %1131 = load ptr, ptr %1130, align 8, !tbaa !28
  %1132 = load i64, ptr %94, align 8, !tbaa !9
  %1133 = getelementptr inbounds double, ptr %1131, i64 %1132
  %1134 = load double, ptr %1133, align 8, !tbaa !11
  %1135 = fmul double %1129, %1134
  %1136 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %61, i32 0, i32 4
  %1137 = load ptr, ptr %1136, align 8, !tbaa !28
  %1138 = load i64, ptr %94, align 8, !tbaa !9
  %1139 = getelementptr inbounds double, ptr %1137, i64 %1138
  %1140 = load double, ptr %1139, align 8, !tbaa !11
  %1141 = fdiv double %1135, %1140
  %1142 = fsub double %1119, %1141
  %1143 = load ptr, ptr %26, align 8, !tbaa !5
  %1144 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1143, i32 0, i32 5
  %1145 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1144, i32 0, i32 6
  %1146 = load ptr, ptr %1145, align 8, !tbaa !28
  %1147 = load i64, ptr %95, align 8, !tbaa !9
  %1148 = getelementptr inbounds ptr, ptr %1146, i64 %1147
  %1149 = load ptr, ptr %1148, align 8, !tbaa !5
  %1150 = load i64, ptr %34, align 8, !tbaa !9
  %1151 = getelementptr inbounds double, ptr %1149, i64 %1150
  store double %1142, ptr %1151, align 8, !tbaa !11
  br label %1152

1152:                                             ; preds = %1084
  %1153 = load i64, ptr %94, align 8, !tbaa !9
  %1154 = add nsw i64 %1153, 1
  store i64 %1154, ptr %94, align 8, !tbaa !9
  br label %1079, !llvm.loop !71

1155:                                             ; preds = %1079
  br label %1156

1156:                                             ; preds = %1155
  %1157 = load i64, ptr %95, align 8, !tbaa !9
  %1158 = add nsw i64 %1157, 1
  store i64 %1158, ptr %95, align 8, !tbaa !9
  br label %1054, !llvm.loop !72

1159:                                             ; preds = %1054
  %1160 = load i64, ptr %33, align 8, !tbaa !9
  %1161 = load i64, ptr %34, align 8, !tbaa !9
  %1162 = load i64, ptr %35, align 8, !tbaa !9
  %1163 = add nsw i64 %1161, %1162
  %1164 = mul nsw i64 %1160, %1163
  %1165 = load ptr, ptr %26, align 8, !tbaa !5
  %1166 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1165, i32 0, i32 6
  %1167 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1164, ptr noundef %1166, ptr noundef %1167)
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %1168

1168:                                             ; preds = %1248, %1159
  %1169 = load i64, ptr %94, align 8, !tbaa !9
  %1170 = load i64, ptr %33, align 8, !tbaa !9
  %1171 = sub nsw i64 %1170, 1
  %1172 = icmp sle i64 %1169, %1171
  br i1 %1172, label %1173, label %1251

1173:                                             ; preds = %1168
  store i64 0, ptr %95, align 8, !tbaa !9
  br label %1174

1174:                                             ; preds = %1212, %1173
  %1175 = load i64, ptr %95, align 8, !tbaa !9
  %1176 = load i64, ptr %34, align 8, !tbaa !9
  %1177 = sub nsw i64 %1176, 1
  %1178 = icmp sle i64 %1175, %1177
  br i1 %1178, label %1179, label %1215

1179:                                             ; preds = %1174
  %1180 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %49, i32 0, i32 6
  %1181 = load ptr, ptr %1180, align 8, !tbaa !28
  %1182 = load i64, ptr %94, align 8, !tbaa !9
  %1183 = getelementptr inbounds ptr, ptr %1181, i64 %1182
  %1184 = load ptr, ptr %1183, align 8, !tbaa !5
  %1185 = load i64, ptr %95, align 8, !tbaa !9
  %1186 = getelementptr inbounds double, ptr %1184, i64 %1185
  %1187 = load double, ptr %1186, align 8, !tbaa !11
  %1188 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %60, i32 0, i32 4
  %1189 = load ptr, ptr %1188, align 8, !tbaa !28
  %1190 = load i64, ptr %95, align 8, !tbaa !9
  %1191 = getelementptr inbounds double, ptr %1189, i64 %1190
  %1192 = load double, ptr %1191, align 8, !tbaa !11
  %1193 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %61, i32 0, i32 4
  %1194 = load ptr, ptr %1193, align 8, !tbaa !28
  %1195 = load i64, ptr %95, align 8, !tbaa !9
  %1196 = getelementptr inbounds double, ptr %1194, i64 %1195
  %1197 = load double, ptr %1196, align 8, !tbaa !11
  %1198 = fdiv double %1192, %1197
  %1199 = fadd double %1187, %1198
  %1200 = load ptr, ptr %26, align 8, !tbaa !5
  %1201 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1200, i32 0, i32 6
  %1202 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1201, i32 0, i32 4
  %1203 = load ptr, ptr %1202, align 8, !tbaa !28
  %1204 = load i64, ptr %94, align 8, !tbaa !9
  %1205 = load i64, ptr %34, align 8, !tbaa !9
  %1206 = load i64, ptr %35, align 8, !tbaa !9
  %1207 = add nsw i64 %1205, %1206
  %1208 = mul nsw i64 %1204, %1207
  %1209 = load i64, ptr %95, align 8, !tbaa !9
  %1210 = add nsw i64 %1208, %1209
  %1211 = getelementptr inbounds double, ptr %1203, i64 %1210
  store double %1199, ptr %1211, align 8, !tbaa !11
  br label %1212

1212:                                             ; preds = %1179
  %1213 = load i64, ptr %95, align 8, !tbaa !9
  %1214 = add nsw i64 %1213, 1
  store i64 %1214, ptr %95, align 8, !tbaa !9
  br label %1174, !llvm.loop !73

1215:                                             ; preds = %1174
  store i64 0, ptr %95, align 8, !tbaa !9
  br label %1216

1216:                                             ; preds = %1244, %1215
  %1217 = load i64, ptr %95, align 8, !tbaa !9
  %1218 = load i64, ptr %35, align 8, !tbaa !9
  %1219 = sub nsw i64 %1218, 1
  %1220 = icmp sle i64 %1217, %1219
  br i1 %1220, label %1221, label %1247

1221:                                             ; preds = %1216
  %1222 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %62, i32 0, i32 6
  %1223 = load ptr, ptr %1222, align 8, !tbaa !28
  %1224 = load i64, ptr %94, align 8, !tbaa !9
  %1225 = getelementptr inbounds ptr, ptr %1223, i64 %1224
  %1226 = load ptr, ptr %1225, align 8, !tbaa !5
  %1227 = load i64, ptr %95, align 8, !tbaa !9
  %1228 = getelementptr inbounds double, ptr %1226, i64 %1227
  %1229 = load double, ptr %1228, align 8, !tbaa !11
  %1230 = load ptr, ptr %26, align 8, !tbaa !5
  %1231 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1230, i32 0, i32 6
  %1232 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1231, i32 0, i32 4
  %1233 = load ptr, ptr %1232, align 8, !tbaa !28
  %1234 = load i64, ptr %94, align 8, !tbaa !9
  %1235 = load i64, ptr %34, align 8, !tbaa !9
  %1236 = load i64, ptr %35, align 8, !tbaa !9
  %1237 = add nsw i64 %1235, %1236
  %1238 = mul nsw i64 %1234, %1237
  %1239 = load i64, ptr %34, align 8, !tbaa !9
  %1240 = add nsw i64 %1238, %1239
  %1241 = load i64, ptr %95, align 8, !tbaa !9
  %1242 = add nsw i64 %1240, %1241
  %1243 = getelementptr inbounds double, ptr %1233, i64 %1242
  store double %1229, ptr %1243, align 8, !tbaa !11
  br label %1244

1244:                                             ; preds = %1221
  %1245 = load i64, ptr %95, align 8, !tbaa !9
  %1246 = add nsw i64 %1245, 1
  store i64 %1246, ptr %95, align 8, !tbaa !9
  br label %1216, !llvm.loop !74

1247:                                             ; preds = %1216
  br label %1248

1248:                                             ; preds = %1247
  %1249 = load i64, ptr %94, align 8, !tbaa !9
  %1250 = add nsw i64 %1249, 1
  store i64 %1250, ptr %94, align 8, !tbaa !9
  br label %1168, !llvm.loop !75

1251:                                             ; preds = %1168
  %1252 = load i64, ptr %33, align 8, !tbaa !9
  %1253 = load ptr, ptr %26, align 8, !tbaa !5
  %1254 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1253, i32 0, i32 7
  %1255 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl11icopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1252, ptr noundef %69, ptr noundef %1254, ptr noundef %1255)
  %1256 = load i64, ptr %33, align 8, !tbaa !9
  %1257 = load ptr, ptr %26, align 8, !tbaa !5
  %1258 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1257, i32 0, i32 8
  store i64 %1256, ptr %1258, align 8, !tbaa !76
  %1259 = load ptr, ptr %26, align 8, !tbaa !5
  %1260 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_implL25rbfv3_createfastevaluatorEPNS_10rbfv3modelEPNS_8ae_stateE(ptr noundef %1259, ptr noundef %1260)
  %1261 = getelementptr inbounds %"struct.alglib_impl::rbf3ddmsolver", ptr %74, i32 0, i32 14
  %1262 = load i64, ptr %1261, align 8, !tbaa !50
  %1263 = icmp sgt i64 %1262, 0
  %1264 = load ptr, ptr %26, align 8, !tbaa !5
  %1265 = getelementptr inbounds %"struct.alglib_impl::rbfv3model", ptr %1264, i32 0, i32 13
  %1266 = zext i1 %1263 to i8
  store i8 %1266, ptr %1265, align 8, !tbaa !38
  %1267 = load ptr, ptr %29, align 8, !tbaa !5
  %1268 = getelementptr inbounds %"struct.alglib_impl::rbfv3report", ptr %1267, i32 0, i32 0
  store i64 1, ptr %1268, align 8, !tbaa !40
  %1269 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 10000, ptr %1269, align 8, !tbaa !9
  %1270 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1270)
  store i32 0, ptr %103, align 4
  br label %1271

1271:                                             ; preds = %1251, %239
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 1248, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 1976, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 2360, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 1576, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 552, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #5
  %1272 = load i32, ptr %103, align 4
  switch i32 %1272, label %1274 [
    i32 0, label %1273
    i32 1, label %1273
  ]

1273:                                             ; preds = %1271, %1271
  ret void

1274:                                             ; preds = %1271
  unreachable
}

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

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

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

declare void @_ZN11alglib_impl23_sparsesolverstate_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #2

declare void @_ZN11alglib_impl24_sparsesolverreport_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #2

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

declare void @_ZN11alglib_impl20_fblsgmresstate_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #2

declare void @_ZN11alglib_impl17_savgcounter_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) #2

declare void @_ZN11alglib_impl15savgcounterinitEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) #2

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

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

declare noundef i64 @_ZN11alglib_impl5imin2EllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) #2

declare noundef i64 @_ZN11alglib_impl5imin3ElllPNS_8ae_stateE(i64 noundef, i64 noundef, i64 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL23rbfv3_fastevaluatorinitEPNS_17rbf3fastevaluatorEPKNS_9ae_matrixEllllldbPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, double noundef, i1 noundef zeroext, ptr noundef) #4

declare void @_ZN11alglib_impl13tracevectore3EPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #2

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

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

declare void @_ZN11alglib_impl18rowwisegramschmidtEPKNS_9ae_matrixEllPNS_9ae_vectorES4_bPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef) #2

declare void @_ZN11alglib_impl10rcopymulvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL19rbfv3_ddmsolverinitEPKNS_9ae_matrixEdllPKNS_13rbf3evaluatorElddlPKNS_12sparsematrixElllbbPNS_13rbf3ddmsolverEPlSB_PNS_8ae_stateE(ptr noundef, double noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, double noundef, double noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i1 noundef zeroext, i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

declare void @_ZN11alglib_impl15fblsgmrescreateEPKNS_9ae_vectorEllPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZN11alglib_impl18fblsgmresiterationEPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #2

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

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

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

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

declare void @_ZN11alglib_impl18savgcounterenqueueEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) #2

declare void @_ZN11alglib_impl6rgemvxElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) #2

declare void @_ZN11alglib_impl7rcopyvcElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

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

declare noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

declare noundef double @_ZN11alglib_impl14savgcountergetEPKNS_11savgcounterEPNS_8ae_stateE(ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl11icopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { "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 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, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !10, i64 8}
!14 = !{!"_ZTSN11alglib_impl10rbfv3modelE", !10, i64 0, !10, i64 8, !10, i64 16, !12, i64 24, !15, i64 32, !18, i64 96, !15, i64 176, !15, i64 240, !10, i64 304, !19, i64 312, !22, i64 864, !18, i64 2440, !25, i64 2520, !16, i64 3720, !12, i64 3728}
!15 = !{!"_ZTSN11alglib_impl9ae_vectorE", !10, i64 0, !10, i64 8, !16, i64 16, !17, i64 24, !7, i64 56}
!16 = !{!"bool", !7, i64 0}
!17 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!18 = !{!"_ZTSN11alglib_impl9ae_matrixE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !16, i64 32, !17, i64 40, !7, i64 72}
!19 = !{!"_ZTSN11alglib_impl13rbf3evaluatorE", !10, i64 0, !10, i64 8, !18, i64 16, !10, i64 96, !10, i64 104, !12, i64 112, !10, i64 120, !15, i64 128, !18, i64 192, !18, i64 272, !20, i64 352, !15, i64 488}
!20 = !{!"_ZTSN11alglib_impl14ae_shared_poolE", !21, i64 0, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !10, i64 80, !6, i64 88, !6, i64 96, !17, i64 104}
!21 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !17, i64 8, !16, i64 40}
!22 = !{!"_ZTSN11alglib_impl17rbf3fastevaluatorE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !12, i64 40, !18, i64 48, !15, i64 128, !18, i64 192, !16, i64 272, !23, i64 280, !24, i64 416, !20, i64 1328, !18, i64 1464, !16, i64 1544, !10, i64 1552, !10, i64 1560, !10, i64 1568}
!23 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !10, i64 0, !10, i64 8, !16, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !21, i64 56, !17, i64 104}
!24 = !{!"_ZTSN11alglib_impl19biharmonicevaluatorE", !10, i64 0, !10, i64 8, !15, i64 16, !15, i64 80, !15, i64 144, !15, i64 208, !15, i64 272, !15, i64 336, !15, i64 400, !15, i64 464, !15, i64 528, !15, i64 592, !15, i64 656, !15, i64 720, !15, i64 784, !15, i64 848}
!25 = !{!"_ZTSN11alglib_impl15rbfv3calcbufferE", !15, i64 0, !26, i64 64, !15, i64 784, !15, i64 848, !18, i64 912, !18, i64 992, !15, i64 1072, !15, i64 1136}
!26 = !{!"_ZTSN11alglib_impl19rbf3evaluatorbufferE", !15, i64 0, !15, i64 64, !15, i64 128, !15, i64 192, !15, i64 256, !15, i64 320, !15, i64 384, !15, i64 448, !15, i64 512, !15, i64 576, !18, i64 640}
!27 = !{!14, !10, i64 0}
!28 = !{!7, !7, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!16, !16, i64 0}
!32 = !{i8 0, i8 2}
!33 = !{}
!34 = !{!35, !12, i64 8}
!35 = !{!"_ZTSN11alglib_impl11rbfv3reportE", !10, i64 0, !12, i64 8, !12, i64 16, !10, i64 24}
!36 = !{!35, !12, i64 16}
!37 = !{!35, !10, i64 24}
!38 = !{!14, !16, i64 3720}
!39 = !{!14, !12, i64 3728}
!40 = !{!35, !10, i64 0}
!41 = distinct !{!41, !30}
!42 = distinct !{!42, !30}
!43 = distinct !{!43, !30}
!44 = distinct !{!44, !30}
!45 = !{!46, !10, i64 1208}
!46 = !{!"_ZTSN11alglib_impl13rbf3ddmsolverE", !12, i64 0, !47, i64 8, !20, i64 1072, !10, i64 1208, !20, i64 1216, !20, i64 1352, !10, i64 1488, !18, i64 1496, !18, i64 1576, !15, i64 1656, !18, i64 1720, !18, i64 1800, !18, i64 1880, !10, i64 1960, !10, i64 1968}
!47 = !{!"_ZTSN11alglib_impl6kdtreeE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !18, i64 32, !15, i64 112, !15, i64 176, !15, i64 240, !15, i64 304, !15, i64 368, !48, i64 432, !10, i64 1056}
!48 = !{!"_ZTSN11alglib_impl19kdtreerequestbufferE", !15, i64 0, !15, i64 64, !15, i64 128, !10, i64 192, !12, i64 200, !16, i64 208, !12, i64 216, !10, i64 224, !15, i64 232, !15, i64 296, !15, i64 360, !15, i64 424, !15, i64 488, !12, i64 552, !15, i64 560}
!49 = !{!46, !10, i64 1960}
!50 = !{!46, !10, i64 1968}
!51 = !{!52, !12, i64 936}
!52 = !{!"_ZTSN11alglib_impl14fblsgmresstateE", !15, i64 0, !15, i64 64, !15, i64 128, !15, i64 192, !18, i64 256, !18, i64 336, !18, i64 416, !18, i64 496, !18, i64 576, !15, i64 656, !15, i64 720, !15, i64 784, !15, i64 848, !10, i64 912, !10, i64 920, !12, i64 928, !12, i64 936, !12, i64 944, !12, i64 952, !10, i64 960, !10, i64 968, !12, i64 976, !53, i64 984}
!53 = !{!"_ZTSN11alglib_impl10rcommstateE", !54, i64 0, !15, i64 8, !15, i64 72, !15, i64 136, !15, i64 200}
!54 = !{!"int", !7, i64 0}
!55 = !{!52, !12, i64 944}
!56 = !{!52, !12, i64 976}
!57 = !{!22, !10, i64 1568}
!58 = !{!22, !10, i64 1552}
!59 = !{!22, !10, i64 1560}
!60 = distinct !{!60, !30}
!61 = distinct !{!61, !30}
!62 = distinct !{!62, !30}
!63 = distinct !{!63, !30}
!64 = !{!52, !10, i64 968}
!65 = distinct !{!65, !30}
!66 = distinct !{!66, !30}
!67 = distinct !{!67, !30}
!68 = distinct !{!68, !30}
!69 = !{!14, !10, i64 16}
!70 = !{!14, !12, i64 24}
!71 = distinct !{!71, !30}
!72 = distinct !{!72, !30}
!73 = distinct !{!73, !30}
!74 = distinct !{!74, !30}
!75 = distinct !{!75, !30}
!76 = !{!14, !10, i64 304}


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

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::rbf3evaluator" = type { i64, i64, %"struct.alglib_impl::ae_matrix", i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_shared_pool", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_shared_pool" = type { %"struct.alglib_impl::ae_lock", ptr, ptr, ptr, ptr, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"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::rbf3fastevaluator" = type { i64, i64, i64, i64, i64, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, %"struct.alglib_impl::ae_obj_array", %"struct.alglib_impl::biharmonicevaluator", %"struct.alglib_impl::ae_shared_pool", %"struct.alglib_impl::ae_matrix", i8, i64, i64, i64 }
%"struct.alglib_impl::ae_obj_array" = type { i64, i64, i8, ptr, ptr, ptr, ptr, %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::biharmonicevaluator" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::sparsesolverstate" = type { i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i8, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::fblsgmresstate", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::fblsgmresstate" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, double, double, double, i64, i64, double, %"struct.alglib_impl::rcommstate" }
%"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::sparsesolverreport" = type { i64, i64, i64, double }
%"struct.alglib_impl::rbf3ddmsolver" = type { double, %"struct.alglib_impl::kdtree", %"struct.alglib_impl::ae_shared_pool", i64, %"struct.alglib_impl::ae_shared_pool", %"struct.alglib_impl::ae_shared_pool", i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i64, i64 }
%"struct.alglib_impl::kdtree" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::kdtreerequestbuffer", i64 }
%"struct.alglib_impl::kdtreerequestbuffer" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, double, i8, double, 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", double, %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::savgcounter" = type { double, double, double }

@.str.376 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.734 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [39 x i8], align 1
@_ZN11alglib_implL25rbfv3_defaultmaxpanelsizeE = external hidden local_unnamed_addr global i64, align 8
@.str.736 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.742 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.754 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.755 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.756 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.757 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.758 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZN11alglib_implL15rbfv3_maxddmitsE = external hidden local_unnamed_addr global i64, align 8
@_ZN11alglib_implL12rbfv3_epsredE = external hidden local_unnamed_addr global double, align 8
@.str.764 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.765 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.767 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.769 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.773 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.775 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.776 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.778 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.779 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.780 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.781 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.782 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.783 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.784 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.785 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.786 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.787 = external hidden unnamed_addr constant [49 x i8], align 1
@switch.table._ZN11alglib_impl10rbfv3buildEPKNS_9ae_matrixES2_lPKNS_9ae_vectorElddlldPNS_10rbfv3modelEPlPbPNS_11rbfv3reportEPNS_8ae_stateE = private unnamed_addr constant [3 x ptr] [ptr @.str.747, ptr @.str.748, ptr @.str.749], 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 nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #1

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

declare noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

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

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

declare noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #2

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

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

declare noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

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

declare noundef i64 @_ZN11alglib_impl12ae_tickcountEv() local_unnamed_addr #2

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

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

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

declare noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl7rcopycvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl10rbfv3buildEPKNS_9ae_matrixES2_lPKNS_9ae_vectorElddlldPNS_10rbfv3modelEPlPbPNS_11rbfv3reportEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, double noundef %5, double noundef %6, i64 noundef %7, i64 noundef %8, double noundef %9, ptr noundef %10, ptr nocapture noundef writeonly %11, ptr nocapture noundef readnone %12, ptr noundef %13, ptr noundef %14) local_unnamed_addr #4 {
  %16 = alloca %"struct.alglib_impl::ae_frame", align 8
  %17 = alloca i64, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %22 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %23 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %24 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %25 = alloca %"struct.alglib_impl::rbf3evaluator", align 8
  %26 = alloca %"struct.alglib_impl::rbf3fastevaluator", align 8
  %27 = alloca %"struct.alglib_impl::ae_vector", align 8
  %28 = alloca %"struct.alglib_impl::ae_vector", align 8
  %29 = alloca %"struct.alglib_impl::ae_vector", align 8
  %30 = alloca %"struct.alglib_impl::ae_vector", align 8
  %31 = alloca %"struct.alglib_impl::ae_vector", align 8
  %32 = alloca %"struct.alglib_impl::ae_vector", align 8
  %33 = alloca %"struct.alglib_impl::ae_vector", align 8
  %34 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %35 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %36 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %37 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %38 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %39 = alloca %"struct.alglib_impl::ae_vector", align 8
  %40 = alloca %"struct.alglib_impl::ae_vector", align 8
  %41 = alloca %"struct.alglib_impl::ae_vector", align 8
  %42 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %43 = alloca %"struct.alglib_impl::sparsesolverstate", align 8
  %44 = alloca %"struct.alglib_impl::sparsesolverreport", align 8
  %45 = alloca %"struct.alglib_impl::rbf3ddmsolver", align 8
  %46 = alloca %"struct.alglib_impl::fblsgmresstate", align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca %"struct.alglib_impl::savgcounter", align 8
  %52 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %53 = alloca %"struct.alglib_impl::ae_vector", align 8
  %54 = alloca %"struct.alglib_impl::ae_vector", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 552, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 1576, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 2360, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #5
  call void @llvm.lifetime.start.p0(i64 1976, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 1248, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %51) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %53) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %54) #5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %14, ptr noundef nonnull %16)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %21, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %22, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %23, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %24, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(552) %25, i8 0, i64 552, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1576) %26, i8 0, i64 1576, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %27, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %28, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %29, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %30, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %31, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %32, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %33, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %34, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %35, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %36, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %37, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %38, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %39, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %40, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %41, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %42, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(2360) %43, i8 0, i64 2360, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %44, i8 0, i64 32, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1976) %45, i8 0, i64 1976, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1248) %46, i8 0, i64 1248, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %51, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %52, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %53, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %54, i8 0, i64 64, i1 false)
  call void @_ZN11alglib_impl18_rbfv3report_clearEPv(ptr noundef %13)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %21, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %22, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %23, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %24, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl19_rbf3evaluator_initEPvPNS_8ae_stateEb(ptr noundef nonnull %25, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl23_rbf3fastevaluator_initEPvPNS_8ae_stateEb(ptr noundef nonnull %26, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %27, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %28, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %29, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %30, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %31, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %32, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %33, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %34, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %35, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %36, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %37, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %38, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %39, i64 noundef 0, i64 noundef 2, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %40, i64 noundef 0, i64 noundef 2, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %41, i64 noundef 0, i64 noundef 2, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %42, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl23_sparsesolverstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %43, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl24_sparsesolverreport_initEPvPNS_8ae_stateEb(ptr noundef nonnull %44, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl19_rbf3ddmsolver_initEPvPNS_8ae_stateEb(ptr noundef nonnull %45, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl20_fblsgmresstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %46, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl17_savgcounter_initEPvPNS_8ae_stateEb(ptr noundef nonnull %51, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %52, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %53, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %54, i64 noundef 0, i64 noundef 3, ptr noundef %14, i1 noundef zeroext true)
  %55 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %9, ptr noundef %14)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %55, ptr noundef nonnull @.str.724, ptr noundef %14)
  %56 = getelementptr inbounds i8, ptr %10, i64 8
  %57 = load i64, ptr %56, align 8, !tbaa !5
  %58 = icmp sgt i64 %57, 0
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %58, ptr noundef nonnull @.str.725, ptr noundef %14)
  %59 = load i64, ptr %10, align 8, !tbaa !24
  %60 = icmp sgt i64 %59, 0
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %60, ptr noundef nonnull @.str.726, ptr noundef %14)
  %61 = add i64 %4, -1
  %spec.select = icmp ult i64 %61, 3
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %spec.select, ptr noundef nonnull @.str.727, ptr noundef %14)
  %62 = add i64 %7, -1
  %63 = icmp ult i64 %62, 3
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %63, ptr noundef nonnull @.str.728, ptr noundef %14)
  %64 = icmp eq i64 %8, -2
  %or.cond5 = icmp ugt i64 %8, -3
  %65 = add i64 %8, 2
  %66 = icmp ult i64 %65, 3
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %66, ptr noundef nonnull @.str.729, ptr noundef %14)
  %67 = load i64, ptr %56, align 8, !tbaa !5
  %.not.not513 = icmp sgt i64 %67, 0
  br i1 %.not.not513, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %15
  %68 = getelementptr inbounds i8, ptr %3, i64 56
  br label %69

69:                                               ; preds = %.lr.ph, %69
  %.0451514 = phi i64 [ 0, %.lr.ph ], [ %74, %69 ]
  %70 = load ptr, ptr %68, align 8, !tbaa !25
  %71 = getelementptr inbounds double, ptr %70, i64 %.0451514
  %72 = load double, ptr %71, align 8, !tbaa !26
  %73 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %72, double noundef 0.000000e+00)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %73, ptr noundef nonnull @.str.730, ptr noundef %14)
  %74 = add nuw nsw i64 %.0451514, 1
  %75 = load i64, ptr %56, align 8, !tbaa !5
  %.not.not = icmp slt i64 %74, %75
  br i1 %.not.not, label %69, label %._crit_edge, !llvm.loop !27

._crit_edge:                                      ; preds = %69, %15
  %.lcssa512 = phi i64 [ %67, %15 ], [ %75, %69 ]
  %76 = load i64, ptr %10, align 8, !tbaa !24
  store double %5, ptr %18, align 8, !tbaa !26
  %77 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.731)
  br i1 %77, label %78, label %80

78:                                               ; preds = %._crit_edge
  %79 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.732)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.376)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.377)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.733)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.377)
  br label %80

80:                                               ; preds = %._crit_edge, %78
  %81 = phi i1 [ %79, %78 ], [ false, %._crit_edge ]
  store i64 0, ptr %11, align 8, !tbaa !29
  %82 = getelementptr inbounds i8, ptr %13, i64 8
  %83 = getelementptr inbounds i8, ptr %13, i64 16
  %84 = getelementptr inbounds i8, ptr %13, i64 24
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %82, i8 0, i64 24, i1 false)
  store i64 0, ptr %47, align 8, !tbaa !29
  store i64 0, ptr %48, align 8, !tbaa !29
  store i64 0, ptr %49, align 8, !tbaa !29
  store i64 0, ptr %50, align 8, !tbaa !29
  %85 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %86 = getelementptr inbounds i8, ptr %10, i64 3720
  store i8 0, ptr %86, align 8, !tbaa !30
  %87 = getelementptr inbounds i8, ptr %10, i64 3728
  store double 0.000000e+00, ptr %87, align 8, !tbaa !31
  call void @_ZN11alglib_impl15savgcounterinitEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef nonnull %51, double noundef 0.000000e+00, ptr noundef %14)
  %88 = icmp eq i64 %2, 0
  br i1 %88, label %89, label %90

89:                                               ; preds = %80
  call void @_ZN11alglib_implL14rbfv3_zerofillEPNS_10rbfv3modelEllPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.lcssa512, i64 noundef %76, ptr noundef %14)
  br label %703

90:                                               ; preds = %80
  call void @_ZN11alglib_implL23rbfv3_preprocessdatasetEPKNS_9ae_matrixEdS2_PKNS_9ae_vectorEllllddPS0_S6_PS3_S7_PlS7_S7_PdS9_S9_PNS_8ae_stateE(ptr noundef %0, double noundef 5.000000e-13, ptr noundef %1, ptr noundef %3, i64 noundef %2, i64 noundef %.lcssa512, i64 noundef %76, i64 noundef %4, double noundef %5, double noundef %6, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %17, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %14)
  %91 = add i64 %.lcssa512, 1
  %92 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %91, i64 noundef %92, ptr noundef nonnull %24, ptr noundef %14)
  %93 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not483519 = icmp sgt i64 %93, 0
  br i1 %.not.not483519, label %.preheader510.lr.ph, label %._crit_edge521

.preheader510.lr.ph:                              ; preds = %90
  %.not.not498515 = icmp sgt i64 %.lcssa512, 0
  %94 = getelementptr inbounds i8, ptr %21, i64 72
  %95 = getelementptr inbounds i8, ptr %24, i64 72
  br i1 %.not.not498515, label %.preheader510.us.preheader, label %.preheader510.preheader

.preheader510.preheader:                          ; preds = %.preheader510.lr.ph
  %xtraiter = and i64 %93, 3
  %96 = icmp ult i64 %93, 4
  br i1 %96, label %._crit_edge521.loopexit654.unr-lcssa, label %.preheader510.preheader.new

.preheader510.preheader.new:                      ; preds = %.preheader510.preheader
  %unroll_iter = and i64 %93, 9223372036854775804
  br label %.preheader510

.preheader510.us.preheader:                       ; preds = %.preheader510.lr.ph
  %xtraiter656 = and i64 %.lcssa512, 1
  %97 = icmp eq i64 %.lcssa512, 1
  %unroll_iter659 = and i64 %.lcssa512, 9223372036854775806
  %lcmp.mod658.not = icmp eq i64 %xtraiter656, 0
  br label %.preheader510.us

.preheader510.us:                                 ; preds = %.preheader510.us.preheader, %._crit_edge518.us
  %.0453520.us = phi i64 [ %131, %._crit_edge518.us ], [ 0, %.preheader510.us.preheader ]
  br i1 %97, label %._crit_edge518.us.unr-lcssa, label %.preheader510.us.new

.preheader510.us.new:                             ; preds = %.preheader510.us, %.preheader510.us.new
  %.1452516.us = phi i64 [ %117, %.preheader510.us.new ], [ 0, %.preheader510.us ]
  %niter660 = phi i64 [ %niter660.next.1, %.preheader510.us.new ], [ 0, %.preheader510.us ]
  %98 = load ptr, ptr %94, align 8, !tbaa !25
  %99 = getelementptr inbounds ptr, ptr %98, i64 %.0453520.us
  %100 = load ptr, ptr %99, align 8, !tbaa !32
  %101 = getelementptr inbounds double, ptr %100, i64 %.1452516.us
  %102 = load double, ptr %101, align 8, !tbaa !26
  %103 = load ptr, ptr %95, align 8, !tbaa !25
  %104 = getelementptr inbounds ptr, ptr %103, i64 %.1452516.us
  %105 = load ptr, ptr %104, align 8, !tbaa !32
  %106 = getelementptr inbounds double, ptr %105, i64 %.0453520.us
  store double %102, ptr %106, align 8, !tbaa !26
  %107 = or disjoint i64 %.1452516.us, 1
  %108 = load ptr, ptr %94, align 8, !tbaa !25
  %109 = getelementptr inbounds ptr, ptr %108, i64 %.0453520.us
  %110 = load ptr, ptr %109, align 8, !tbaa !32
  %111 = getelementptr inbounds double, ptr %110, i64 %107
  %112 = load double, ptr %111, align 8, !tbaa !26
  %113 = load ptr, ptr %95, align 8, !tbaa !25
  %114 = getelementptr inbounds ptr, ptr %113, i64 %107
  %115 = load ptr, ptr %114, align 8, !tbaa !32
  %116 = getelementptr inbounds double, ptr %115, i64 %.0453520.us
  store double %112, ptr %116, align 8, !tbaa !26
  %117 = add nuw nsw i64 %.1452516.us, 2
  %niter660.next.1 = add i64 %niter660, 2
  %niter660.ncmp.1 = icmp eq i64 %niter660.next.1, %unroll_iter659
  br i1 %niter660.ncmp.1, label %._crit_edge518.us.unr-lcssa, label %.preheader510.us.new, !llvm.loop !33

._crit_edge518.us.unr-lcssa:                      ; preds = %.preheader510.us.new, %.preheader510.us
  %.1452516.us.unr = phi i64 [ 0, %.preheader510.us ], [ %117, %.preheader510.us.new ]
  br i1 %lcmp.mod658.not, label %._crit_edge518.us, label %._crit_edge518.us.epilog-lcssa

._crit_edge518.us.epilog-lcssa:                   ; preds = %._crit_edge518.us.unr-lcssa
  %118 = load ptr, ptr %94, align 8, !tbaa !25
  %119 = getelementptr inbounds ptr, ptr %118, i64 %.0453520.us
  %120 = load ptr, ptr %119, align 8, !tbaa !32
  %121 = getelementptr inbounds double, ptr %120, i64 %.1452516.us.unr
  %122 = load double, ptr %121, align 8, !tbaa !26
  %123 = load ptr, ptr %95, align 8, !tbaa !25
  %124 = getelementptr inbounds ptr, ptr %123, i64 %.1452516.us.unr
  %125 = load ptr, ptr %124, align 8, !tbaa !32
  %126 = getelementptr inbounds double, ptr %125, i64 %.0453520.us
  store double %122, ptr %126, align 8, !tbaa !26
  br label %._crit_edge518.us

._crit_edge518.us:                                ; preds = %._crit_edge518.us.unr-lcssa, %._crit_edge518.us.epilog-lcssa
  %127 = load ptr, ptr %95, align 8, !tbaa !25
  %128 = getelementptr inbounds ptr, ptr %127, i64 %.lcssa512
  %129 = load ptr, ptr %128, align 8, !tbaa !32
  %130 = getelementptr inbounds double, ptr %129, i64 %.0453520.us
  store double 1.000000e+00, ptr %130, align 8, !tbaa !26
  %131 = add nuw nsw i64 %.0453520.us, 1
  %exitcond615.not = icmp eq i64 %131, %93
  br i1 %exitcond615.not, label %._crit_edge521, label %.preheader510.us, !llvm.loop !34

.preheader510:                                    ; preds = %.preheader510, %.preheader510.preheader.new
  %.0453520 = phi i64 [ 0, %.preheader510.preheader.new ], [ %151, %.preheader510 ]
  %niter = phi i64 [ 0, %.preheader510.preheader.new ], [ %niter.next.3, %.preheader510 ]
  %132 = load ptr, ptr %95, align 8, !tbaa !25
  %133 = getelementptr inbounds ptr, ptr %132, i64 %.lcssa512
  %134 = load ptr, ptr %133, align 8, !tbaa !32
  %135 = getelementptr inbounds double, ptr %134, i64 %.0453520
  store double 1.000000e+00, ptr %135, align 8, !tbaa !26
  %136 = or disjoint i64 %.0453520, 1
  %137 = load ptr, ptr %95, align 8, !tbaa !25
  %138 = getelementptr inbounds ptr, ptr %137, i64 %.lcssa512
  %139 = load ptr, ptr %138, align 8, !tbaa !32
  %140 = getelementptr inbounds double, ptr %139, i64 %136
  store double 1.000000e+00, ptr %140, align 8, !tbaa !26
  %141 = or disjoint i64 %.0453520, 2
  %142 = load ptr, ptr %95, align 8, !tbaa !25
  %143 = getelementptr inbounds ptr, ptr %142, i64 %.lcssa512
  %144 = load ptr, ptr %143, align 8, !tbaa !32
  %145 = getelementptr inbounds double, ptr %144, i64 %141
  store double 1.000000e+00, ptr %145, align 8, !tbaa !26
  %146 = or disjoint i64 %.0453520, 3
  %147 = load ptr, ptr %95, align 8, !tbaa !25
  %148 = getelementptr inbounds ptr, ptr %147, i64 %.lcssa512
  %149 = load ptr, ptr %148, align 8, !tbaa !32
  %150 = getelementptr inbounds double, ptr %149, i64 %146
  store double 1.000000e+00, ptr %150, align 8, !tbaa !26
  %151 = add nuw nsw i64 %.0453520, 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_edge521.loopexit654.unr-lcssa, label %.preheader510, !llvm.loop !34

._crit_edge521.loopexit654.unr-lcssa:             ; preds = %.preheader510, %.preheader510.preheader
  %.0453520.unr = phi i64 [ 0, %.preheader510.preheader ], [ %151, %.preheader510 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge521, label %.preheader510.epil

.preheader510.epil:                               ; preds = %._crit_edge521.loopexit654.unr-lcssa, %.preheader510.epil
  %.0453520.epil = phi i64 [ %156, %.preheader510.epil ], [ %.0453520.unr, %._crit_edge521.loopexit654.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.preheader510.epil ], [ 0, %._crit_edge521.loopexit654.unr-lcssa ]
  %152 = load ptr, ptr %95, align 8, !tbaa !25
  %153 = getelementptr inbounds ptr, ptr %152, i64 %.lcssa512
  %154 = load ptr, ptr %153, align 8, !tbaa !32
  %155 = getelementptr inbounds double, ptr %154, i64 %.0453520.epil
  store double 1.000000e+00, ptr %155, align 8, !tbaa !26
  %156 = add nuw nsw i64 %.0453520.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_edge521, label %.preheader510.epil, !llvm.loop !35

._crit_edge521:                                   ; preds = %._crit_edge521.loopexit654.unr-lcssa, %.preheader510.epil, %._crit_edge518.us, %90
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %66, ptr noundef nonnull @.str.729, ptr noundef %14)
  br i1 %77, label %157, label %159

157:                                              ; preds = %._crit_edge521
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.734)
  %158 = trunc i64 %8 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.735, double noundef %9, i32 noundef %158)
  br label %159

159:                                              ; preds = %157, %._crit_edge521
  %160 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %9, double noundef 0x3EB0C6F7A0B5ED8D, ptr noundef %14)
  %161 = sitofp i64 %.lcssa512 to double
  %162 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 5.000000e+00, double noundef %161, ptr noundef %14)
  %163 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %162, ptr noundef %14)
  %164 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %163, i64 noundef 25, ptr noundef %14)
  %165 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 5.000000e+00, double noundef %161, ptr noundef %14)
  %166 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %165, ptr noundef %14)
  %167 = load i64, ptr %17, align 8, !tbaa !29
  %168 = call noundef i64 @_ZN11alglib_impl5imin2EllPNS_8ae_stateE(i64 noundef 1000, i64 noundef %167, ptr noundef %14)
  %169 = load i64, ptr %17, align 8, !tbaa !29
  %170 = sitofp i64 %169 to double
  %171 = call double @llvm.fmuladd.f64(double %170, double 1.000000e-01, double 1.000000e+01)
  %172 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %171, ptr noundef %14)
  %173 = load i64, ptr %17, align 8, !tbaa !29
  %174 = call noundef i64 @_ZN11alglib_impl5imin3ElllPNS_8ae_stateE(i64 noundef %172, i64 noundef 2048, i64 noundef %173, ptr noundef %14)
  %175 = load i64, ptr @_ZN11alglib_implL25rbfv3_defaultmaxpanelsizeE, align 8, !tbaa !29
  br i1 %or.cond5, label %176, label %186

176:                                              ; preds = %159
  br i1 %77, label %177, label %178

177:                                              ; preds = %176
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.736)
  br label %178

178:                                              ; preds = %177, %176
  %179 = load i64, ptr %17, align 8, !tbaa !29
  %180 = sitofp i64 %179 to double
  %181 = call double @llvm.fmuladd.f64(double %180, double 5.000000e-02, double 2.000000e+00)
  %182 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %181, ptr noundef %14)
  %183 = load i64, ptr %17, align 8, !tbaa !29
  %184 = call noundef i64 @_ZN11alglib_impl5imin3ElllPNS_8ae_stateE(i64 noundef %182, i64 noundef 512, i64 noundef %183, ptr noundef %14)
  br i1 %64, label %185, label %186

185:                                              ; preds = %178
  br label %186

186:                                              ; preds = %178, %185, %159
  %.0475 = phi i64 [ %184, %185 ], [ %184, %178 ], [ %174, %159 ]
  %.0474 = phi i64 [ 16, %185 ], [ 16, %178 ], [ %175, %159 ]
  %.0470 = phi i64 [ 3, %185 ], [ 3, %178 ], [ 0, %159 ]
  %.0467 = phi i64 [ 16, %185 ], [ 16, %178 ], [ %168, %159 ]
  %.0466 = phi i64 [ 16, %185 ], [ 16, %178 ], [ 32, %159 ]
  %.0 = phi double [ 0x3EB0C6F7A0B5ED8D, %185 ], [ 0.000000e+00, %178 ], [ 0.000000e+00, %159 ]
  %187 = load i64, ptr %17, align 8, !tbaa !29
  %188 = load double, ptr %18, align 8, !tbaa !26
  call void @_ZN11alglib_implL23rbfv3_fastevaluatorinitEPNS_17rbf3fastevaluatorEPKNS_9ae_matrixEllllldbPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef nonnull %21, i64 noundef %187, i64 noundef %.lcssa512, i64 noundef 1, i64 noundef %.0474, i64 noundef %4, double noundef %188, i1 noundef zeroext %77, ptr noundef %14)
  br i1 %77, label %189, label %211

189:                                              ; preds = %186
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.737)
  %190 = load i64, ptr %17, align 8, !tbaa !29
  %191 = trunc i64 %190 to i32
  %192 = trunc i64 %.lcssa512 to i32
  %193 = trunc i64 %76 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.738, i32 noundef %191, i32 noundef %192, i32 noundef %193)
  %194 = trunc i64 %4 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.739, i32 noundef %194)
  switch i64 %4, label %.critedge500.thread [
    i64 1, label %195
    i64 2, label %205
    i64 3, label %206
  ]

195:                                              ; preds = %189
  %196 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %5, double noundef 0.000000e+00)
  br i1 %196, label %197, label %198

197:                                              ; preds = %195
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.740, double noundef %5)
  br label %198

198:                                              ; preds = %195, %197
  %199 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %5, double noundef 0.000000e+00)
  br i1 %199, label %200, label %.critedge

200:                                              ; preds = %198
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.741)
  br label %.critedge

.critedge:                                        ; preds = %198, %200
  %201 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %5, double noundef 0.000000e+00)
  br i1 %201, label %202, label %.critedge500.thread

202:                                              ; preds = %.critedge
  %203 = fneg double %5
  %204 = load double, ptr %18, align 8, !tbaa !26
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.742, double noundef %203, double noundef %204)
  br label %.critedge500.thread

205:                                              ; preds = %189
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.743)
  br label %.critedge500.thread

206:                                              ; preds = %189
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.744)
  br label %.critedge500.thread

.critedge500.thread:                              ; preds = %189, %.critedge, %202, %205, %206
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.745)
  %207 = trunc i64 %7 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.746, i32 noundef %207)
  %switch.tableidx = add i64 %7, -1
  %208 = icmp ult i64 %switch.tableidx, 3
  br i1 %208, label %switch.lookup, label %209

switch.lookup:                                    ; preds = %.critedge500.thread
  %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table._ZN11alglib_impl10rbfv3buildEPKNS_9ae_matrixES2_lPKNS_9ae_vectorElddlldPNS_10rbfv3modelEPlPbPNS_11rbfv3reportEPNS_8ae_stateE, i64 0, i64 %switch.tableidx
  %switch.load = load ptr, ptr %switch.gep, align 8
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull %switch.load)
  br label %209

209:                                              ; preds = %.critedge500.thread, %switch.lookup
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.745)
  %210 = load double, ptr %19, align 8, !tbaa !26
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.750, double noundef %6, double noundef %210)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.751)
  call void @_ZN11alglib_impl13tracevectore3EPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %3, i64 noundef 0, i64 noundef %.lcssa512, ptr noundef %14)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.752)
  br label %211

211:                                              ; preds = %209, %186
  %212 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %213 = load i64, ptr %17, align 8, !tbaa !29
  %214 = load double, ptr %18, align 8, !tbaa !26
  call void @_ZN11alglib_implL21rbfv3_modelmatrixinitEPKNS_9ae_matrixEllldlPNS_13rbf3evaluatorEPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %213, i64 noundef %.lcssa512, i64 noundef %4, double noundef %214, i64 noundef 1, ptr noundef nonnull %25, ptr noundef %14)
  %215 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %216 = sub i64 %215, %212
  br i1 %77, label %217, label %219

217:                                              ; preds = %211
  %218 = trunc i64 %216 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.753, i32 noundef %218)
  br label %219

219:                                              ; preds = %217, %211
  %220 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %91, i64 noundef %220, ptr noundef nonnull %38, ptr noundef %14)
  %221 = load i64, ptr %17, align 8, !tbaa !29
  %222 = sitofp i64 %221 to double
  %223 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %222, ptr noundef %14)
  %224 = fdiv double 1.000000e+00, %223
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %221, double noundef %224, ptr noundef nonnull %38, i64 noundef 0, ptr noundef %14)
  %225 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %225, ptr noundef nonnull %28, ptr noundef %14)
  %.not.not484527 = icmp sgt i64 %.lcssa512, 0
  br i1 %.not.not484527, label %.preheader509.lr.ph, label %._crit_edge530

.preheader509.lr.ph:                              ; preds = %219
  %226 = getelementptr inbounds i8, ptr %21, i64 72
  %227 = getelementptr inbounds i8, ptr %28, i64 56
  br label %.preheader509

.preheader509:                                    ; preds = %.preheader509.lr.ph, %267
  %.0450529 = phi i64 [ 0, %.preheader509.lr.ph ], [ %268, %267 ]
  %.0472528 = phi i64 [ 1, %.preheader509.lr.ph ], [ %.1473, %267 ]
  %228 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not497522 = icmp sgt i64 %228, 0
  br i1 %.not.not497522, label %.lr.ph524.preheader, label %._crit_edge525

.lr.ph524.preheader:                              ; preds = %.preheader509
  %xtraiter661 = and i64 %228, 1
  %229 = icmp eq i64 %228, 1
  br i1 %229, label %._crit_edge525.loopexit.unr-lcssa, label %.lr.ph524.preheader.new

.lr.ph524.preheader.new:                          ; preds = %.lr.ph524.preheader
  %unroll_iter664 = and i64 %228, 9223372036854775806
  br label %.lr.ph524

.lr.ph524:                                        ; preds = %.lr.ph524, %.lr.ph524.preheader.new
  %.2523 = phi i64 [ 0, %.lr.ph524.preheader.new ], [ %245, %.lr.ph524 ]
  %niter665 = phi i64 [ 0, %.lr.ph524.preheader.new ], [ %niter665.next.1, %.lr.ph524 ]
  %230 = load ptr, ptr %226, align 8, !tbaa !25
  %231 = getelementptr inbounds ptr, ptr %230, i64 %.2523
  %232 = load ptr, ptr %231, align 8, !tbaa !32
  %233 = getelementptr inbounds double, ptr %232, i64 %.0450529
  %234 = load double, ptr %233, align 8, !tbaa !26
  %235 = load ptr, ptr %227, align 8, !tbaa !25
  %236 = getelementptr inbounds double, ptr %235, i64 %.2523
  store double %234, ptr %236, align 8, !tbaa !26
  %237 = or disjoint i64 %.2523, 1
  %238 = load ptr, ptr %226, align 8, !tbaa !25
  %239 = getelementptr inbounds ptr, ptr %238, i64 %237
  %240 = load ptr, ptr %239, align 8, !tbaa !32
  %241 = getelementptr inbounds double, ptr %240, i64 %.0450529
  %242 = load double, ptr %241, align 8, !tbaa !26
  %243 = load ptr, ptr %227, align 8, !tbaa !25
  %244 = getelementptr inbounds double, ptr %243, i64 %237
  store double %242, ptr %244, align 8, !tbaa !26
  %245 = add nuw nsw i64 %.2523, 2
  %niter665.next.1 = add i64 %niter665, 2
  %niter665.ncmp.1 = icmp eq i64 %niter665.next.1, %unroll_iter664
  br i1 %niter665.ncmp.1, label %._crit_edge525.loopexit.unr-lcssa, label %.lr.ph524, !llvm.loop !37

._crit_edge525.loopexit.unr-lcssa:                ; preds = %.lr.ph524, %.lr.ph524.preheader
  %.2523.unr = phi i64 [ 0, %.lr.ph524.preheader ], [ %245, %.lr.ph524 ]
  %lcmp.mod663.not = icmp eq i64 %xtraiter661, 0
  br i1 %lcmp.mod663.not, label %._crit_edge525, label %.lr.ph524.epil

.lr.ph524.epil:                                   ; preds = %._crit_edge525.loopexit.unr-lcssa
  %246 = load ptr, ptr %226, align 8, !tbaa !25
  %247 = getelementptr inbounds ptr, ptr %246, i64 %.2523.unr
  %248 = load ptr, ptr %247, align 8, !tbaa !32
  %249 = getelementptr inbounds double, ptr %248, i64 %.0450529
  %250 = load double, ptr %249, align 8, !tbaa !26
  %251 = load ptr, ptr %227, align 8, !tbaa !25
  %252 = getelementptr inbounds double, ptr %251, i64 %.2523.unr
  store double %250, ptr %252, align 8, !tbaa !26
  br label %._crit_edge525

._crit_edge525:                                   ; preds = %.lr.ph524.epil, %._crit_edge525.loopexit.unr-lcssa, %.preheader509
  %253 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %228, ptr noundef nonnull %28, ptr noundef %14)
  %254 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %253, ptr noundef %14)
  %255 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl18rowwisegramschmidtEPKNS_9ae_matrixEllPNS_9ae_vectorES4_bPNS_8ae_stateE(ptr noundef nonnull %38, i64 noundef %.0472528, i64 noundef %255, ptr noundef nonnull %28, ptr noundef nonnull %28, i1 noundef zeroext false, ptr noundef %14)
  %256 = load i64, ptr %17, align 8, !tbaa !29
  %257 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %256, ptr noundef nonnull %28, ptr noundef %14)
  %258 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %257, ptr noundef %14)
  %259 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %14)
  %260 = fadd double %254, 1.000000e+00
  %261 = fmul double %260, %259
  %262 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %258, double noundef %261)
  br i1 %262, label %263, label %267

263:                                              ; preds = %._crit_edge525
  %264 = load i64, ptr %17, align 8, !tbaa !29
  %265 = fdiv double 1.000000e+00, %258
  call void @_ZN11alglib_impl10rcopymulvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %264, double noundef %265, ptr noundef nonnull %28, ptr noundef nonnull %38, i64 noundef %.0472528, ptr noundef %14)
  %266 = add nsw i64 %.0472528, 1
  br label %267

267:                                              ; preds = %._crit_edge525, %263
  %.1473 = phi i64 [ %266, %263 ], [ %.0472528, %._crit_edge525 ]
  %268 = add nuw nsw i64 %.0450529, 1
  %exitcond617.not = icmp eq i64 %268, %.lcssa512
  br i1 %exitcond617.not, label %._crit_edge530, label %.preheader509, !llvm.loop !38

._crit_edge530:                                   ; preds = %267, %219
  %.0472.lcssa = phi i64 [ 1, %219 ], [ %.1473, %267 ]
  br i1 %77, label %269, label %273

269:                                              ; preds = %._crit_edge530
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.754)
  %270 = trunc i64 %164 to i32
  %271 = trunc i64 %166 to i32
  %272 = trunc nuw nsw i64 %.0466 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.755, i32 noundef 0, i32 noundef %270, i32 noundef %271, i32 noundef %272)
  br label %273

273:                                              ; preds = %269, %._crit_edge530
  %274 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %275 = load i64, ptr %17, align 8, !tbaa !29
  %276 = load double, ptr %18, align 8, !tbaa !26
  %277 = load double, ptr %19, align 8, !tbaa !26
  %278 = fadd double %.0, %277
  call void @_ZN11alglib_implL31rbfv3_computeacbfpreconditionerEPKNS_9ae_matrixEllldllllllldPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %275, i64 noundef %.lcssa512, i64 noundef %4, double noundef %276, i64 noundef %7, i64 noundef %.0466, i64 noundef 0, i64 noundef %164, i64 noundef %166, i64 noundef 5, i64 noundef 2, double noundef %278, ptr noundef nonnull %42, ptr noundef %14)
  %279 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %280 = sub i64 %279, %274
  br i1 %77, label %.critedge502, label %.critedge503

.critedge502:                                     ; preds = %273
  %281 = trunc i64 %280 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.756, i32 noundef %281)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.757)
  %282 = load i64, ptr %17, align 8, !tbaa !29
  %283 = add i64 %91, %282
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %283, i64 noundef %76, double noundef 0.000000e+00, ptr noundef nonnull %34, ptr noundef %14)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.758)
  %284 = trunc nuw nsw i64 %.0470 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.759, i32 noundef %284)
  %285 = trunc i64 %.0467 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.760, i32 noundef %285)
  %286 = trunc i64 %.0475 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.761, i32 noundef %286)
  br label %289

.critedge503:                                     ; preds = %273
  %287 = load i64, ptr %17, align 8, !tbaa !29
  %288 = add i64 %91, %287
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %288, i64 noundef %76, double noundef 0.000000e+00, ptr noundef nonnull %34, ptr noundef %14)
  br label %289

289:                                              ; preds = %.critedge503, %.critedge502
  %290 = load double, ptr %20, align 8, !tbaa !26
  %291 = load i64, ptr %17, align 8, !tbaa !29
  %292 = load double, ptr %18, align 8, !tbaa !26
  %293 = load double, ptr %19, align 8, !tbaa !26
  call void @_ZN11alglib_implL19rbfv3_ddmsolverinitEPKNS_9ae_matrixEdllPKNS_13rbf3evaluatorElddlPKNS_12sparsematrixElllbbPNS_13rbf3ddmsolverEPlSB_PNS_8ae_stateE(ptr noundef nonnull %21, double noundef %290, i64 noundef %291, i64 noundef %.lcssa512, ptr noundef nonnull %25, i64 noundef %4, double noundef %292, double noundef %293, i64 noundef %7, ptr noundef nonnull %42, i64 noundef %.0470, i64 noundef %.0467, i64 noundef %.0475, i1 noundef zeroext %77, i1 noundef zeroext %81, ptr noundef nonnull %45, ptr noundef nonnull %47, ptr noundef nonnull %49, ptr noundef %14)
  br i1 %77, label %294, label %306

294:                                              ; preds = %289
  %295 = load i64, ptr %47, align 8, !tbaa !29
  %296 = trunc i64 %295 to i32
  %297 = getelementptr inbounds i8, ptr %45, i64 1208
  %298 = load i64, ptr %297, align 8, !tbaa !39
  %299 = trunc i64 %298 to i32
  %300 = getelementptr inbounds i8, ptr %45, i64 1960
  %301 = load i64, ptr %300, align 8, !tbaa !43
  %302 = trunc i64 %301 to i32
  %303 = getelementptr inbounds i8, ptr %45, i64 1968
  %304 = load i64, ptr %303, align 8, !tbaa !44
  %305 = trunc i64 %304 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.762, i32 noundef %296, i32 noundef %299, i32 noundef %302, i32 noundef %305)
  br label %306

306:                                              ; preds = %294, %289
  %.not.not485555 = icmp sgt i64 %76, 0
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %82, i8 0, i64 24, i1 false)
  br i1 %.not.not485555, label %.lr.ph559, label %._crit_edge560

.lr.ph559:                                        ; preds = %306
  %307 = getelementptr inbounds i8, ptr %46, i64 936
  %308 = getelementptr inbounds i8, ptr %46, i64 944
  %309 = getelementptr inbounds i8, ptr %46, i64 976
  %310 = getelementptr inbounds i8, ptr %46, i64 64
  %311 = getelementptr inbounds i8, ptr %26, i64 1568
  %312 = getelementptr inbounds i8, ptr %26, i64 1552
  %313 = getelementptr inbounds i8, ptr %26, i64 1560
  %314 = getelementptr inbounds i8, ptr %31, i64 56
  %315 = getelementptr inbounds i8, ptr %30, i64 56
  %316 = getelementptr inbounds i8, ptr %46, i64 128
  %317 = getelementptr inbounds i8, ptr %46, i64 192
  %318 = getelementptr inbounds i8, ptr %22, i64 72
  %319 = getelementptr inbounds i8, ptr %29, i64 56
  %.not.not495550 = icmp sgt i64 %2, 0
  %320 = getelementptr inbounds i8, ptr %1, i64 72
  %321 = getelementptr inbounds i8, ptr %39, i64 56
  %322 = getelementptr inbounds i8, ptr %46, i64 968
  br label %323

323:                                              ; preds = %.lr.ph559, %459
  %.0459557 = phi i64 [ 0, %.lr.ph559 ], [ %414, %459 ]
  %.0468556 = phi i64 [ 0, %.lr.ph559 ], [ %460, %459 ]
  br i1 %77, label %324, label %326

324:                                              ; preds = %323
  %325 = trunc i64 %.0468556 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.763, i32 noundef %325)
  br label %326

326:                                              ; preds = %324, %323
  %327 = load i64, ptr %17, align 8, !tbaa !29
  %328 = add i64 %91, %327
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %328, double noundef 0.000000e+00, ptr noundef nonnull %30, ptr noundef %14)
  %329 = load i64, ptr %17, align 8, !tbaa !29
  %330 = add i64 %91, %329
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %330, double noundef 0.000000e+00, ptr noundef nonnull %31, ptr noundef %14)
  %331 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl7rcopycvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %331, ptr noundef nonnull %22, i64 noundef %.0468556, ptr noundef nonnull %30, ptr noundef %14)
  %332 = load i64, ptr %17, align 8, !tbaa !29
  %333 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %332, ptr noundef nonnull %30, ptr noundef %14)
  %334 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %333, ptr noundef %14)
  %335 = load i64, ptr %17, align 8, !tbaa !29
  %336 = load i64, ptr @_ZN11alglib_implL15rbfv3_maxddmitsE, align 8, !tbaa !29
  %337 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %336, i64 noundef %335, ptr noundef %14)
  call void @_ZN11alglib_impl15fblsgmrescreateEPKNS_9ae_vectorEllPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef nonnull %30, i64 noundef %335, i64 noundef %337, ptr noundef nonnull %46, ptr noundef %14)
  store double %160, ptr %307, align 8, !tbaa !45
  %338 = load double, ptr @_ZN11alglib_implL12rbfv3_epsredE, align 8, !tbaa !26
  store double %338, ptr %308, align 8, !tbaa !49
  %339 = call noundef zeroext i1 @_ZN11alglib_impl18fblsgmresiterationEPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef nonnull %46, ptr noundef %14)
  %340 = fmul double %160, %334
  br i1 %339, label %.lr.ph540, label %._crit_edge541

.lr.ph540:                                        ; preds = %326, %400
  %.1460538 = phi i64 [ %391, %400 ], [ %.0459557, %326 ]
  %.0469537 = phi i64 [ %401, %400 ], [ 0, %326 ]
  br i1 %77, label %341, label %344

341:                                              ; preds = %.lr.ph540
  %342 = trunc i64 %.0469537 to i32
  %343 = load double, ptr %309, align 8, !tbaa !50
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.764, i32 noundef %342, double noundef %343)
  br label %344

344:                                              ; preds = %341, %.lr.ph540
  %345 = load i64, ptr %17, align 8, !tbaa !29
  %346 = add i64 %91, %345
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %346, ptr noundef nonnull %30, ptr noundef %14)
  %347 = load i64, ptr %17, align 8, !tbaa !29
  %348 = add i64 %91, %347
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %348, ptr noundef nonnull %31, ptr noundef %14)
  %349 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_implL19rbfv3_ddmsolverrun1EPNS_13rbf3ddmsolverEPKNS_9ae_vectorEllPKNS_12sparsematrixEPNS_13rbf3evaluatorEPNS_17rbf3fastevaluatorEdPS2_PlSD_PNS_8ae_stateE(ptr noundef nonnull %45, ptr noundef nonnull %310, i64 noundef %349, i64 noundef %.lcssa512, ptr noundef nonnull %42, ptr noundef nonnull %25, ptr noundef nonnull %26, double noundef %160, ptr noundef nonnull %30, ptr noundef nonnull %48, ptr noundef nonnull %50, ptr noundef %14)
  %350 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %351 = sub i64 %.1460538, %350
  call void @_ZN11alglib_implL30rbfv3_fastevaluatorloadcoeffs1EPNS_17rbf3fastevaluatorEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef nonnull %30, ptr noundef %14)
  call void @_ZN11alglib_implL26rbfv3_fastevaluatorpushtolEPNS_17rbf3fastevaluatorEdPNS_8ae_stateE(ptr noundef nonnull %26, double noundef %340, ptr noundef %14)
  call void @_ZN11alglib_implL29rbfv3_fastevaluatorcomputeallEPNS_17rbf3fastevaluatorEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef nonnull %31, ptr noundef %14)
  %352 = load i64, ptr %311, align 8, !tbaa !51
  %353 = sitofp i64 %352 to double
  %354 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %353, ptr noundef %14)
  %355 = load i64, ptr %312, align 8, !tbaa !52
  %356 = load i64, ptr %313, align 8, !tbaa !53
  %357 = add nsw i64 %356, %355
  %358 = sitofp i64 %357 to double
  %359 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %358, double noundef 1.000000e+00, ptr noundef %14)
  %360 = fdiv double %354, %359
  call void @_ZN11alglib_impl18savgcounterenqueueEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef nonnull %51, double noundef %360, ptr noundef %14)
  %361 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl6rgemvxElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %361, i64 noundef %91, double noundef 1.000000e+00, ptr noundef nonnull %24, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef nonnull %30, i64 noundef %361, double noundef 1.000000e+00, ptr noundef nonnull %31, i64 noundef 0, ptr noundef %14)
  %362 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not496532 = icmp sgt i64 %362, 0
  br i1 %.not.not496532, label %.lr.ph535.preheader, label %._crit_edge536

.lr.ph535.preheader:                              ; preds = %344
  %xtraiter666 = and i64 %362, 1
  %363 = icmp eq i64 %362, 1
  br i1 %363, label %._crit_edge536.loopexit.unr-lcssa, label %.lr.ph535.preheader.new

.lr.ph535.preheader.new:                          ; preds = %.lr.ph535.preheader
  %unroll_iter669 = and i64 %362, 9223372036854775806
  br label %.lr.ph535

.lr.ph535:                                        ; preds = %.lr.ph535, %.lr.ph535.preheader.new
  %.1454533 = phi i64 [ 0, %.lr.ph535.preheader.new ], [ %381, %.lr.ph535 ]
  %niter670 = phi i64 [ 0, %.lr.ph535.preheader.new ], [ %niter670.next.1, %.lr.ph535 ]
  %364 = load ptr, ptr %314, align 8, !tbaa !25
  %365 = getelementptr inbounds double, ptr %364, i64 %.1454533
  %366 = load double, ptr %365, align 8, !tbaa !26
  %367 = load double, ptr %19, align 8, !tbaa !26
  %368 = load ptr, ptr %315, align 8, !tbaa !25
  %369 = getelementptr inbounds double, ptr %368, i64 %.1454533
  %370 = load double, ptr %369, align 8, !tbaa !26
  %371 = call double @llvm.fmuladd.f64(double %367, double %370, double %366)
  store double %371, ptr %365, align 8, !tbaa !26
  %372 = or disjoint i64 %.1454533, 1
  %373 = load ptr, ptr %314, align 8, !tbaa !25
  %374 = getelementptr inbounds double, ptr %373, i64 %372
  %375 = load double, ptr %374, align 8, !tbaa !26
  %376 = load double, ptr %19, align 8, !tbaa !26
  %377 = load ptr, ptr %315, align 8, !tbaa !25
  %378 = getelementptr inbounds double, ptr %377, i64 %372
  %379 = load double, ptr %378, align 8, !tbaa !26
  %380 = call double @llvm.fmuladd.f64(double %376, double %379, double %375)
  store double %380, ptr %374, align 8, !tbaa !26
  %381 = add nuw nsw i64 %.1454533, 2
  %niter670.next.1 = add i64 %niter670, 2
  %niter670.ncmp.1 = icmp eq i64 %niter670.next.1, %unroll_iter669
  br i1 %niter670.ncmp.1, label %._crit_edge536.loopexit.unr-lcssa, label %.lr.ph535, !llvm.loop !54

._crit_edge536.loopexit.unr-lcssa:                ; preds = %.lr.ph535, %.lr.ph535.preheader
  %.1454533.unr = phi i64 [ 0, %.lr.ph535.preheader ], [ %381, %.lr.ph535 ]
  %lcmp.mod668.not = icmp eq i64 %xtraiter666, 0
  br i1 %lcmp.mod668.not, label %._crit_edge536, label %.lr.ph535.epil

.lr.ph535.epil:                                   ; preds = %._crit_edge536.loopexit.unr-lcssa
  %382 = load ptr, ptr %314, align 8, !tbaa !25
  %383 = getelementptr inbounds double, ptr %382, i64 %.1454533.unr
  %384 = load double, ptr %383, align 8, !tbaa !26
  %385 = load double, ptr %19, align 8, !tbaa !26
  %386 = load ptr, ptr %315, align 8, !tbaa !25
  %387 = getelementptr inbounds double, ptr %386, i64 %.1454533.unr
  %388 = load double, ptr %387, align 8, !tbaa !26
  %389 = call double @llvm.fmuladd.f64(double %385, double %388, double %384)
  store double %389, ptr %383, align 8, !tbaa !26
  br label %._crit_edge536

._crit_edge536:                                   ; preds = %.lr.ph535.epil, %._crit_edge536.loopexit.unr-lcssa, %344
  %390 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %391 = add nsw i64 %351, %390
  %392 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %392, ptr noundef nonnull %31, ptr noundef nonnull %316, ptr noundef %14)
  %393 = load i64, ptr %84, align 8, !tbaa !55
  %394 = add nsw i64 %393, 1
  store i64 %394, ptr %84, align 8, !tbaa !55
  %395 = icmp eq i64 %.0469537, 1
  br i1 %395, label %396, label %400

396:                                              ; preds = %._crit_edge536
  %397 = load double, ptr %309, align 8, !tbaa !50
  %398 = load double, ptr %87, align 8, !tbaa !31
  %399 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %397, double noundef %398, ptr noundef %14)
  store double %399, ptr %87, align 8, !tbaa !31
  br label %400

400:                                              ; preds = %396, %._crit_edge536
  %401 = add nuw nsw i64 %.0469537, 1
  %402 = call noundef zeroext i1 @_ZN11alglib_impl18fblsgmresiterationEPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef nonnull %46, ptr noundef %14)
  br i1 %402, label %.lr.ph540, label %._crit_edge541, !llvm.loop !57

._crit_edge541:                                   ; preds = %400, %326
  %.1460.lcssa = phi i64 [ %.0459557, %326 ], [ %391, %400 ]
  %403 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_implL19rbfv3_ddmsolverrun1EPNS_13rbf3ddmsolverEPKNS_9ae_vectorEllPKNS_12sparsematrixEPNS_13rbf3evaluatorEPNS_17rbf3fastevaluatorEdPS2_PlSD_PNS_8ae_stateE(ptr noundef nonnull %45, ptr noundef nonnull %317, i64 noundef %403, i64 noundef %.lcssa512, ptr noundef nonnull %42, ptr noundef nonnull %25, ptr noundef nonnull %26, double noundef %160, ptr noundef nonnull %29, ptr noundef nonnull %48, ptr noundef nonnull %50, ptr noundef %14)
  %404 = load i64, ptr %17, align 8, !tbaa !29
  %405 = add i64 %91, %404
  %406 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %405, ptr noundef nonnull %29, ptr noundef %14)
  %407 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %406, ptr noundef %14)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %407, ptr noundef nonnull @.str.765, ptr noundef %14)
  %408 = load i64, ptr %17, align 8, !tbaa !29
  %409 = add i64 %91, %408
  call void @_ZN11alglib_impl7rcopyvcElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %409, ptr noundef nonnull %29, ptr noundef nonnull %34, i64 noundef %.0468556, ptr noundef %14)
  %410 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %411 = sub i64 %.1460.lcssa, %410
  call void @_ZN11alglib_implL30rbfv3_fastevaluatorloadcoeffs1EPNS_17rbf3fastevaluatorEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef nonnull %29, ptr noundef %14)
  call void @_ZN11alglib_implL26rbfv3_fastevaluatorpushtolEPNS_17rbf3fastevaluatorEdPNS_8ae_stateE(ptr noundef nonnull %26, double noundef %340, ptr noundef %14)
  call void @_ZN11alglib_implL29rbfv3_fastevaluatorcomputeallEPNS_17rbf3fastevaluatorEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef nonnull %31, ptr noundef %14)
  %412 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl6rgemvxElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %412, i64 noundef %91, double noundef 1.000000e+00, ptr noundef nonnull %24, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef nonnull %29, i64 noundef %412, double noundef 1.000000e+00, ptr noundef nonnull %31, i64 noundef 0, ptr noundef %14)
  %413 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %414 = add nsw i64 %411, %413
  %415 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not494543 = icmp sgt i64 %415, 0
  br i1 %.not.not494543, label %.lr.ph547, label %._crit_edge548

.lr.ph547:                                        ; preds = %._crit_edge541, %.lr.ph547
  %.2455545 = phi i64 [ %433, %.lr.ph547 ], [ 0, %._crit_edge541 ]
  %.0471544 = phi double [ %432, %.lr.ph547 ], [ 0.000000e+00, %._crit_edge541 ]
  %416 = load ptr, ptr %318, align 8, !tbaa !25
  %417 = getelementptr inbounds ptr, ptr %416, i64 %.2455545
  %418 = load ptr, ptr %417, align 8, !tbaa !32
  %419 = getelementptr inbounds double, ptr %418, i64 %.0468556
  %420 = load double, ptr %419, align 8, !tbaa !26
  %421 = load ptr, ptr %314, align 8, !tbaa !25
  %422 = getelementptr inbounds double, ptr %421, i64 %.2455545
  %423 = load double, ptr %422, align 8, !tbaa !26
  %424 = fsub double %420, %423
  %425 = load double, ptr %19, align 8, !tbaa !26
  %426 = load ptr, ptr %319, align 8, !tbaa !25
  %427 = getelementptr inbounds double, ptr %426, i64 %.2455545
  %428 = load double, ptr %427, align 8, !tbaa !26
  %429 = fneg double %425
  %430 = call double @llvm.fmuladd.f64(double %429, double %428, double %424)
  %431 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %430, ptr noundef %14)
  %432 = fadd double %.0471544, %431
  %433 = add nuw nsw i64 %.2455545, 1
  %434 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not494 = icmp slt i64 %433, %434
  br i1 %.not.not494, label %.lr.ph547, label %._crit_edge548, !llvm.loop !58

._crit_edge548:                                   ; preds = %.lr.ph547, %._crit_edge541
  %.0471.lcssa = phi double [ 0.000000e+00, %._crit_edge541 ], [ %432, %.lr.ph547 ]
  %435 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.0471.lcssa, ptr noundef %14)
  br i1 %.not.not495550, label %.lr.ph553.preheader, label %._crit_edge554

.lr.ph553.preheader:                              ; preds = %._crit_edge548
  %.pre = load double, ptr %82, align 8, !tbaa !59
  br label %.lr.ph553

.lr.ph553:                                        ; preds = %.lr.ph553.preheader, %.lr.ph553
  %436 = phi double [ %450, %.lr.ph553 ], [ %.pre, %.lr.ph553.preheader ]
  %.3456551 = phi i64 [ %453, %.lr.ph553 ], [ 0, %.lr.ph553.preheader ]
  %437 = load ptr, ptr %320, align 8, !tbaa !25
  %438 = getelementptr inbounds ptr, ptr %437, i64 %.3456551
  %439 = load ptr, ptr %438, align 8, !tbaa !32
  %440 = getelementptr inbounds double, ptr %439, i64 %.0468556
  %441 = load double, ptr %440, align 8, !tbaa !26
  %442 = load ptr, ptr %314, align 8, !tbaa !25
  %443 = load ptr, ptr %321, align 8, !tbaa !25
  %444 = getelementptr inbounds i64, ptr %443, i64 %.3456551
  %445 = load i64, ptr %444, align 8, !tbaa !29
  %446 = getelementptr inbounds double, ptr %442, i64 %445
  %447 = load double, ptr %446, align 8, !tbaa !26
  %448 = fsub double %441, %447
  %449 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %448, ptr noundef %14)
  %450 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %436, double noundef %449, ptr noundef %14)
  store double %450, ptr %82, align 8, !tbaa !59
  %451 = load double, ptr %83, align 8, !tbaa !60
  %452 = call double @llvm.fmuladd.f64(double %448, double %448, double %451)
  store double %452, ptr %83, align 8, !tbaa !60
  %453 = add nuw nsw i64 %.3456551, 1
  %exitcond619.not = icmp eq i64 %453, %2
  br i1 %exitcond619.not, label %._crit_edge554, label %.lr.ph553, !llvm.loop !61

._crit_edge554:                                   ; preds = %.lr.ph553, %._crit_edge548
  br i1 %77, label %454, label %459

454:                                              ; preds = %._crit_edge554
  %455 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %334, double noundef 1.000000e+00, ptr noundef %14)
  %456 = fdiv double %435, %455
  %457 = load i64, ptr %322, align 8, !tbaa !62
  %458 = trunc i64 %457 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.766, double noundef %456, i32 noundef %458)
  br label %459

459:                                              ; preds = %._crit_edge554, %454
  %460 = add nuw nsw i64 %.0468556, 1
  %exitcond620.not = icmp eq i64 %460, %76
  br i1 %exitcond620.not, label %._crit_edge560.loopexit, label %323, !llvm.loop !63

._crit_edge560.loopexit:                          ; preds = %459
  %.pre629 = load double, ptr %83, align 8, !tbaa !60
  br label %._crit_edge560

._crit_edge560:                                   ; preds = %._crit_edge560.loopexit, %306
  %461 = phi double [ 0.000000e+00, %306 ], [ %.pre629, %._crit_edge560.loopexit ]
  %.0459.lcssa = phi i64 [ 0, %306 ], [ %414, %._crit_edge560.loopexit ]
  %462 = mul nsw i64 %76, %2
  %463 = sitofp i64 %462 to double
  %464 = fdiv double %461, %463
  %465 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %464, ptr noundef %14)
  store double %465, ptr %83, align 8, !tbaa !60
  %466 = call noundef i64 @_ZN11alglib_impl12ae_tickcountEv()
  %467 = sub i64 %466, %85
  br i1 %77, label %468, label %514

468:                                              ; preds = %._crit_edge560
  %469 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %469, ptr noundef nonnull %30, ptr noundef %14)
  br i1 %.not.not485555, label %.lr.ph580, label %._crit_edge581

.lr.ph580:                                        ; preds = %468
  %470 = getelementptr inbounds i8, ptr %30, i64 56
  %.not.not493568 = icmp sgt i64 %.0472.lcssa, 0
  br label %471

471:                                              ; preds = %.lr.ph580, %._crit_edge572
  %.1578 = phi i64 [ 0, %.lr.ph580 ], [ %489, %._crit_edge572 ]
  %.0461577 = phi double [ 0.000000e+00, %.lr.ph580 ], [ %475, %._crit_edge572 ]
  %.0462576 = phi double [ 0.000000e+00, %.lr.ph580 ], [ %.1463.lcssa, %._crit_edge572 ]
  %.0464575 = phi double [ 0.000000e+00, %.lr.ph580 ], [ %.1465.lcssa, %._crit_edge572 ]
  %472 = load i64, ptr %17, align 8, !tbaa !29
  call void @_ZN11alglib_impl7rcopycvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %472, ptr noundef nonnull %34, i64 noundef %.1578, ptr noundef nonnull %30, ptr noundef %14)
  %473 = load i64, ptr %17, align 8, !tbaa !29
  %474 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %473, ptr noundef nonnull %30, ptr noundef %14)
  %475 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.0461577, double noundef %474, ptr noundef %14)
  %476 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not492562 = icmp sgt i64 %476, 0
  br i1 %.not.not492562, label %.lr.ph566, label %.preheader508

.preheader508:                                    ; preds = %.lr.ph566, %471
  %.1463.lcssa = phi double [ %.0462576, %471 ], [ %481, %.lr.ph566 ]
  br i1 %.not.not493568, label %.lr.ph571, label %._crit_edge572

.lr.ph566:                                        ; preds = %471, %.lr.ph566
  %.4457564 = phi i64 [ %482, %.lr.ph566 ], [ 0, %471 ]
  %.1463563 = phi double [ %481, %.lr.ph566 ], [ %.0462576, %471 ]
  %477 = load ptr, ptr %470, align 8, !tbaa !25
  %478 = getelementptr inbounds double, ptr %477, i64 %.4457564
  %479 = load double, ptr %478, align 8, !tbaa !26
  %480 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %479, ptr noundef %14)
  %481 = fadd double %.1463563, %480
  %482 = add nuw nsw i64 %.4457564, 1
  %483 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not492 = icmp slt i64 %482, %483
  br i1 %.not.not492, label %.lr.ph566, label %.preheader508, !llvm.loop !64

.lr.ph571:                                        ; preds = %.preheader508, %.lr.ph571
  %.5458570 = phi i64 [ %488, %.lr.ph571 ], [ 0, %.preheader508 ]
  %.1465569 = phi double [ %487, %.lr.ph571 ], [ %.0464575, %.preheader508 ]
  %484 = load i64, ptr %17, align 8, !tbaa !29
  %485 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %484, ptr noundef nonnull %30, ptr noundef nonnull %38, i64 noundef %.5458570, ptr noundef %14)
  %486 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %485, ptr noundef %14)
  %487 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.1465569, double noundef %486, ptr noundef %14)
  %488 = add nuw nsw i64 %.5458570, 1
  %exitcond621.not = icmp eq i64 %488, %.0472.lcssa
  br i1 %exitcond621.not, label %._crit_edge572, label %.lr.ph571, !llvm.loop !65

._crit_edge572:                                   ; preds = %.lr.ph571, %.preheader508
  %.1465.lcssa = phi double [ %.0464575, %.preheader508 ], [ %487, %.lr.ph571 ]
  %489 = add nuw nsw i64 %.1578, 1
  %exitcond622.not = icmp eq i64 %489, %76
  br i1 %exitcond622.not, label %._crit_edge581, label %471, !llvm.loop !66

._crit_edge581:                                   ; preds = %._crit_edge572, %468
  %.0464.lcssa = phi double [ 0.000000e+00, %468 ], [ %.1465.lcssa, %._crit_edge572 ]
  %.0462.lcssa = phi double [ 0.000000e+00, %468 ], [ %.1463.lcssa, %._crit_edge572 ]
  %.0461.lcssa = phi double [ 0.000000e+00, %468 ], [ %475, %._crit_edge572 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.767)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.768)
  %490 = load double, ptr %83, align 8, !tbaa !60
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.769, double noundef %490)
  %491 = load double, ptr %82, align 8, !tbaa !59
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.770, double noundef %491)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.771, double noundef %.0464.lcssa)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.772)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.773, double noundef %.0462.lcssa)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.774, double noundef %.0461.lcssa)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.775)
  %492 = load i64, ptr %84, align 8, !tbaa !55
  %493 = trunc i64 %492 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.776, i32 noundef %493)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.777)
  %494 = call noundef double @_ZN11alglib_impl14savgcountergetEPKNS_11savgcounterEPNS_8ae_stateE(ptr noundef nonnull %51, ptr noundef %14)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.778, double noundef %494)
  %495 = sitofp i64 %467 to double
  %496 = sitofp i64 %.0459.lcssa to double
  %497 = call noundef double @_ZN11alglib_impl14savgcountergetEPKNS_11savgcounterEPNS_8ae_stateE(ptr noundef nonnull %51, ptr noundef %14)
  %498 = fadd double %497, -1.000000e+00
  %499 = call double @llvm.fmuladd.f64(double %496, double %498, double %495)
  %500 = fadd double %495, 5.000000e-16
  %501 = fdiv double %499, %500
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.779, double noundef %501)
  %502 = trunc i64 %467 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.780, i32 noundef %502)
  %503 = trunc i64 %216 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.781, i32 noundef %503)
  %504 = trunc i64 %280 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.782, i32 noundef %504)
  %505 = load i64, ptr %47, align 8, !tbaa !29
  %506 = trunc i64 %505 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.783, i32 noundef %506)
  %507 = load i64, ptr %49, align 8, !tbaa !29
  %508 = trunc i64 %507 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.784, i32 noundef %508)
  %509 = load i64, ptr %48, align 8, !tbaa !29
  %510 = trunc i64 %509 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.785, i32 noundef %510)
  %511 = load i64, ptr %50, align 8, !tbaa !29
  %512 = trunc i64 %511 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.786, i32 noundef %512)
  %513 = trunc i64 %.0459.lcssa to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.787, i32 noundef %513)
  br label %514

514:                                              ; preds = %._crit_edge581, %._crit_edge560
  %515 = getelementptr inbounds i8, ptr %10, i64 16
  store i64 %4, ptr %515, align 8, !tbaa !67
  %516 = load double, ptr %18, align 8, !tbaa !26
  %517 = getelementptr inbounds i8, ptr %10, i64 24
  store double %516, ptr %517, align 8, !tbaa !68
  %518 = getelementptr inbounds i8, ptr %10, i64 32
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.lcssa512, ptr noundef nonnull %33, ptr noundef nonnull %518, ptr noundef %14)
  %.pre630 = load i64, ptr %17, align 8, !tbaa !29
  br i1 %.not.not485555, label %.lr.ph593, label %._crit_edge594

.lr.ph593:                                        ; preds = %514
  %519 = getelementptr inbounds i8, ptr %34, i64 72
  %520 = getelementptr inbounds i8, ptr %10, i64 168
  %521 = getelementptr inbounds i8, ptr %33, i64 56
  %522 = getelementptr inbounds i8, ptr %32, i64 56
  br i1 %.not.not484527, label %.lr.ph588.us, label %.lr.ph593.split.preheader

.lr.ph593.split.preheader:                        ; preds = %.lr.ph593
  %xtraiter671 = and i64 %76, 1
  %523 = icmp eq i64 %76, 1
  br i1 %523, label %._crit_edge594.loopexit648.unr-lcssa, label %.lr.ph593.split.preheader.new

.lr.ph593.split.preheader.new:                    ; preds = %.lr.ph593.split.preheader
  %unroll_iter674 = and i64 %76, 9223372036854775806
  br label %.lr.ph593.split

.lr.ph588.us:                                     ; preds = %.lr.ph593, %._crit_edge589.us
  %.3591.us = phi i64 [ %570, %._crit_edge589.us ], [ 0, %.lr.ph593 ]
  %524 = load ptr, ptr %519, align 8, !tbaa !25
  %525 = getelementptr ptr, ptr %524, i64 %.pre630
  %526 = getelementptr ptr, ptr %525, i64 %.lcssa512
  %527 = load ptr, ptr %526, align 8, !tbaa !32
  %528 = getelementptr inbounds double, ptr %527, i64 %.3591.us
  %529 = load double, ptr %528, align 8, !tbaa !26
  %530 = load ptr, ptr %520, align 8, !tbaa !25
  %531 = getelementptr inbounds ptr, ptr %530, i64 %.3591.us
  %532 = load ptr, ptr %531, align 8, !tbaa !32
  %533 = getelementptr inbounds double, ptr %532, i64 %.lcssa512
  store double %529, ptr %533, align 8, !tbaa !26
  br label %534

534:                                              ; preds = %.lr.ph588.us, %534
  %.6586.us = phi i64 [ 0, %.lr.ph588.us ], [ %569, %534 ]
  %535 = load ptr, ptr %519, align 8, !tbaa !25
  %536 = getelementptr ptr, ptr %535, i64 %.pre630
  %537 = getelementptr ptr, ptr %536, i64 %.6586.us
  %538 = load ptr, ptr %537, align 8, !tbaa !32
  %539 = getelementptr inbounds double, ptr %538, i64 %.3591.us
  %540 = load double, ptr %539, align 8, !tbaa !26
  %541 = load ptr, ptr %521, align 8, !tbaa !25
  %542 = getelementptr inbounds double, ptr %541, i64 %.6586.us
  %543 = load double, ptr %542, align 8, !tbaa !26
  %544 = fdiv double %540, %543
  %545 = load ptr, ptr %520, align 8, !tbaa !25
  %546 = getelementptr inbounds ptr, ptr %545, i64 %.3591.us
  %547 = load ptr, ptr %546, align 8, !tbaa !32
  %548 = getelementptr inbounds double, ptr %547, i64 %.6586.us
  store double %544, ptr %548, align 8, !tbaa !26
  %549 = load ptr, ptr %520, align 8, !tbaa !25
  %550 = getelementptr inbounds ptr, ptr %549, i64 %.3591.us
  %551 = load ptr, ptr %550, align 8, !tbaa !32
  %552 = getelementptr inbounds double, ptr %551, i64 %.lcssa512
  %553 = load double, ptr %552, align 8, !tbaa !26
  %554 = load ptr, ptr %519, align 8, !tbaa !25
  %555 = getelementptr ptr, ptr %554, i64 %.pre630
  %556 = getelementptr ptr, ptr %555, i64 %.6586.us
  %557 = load ptr, ptr %556, align 8, !tbaa !32
  %558 = getelementptr inbounds double, ptr %557, i64 %.3591.us
  %559 = load double, ptr %558, align 8, !tbaa !26
  %560 = load ptr, ptr %522, align 8, !tbaa !25
  %561 = getelementptr inbounds double, ptr %560, i64 %.6586.us
  %562 = load double, ptr %561, align 8, !tbaa !26
  %563 = fmul double %559, %562
  %564 = load ptr, ptr %521, align 8, !tbaa !25
  %565 = getelementptr inbounds double, ptr %564, i64 %.6586.us
  %566 = load double, ptr %565, align 8, !tbaa !26
  %567 = fdiv double %563, %566
  %568 = fsub double %553, %567
  store double %568, ptr %552, align 8, !tbaa !26
  %569 = add nuw nsw i64 %.6586.us, 1
  %exitcond624.not = icmp eq i64 %569, %.lcssa512
  br i1 %exitcond624.not, label %._crit_edge589.us, label %534, !llvm.loop !69

._crit_edge589.us:                                ; preds = %534
  %570 = add nuw nsw i64 %.3591.us, 1
  %exitcond625.not = icmp eq i64 %570, %76
  br i1 %exitcond625.not, label %._crit_edge594, label %.lr.ph588.us, !llvm.loop !70

.lr.ph593.split:                                  ; preds = %.lr.ph593.split, %.lr.ph593.split.preheader.new
  %.3591 = phi i64 [ 0, %.lr.ph593.split.preheader.new ], [ %592, %.lr.ph593.split ]
  %niter675 = phi i64 [ 0, %.lr.ph593.split.preheader.new ], [ %niter675.next.1, %.lr.ph593.split ]
  %571 = load ptr, ptr %519, align 8, !tbaa !25
  %572 = getelementptr ptr, ptr %571, i64 %.pre630
  %573 = getelementptr ptr, ptr %572, i64 %.lcssa512
  %574 = load ptr, ptr %573, align 8, !tbaa !32
  %575 = getelementptr inbounds double, ptr %574, i64 %.3591
  %576 = load double, ptr %575, align 8, !tbaa !26
  %577 = load ptr, ptr %520, align 8, !tbaa !25
  %578 = getelementptr inbounds ptr, ptr %577, i64 %.3591
  %579 = load ptr, ptr %578, align 8, !tbaa !32
  %580 = getelementptr inbounds double, ptr %579, i64 %.lcssa512
  store double %576, ptr %580, align 8, !tbaa !26
  %581 = or disjoint i64 %.3591, 1
  %582 = load ptr, ptr %519, align 8, !tbaa !25
  %583 = getelementptr ptr, ptr %582, i64 %.pre630
  %584 = getelementptr ptr, ptr %583, i64 %.lcssa512
  %585 = load ptr, ptr %584, align 8, !tbaa !32
  %586 = getelementptr inbounds double, ptr %585, i64 %581
  %587 = load double, ptr %586, align 8, !tbaa !26
  %588 = load ptr, ptr %520, align 8, !tbaa !25
  %589 = getelementptr inbounds ptr, ptr %588, i64 %581
  %590 = load ptr, ptr %589, align 8, !tbaa !32
  %591 = getelementptr inbounds double, ptr %590, i64 %.lcssa512
  store double %587, ptr %591, align 8, !tbaa !26
  %592 = add nuw nsw i64 %.3591, 2
  %niter675.next.1 = add i64 %niter675, 2
  %niter675.ncmp.1 = icmp eq i64 %niter675.next.1, %unroll_iter674
  br i1 %niter675.ncmp.1, label %._crit_edge594.loopexit648.unr-lcssa, label %.lr.ph593.split, !llvm.loop !70

._crit_edge594.loopexit648.unr-lcssa:             ; preds = %.lr.ph593.split, %.lr.ph593.split.preheader
  %.3591.unr = phi i64 [ 0, %.lr.ph593.split.preheader ], [ %592, %.lr.ph593.split ]
  %lcmp.mod673.not = icmp eq i64 %xtraiter671, 0
  br i1 %lcmp.mod673.not, label %._crit_edge594, label %.lr.ph593.split.epil

.lr.ph593.split.epil:                             ; preds = %._crit_edge594.loopexit648.unr-lcssa
  %593 = load ptr, ptr %519, align 8, !tbaa !25
  %594 = getelementptr ptr, ptr %593, i64 %.pre630
  %595 = getelementptr ptr, ptr %594, i64 %.lcssa512
  %596 = load ptr, ptr %595, align 8, !tbaa !32
  %597 = getelementptr inbounds double, ptr %596, i64 %.3591.unr
  %598 = load double, ptr %597, align 8, !tbaa !26
  %599 = load ptr, ptr %520, align 8, !tbaa !25
  %600 = getelementptr inbounds ptr, ptr %599, i64 %.3591.unr
  %601 = load ptr, ptr %600, align 8, !tbaa !32
  %602 = getelementptr inbounds double, ptr %601, i64 %.lcssa512
  store double %598, ptr %602, align 8, !tbaa !26
  br label %._crit_edge594

._crit_edge594:                                   ; preds = %.lr.ph593.split.epil, %._crit_edge594.loopexit648.unr-lcssa, %._crit_edge589.us, %514
  %603 = add nsw i64 %76, %.lcssa512
  %604 = mul nsw i64 %.pre630, %603
  %605 = getelementptr inbounds i8, ptr %10, i64 176
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %604, ptr noundef nonnull %605, ptr noundef %14)
  %606 = load i64, ptr %17, align 8, !tbaa !29
  %.not.not488602 = icmp sgt i64 %606, 0
  br i1 %.not.not488602, label %.preheader507.lr.ph, label %._crit_edge604

.preheader507.lr.ph:                              ; preds = %._crit_edge594
  %607 = getelementptr inbounds i8, ptr %21, i64 72
  %608 = getelementptr inbounds i8, ptr %32, i64 56
  %609 = getelementptr inbounds i8, ptr %33, i64 56
  %610 = getelementptr inbounds i8, ptr %10, i64 232
  %611 = getelementptr inbounds i8, ptr %34, i64 72
  %xtraiter677 = and i64 %.lcssa512, 1
  %612 = icmp eq i64 %.lcssa512, 1
  %unroll_iter680 = and i64 %.lcssa512, 9223372036854775806
  %lcmp.mod679.not = icmp eq i64 %xtraiter677, 0
  %xtraiter683 = and i64 %76, 1
  %613 = icmp eq i64 %76, 1
  %unroll_iter686 = and i64 %76, 9223372036854775806
  %lcmp.mod685.not = icmp eq i64 %xtraiter683, 0
  br label %.preheader507

.preheader507:                                    ; preds = %.preheader507.lr.ph, %._crit_edge601
  %.7603 = phi i64 [ 0, %.preheader507.lr.ph ], [ %695, %._crit_edge601 ]
  br i1 %.not.not484527, label %.lr.ph597, label %.preheader

.lr.ph597:                                        ; preds = %.preheader507
  %614 = mul nsw i64 %.7603, %603
  br i1 %612, label %.preheader.loopexit.unr-lcssa, label %.lr.ph597.new

.preheader.loopexit.unr-lcssa:                    ; preds = %.lr.ph597.new, %.lr.ph597
  %.4596.unr = phi i64 [ 0, %.lr.ph597 ], [ %665, %.lr.ph597.new ]
  br i1 %lcmp.mod679.not, label %.preheader, label %.preheader.loopexit.epilog-lcssa

.preheader.loopexit.epilog-lcssa:                 ; preds = %.preheader.loopexit.unr-lcssa
  %615 = load ptr, ptr %607, align 8, !tbaa !25
  %616 = getelementptr inbounds ptr, ptr %615, i64 %.7603
  %617 = load ptr, ptr %616, align 8, !tbaa !32
  %618 = getelementptr inbounds double, ptr %617, i64 %.4596.unr
  %619 = load double, ptr %618, align 8, !tbaa !26
  %620 = load ptr, ptr %608, align 8, !tbaa !25
  %621 = getelementptr inbounds double, ptr %620, i64 %.4596.unr
  %622 = load double, ptr %621, align 8, !tbaa !26
  %623 = load ptr, ptr %609, align 8, !tbaa !25
  %624 = getelementptr inbounds double, ptr %623, i64 %.4596.unr
  %625 = load double, ptr %624, align 8, !tbaa !26
  %626 = fdiv double %622, %625
  %627 = fadd double %619, %626
  %628 = load ptr, ptr %610, align 8, !tbaa !25
  %629 = getelementptr double, ptr %628, i64 %614
  %630 = getelementptr double, ptr %629, i64 %.4596.unr
  store double %627, ptr %630, align 8, !tbaa !26
  br label %.preheader

.preheader:                                       ; preds = %.preheader.loopexit.epilog-lcssa, %.preheader.loopexit.unr-lcssa, %.preheader507
  br i1 %.not.not485555, label %.lr.ph600, label %._crit_edge601

.lr.ph600:                                        ; preds = %.preheader
  %631 = mul nsw i64 %.7603, %603
  br i1 %613, label %._crit_edge601.loopexit.unr-lcssa, label %.lr.ph600.new

.lr.ph597.new:                                    ; preds = %.lr.ph597, %.lr.ph597.new
  %.4596 = phi i64 [ %665, %.lr.ph597.new ], [ 0, %.lr.ph597 ]
  %niter681 = phi i64 [ %niter681.next.1, %.lr.ph597.new ], [ 0, %.lr.ph597 ]
  %632 = load ptr, ptr %607, align 8, !tbaa !25
  %633 = getelementptr inbounds ptr, ptr %632, i64 %.7603
  %634 = load ptr, ptr %633, align 8, !tbaa !32
  %635 = getelementptr inbounds double, ptr %634, i64 %.4596
  %636 = load double, ptr %635, align 8, !tbaa !26
  %637 = load ptr, ptr %608, align 8, !tbaa !25
  %638 = getelementptr inbounds double, ptr %637, i64 %.4596
  %639 = load double, ptr %638, align 8, !tbaa !26
  %640 = load ptr, ptr %609, align 8, !tbaa !25
  %641 = getelementptr inbounds double, ptr %640, i64 %.4596
  %642 = load double, ptr %641, align 8, !tbaa !26
  %643 = fdiv double %639, %642
  %644 = fadd double %636, %643
  %645 = load ptr, ptr %610, align 8, !tbaa !25
  %646 = getelementptr double, ptr %645, i64 %614
  %647 = getelementptr double, ptr %646, i64 %.4596
  store double %644, ptr %647, align 8, !tbaa !26
  %648 = or disjoint i64 %.4596, 1
  %649 = load ptr, ptr %607, align 8, !tbaa !25
  %650 = getelementptr inbounds ptr, ptr %649, i64 %.7603
  %651 = load ptr, ptr %650, align 8, !tbaa !32
  %652 = getelementptr inbounds double, ptr %651, i64 %648
  %653 = load double, ptr %652, align 8, !tbaa !26
  %654 = load ptr, ptr %608, align 8, !tbaa !25
  %655 = getelementptr inbounds double, ptr %654, i64 %648
  %656 = load double, ptr %655, align 8, !tbaa !26
  %657 = load ptr, ptr %609, align 8, !tbaa !25
  %658 = getelementptr inbounds double, ptr %657, i64 %648
  %659 = load double, ptr %658, align 8, !tbaa !26
  %660 = fdiv double %656, %659
  %661 = fadd double %653, %660
  %662 = load ptr, ptr %610, align 8, !tbaa !25
  %663 = getelementptr double, ptr %662, i64 %614
  %664 = getelementptr double, ptr %663, i64 %648
  store double %661, ptr %664, align 8, !tbaa !26
  %665 = add nuw nsw i64 %.4596, 2
  %niter681.next.1 = add i64 %niter681, 2
  %niter681.ncmp.1 = icmp eq i64 %niter681.next.1, %unroll_iter680
  br i1 %niter681.ncmp.1, label %.preheader.loopexit.unr-lcssa, label %.lr.ph597.new, !llvm.loop !71

.lr.ph600.new:                                    ; preds = %.lr.ph600, %.lr.ph600.new
  %.5599 = phi i64 [ %685, %.lr.ph600.new ], [ 0, %.lr.ph600 ]
  %niter687 = phi i64 [ %niter687.next.1, %.lr.ph600.new ], [ 0, %.lr.ph600 ]
  %666 = load ptr, ptr %611, align 8, !tbaa !25
  %667 = getelementptr inbounds ptr, ptr %666, i64 %.7603
  %668 = load ptr, ptr %667, align 8, !tbaa !32
  %669 = getelementptr inbounds double, ptr %668, i64 %.5599
  %670 = load double, ptr %669, align 8, !tbaa !26
  %671 = load ptr, ptr %610, align 8, !tbaa !25
  %672 = getelementptr double, ptr %671, i64 %631
  %673 = getelementptr double, ptr %672, i64 %.lcssa512
  %674 = getelementptr double, ptr %673, i64 %.5599
  store double %670, ptr %674, align 8, !tbaa !26
  %675 = or disjoint i64 %.5599, 1
  %676 = load ptr, ptr %611, align 8, !tbaa !25
  %677 = getelementptr inbounds ptr, ptr %676, i64 %.7603
  %678 = load ptr, ptr %677, align 8, !tbaa !32
  %679 = getelementptr inbounds double, ptr %678, i64 %675
  %680 = load double, ptr %679, align 8, !tbaa !26
  %681 = load ptr, ptr %610, align 8, !tbaa !25
  %682 = getelementptr double, ptr %681, i64 %631
  %683 = getelementptr double, ptr %682, i64 %.lcssa512
  %684 = getelementptr double, ptr %683, i64 %675
  store double %680, ptr %684, align 8, !tbaa !26
  %685 = add nuw nsw i64 %.5599, 2
  %niter687.next.1 = add i64 %niter687, 2
  %niter687.ncmp.1 = icmp eq i64 %niter687.next.1, %unroll_iter686
  br i1 %niter687.ncmp.1, label %._crit_edge601.loopexit.unr-lcssa, label %.lr.ph600.new, !llvm.loop !72

._crit_edge601.loopexit.unr-lcssa:                ; preds = %.lr.ph600.new, %.lr.ph600
  %.5599.unr = phi i64 [ 0, %.lr.ph600 ], [ %685, %.lr.ph600.new ]
  br i1 %lcmp.mod685.not, label %._crit_edge601, label %._crit_edge601.loopexit.epilog-lcssa

._crit_edge601.loopexit.epilog-lcssa:             ; preds = %._crit_edge601.loopexit.unr-lcssa
  %686 = load ptr, ptr %611, align 8, !tbaa !25
  %687 = getelementptr inbounds ptr, ptr %686, i64 %.7603
  %688 = load ptr, ptr %687, align 8, !tbaa !32
  %689 = getelementptr inbounds double, ptr %688, i64 %.5599.unr
  %690 = load double, ptr %689, align 8, !tbaa !26
  %691 = load ptr, ptr %610, align 8, !tbaa !25
  %692 = getelementptr double, ptr %691, i64 %631
  %693 = getelementptr double, ptr %692, i64 %.lcssa512
  %694 = getelementptr double, ptr %693, i64 %.5599.unr
  store double %690, ptr %694, align 8, !tbaa !26
  br label %._crit_edge601

._crit_edge601:                                   ; preds = %._crit_edge601.loopexit.epilog-lcssa, %._crit_edge601.loopexit.unr-lcssa, %.preheader
  %695 = add nuw nsw i64 %.7603, 1
  %exitcond628.not = icmp eq i64 %695, %606
  br i1 %exitcond628.not, label %._crit_edge604, label %.preheader507, !llvm.loop !73

._crit_edge604:                                   ; preds = %._crit_edge601, %._crit_edge594
  %696 = getelementptr inbounds i8, ptr %10, i64 240
  call void @_ZN11alglib_impl11icopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %606, ptr noundef nonnull %40, ptr noundef nonnull %696, ptr noundef %14)
  %697 = load i64, ptr %17, align 8, !tbaa !29
  %698 = getelementptr inbounds i8, ptr %10, i64 304
  store i64 %697, ptr %698, align 8, !tbaa !74
  call void @_ZN11alglib_implL25rbfv3_createfastevaluatorEPNS_10rbfv3modelEPNS_8ae_stateE(ptr noundef nonnull %10, ptr noundef %14)
  %699 = getelementptr inbounds i8, ptr %45, i64 1968
  %700 = load i64, ptr %699, align 8, !tbaa !44
  %701 = icmp sgt i64 %700, 0
  %702 = zext i1 %701 to i8
  store i8 %702, ptr %86, align 8, !tbaa !30
  br label %703

703:                                              ; preds = %._crit_edge604, %89
  store i64 1, ptr %13, align 8, !tbaa !75
  store i64 10000, ptr %11, align 8, !tbaa !29
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %14)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %54) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %52) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 1248, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 1976, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 2360, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 1576, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 552, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  ret void
}

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

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

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

declare void @_ZN11alglib_impl23_sparsesolverstate_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare void @_ZN11alglib_impl24_sparsesolverreport_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

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

declare void @_ZN11alglib_impl20_fblsgmresstate_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare void @_ZN11alglib_impl17_savgcounter_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare void @_ZN11alglib_impl15savgcounterinitEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) local_unnamed_addr #2

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

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

declare noundef i64 @_ZN11alglib_impl5imin2EllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare noundef i64 @_ZN11alglib_impl5imin3ElllPNS_8ae_stateE(i64 noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

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

declare void @_ZN11alglib_impl13tracevectore3EPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

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

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

declare void @_ZN11alglib_impl18rowwisegramschmidtEPKNS_9ae_matrixEllPNS_9ae_vectorES4_bPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl10rcopymulvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

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

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

declare void @_ZN11alglib_impl15fblsgmrescreateEPKNS_9ae_vectorEllPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN11alglib_impl18fblsgmresiterationEPNS_14fblsgmresstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

declare void @_ZN11alglib_impl18savgcounterenqueueEPNS_11savgcounterEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl6rgemvxElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl7rcopyvcElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

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

declare noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl14savgcountergetEPKNS_11savgcounterEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl11icopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { "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 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, !7, i64 8}
!6 = !{!"_ZTSN11alglib_impl10rbfv3modelE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !11, i64 32, !15, i64 96, !11, i64 176, !11, i64 240, !7, i64 304, !16, i64 312, !19, i64 864, !15, i64 2440, !22, i64 2520, !12, i64 3720, !10, i64 3728}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !12, i64 16, !13, i64 24, !8, i64 56}
!12 = !{!"bool", !8, i64 0}
!13 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!14 = !{!"any pointer", !8, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !12, i64 32, !13, i64 40, !8, i64 72}
!16 = !{!"_ZTSN11alglib_impl13rbf3evaluatorE", !7, i64 0, !7, i64 8, !15, i64 16, !7, i64 96, !7, i64 104, !10, i64 112, !7, i64 120, !11, i64 128, !15, i64 192, !15, i64 272, !17, i64 352, !11, i64 488}
!17 = !{!"_ZTSN11alglib_impl14ae_shared_poolE", !18, i64 0, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !7, i64 80, !14, i64 88, !14, i64 96, !13, i64 104}
!18 = !{!"_ZTSN11alglib_impl7ae_lockE", !14, i64 0, !13, i64 8, !12, i64 40}
!19 = !{!"_ZTSN11alglib_impl17rbf3fastevaluatorE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !15, i64 48, !11, i64 128, !15, i64 192, !12, i64 272, !20, i64 280, !21, i64 416, !17, i64 1328, !15, i64 1464, !12, i64 1544, !7, i64 1552, !7, i64 1560, !7, i64 1568}
!20 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !7, i64 0, !7, i64 8, !12, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !18, i64 56, !13, i64 104}
!21 = !{!"_ZTSN11alglib_impl19biharmonicevaluatorE", !7, i64 0, !7, i64 8, !11, i64 16, !11, i64 80, !11, i64 144, !11, i64 208, !11, i64 272, !11, i64 336, !11, i64 400, !11, i64 464, !11, i64 528, !11, i64 592, !11, i64 656, !11, i64 720, !11, i64 784, !11, i64 848}
!22 = !{!"_ZTSN11alglib_impl15rbfv3calcbufferE", !11, i64 0, !23, i64 64, !11, i64 784, !11, i64 848, !15, i64 912, !15, i64 992, !11, i64 1072, !11, i64 1136}
!23 = !{!"_ZTSN11alglib_impl19rbf3evaluatorbufferE", !11, i64 0, !11, i64 64, !11, i64 128, !11, i64 192, !11, i64 256, !11, i64 320, !11, i64 384, !11, i64 448, !11, i64 512, !11, i64 576, !15, i64 640}
!24 = !{!6, !7, i64 0}
!25 = !{!8, !8, i64 0}
!26 = !{!10, !10, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!7, !7, i64 0}
!30 = !{!6, !12, i64 3720}
!31 = !{!6, !10, i64 3728}
!32 = !{!14, !14, i64 0}
!33 = distinct !{!33, !28}
!34 = distinct !{!34, !28}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.unroll.disable"}
!37 = distinct !{!37, !28}
!38 = distinct !{!38, !28}
!39 = !{!40, !7, i64 1208}
!40 = !{!"_ZTSN11alglib_impl13rbf3ddmsolverE", !10, i64 0, !41, i64 8, !17, i64 1072, !7, i64 1208, !17, i64 1216, !17, i64 1352, !7, i64 1488, !15, i64 1496, !15, i64 1576, !11, i64 1656, !15, i64 1720, !15, i64 1800, !15, i64 1880, !7, i64 1960, !7, i64 1968}
!41 = !{!"_ZTSN11alglib_impl6kdtreeE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !15, i64 32, !11, i64 112, !11, i64 176, !11, i64 240, !11, i64 304, !11, i64 368, !42, i64 432, !7, i64 1056}
!42 = !{!"_ZTSN11alglib_impl19kdtreerequestbufferE", !11, i64 0, !11, i64 64, !11, i64 128, !7, i64 192, !10, i64 200, !12, i64 208, !10, i64 216, !7, i64 224, !11, i64 232, !11, i64 296, !11, i64 360, !11, i64 424, !11, i64 488, !10, i64 552, !11, i64 560}
!43 = !{!40, !7, i64 1960}
!44 = !{!40, !7, i64 1968}
!45 = !{!46, !10, i64 936}
!46 = !{!"_ZTSN11alglib_impl14fblsgmresstateE", !11, i64 0, !11, i64 64, !11, i64 128, !11, i64 192, !15, i64 256, !15, i64 336, !15, i64 416, !15, i64 496, !15, i64 576, !11, i64 656, !11, i64 720, !11, i64 784, !11, i64 848, !7, i64 912, !7, i64 920, !10, i64 928, !10, i64 936, !10, i64 944, !10, i64 952, !7, i64 960, !7, i64 968, !10, i64 976, !47, i64 984}
!47 = !{!"_ZTSN11alglib_impl10rcommstateE", !48, i64 0, !11, i64 8, !11, i64 72, !11, i64 136, !11, i64 200}
!48 = !{!"int", !8, i64 0}
!49 = !{!46, !10, i64 944}
!50 = !{!46, !10, i64 976}
!51 = !{!19, !7, i64 1568}
!52 = !{!19, !7, i64 1552}
!53 = !{!19, !7, i64 1560}
!54 = distinct !{!54, !28}
!55 = !{!56, !7, i64 24}
!56 = !{!"_ZTSN11alglib_impl11rbfv3reportE", !7, i64 0, !10, i64 8, !10, i64 16, !7, i64 24}
!57 = distinct !{!57, !28}
!58 = distinct !{!58, !28}
!59 = !{!56, !10, i64 8}
!60 = !{!56, !10, i64 16}
!61 = distinct !{!61, !28}
!62 = !{!46, !7, i64 968}
!63 = distinct !{!63, !28}
!64 = distinct !{!64, !28}
!65 = distinct !{!65, !28}
!66 = distinct !{!66, !28}
!67 = !{!6, !7, i64 16}
!68 = !{!6, !10, i64 24}
!69 = distinct !{!69, !28}
!70 = distinct !{!70, !28}
!71 = distinct !{!71, !28}
!72 = distinct !{!72, !28}
!73 = distinct !{!73, !28}
!74 = !{!6, !7, i64 304}
!75 = !{!56, !7, i64 0}


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