; LLVM IR from venumb/ZSPACE :: cpp/depends/alglib/cpp/tests (test_c)

; 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::rbfmodel" = type { i64, i64, i64, %"struct.alglib_impl::rbfv1model", %"struct.alglib_impl::rbfv2model", double, double, double, i64, i64, i64, double, double, i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i8, %"struct.alglib_impl::ae_vector", i64, i8 }
%"struct.alglib_impl::rbfv1model" = type { i64, i64, i64, i64, %"struct.alglib_impl::kdtree", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector" }
%"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::rbfv2model" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, i64, double, i64, %"struct.alglib_impl::rbfv2calcbuffer" }
%"struct.alglib_impl::rbfv2calcbuffer" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::rbfreport" = type { double, double, i64, i64, i64, i64, i64, i64 }

@_ZL16testrbfunit_heps = external hidden global double, align 8
@_ZL17testrbfunit_mxits = external hidden global i64, align 8
@.str.687 = external hidden unnamed_addr constant [26 x i8], align 1
@_ZL15testrbfunit_tol = external hidden global double, align 8

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

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

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

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #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_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #1

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

declare noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef) #1

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z19sqrdegmatrixrbftestbPN11alglib_impl8ae_stateE(i1 noundef zeroext %0, ptr noundef %1) #4 {
  %3 = alloca i1, align 1
  %4 = alloca i8, align 1
  %5 = alloca ptr, align 8
  %6 = alloca %"struct.alglib_impl::ae_frame", align 8
  %7 = alloca %"struct.alglib_impl::rbfmodel", align 8
  %8 = alloca %"struct.alglib_impl::rbfreport", align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca %"struct.alglib_impl::ae_vector", align 8
  %23 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %24 = alloca %"struct.alglib_impl::ae_vector", align 8
  %25 = alloca %"struct.alglib_impl::ae_vector", align 8
  %26 = alloca i64, align 8
  %27 = alloca %"struct.alglib_impl::ae_vector", align 8
  %28 = alloca %"struct.alglib_impl::ae_vector", align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %34 = alloca %"struct.alglib_impl::ae_vector", align 8
  %35 = alloca %"struct.alglib_impl::ae_vector", align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %39 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca double, align 8
  %44 = alloca i64, align 8
  %45 = alloca i8, align 1
  %46 = alloca i32, align 4
  %47 = zext i1 %0 to i8
  store i8 %47, ptr %4, align 1, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 2832, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 64, 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 80, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 80, 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 1, ptr %45) #5
  %48 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %48, ptr noundef %6)
  call void @llvm.memset.p0.i64(ptr align 8 %7, i8 0, i64 2832, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %8, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %28, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %35, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %39, i8 0, i64 80, i1 false)
  %49 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14_rbfmodel_initEPvPNS_8ae_stateEb(ptr noundef %7, ptr noundef %49, i1 noundef zeroext true)
  %50 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl15_rbfreport_initEPvPNS_8ae_stateEb(ptr noundef %8, ptr noundef %50, i1 noundef zeroext true)
  %51 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %22, i64 noundef 0, i64 noundef 3, ptr noundef %51, i1 noundef zeroext true)
  %52 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %23, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %52, i1 noundef zeroext true)
  %53 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %24, i64 noundef 0, i64 noundef 3, ptr noundef %53, i1 noundef zeroext true)
  %54 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %25, i64 noundef 0, i64 noundef 3, ptr noundef %54, i1 noundef zeroext true)
  %55 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %27, i64 noundef 0, i64 noundef 3, ptr noundef %55, i1 noundef zeroext true)
  %56 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %28, i64 noundef 0, i64 noundef 3, ptr noundef %56, i1 noundef zeroext true)
  %57 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %33, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %57, i1 noundef zeroext true)
  %58 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %34, i64 noundef 0, i64 noundef 3, ptr noundef %58, i1 noundef zeroext true)
  %59 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %35, i64 noundef 0, i64 noundef 3, ptr noundef %59, i1 noundef zeroext true)
  %60 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %38, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %60, i1 noundef zeroext true)
  %61 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %39, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %61, i1 noundef zeroext true)
  store double 1.000000e+01, ptr %16, align 8, !tbaa !11
  store double 1.500000e+01, ptr %17, align 8, !tbaa !11
  store double 1.000000e+01, ptr %18, align 8, !tbaa !11
  store double 1.500000e+01, ptr %19, align 8, !tbaa !11
  store double 0x3EB0C6F7A0B5ED8D, ptr %43, align 8, !tbaa !11
  store i64 1, ptr %10, align 8, !tbaa !13
  store i64 2, ptr %9, align 8, !tbaa !13
  br label %62

62:                                               ; preds = %951, %2
  %63 = load i64, ptr %9, align 8, !tbaa !13
  %64 = icmp sle i64 %63, 3
  br i1 %64, label %65, label %954

65:                                               ; preds = %62
  %66 = load double, ptr %16, align 8, !tbaa !11
  %67 = load double, ptr %17, align 8, !tbaa !11
  %68 = load ptr, ptr %5, align 8, !tbaa !9
  %69 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 3, ptr noundef %68)
  %70 = sub nsw i64 %69, 1
  %71 = sitofp i64 %70 to double
  %72 = fmul double %67, %71
  %73 = load ptr, ptr %5, align 8, !tbaa !9
  %74 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %66, double noundef %72, ptr noundef %73)
  store double %74, ptr %14, align 8, !tbaa !11
  %75 = load double, ptr %18, align 8, !tbaa !11
  %76 = load double, ptr %19, align 8, !tbaa !11
  %77 = load ptr, ptr %5, align 8, !tbaa !9
  %78 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 3, ptr noundef %77)
  %79 = sub nsw i64 %78, 1
  %80 = sitofp i64 %79 to double
  %81 = fmul double %76, %80
  %82 = load ptr, ptr %5, align 8, !tbaa !9
  %83 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %75, double noundef %81, ptr noundef %82)
  store double %83, ptr %15, align 8, !tbaa !11
  %84 = load i64, ptr %9, align 8, !tbaa !13
  %85 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %84, ptr noundef %85)
  %86 = load i64, ptr %10, align 8, !tbaa !13
  %87 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %86, ptr noundef %87)
  %88 = load i64, ptr %9, align 8, !tbaa !13
  %89 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %22, i64 noundef %88, ptr noundef %89)
  %90 = load i64, ptr %9, align 8, !tbaa !13
  %91 = load i64, ptr %10, align 8, !tbaa !13
  %92 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl9rbfcreateEllPNS_8rbfmodelEPNS_8ae_stateE(i64 noundef %90, i64 noundef %91, ptr noundef %7, ptr noundef %92)
  %93 = load double, ptr @_ZL16testrbfunit_heps, align 8, !tbaa !11
  %94 = load double, ptr @_ZL16testrbfunit_heps, align 8, !tbaa !11
  %95 = load i64, ptr @_ZL17testrbfunit_mxits, align 8, !tbaa !13
  %96 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl10rbfsetcondEPNS_8rbfmodelEddlPNS_8ae_stateE(ptr noundef %7, double noundef %93, double noundef %94, i64 noundef %95, ptr noundef %96)
  %97 = load ptr, ptr %5, align 8, !tbaa !9
  %98 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %97)
  %99 = fadd double 2.500000e-01, %98
  store double %99, ptr %20, align 8, !tbaa !11
  %100 = load ptr, ptr %5, align 8, !tbaa !9
  %101 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %100)
  %102 = fadd double 4.500000e+00, %101
  store double %102, ptr %21, align 8, !tbaa !11
  %103 = load double, ptr %20, align 8, !tbaa !11
  %104 = load double, ptr %21, align 8, !tbaa !11
  %105 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl13rbfsetalgoqnnEPNS_8rbfmodelEddPNS_8ae_stateE(ptr noundef %7, double noundef %103, double noundef %104, ptr noundef %105)
  store i64 0, ptr %40, align 8, !tbaa !13
  br label %106

106:                                              ; preds = %121, %65
  %107 = load i64, ptr %40, align 8, !tbaa !13
  %108 = load i64, ptr %9, align 8, !tbaa !13
  %109 = sub nsw i64 %108, 1
  %110 = icmp sle i64 %107, %109
  br i1 %110, label %111, label %124

111:                                              ; preds = %106
  %112 = load double, ptr %14, align 8, !tbaa !11
  %113 = load ptr, ptr %5, align 8, !tbaa !9
  %114 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %113)
  %115 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %114, double -1.000000e+00)
  %116 = fmul double %112, %115
  %117 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %118 = load ptr, ptr %117, align 8, !tbaa !15
  %119 = load i64, ptr %40, align 8, !tbaa !13
  %120 = getelementptr inbounds double, ptr %118, i64 %119
  store double %116, ptr %120, align 8, !tbaa !11
  br label %121

121:                                              ; preds = %111
  %122 = load i64, ptr %40, align 8, !tbaa !13
  %123 = add nsw i64 %122, 1
  store i64 %123, ptr %40, align 8, !tbaa !13
  br label %106, !llvm.loop !16

124:                                              ; preds = %106
  %125 = load i64, ptr %9, align 8, !tbaa !13
  %126 = icmp eq i64 %125, 2
  br i1 %126, label %127, label %302

127:                                              ; preds = %124
  store i64 2, ptr %11, align 8, !tbaa !13
  br label %128

128:                                              ; preds = %298, %127
  %129 = load i64, ptr %11, align 8, !tbaa !13
  %130 = icmp sle i64 %129, 4
  br i1 %130, label %131, label %301

131:                                              ; preds = %128
  %132 = load i64, ptr %9, align 8, !tbaa !13
  %133 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20rmatrixrndorthogonalElPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %132, ptr noundef %23, ptr noundef %133)
  %134 = load i64, ptr %9, align 8, !tbaa !13
  %135 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %24, i64 noundef %134, ptr noundef %135)
  %136 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %137 = load ptr, ptr %136, align 8, !tbaa !15
  %138 = getelementptr inbounds double, ptr %137, i64 0
  %139 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 6
  %140 = load ptr, ptr %139, align 8, !tbaa !15
  %141 = getelementptr inbounds ptr, ptr %140, i64 0
  %142 = load ptr, ptr %141, align 8, !tbaa !9
  %143 = getelementptr inbounds double, ptr %142, i64 0
  %144 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 2
  %145 = load i64, ptr %144, align 8, !tbaa !18
  %146 = load i64, ptr %9, align 8, !tbaa !13
  %147 = sub nsw i64 %146, 1
  %148 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %147)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %138, i64 noundef 1, ptr noundef %143, i64 noundef %145, i64 noundef %148)
  %149 = load i64, ptr %11, align 8, !tbaa !13
  store i64 %149, ptr %13, align 8, !tbaa !13
  %150 = load i64, ptr %13, align 8, !tbaa !13
  %151 = load i64, ptr %9, align 8, !tbaa !13
  %152 = load i64, ptr %10, align 8, !tbaa !13
  %153 = add nsw i64 %151, %152
  %154 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %33, i64 noundef %150, i64 noundef %153, ptr noundef %154)
  store i64 0, ptr %40, align 8, !tbaa !13
  br label %155

155:                                              ; preds = %223, %131
  %156 = load i64, ptr %40, align 8, !tbaa !13
  %157 = load i64, ptr %11, align 8, !tbaa !13
  %158 = sub nsw i64 %157, 1
  %159 = icmp sle i64 %156, %158
  br i1 %159, label %160, label %226

160:                                              ; preds = %155
  %161 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %162 = load ptr, ptr %161, align 8, !tbaa !15
  %163 = getelementptr inbounds double, ptr %162, i64 0
  %164 = load double, ptr %163, align 8, !tbaa !11
  %165 = load double, ptr %14, align 8, !tbaa !11
  %166 = load i64, ptr %40, align 8, !tbaa !13
  %167 = sitofp i64 %166 to double
  %168 = fmul double %165, %167
  %169 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %170 = load ptr, ptr %169, align 8, !tbaa !15
  %171 = getelementptr inbounds double, ptr %170, i64 0
  %172 = load double, ptr %171, align 8, !tbaa !11
  %173 = call double @llvm.fmuladd.f64(double %168, double %172, double %164)
  %174 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %175 = load ptr, ptr %174, align 8, !tbaa !15
  %176 = load i64, ptr %40, align 8, !tbaa !13
  %177 = getelementptr inbounds ptr, ptr %175, i64 %176
  %178 = load ptr, ptr %177, align 8, !tbaa !9
  %179 = getelementptr inbounds double, ptr %178, i64 0
  store double %173, ptr %179, align 8, !tbaa !11
  %180 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %181 = load ptr, ptr %180, align 8, !tbaa !15
  %182 = getelementptr inbounds double, ptr %181, i64 1
  %183 = load double, ptr %182, align 8, !tbaa !11
  %184 = load double, ptr %14, align 8, !tbaa !11
  %185 = load i64, ptr %40, align 8, !tbaa !13
  %186 = sitofp i64 %185 to double
  %187 = fmul double %184, %186
  %188 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %189 = load ptr, ptr %188, align 8, !tbaa !15
  %190 = getelementptr inbounds double, ptr %189, i64 1
  %191 = load double, ptr %190, align 8, !tbaa !11
  %192 = call double @llvm.fmuladd.f64(double %187, double %191, double %183)
  %193 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %194 = load ptr, ptr %193, align 8, !tbaa !15
  %195 = load i64, ptr %40, align 8, !tbaa !13
  %196 = getelementptr inbounds ptr, ptr %194, i64 %195
  %197 = load ptr, ptr %196, align 8, !tbaa !9
  %198 = getelementptr inbounds double, ptr %197, i64 1
  store double %192, ptr %198, align 8, !tbaa !11
  store i64 0, ptr %42, align 8, !tbaa !13
  br label %199

199:                                              ; preds = %219, %160
  %200 = load i64, ptr %42, align 8, !tbaa !13
  %201 = load i64, ptr %10, align 8, !tbaa !13
  %202 = sub nsw i64 %201, 1
  %203 = icmp sle i64 %200, %202
  br i1 %203, label %204, label %222

204:                                              ; preds = %199
  %205 = load double, ptr %15, align 8, !tbaa !11
  %206 = load ptr, ptr %5, align 8, !tbaa !9
  %207 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %206)
  %208 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %207, double -1.000000e+00)
  %209 = fmul double %205, %208
  %210 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %211 = load ptr, ptr %210, align 8, !tbaa !15
  %212 = load i64, ptr %40, align 8, !tbaa !13
  %213 = getelementptr inbounds ptr, ptr %211, i64 %212
  %214 = load ptr, ptr %213, align 8, !tbaa !9
  %215 = load i64, ptr %9, align 8, !tbaa !13
  %216 = load i64, ptr %42, align 8, !tbaa !13
  %217 = add nsw i64 %215, %216
  %218 = getelementptr inbounds double, ptr %214, i64 %217
  store double %209, ptr %218, align 8, !tbaa !11
  br label %219

219:                                              ; preds = %204
  %220 = load i64, ptr %42, align 8, !tbaa !13
  %221 = add nsw i64 %220, 1
  store i64 %221, ptr %42, align 8, !tbaa !13
  br label %199, !llvm.loop !21

222:                                              ; preds = %199
  br label %223

223:                                              ; preds = %222
  %224 = load i64, ptr %40, align 8, !tbaa !13
  %225 = add nsw i64 %224, 1
  store i64 %225, ptr %40, align 8, !tbaa !13
  br label %155, !llvm.loop !22

226:                                              ; preds = %155
  %227 = load i64, ptr %13, align 8, !tbaa !13
  %228 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl12rbfsetpointsEPNS_8rbfmodelEPNS_9ae_matrixElPNS_8ae_stateE(ptr noundef %7, ptr noundef %33, i64 noundef %227, ptr noundef %228)
  %229 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl13rbfbuildmodelEPNS_8rbfmodelEPNS_9rbfreportEPNS_8ae_stateE(ptr noundef %7, ptr noundef %8, ptr noundef %229)
  store i64 0, ptr %40, align 8, !tbaa !13
  br label %230

230:                                              ; preds = %294, %226
  %231 = load i64, ptr %40, align 8, !tbaa !13
  %232 = load i64, ptr %13, align 8, !tbaa !13
  %233 = sub nsw i64 %232, 1
  %234 = icmp sle i64 %231, %233
  br i1 %234, label %235, label %297

235:                                              ; preds = %230
  %236 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %237 = load ptr, ptr %236, align 8, !tbaa !15
  %238 = load i64, ptr %40, align 8, !tbaa !13
  %239 = getelementptr inbounds ptr, ptr %237, i64 %238
  %240 = load ptr, ptr %239, align 8, !tbaa !9
  %241 = getelementptr inbounds double, ptr %240, i64 0
  %242 = load double, ptr %241, align 8, !tbaa !11
  %243 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %244 = load ptr, ptr %243, align 8, !tbaa !15
  %245 = getelementptr inbounds double, ptr %244, i64 0
  store double %242, ptr %245, align 8, !tbaa !11
  %246 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %247 = load ptr, ptr %246, align 8, !tbaa !15
  %248 = load i64, ptr %40, align 8, !tbaa !13
  %249 = getelementptr inbounds ptr, ptr %247, i64 %248
  %250 = load ptr, ptr %249, align 8, !tbaa !9
  %251 = getelementptr inbounds double, ptr %250, i64 1
  %252 = load double, ptr %251, align 8, !tbaa !11
  %253 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %254 = load ptr, ptr %253, align 8, !tbaa !15
  %255 = getelementptr inbounds double, ptr %254, i64 1
  store double %252, ptr %255, align 8, !tbaa !11
  %256 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl7rbfcalcEPNS_8rbfmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %7, ptr noundef %34, ptr noundef %35, ptr noundef %256)
  store i64 0, ptr %41, align 8, !tbaa !13
  br label %257

257:                                              ; preds = %290, %235
  %258 = load i64, ptr %41, align 8, !tbaa !13
  %259 = load i64, ptr %10, align 8, !tbaa !13
  %260 = sub nsw i64 %259, 1
  %261 = icmp sle i64 %258, %260
  br i1 %261, label %262, label %293

262:                                              ; preds = %257
  %263 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %264 = load ptr, ptr %263, align 8, !tbaa !15
  %265 = load i64, ptr %40, align 8, !tbaa !13
  %266 = getelementptr inbounds ptr, ptr %264, i64 %265
  %267 = load ptr, ptr %266, align 8, !tbaa !9
  %268 = load i64, ptr %9, align 8, !tbaa !13
  %269 = load i64, ptr %41, align 8, !tbaa !13
  %270 = add nsw i64 %268, %269
  %271 = getelementptr inbounds double, ptr %267, i64 %270
  %272 = load double, ptr %271, align 8, !tbaa !11
  %273 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %274 = load ptr, ptr %273, align 8, !tbaa !15
  %275 = load i64, ptr %41, align 8, !tbaa !13
  %276 = getelementptr inbounds double, ptr %274, i64 %275
  %277 = load double, ptr %276, align 8, !tbaa !11
  %278 = fsub double %272, %277
  %279 = load ptr, ptr %5, align 8, !tbaa !9
  %280 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %278, ptr noundef %279)
  %281 = load double, ptr %15, align 8, !tbaa !11
  %282 = load double, ptr %43, align 8, !tbaa !11
  %283 = fmul double %281, %282
  %284 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %280, double noundef %283)
  br i1 %284, label %285, label %289

285:                                              ; preds = %262
  store i8 1, ptr %45, align 1, !tbaa !5
  %286 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %286)
  %287 = load i8, ptr %45, align 1, !tbaa !5, !range !23, !noundef !24
  %288 = trunc i8 %287 to i1
  store i1 %288, ptr %3, align 1
  store i32 1, ptr %46, align 4
  br label %958

289:                                              ; preds = %262
  br label %290

290:                                              ; preds = %289
  %291 = load i64, ptr %41, align 8, !tbaa !13
  %292 = add nsw i64 %291, 1
  store i64 %292, ptr %41, align 8, !tbaa !13
  br label %257, !llvm.loop !25

293:                                              ; preds = %257
  br label %294

294:                                              ; preds = %293
  %295 = load i64, ptr %40, align 8, !tbaa !13
  %296 = add nsw i64 %295, 1
  store i64 %296, ptr %40, align 8, !tbaa !13
  br label %230, !llvm.loop !26

297:                                              ; preds = %230
  br label %298

298:                                              ; preds = %297
  %299 = load i64, ptr %11, align 8, !tbaa !13
  %300 = add nsw i64 %299, 1
  store i64 %300, ptr %11, align 8, !tbaa !13
  br label %128, !llvm.loop !27

301:                                              ; preds = %128
  br label %302

302:                                              ; preds = %301, %124
  %303 = load i64, ptr %9, align 8, !tbaa !13
  %304 = icmp eq i64 %303, 3
  br i1 %304, label %305, label %950

305:                                              ; preds = %302
  store i64 2, ptr %11, align 8, !tbaa !13
  br label %306

306:                                              ; preds = %946, %305
  %307 = load i64, ptr %11, align 8, !tbaa !13
  %308 = icmp sle i64 %307, 4
  br i1 %308, label %309, label %949

309:                                              ; preds = %306
  store i64 2, ptr %12, align 8, !tbaa !13
  br label %310

310:                                              ; preds = %942, %309
  %311 = load i64, ptr %12, align 8, !tbaa !13
  %312 = icmp sle i64 %311, 4
  br i1 %312, label %313, label %945

313:                                              ; preds = %310
  store i64 1, ptr %26, align 8, !tbaa !13
  br label %314

314:                                              ; preds = %938, %313
  %315 = load i64, ptr %26, align 8, !tbaa !13
  %316 = icmp sle i64 %315, 2
  br i1 %316, label %317, label %941

317:                                              ; preds = %314
  %318 = load i64, ptr %9, align 8, !tbaa !13
  %319 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20rmatrixrndorthogonalElPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %318, ptr noundef %23, ptr noundef %319)
  %320 = load i64, ptr %9, align 8, !tbaa !13
  %321 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %24, i64 noundef %320, ptr noundef %321)
  %322 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %323 = load ptr, ptr %322, align 8, !tbaa !15
  %324 = getelementptr inbounds double, ptr %323, i64 0
  %325 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 6
  %326 = load ptr, ptr %325, align 8, !tbaa !15
  %327 = getelementptr inbounds ptr, ptr %326, i64 0
  %328 = load ptr, ptr %327, align 8, !tbaa !9
  %329 = getelementptr inbounds double, ptr %328, i64 0
  %330 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 2
  %331 = load i64, ptr %330, align 8, !tbaa !18
  %332 = load i64, ptr %9, align 8, !tbaa !13
  %333 = sub nsw i64 %332, 1
  %334 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %333)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %324, i64 noundef 1, ptr noundef %329, i64 noundef %331, i64 noundef %334)
  store i64 -1, ptr %13, align 8, !tbaa !13
  %335 = load i64, ptr %26, align 8, !tbaa !13
  %336 = icmp eq i64 %335, 1
  br i1 %336, label %337, label %435

337:                                              ; preds = %317
  %338 = load i64, ptr %11, align 8, !tbaa !13
  store i64 %338, ptr %13, align 8, !tbaa !13
  %339 = load i64, ptr %13, align 8, !tbaa !13
  %340 = load i64, ptr %9, align 8, !tbaa !13
  %341 = load i64, ptr %10, align 8, !tbaa !13
  %342 = add nsw i64 %340, %341
  %343 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %33, i64 noundef %339, i64 noundef %342, ptr noundef %343)
  store i64 0, ptr %40, align 8, !tbaa !13
  br label %344

344:                                              ; preds = %431, %337
  %345 = load i64, ptr %40, align 8, !tbaa !13
  %346 = load i64, ptr %11, align 8, !tbaa !13
  %347 = sub nsw i64 %346, 1
  %348 = icmp sle i64 %345, %347
  br i1 %348, label %349, label %434

349:                                              ; preds = %344
  %350 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %351 = load ptr, ptr %350, align 8, !tbaa !15
  %352 = getelementptr inbounds double, ptr %351, i64 0
  %353 = load double, ptr %352, align 8, !tbaa !11
  %354 = load double, ptr %14, align 8, !tbaa !11
  %355 = load i64, ptr %40, align 8, !tbaa !13
  %356 = sitofp i64 %355 to double
  %357 = fmul double %354, %356
  %358 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %359 = load ptr, ptr %358, align 8, !tbaa !15
  %360 = getelementptr inbounds double, ptr %359, i64 0
  %361 = load double, ptr %360, align 8, !tbaa !11
  %362 = call double @llvm.fmuladd.f64(double %357, double %361, double %353)
  %363 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %364 = load ptr, ptr %363, align 8, !tbaa !15
  %365 = load i64, ptr %40, align 8, !tbaa !13
  %366 = getelementptr inbounds ptr, ptr %364, i64 %365
  %367 = load ptr, ptr %366, align 8, !tbaa !9
  %368 = getelementptr inbounds double, ptr %367, i64 0
  store double %362, ptr %368, align 8, !tbaa !11
  %369 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %370 = load ptr, ptr %369, align 8, !tbaa !15
  %371 = getelementptr inbounds double, ptr %370, i64 1
  %372 = load double, ptr %371, align 8, !tbaa !11
  %373 = load double, ptr %14, align 8, !tbaa !11
  %374 = load i64, ptr %40, align 8, !tbaa !13
  %375 = sitofp i64 %374 to double
  %376 = fmul double %373, %375
  %377 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %378 = load ptr, ptr %377, align 8, !tbaa !15
  %379 = getelementptr inbounds double, ptr %378, i64 1
  %380 = load double, ptr %379, align 8, !tbaa !11
  %381 = call double @llvm.fmuladd.f64(double %376, double %380, double %372)
  %382 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %383 = load ptr, ptr %382, align 8, !tbaa !15
  %384 = load i64, ptr %40, align 8, !tbaa !13
  %385 = getelementptr inbounds ptr, ptr %383, i64 %384
  %386 = load ptr, ptr %385, align 8, !tbaa !9
  %387 = getelementptr inbounds double, ptr %386, i64 1
  store double %381, ptr %387, align 8, !tbaa !11
  %388 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %389 = load ptr, ptr %388, align 8, !tbaa !15
  %390 = getelementptr inbounds double, ptr %389, i64 2
  %391 = load double, ptr %390, align 8, !tbaa !11
  %392 = load double, ptr %14, align 8, !tbaa !11
  %393 = load i64, ptr %40, align 8, !tbaa !13
  %394 = sitofp i64 %393 to double
  %395 = fmul double %392, %394
  %396 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %397 = load ptr, ptr %396, align 8, !tbaa !15
  %398 = getelementptr inbounds double, ptr %397, i64 2
  %399 = load double, ptr %398, align 8, !tbaa !11
  %400 = call double @llvm.fmuladd.f64(double %395, double %399, double %391)
  %401 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %402 = load ptr, ptr %401, align 8, !tbaa !15
  %403 = load i64, ptr %40, align 8, !tbaa !13
  %404 = getelementptr inbounds ptr, ptr %402, i64 %403
  %405 = load ptr, ptr %404, align 8, !tbaa !9
  %406 = getelementptr inbounds double, ptr %405, i64 2
  store double %400, ptr %406, align 8, !tbaa !11
  store i64 0, ptr %42, align 8, !tbaa !13
  br label %407

407:                                              ; preds = %427, %349
  %408 = load i64, ptr %42, align 8, !tbaa !13
  %409 = load i64, ptr %10, align 8, !tbaa !13
  %410 = sub nsw i64 %409, 1
  %411 = icmp sle i64 %408, %410
  br i1 %411, label %412, label %430

412:                                              ; preds = %407
  %413 = load double, ptr %15, align 8, !tbaa !11
  %414 = load ptr, ptr %5, align 8, !tbaa !9
  %415 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %414)
  %416 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %415, double -1.000000e+00)
  %417 = fmul double %413, %416
  %418 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %419 = load ptr, ptr %418, align 8, !tbaa !15
  %420 = load i64, ptr %40, align 8, !tbaa !13
  %421 = getelementptr inbounds ptr, ptr %419, i64 %420
  %422 = load ptr, ptr %421, align 8, !tbaa !9
  %423 = load i64, ptr %9, align 8, !tbaa !13
  %424 = load i64, ptr %42, align 8, !tbaa !13
  %425 = add nsw i64 %423, %424
  %426 = getelementptr inbounds double, ptr %422, i64 %425
  store double %417, ptr %426, align 8, !tbaa !11
  br label %427

427:                                              ; preds = %412
  %428 = load i64, ptr %42, align 8, !tbaa !13
  %429 = add nsw i64 %428, 1
  store i64 %429, ptr %42, align 8, !tbaa !13
  br label %407, !llvm.loop !28

430:                                              ; preds = %407
  br label %431

431:                                              ; preds = %430
  %432 = load i64, ptr %40, align 8, !tbaa !13
  %433 = add nsw i64 %432, 1
  store i64 %433, ptr %40, align 8, !tbaa !13
  br label %344, !llvm.loop !29

434:                                              ; preds = %344
  br label %435

435:                                              ; preds = %434, %317
  %436 = load i64, ptr %26, align 8, !tbaa !13
  %437 = icmp eq i64 %436, 2
  br i1 %437, label %438, label %594

438:                                              ; preds = %435
  %439 = load i64, ptr %9, align 8, !tbaa !13
  %440 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %25, i64 noundef %439, ptr noundef %440)
  %441 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %442 = load ptr, ptr %441, align 8, !tbaa !15
  %443 = getelementptr inbounds double, ptr %442, i64 0
  %444 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 6
  %445 = load ptr, ptr %444, align 8, !tbaa !15
  %446 = getelementptr inbounds ptr, ptr %445, i64 0
  %447 = load ptr, ptr %446, align 8, !tbaa !9
  %448 = getelementptr inbounds double, ptr %447, i64 1
  %449 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 2
  %450 = load i64, ptr %449, align 8, !tbaa !18
  %451 = load i64, ptr %9, align 8, !tbaa !13
  %452 = sub nsw i64 %451, 1
  %453 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %452)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %443, i64 noundef 1, ptr noundef %448, i64 noundef %450, i64 noundef %453)
  %454 = load i64, ptr %11, align 8, !tbaa !13
  %455 = load i64, ptr %12, align 8, !tbaa !13
  %456 = mul nsw i64 %454, %455
  store i64 %456, ptr %13, align 8, !tbaa !13
  %457 = load i64, ptr %13, align 8, !tbaa !13
  %458 = load i64, ptr %9, align 8, !tbaa !13
  %459 = load i64, ptr %10, align 8, !tbaa !13
  %460 = add nsw i64 %458, %459
  %461 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %33, i64 noundef %457, i64 noundef %460, ptr noundef %461)
  store i64 0, ptr %40, align 8, !tbaa !13
  br label %462

462:                                              ; preds = %590, %438
  %463 = load i64, ptr %40, align 8, !tbaa !13
  %464 = load i64, ptr %11, align 8, !tbaa !13
  %465 = sub nsw i64 %464, 1
  %466 = icmp sle i64 %463, %465
  br i1 %466, label %467, label %593

467:                                              ; preds = %462
  store i64 0, ptr %41, align 8, !tbaa !13
  br label %468

468:                                              ; preds = %586, %467
  %469 = load i64, ptr %41, align 8, !tbaa !13
  %470 = load i64, ptr %12, align 8, !tbaa !13
  %471 = sub nsw i64 %470, 1
  %472 = icmp sle i64 %469, %471
  br i1 %472, label %473, label %589

473:                                              ; preds = %468
  %474 = load double, ptr %14, align 8, !tbaa !11
  %475 = load i64, ptr %40, align 8, !tbaa !13
  %476 = sitofp i64 %475 to double
  %477 = fmul double %474, %476
  %478 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %479 = load ptr, ptr %478, align 8, !tbaa !15
  %480 = getelementptr inbounds double, ptr %479, i64 0
  %481 = load double, ptr %480, align 8, !tbaa !11
  %482 = load double, ptr %14, align 8, !tbaa !11
  %483 = load i64, ptr %41, align 8, !tbaa !13
  %484 = sitofp i64 %483 to double
  %485 = fmul double %482, %484
  %486 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %487 = load ptr, ptr %486, align 8, !tbaa !15
  %488 = getelementptr inbounds double, ptr %487, i64 0
  %489 = load double, ptr %488, align 8, !tbaa !11
  %490 = fmul double %485, %489
  %491 = call double @llvm.fmuladd.f64(double %477, double %481, double %490)
  %492 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %493 = load ptr, ptr %492, align 8, !tbaa !15
  %494 = load i64, ptr %40, align 8, !tbaa !13
  %495 = load i64, ptr %12, align 8, !tbaa !13
  %496 = mul nsw i64 %494, %495
  %497 = load i64, ptr %41, align 8, !tbaa !13
  %498 = add nsw i64 %496, %497
  %499 = getelementptr inbounds ptr, ptr %493, i64 %498
  %500 = load ptr, ptr %499, align 8, !tbaa !9
  %501 = getelementptr inbounds double, ptr %500, i64 0
  store double %491, ptr %501, align 8, !tbaa !11
  %502 = load double, ptr %14, align 8, !tbaa !11
  %503 = load i64, ptr %40, align 8, !tbaa !13
  %504 = sitofp i64 %503 to double
  %505 = fmul double %502, %504
  %506 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %507 = load ptr, ptr %506, align 8, !tbaa !15
  %508 = getelementptr inbounds double, ptr %507, i64 1
  %509 = load double, ptr %508, align 8, !tbaa !11
  %510 = load double, ptr %14, align 8, !tbaa !11
  %511 = load i64, ptr %41, align 8, !tbaa !13
  %512 = sitofp i64 %511 to double
  %513 = fmul double %510, %512
  %514 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %515 = load ptr, ptr %514, align 8, !tbaa !15
  %516 = getelementptr inbounds double, ptr %515, i64 1
  %517 = load double, ptr %516, align 8, !tbaa !11
  %518 = fmul double %513, %517
  %519 = call double @llvm.fmuladd.f64(double %505, double %509, double %518)
  %520 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %521 = load ptr, ptr %520, align 8, !tbaa !15
  %522 = load i64, ptr %40, align 8, !tbaa !13
  %523 = load i64, ptr %12, align 8, !tbaa !13
  %524 = mul nsw i64 %522, %523
  %525 = load i64, ptr %41, align 8, !tbaa !13
  %526 = add nsw i64 %524, %525
  %527 = getelementptr inbounds ptr, ptr %521, i64 %526
  %528 = load ptr, ptr %527, align 8, !tbaa !9
  %529 = getelementptr inbounds double, ptr %528, i64 1
  store double %519, ptr %529, align 8, !tbaa !11
  %530 = load double, ptr %14, align 8, !tbaa !11
  %531 = load i64, ptr %40, align 8, !tbaa !13
  %532 = sitofp i64 %531 to double
  %533 = fmul double %530, %532
  %534 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %535 = load ptr, ptr %534, align 8, !tbaa !15
  %536 = getelementptr inbounds double, ptr %535, i64 2
  %537 = load double, ptr %536, align 8, !tbaa !11
  %538 = load double, ptr %14, align 8, !tbaa !11
  %539 = load i64, ptr %41, align 8, !tbaa !13
  %540 = sitofp i64 %539 to double
  %541 = fmul double %538, %540
  %542 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %543 = load ptr, ptr %542, align 8, !tbaa !15
  %544 = getelementptr inbounds double, ptr %543, i64 2
  %545 = load double, ptr %544, align 8, !tbaa !11
  %546 = fmul double %541, %545
  %547 = call double @llvm.fmuladd.f64(double %533, double %537, double %546)
  %548 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %549 = load ptr, ptr %548, align 8, !tbaa !15
  %550 = load i64, ptr %40, align 8, !tbaa !13
  %551 = load i64, ptr %12, align 8, !tbaa !13
  %552 = mul nsw i64 %550, %551
  %553 = load i64, ptr %41, align 8, !tbaa !13
  %554 = add nsw i64 %552, %553
  %555 = getelementptr inbounds ptr, ptr %549, i64 %554
  %556 = load ptr, ptr %555, align 8, !tbaa !9
  %557 = getelementptr inbounds double, ptr %556, i64 2
  store double %547, ptr %557, align 8, !tbaa !11
  store i64 0, ptr %42, align 8, !tbaa !13
  br label %558

558:                                              ; preds = %582, %473
  %559 = load i64, ptr %42, align 8, !tbaa !13
  %560 = load i64, ptr %10, align 8, !tbaa !13
  %561 = sub nsw i64 %560, 1
  %562 = icmp sle i64 %559, %561
  br i1 %562, label %563, label %585

563:                                              ; preds = %558
  %564 = load double, ptr %15, align 8, !tbaa !11
  %565 = load ptr, ptr %5, align 8, !tbaa !9
  %566 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %565)
  %567 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %566, double -1.000000e+00)
  %568 = fmul double %564, %567
  %569 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %570 = load ptr, ptr %569, align 8, !tbaa !15
  %571 = load i64, ptr %40, align 8, !tbaa !13
  %572 = load i64, ptr %12, align 8, !tbaa !13
  %573 = mul nsw i64 %571, %572
  %574 = load i64, ptr %41, align 8, !tbaa !13
  %575 = add nsw i64 %573, %574
  %576 = getelementptr inbounds ptr, ptr %570, i64 %575
  %577 = load ptr, ptr %576, align 8, !tbaa !9
  %578 = load i64, ptr %9, align 8, !tbaa !13
  %579 = load i64, ptr %42, align 8, !tbaa !13
  %580 = add nsw i64 %578, %579
  %581 = getelementptr inbounds double, ptr %577, i64 %580
  store double %568, ptr %581, align 8, !tbaa !11
  br label %582

582:                                              ; preds = %563
  %583 = load i64, ptr %42, align 8, !tbaa !13
  %584 = add nsw i64 %583, 1
  store i64 %584, ptr %42, align 8, !tbaa !13
  br label %558, !llvm.loop !30

585:                                              ; preds = %558
  br label %586

586:                                              ; preds = %585
  %587 = load i64, ptr %41, align 8, !tbaa !13
  %588 = add nsw i64 %587, 1
  store i64 %588, ptr %41, align 8, !tbaa !13
  br label %468, !llvm.loop !31

589:                                              ; preds = %468
  br label %590

590:                                              ; preds = %589
  %591 = load i64, ptr %40, align 8, !tbaa !13
  %592 = add nsw i64 %591, 1
  store i64 %592, ptr %40, align 8, !tbaa !13
  br label %462, !llvm.loop !32

593:                                              ; preds = %462
  br label %594

594:                                              ; preds = %593, %435
  %595 = load i64, ptr %13, align 8, !tbaa !13
  %596 = icmp sge i64 %595, 0
  %597 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %596, ptr noundef @.str.687, ptr noundef %597)
  %598 = load i64, ptr %13, align 8, !tbaa !13
  %599 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl12rbfsetpointsEPNS_8rbfmodelEPNS_9ae_matrixElPNS_8ae_stateE(ptr noundef %7, ptr noundef %33, i64 noundef %598, ptr noundef %599)
  %600 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl13rbfbuildmodelEPNS_8rbfmodelEPNS_9rbfreportEPNS_8ae_stateE(ptr noundef %7, ptr noundef %8, ptr noundef %600)
  store i64 0, ptr %40, align 8, !tbaa !13
  br label %601

601:                                              ; preds = %675, %594
  %602 = load i64, ptr %40, align 8, !tbaa !13
  %603 = load i64, ptr %13, align 8, !tbaa !13
  %604 = sub nsw i64 %603, 1
  %605 = icmp sle i64 %602, %604
  br i1 %605, label %606, label %678

606:                                              ; preds = %601
  %607 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %608 = load ptr, ptr %607, align 8, !tbaa !15
  %609 = load i64, ptr %40, align 8, !tbaa !13
  %610 = getelementptr inbounds ptr, ptr %608, i64 %609
  %611 = load ptr, ptr %610, align 8, !tbaa !9
  %612 = getelementptr inbounds double, ptr %611, i64 0
  %613 = load double, ptr %612, align 8, !tbaa !11
  %614 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %615 = load ptr, ptr %614, align 8, !tbaa !15
  %616 = getelementptr inbounds double, ptr %615, i64 0
  store double %613, ptr %616, align 8, !tbaa !11
  %617 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %618 = load ptr, ptr %617, align 8, !tbaa !15
  %619 = load i64, ptr %40, align 8, !tbaa !13
  %620 = getelementptr inbounds ptr, ptr %618, i64 %619
  %621 = load ptr, ptr %620, align 8, !tbaa !9
  %622 = getelementptr inbounds double, ptr %621, i64 1
  %623 = load double, ptr %622, align 8, !tbaa !11
  %624 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %625 = load ptr, ptr %624, align 8, !tbaa !15
  %626 = getelementptr inbounds double, ptr %625, i64 1
  store double %623, ptr %626, align 8, !tbaa !11
  %627 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %628 = load ptr, ptr %627, align 8, !tbaa !15
  %629 = load i64, ptr %40, align 8, !tbaa !13
  %630 = getelementptr inbounds ptr, ptr %628, i64 %629
  %631 = load ptr, ptr %630, align 8, !tbaa !9
  %632 = getelementptr inbounds double, ptr %631, i64 2
  %633 = load double, ptr %632, align 8, !tbaa !11
  %634 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %635 = load ptr, ptr %634, align 8, !tbaa !15
  %636 = getelementptr inbounds double, ptr %635, i64 2
  store double %633, ptr %636, align 8, !tbaa !11
  %637 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl7rbfcalcEPNS_8rbfmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %7, ptr noundef %34, ptr noundef %35, ptr noundef %637)
  store i64 0, ptr %41, align 8, !tbaa !13
  br label %638

638:                                              ; preds = %671, %606
  %639 = load i64, ptr %41, align 8, !tbaa !13
  %640 = load i64, ptr %10, align 8, !tbaa !13
  %641 = sub nsw i64 %640, 1
  %642 = icmp sle i64 %639, %641
  br i1 %642, label %643, label %674

643:                                              ; preds = %638
  %644 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %33, i32 0, i32 6
  %645 = load ptr, ptr %644, align 8, !tbaa !15
  %646 = load i64, ptr %40, align 8, !tbaa !13
  %647 = getelementptr inbounds ptr, ptr %645, i64 %646
  %648 = load ptr, ptr %647, align 8, !tbaa !9
  %649 = load i64, ptr %9, align 8, !tbaa !13
  %650 = load i64, ptr %41, align 8, !tbaa !13
  %651 = add nsw i64 %649, %650
  %652 = getelementptr inbounds double, ptr %648, i64 %651
  %653 = load double, ptr %652, align 8, !tbaa !11
  %654 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %655 = load ptr, ptr %654, align 8, !tbaa !15
  %656 = load i64, ptr %41, align 8, !tbaa !13
  %657 = getelementptr inbounds double, ptr %655, i64 %656
  %658 = load double, ptr %657, align 8, !tbaa !11
  %659 = fsub double %653, %658
  %660 = load ptr, ptr %5, align 8, !tbaa !9
  %661 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %659, ptr noundef %660)
  %662 = load double, ptr %15, align 8, !tbaa !11
  %663 = load double, ptr %43, align 8, !tbaa !11
  %664 = fmul double %662, %663
  %665 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %661, double noundef %664)
  br i1 %665, label %666, label %670

666:                                              ; preds = %643
  store i8 1, ptr %45, align 1, !tbaa !5
  %667 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %667)
  %668 = load i8, ptr %45, align 1, !tbaa !5, !range !23, !noundef !24
  %669 = trunc i8 %668 to i1
  store i1 %669, ptr %3, align 1
  store i32 1, ptr %46, align 4
  br label %958

670:                                              ; preds = %643
  br label %671

671:                                              ; preds = %670
  %672 = load i64, ptr %41, align 8, !tbaa !13
  %673 = add nsw i64 %672, 1
  store i64 %673, ptr %41, align 8, !tbaa !13
  br label %638, !llvm.loop !33

674:                                              ; preds = %638
  br label %675

675:                                              ; preds = %674
  %676 = load i64, ptr %40, align 8, !tbaa !13
  %677 = add nsw i64 %676, 1
  store i64 %677, ptr %40, align 8, !tbaa !13
  br label %601, !llvm.loop !34

678:                                              ; preds = %601
  %679 = load i64, ptr %26, align 8, !tbaa !13
  %680 = icmp eq i64 %679, 2
  br i1 %680, label %681, label %937

681:                                              ; preds = %678
  %682 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl9rbfunpackEPNS_8rbfmodelEPlS2_PNS_9ae_matrixES2_S4_S2_PNS_8ae_stateE(ptr noundef %7, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %13, ptr noundef %39, ptr noundef %44, ptr noundef %682)
  %683 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %684 = load ptr, ptr %683, align 8, !tbaa !15
  %685 = getelementptr inbounds double, ptr %684, i64 0
  %686 = load double, ptr %685, align 8, !tbaa !11
  %687 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %688 = load ptr, ptr %687, align 8, !tbaa !15
  %689 = getelementptr inbounds ptr, ptr %688, i64 0
  %690 = load ptr, ptr %689, align 8, !tbaa !9
  %691 = getelementptr inbounds double, ptr %690, i64 0
  %692 = load double, ptr %691, align 8, !tbaa !11
  %693 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %694 = load ptr, ptr %693, align 8, !tbaa !15
  %695 = getelementptr inbounds double, ptr %694, i64 1
  %696 = load double, ptr %695, align 8, !tbaa !11
  %697 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %698 = load ptr, ptr %697, align 8, !tbaa !15
  %699 = getelementptr inbounds ptr, ptr %698, i64 0
  %700 = load ptr, ptr %699, align 8, !tbaa !9
  %701 = getelementptr inbounds double, ptr %700, i64 1
  %702 = load double, ptr %701, align 8, !tbaa !11
  %703 = fmul double %696, %702
  %704 = call double @llvm.fmuladd.f64(double %686, double %692, double %703)
  %705 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %706 = load ptr, ptr %705, align 8, !tbaa !15
  %707 = getelementptr inbounds double, ptr %706, i64 2
  %708 = load double, ptr %707, align 8, !tbaa !11
  %709 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %710 = load ptr, ptr %709, align 8, !tbaa !15
  %711 = getelementptr inbounds ptr, ptr %710, i64 0
  %712 = load ptr, ptr %711, align 8, !tbaa !9
  %713 = getelementptr inbounds double, ptr %712, i64 2
  %714 = load double, ptr %713, align 8, !tbaa !11
  %715 = call double @llvm.fmuladd.f64(double %708, double %714, double %704)
  %716 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %717 = load ptr, ptr %716, align 8, !tbaa !15
  %718 = getelementptr inbounds double, ptr %717, i64 0
  %719 = load double, ptr %718, align 8, !tbaa !11
  %720 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %721 = load ptr, ptr %720, align 8, !tbaa !15
  %722 = getelementptr inbounds double, ptr %721, i64 0
  %723 = load double, ptr %722, align 8, !tbaa !11
  %724 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %725 = load ptr, ptr %724, align 8, !tbaa !15
  %726 = getelementptr inbounds double, ptr %725, i64 1
  %727 = load double, ptr %726, align 8, !tbaa !11
  %728 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %729 = load ptr, ptr %728, align 8, !tbaa !15
  %730 = getelementptr inbounds double, ptr %729, i64 1
  %731 = load double, ptr %730, align 8, !tbaa !11
  %732 = fmul double %727, %731
  %733 = call double @llvm.fmuladd.f64(double %719, double %723, double %732)
  %734 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %735 = load ptr, ptr %734, align 8, !tbaa !15
  %736 = getelementptr inbounds double, ptr %735, i64 2
  %737 = load double, ptr %736, align 8, !tbaa !11
  %738 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %739 = load ptr, ptr %738, align 8, !tbaa !15
  %740 = getelementptr inbounds double, ptr %739, i64 2
  %741 = load double, ptr %740, align 8, !tbaa !11
  %742 = call double @llvm.fmuladd.f64(double %737, double %741, double %733)
  %743 = fdiv double %715, %742
  store double %743, ptr %31, align 8, !tbaa !11
  %744 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %745 = load ptr, ptr %744, align 8, !tbaa !15
  %746 = getelementptr inbounds double, ptr %745, i64 0
  %747 = load double, ptr %746, align 8, !tbaa !11
  %748 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %749 = load ptr, ptr %748, align 8, !tbaa !15
  %750 = getelementptr inbounds ptr, ptr %749, i64 0
  %751 = load ptr, ptr %750, align 8, !tbaa !9
  %752 = getelementptr inbounds double, ptr %751, i64 0
  %753 = load double, ptr %752, align 8, !tbaa !11
  %754 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %755 = load ptr, ptr %754, align 8, !tbaa !15
  %756 = getelementptr inbounds double, ptr %755, i64 1
  %757 = load double, ptr %756, align 8, !tbaa !11
  %758 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %759 = load ptr, ptr %758, align 8, !tbaa !15
  %760 = getelementptr inbounds ptr, ptr %759, i64 0
  %761 = load ptr, ptr %760, align 8, !tbaa !9
  %762 = getelementptr inbounds double, ptr %761, i64 1
  %763 = load double, ptr %762, align 8, !tbaa !11
  %764 = fmul double %757, %763
  %765 = call double @llvm.fmuladd.f64(double %747, double %753, double %764)
  %766 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %767 = load ptr, ptr %766, align 8, !tbaa !15
  %768 = getelementptr inbounds double, ptr %767, i64 2
  %769 = load double, ptr %768, align 8, !tbaa !11
  %770 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %771 = load ptr, ptr %770, align 8, !tbaa !15
  %772 = getelementptr inbounds ptr, ptr %771, i64 0
  %773 = load ptr, ptr %772, align 8, !tbaa !9
  %774 = getelementptr inbounds double, ptr %773, i64 2
  %775 = load double, ptr %774, align 8, !tbaa !11
  %776 = call double @llvm.fmuladd.f64(double %769, double %775, double %765)
  %777 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %778 = load ptr, ptr %777, align 8, !tbaa !15
  %779 = getelementptr inbounds double, ptr %778, i64 0
  %780 = load double, ptr %779, align 8, !tbaa !11
  %781 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %782 = load ptr, ptr %781, align 8, !tbaa !15
  %783 = getelementptr inbounds double, ptr %782, i64 0
  %784 = load double, ptr %783, align 8, !tbaa !11
  %785 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %786 = load ptr, ptr %785, align 8, !tbaa !15
  %787 = getelementptr inbounds double, ptr %786, i64 1
  %788 = load double, ptr %787, align 8, !tbaa !11
  %789 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %790 = load ptr, ptr %789, align 8, !tbaa !15
  %791 = getelementptr inbounds double, ptr %790, i64 1
  %792 = load double, ptr %791, align 8, !tbaa !11
  %793 = fmul double %788, %792
  %794 = call double @llvm.fmuladd.f64(double %780, double %784, double %793)
  %795 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %796 = load ptr, ptr %795, align 8, !tbaa !15
  %797 = getelementptr inbounds double, ptr %796, i64 2
  %798 = load double, ptr %797, align 8, !tbaa !11
  %799 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %800 = load ptr, ptr %799, align 8, !tbaa !15
  %801 = getelementptr inbounds double, ptr %800, i64 2
  %802 = load double, ptr %801, align 8, !tbaa !11
  %803 = call double @llvm.fmuladd.f64(double %798, double %802, double %794)
  %804 = fdiv double %776, %803
  store double %804, ptr %32, align 8, !tbaa !11
  %805 = load i64, ptr %9, align 8, !tbaa !13
  %806 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %27, i64 noundef %805, ptr noundef %806)
  %807 = load i64, ptr %9, align 8, !tbaa !13
  %808 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %28, i64 noundef %807, ptr noundef %808)
  store i64 0, ptr %40, align 8, !tbaa !13
  br label %809

809:                                              ; preds = %837, %681
  %810 = load i64, ptr %40, align 8, !tbaa !13
  %811 = load i64, ptr %9, align 8, !tbaa !13
  %812 = sub nsw i64 %811, 1
  %813 = icmp sle i64 %810, %812
  br i1 %813, label %814, label %840

814:                                              ; preds = %809
  %815 = load double, ptr %31, align 8, !tbaa !11
  %816 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %24, i32 0, i32 4
  %817 = load ptr, ptr %816, align 8, !tbaa !15
  %818 = load i64, ptr %40, align 8, !tbaa !13
  %819 = getelementptr inbounds double, ptr %817, i64 %818
  %820 = load double, ptr %819, align 8, !tbaa !11
  %821 = fmul double %815, %820
  %822 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %823 = load ptr, ptr %822, align 8, !tbaa !15
  %824 = load i64, ptr %40, align 8, !tbaa !13
  %825 = getelementptr inbounds double, ptr %823, i64 %824
  store double %821, ptr %825, align 8, !tbaa !11
  %826 = load double, ptr %32, align 8, !tbaa !11
  %827 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %25, i32 0, i32 4
  %828 = load ptr, ptr %827, align 8, !tbaa !15
  %829 = load i64, ptr %40, align 8, !tbaa !13
  %830 = getelementptr inbounds double, ptr %828, i64 %829
  %831 = load double, ptr %830, align 8, !tbaa !11
  %832 = fmul double %826, %831
  %833 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %28, i32 0, i32 4
  %834 = load ptr, ptr %833, align 8, !tbaa !15
  %835 = load i64, ptr %40, align 8, !tbaa !13
  %836 = getelementptr inbounds double, ptr %834, i64 %835
  store double %832, ptr %836, align 8, !tbaa !11
  br label %837

837:                                              ; preds = %814
  %838 = load i64, ptr %40, align 8, !tbaa !13
  %839 = add nsw i64 %838, 1
  store i64 %839, ptr %40, align 8, !tbaa !13
  br label %809, !llvm.loop !35

840:                                              ; preds = %809
  %841 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %842 = load ptr, ptr %841, align 8, !tbaa !15
  %843 = getelementptr inbounds ptr, ptr %842, i64 0
  %844 = load ptr, ptr %843, align 8, !tbaa !9
  %845 = getelementptr inbounds double, ptr %844, i64 0
  %846 = load double, ptr %845, align 8, !tbaa !11
  %847 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %848 = load ptr, ptr %847, align 8, !tbaa !15
  %849 = getelementptr inbounds double, ptr %848, i64 0
  %850 = load double, ptr %849, align 8, !tbaa !11
  %851 = fsub double %846, %850
  %852 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %28, i32 0, i32 4
  %853 = load ptr, ptr %852, align 8, !tbaa !15
  %854 = getelementptr inbounds double, ptr %853, i64 0
  %855 = load double, ptr %854, align 8, !tbaa !11
  %856 = fsub double %851, %855
  %857 = load ptr, ptr %5, align 8, !tbaa !9
  %858 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %856, ptr noundef %857)
  %859 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %860 = load ptr, ptr %859, align 8, !tbaa !15
  %861 = getelementptr inbounds ptr, ptr %860, i64 0
  %862 = load ptr, ptr %861, align 8, !tbaa !9
  %863 = getelementptr inbounds double, ptr %862, i64 1
  %864 = load double, ptr %863, align 8, !tbaa !11
  %865 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %866 = load ptr, ptr %865, align 8, !tbaa !15
  %867 = getelementptr inbounds double, ptr %866, i64 1
  %868 = load double, ptr %867, align 8, !tbaa !11
  %869 = fsub double %864, %868
  %870 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %28, i32 0, i32 4
  %871 = load ptr, ptr %870, align 8, !tbaa !15
  %872 = getelementptr inbounds double, ptr %871, i64 1
  %873 = load double, ptr %872, align 8, !tbaa !11
  %874 = fsub double %869, %873
  %875 = load ptr, ptr %5, align 8, !tbaa !9
  %876 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %874, ptr noundef %875)
  %877 = fadd double %858, %876
  %878 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %879 = load ptr, ptr %878, align 8, !tbaa !15
  %880 = getelementptr inbounds ptr, ptr %879, i64 0
  %881 = load ptr, ptr %880, align 8, !tbaa !9
  %882 = getelementptr inbounds double, ptr %881, i64 2
  %883 = load double, ptr %882, align 8, !tbaa !11
  %884 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %885 = load ptr, ptr %884, align 8, !tbaa !15
  %886 = getelementptr inbounds double, ptr %885, i64 2
  %887 = load double, ptr %886, align 8, !tbaa !11
  %888 = fsub double %883, %887
  %889 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %28, i32 0, i32 4
  %890 = load ptr, ptr %889, align 8, !tbaa !15
  %891 = getelementptr inbounds double, ptr %890, i64 2
  %892 = load double, ptr %891, align 8, !tbaa !11
  %893 = fsub double %888, %892
  %894 = load ptr, ptr %5, align 8, !tbaa !9
  %895 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %893, ptr noundef %894)
  %896 = fadd double %877, %895
  %897 = load ptr, ptr %5, align 8, !tbaa !9
  %898 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %896, ptr noundef %897)
  store double %898, ptr %29, align 8, !tbaa !11
  %899 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %900 = load ptr, ptr %899, align 8, !tbaa !15
  %901 = getelementptr inbounds ptr, ptr %900, i64 0
  %902 = load ptr, ptr %901, align 8, !tbaa !9
  %903 = getelementptr inbounds double, ptr %902, i64 0
  %904 = load double, ptr %903, align 8, !tbaa !11
  %905 = load ptr, ptr %5, align 8, !tbaa !9
  %906 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %904, ptr noundef %905)
  %907 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %908 = load ptr, ptr %907, align 8, !tbaa !15
  %909 = getelementptr inbounds ptr, ptr %908, i64 0
  %910 = load ptr, ptr %909, align 8, !tbaa !9
  %911 = getelementptr inbounds double, ptr %910, i64 1
  %912 = load double, ptr %911, align 8, !tbaa !11
  %913 = load ptr, ptr %5, align 8, !tbaa !9
  %914 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %912, ptr noundef %913)
  %915 = fadd double %906, %914
  %916 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %39, i32 0, i32 6
  %917 = load ptr, ptr %916, align 8, !tbaa !15
  %918 = getelementptr inbounds ptr, ptr %917, i64 0
  %919 = load ptr, ptr %918, align 8, !tbaa !9
  %920 = getelementptr inbounds double, ptr %919, i64 2
  %921 = load double, ptr %920, align 8, !tbaa !11
  %922 = load ptr, ptr %5, align 8, !tbaa !9
  %923 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %921, ptr noundef %922)
  %924 = fadd double %915, %923
  %925 = load ptr, ptr %5, align 8, !tbaa !9
  %926 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %924, ptr noundef %925)
  store double %926, ptr %30, align 8, !tbaa !11
  %927 = load double, ptr %29, align 8, !tbaa !11
  %928 = load double, ptr %30, align 8, !tbaa !11
  %929 = load double, ptr @_ZL15testrbfunit_tol, align 8, !tbaa !11
  %930 = fmul double %928, %929
  %931 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %927, double noundef %930)
  br i1 %931, label %932, label %936

932:                                              ; preds = %840
  store i8 1, ptr %45, align 1, !tbaa !5
  %933 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %933)
  %934 = load i8, ptr %45, align 1, !tbaa !5, !range !23, !noundef !24
  %935 = trunc i8 %934 to i1
  store i1 %935, ptr %3, align 1
  store i32 1, ptr %46, align 4
  br label %958

936:                                              ; preds = %840
  br label %937

937:                                              ; preds = %936, %678
  br label %938

938:                                              ; preds = %937
  %939 = load i64, ptr %26, align 8, !tbaa !13
  %940 = add nsw i64 %939, 1
  store i64 %940, ptr %26, align 8, !tbaa !13
  br label %314, !llvm.loop !36

941:                                              ; preds = %314
  br label %942

942:                                              ; preds = %941
  %943 = load i64, ptr %12, align 8, !tbaa !13
  %944 = add nsw i64 %943, 1
  store i64 %944, ptr %12, align 8, !tbaa !13
  br label %310, !llvm.loop !37

945:                                              ; preds = %310
  br label %946

946:                                              ; preds = %945
  %947 = load i64, ptr %11, align 8, !tbaa !13
  %948 = add nsw i64 %947, 1
  store i64 %948, ptr %11, align 8, !tbaa !13
  br label %306, !llvm.loop !38

949:                                              ; preds = %306
  br label %950

950:                                              ; preds = %949, %302
  br label %951

951:                                              ; preds = %950
  %952 = load i64, ptr %9, align 8, !tbaa !13
  %953 = add nsw i64 %952, 1
  store i64 %953, ptr %9, align 8, !tbaa !13
  br label %62, !llvm.loop !39

954:                                              ; preds = %62
  store i8 0, ptr %45, align 1, !tbaa !5
  %955 = load ptr, ptr %5, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %955)
  %956 = load i8, ptr %45, align 1, !tbaa !5, !range !23, !noundef !24
  %957 = trunc i8 %956 to i1
  store i1 %957, ptr %3, align 1
  store i32 1, ptr %46, align 4
  br label %958

958:                                              ; preds = %954, %932, %666, %285
  call void @llvm.lifetime.end.p0(i64 1, 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 80, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 80, 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 64, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 2832, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #5
  %959 = load i1, ptr %3, align 1
  ret i1 %959
}

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

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

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

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

declare void @_ZN11alglib_impl13rbfsetalgoqnnEPNS_8rbfmodelEddPNS_8ae_stateE(ptr noundef, double noundef, double noundef, ptr noundef) #1

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!7, !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = !{!19, !14, i64 16}
!19 = !{!"_ZTSN11alglib_impl9ae_matrixE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !6, i64 32, !20, i64 40, !7, i64 72}
!20 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = !{i8 0, i8 2}
!24 = !{}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = distinct !{!31, !17}
!32 = distinct !{!32, !17}
!33 = distinct !{!33, !17}
!34 = distinct !{!34, !17}
!35 = distinct !{!35, !17}
!36 = distinct !{!36, !17}
!37 = distinct !{!37, !17}
!38 = distinct !{!38, !17}
!39 = distinct !{!39, !17}


; 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::rbfmodel" = type { i64, i64, i64, %"struct.alglib_impl::rbfv1model", %"struct.alglib_impl::rbfv2model", double, double, double, i64, i64, i64, double, double, i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i8, %"struct.alglib_impl::ae_vector", i64, i8 }
%"struct.alglib_impl::rbfv1model" = type { i64, i64, i64, i64, %"struct.alglib_impl::kdtree", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector" }
%"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::rbfv2model" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, i64, double, i64, %"struct.alglib_impl::rbfv2calcbuffer" }
%"struct.alglib_impl::rbfv2calcbuffer" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::rbfreport" = type { double, double, i64, i64, i64, i64, i64, i64 }

@_ZL16testrbfunit_heps = external hidden local_unnamed_addr global double, align 8
@_ZL17testrbfunit_mxits = external hidden local_unnamed_addr global i64, align 8
@.str.687 = external hidden unnamed_addr constant [26 x i8], align 1
@_ZL15testrbfunit_tol = external hidden local_unnamed_addr global double, align 8

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #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 #1

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #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_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

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

declare noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z19sqrdegmatrixrbftestbPN11alglib_impl8ae_stateE(i1 noundef zeroext %0, ptr noundef %1) local_unnamed_addr #4 {
  %3 = alloca %"struct.alglib_impl::ae_frame", align 8
  %4 = alloca %"struct.alglib_impl::rbfmodel", align 8
  %5 = alloca %"struct.alglib_impl::rbfreport", align 8
  %6 = alloca i64, align 8
  %7 = alloca %"struct.alglib_impl::ae_vector", align 8
  %8 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %9 = alloca %"struct.alglib_impl::ae_vector", align 8
  %10 = alloca %"struct.alglib_impl::ae_vector", align 8
  %11 = alloca %"struct.alglib_impl::ae_vector", align 8
  %12 = alloca %"struct.alglib_impl::ae_vector", align 8
  %13 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %14 = alloca %"struct.alglib_impl::ae_vector", align 8
  %15 = alloca %"struct.alglib_impl::ae_vector", align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %19 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %20 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 2832, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %1, ptr noundef nonnull %3)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(2832) %4, i8 0, i64 2832, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %7, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %8, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %10, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %12, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %13, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %14, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %15, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %18, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %19, i8 0, i64 80, i1 false)
  call void @_ZN11alglib_impl14_rbfmodel_initEPvPNS_8ae_stateEb(ptr noundef nonnull %4, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl15_rbfreport_initEPvPNS_8ae_stateEb(ptr noundef nonnull %5, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %7, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %8, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %9, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %10, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %11, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %12, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %13, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %14, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %15, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %18, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %19, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  %21 = getelementptr inbounds i8, ptr %7, i64 56
  %22 = getelementptr inbounds i8, ptr %9, i64 56
  %23 = getelementptr inbounds i8, ptr %8, i64 72
  %24 = getelementptr inbounds i8, ptr %8, i64 16
  %25 = getelementptr inbounds i8, ptr %10, i64 56
  %26 = getelementptr inbounds i8, ptr %13, i64 72
  %27 = getelementptr inbounds i8, ptr %14, i64 56
  %28 = getelementptr inbounds i8, ptr %15, i64 56
  %29 = getelementptr inbounds i8, ptr %19, i64 72
  %30 = getelementptr inbounds i8, ptr %11, i64 56
  %31 = getelementptr inbounds i8, ptr %12, i64 56
  br label %32

32:                                               ; preds = %2, %.loopexit257
  %33 = phi i1 [ true, %2 ], [ %397, %.loopexit257 ]
  %.0233278 = phi i64 [ 2, %2 ], [ %396, %.loopexit257 ]
  %34 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 3, ptr noundef %1)
  %35 = add nsw i64 %34, -1
  %36 = sitofp i64 %35 to double
  %37 = fmul double %36, 1.500000e+01
  %38 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 1.000000e+01, double noundef %37, ptr noundef %1)
  %39 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 3, ptr noundef %1)
  %40 = add nsw i64 %39, -1
  %41 = sitofp i64 %40 to double
  %42 = fmul double %41, 1.500000e+01
  %43 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 1.000000e+01, double noundef %42, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %.0233278, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %15, i64 noundef 1, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.0233278, ptr noundef %1)
  call void @_ZN11alglib_impl9rbfcreateEllPNS_8rbfmodelEPNS_8ae_stateE(i64 noundef %.0233278, i64 noundef 1, ptr noundef nonnull %4, ptr noundef %1)
  %44 = load double, ptr @_ZL16testrbfunit_heps, align 8, !tbaa !5
  %45 = load i64, ptr @_ZL17testrbfunit_mxits, align 8, !tbaa !9
  call void @_ZN11alglib_impl10rbfsetcondEPNS_8rbfmodelEddlPNS_8ae_stateE(ptr noundef nonnull %4, double noundef %44, double noundef %44, i64 noundef %45, ptr noundef %1)
  %46 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %47 = fadd double %46, 2.500000e-01
  %48 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %49 = fadd double %48, 4.500000e+00
  call void @_ZN11alglib_impl13rbfsetalgoqnnEPNS_8rbfmodelEddPNS_8ae_stateE(ptr noundef nonnull %4, double noundef %47, double noundef %49, ptr noundef %1)
  br label %50

50:                                               ; preds = %32, %50
  %.0230263 = phi i64 [ 0, %32 ], [ %56, %50 ]
  %51 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %52 = call double @llvm.fmuladd.f64(double %51, double 2.000000e+00, double -1.000000e+00)
  %53 = fmul double %38, %52
  %54 = load ptr, ptr %21, align 8, !tbaa !11
  %55 = getelementptr inbounds double, ptr %54, i64 %.0230263
  store double %53, ptr %55, align 8, !tbaa !5
  %56 = add nuw nsw i64 %.0230263, 1
  %exitcond.not = icmp eq i64 %56, %.0233278
  br i1 %exitcond.not, label %57, label %50, !llvm.loop !12

57:                                               ; preds = %50
  %58 = add nsw i64 %.0233278, -1
  switch i64 %.0233278, label %.loopexit257 [
    i64 2, label %.preheader258
    i64 3, label %124
  ]

.preheader258:                                    ; preds = %57
  %59 = fmul double %43, 0x3EB0C6F7A0B5ED8D
  br label %60

60:                                               ; preds = %.preheader258, %._crit_edge
  %.0234267 = phi i64 [ 2, %.preheader258 ], [ %123, %._crit_edge ]
  call void @_ZN11alglib_impl20rmatrixrndorthogonalElPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 2, ptr noundef nonnull %8, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef 2, ptr noundef %1)
  %61 = load ptr, ptr %22, align 8, !tbaa !11
  %62 = load ptr, ptr %23, align 8, !tbaa !11
  %63 = load ptr, ptr %62, align 8, !tbaa !14
  %64 = load i64, ptr %24, align 8, !tbaa !16
  %65 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %58)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %61, i64 noundef 1, ptr noundef %63, i64 noundef %64, i64 noundef %65)
  store i64 %.0234267, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.0234267, i64 noundef 3, ptr noundef %1)
  br label %.critedge

.critedge:                                        ; preds = %60, %.critedge
  %.1231264 = phi i64 [ 0, %60 ], [ %94, %.critedge ]
  %66 = load ptr, ptr %21, align 8, !tbaa !11
  %67 = load double, ptr %66, align 8, !tbaa !5
  %68 = uitofp nneg i64 %.1231264 to double
  %69 = fmul double %38, %68
  %70 = load ptr, ptr %22, align 8, !tbaa !11
  %71 = load double, ptr %70, align 8, !tbaa !5
  %72 = call double @llvm.fmuladd.f64(double %69, double %71, double %67)
  %73 = load ptr, ptr %26, align 8, !tbaa !11
  %74 = getelementptr inbounds ptr, ptr %73, i64 %.1231264
  %75 = load ptr, ptr %74, align 8, !tbaa !14
  store double %72, ptr %75, align 8, !tbaa !5
  %76 = load ptr, ptr %21, align 8, !tbaa !11
  %77 = getelementptr inbounds i8, ptr %76, i64 8
  %78 = load double, ptr %77, align 8, !tbaa !5
  %79 = load ptr, ptr %22, align 8, !tbaa !11
  %80 = getelementptr inbounds i8, ptr %79, i64 8
  %81 = load double, ptr %80, align 8, !tbaa !5
  %82 = call double @llvm.fmuladd.f64(double %69, double %81, double %78)
  %83 = load ptr, ptr %26, align 8, !tbaa !11
  %84 = getelementptr inbounds ptr, ptr %83, i64 %.1231264
  %85 = load ptr, ptr %84, align 8, !tbaa !14
  %86 = getelementptr inbounds i8, ptr %85, i64 8
  store double %82, ptr %86, align 8, !tbaa !5
  %87 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %88 = call double @llvm.fmuladd.f64(double %87, double 2.000000e+00, double -1.000000e+00)
  %89 = fmul double %43, %88
  %90 = load ptr, ptr %26, align 8, !tbaa !11
  %91 = getelementptr inbounds ptr, ptr %90, i64 %.1231264
  %92 = load ptr, ptr %91, align 8, !tbaa !14
  %93 = getelementptr inbounds i8, ptr %92, i64 16
  store double %89, ptr %93, align 8, !tbaa !5
  %94 = add nuw nsw i64 %.1231264, 1
  %exitcond292.not = icmp eq i64 %94, %.0234267
  br i1 %exitcond292.not, label %95, label %.critedge, !llvm.loop !20

95:                                               ; preds = %.critedge
  %96 = load i64, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl12rbfsetpointsEPNS_8rbfmodelEPNS_9ae_matrixElPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %13, i64 noundef %96, ptr noundef %1)
  call void @_ZN11alglib_impl13rbfbuildmodelEPNS_8rbfmodelEPNS_9rbfreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %1)
  %97 = load i64, ptr %6, align 8, !tbaa !9
  %.not.not245265 = icmp sgt i64 %97, 0
  br i1 %.not.not245265, label %.critedge247, label %._crit_edge

98:                                               ; preds = %.critedge247
  %99 = add nuw nsw i64 %.2232266, 1
  %100 = load i64, ptr %6, align 8, !tbaa !9
  %.not.not245 = icmp slt i64 %99, %100
  br i1 %.not.not245, label %.critedge247, label %._crit_edge, !llvm.loop !21

.critedge247:                                     ; preds = %95, %98
  %.2232266 = phi i64 [ %99, %98 ], [ 0, %95 ]
  %101 = load ptr, ptr %26, align 8, !tbaa !11
  %102 = getelementptr inbounds ptr, ptr %101, i64 %.2232266
  %103 = load ptr, ptr %102, align 8, !tbaa !14
  %104 = load double, ptr %103, align 8, !tbaa !5
  %105 = load ptr, ptr %27, align 8, !tbaa !11
  store double %104, ptr %105, align 8, !tbaa !5
  %106 = load ptr, ptr %26, align 8, !tbaa !11
  %107 = getelementptr inbounds ptr, ptr %106, i64 %.2232266
  %108 = load ptr, ptr %107, align 8, !tbaa !14
  %109 = getelementptr inbounds i8, ptr %108, i64 8
  %110 = load double, ptr %109, align 8, !tbaa !5
  %111 = load ptr, ptr %27, align 8, !tbaa !11
  %112 = getelementptr inbounds i8, ptr %111, i64 8
  store double %110, ptr %112, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rbfcalcEPNS_8rbfmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %1)
  %113 = load ptr, ptr %26, align 8, !tbaa !11
  %114 = getelementptr inbounds ptr, ptr %113, i64 %.2232266
  %115 = load ptr, ptr %114, align 8, !tbaa !14
  %116 = getelementptr inbounds i8, ptr %115, i64 16
  %117 = load double, ptr %116, align 8, !tbaa !5
  %118 = load ptr, ptr %28, align 8, !tbaa !11
  %119 = load double, ptr %118, align 8, !tbaa !5
  %120 = fsub double %117, %119
  %121 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %120, ptr noundef %1)
  %122 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %121, double noundef %59)
  br i1 %122, label %.loopexit301, label %98

._crit_edge:                                      ; preds = %98, %95
  %123 = add nuw nsw i64 %.0234267, 1
  %exitcond293.not = icmp eq i64 %123, 5
  br i1 %exitcond293.not, label %.loopexit257, label %60, !llvm.loop !22

124:                                              ; preds = %57
  %125 = fmul double %43, 0x3EB0C6F7A0B5ED8D
  br label %.preheader256

.preheader256:                                    ; preds = %124, %394
  %.1235277 = phi i64 [ 2, %124 ], [ %395, %394 ]
  br label %.preheader255

.preheader255:                                    ; preds = %.preheader256, %392
  %.0236276 = phi i64 [ 2, %.preheader256 ], [ %393, %392 ]
  %126 = mul nuw nsw i64 %.0236276, %.1235277
  br label %127

127:                                              ; preds = %.preheader255, %390
  %.0237275 = phi i64 [ 1, %.preheader255 ], [ %391, %390 ]
  call void @_ZN11alglib_impl20rmatrixrndorthogonalElPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 3, ptr noundef nonnull %8, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef 3, ptr noundef %1)
  %128 = load ptr, ptr %22, align 8, !tbaa !11
  %129 = load ptr, ptr %23, align 8, !tbaa !11
  %130 = load ptr, ptr %129, align 8, !tbaa !14
  %131 = load i64, ptr %24, align 8, !tbaa !16
  %132 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %58)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %128, i64 noundef 1, ptr noundef %130, i64 noundef %131, i64 noundef %132)
  store i64 -1, ptr %6, align 8, !tbaa !9
  %.not = icmp eq i64 %.0237275, 1
  br i1 %.not, label %133, label %.thread

133:                                              ; preds = %127
  store i64 %.1235277, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.1235277, i64 noundef 4, ptr noundef %1)
  br label %.critedge249

.critedge249:                                     ; preds = %133, %.critedge249
  %.3270 = phi i64 [ 0, %133 ], [ %173, %.critedge249 ]
  %134 = load ptr, ptr %21, align 8, !tbaa !11
  %135 = load double, ptr %134, align 8, !tbaa !5
  %136 = uitofp nneg i64 %.3270 to double
  %137 = fmul double %38, %136
  %138 = load ptr, ptr %22, align 8, !tbaa !11
  %139 = load double, ptr %138, align 8, !tbaa !5
  %140 = call double @llvm.fmuladd.f64(double %137, double %139, double %135)
  %141 = load ptr, ptr %26, align 8, !tbaa !11
  %142 = getelementptr inbounds ptr, ptr %141, i64 %.3270
  %143 = load ptr, ptr %142, align 8, !tbaa !14
  store double %140, ptr %143, align 8, !tbaa !5
  %144 = load ptr, ptr %21, align 8, !tbaa !11
  %145 = getelementptr inbounds i8, ptr %144, i64 8
  %146 = load double, ptr %145, align 8, !tbaa !5
  %147 = load ptr, ptr %22, align 8, !tbaa !11
  %148 = getelementptr inbounds i8, ptr %147, i64 8
  %149 = load double, ptr %148, align 8, !tbaa !5
  %150 = call double @llvm.fmuladd.f64(double %137, double %149, double %146)
  %151 = load ptr, ptr %26, align 8, !tbaa !11
  %152 = getelementptr inbounds ptr, ptr %151, i64 %.3270
  %153 = load ptr, ptr %152, align 8, !tbaa !14
  %154 = getelementptr inbounds i8, ptr %153, i64 8
  store double %150, ptr %154, align 8, !tbaa !5
  %155 = load ptr, ptr %21, align 8, !tbaa !11
  %156 = getelementptr inbounds i8, ptr %155, i64 16
  %157 = load double, ptr %156, align 8, !tbaa !5
  %158 = load ptr, ptr %22, align 8, !tbaa !11
  %159 = getelementptr inbounds i8, ptr %158, i64 16
  %160 = load double, ptr %159, align 8, !tbaa !5
  %161 = call double @llvm.fmuladd.f64(double %137, double %160, double %157)
  %162 = load ptr, ptr %26, align 8, !tbaa !11
  %163 = getelementptr inbounds ptr, ptr %162, i64 %.3270
  %164 = load ptr, ptr %163, align 8, !tbaa !14
  %165 = getelementptr inbounds i8, ptr %164, i64 16
  store double %161, ptr %165, align 8, !tbaa !5
  %166 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %167 = call double @llvm.fmuladd.f64(double %166, double 2.000000e+00, double -1.000000e+00)
  %168 = fmul double %43, %167
  %169 = load ptr, ptr %26, align 8, !tbaa !11
  %170 = getelementptr inbounds ptr, ptr %169, i64 %.3270
  %171 = load ptr, ptr %170, align 8, !tbaa !14
  %172 = getelementptr inbounds i8, ptr %171, i64 24
  store double %168, ptr %172, align 8, !tbaa !5
  %173 = add nuw nsw i64 %.3270, 1
  %exitcond287.not = icmp eq i64 %173, %.1235277
  br i1 %exitcond287.not, label %.loopexit, label %.critedge249, !llvm.loop !23

.thread:                                          ; preds = %127
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef 3, ptr noundef %1)
  %174 = load ptr, ptr %25, align 8, !tbaa !11
  %175 = load ptr, ptr %23, align 8, !tbaa !11
  %176 = load ptr, ptr %175, align 8, !tbaa !14
  %177 = getelementptr inbounds i8, ptr %176, i64 8
  %178 = load i64, ptr %24, align 8, !tbaa !16
  %179 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %58)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %174, i64 noundef 1, ptr noundef nonnull %177, i64 noundef %178, i64 noundef %179)
  store i64 %126, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %126, i64 noundef 4, ptr noundef %1)
  br label %.preheader

.preheader:                                       ; preds = %.thread, %227
  %.4269 = phi i64 [ 0, %.thread ], [ %228, %227 ]
  %180 = uitofp nneg i64 %.4269 to double
  %181 = fmul double %38, %180
  %182 = mul nuw nsw i64 %.4269, %.0236276
  br label %.critedge251

.critedge251:                                     ; preds = %.preheader, %.critedge251
  %.1228268 = phi i64 [ 0, %.preheader ], [ %226, %.critedge251 ]
  %183 = load ptr, ptr %22, align 8, !tbaa !11
  %184 = load double, ptr %183, align 8, !tbaa !5
  %185 = uitofp nneg i64 %.1228268 to double
  %186 = fmul double %38, %185
  %187 = load ptr, ptr %25, align 8, !tbaa !11
  %188 = load double, ptr %187, align 8, !tbaa !5
  %189 = fmul double %186, %188
  %190 = call double @llvm.fmuladd.f64(double %181, double %184, double %189)
  %191 = load ptr, ptr %26, align 8, !tbaa !11
  %192 = add nuw nsw i64 %.1228268, %182
  %193 = getelementptr inbounds ptr, ptr %191, i64 %192
  %194 = load ptr, ptr %193, align 8, !tbaa !14
  store double %190, ptr %194, align 8, !tbaa !5
  %195 = load ptr, ptr %22, align 8, !tbaa !11
  %196 = getelementptr inbounds i8, ptr %195, i64 8
  %197 = load double, ptr %196, align 8, !tbaa !5
  %198 = load ptr, ptr %25, align 8, !tbaa !11
  %199 = getelementptr inbounds i8, ptr %198, i64 8
  %200 = load double, ptr %199, align 8, !tbaa !5
  %201 = fmul double %186, %200
  %202 = call double @llvm.fmuladd.f64(double %181, double %197, double %201)
  %203 = load ptr, ptr %26, align 8, !tbaa !11
  %204 = getelementptr inbounds ptr, ptr %203, i64 %192
  %205 = load ptr, ptr %204, align 8, !tbaa !14
  %206 = getelementptr inbounds i8, ptr %205, i64 8
  store double %202, ptr %206, align 8, !tbaa !5
  %207 = load ptr, ptr %22, align 8, !tbaa !11
  %208 = getelementptr inbounds i8, ptr %207, i64 16
  %209 = load double, ptr %208, align 8, !tbaa !5
  %210 = load ptr, ptr %25, align 8, !tbaa !11
  %211 = getelementptr inbounds i8, ptr %210, i64 16
  %212 = load double, ptr %211, align 8, !tbaa !5
  %213 = fmul double %186, %212
  %214 = call double @llvm.fmuladd.f64(double %181, double %209, double %213)
  %215 = load ptr, ptr %26, align 8, !tbaa !11
  %216 = getelementptr inbounds ptr, ptr %215, i64 %192
  %217 = load ptr, ptr %216, align 8, !tbaa !14
  %218 = getelementptr inbounds i8, ptr %217, i64 16
  store double %214, ptr %218, align 8, !tbaa !5
  %219 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %220 = call double @llvm.fmuladd.f64(double %219, double 2.000000e+00, double -1.000000e+00)
  %221 = fmul double %43, %220
  %222 = load ptr, ptr %26, align 8, !tbaa !11
  %223 = getelementptr inbounds ptr, ptr %222, i64 %192
  %224 = load ptr, ptr %223, align 8, !tbaa !14
  %225 = getelementptr inbounds i8, ptr %224, i64 24
  store double %221, ptr %225, align 8, !tbaa !5
  %226 = add nuw nsw i64 %.1228268, 1
  %exitcond285.not = icmp eq i64 %226, %.0236276
  br i1 %exitcond285.not, label %227, label %.critedge251, !llvm.loop !24

227:                                              ; preds = %.critedge251
  %228 = add nuw nsw i64 %.4269, 1
  %exitcond286.not = icmp eq i64 %228, %.1235277
  br i1 %exitcond286.not, label %.loopexit, label %.preheader, !llvm.loop !25

.loopexit:                                        ; preds = %227, %.critedge249
  %229 = load i64, ptr %6, align 8, !tbaa !9
  %230 = icmp sgt i64 %229, -1
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %230, ptr noundef nonnull @.str.687, ptr noundef %1)
  %231 = load i64, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl12rbfsetpointsEPNS_8rbfmodelEPNS_9ae_matrixElPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %13, i64 noundef %231, ptr noundef %1)
  call void @_ZN11alglib_impl13rbfbuildmodelEPNS_8rbfmodelEPNS_9rbfreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %1)
  %232 = load i64, ptr %6, align 8, !tbaa !9
  %.not.not241271 = icmp sgt i64 %232, 0
  br i1 %.not.not241271, label %.critedge253, label %._crit_edge273

233:                                              ; preds = %.critedge253
  %234 = add nuw nsw i64 %.5272, 1
  %235 = load i64, ptr %6, align 8, !tbaa !9
  %.not.not241 = icmp slt i64 %234, %235
  br i1 %.not.not241, label %.critedge253, label %._crit_edge273, !llvm.loop !26

.critedge253:                                     ; preds = %.loopexit, %233
  %.5272 = phi i64 [ %234, %233 ], [ 0, %.loopexit ]
  %236 = load ptr, ptr %26, align 8, !tbaa !11
  %237 = getelementptr inbounds ptr, ptr %236, i64 %.5272
  %238 = load ptr, ptr %237, align 8, !tbaa !14
  %239 = load double, ptr %238, align 8, !tbaa !5
  %240 = load ptr, ptr %27, align 8, !tbaa !11
  store double %239, ptr %240, align 8, !tbaa !5
  %241 = load ptr, ptr %26, align 8, !tbaa !11
  %242 = getelementptr inbounds ptr, ptr %241, i64 %.5272
  %243 = load ptr, ptr %242, align 8, !tbaa !14
  %244 = getelementptr inbounds i8, ptr %243, i64 8
  %245 = load double, ptr %244, align 8, !tbaa !5
  %246 = load ptr, ptr %27, align 8, !tbaa !11
  %247 = getelementptr inbounds i8, ptr %246, i64 8
  store double %245, ptr %247, align 8, !tbaa !5
  %248 = load ptr, ptr %26, align 8, !tbaa !11
  %249 = getelementptr inbounds ptr, ptr %248, i64 %.5272
  %250 = load ptr, ptr %249, align 8, !tbaa !14
  %251 = getelementptr inbounds i8, ptr %250, i64 16
  %252 = load double, ptr %251, align 8, !tbaa !5
  %253 = load ptr, ptr %27, align 8, !tbaa !11
  %254 = getelementptr inbounds i8, ptr %253, i64 16
  store double %252, ptr %254, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rbfcalcEPNS_8rbfmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %1)
  %255 = load ptr, ptr %26, align 8, !tbaa !11
  %256 = getelementptr inbounds ptr, ptr %255, i64 %.5272
  %257 = load ptr, ptr %256, align 8, !tbaa !14
  %258 = getelementptr inbounds i8, ptr %257, i64 24
  %259 = load double, ptr %258, align 8, !tbaa !5
  %260 = load ptr, ptr %28, align 8, !tbaa !11
  %261 = load double, ptr %260, align 8, !tbaa !5
  %262 = fsub double %259, %261
  %263 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %262, ptr noundef %1)
  %264 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %263, double noundef %125)
  br i1 %264, label %.loopexit301, label %233

._crit_edge273:                                   ; preds = %233, %.loopexit
  br i1 %.not, label %390, label %265

265:                                              ; preds = %._crit_edge273
  call void @_ZN11alglib_impl9rbfunpackEPNS_8rbfmodelEPlS2_PNS_9ae_matrixES2_S4_S2_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %1)
  %266 = load ptr, ptr %22, align 8, !tbaa !11
  %267 = load double, ptr %266, align 8, !tbaa !5
  %268 = load ptr, ptr %29, align 8, !tbaa !11
  %269 = load ptr, ptr %268, align 8, !tbaa !14
  %270 = load double, ptr %269, align 8, !tbaa !5
  %271 = getelementptr inbounds i8, ptr %266, i64 8
  %272 = load double, ptr %271, align 8, !tbaa !5
  %273 = getelementptr inbounds i8, ptr %269, i64 8
  %274 = load double, ptr %273, align 8, !tbaa !5
  %275 = getelementptr inbounds i8, ptr %266, i64 16
  %276 = load double, ptr %275, align 8, !tbaa !5
  %277 = getelementptr inbounds i8, ptr %269, i64 16
  %278 = load double, ptr %277, align 8, !tbaa !5
  %279 = load ptr, ptr %25, align 8, !tbaa !11
  %280 = load double, ptr %279, align 8, !tbaa !5
  %281 = getelementptr inbounds i8, ptr %279, i64 8
  %282 = load double, ptr %281, align 8, !tbaa !5
  %283 = getelementptr inbounds i8, ptr %279, i64 16
  %284 = load double, ptr %283, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef 3, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef 3, ptr noundef %1)
  %285 = fmul double %274, %282
  %286 = call double @llvm.fmuladd.f64(double %280, double %270, double %285)
  %287 = call double @llvm.fmuladd.f64(double %284, double %278, double %286)
  %288 = fmul double %282, %282
  %289 = call double @llvm.fmuladd.f64(double %280, double %280, double %288)
  %290 = call double @llvm.fmuladd.f64(double %284, double %284, double %289)
  %291 = fdiv double %287, %290
  %292 = fmul double %272, %274
  %293 = call double @llvm.fmuladd.f64(double %267, double %270, double %292)
  %294 = call double @llvm.fmuladd.f64(double %276, double %278, double %293)
  %295 = fmul double %272, %272
  %296 = call double @llvm.fmuladd.f64(double %267, double %267, double %295)
  %297 = call double @llvm.fmuladd.f64(double %276, double %276, double %296)
  %298 = fdiv double %294, %297
  %299 = load ptr, ptr %22, align 8, !tbaa !11
  %300 = load double, ptr %299, align 8, !tbaa !5
  %301 = fmul double %298, %300
  %302 = load ptr, ptr %30, align 8, !tbaa !11
  store double %301, ptr %302, align 8, !tbaa !5
  %303 = load ptr, ptr %25, align 8, !tbaa !11
  %304 = load double, ptr %303, align 8, !tbaa !5
  %305 = fmul double %291, %304
  %306 = load ptr, ptr %31, align 8, !tbaa !11
  store double %305, ptr %306, align 8, !tbaa !5
  %307 = load ptr, ptr %22, align 8, !tbaa !11
  %308 = getelementptr inbounds i8, ptr %307, i64 8
  %309 = load double, ptr %308, align 8, !tbaa !5
  %310 = fmul double %298, %309
  %311 = load ptr, ptr %30, align 8, !tbaa !11
  %312 = getelementptr inbounds i8, ptr %311, i64 8
  store double %310, ptr %312, align 8, !tbaa !5
  %313 = load ptr, ptr %25, align 8, !tbaa !11
  %314 = getelementptr inbounds i8, ptr %313, i64 8
  %315 = load double, ptr %314, align 8, !tbaa !5
  %316 = fmul double %291, %315
  %317 = load ptr, ptr %31, align 8, !tbaa !11
  %318 = getelementptr inbounds i8, ptr %317, i64 8
  store double %316, ptr %318, align 8, !tbaa !5
  %319 = load ptr, ptr %22, align 8, !tbaa !11
  %320 = getelementptr inbounds i8, ptr %319, i64 16
  %321 = load double, ptr %320, align 8, !tbaa !5
  %322 = fmul double %298, %321
  %323 = load ptr, ptr %30, align 8, !tbaa !11
  %324 = getelementptr inbounds i8, ptr %323, i64 16
  store double %322, ptr %324, align 8, !tbaa !5
  %325 = load ptr, ptr %25, align 8, !tbaa !11
  %326 = getelementptr inbounds i8, ptr %325, i64 16
  %327 = load double, ptr %326, align 8, !tbaa !5
  %328 = fmul double %291, %327
  %329 = load ptr, ptr %31, align 8, !tbaa !11
  %330 = getelementptr inbounds i8, ptr %329, i64 16
  store double %328, ptr %330, align 8, !tbaa !5
  %331 = load ptr, ptr %29, align 8, !tbaa !11
  %332 = load ptr, ptr %331, align 8, !tbaa !14
  %333 = load double, ptr %332, align 8, !tbaa !5
  %334 = load ptr, ptr %30, align 8, !tbaa !11
  %335 = load double, ptr %334, align 8, !tbaa !5
  %336 = fsub double %333, %335
  %337 = load ptr, ptr %31, align 8, !tbaa !11
  %338 = load double, ptr %337, align 8, !tbaa !5
  %339 = fsub double %336, %338
  %340 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %339, ptr noundef %1)
  %341 = load ptr, ptr %29, align 8, !tbaa !11
  %342 = load ptr, ptr %341, align 8, !tbaa !14
  %343 = getelementptr inbounds i8, ptr %342, i64 8
  %344 = load double, ptr %343, align 8, !tbaa !5
  %345 = load ptr, ptr %30, align 8, !tbaa !11
  %346 = getelementptr inbounds i8, ptr %345, i64 8
  %347 = load double, ptr %346, align 8, !tbaa !5
  %348 = fsub double %344, %347
  %349 = load ptr, ptr %31, align 8, !tbaa !11
  %350 = getelementptr inbounds i8, ptr %349, i64 8
  %351 = load double, ptr %350, align 8, !tbaa !5
  %352 = fsub double %348, %351
  %353 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %352, ptr noundef %1)
  %354 = fadd double %340, %353
  %355 = load ptr, ptr %29, align 8, !tbaa !11
  %356 = load ptr, ptr %355, align 8, !tbaa !14
  %357 = getelementptr inbounds i8, ptr %356, i64 16
  %358 = load double, ptr %357, align 8, !tbaa !5
  %359 = load ptr, ptr %30, align 8, !tbaa !11
  %360 = getelementptr inbounds i8, ptr %359, i64 16
  %361 = load double, ptr %360, align 8, !tbaa !5
  %362 = fsub double %358, %361
  %363 = load ptr, ptr %31, align 8, !tbaa !11
  %364 = getelementptr inbounds i8, ptr %363, i64 16
  %365 = load double, ptr %364, align 8, !tbaa !5
  %366 = fsub double %362, %365
  %367 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %366, ptr noundef %1)
  %368 = fadd double %354, %367
  %369 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %368, ptr noundef %1)
  %370 = load ptr, ptr %29, align 8, !tbaa !11
  %371 = load ptr, ptr %370, align 8, !tbaa !14
  %372 = load double, ptr %371, align 8, !tbaa !5
  %373 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %372, ptr noundef %1)
  %374 = load ptr, ptr %29, align 8, !tbaa !11
  %375 = load ptr, ptr %374, align 8, !tbaa !14
  %376 = getelementptr inbounds i8, ptr %375, i64 8
  %377 = load double, ptr %376, align 8, !tbaa !5
  %378 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %377, ptr noundef %1)
  %379 = fadd double %373, %378
  %380 = load ptr, ptr %29, align 8, !tbaa !11
  %381 = load ptr, ptr %380, align 8, !tbaa !14
  %382 = getelementptr inbounds i8, ptr %381, i64 16
  %383 = load double, ptr %382, align 8, !tbaa !5
  %384 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %383, ptr noundef %1)
  %385 = fadd double %379, %384
  %386 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %385, ptr noundef %1)
  %387 = load double, ptr @_ZL15testrbfunit_tol, align 8, !tbaa !5
  %388 = fmul double %386, %387
  %389 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %369, double noundef %388)
  br i1 %389, label %.loopexit301, label %390

390:                                              ; preds = %._crit_edge273, %265
  %391 = add nuw nsw i64 %.0237275, 1
  %exitcond289.not = icmp eq i64 %391, 3
  br i1 %exitcond289.not, label %392, label %127, !llvm.loop !27

392:                                              ; preds = %390
  %393 = add nuw nsw i64 %.0236276, 1
  %exitcond290.not = icmp eq i64 %393, 5
  br i1 %exitcond290.not, label %394, label %.preheader255, !llvm.loop !28

394:                                              ; preds = %392
  %395 = add nuw nsw i64 %.1235277, 1
  %exitcond291.not = icmp eq i64 %395, 5
  br i1 %exitcond291.not, label %.loopexit257, label %.preheader256, !llvm.loop !29

.loopexit257:                                     ; preds = %394, %._crit_edge, %57
  %396 = add nuw nsw i64 %.0233278, 1
  %397 = icmp ult i64 %.0233278, 3
  %exitcond294.not = icmp eq i64 %396, 4
  br i1 %exitcond294.not, label %.loopexit301, label %32, !llvm.loop !30

.loopexit301:                                     ; preds = %.loopexit257, %.critedge247, %265, %.critedge253
  %398 = phi i1 [ %33, %.critedge253 ], [ %33, %265 ], [ %33, %.critedge247 ], [ %397, %.loopexit257 ]
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 2832, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  ret i1 %398
}

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

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

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

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

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

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

declare void @_ZN11alglib_impl13rbfbuildmodelEPNS_8rbfmodelEPNS_9rbfreportEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl7rbfcalcEPNS_8rbfmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl9rbfunpackEPNS_8rbfmodelEPlS2_PNS_9ae_matrixES2_S4_S2_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!15, !15, i64 0}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!17, !10, i64 16}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !18, i64 32, !19, i64 40, !7, i64 72}
!18 = !{!"bool", !7, i64 0}
!19 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}


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