; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/tests/test_c.ll (Z22sparserealcholeskytestPN11alglib_impl8ae_stateE)

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

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::sparsebuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }
%"struct.alglib_impl::sparsedecompositionanalysis" = type { i64, i64, i64, %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::spcholanalysis" = type { i64, i64, i64, i8, i64, double, double, double, double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, i8, %"struct.alglib_impl::spcholadj", %"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_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"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::amdbuffer", %"struct.alglib_impl::priorityamdbuffers", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::spcholadj" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_nxpool" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_dyn_block", %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::amdbuffer" = type { i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdllmatrix", %"struct.alglib_impl::amdvertexset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::amdllmatrix" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::amdvertexset" = type { i64, i8, 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::amdknset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::niset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::priorityamdbuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdbuffer", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix" }

@.str.19 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [22 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef) #2

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z22sparserealcholeskytestPN11alglib_impl8ae_stateE(ptr noundef %0) #4 {
  %2 = alloca i1, align 1
  %3 = alloca ptr, align 8
  %4 = alloca %"struct.alglib_impl::ae_frame", align 8
  %5 = alloca i64, align 8
  %6 = alloca i64, align 8
  %7 = alloca double, align 8
  %8 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %9 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %10 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca double, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i8, align 1
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %23 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %24 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %25 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %26 = alloca %"struct.alglib_impl::sparsebuffers", align 8
  %27 = alloca %"struct.alglib_impl::ae_vector", align 8
  %28 = alloca %"struct.alglib_impl::ae_vector", align 8
  %29 = alloca %"struct.alglib_impl::ae_vector", align 8
  %30 = alloca %"struct.alglib_impl::ae_vector", align 8
  %31 = alloca %"struct.alglib_impl::ae_vector", align 8
  %32 = alloca %"struct.alglib_impl::hqrndstate", align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca %"struct.alglib_impl::sparsedecompositionanalysis", align 8
  %38 = alloca %"struct.alglib_impl::spcholanalysis", align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i8, align 1
  %50 = alloca i8, align 1
  %51 = alloca i64, align 8
  %52 = alloca i8, align 1
  %53 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 80, 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 1, 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 368, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 496, 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 64, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 16560, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 15064, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #5
  %54 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %54, ptr noundef %4)
  call void @llvm.memset.p0.i64(ptr align 8 %8, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %26, i8 0, i64 496, 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 %29, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %30, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %32, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %37, i8 0, i64 16560, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 15064, i1 false)
  %55 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %8, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %55, i1 noundef zeroext true)
  %56 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %9, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %56, i1 noundef zeroext true)
  %57 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %10, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %57, i1 noundef zeroext true)
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %22, ptr noundef %58, i1 noundef zeroext true)
  %59 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %23, ptr noundef %59, i1 noundef zeroext true)
  %60 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %24, ptr noundef %60, i1 noundef zeroext true)
  %61 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %25, ptr noundef %61, i1 noundef zeroext true)
  %62 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl19_sparsebuffers_initEPvPNS_8ae_stateEb(ptr noundef %26, ptr noundef %62, i1 noundef zeroext true)
  %63 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %27, i64 noundef 0, i64 noundef 2, ptr noundef %63, i1 noundef zeroext true)
  %64 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %28, i64 noundef 0, i64 noundef 2, ptr noundef %64, i1 noundef zeroext true)
  %65 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %29, i64 noundef 0, i64 noundef 2, ptr noundef %65, i1 noundef zeroext true)
  %66 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %30, i64 noundef 0, i64 noundef 3, ptr noundef %66, i1 noundef zeroext true)
  %67 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %31, i64 noundef 0, i64 noundef 1, ptr noundef %67, i1 noundef zeroext true)
  %68 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl16_hqrndstate_initEPvPNS_8ae_stateEb(ptr noundef %32, ptr noundef %68, i1 noundef zeroext true)
  %69 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl33_sparsedecompositionanalysis_initEPvPNS_8ae_stateEb(ptr noundef %37, ptr noundef %69, i1 noundef zeroext true)
  %70 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20_spcholanalysis_initEPvPNS_8ae_stateEb(ptr noundef %38, ptr noundef %70, i1 noundef zeroext true)
  store i8 0, ptr %52, align 1, !tbaa !9
  %71 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14hqrndrandomizeEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %71)
  store i64 2, ptr %33, align 8, !tbaa !11
  store i64 -3, ptr %34, align 8, !tbaa !11
  store i64 3, ptr %35, align 8, !tbaa !11
  store double 1.000000e-03, ptr %20, align 8, !tbaa !13
  store double 1.000000e-08, ptr %21, align 8, !tbaa !13
  store i64 1, ptr %5, align 8, !tbaa !11
  br label %72

72:                                               ; preds = %834, %1
  %73 = load i64, ptr %5, align 8, !tbaa !11
  %74 = icmp sle i64 %73, 30
  br i1 %74, label %75, label %837

75:                                               ; preds = %72
  %76 = load i64, ptr %5, align 8, !tbaa !11
  %77 = load i64, ptr %5, align 8, !tbaa !11
  %78 = mul nsw i64 %76, %77
  %79 = load i64, ptr %5, align 8, !tbaa !11
  %80 = sub nsw i64 %78, %79
  store i64 %80, ptr %6, align 8, !tbaa !11
  br label %81

81:                                               ; preds = %830, %75
  %82 = load i64, ptr %5, align 8, !tbaa !11
  %83 = icmp sgt i64 %82, 1
  br i1 %83, label %84, label %94

84:                                               ; preds = %81
  %85 = load i64, ptr %6, align 8, !tbaa !11
  %86 = sitofp i64 %85 to double
  %87 = load i64, ptr %5, align 8, !tbaa !11
  %88 = load i64, ptr %5, align 8, !tbaa !11
  %89 = mul nsw i64 %87, %88
  %90 = load i64, ptr %5, align 8, !tbaa !11
  %91 = sub nsw i64 %89, %90
  %92 = sitofp i64 %91 to double
  %93 = fdiv double %86, %92
  store double %93, ptr %7, align 8, !tbaa !13
  br label %95

94:                                               ; preds = %81
  store double 1.000000e+00, ptr %7, align 8, !tbaa !13
  br label %95

95:                                               ; preds = %94, %84
  %96 = load i64, ptr %5, align 8, !tbaa !11
  %97 = load i64, ptr %5, align 8, !tbaa !11
  %98 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %8, i64 noundef %96, i64 noundef %97, ptr noundef %98)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %99

99:                                               ; preds = %179, %95
  %100 = load i64, ptr %12, align 8, !tbaa !11
  %101 = load i64, ptr %5, align 8, !tbaa !11
  %102 = sub nsw i64 %101, 1
  %103 = icmp sle i64 %100, %102
  br i1 %103, label %104, label %182

104:                                              ; preds = %99
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %105

105:                                              ; preds = %175, %104
  %106 = load i64, ptr %13, align 8, !tbaa !11
  %107 = load i64, ptr %12, align 8, !tbaa !11
  %108 = icmp sle i64 %106, %107
  br i1 %108, label %109, label %178

109:                                              ; preds = %105
  %110 = load i64, ptr %12, align 8, !tbaa !11
  %111 = load i64, ptr %13, align 8, !tbaa !11
  %112 = icmp eq i64 %110, %111
  br i1 %112, label %113, label %124

113:                                              ; preds = %109
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  %115 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %114)
  %116 = fadd double 1.000000e+00, %115
  %117 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %118 = load ptr, ptr %117, align 8, !tbaa !15
  %119 = load i64, ptr %12, align 8, !tbaa !11
  %120 = getelementptr inbounds ptr, ptr %118, i64 %119
  %121 = load ptr, ptr %120, align 8, !tbaa !5
  %122 = load i64, ptr %12, align 8, !tbaa !11
  %123 = getelementptr inbounds double, ptr %121, i64 %122
  store double %116, ptr %123, align 8, !tbaa !13
  br label %175

124:                                              ; preds = %109
  %125 = load ptr, ptr %3, align 8, !tbaa !5
  %126 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %125)
  %127 = load double, ptr %7, align 8, !tbaa !13
  %128 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %126, double noundef %127)
  br i1 %128, label %129, label %159

129:                                              ; preds = %124
  %130 = load i64, ptr %5, align 8, !tbaa !11
  %131 = sitofp i64 %130 to double
  %132 = fdiv double 5.000000e-01, %131
  %133 = load ptr, ptr %3, align 8, !tbaa !5
  %134 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %133)
  %135 = fsub double %134, 5.000000e-01
  %136 = fmul double %132, %135
  %137 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %138 = load ptr, ptr %137, align 8, !tbaa !15
  %139 = load i64, ptr %12, align 8, !tbaa !11
  %140 = getelementptr inbounds ptr, ptr %138, i64 %139
  %141 = load ptr, ptr %140, align 8, !tbaa !5
  %142 = load i64, ptr %13, align 8, !tbaa !11
  %143 = getelementptr inbounds double, ptr %141, i64 %142
  store double %136, ptr %143, align 8, !tbaa !13
  %144 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %145 = load ptr, ptr %144, align 8, !tbaa !15
  %146 = load i64, ptr %12, align 8, !tbaa !11
  %147 = getelementptr inbounds ptr, ptr %145, i64 %146
  %148 = load ptr, ptr %147, align 8, !tbaa !5
  %149 = load i64, ptr %13, align 8, !tbaa !11
  %150 = getelementptr inbounds double, ptr %148, i64 %149
  %151 = load double, ptr %150, align 8, !tbaa !13
  %152 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %153 = load ptr, ptr %152, align 8, !tbaa !15
  %154 = load i64, ptr %13, align 8, !tbaa !11
  %155 = getelementptr inbounds ptr, ptr %153, i64 %154
  %156 = load ptr, ptr %155, align 8, !tbaa !5
  %157 = load i64, ptr %12, align 8, !tbaa !11
  %158 = getelementptr inbounds double, ptr %156, i64 %157
  store double %151, ptr %158, align 8, !tbaa !13
  br label %174

159:                                              ; preds = %124
  %160 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %161 = load ptr, ptr %160, align 8, !tbaa !15
  %162 = load i64, ptr %12, align 8, !tbaa !11
  %163 = getelementptr inbounds ptr, ptr %161, i64 %162
  %164 = load ptr, ptr %163, align 8, !tbaa !5
  %165 = load i64, ptr %13, align 8, !tbaa !11
  %166 = getelementptr inbounds double, ptr %164, i64 %165
  store double 0.000000e+00, ptr %166, align 8, !tbaa !13
  %167 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %168 = load ptr, ptr %167, align 8, !tbaa !15
  %169 = load i64, ptr %13, align 8, !tbaa !11
  %170 = getelementptr inbounds ptr, ptr %168, i64 %169
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  %172 = load i64, ptr %12, align 8, !tbaa !11
  %173 = getelementptr inbounds double, ptr %171, i64 %172
  store double 0.000000e+00, ptr %173, align 8, !tbaa !13
  br label %174

174:                                              ; preds = %159, %129
  br label %175

175:                                              ; preds = %174, %113
  %176 = load i64, ptr %13, align 8, !tbaa !11
  %177 = add nsw i64 %176, 1
  store i64 %177, ptr %13, align 8, !tbaa !11
  br label %105, !llvm.loop !16

178:                                              ; preds = %105
  br label %179

179:                                              ; preds = %178
  %180 = load i64, ptr %12, align 8, !tbaa !11
  %181 = add nsw i64 %180, 1
  store i64 %181, ptr %12, align 8, !tbaa !11
  br label %99, !llvm.loop !18

182:                                              ; preds = %99
  %183 = load ptr, ptr %3, align 8, !tbaa !5
  %184 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %183)
  %185 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %184, double noundef 5.000000e-01)
  %186 = zext i1 %185 to i8
  store i8 %186, ptr %19, align 1, !tbaa !9
  %187 = load i64, ptr %5, align 8, !tbaa !11
  %188 = load i64, ptr %5, align 8, !tbaa !11
  %189 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %187, i64 noundef %188, i64 noundef 0, ptr noundef %22, ptr noundef %189)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %190

190:                                              ; preds = %232, %182
  %191 = load i64, ptr %12, align 8, !tbaa !11
  %192 = load i64, ptr %5, align 8, !tbaa !11
  %193 = sub nsw i64 %192, 1
  %194 = icmp sle i64 %191, %193
  br i1 %194, label %195, label %235

195:                                              ; preds = %190
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %196

196:                                              ; preds = %228, %195
  %197 = load i64, ptr %13, align 8, !tbaa !11
  %198 = load i64, ptr %5, align 8, !tbaa !11
  %199 = sub nsw i64 %198, 1
  %200 = icmp sle i64 %197, %199
  br i1 %200, label %201, label %231

201:                                              ; preds = %196
  %202 = load i64, ptr %13, align 8, !tbaa !11
  %203 = load i64, ptr %12, align 8, !tbaa !11
  %204 = icmp sle i64 %202, %203
  br i1 %204, label %205, label %208

205:                                              ; preds = %201
  %206 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %207 = trunc i8 %206 to i1
  br i1 %207, label %208, label %215

208:                                              ; preds = %205, %201
  %209 = load i64, ptr %13, align 8, !tbaa !11
  %210 = load i64, ptr %12, align 8, !tbaa !11
  %211 = icmp sge i64 %209, %210
  br i1 %211, label %212, label %227

212:                                              ; preds = %208
  %213 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %214 = trunc i8 %213 to i1
  br i1 %214, label %215, label %227

215:                                              ; preds = %212, %205
  %216 = load i64, ptr %12, align 8, !tbaa !11
  %217 = load i64, ptr %13, align 8, !tbaa !11
  %218 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %219 = load ptr, ptr %218, align 8, !tbaa !15
  %220 = load i64, ptr %12, align 8, !tbaa !11
  %221 = getelementptr inbounds ptr, ptr %219, i64 %220
  %222 = load ptr, ptr %221, align 8, !tbaa !5
  %223 = load i64, ptr %13, align 8, !tbaa !11
  %224 = getelementptr inbounds double, ptr %222, i64 %223
  %225 = load double, ptr %224, align 8, !tbaa !13
  %226 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %216, i64 noundef %217, double noundef %225, ptr noundef %226)
  br label %227

227:                                              ; preds = %215, %212, %208
  br label %228

228:                                              ; preds = %227
  %229 = load i64, ptr %13, align 8, !tbaa !11
  %230 = add nsw i64 %229, 1
  store i64 %230, ptr %13, align 8, !tbaa !11
  br label %196, !llvm.loop !21

231:                                              ; preds = %196
  br label %232

232:                                              ; preds = %231
  %233 = load i64, ptr %12, align 8, !tbaa !11
  %234 = add nsw i64 %233, 1
  store i64 %234, ptr %12, align 8, !tbaa !11
  br label %190, !llvm.loop !22

235:                                              ; preds = %190
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %236

236:                                              ; preds = %278, %235
  %237 = load i64, ptr %12, align 8, !tbaa !11
  %238 = load i64, ptr %5, align 8, !tbaa !11
  %239 = sub nsw i64 %238, 1
  %240 = icmp sle i64 %237, %239
  br i1 %240, label %241, label %281

241:                                              ; preds = %236
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %242

242:                                              ; preds = %274, %241
  %243 = load i64, ptr %13, align 8, !tbaa !11
  %244 = load i64, ptr %5, align 8, !tbaa !11
  %245 = sub nsw i64 %244, 1
  %246 = icmp sle i64 %243, %245
  br i1 %246, label %247, label %277

247:                                              ; preds = %242
  %248 = load i64, ptr %13, align 8, !tbaa !11
  %249 = load i64, ptr %12, align 8, !tbaa !11
  %250 = icmp slt i64 %248, %249
  br i1 %250, label %251, label %254

251:                                              ; preds = %247
  %252 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %253 = trunc i8 %252 to i1
  br i1 %253, label %261, label %254

254:                                              ; preds = %251, %247
  %255 = load i64, ptr %13, align 8, !tbaa !11
  %256 = load i64, ptr %12, align 8, !tbaa !11
  %257 = icmp sgt i64 %255, %256
  br i1 %257, label %258, label %273

258:                                              ; preds = %254
  %259 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %260 = trunc i8 %259 to i1
  br i1 %260, label %273, label %261

261:                                              ; preds = %258, %251
  %262 = load ptr, ptr %3, align 8, !tbaa !5
  %263 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %262)
  %264 = load double, ptr %7, align 8, !tbaa !13
  %265 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %263, double noundef %264)
  br i1 %265, label %266, label %272

266:                                              ; preds = %261
  %267 = load i64, ptr %12, align 8, !tbaa !11
  %268 = load i64, ptr %13, align 8, !tbaa !11
  %269 = load ptr, ptr %3, align 8, !tbaa !5
  %270 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %269)
  %271 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %267, i64 noundef %268, double noundef %270, ptr noundef %271)
  br label %272

272:                                              ; preds = %266, %261
  br label %273

273:                                              ; preds = %272, %258, %254
  br label %274

274:                                              ; preds = %273
  %275 = load i64, ptr %13, align 8, !tbaa !11
  %276 = add nsw i64 %275, 1
  store i64 %276, ptr %13, align 8, !tbaa !11
  br label %242, !llvm.loop !23

277:                                              ; preds = %242
  br label %278

278:                                              ; preds = %277
  %279 = load i64, ptr %12, align 8, !tbaa !11
  %280 = add nsw i64 %279, 1
  store i64 %280, ptr %12, align 8, !tbaa !11
  br label %236, !llvm.loop !24

281:                                              ; preds = %236
  %282 = load i64, ptr %33, align 8, !tbaa !11
  %283 = add nsw i64 %282, 1
  %284 = load ptr, ptr %3, align 8, !tbaa !5
  %285 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %283, ptr noundef %284)
  %286 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef %22, i64 noundef %285, ptr noundef %286)
  store i64 0, ptr %36, align 8, !tbaa !11
  br label %287

287:                                              ; preds = %757, %281
  %288 = load i64, ptr %36, align 8, !tbaa !11
  %289 = icmp sle i64 %288, 2
  br i1 %289, label %290, label %760

290:                                              ; preds = %287
  %291 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %22, ptr noundef %24, ptr noundef %291)
  %292 = load i64, ptr %36, align 8, !tbaa !11
  %293 = icmp eq i64 %292, 0
  br i1 %293, label %294, label %327

294:                                              ; preds = %290
  %295 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %296 = trunc i8 %295 to i1
  %297 = load ptr, ptr %3, align 8, !tbaa !5
  %298 = call noundef zeroext i1 @_ZN11alglib_impl14sparsecholeskyEPNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %296, ptr noundef %297)
  br i1 %298, label %303, label %299

299:                                              ; preds = %294
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24337, ptr noundef @.str.343)
  %300 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %300)
  %301 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %302 = trunc i8 %301 to i1
  store i1 %302, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

303:                                              ; preds = %294
  %304 = load i64, ptr %5, align 8, !tbaa !11
  %305 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %27, i64 noundef %304, ptr noundef %305)
  %306 = load i64, ptr %5, align 8, !tbaa !11
  %307 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %30, i64 noundef %306, ptr noundef %307)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %308

308:                                              ; preds = %323, %303
  %309 = load i64, ptr %12, align 8, !tbaa !11
  %310 = load i64, ptr %5, align 8, !tbaa !11
  %311 = sub nsw i64 %310, 1
  %312 = icmp sle i64 %309, %311
  br i1 %312, label %313, label %326

313:                                              ; preds = %308
  %314 = load i64, ptr %12, align 8, !tbaa !11
  %315 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %316 = load ptr, ptr %315, align 8, !tbaa !15
  %317 = load i64, ptr %12, align 8, !tbaa !11
  %318 = getelementptr inbounds i64, ptr %316, i64 %317
  store i64 %314, ptr %318, align 8, !tbaa !11
  %319 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %320 = load ptr, ptr %319, align 8, !tbaa !15
  %321 = load i64, ptr %12, align 8, !tbaa !11
  %322 = getelementptr inbounds double, ptr %320, i64 %321
  store double 1.000000e+00, ptr %322, align 8, !tbaa !13
  br label %323

323:                                              ; preds = %313
  %324 = load i64, ptr %12, align 8, !tbaa !11
  %325 = add nsw i64 %324, 1
  store i64 %325, ptr %12, align 8, !tbaa !11
  br label %308, !llvm.loop !25

326:                                              ; preds = %308
  br label %327

327:                                              ; preds = %326, %290
  %328 = load i64, ptr %36, align 8, !tbaa !11
  %329 = icmp eq i64 %328, 1
  br i1 %329, label %330, label %356

330:                                              ; preds = %327
  %331 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %332 = trunc i8 %331 to i1
  %333 = load ptr, ptr %3, align 8, !tbaa !5
  %334 = call noundef zeroext i1 @_ZN11alglib_impl15sparsecholeskypEPNS_12sparsematrixEbPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %332, ptr noundef %27, ptr noundef %333)
  br i1 %334, label %339, label %335

335:                                              ; preds = %330
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24357, ptr noundef @.str.344)
  %336 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %336)
  %337 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %338 = trunc i8 %337 to i1
  store i1 %338, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

339:                                              ; preds = %330
  %340 = load i64, ptr %5, align 8, !tbaa !11
  %341 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %30, i64 noundef %340, ptr noundef %341)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %342

342:                                              ; preds = %352, %339
  %343 = load i64, ptr %12, align 8, !tbaa !11
  %344 = load i64, ptr %5, align 8, !tbaa !11
  %345 = sub nsw i64 %344, 1
  %346 = icmp sle i64 %343, %345
  br i1 %346, label %347, label %355

347:                                              ; preds = %342
  %348 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %349 = load ptr, ptr %348, align 8, !tbaa !15
  %350 = load i64, ptr %12, align 8, !tbaa !11
  %351 = getelementptr inbounds double, ptr %349, i64 %350
  store double 1.000000e+00, ptr %351, align 8, !tbaa !13
  br label %352

352:                                              ; preds = %347
  %353 = load i64, ptr %12, align 8, !tbaa !11
  %354 = add nsw i64 %353, 1
  store i64 %354, ptr %12, align 8, !tbaa !11
  br label %342, !llvm.loop !26

355:                                              ; preds = %342
  br label %356

356:                                              ; preds = %355, %327
  %357 = load i64, ptr %36, align 8, !tbaa !11
  %358 = icmp eq i64 %357, 2
  br i1 %358, label %359, label %473

359:                                              ; preds = %356
  %360 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %24, ptr noundef %25, ptr noundef %360)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %361

361:                                              ; preds = %387, %359
  %362 = load i64, ptr %12, align 8, !tbaa !11
  %363 = load i64, ptr %5, align 8, !tbaa !11
  %364 = sub nsw i64 %363, 1
  %365 = icmp sle i64 %362, %364
  br i1 %365, label %366, label %390

366:                                              ; preds = %361
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %367

367:                                              ; preds = %383, %366
  %368 = load i64, ptr %13, align 8, !tbaa !11
  %369 = load i64, ptr %5, align 8, !tbaa !11
  %370 = sub nsw i64 %369, 1
  %371 = icmp sle i64 %368, %370
  br i1 %371, label %372, label %386

372:                                              ; preds = %367
  %373 = load i64, ptr %12, align 8, !tbaa !11
  %374 = load i64, ptr %13, align 8, !tbaa !11
  %375 = load ptr, ptr %3, align 8, !tbaa !5
  %376 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %25, i64 noundef %373, i64 noundef %374, ptr noundef %375)
  br i1 %376, label %377, label %382

377:                                              ; preds = %372
  %378 = load i64, ptr %12, align 8, !tbaa !11
  %379 = load i64, ptr %13, align 8, !tbaa !11
  %380 = load ptr, ptr %3, align 8, !tbaa !5
  %381 = call noundef zeroext i1 @_ZN11alglib_impl21sparserewriteexistingEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %25, i64 noundef %378, i64 noundef %379, double noundef 1.000000e+00, ptr noundef %380)
  br label %382

382:                                              ; preds = %377, %372
  br label %383

383:                                              ; preds = %382
  %384 = load i64, ptr %13, align 8, !tbaa !11
  %385 = add nsw i64 %384, 1
  store i64 %385, ptr %13, align 8, !tbaa !11
  br label %367, !llvm.loop !27

386:                                              ; preds = %367
  br label %387

387:                                              ; preds = %386
  %388 = load i64, ptr %12, align 8, !tbaa !11
  %389 = add nsw i64 %388, 1
  store i64 %389, ptr %12, align 8, !tbaa !11
  br label %361, !llvm.loop !28

390:                                              ; preds = %361
  %391 = load i64, ptr %34, align 8, !tbaa !11
  %392 = load i64, ptr %35, align 8, !tbaa !11
  %393 = load i64, ptr %34, align 8, !tbaa !11
  %394 = sub nsw i64 %392, %393
  %395 = add nsw i64 %394, 1
  %396 = load ptr, ptr %3, align 8, !tbaa !5
  %397 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %395, ptr noundef %396)
  %398 = add nsw i64 %391, %397
  store i64 %398, ptr %39, align 8, !tbaa !11
  %399 = load ptr, ptr %3, align 8, !tbaa !5
  %400 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %399)
  %401 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %400, double noundef 0.000000e+00)
  br i1 %401, label %402, label %423

402:                                              ; preds = %390
  %403 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %404 = trunc i8 %403 to i1
  %405 = load i64, ptr %39, align 8, !tbaa !11
  %406 = load ptr, ptr %3, align 8, !tbaa !5
  %407 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %404, i64 noundef 0, i64 noundef %405, ptr noundef %37, ptr noundef %406)
  br i1 %407, label %412, label %408

408:                                              ; preds = %402
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24395, ptr noundef @.str.345)
  %409 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %409)
  %410 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %411 = trunc i8 %410 to i1
  store i1 %411, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

412:                                              ; preds = %402
  %413 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef %24, ptr noundef %413)
  %414 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %415 = trunc i8 %414 to i1
  %416 = load ptr, ptr %3, align 8, !tbaa !5
  %417 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %415, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %416)
  br i1 %417, label %422, label %418

418:                                              ; preds = %412
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24402, ptr noundef @.str.346)
  %419 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %419)
  %420 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %421 = trunc i8 %420 to i1
  store i1 %421, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

422:                                              ; preds = %412
  br label %447

423:                                              ; preds = %390
  %424 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %425 = trunc i8 %424 to i1
  %426 = load i64, ptr %39, align 8, !tbaa !11
  %427 = load ptr, ptr %3, align 8, !tbaa !5
  %428 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %25, i1 noundef zeroext %425, i64 noundef 0, i64 noundef %426, ptr noundef %37, ptr noundef %427)
  br i1 %428, label %433, label %429

429:                                              ; preds = %423
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24415, ptr noundef @.str.347)
  %430 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %430)
  %431 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %432 = trunc i8 %431 to i1
  store i1 %432, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

433:                                              ; preds = %423
  %434 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %435 = trunc i8 %434 to i1
  %436 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef %37, ptr noundef %24, i1 noundef zeroext %435, ptr noundef %436)
  %437 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef %24, ptr noundef %437)
  %438 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %439 = trunc i8 %438 to i1
  %440 = load ptr, ptr %3, align 8, !tbaa !5
  %441 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %439, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %440)
  br i1 %441, label %446, label %442

442:                                              ; preds = %433
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24423, ptr noundef @.str.348)
  %443 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %443)
  %444 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %445 = trunc i8 %444 to i1
  store i1 %445, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

446:                                              ; preds = %433
  br label %447

447:                                              ; preds = %446, %422
  %448 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 0
  %449 = load i64, ptr %448, align 8, !tbaa !29
  %450 = load i64, ptr %5, align 8, !tbaa !11
  %451 = icmp ne i64 %449, %450
  br i1 %451, label %452, label %456

452:                                              ; preds = %447
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24430, ptr noundef @.str.349)
  %453 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %453)
  %454 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %455 = trunc i8 %454 to i1
  store i1 %455, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

456:                                              ; preds = %447
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %457

457:                                              ; preds = %469, %456
  %458 = load i64, ptr %12, align 8, !tbaa !11
  %459 = load i64, ptr %5, align 8, !tbaa !11
  %460 = sub nsw i64 %459, 1
  %461 = icmp sle i64 %458, %460
  br i1 %461, label %462, label %472

462:                                              ; preds = %457
  %463 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %464 = load ptr, ptr %463, align 8, !tbaa !15
  %465 = load i64, ptr %12, align 8, !tbaa !11
  %466 = getelementptr inbounds double, ptr %464, i64 %465
  %467 = load double, ptr %466, align 8, !tbaa !13
  %468 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %467, double noundef 1.000000e+00)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %468, ptr noundef @.str.19, i32 noundef 24436, ptr noundef @.str.350)
  br label %469

469:                                              ; preds = %462
  %470 = load i64, ptr %12, align 8, !tbaa !11
  %471 = add nsw i64 %470, 1
  store i64 %471, ptr %12, align 8, !tbaa !11
  br label %457, !llvm.loop !32

472:                                              ; preds = %457
  br label %473

473:                                              ; preds = %472, %356
  %474 = load ptr, ptr %3, align 8, !tbaa !5
  %475 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %474)
  br i1 %475, label %476, label %486

476:                                              ; preds = %473
  %477 = load ptr, ptr %3, align 8, !tbaa !5
  %478 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %477)
  %479 = load i64, ptr %5, align 8, !tbaa !11
  %480 = icmp ne i64 %478, %479
  br i1 %480, label %486, label %481

481:                                              ; preds = %476
  %482 = load ptr, ptr %3, align 8, !tbaa !5
  %483 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %482)
  %484 = load i64, ptr %5, align 8, !tbaa !11
  %485 = icmp ne i64 %483, %484
  br label %486

486:                                              ; preds = %481, %476, %473
  %487 = phi i1 [ true, %476 ], [ true, %473 ], [ %485, %481 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %487, ptr noundef @.str.19, i32 noundef 24443, ptr noundef @.str.351)
  %488 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 0
  %489 = load i64, ptr %488, align 8, !tbaa !29
  %490 = load i64, ptr %5, align 8, !tbaa !11
  %491 = icmp ne i64 %489, %490
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %491, ptr noundef @.str.19, i32 noundef 24444, ptr noundef @.str.352)
  %492 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 0
  %493 = load i64, ptr %492, align 8, !tbaa !29
  %494 = load i64, ptr %5, align 8, !tbaa !11
  %495 = icmp ne i64 %493, %494
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %495, ptr noundef @.str.19, i32 noundef 24445, ptr noundef @.str.353)
  %496 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %497 = trunc i8 %496 to i1
  br i1 %497, label %498, label %502

498:                                              ; preds = %486
  %499 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %499)
  %500 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %501 = trunc i8 %500 to i1
  store i1 %501, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

502:                                              ; preds = %486
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %503

503:                                              ; preds = %534, %502
  %504 = load i64, ptr %12, align 8, !tbaa !11
  %505 = load i64, ptr %5, align 8, !tbaa !11
  %506 = sub nsw i64 %505, 1
  %507 = icmp sle i64 %504, %506
  br i1 %507, label %508, label %537

508:                                              ; preds = %503
  %509 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %510 = load ptr, ptr %509, align 8, !tbaa !15
  %511 = load i64, ptr %12, align 8, !tbaa !11
  %512 = getelementptr inbounds i64, ptr %510, i64 %511
  %513 = load i64, ptr %512, align 8, !tbaa !11
  %514 = load i64, ptr %12, align 8, !tbaa !11
  %515 = icmp slt i64 %513, %514
  br i1 %515, label %524, label %516

516:                                              ; preds = %508
  %517 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %518 = load ptr, ptr %517, align 8, !tbaa !15
  %519 = load i64, ptr %12, align 8, !tbaa !11
  %520 = getelementptr inbounds i64, ptr %518, i64 %519
  %521 = load i64, ptr %520, align 8, !tbaa !11
  %522 = load i64, ptr %5, align 8, !tbaa !11
  %523 = icmp sge i64 %521, %522
  br label %524

524:                                              ; preds = %516, %508
  %525 = phi i1 [ true, %508 ], [ %523, %516 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %525, ptr noundef @.str.19, i32 noundef 24453, ptr noundef @.str.354)
  %526 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %527 = load ptr, ptr %526, align 8, !tbaa !15
  %528 = load i64, ptr %12, align 8, !tbaa !11
  %529 = getelementptr inbounds double, ptr %527, i64 %528
  %530 = load double, ptr %529, align 8, !tbaa !13
  %531 = load ptr, ptr %3, align 8, !tbaa !5
  %532 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %530, ptr noundef %531)
  %533 = xor i1 %532, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %533, ptr noundef @.str.19, i32 noundef 24454, ptr noundef @.str.355)
  br label %534

534:                                              ; preds = %524
  %535 = load i64, ptr %12, align 8, !tbaa !11
  %536 = add nsw i64 %535, 1
  store i64 %536, ptr %12, align 8, !tbaa !11
  br label %503, !llvm.loop !33

537:                                              ; preds = %503
  %538 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %539 = trunc i8 %538 to i1
  br i1 %539, label %540, label %544

540:                                              ; preds = %537
  %541 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %541)
  %542 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %543 = trunc i8 %542 to i1
  store i1 %543, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

544:                                              ; preds = %537
  store i64 0, ptr %17, align 8, !tbaa !11
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %545

545:                                              ; preds = %564, %544
  %546 = load ptr, ptr %3, align 8, !tbaa !5
  %547 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef %24, ptr noundef %17, ptr noundef %18, ptr noundef %12, ptr noundef %13, ptr noundef %16, ptr noundef %546)
  br i1 %547, label %548, label %566

548:                                              ; preds = %545
  %549 = load i64, ptr %13, align 8, !tbaa !11
  %550 = load i64, ptr %12, align 8, !tbaa !11
  %551 = icmp slt i64 %549, %550
  br i1 %551, label %552, label %555

552:                                              ; preds = %548
  %553 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %554 = trunc i8 %553 to i1
  br label %555

555:                                              ; preds = %552, %548
  %556 = phi i1 [ false, %548 ], [ %554, %552 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %556, ptr noundef @.str.19, i32 noundef 24465, ptr noundef @.str.356)
  %557 = load i64, ptr %13, align 8, !tbaa !11
  %558 = load i64, ptr %12, align 8, !tbaa !11
  %559 = icmp sgt i64 %557, %558
  br i1 %559, label %560, label %564

560:                                              ; preds = %555
  %561 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %562 = trunc i8 %561 to i1
  %563 = xor i1 %562, true
  br label %564

564:                                              ; preds = %560, %555
  %565 = phi i1 [ false, %555 ], [ %563, %560 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %565, ptr noundef @.str.19, i32 noundef 24466, ptr noundef @.str.357)
  br label %545, !llvm.loop !34

566:                                              ; preds = %545
  %567 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %568 = trunc i8 %567 to i1
  br i1 %568, label %569, label %573

569:                                              ; preds = %566
  %570 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %570)
  %571 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %572 = trunc i8 %571 to i1
  store i1 %572, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

573:                                              ; preds = %566
  %574 = load i64, ptr %5, align 8, !tbaa !11
  %575 = load i64, ptr %5, align 8, !tbaa !11
  %576 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %9, i64 noundef %574, i64 noundef %575, ptr noundef %576)
  %577 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %578 = trunc i8 %577 to i1
  br i1 %578, label %579, label %634

579:                                              ; preds = %573
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %580

580:                                              ; preds = %630, %579
  %581 = load i64, ptr %12, align 8, !tbaa !11
  %582 = load i64, ptr %5, align 8, !tbaa !11
  %583 = sub nsw i64 %582, 1
  %584 = icmp sle i64 %581, %583
  br i1 %584, label %585, label %633

585:                                              ; preds = %580
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %586

586:                                              ; preds = %626, %585
  %587 = load i64, ptr %13, align 8, !tbaa !11
  %588 = load i64, ptr %5, align 8, !tbaa !11
  %589 = sub nsw i64 %588, 1
  %590 = icmp sle i64 %587, %589
  br i1 %590, label %591, label %629

591:                                              ; preds = %586
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %592

592:                                              ; preds = %614, %591
  %593 = load i64, ptr %14, align 8, !tbaa !11
  %594 = load i64, ptr %5, align 8, !tbaa !11
  %595 = sub nsw i64 %594, 1
  %596 = icmp sle i64 %593, %595
  br i1 %596, label %597, label %617

597:                                              ; preds = %592
  %598 = load double, ptr %16, align 8, !tbaa !13
  %599 = load i64, ptr %14, align 8, !tbaa !11
  %600 = load i64, ptr %13, align 8, !tbaa !11
  %601 = load ptr, ptr %3, align 8, !tbaa !5
  %602 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %599, i64 noundef %600, ptr noundef %601)
  %603 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %604 = load ptr, ptr %603, align 8, !tbaa !15
  %605 = load i64, ptr %14, align 8, !tbaa !11
  %606 = getelementptr inbounds double, ptr %604, i64 %605
  %607 = load double, ptr %606, align 8, !tbaa !13
  %608 = fmul double %602, %607
  %609 = load i64, ptr %14, align 8, !tbaa !11
  %610 = load i64, ptr %12, align 8, !tbaa !11
  %611 = load ptr, ptr %3, align 8, !tbaa !5
  %612 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %609, i64 noundef %610, ptr noundef %611)
  %613 = call double @llvm.fmuladd.f64(double %608, double %612, double %598)
  store double %613, ptr %16, align 8, !tbaa !13
  br label %614

614:                                              ; preds = %597
  %615 = load i64, ptr %14, align 8, !tbaa !11
  %616 = add nsw i64 %615, 1
  store i64 %616, ptr %14, align 8, !tbaa !11
  br label %592, !llvm.loop !35

617:                                              ; preds = %592
  %618 = load double, ptr %16, align 8, !tbaa !13
  %619 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %620 = load ptr, ptr %619, align 8, !tbaa !15
  %621 = load i64, ptr %12, align 8, !tbaa !11
  %622 = getelementptr inbounds ptr, ptr %620, i64 %621
  %623 = load ptr, ptr %622, align 8, !tbaa !5
  %624 = load i64, ptr %13, align 8, !tbaa !11
  %625 = getelementptr inbounds double, ptr %623, i64 %624
  store double %618, ptr %625, align 8, !tbaa !13
  br label %626

626:                                              ; preds = %617
  %627 = load i64, ptr %13, align 8, !tbaa !11
  %628 = add nsw i64 %627, 1
  store i64 %628, ptr %13, align 8, !tbaa !11
  br label %586, !llvm.loop !36

629:                                              ; preds = %586
  br label %630

630:                                              ; preds = %629
  %631 = load i64, ptr %12, align 8, !tbaa !11
  %632 = add nsw i64 %631, 1
  store i64 %632, ptr %12, align 8, !tbaa !11
  br label %580, !llvm.loop !37

633:                                              ; preds = %580
  br label %689

634:                                              ; preds = %573
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %635

635:                                              ; preds = %685, %634
  %636 = load i64, ptr %12, align 8, !tbaa !11
  %637 = load i64, ptr %5, align 8, !tbaa !11
  %638 = sub nsw i64 %637, 1
  %639 = icmp sle i64 %636, %638
  br i1 %639, label %640, label %688

640:                                              ; preds = %635
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %641

641:                                              ; preds = %681, %640
  %642 = load i64, ptr %13, align 8, !tbaa !11
  %643 = load i64, ptr %5, align 8, !tbaa !11
  %644 = sub nsw i64 %643, 1
  %645 = icmp sle i64 %642, %644
  br i1 %645, label %646, label %684

646:                                              ; preds = %641
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %647

647:                                              ; preds = %669, %646
  %648 = load i64, ptr %14, align 8, !tbaa !11
  %649 = load i64, ptr %5, align 8, !tbaa !11
  %650 = sub nsw i64 %649, 1
  %651 = icmp sle i64 %648, %650
  br i1 %651, label %652, label %672

652:                                              ; preds = %647
  %653 = load double, ptr %16, align 8, !tbaa !13
  %654 = load i64, ptr %13, align 8, !tbaa !11
  %655 = load i64, ptr %14, align 8, !tbaa !11
  %656 = load ptr, ptr %3, align 8, !tbaa !5
  %657 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %654, i64 noundef %655, ptr noundef %656)
  %658 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %659 = load ptr, ptr %658, align 8, !tbaa !15
  %660 = load i64, ptr %14, align 8, !tbaa !11
  %661 = getelementptr inbounds double, ptr %659, i64 %660
  %662 = load double, ptr %661, align 8, !tbaa !13
  %663 = fmul double %657, %662
  %664 = load i64, ptr %12, align 8, !tbaa !11
  %665 = load i64, ptr %14, align 8, !tbaa !11
  %666 = load ptr, ptr %3, align 8, !tbaa !5
  %667 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %664, i64 noundef %665, ptr noundef %666)
  %668 = call double @llvm.fmuladd.f64(double %663, double %667, double %653)
  store double %668, ptr %16, align 8, !tbaa !13
  br label %669

669:                                              ; preds = %652
  %670 = load i64, ptr %14, align 8, !tbaa !11
  %671 = add nsw i64 %670, 1
  store i64 %671, ptr %14, align 8, !tbaa !11
  br label %647, !llvm.loop !38

672:                                              ; preds = %647
  %673 = load double, ptr %16, align 8, !tbaa !13
  %674 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %675 = load ptr, ptr %674, align 8, !tbaa !15
  %676 = load i64, ptr %12, align 8, !tbaa !11
  %677 = getelementptr inbounds ptr, ptr %675, i64 %676
  %678 = load ptr, ptr %677, align 8, !tbaa !5
  %679 = load i64, ptr %13, align 8, !tbaa !11
  %680 = getelementptr inbounds double, ptr %678, i64 %679
  store double %673, ptr %680, align 8, !tbaa !13
  br label %681

681:                                              ; preds = %672
  %682 = load i64, ptr %13, align 8, !tbaa !11
  %683 = add nsw i64 %682, 1
  store i64 %683, ptr %13, align 8, !tbaa !11
  br label %641, !llvm.loop !39

684:                                              ; preds = %641
  br label %685

685:                                              ; preds = %684
  %686 = load i64, ptr %12, align 8, !tbaa !11
  %687 = add nsw i64 %686, 1
  store i64 %687, ptr %12, align 8, !tbaa !11
  br label %635, !llvm.loop !40

688:                                              ; preds = %635
  br label %689

689:                                              ; preds = %688, %633
  %690 = load i64, ptr %5, align 8, !tbaa !11
  %691 = sub nsw i64 %690, 1
  store i64 %691, ptr %12, align 8, !tbaa !11
  br label %692

692:                                              ; preds = %712, %689
  %693 = load i64, ptr %12, align 8, !tbaa !11
  %694 = icmp sge i64 %693, 0
  br i1 %694, label %695, label %715

695:                                              ; preds = %692
  %696 = load i64, ptr %12, align 8, !tbaa !11
  %697 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %698 = load ptr, ptr %697, align 8, !tbaa !15
  %699 = load i64, ptr %12, align 8, !tbaa !11
  %700 = getelementptr inbounds i64, ptr %698, i64 %699
  %701 = load i64, ptr %700, align 8, !tbaa !11
  %702 = load i64, ptr %5, align 8, !tbaa !11
  %703 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %9, i64 noundef %696, i64 noundef %701, i64 noundef %702, ptr noundef %703)
  %704 = load i64, ptr %12, align 8, !tbaa !11
  %705 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %706 = load ptr, ptr %705, align 8, !tbaa !15
  %707 = load i64, ptr %12, align 8, !tbaa !11
  %708 = getelementptr inbounds i64, ptr %706, i64 %707
  %709 = load i64, ptr %708, align 8, !tbaa !11
  %710 = load i64, ptr %5, align 8, !tbaa !11
  %711 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %9, i64 noundef %704, i64 noundef %709, i64 noundef %710, ptr noundef %711)
  br label %712

712:                                              ; preds = %695
  %713 = load i64, ptr %12, align 8, !tbaa !11
  %714 = add nsw i64 %713, -1
  store i64 %714, ptr %12, align 8, !tbaa !11
  br label %692, !llvm.loop !41

715:                                              ; preds = %692
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %716

716:                                              ; preds = %753, %715
  %717 = load i64, ptr %12, align 8, !tbaa !11
  %718 = load i64, ptr %5, align 8, !tbaa !11
  %719 = sub nsw i64 %718, 1
  %720 = icmp sle i64 %717, %719
  br i1 %720, label %721, label %756

721:                                              ; preds = %716
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %722

722:                                              ; preds = %749, %721
  %723 = load i64, ptr %13, align 8, !tbaa !11
  %724 = load i64, ptr %5, align 8, !tbaa !11
  %725 = sub nsw i64 %724, 1
  %726 = icmp sle i64 %723, %725
  br i1 %726, label %727, label %752

727:                                              ; preds = %722
  %728 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %729 = load ptr, ptr %728, align 8, !tbaa !15
  %730 = load i64, ptr %12, align 8, !tbaa !11
  %731 = getelementptr inbounds ptr, ptr %729, i64 %730
  %732 = load ptr, ptr %731, align 8, !tbaa !5
  %733 = load i64, ptr %13, align 8, !tbaa !11
  %734 = getelementptr inbounds double, ptr %732, i64 %733
  %735 = load double, ptr %734, align 8, !tbaa !13
  %736 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %737 = load ptr, ptr %736, align 8, !tbaa !15
  %738 = load i64, ptr %12, align 8, !tbaa !11
  %739 = getelementptr inbounds ptr, ptr %737, i64 %738
  %740 = load ptr, ptr %739, align 8, !tbaa !5
  %741 = load i64, ptr %13, align 8, !tbaa !11
  %742 = getelementptr inbounds double, ptr %740, i64 %741
  %743 = load double, ptr %742, align 8, !tbaa !13
  %744 = fsub double %735, %743
  %745 = load ptr, ptr %3, align 8, !tbaa !5
  %746 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %744, ptr noundef %745)
  %747 = load double, ptr %21, align 8, !tbaa !13
  %748 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %746, double noundef %747)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %748, ptr noundef @.str.19, i32 noundef 24522, ptr noundef @.str.358)
  br label %749

749:                                              ; preds = %727
  %750 = load i64, ptr %13, align 8, !tbaa !11
  %751 = add nsw i64 %750, 1
  store i64 %751, ptr %13, align 8, !tbaa !11
  br label %722, !llvm.loop !42

752:                                              ; preds = %722
  br label %753

753:                                              ; preds = %752
  %754 = load i64, ptr %12, align 8, !tbaa !11
  %755 = add nsw i64 %754, 1
  store i64 %755, ptr %12, align 8, !tbaa !11
  br label %716, !llvm.loop !43

756:                                              ; preds = %716
  br label %757

757:                                              ; preds = %756
  %758 = load i64, ptr %36, align 8, !tbaa !11
  %759 = add nsw i64 %758, 1
  store i64 %759, ptr %36, align 8, !tbaa !11
  br label %287, !llvm.loop !44

760:                                              ; preds = %287
  store i64 0, ptr %36, align 8, !tbaa !11
  br label %761

761:                                              ; preds = %823, %760
  %762 = load i64, ptr %36, align 8, !tbaa !11
  %763 = icmp sle i64 %762, 1
  br i1 %763, label %764, label %826

764:                                              ; preds = %761
  %765 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %22, ptr noundef %24, ptr noundef %765)
  %766 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sparseconverttohashEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %766)
  %767 = load i64, ptr %5, align 8, !tbaa !11
  %768 = load ptr, ptr %3, align 8, !tbaa !5
  %769 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %767, ptr noundef %768)
  store i64 %769, ptr %14, align 8, !tbaa !11
  %770 = load i64, ptr %14, align 8, !tbaa !11
  %771 = load i64, ptr %14, align 8, !tbaa !11
  %772 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %24, i64 noundef %770, i64 noundef %771, double noundef 0.000000e+00, ptr noundef %772)
  %773 = load i64, ptr %33, align 8, !tbaa !11
  %774 = add nsw i64 %773, 1
  %775 = load ptr, ptr %3, align 8, !tbaa !5
  %776 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %774, ptr noundef %775)
  %777 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef %24, i64 noundef %776, ptr noundef %777)
  %778 = load i64, ptr %36, align 8, !tbaa !11
  %779 = icmp eq i64 %778, 0
  br i1 %779, label %780, label %785

780:                                              ; preds = %764
  %781 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %782 = trunc i8 %781 to i1
  %783 = load ptr, ptr %3, align 8, !tbaa !5
  %784 = call noundef zeroext i1 @_ZN11alglib_impl14sparsecholeskyEPNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %782, ptr noundef %783)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %784, ptr noundef @.str.19, i32 noundef 24543, ptr noundef @.str.359)
  br label %785

785:                                              ; preds = %780, %764
  %786 = load i64, ptr %36, align 8, !tbaa !11
  %787 = icmp eq i64 %786, 1
  br i1 %787, label %788, label %793

788:                                              ; preds = %785
  %789 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %790 = trunc i8 %789 to i1
  %791 = load ptr, ptr %3, align 8, !tbaa !5
  %792 = call noundef zeroext i1 @_ZN11alglib_impl15sparsecholeskypEPNS_12sparsematrixEbPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %790, ptr noundef %27, ptr noundef %791)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %792, ptr noundef @.str.19, i32 noundef 24547, ptr noundef @.str.360)
  br label %793

793:                                              ; preds = %788, %785
  %794 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %22, ptr noundef %24, ptr noundef %794)
  %795 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sparseconverttohashEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %795)
  %796 = load i64, ptr %5, align 8, !tbaa !11
  %797 = load ptr, ptr %3, align 8, !tbaa !5
  %798 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %796, ptr noundef %797)
  store i64 %798, ptr %14, align 8, !tbaa !11
  %799 = load i64, ptr %14, align 8, !tbaa !11
  %800 = load i64, ptr %14, align 8, !tbaa !11
  %801 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %24, i64 noundef %799, i64 noundef %800, double noundef -1.000000e+10, ptr noundef %801)
  %802 = load i64, ptr %33, align 8, !tbaa !11
  %803 = add nsw i64 %802, 1
  %804 = load ptr, ptr %3, align 8, !tbaa !5
  %805 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %803, ptr noundef %804)
  %806 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef %24, i64 noundef %805, ptr noundef %806)
  %807 = load i64, ptr %36, align 8, !tbaa !11
  %808 = icmp eq i64 %807, 0
  br i1 %808, label %809, label %814

809:                                              ; preds = %793
  %810 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %811 = trunc i8 %810 to i1
  %812 = load ptr, ptr %3, align 8, !tbaa !5
  %813 = call noundef zeroext i1 @_ZN11alglib_impl14sparsecholeskyEPNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %811, ptr noundef %812)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %813, ptr noundef @.str.19, i32 noundef 24560, ptr noundef @.str.361)
  br label %814

814:                                              ; preds = %809, %793
  %815 = load i64, ptr %36, align 8, !tbaa !11
  %816 = icmp eq i64 %815, 1
  br i1 %816, label %817, label %822

817:                                              ; preds = %814
  %818 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %819 = trunc i8 %818 to i1
  %820 = load ptr, ptr %3, align 8, !tbaa !5
  %821 = call noundef zeroext i1 @_ZN11alglib_impl15sparsecholeskypEPNS_12sparsematrixEbPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %819, ptr noundef %27, ptr noundef %820)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %821, ptr noundef @.str.19, i32 noundef 24564, ptr noundef @.str.362)
  br label %822

822:                                              ; preds = %817, %814
  br label %823

823:                                              ; preds = %822
  %824 = load i64, ptr %36, align 8, !tbaa !11
  %825 = add nsw i64 %824, 1
  store i64 %825, ptr %36, align 8, !tbaa !11
  br label %761, !llvm.loop !45

826:                                              ; preds = %761
  %827 = load i64, ptr %6, align 8, !tbaa !11
  %828 = icmp eq i64 %827, 0
  br i1 %828, label %829, label %830

829:                                              ; preds = %826
  br label %833

830:                                              ; preds = %826
  %831 = load i64, ptr %6, align 8, !tbaa !11
  %832 = sdiv i64 %831, 2
  store i64 %832, ptr %6, align 8, !tbaa !11
  br label %81, !llvm.loop !46

833:                                              ; preds = %829
  br label %834

834:                                              ; preds = %833
  %835 = load i64, ptr %5, align 8, !tbaa !11
  %836 = add nsw i64 %835, 1
  store i64 %836, ptr %5, align 8, !tbaa !11
  br label %72, !llvm.loop !47

837:                                              ; preds = %72
  store i64 1, ptr %5, align 8, !tbaa !11
  br label %838

838:                                              ; preds = %1439, %837
  %839 = load i64, ptr %5, align 8, !tbaa !11
  %840 = icmp sle i64 %839, 30
  br i1 %840, label %841, label %1442

841:                                              ; preds = %838
  %842 = load i64, ptr %5, align 8, !tbaa !11
  %843 = load i64, ptr %5, align 8, !tbaa !11
  %844 = mul nsw i64 %842, %843
  %845 = load i64, ptr %5, align 8, !tbaa !11
  %846 = sub nsw i64 %844, %845
  store i64 %846, ptr %6, align 8, !tbaa !11
  br label %847

847:                                              ; preds = %1435, %841
  %848 = load i64, ptr %5, align 8, !tbaa !11
  %849 = icmp sgt i64 %848, 1
  br i1 %849, label %850, label %860

850:                                              ; preds = %847
  %851 = load i64, ptr %6, align 8, !tbaa !11
  %852 = sitofp i64 %851 to double
  %853 = load i64, ptr %5, align 8, !tbaa !11
  %854 = load i64, ptr %5, align 8, !tbaa !11
  %855 = mul nsw i64 %853, %854
  %856 = load i64, ptr %5, align 8, !tbaa !11
  %857 = sub nsw i64 %855, %856
  %858 = sitofp i64 %857 to double
  %859 = fdiv double %852, %858
  store double %859, ptr %7, align 8, !tbaa !13
  br label %861

860:                                              ; preds = %847
  store double 1.000000e+00, ptr %7, align 8, !tbaa !13
  br label %861

861:                                              ; preds = %860, %850
  %862 = load i64, ptr %5, align 8, !tbaa !11
  %863 = load i64, ptr %5, align 8, !tbaa !11
  %864 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %8, i64 noundef %862, i64 noundef %863, ptr noundef %864)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %865

865:                                              ; preds = %950, %861
  %866 = load i64, ptr %12, align 8, !tbaa !11
  %867 = load i64, ptr %5, align 8, !tbaa !11
  %868 = sub nsw i64 %867, 1
  %869 = icmp sle i64 %866, %868
  br i1 %869, label %870, label %953

870:                                              ; preds = %865
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %871

871:                                              ; preds = %946, %870
  %872 = load i64, ptr %13, align 8, !tbaa !11
  %873 = load i64, ptr %12, align 8, !tbaa !11
  %874 = icmp sle i64 %872, %873
  br i1 %874, label %875, label %949

875:                                              ; preds = %871
  %876 = load i64, ptr %12, align 8, !tbaa !11
  %877 = load i64, ptr %13, align 8, !tbaa !11
  %878 = icmp eq i64 %876, %877
  br i1 %878, label %879, label %895

879:                                              ; preds = %875
  %880 = load ptr, ptr %3, align 8, !tbaa !5
  %881 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %880)
  %882 = load ptr, ptr %3, align 8, !tbaa !5
  %883 = call noundef double @_ZN11alglib_impl7possignEdPNS_8ae_stateE(double noundef %881, ptr noundef %882)
  %884 = load ptr, ptr %3, align 8, !tbaa !5
  %885 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %884)
  %886 = fadd double 1.000000e+00, %885
  %887 = fmul double %883, %886
  %888 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %889 = load ptr, ptr %888, align 8, !tbaa !15
  %890 = load i64, ptr %12, align 8, !tbaa !11
  %891 = getelementptr inbounds ptr, ptr %889, i64 %890
  %892 = load ptr, ptr %891, align 8, !tbaa !5
  %893 = load i64, ptr %12, align 8, !tbaa !11
  %894 = getelementptr inbounds double, ptr %892, i64 %893
  store double %887, ptr %894, align 8, !tbaa !13
  br label %946

895:                                              ; preds = %875
  %896 = load ptr, ptr %3, align 8, !tbaa !5
  %897 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %896)
  %898 = load double, ptr %7, align 8, !tbaa !13
  %899 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %897, double noundef %898)
  br i1 %899, label %900, label %930

900:                                              ; preds = %895
  %901 = load i64, ptr %5, align 8, !tbaa !11
  %902 = sitofp i64 %901 to double
  %903 = fdiv double 5.000000e-01, %902
  %904 = load ptr, ptr %3, align 8, !tbaa !5
  %905 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %904)
  %906 = fsub double %905, 5.000000e-01
  %907 = fmul double %903, %906
  %908 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %909 = load ptr, ptr %908, align 8, !tbaa !15
  %910 = load i64, ptr %12, align 8, !tbaa !11
  %911 = getelementptr inbounds ptr, ptr %909, i64 %910
  %912 = load ptr, ptr %911, align 8, !tbaa !5
  %913 = load i64, ptr %13, align 8, !tbaa !11
  %914 = getelementptr inbounds double, ptr %912, i64 %913
  store double %907, ptr %914, align 8, !tbaa !13
  %915 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %916 = load ptr, ptr %915, align 8, !tbaa !15
  %917 = load i64, ptr %12, align 8, !tbaa !11
  %918 = getelementptr inbounds ptr, ptr %916, i64 %917
  %919 = load ptr, ptr %918, align 8, !tbaa !5
  %920 = load i64, ptr %13, align 8, !tbaa !11
  %921 = getelementptr inbounds double, ptr %919, i64 %920
  %922 = load double, ptr %921, align 8, !tbaa !13
  %923 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %924 = load ptr, ptr %923, align 8, !tbaa !15
  %925 = load i64, ptr %13, align 8, !tbaa !11
  %926 = getelementptr inbounds ptr, ptr %924, i64 %925
  %927 = load ptr, ptr %926, align 8, !tbaa !5
  %928 = load i64, ptr %12, align 8, !tbaa !11
  %929 = getelementptr inbounds double, ptr %927, i64 %928
  store double %922, ptr %929, align 8, !tbaa !13
  br label %945

930:                                              ; preds = %895
  %931 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %932 = load ptr, ptr %931, align 8, !tbaa !15
  %933 = load i64, ptr %12, align 8, !tbaa !11
  %934 = getelementptr inbounds ptr, ptr %932, i64 %933
  %935 = load ptr, ptr %934, align 8, !tbaa !5
  %936 = load i64, ptr %13, align 8, !tbaa !11
  %937 = getelementptr inbounds double, ptr %935, i64 %936
  store double 0.000000e+00, ptr %937, align 8, !tbaa !13
  %938 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %939 = load ptr, ptr %938, align 8, !tbaa !15
  %940 = load i64, ptr %13, align 8, !tbaa !11
  %941 = getelementptr inbounds ptr, ptr %939, i64 %940
  %942 = load ptr, ptr %941, align 8, !tbaa !5
  %943 = load i64, ptr %12, align 8, !tbaa !11
  %944 = getelementptr inbounds double, ptr %942, i64 %943
  store double 0.000000e+00, ptr %944, align 8, !tbaa !13
  br label %945

945:                                              ; preds = %930, %900
  br label %946

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

949:                                              ; preds = %871
  br label %950

950:                                              ; preds = %949
  %951 = load i64, ptr %12, align 8, !tbaa !11
  %952 = add nsw i64 %951, 1
  store i64 %952, ptr %12, align 8, !tbaa !11
  br label %865, !llvm.loop !49

953:                                              ; preds = %865
  %954 = load ptr, ptr %3, align 8, !tbaa !5
  %955 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %954)
  %956 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %955, double noundef 5.000000e-01)
  %957 = zext i1 %956 to i8
  store i8 %957, ptr %19, align 1, !tbaa !9
  %958 = load i64, ptr %5, align 8, !tbaa !11
  %959 = load i64, ptr %5, align 8, !tbaa !11
  %960 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %958, i64 noundef %959, i64 noundef 0, ptr noundef %22, ptr noundef %960)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %961

961:                                              ; preds = %1003, %953
  %962 = load i64, ptr %12, align 8, !tbaa !11
  %963 = load i64, ptr %5, align 8, !tbaa !11
  %964 = sub nsw i64 %963, 1
  %965 = icmp sle i64 %962, %964
  br i1 %965, label %966, label %1006

966:                                              ; preds = %961
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %967

967:                                              ; preds = %999, %966
  %968 = load i64, ptr %13, align 8, !tbaa !11
  %969 = load i64, ptr %5, align 8, !tbaa !11
  %970 = sub nsw i64 %969, 1
  %971 = icmp sle i64 %968, %970
  br i1 %971, label %972, label %1002

972:                                              ; preds = %967
  %973 = load i64, ptr %13, align 8, !tbaa !11
  %974 = load i64, ptr %12, align 8, !tbaa !11
  %975 = icmp sle i64 %973, %974
  br i1 %975, label %976, label %979

976:                                              ; preds = %972
  %977 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %978 = trunc i8 %977 to i1
  br i1 %978, label %979, label %986

979:                                              ; preds = %976, %972
  %980 = load i64, ptr %13, align 8, !tbaa !11
  %981 = load i64, ptr %12, align 8, !tbaa !11
  %982 = icmp sge i64 %980, %981
  br i1 %982, label %983, label %998

983:                                              ; preds = %979
  %984 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %985 = trunc i8 %984 to i1
  br i1 %985, label %986, label %998

986:                                              ; preds = %983, %976
  %987 = load i64, ptr %12, align 8, !tbaa !11
  %988 = load i64, ptr %13, align 8, !tbaa !11
  %989 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %990 = load ptr, ptr %989, align 8, !tbaa !15
  %991 = load i64, ptr %12, align 8, !tbaa !11
  %992 = getelementptr inbounds ptr, ptr %990, i64 %991
  %993 = load ptr, ptr %992, align 8, !tbaa !5
  %994 = load i64, ptr %13, align 8, !tbaa !11
  %995 = getelementptr inbounds double, ptr %993, i64 %994
  %996 = load double, ptr %995, align 8, !tbaa !13
  %997 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %987, i64 noundef %988, double noundef %996, ptr noundef %997)
  br label %998

998:                                              ; preds = %986, %983, %979
  br label %999

999:                                              ; preds = %998
  %1000 = load i64, ptr %13, align 8, !tbaa !11
  %1001 = add nsw i64 %1000, 1
  store i64 %1001, ptr %13, align 8, !tbaa !11
  br label %967, !llvm.loop !50

1002:                                             ; preds = %967
  br label %1003

1003:                                             ; preds = %1002
  %1004 = load i64, ptr %12, align 8, !tbaa !11
  %1005 = add nsw i64 %1004, 1
  store i64 %1005, ptr %12, align 8, !tbaa !11
  br label %961, !llvm.loop !51

1006:                                             ; preds = %961
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1007

1007:                                             ; preds = %1049, %1006
  %1008 = load i64, ptr %12, align 8, !tbaa !11
  %1009 = load i64, ptr %5, align 8, !tbaa !11
  %1010 = sub nsw i64 %1009, 1
  %1011 = icmp sle i64 %1008, %1010
  br i1 %1011, label %1012, label %1052

1012:                                             ; preds = %1007
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1013

1013:                                             ; preds = %1045, %1012
  %1014 = load i64, ptr %13, align 8, !tbaa !11
  %1015 = load i64, ptr %5, align 8, !tbaa !11
  %1016 = sub nsw i64 %1015, 1
  %1017 = icmp sle i64 %1014, %1016
  br i1 %1017, label %1018, label %1048

1018:                                             ; preds = %1013
  %1019 = load i64, ptr %13, align 8, !tbaa !11
  %1020 = load i64, ptr %12, align 8, !tbaa !11
  %1021 = icmp slt i64 %1019, %1020
  br i1 %1021, label %1022, label %1025

1022:                                             ; preds = %1018
  %1023 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1024 = trunc i8 %1023 to i1
  br i1 %1024, label %1032, label %1025

1025:                                             ; preds = %1022, %1018
  %1026 = load i64, ptr %13, align 8, !tbaa !11
  %1027 = load i64, ptr %12, align 8, !tbaa !11
  %1028 = icmp sgt i64 %1026, %1027
  br i1 %1028, label %1029, label %1044

1029:                                             ; preds = %1025
  %1030 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1031 = trunc i8 %1030 to i1
  br i1 %1031, label %1044, label %1032

1032:                                             ; preds = %1029, %1022
  %1033 = load ptr, ptr %3, align 8, !tbaa !5
  %1034 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1033)
  %1035 = load double, ptr %7, align 8, !tbaa !13
  %1036 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1034, double noundef %1035)
  br i1 %1036, label %1037, label %1043

1037:                                             ; preds = %1032
  %1038 = load i64, ptr %12, align 8, !tbaa !11
  %1039 = load i64, ptr %13, align 8, !tbaa !11
  %1040 = load ptr, ptr %3, align 8, !tbaa !5
  %1041 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1040)
  %1042 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %1038, i64 noundef %1039, double noundef %1041, ptr noundef %1042)
  br label %1043

1043:                                             ; preds = %1037, %1032
  br label %1044

1044:                                             ; preds = %1043, %1029, %1025
  br label %1045

1045:                                             ; preds = %1044
  %1046 = load i64, ptr %13, align 8, !tbaa !11
  %1047 = add nsw i64 %1046, 1
  store i64 %1047, ptr %13, align 8, !tbaa !11
  br label %1013, !llvm.loop !52

1048:                                             ; preds = %1013
  br label %1049

1049:                                             ; preds = %1048
  %1050 = load i64, ptr %12, align 8, !tbaa !11
  %1051 = add nsw i64 %1050, 1
  store i64 %1051, ptr %12, align 8, !tbaa !11
  br label %1007, !llvm.loop !53

1052:                                             ; preds = %1007
  %1053 = load i64, ptr %33, align 8, !tbaa !11
  %1054 = add nsw i64 %1053, 1
  %1055 = load ptr, ptr %3, align 8, !tbaa !5
  %1056 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %1054, ptr noundef %1055)
  %1057 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef %22, i64 noundef %1056, ptr noundef %1057)
  %1058 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %22, ptr noundef %24, ptr noundef %1058)
  %1059 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %24, ptr noundef %25, ptr noundef %1059)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1060

1060:                                             ; preds = %1086, %1052
  %1061 = load i64, ptr %12, align 8, !tbaa !11
  %1062 = load i64, ptr %5, align 8, !tbaa !11
  %1063 = sub nsw i64 %1062, 1
  %1064 = icmp sle i64 %1061, %1063
  br i1 %1064, label %1065, label %1089

1065:                                             ; preds = %1060
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1066

1066:                                             ; preds = %1082, %1065
  %1067 = load i64, ptr %13, align 8, !tbaa !11
  %1068 = load i64, ptr %5, align 8, !tbaa !11
  %1069 = sub nsw i64 %1068, 1
  %1070 = icmp sle i64 %1067, %1069
  br i1 %1070, label %1071, label %1085

1071:                                             ; preds = %1066
  %1072 = load i64, ptr %12, align 8, !tbaa !11
  %1073 = load i64, ptr %13, align 8, !tbaa !11
  %1074 = load ptr, ptr %3, align 8, !tbaa !5
  %1075 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %25, i64 noundef %1072, i64 noundef %1073, ptr noundef %1074)
  br i1 %1075, label %1076, label %1081

1076:                                             ; preds = %1071
  %1077 = load i64, ptr %12, align 8, !tbaa !11
  %1078 = load i64, ptr %13, align 8, !tbaa !11
  %1079 = load ptr, ptr %3, align 8, !tbaa !5
  %1080 = call noundef zeroext i1 @_ZN11alglib_impl21sparserewriteexistingEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %25, i64 noundef %1077, i64 noundef %1078, double noundef 1.000000e+00, ptr noundef %1079)
  br label %1081

1081:                                             ; preds = %1076, %1071
  br label %1082

1082:                                             ; preds = %1081
  %1083 = load i64, ptr %13, align 8, !tbaa !11
  %1084 = add nsw i64 %1083, 1
  store i64 %1084, ptr %13, align 8, !tbaa !11
  br label %1066, !llvm.loop !54

1085:                                             ; preds = %1066
  br label %1086

1086:                                             ; preds = %1085
  %1087 = load i64, ptr %12, align 8, !tbaa !11
  %1088 = add nsw i64 %1087, 1
  store i64 %1088, ptr %12, align 8, !tbaa !11
  br label %1060, !llvm.loop !55

1089:                                             ; preds = %1060
  store i64 1, ptr %40, align 8, !tbaa !11
  %1090 = load i64, ptr %34, align 8, !tbaa !11
  %1091 = load i64, ptr %35, align 8, !tbaa !11
  %1092 = load i64, ptr %34, align 8, !tbaa !11
  %1093 = sub nsw i64 %1091, %1092
  %1094 = add nsw i64 %1093, 1
  %1095 = load ptr, ptr %3, align 8, !tbaa !5
  %1096 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %1094, ptr noundef %1095)
  %1097 = add nsw i64 %1090, %1096
  store i64 %1097, ptr %39, align 8, !tbaa !11
  %1098 = load ptr, ptr %3, align 8, !tbaa !5
  %1099 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1098)
  %1100 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1099, double noundef 0.000000e+00)
  br i1 %1100, label %1101, label %1123

1101:                                             ; preds = %1089
  %1102 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1103 = trunc i8 %1102 to i1
  %1104 = load i64, ptr %40, align 8, !tbaa !11
  %1105 = load i64, ptr %39, align 8, !tbaa !11
  %1106 = load ptr, ptr %3, align 8, !tbaa !5
  %1107 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %1103, i64 noundef %1104, i64 noundef %1105, ptr noundef %37, ptr noundef %1106)
  br i1 %1107, label %1112, label %1108

1108:                                             ; preds = %1101
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24680, ptr noundef @.str.363)
  %1109 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1109)
  %1110 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1111 = trunc i8 %1110 to i1
  store i1 %1111, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1112:                                             ; preds = %1101
  %1113 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef %24, ptr noundef %1113)
  %1114 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1115 = trunc i8 %1114 to i1
  %1116 = load ptr, ptr %3, align 8, !tbaa !5
  %1117 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %1115, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %1116)
  br i1 %1117, label %1122, label %1118

1118:                                             ; preds = %1112
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24687, ptr noundef @.str.364)
  %1119 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1119)
  %1120 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1121 = trunc i8 %1120 to i1
  store i1 %1121, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1122:                                             ; preds = %1112
  br label %1148

1123:                                             ; preds = %1089
  %1124 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1125 = trunc i8 %1124 to i1
  %1126 = load i64, ptr %40, align 8, !tbaa !11
  %1127 = load i64, ptr %39, align 8, !tbaa !11
  %1128 = load ptr, ptr %3, align 8, !tbaa !5
  %1129 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %25, i1 noundef zeroext %1125, i64 noundef %1126, i64 noundef %1127, ptr noundef %37, ptr noundef %1128)
  br i1 %1129, label %1134, label %1130

1130:                                             ; preds = %1123
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24700, ptr noundef @.str.365)
  %1131 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1131)
  %1132 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1133 = trunc i8 %1132 to i1
  store i1 %1133, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1134:                                             ; preds = %1123
  %1135 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1136 = trunc i8 %1135 to i1
  %1137 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef %37, ptr noundef %24, i1 noundef zeroext %1136, ptr noundef %1137)
  %1138 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef %24, ptr noundef %1138)
  %1139 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1140 = trunc i8 %1139 to i1
  %1141 = load ptr, ptr %3, align 8, !tbaa !5
  %1142 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %1140, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %1141)
  br i1 %1142, label %1147, label %1143

1143:                                             ; preds = %1134
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24708, ptr noundef @.str.366)
  %1144 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1144)
  %1145 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1146 = trunc i8 %1145 to i1
  store i1 %1146, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1147:                                             ; preds = %1134
  br label %1148

1148:                                             ; preds = %1147, %1122
  %1149 = load ptr, ptr %3, align 8, !tbaa !5
  %1150 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %1149)
  br i1 %1150, label %1151, label %1161

1151:                                             ; preds = %1148
  %1152 = load ptr, ptr %3, align 8, !tbaa !5
  %1153 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %1152)
  %1154 = load i64, ptr %5, align 8, !tbaa !11
  %1155 = icmp ne i64 %1153, %1154
  br i1 %1155, label %1161, label %1156

1156:                                             ; preds = %1151
  %1157 = load ptr, ptr %3, align 8, !tbaa !5
  %1158 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %1157)
  %1159 = load i64, ptr %5, align 8, !tbaa !11
  %1160 = icmp ne i64 %1158, %1159
  br label %1161

1161:                                             ; preds = %1156, %1151, %1148
  %1162 = phi i1 [ true, %1151 ], [ true, %1148 ], [ %1160, %1156 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1162, ptr noundef @.str.19, i32 noundef 24717, ptr noundef @.str.367)
  %1163 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 0
  %1164 = load i64, ptr %1163, align 8, !tbaa !29
  %1165 = load i64, ptr %5, align 8, !tbaa !11
  %1166 = icmp ne i64 %1164, %1165
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1166, ptr noundef @.str.19, i32 noundef 24718, ptr noundef @.str.368)
  %1167 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 0
  %1168 = load i64, ptr %1167, align 8, !tbaa !29
  %1169 = load i64, ptr %5, align 8, !tbaa !11
  %1170 = icmp ne i64 %1168, %1169
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1170, ptr noundef @.str.19, i32 noundef 24719, ptr noundef @.str.369)
  %1171 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1172 = trunc i8 %1171 to i1
  br i1 %1172, label %1173, label %1177

1173:                                             ; preds = %1161
  %1174 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1174)
  %1175 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1176 = trunc i8 %1175 to i1
  store i1 %1176, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1177:                                             ; preds = %1161
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1178

1178:                                             ; preds = %1209, %1177
  %1179 = load i64, ptr %12, align 8, !tbaa !11
  %1180 = load i64, ptr %5, align 8, !tbaa !11
  %1181 = sub nsw i64 %1180, 1
  %1182 = icmp sle i64 %1179, %1181
  br i1 %1182, label %1183, label %1212

1183:                                             ; preds = %1178
  %1184 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1185 = load ptr, ptr %1184, align 8, !tbaa !15
  %1186 = load i64, ptr %12, align 8, !tbaa !11
  %1187 = getelementptr inbounds i64, ptr %1185, i64 %1186
  %1188 = load i64, ptr %1187, align 8, !tbaa !11
  %1189 = load i64, ptr %12, align 8, !tbaa !11
  %1190 = icmp slt i64 %1188, %1189
  br i1 %1190, label %1199, label %1191

1191:                                             ; preds = %1183
  %1192 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1193 = load ptr, ptr %1192, align 8, !tbaa !15
  %1194 = load i64, ptr %12, align 8, !tbaa !11
  %1195 = getelementptr inbounds i64, ptr %1193, i64 %1194
  %1196 = load i64, ptr %1195, align 8, !tbaa !11
  %1197 = load i64, ptr %5, align 8, !tbaa !11
  %1198 = icmp sge i64 %1196, %1197
  br label %1199

1199:                                             ; preds = %1191, %1183
  %1200 = phi i1 [ true, %1183 ], [ %1198, %1191 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1200, ptr noundef @.str.19, i32 noundef 24727, ptr noundef @.str.370)
  %1201 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %1202 = load ptr, ptr %1201, align 8, !tbaa !15
  %1203 = load i64, ptr %12, align 8, !tbaa !11
  %1204 = getelementptr inbounds double, ptr %1202, i64 %1203
  %1205 = load double, ptr %1204, align 8, !tbaa !13
  %1206 = load ptr, ptr %3, align 8, !tbaa !5
  %1207 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1205, ptr noundef %1206)
  %1208 = xor i1 %1207, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1208, ptr noundef @.str.19, i32 noundef 24728, ptr noundef @.str.371)
  br label %1209

1209:                                             ; preds = %1199
  %1210 = load i64, ptr %12, align 8, !tbaa !11
  %1211 = add nsw i64 %1210, 1
  store i64 %1211, ptr %12, align 8, !tbaa !11
  br label %1178, !llvm.loop !56

1212:                                             ; preds = %1178
  %1213 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1214 = trunc i8 %1213 to i1
  br i1 %1214, label %1215, label %1219

1215:                                             ; preds = %1212
  %1216 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1216)
  %1217 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1218 = trunc i8 %1217 to i1
  store i1 %1218, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1219:                                             ; preds = %1212
  store i64 0, ptr %17, align 8, !tbaa !11
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1220

1220:                                             ; preds = %1239, %1219
  %1221 = load ptr, ptr %3, align 8, !tbaa !5
  %1222 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef %24, ptr noundef %17, ptr noundef %18, ptr noundef %12, ptr noundef %13, ptr noundef %16, ptr noundef %1221)
  br i1 %1222, label %1223, label %1241

1223:                                             ; preds = %1220
  %1224 = load i64, ptr %13, align 8, !tbaa !11
  %1225 = load i64, ptr %12, align 8, !tbaa !11
  %1226 = icmp slt i64 %1224, %1225
  br i1 %1226, label %1227, label %1230

1227:                                             ; preds = %1223
  %1228 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1229 = trunc i8 %1228 to i1
  br label %1230

1230:                                             ; preds = %1227, %1223
  %1231 = phi i1 [ false, %1223 ], [ %1229, %1227 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1231, ptr noundef @.str.19, i32 noundef 24739, ptr noundef @.str.372)
  %1232 = load i64, ptr %13, align 8, !tbaa !11
  %1233 = load i64, ptr %12, align 8, !tbaa !11
  %1234 = icmp sgt i64 %1232, %1233
  br i1 %1234, label %1235, label %1239

1235:                                             ; preds = %1230
  %1236 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1237 = trunc i8 %1236 to i1
  %1238 = xor i1 %1237, true
  br label %1239

1239:                                             ; preds = %1235, %1230
  %1240 = phi i1 [ false, %1230 ], [ %1238, %1235 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1240, ptr noundef @.str.19, i32 noundef 24740, ptr noundef @.str.373)
  br label %1220, !llvm.loop !57

1241:                                             ; preds = %1220
  %1242 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1243 = trunc i8 %1242 to i1
  br i1 %1243, label %1244, label %1248

1244:                                             ; preds = %1241
  %1245 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1245)
  %1246 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1247 = trunc i8 %1246 to i1
  store i1 %1247, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1248:                                             ; preds = %1241
  %1249 = load i64, ptr %5, align 8, !tbaa !11
  %1250 = load i64, ptr %5, align 8, !tbaa !11
  %1251 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %9, i64 noundef %1249, i64 noundef %1250, ptr noundef %1251)
  %1252 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1253 = trunc i8 %1252 to i1
  br i1 %1253, label %1254, label %1309

1254:                                             ; preds = %1248
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1255

1255:                                             ; preds = %1305, %1254
  %1256 = load i64, ptr %12, align 8, !tbaa !11
  %1257 = load i64, ptr %5, align 8, !tbaa !11
  %1258 = sub nsw i64 %1257, 1
  %1259 = icmp sle i64 %1256, %1258
  br i1 %1259, label %1260, label %1308

1260:                                             ; preds = %1255
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1261

1261:                                             ; preds = %1301, %1260
  %1262 = load i64, ptr %13, align 8, !tbaa !11
  %1263 = load i64, ptr %5, align 8, !tbaa !11
  %1264 = sub nsw i64 %1263, 1
  %1265 = icmp sle i64 %1262, %1264
  br i1 %1265, label %1266, label %1304

1266:                                             ; preds = %1261
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %1267

1267:                                             ; preds = %1289, %1266
  %1268 = load i64, ptr %14, align 8, !tbaa !11
  %1269 = load i64, ptr %5, align 8, !tbaa !11
  %1270 = sub nsw i64 %1269, 1
  %1271 = icmp sle i64 %1268, %1270
  br i1 %1271, label %1272, label %1292

1272:                                             ; preds = %1267
  %1273 = load double, ptr %16, align 8, !tbaa !13
  %1274 = load i64, ptr %14, align 8, !tbaa !11
  %1275 = load i64, ptr %13, align 8, !tbaa !11
  %1276 = load ptr, ptr %3, align 8, !tbaa !5
  %1277 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %1274, i64 noundef %1275, ptr noundef %1276)
  %1278 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %1279 = load ptr, ptr %1278, align 8, !tbaa !15
  %1280 = load i64, ptr %14, align 8, !tbaa !11
  %1281 = getelementptr inbounds double, ptr %1279, i64 %1280
  %1282 = load double, ptr %1281, align 8, !tbaa !13
  %1283 = fmul double %1277, %1282
  %1284 = load i64, ptr %14, align 8, !tbaa !11
  %1285 = load i64, ptr %12, align 8, !tbaa !11
  %1286 = load ptr, ptr %3, align 8, !tbaa !5
  %1287 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %1284, i64 noundef %1285, ptr noundef %1286)
  %1288 = call double @llvm.fmuladd.f64(double %1283, double %1287, double %1273)
  store double %1288, ptr %16, align 8, !tbaa !13
  br label %1289

1289:                                             ; preds = %1272
  %1290 = load i64, ptr %14, align 8, !tbaa !11
  %1291 = add nsw i64 %1290, 1
  store i64 %1291, ptr %14, align 8, !tbaa !11
  br label %1267, !llvm.loop !58

1292:                                             ; preds = %1267
  %1293 = load double, ptr %16, align 8, !tbaa !13
  %1294 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %1295 = load ptr, ptr %1294, align 8, !tbaa !15
  %1296 = load i64, ptr %12, align 8, !tbaa !11
  %1297 = getelementptr inbounds ptr, ptr %1295, i64 %1296
  %1298 = load ptr, ptr %1297, align 8, !tbaa !5
  %1299 = load i64, ptr %13, align 8, !tbaa !11
  %1300 = getelementptr inbounds double, ptr %1298, i64 %1299
  store double %1293, ptr %1300, align 8, !tbaa !13
  br label %1301

1301:                                             ; preds = %1292
  %1302 = load i64, ptr %13, align 8, !tbaa !11
  %1303 = add nsw i64 %1302, 1
  store i64 %1303, ptr %13, align 8, !tbaa !11
  br label %1261, !llvm.loop !59

1304:                                             ; preds = %1261
  br label %1305

1305:                                             ; preds = %1304
  %1306 = load i64, ptr %12, align 8, !tbaa !11
  %1307 = add nsw i64 %1306, 1
  store i64 %1307, ptr %12, align 8, !tbaa !11
  br label %1255, !llvm.loop !60

1308:                                             ; preds = %1255
  br label %1364

1309:                                             ; preds = %1248
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1310

1310:                                             ; preds = %1360, %1309
  %1311 = load i64, ptr %12, align 8, !tbaa !11
  %1312 = load i64, ptr %5, align 8, !tbaa !11
  %1313 = sub nsw i64 %1312, 1
  %1314 = icmp sle i64 %1311, %1313
  br i1 %1314, label %1315, label %1363

1315:                                             ; preds = %1310
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1316

1316:                                             ; preds = %1356, %1315
  %1317 = load i64, ptr %13, align 8, !tbaa !11
  %1318 = load i64, ptr %5, align 8, !tbaa !11
  %1319 = sub nsw i64 %1318, 1
  %1320 = icmp sle i64 %1317, %1319
  br i1 %1320, label %1321, label %1359

1321:                                             ; preds = %1316
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %1322

1322:                                             ; preds = %1344, %1321
  %1323 = load i64, ptr %14, align 8, !tbaa !11
  %1324 = load i64, ptr %5, align 8, !tbaa !11
  %1325 = sub nsw i64 %1324, 1
  %1326 = icmp sle i64 %1323, %1325
  br i1 %1326, label %1327, label %1347

1327:                                             ; preds = %1322
  %1328 = load double, ptr %16, align 8, !tbaa !13
  %1329 = load i64, ptr %13, align 8, !tbaa !11
  %1330 = load i64, ptr %14, align 8, !tbaa !11
  %1331 = load ptr, ptr %3, align 8, !tbaa !5
  %1332 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %1329, i64 noundef %1330, ptr noundef %1331)
  %1333 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %1334 = load ptr, ptr %1333, align 8, !tbaa !15
  %1335 = load i64, ptr %14, align 8, !tbaa !11
  %1336 = getelementptr inbounds double, ptr %1334, i64 %1335
  %1337 = load double, ptr %1336, align 8, !tbaa !13
  %1338 = fmul double %1332, %1337
  %1339 = load i64, ptr %12, align 8, !tbaa !11
  %1340 = load i64, ptr %14, align 8, !tbaa !11
  %1341 = load ptr, ptr %3, align 8, !tbaa !5
  %1342 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %1339, i64 noundef %1340, ptr noundef %1341)
  %1343 = call double @llvm.fmuladd.f64(double %1338, double %1342, double %1328)
  store double %1343, ptr %16, align 8, !tbaa !13
  br label %1344

1344:                                             ; preds = %1327
  %1345 = load i64, ptr %14, align 8, !tbaa !11
  %1346 = add nsw i64 %1345, 1
  store i64 %1346, ptr %14, align 8, !tbaa !11
  br label %1322, !llvm.loop !61

1347:                                             ; preds = %1322
  %1348 = load double, ptr %16, align 8, !tbaa !13
  %1349 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %1350 = load ptr, ptr %1349, align 8, !tbaa !15
  %1351 = load i64, ptr %12, align 8, !tbaa !11
  %1352 = getelementptr inbounds ptr, ptr %1350, i64 %1351
  %1353 = load ptr, ptr %1352, align 8, !tbaa !5
  %1354 = load i64, ptr %13, align 8, !tbaa !11
  %1355 = getelementptr inbounds double, ptr %1353, i64 %1354
  store double %1348, ptr %1355, align 8, !tbaa !13
  br label %1356

1356:                                             ; preds = %1347
  %1357 = load i64, ptr %13, align 8, !tbaa !11
  %1358 = add nsw i64 %1357, 1
  store i64 %1358, ptr %13, align 8, !tbaa !11
  br label %1316, !llvm.loop !62

1359:                                             ; preds = %1316
  br label %1360

1360:                                             ; preds = %1359
  %1361 = load i64, ptr %12, align 8, !tbaa !11
  %1362 = add nsw i64 %1361, 1
  store i64 %1362, ptr %12, align 8, !tbaa !11
  br label %1310, !llvm.loop !63

1363:                                             ; preds = %1310
  br label %1364

1364:                                             ; preds = %1363, %1308
  %1365 = load i64, ptr %5, align 8, !tbaa !11
  %1366 = sub nsw i64 %1365, 1
  store i64 %1366, ptr %12, align 8, !tbaa !11
  br label %1367

1367:                                             ; preds = %1387, %1364
  %1368 = load i64, ptr %12, align 8, !tbaa !11
  %1369 = icmp sge i64 %1368, 0
  br i1 %1369, label %1370, label %1390

1370:                                             ; preds = %1367
  %1371 = load i64, ptr %12, align 8, !tbaa !11
  %1372 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1373 = load ptr, ptr %1372, align 8, !tbaa !15
  %1374 = load i64, ptr %12, align 8, !tbaa !11
  %1375 = getelementptr inbounds i64, ptr %1373, i64 %1374
  %1376 = load i64, ptr %1375, align 8, !tbaa !11
  %1377 = load i64, ptr %5, align 8, !tbaa !11
  %1378 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %9, i64 noundef %1371, i64 noundef %1376, i64 noundef %1377, ptr noundef %1378)
  %1379 = load i64, ptr %12, align 8, !tbaa !11
  %1380 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1381 = load ptr, ptr %1380, align 8, !tbaa !15
  %1382 = load i64, ptr %12, align 8, !tbaa !11
  %1383 = getelementptr inbounds i64, ptr %1381, i64 %1382
  %1384 = load i64, ptr %1383, align 8, !tbaa !11
  %1385 = load i64, ptr %5, align 8, !tbaa !11
  %1386 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %9, i64 noundef %1379, i64 noundef %1384, i64 noundef %1385, ptr noundef %1386)
  br label %1387

1387:                                             ; preds = %1370
  %1388 = load i64, ptr %12, align 8, !tbaa !11
  %1389 = add nsw i64 %1388, -1
  store i64 %1389, ptr %12, align 8, !tbaa !11
  br label %1367, !llvm.loop !64

1390:                                             ; preds = %1367
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1391

1391:                                             ; preds = %1428, %1390
  %1392 = load i64, ptr %12, align 8, !tbaa !11
  %1393 = load i64, ptr %5, align 8, !tbaa !11
  %1394 = sub nsw i64 %1393, 1
  %1395 = icmp sle i64 %1392, %1394
  br i1 %1395, label %1396, label %1431

1396:                                             ; preds = %1391
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1397

1397:                                             ; preds = %1424, %1396
  %1398 = load i64, ptr %13, align 8, !tbaa !11
  %1399 = load i64, ptr %5, align 8, !tbaa !11
  %1400 = sub nsw i64 %1399, 1
  %1401 = icmp sle i64 %1398, %1400
  br i1 %1401, label %1402, label %1427

1402:                                             ; preds = %1397
  %1403 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1404 = load ptr, ptr %1403, align 8, !tbaa !15
  %1405 = load i64, ptr %12, align 8, !tbaa !11
  %1406 = getelementptr inbounds ptr, ptr %1404, i64 %1405
  %1407 = load ptr, ptr %1406, align 8, !tbaa !5
  %1408 = load i64, ptr %13, align 8, !tbaa !11
  %1409 = getelementptr inbounds double, ptr %1407, i64 %1408
  %1410 = load double, ptr %1409, align 8, !tbaa !13
  %1411 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %1412 = load ptr, ptr %1411, align 8, !tbaa !15
  %1413 = load i64, ptr %12, align 8, !tbaa !11
  %1414 = getelementptr inbounds ptr, ptr %1412, i64 %1413
  %1415 = load ptr, ptr %1414, align 8, !tbaa !5
  %1416 = load i64, ptr %13, align 8, !tbaa !11
  %1417 = getelementptr inbounds double, ptr %1415, i64 %1416
  %1418 = load double, ptr %1417, align 8, !tbaa !13
  %1419 = fsub double %1410, %1418
  %1420 = load ptr, ptr %3, align 8, !tbaa !5
  %1421 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1419, ptr noundef %1420)
  %1422 = load double, ptr %21, align 8, !tbaa !13
  %1423 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1421, double noundef %1422)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1423, ptr noundef @.str.19, i32 noundef 24796, ptr noundef @.str.374)
  br label %1424

1424:                                             ; preds = %1402
  %1425 = load i64, ptr %13, align 8, !tbaa !11
  %1426 = add nsw i64 %1425, 1
  store i64 %1426, ptr %13, align 8, !tbaa !11
  br label %1397, !llvm.loop !65

1427:                                             ; preds = %1397
  br label %1428

1428:                                             ; preds = %1427
  %1429 = load i64, ptr %12, align 8, !tbaa !11
  %1430 = add nsw i64 %1429, 1
  store i64 %1430, ptr %12, align 8, !tbaa !11
  br label %1391, !llvm.loop !66

1431:                                             ; preds = %1391
  %1432 = load i64, ptr %6, align 8, !tbaa !11
  %1433 = icmp eq i64 %1432, 0
  br i1 %1433, label %1434, label %1435

1434:                                             ; preds = %1431
  br label %1438

1435:                                             ; preds = %1431
  %1436 = load i64, ptr %6, align 8, !tbaa !11
  %1437 = sdiv i64 %1436, 2
  store i64 %1437, ptr %6, align 8, !tbaa !11
  br label %847, !llvm.loop !67

1438:                                             ; preds = %1434
  br label %1439

1439:                                             ; preds = %1438
  %1440 = load i64, ptr %5, align 8, !tbaa !11
  %1441 = add nsw i64 %1440, 1
  store i64 %1441, ptr %5, align 8, !tbaa !11
  br label %838, !llvm.loop !68

1442:                                             ; preds = %838
  store i64 0, ptr %11, align 8, !tbaa !11
  br label %1443

1443:                                             ; preds = %1901, %1442
  %1444 = load i64, ptr %11, align 8, !tbaa !11
  %1445 = icmp sle i64 %1444, 3
  br i1 %1445, label %1446, label %1904

1446:                                             ; preds = %1443
  store i64 512, ptr %5, align 8, !tbaa !11
  %1447 = load i64, ptr %5, align 8, !tbaa !11
  %1448 = load i64, ptr %5, align 8, !tbaa !11
  %1449 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %8, i64 noundef %1447, i64 noundef %1448, ptr noundef %1449)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1450

1450:                                             ; preds = %1593, %1446
  %1451 = load i64, ptr %12, align 8, !tbaa !11
  %1452 = load i64, ptr %5, align 8, !tbaa !11
  %1453 = sub nsw i64 %1452, 1
  %1454 = icmp sle i64 %1451, %1453
  br i1 %1454, label %1455, label %1596

1455:                                             ; preds = %1450
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1456

1456:                                             ; preds = %1589, %1455
  %1457 = load i64, ptr %13, align 8, !tbaa !11
  %1458 = load i64, ptr %12, align 8, !tbaa !11
  %1459 = icmp sle i64 %1457, %1458
  br i1 %1459, label %1460, label %1592

1460:                                             ; preds = %1456
  %1461 = load i64, ptr %12, align 8, !tbaa !11
  %1462 = load i64, ptr %13, align 8, !tbaa !11
  %1463 = icmp eq i64 %1461, %1462
  %1464 = load ptr, ptr %3, align 8, !tbaa !5
  %1465 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1464)
  %1466 = load ptr, ptr %3, align 8, !tbaa !5
  %1467 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1465, ptr noundef %1466)
  %1468 = fadd double 1.000000e+00, %1467
  %1469 = load i64, ptr %5, align 8, !tbaa !11
  %1470 = sitofp i64 %1469 to double
  %1471 = fdiv double 5.000000e-02, %1470
  %1472 = load ptr, ptr %3, align 8, !tbaa !5
  %1473 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1472)
  %1474 = fsub double %1473, 5.000000e-01
  %1475 = fmul double %1471, %1474
  %1476 = load ptr, ptr %3, align 8, !tbaa !5
  %1477 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1463, double noundef %1468, double noundef %1475, ptr noundef %1476)
  %1478 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1479 = load ptr, ptr %1478, align 8, !tbaa !15
  %1480 = load i64, ptr %12, align 8, !tbaa !11
  %1481 = getelementptr inbounds ptr, ptr %1479, i64 %1480
  %1482 = load ptr, ptr %1481, align 8, !tbaa !5
  %1483 = load i64, ptr %13, align 8, !tbaa !11
  %1484 = getelementptr inbounds double, ptr %1482, i64 %1483
  store double %1477, ptr %1484, align 8, !tbaa !13
  %1485 = load i64, ptr %11, align 8, !tbaa !11
  %1486 = icmp eq i64 %1485, 1
  br i1 %1486, label %1487, label %1512

1487:                                             ; preds = %1460
  %1488 = load i64, ptr %13, align 8, !tbaa !11
  %1489 = sitofp i64 %1488 to double
  %1490 = load i64, ptr %12, align 8, !tbaa !11
  %1491 = sitofp i64 %1490 to double
  %1492 = fmul double 5.000000e-01, %1491
  %1493 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1489, double noundef %1492)
  %1494 = load ptr, ptr %3, align 8, !tbaa !5
  %1495 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1493, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %1494)
  %1496 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1497 = load ptr, ptr %1496, align 8, !tbaa !15
  %1498 = load i64, ptr %12, align 8, !tbaa !11
  %1499 = getelementptr inbounds ptr, ptr %1497, i64 %1498
  %1500 = load ptr, ptr %1499, align 8, !tbaa !5
  %1501 = load i64, ptr %13, align 8, !tbaa !11
  %1502 = getelementptr inbounds double, ptr %1500, i64 %1501
  %1503 = load double, ptr %1502, align 8, !tbaa !13
  %1504 = fmul double %1495, %1503
  %1505 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1506 = load ptr, ptr %1505, align 8, !tbaa !15
  %1507 = load i64, ptr %12, align 8, !tbaa !11
  %1508 = getelementptr inbounds ptr, ptr %1506, i64 %1507
  %1509 = load ptr, ptr %1508, align 8, !tbaa !5
  %1510 = load i64, ptr %13, align 8, !tbaa !11
  %1511 = getelementptr inbounds double, ptr %1509, i64 %1510
  store double %1504, ptr %1511, align 8, !tbaa !13
  br label %1512

1512:                                             ; preds = %1487, %1460
  %1513 = load i64, ptr %11, align 8, !tbaa !11
  %1514 = icmp eq i64 %1513, 2
  br i1 %1514, label %1515, label %1541

1515:                                             ; preds = %1512
  %1516 = load i64, ptr %13, align 8, !tbaa !11
  %1517 = load i64, ptr %12, align 8, !tbaa !11
  %1518 = mul nsw i64 2, %1517
  %1519 = load i64, ptr %5, align 8, !tbaa !11
  %1520 = sub nsw i64 %1519, 1
  %1521 = sub nsw i64 %1518, %1520
  %1522 = icmp sge i64 %1516, %1521
  %1523 = load ptr, ptr %3, align 8, !tbaa !5
  %1524 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1522, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %1523)
  %1525 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1526 = load ptr, ptr %1525, align 8, !tbaa !15
  %1527 = load i64, ptr %12, align 8, !tbaa !11
  %1528 = getelementptr inbounds ptr, ptr %1526, i64 %1527
  %1529 = load ptr, ptr %1528, align 8, !tbaa !5
  %1530 = load i64, ptr %13, align 8, !tbaa !11
  %1531 = getelementptr inbounds double, ptr %1529, i64 %1530
  %1532 = load double, ptr %1531, align 8, !tbaa !13
  %1533 = fmul double %1524, %1532
  %1534 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1535 = load ptr, ptr %1534, align 8, !tbaa !15
  %1536 = load i64, ptr %12, align 8, !tbaa !11
  %1537 = getelementptr inbounds ptr, ptr %1535, i64 %1536
  %1538 = load ptr, ptr %1537, align 8, !tbaa !5
  %1539 = load i64, ptr %13, align 8, !tbaa !11
  %1540 = getelementptr inbounds double, ptr %1538, i64 %1539
  store double %1533, ptr %1540, align 8, !tbaa !13
  br label %1541

1541:                                             ; preds = %1515, %1512
  %1542 = load i64, ptr %11, align 8, !tbaa !11
  %1543 = icmp eq i64 %1542, 3
  br i1 %1543, label %1544, label %1573

1544:                                             ; preds = %1541
  %1545 = load i64, ptr %13, align 8, !tbaa !11
  %1546 = sitofp i64 %1545 to double
  %1547 = load i64, ptr %12, align 8, !tbaa !11
  %1548 = sitofp i64 %1547 to double
  %1549 = load i64, ptr %5, align 8, !tbaa !11
  %1550 = sitofp i64 %1549 to double
  %1551 = load ptr, ptr %3, align 8, !tbaa !5
  %1552 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1550, ptr noundef %1551)
  %1553 = fsub double %1548, %1552
  %1554 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1546, double noundef %1553)
  %1555 = load ptr, ptr %3, align 8, !tbaa !5
  %1556 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1554, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %1555)
  %1557 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1558 = load ptr, ptr %1557, align 8, !tbaa !15
  %1559 = load i64, ptr %12, align 8, !tbaa !11
  %1560 = getelementptr inbounds ptr, ptr %1558, i64 %1559
  %1561 = load ptr, ptr %1560, align 8, !tbaa !5
  %1562 = load i64, ptr %13, align 8, !tbaa !11
  %1563 = getelementptr inbounds double, ptr %1561, i64 %1562
  %1564 = load double, ptr %1563, align 8, !tbaa !13
  %1565 = fmul double %1556, %1564
  %1566 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1567 = load ptr, ptr %1566, align 8, !tbaa !15
  %1568 = load i64, ptr %12, align 8, !tbaa !11
  %1569 = getelementptr inbounds ptr, ptr %1567, i64 %1568
  %1570 = load ptr, ptr %1569, align 8, !tbaa !5
  %1571 = load i64, ptr %13, align 8, !tbaa !11
  %1572 = getelementptr inbounds double, ptr %1570, i64 %1571
  store double %1565, ptr %1572, align 8, !tbaa !13
  br label %1573

1573:                                             ; preds = %1544, %1541
  %1574 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1575 = load ptr, ptr %1574, align 8, !tbaa !15
  %1576 = load i64, ptr %12, align 8, !tbaa !11
  %1577 = getelementptr inbounds ptr, ptr %1575, i64 %1576
  %1578 = load ptr, ptr %1577, align 8, !tbaa !5
  %1579 = load i64, ptr %13, align 8, !tbaa !11
  %1580 = getelementptr inbounds double, ptr %1578, i64 %1579
  %1581 = load double, ptr %1580, align 8, !tbaa !13
  %1582 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1583 = load ptr, ptr %1582, align 8, !tbaa !15
  %1584 = load i64, ptr %13, align 8, !tbaa !11
  %1585 = getelementptr inbounds ptr, ptr %1583, i64 %1584
  %1586 = load ptr, ptr %1585, align 8, !tbaa !5
  %1587 = load i64, ptr %12, align 8, !tbaa !11
  %1588 = getelementptr inbounds double, ptr %1586, i64 %1587
  store double %1581, ptr %1588, align 8, !tbaa !13
  br label %1589

1589:                                             ; preds = %1573
  %1590 = load i64, ptr %13, align 8, !tbaa !11
  %1591 = add nsw i64 %1590, 1
  store i64 %1591, ptr %13, align 8, !tbaa !11
  br label %1456, !llvm.loop !69

1592:                                             ; preds = %1456
  br label %1593

1593:                                             ; preds = %1592
  %1594 = load i64, ptr %12, align 8, !tbaa !11
  %1595 = add nsw i64 %1594, 1
  store i64 %1595, ptr %12, align 8, !tbaa !11
  br label %1450, !llvm.loop !70

1596:                                             ; preds = %1450
  store i8 0, ptr %19, align 1, !tbaa !9
  %1597 = load i64, ptr %5, align 8, !tbaa !11
  %1598 = load i64, ptr %5, align 8, !tbaa !11
  %1599 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %1597, i64 noundef %1598, i64 noundef 0, ptr noundef %22, ptr noundef %1599)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1600

1600:                                             ; preds = %1626, %1596
  %1601 = load i64, ptr %12, align 8, !tbaa !11
  %1602 = load i64, ptr %5, align 8, !tbaa !11
  %1603 = sub nsw i64 %1602, 1
  %1604 = icmp sle i64 %1601, %1603
  br i1 %1604, label %1605, label %1629

1605:                                             ; preds = %1600
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1606

1606:                                             ; preds = %1622, %1605
  %1607 = load i64, ptr %13, align 8, !tbaa !11
  %1608 = load i64, ptr %12, align 8, !tbaa !11
  %1609 = icmp sle i64 %1607, %1608
  br i1 %1609, label %1610, label %1625

1610:                                             ; preds = %1606
  %1611 = load i64, ptr %12, align 8, !tbaa !11
  %1612 = load i64, ptr %13, align 8, !tbaa !11
  %1613 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1614 = load ptr, ptr %1613, align 8, !tbaa !15
  %1615 = load i64, ptr %12, align 8, !tbaa !11
  %1616 = getelementptr inbounds ptr, ptr %1614, i64 %1615
  %1617 = load ptr, ptr %1616, align 8, !tbaa !5
  %1618 = load i64, ptr %13, align 8, !tbaa !11
  %1619 = getelementptr inbounds double, ptr %1617, i64 %1618
  %1620 = load double, ptr %1619, align 8, !tbaa !13
  %1621 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %1611, i64 noundef %1612, double noundef %1620, ptr noundef %1621)
  br label %1622

1622:                                             ; preds = %1610
  %1623 = load i64, ptr %13, align 8, !tbaa !11
  %1624 = add nsw i64 %1623, 1
  store i64 %1624, ptr %13, align 8, !tbaa !11
  br label %1606, !llvm.loop !71

1625:                                             ; preds = %1606
  br label %1626

1626:                                             ; preds = %1625
  %1627 = load i64, ptr %12, align 8, !tbaa !11
  %1628 = add nsw i64 %1627, 1
  store i64 %1628, ptr %12, align 8, !tbaa !11
  br label %1600, !llvm.loop !72

1629:                                             ; preds = %1600
  %1630 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %22, ptr noundef %1630)
  store i64 0, ptr %40, align 8, !tbaa !11
  %1631 = load i64, ptr %34, align 8, !tbaa !11
  %1632 = load i64, ptr %35, align 8, !tbaa !11
  %1633 = load i64, ptr %34, align 8, !tbaa !11
  %1634 = sub nsw i64 %1632, %1633
  %1635 = add nsw i64 %1634, 1
  %1636 = load ptr, ptr %3, align 8, !tbaa !5
  %1637 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %1635, ptr noundef %1636)
  %1638 = add nsw i64 %1631, %1637
  store i64 %1638, ptr %39, align 8, !tbaa !11
  %1639 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1640 = trunc i8 %1639 to i1
  %1641 = load i64, ptr %40, align 8, !tbaa !11
  %1642 = load i64, ptr %39, align 8, !tbaa !11
  %1643 = load ptr, ptr %3, align 8, !tbaa !5
  %1644 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext %1640, i64 noundef %1641, i64 noundef %1642, ptr noundef %37, ptr noundef %1643)
  br i1 %1644, label %1649, label %1645

1645:                                             ; preds = %1629
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24856, ptr noundef @.str.375)
  %1646 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1646)
  %1647 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1648 = trunc i8 %1647 to i1
  store i1 %1648, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1649:                                             ; preds = %1629
  %1650 = load ptr, ptr %3, align 8, !tbaa !5
  %1651 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1650)
  %1652 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1651, double noundef 0.000000e+00)
  br i1 %1652, label %1653, label %1656

1653:                                             ; preds = %1649
  %1654 = getelementptr inbounds %"struct.alglib_impl::sparsedecompositionanalysis", ptr %37, i32 0, i32 3
  %1655 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl24spsymmenforceparallelismEPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef %1654, ptr noundef %1655)
  br label %1656

1656:                                             ; preds = %1653, %1649
  store i64 0, ptr %48, align 8, !tbaa !11
  br label %1657

1657:                                             ; preds = %1897, %1656
  %1658 = load i64, ptr %48, align 8, !tbaa !11
  %1659 = icmp sle i64 %1658, 1
  br i1 %1659, label %1660, label %1900

1660:                                             ; preds = %1657
  %1661 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %1662 = trunc i8 %1661 to i1
  %1663 = load ptr, ptr %3, align 8, !tbaa !5
  %1664 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %1662, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %1663)
  br i1 %1664, label %1669, label %1665

1665:                                             ; preds = %1660
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 24872, ptr noundef @.str.376)
  %1666 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1666)
  %1667 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1668 = trunc i8 %1667 to i1
  store i1 %1668, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1669:                                             ; preds = %1660
  %1670 = load ptr, ptr %3, align 8, !tbaa !5
  %1671 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %1670)
  br i1 %1671, label %1672, label %1682

1672:                                             ; preds = %1669
  %1673 = load ptr, ptr %3, align 8, !tbaa !5
  %1674 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %1673)
  %1675 = load i64, ptr %5, align 8, !tbaa !11
  %1676 = icmp ne i64 %1674, %1675
  br i1 %1676, label %1682, label %1677

1677:                                             ; preds = %1672
  %1678 = load ptr, ptr %3, align 8, !tbaa !5
  %1679 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %1678)
  %1680 = load i64, ptr %5, align 8, !tbaa !11
  %1681 = icmp ne i64 %1679, %1680
  br label %1682

1682:                                             ; preds = %1677, %1672, %1669
  %1683 = phi i1 [ true, %1672 ], [ true, %1669 ], [ %1681, %1677 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1683, ptr noundef @.str.19, i32 noundef 24880, ptr noundef @.str.377)
  %1684 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 0
  %1685 = load i64, ptr %1684, align 8, !tbaa !29
  %1686 = load i64, ptr %5, align 8, !tbaa !11
  %1687 = icmp ne i64 %1685, %1686
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1687, ptr noundef @.str.19, i32 noundef 24881, ptr noundef @.str.378)
  %1688 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 0
  %1689 = load i64, ptr %1688, align 8, !tbaa !29
  %1690 = load i64, ptr %5, align 8, !tbaa !11
  %1691 = icmp ne i64 %1689, %1690
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1691, ptr noundef @.str.19, i32 noundef 24882, ptr noundef @.str.379)
  %1692 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1693 = trunc i8 %1692 to i1
  br i1 %1693, label %1694, label %1698

1694:                                             ; preds = %1682
  %1695 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1695)
  %1696 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1697 = trunc i8 %1696 to i1
  store i1 %1697, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1698:                                             ; preds = %1682
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1699

1699:                                             ; preds = %1738, %1698
  %1700 = load i64, ptr %12, align 8, !tbaa !11
  %1701 = load i64, ptr %5, align 8, !tbaa !11
  %1702 = sub nsw i64 %1701, 1
  %1703 = icmp sle i64 %1700, %1702
  br i1 %1703, label %1704, label %1741

1704:                                             ; preds = %1699
  %1705 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1706 = load ptr, ptr %1705, align 8, !tbaa !15
  %1707 = load i64, ptr %12, align 8, !tbaa !11
  %1708 = getelementptr inbounds i64, ptr %1706, i64 %1707
  %1709 = load i64, ptr %1708, align 8, !tbaa !11
  %1710 = load i64, ptr %12, align 8, !tbaa !11
  %1711 = icmp slt i64 %1709, %1710
  br i1 %1711, label %1720, label %1712

1712:                                             ; preds = %1704
  %1713 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1714 = load ptr, ptr %1713, align 8, !tbaa !15
  %1715 = load i64, ptr %12, align 8, !tbaa !11
  %1716 = getelementptr inbounds i64, ptr %1714, i64 %1715
  %1717 = load i64, ptr %1716, align 8, !tbaa !11
  %1718 = load i64, ptr %5, align 8, !tbaa !11
  %1719 = icmp sge i64 %1717, %1718
  br label %1720

1720:                                             ; preds = %1712, %1704
  %1721 = phi i1 [ true, %1704 ], [ %1719, %1712 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1721, ptr noundef @.str.19, i32 noundef 24890, ptr noundef @.str.380)
  %1722 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %1723 = load ptr, ptr %1722, align 8, !tbaa !15
  %1724 = load i64, ptr %12, align 8, !tbaa !11
  %1725 = getelementptr inbounds double, ptr %1723, i64 %1724
  %1726 = load double, ptr %1725, align 8, !tbaa !13
  %1727 = load ptr, ptr %3, align 8, !tbaa !5
  %1728 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1726, ptr noundef %1727)
  br i1 %1728, label %1729, label %1736

1729:                                             ; preds = %1720
  %1730 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %1731 = load ptr, ptr %1730, align 8, !tbaa !15
  %1732 = load i64, ptr %12, align 8, !tbaa !11
  %1733 = getelementptr inbounds double, ptr %1731, i64 %1732
  %1734 = load double, ptr %1733, align 8, !tbaa !13
  %1735 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1734, double noundef 1.000000e+00)
  br label %1736

1736:                                             ; preds = %1729, %1720
  %1737 = phi i1 [ true, %1720 ], [ %1735, %1729 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1737, ptr noundef @.str.19, i32 noundef 24891, ptr noundef @.str.381)
  br label %1738

1738:                                             ; preds = %1736
  %1739 = load i64, ptr %12, align 8, !tbaa !11
  %1740 = add nsw i64 %1739, 1
  store i64 %1740, ptr %12, align 8, !tbaa !11
  br label %1699, !llvm.loop !73

1741:                                             ; preds = %1699
  %1742 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1743 = trunc i8 %1742 to i1
  br i1 %1743, label %1744, label %1748

1744:                                             ; preds = %1741
  %1745 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1745)
  %1746 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %1747 = trunc i8 %1746 to i1
  store i1 %1747, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

1748:                                             ; preds = %1741
  %1749 = load i64, ptr %5, align 8, !tbaa !11
  %1750 = load i64, ptr %5, align 8, !tbaa !11
  %1751 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1749, i64 noundef %1750, double noundef 0.000000e+00, ptr noundef %9, ptr noundef %1751)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1752

1752:                                             ; preds = %1778, %1748
  %1753 = load i64, ptr %12, align 8, !tbaa !11
  %1754 = load i64, ptr %5, align 8, !tbaa !11
  %1755 = sub nsw i64 %1754, 1
  %1756 = icmp sle i64 %1753, %1755
  br i1 %1756, label %1757, label %1781

1757:                                             ; preds = %1752
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1758

1758:                                             ; preds = %1774, %1757
  %1759 = load i64, ptr %13, align 8, !tbaa !11
  %1760 = load i64, ptr %12, align 8, !tbaa !11
  %1761 = icmp sle i64 %1759, %1760
  br i1 %1761, label %1762, label %1777

1762:                                             ; preds = %1758
  %1763 = load i64, ptr %12, align 8, !tbaa !11
  %1764 = load i64, ptr %13, align 8, !tbaa !11
  %1765 = load ptr, ptr %3, align 8, !tbaa !5
  %1766 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %1763, i64 noundef %1764, ptr noundef %1765)
  %1767 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %1768 = load ptr, ptr %1767, align 8, !tbaa !15
  %1769 = load i64, ptr %12, align 8, !tbaa !11
  %1770 = getelementptr inbounds ptr, ptr %1768, i64 %1769
  %1771 = load ptr, ptr %1770, align 8, !tbaa !5
  %1772 = load i64, ptr %13, align 8, !tbaa !11
  %1773 = getelementptr inbounds double, ptr %1771, i64 %1772
  store double %1766, ptr %1773, align 8, !tbaa !13
  br label %1774

1774:                                             ; preds = %1762
  %1775 = load i64, ptr %13, align 8, !tbaa !11
  %1776 = add nsw i64 %1775, 1
  store i64 %1776, ptr %13, align 8, !tbaa !11
  br label %1758, !llvm.loop !74

1777:                                             ; preds = %1758
  br label %1778

1778:                                             ; preds = %1777
  %1779 = load i64, ptr %12, align 8, !tbaa !11
  %1780 = add nsw i64 %1779, 1
  store i64 %1780, ptr %12, align 8, !tbaa !11
  br label %1752, !llvm.loop !75

1781:                                             ; preds = %1752
  %1782 = load i64, ptr %5, align 8, !tbaa !11
  %1783 = load i64, ptr %5, align 8, !tbaa !11
  %1784 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1782, i64 noundef %1783, double noundef 0.000000e+00, ptr noundef %10, ptr noundef %1784)
  %1785 = load i64, ptr %5, align 8, !tbaa !11
  %1786 = load i64, ptr %5, align 8, !tbaa !11
  %1787 = load i64, ptr %5, align 8, !tbaa !11
  %1788 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef %1785, i64 noundef %1786, i64 noundef %1787, double noundef 1.000000e+00, ptr noundef %9, i64 noundef 0, i64 noundef 0, i64 noundef 0, ptr noundef %9, i64 noundef 0, i64 noundef 0, i64 noundef 1, double noundef 0.000000e+00, ptr noundef %10, i64 noundef 0, i64 noundef 0, ptr noundef %1788)
  %1789 = load i64, ptr %5, align 8, !tbaa !11
  %1790 = sub nsw i64 %1789, 1
  store i64 %1790, ptr %12, align 8, !tbaa !11
  br label %1791

1791:                                             ; preds = %1811, %1781
  %1792 = load i64, ptr %12, align 8, !tbaa !11
  %1793 = icmp sge i64 %1792, 0
  br i1 %1793, label %1794, label %1814

1794:                                             ; preds = %1791
  %1795 = load i64, ptr %12, align 8, !tbaa !11
  %1796 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1797 = load ptr, ptr %1796, align 8, !tbaa !15
  %1798 = load i64, ptr %12, align 8, !tbaa !11
  %1799 = getelementptr inbounds i64, ptr %1797, i64 %1798
  %1800 = load i64, ptr %1799, align 8, !tbaa !11
  %1801 = load i64, ptr %5, align 8, !tbaa !11
  %1802 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %10, i64 noundef %1795, i64 noundef %1800, i64 noundef %1801, ptr noundef %1802)
  %1803 = load i64, ptr %12, align 8, !tbaa !11
  %1804 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %1805 = load ptr, ptr %1804, align 8, !tbaa !15
  %1806 = load i64, ptr %12, align 8, !tbaa !11
  %1807 = getelementptr inbounds i64, ptr %1805, i64 %1806
  %1808 = load i64, ptr %1807, align 8, !tbaa !11
  %1809 = load i64, ptr %5, align 8, !tbaa !11
  %1810 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %10, i64 noundef %1803, i64 noundef %1808, i64 noundef %1809, ptr noundef %1810)
  br label %1811

1811:                                             ; preds = %1794
  %1812 = load i64, ptr %12, align 8, !tbaa !11
  %1813 = add nsw i64 %1812, -1
  store i64 %1813, ptr %12, align 8, !tbaa !11
  br label %1791, !llvm.loop !76

1814:                                             ; preds = %1791
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1815

1815:                                             ; preds = %1852, %1814
  %1816 = load i64, ptr %12, align 8, !tbaa !11
  %1817 = load i64, ptr %5, align 8, !tbaa !11
  %1818 = sub nsw i64 %1817, 1
  %1819 = icmp sle i64 %1816, %1818
  br i1 %1819, label %1820, label %1855

1820:                                             ; preds = %1815
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1821

1821:                                             ; preds = %1848, %1820
  %1822 = load i64, ptr %13, align 8, !tbaa !11
  %1823 = load i64, ptr %5, align 8, !tbaa !11
  %1824 = sub nsw i64 %1823, 1
  %1825 = icmp sle i64 %1822, %1824
  br i1 %1825, label %1826, label %1851

1826:                                             ; preds = %1821
  %1827 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1828 = load ptr, ptr %1827, align 8, !tbaa !15
  %1829 = load i64, ptr %12, align 8, !tbaa !11
  %1830 = getelementptr inbounds ptr, ptr %1828, i64 %1829
  %1831 = load ptr, ptr %1830, align 8, !tbaa !5
  %1832 = load i64, ptr %13, align 8, !tbaa !11
  %1833 = getelementptr inbounds double, ptr %1831, i64 %1832
  %1834 = load double, ptr %1833, align 8, !tbaa !13
  %1835 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %10, i32 0, i32 6
  %1836 = load ptr, ptr %1835, align 8, !tbaa !15
  %1837 = load i64, ptr %12, align 8, !tbaa !11
  %1838 = getelementptr inbounds ptr, ptr %1836, i64 %1837
  %1839 = load ptr, ptr %1838, align 8, !tbaa !5
  %1840 = load i64, ptr %13, align 8, !tbaa !11
  %1841 = getelementptr inbounds double, ptr %1839, i64 %1840
  %1842 = load double, ptr %1841, align 8, !tbaa !13
  %1843 = fsub double %1834, %1842
  %1844 = load ptr, ptr %3, align 8, !tbaa !5
  %1845 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1843, ptr noundef %1844)
  %1846 = load double, ptr %21, align 8, !tbaa !13
  %1847 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1845, double noundef %1846)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %1847, ptr noundef @.str.19, i32 noundef 24926, ptr noundef @.str.382)
  br label %1848

1848:                                             ; preds = %1826
  %1849 = load i64, ptr %13, align 8, !tbaa !11
  %1850 = add nsw i64 %1849, 1
  store i64 %1850, ptr %13, align 8, !tbaa !11
  br label %1821, !llvm.loop !77

1851:                                             ; preds = %1821
  br label %1852

1852:                                             ; preds = %1851
  %1853 = load i64, ptr %12, align 8, !tbaa !11
  %1854 = add nsw i64 %1853, 1
  store i64 %1854, ptr %12, align 8, !tbaa !11
  br label %1815, !llvm.loop !78

1855:                                             ; preds = %1815
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1856

1856:                                             ; preds = %1892, %1855
  %1857 = load i64, ptr %12, align 8, !tbaa !11
  %1858 = load i64, ptr %5, align 8, !tbaa !11
  %1859 = sub nsw i64 %1858, 1
  %1860 = icmp sle i64 %1857, %1859
  br i1 %1860, label %1861, label %1895

1861:                                             ; preds = %1856
  %1862 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1863 = load ptr, ptr %1862, align 8, !tbaa !15
  %1864 = load i64, ptr %12, align 8, !tbaa !11
  %1865 = getelementptr inbounds ptr, ptr %1863, i64 %1864
  %1866 = load ptr, ptr %1865, align 8, !tbaa !5
  %1867 = load i64, ptr %12, align 8, !tbaa !11
  %1868 = getelementptr inbounds double, ptr %1866, i64 %1867
  %1869 = load double, ptr %1868, align 8, !tbaa !13
  %1870 = load ptr, ptr %3, align 8, !tbaa !5
  %1871 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1870)
  %1872 = fadd double %1869, %1871
  %1873 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1874 = load ptr, ptr %1873, align 8, !tbaa !15
  %1875 = load i64, ptr %12, align 8, !tbaa !11
  %1876 = getelementptr inbounds ptr, ptr %1874, i64 %1875
  %1877 = load ptr, ptr %1876, align 8, !tbaa !5
  %1878 = load i64, ptr %12, align 8, !tbaa !11
  %1879 = getelementptr inbounds double, ptr %1877, i64 %1878
  store double %1872, ptr %1879, align 8, !tbaa !13
  %1880 = load i64, ptr %12, align 8, !tbaa !11
  %1881 = load i64, ptr %12, align 8, !tbaa !11
  %1882 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1883 = load ptr, ptr %1882, align 8, !tbaa !15
  %1884 = load i64, ptr %12, align 8, !tbaa !11
  %1885 = getelementptr inbounds ptr, ptr %1883, i64 %1884
  %1886 = load ptr, ptr %1885, align 8, !tbaa !5
  %1887 = load i64, ptr %12, align 8, !tbaa !11
  %1888 = getelementptr inbounds double, ptr %1886, i64 %1887
  %1889 = load double, ptr %1888, align 8, !tbaa !13
  %1890 = load ptr, ptr %3, align 8, !tbaa !5
  %1891 = call noundef zeroext i1 @_ZN11alglib_impl21sparserewriteexistingEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %1880, i64 noundef %1881, double noundef %1889, ptr noundef %1890)
  br label %1892

1892:                                             ; preds = %1861
  %1893 = load i64, ptr %12, align 8, !tbaa !11
  %1894 = add nsw i64 %1893, 1
  store i64 %1894, ptr %12, align 8, !tbaa !11
  br label %1856, !llvm.loop !79

1895:                                             ; preds = %1856
  %1896 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef %37, ptr noundef %22, i1 noundef zeroext false, ptr noundef %1896)
  br label %1897

1897:                                             ; preds = %1895
  %1898 = load i64, ptr %48, align 8, !tbaa !11
  %1899 = add nsw i64 %1898, 1
  store i64 %1899, ptr %48, align 8, !tbaa !11
  br label %1657, !llvm.loop !80

1900:                                             ; preds = %1657
  br label %1901

1901:                                             ; preds = %1900
  %1902 = load i64, ptr %11, align 8, !tbaa !11
  %1903 = add nsw i64 %1902, 1
  store i64 %1903, ptr %11, align 8, !tbaa !11
  br label %1443, !llvm.loop !81

1904:                                             ; preds = %1443
  store i64 1, ptr %5, align 8, !tbaa !11
  br label %1905

1905:                                             ; preds = %2124, %1904
  %1906 = load i64, ptr %5, align 8, !tbaa !11
  %1907 = icmp sle i64 %1906, 30
  br i1 %1907, label %1908, label %2127

1908:                                             ; preds = %1905
  %1909 = load i64, ptr %5, align 8, !tbaa !11
  %1910 = load i64, ptr %5, align 8, !tbaa !11
  %1911 = mul nsw i64 %1909, %1910
  %1912 = load i64, ptr %5, align 8, !tbaa !11
  %1913 = sub nsw i64 %1911, %1912
  store i64 %1913, ptr %6, align 8, !tbaa !11
  br label %1914

1914:                                             ; preds = %2120, %1908
  %1915 = load i64, ptr %5, align 8, !tbaa !11
  %1916 = icmp sgt i64 %1915, 1
  br i1 %1916, label %1917, label %1927

1917:                                             ; preds = %1914
  %1918 = load i64, ptr %6, align 8, !tbaa !11
  %1919 = sitofp i64 %1918 to double
  %1920 = load i64, ptr %5, align 8, !tbaa !11
  %1921 = load i64, ptr %5, align 8, !tbaa !11
  %1922 = mul nsw i64 %1920, %1921
  %1923 = load i64, ptr %5, align 8, !tbaa !11
  %1924 = sub nsw i64 %1922, %1923
  %1925 = sitofp i64 %1924 to double
  %1926 = fdiv double %1919, %1925
  store double %1926, ptr %7, align 8, !tbaa !13
  br label %1928

1927:                                             ; preds = %1914
  store double 1.000000e+00, ptr %7, align 8, !tbaa !13
  br label %1928

1928:                                             ; preds = %1927, %1917
  %1929 = load i64, ptr %5, align 8, !tbaa !11
  %1930 = load i64, ptr %5, align 8, !tbaa !11
  %1931 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %8, i64 noundef %1929, i64 noundef %1930, ptr noundef %1931)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %1932

1932:                                             ; preds = %2011, %1928
  %1933 = load i64, ptr %12, align 8, !tbaa !11
  %1934 = load i64, ptr %5, align 8, !tbaa !11
  %1935 = sub nsw i64 %1934, 1
  %1936 = icmp sle i64 %1933, %1935
  br i1 %1936, label %1937, label %2014

1937:                                             ; preds = %1932
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %1938

1938:                                             ; preds = %2007, %1937
  %1939 = load i64, ptr %13, align 8, !tbaa !11
  %1940 = load i64, ptr %12, align 8, !tbaa !11
  %1941 = icmp sle i64 %1939, %1940
  br i1 %1941, label %1942, label %2010

1942:                                             ; preds = %1938
  %1943 = load i64, ptr %12, align 8, !tbaa !11
  %1944 = load i64, ptr %13, align 8, !tbaa !11
  %1945 = icmp eq i64 %1943, %1944
  br i1 %1945, label %1946, label %1956

1946:                                             ; preds = %1942
  %1947 = load ptr, ptr %3, align 8, !tbaa !5
  %1948 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1947)
  %1949 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1950 = load ptr, ptr %1949, align 8, !tbaa !15
  %1951 = load i64, ptr %12, align 8, !tbaa !11
  %1952 = getelementptr inbounds ptr, ptr %1950, i64 %1951
  %1953 = load ptr, ptr %1952, align 8, !tbaa !5
  %1954 = load i64, ptr %12, align 8, !tbaa !11
  %1955 = getelementptr inbounds double, ptr %1953, i64 %1954
  store double %1948, ptr %1955, align 8, !tbaa !13
  br label %2007

1956:                                             ; preds = %1942
  %1957 = load ptr, ptr %3, align 8, !tbaa !5
  %1958 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1957)
  %1959 = load double, ptr %7, align 8, !tbaa !13
  %1960 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1958, double noundef %1959)
  br i1 %1960, label %1961, label %1991

1961:                                             ; preds = %1956
  %1962 = load i64, ptr %5, align 8, !tbaa !11
  %1963 = sitofp i64 %1962 to double
  %1964 = fdiv double 5.000000e-01, %1963
  %1965 = load ptr, ptr %3, align 8, !tbaa !5
  %1966 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %1965)
  %1967 = fsub double %1966, 5.000000e-01
  %1968 = fmul double %1964, %1967
  %1969 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1970 = load ptr, ptr %1969, align 8, !tbaa !15
  %1971 = load i64, ptr %12, align 8, !tbaa !11
  %1972 = getelementptr inbounds ptr, ptr %1970, i64 %1971
  %1973 = load ptr, ptr %1972, align 8, !tbaa !5
  %1974 = load i64, ptr %13, align 8, !tbaa !11
  %1975 = getelementptr inbounds double, ptr %1973, i64 %1974
  store double %1968, ptr %1975, align 8, !tbaa !13
  %1976 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1977 = load ptr, ptr %1976, align 8, !tbaa !15
  %1978 = load i64, ptr %12, align 8, !tbaa !11
  %1979 = getelementptr inbounds ptr, ptr %1977, i64 %1978
  %1980 = load ptr, ptr %1979, align 8, !tbaa !5
  %1981 = load i64, ptr %13, align 8, !tbaa !11
  %1982 = getelementptr inbounds double, ptr %1980, i64 %1981
  %1983 = load double, ptr %1982, align 8, !tbaa !13
  %1984 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1985 = load ptr, ptr %1984, align 8, !tbaa !15
  %1986 = load i64, ptr %13, align 8, !tbaa !11
  %1987 = getelementptr inbounds ptr, ptr %1985, i64 %1986
  %1988 = load ptr, ptr %1987, align 8, !tbaa !5
  %1989 = load i64, ptr %12, align 8, !tbaa !11
  %1990 = getelementptr inbounds double, ptr %1988, i64 %1989
  store double %1983, ptr %1990, align 8, !tbaa !13
  br label %2006

1991:                                             ; preds = %1956
  %1992 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %1993 = load ptr, ptr %1992, align 8, !tbaa !15
  %1994 = load i64, ptr %12, align 8, !tbaa !11
  %1995 = getelementptr inbounds ptr, ptr %1993, i64 %1994
  %1996 = load ptr, ptr %1995, align 8, !tbaa !5
  %1997 = load i64, ptr %13, align 8, !tbaa !11
  %1998 = getelementptr inbounds double, ptr %1996, i64 %1997
  store double 0.000000e+00, ptr %1998, align 8, !tbaa !13
  %1999 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2000 = load ptr, ptr %1999, align 8, !tbaa !15
  %2001 = load i64, ptr %13, align 8, !tbaa !11
  %2002 = getelementptr inbounds ptr, ptr %2000, i64 %2001
  %2003 = load ptr, ptr %2002, align 8, !tbaa !5
  %2004 = load i64, ptr %12, align 8, !tbaa !11
  %2005 = getelementptr inbounds double, ptr %2003, i64 %2004
  store double 0.000000e+00, ptr %2005, align 8, !tbaa !13
  br label %2006

2006:                                             ; preds = %1991, %1961
  br label %2007

2007:                                             ; preds = %2006, %1946
  %2008 = load i64, ptr %13, align 8, !tbaa !11
  %2009 = add nsw i64 %2008, 1
  store i64 %2009, ptr %13, align 8, !tbaa !11
  br label %1938, !llvm.loop !82

2010:                                             ; preds = %1938
  br label %2011

2011:                                             ; preds = %2010
  %2012 = load i64, ptr %12, align 8, !tbaa !11
  %2013 = add nsw i64 %2012, 1
  store i64 %2013, ptr %12, align 8, !tbaa !11
  br label %1932, !llvm.loop !83

2014:                                             ; preds = %1932
  %2015 = load i64, ptr %5, align 8, !tbaa !11
  %2016 = load ptr, ptr %3, align 8, !tbaa !5
  %2017 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %2015, ptr noundef %2016)
  store i64 %2017, ptr %12, align 8, !tbaa !11
  %2018 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2019 = load ptr, ptr %2018, align 8, !tbaa !15
  %2020 = load i64, ptr %12, align 8, !tbaa !11
  %2021 = getelementptr inbounds ptr, ptr %2019, i64 %2020
  %2022 = load ptr, ptr %2021, align 8, !tbaa !5
  %2023 = load i64, ptr %12, align 8, !tbaa !11
  %2024 = getelementptr inbounds double, ptr %2022, i64 %2023
  store double -1.000000e+00, ptr %2024, align 8, !tbaa !13
  %2025 = load i64, ptr %5, align 8, !tbaa !11
  %2026 = load i64, ptr %5, align 8, !tbaa !11
  %2027 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %2025, i64 noundef %2026, i64 noundef 0, ptr noundef %22, ptr noundef %2027)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2028

2028:                                             ; preds = %2070, %2014
  %2029 = load i64, ptr %12, align 8, !tbaa !11
  %2030 = load i64, ptr %5, align 8, !tbaa !11
  %2031 = sub nsw i64 %2030, 1
  %2032 = icmp sle i64 %2029, %2031
  br i1 %2032, label %2033, label %2073

2033:                                             ; preds = %2028
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2034

2034:                                             ; preds = %2066, %2033
  %2035 = load i64, ptr %13, align 8, !tbaa !11
  %2036 = load i64, ptr %5, align 8, !tbaa !11
  %2037 = sub nsw i64 %2036, 1
  %2038 = icmp sle i64 %2035, %2037
  br i1 %2038, label %2039, label %2069

2039:                                             ; preds = %2034
  %2040 = load i64, ptr %13, align 8, !tbaa !11
  %2041 = load i64, ptr %12, align 8, !tbaa !11
  %2042 = icmp sle i64 %2040, %2041
  br i1 %2042, label %2043, label %2046

2043:                                             ; preds = %2039
  %2044 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2045 = trunc i8 %2044 to i1
  br i1 %2045, label %2046, label %2053

2046:                                             ; preds = %2043, %2039
  %2047 = load i64, ptr %13, align 8, !tbaa !11
  %2048 = load i64, ptr %12, align 8, !tbaa !11
  %2049 = icmp sge i64 %2047, %2048
  br i1 %2049, label %2050, label %2065

2050:                                             ; preds = %2046
  %2051 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2052 = trunc i8 %2051 to i1
  br i1 %2052, label %2053, label %2065

2053:                                             ; preds = %2050, %2043
  %2054 = load i64, ptr %12, align 8, !tbaa !11
  %2055 = load i64, ptr %13, align 8, !tbaa !11
  %2056 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2057 = load ptr, ptr %2056, align 8, !tbaa !15
  %2058 = load i64, ptr %12, align 8, !tbaa !11
  %2059 = getelementptr inbounds ptr, ptr %2057, i64 %2058
  %2060 = load ptr, ptr %2059, align 8, !tbaa !5
  %2061 = load i64, ptr %13, align 8, !tbaa !11
  %2062 = getelementptr inbounds double, ptr %2060, i64 %2061
  %2063 = load double, ptr %2062, align 8, !tbaa !13
  %2064 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %2054, i64 noundef %2055, double noundef %2063, ptr noundef %2064)
  br label %2065

2065:                                             ; preds = %2053, %2050, %2046
  br label %2066

2066:                                             ; preds = %2065
  %2067 = load i64, ptr %13, align 8, !tbaa !11
  %2068 = add nsw i64 %2067, 1
  store i64 %2068, ptr %13, align 8, !tbaa !11
  br label %2034, !llvm.loop !84

2069:                                             ; preds = %2034
  br label %2070

2070:                                             ; preds = %2069
  %2071 = load i64, ptr %12, align 8, !tbaa !11
  %2072 = add nsw i64 %2071, 1
  store i64 %2072, ptr %12, align 8, !tbaa !11
  br label %2028, !llvm.loop !85

2073:                                             ; preds = %2028
  store i64 0, ptr %40, align 8, !tbaa !11
  %2074 = load i64, ptr %34, align 8, !tbaa !11
  %2075 = load i64, ptr %35, align 8, !tbaa !11
  %2076 = load i64, ptr %34, align 8, !tbaa !11
  %2077 = sub nsw i64 %2075, %2076
  %2078 = add nsw i64 %2077, 1
  %2079 = load ptr, ptr %3, align 8, !tbaa !5
  %2080 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %2078, ptr noundef %2079)
  %2081 = add nsw i64 %2074, %2080
  store i64 %2081, ptr %39, align 8, !tbaa !11
  %2082 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %22, ptr noundef %24, ptr noundef %2082)
  %2083 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2084 = trunc i8 %2083 to i1
  %2085 = load i64, ptr %40, align 8, !tbaa !11
  %2086 = load i64, ptr %39, align 8, !tbaa !11
  %2087 = load ptr, ptr %3, align 8, !tbaa !5
  %2088 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %24, i1 noundef zeroext %2084, i64 noundef %2085, i64 noundef %2086, ptr noundef %37, ptr noundef %2087)
  br i1 %2088, label %2093, label %2089

2089:                                             ; preds = %2073
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25011, ptr noundef @.str.383)
  %2090 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2090)
  %2091 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2092 = trunc i8 %2091 to i1
  store i1 %2092, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2093:                                             ; preds = %2073
  %2094 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2095 = trunc i8 %2094 to i1
  %2096 = load ptr, ptr %3, align 8, !tbaa !5
  %2097 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %2095, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %2096)
  br i1 %2097, label %2098, label %2102

2098:                                             ; preds = %2093
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25017, ptr noundef @.str.384)
  %2099 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2099)
  %2100 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2101 = trunc i8 %2100 to i1
  store i1 %2101, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2102:                                             ; preds = %2093
  %2103 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %22, ptr noundef %24, ptr noundef %2103)
  %2104 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl24sparsecholeskysetmodtypeEPNS_27sparsedecompositionanalysisElddddPNS_8ae_stateE(ptr noundef %37, i64 noundef 1, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, ptr noundef %2104)
  %2105 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2106 = trunc i8 %2105 to i1
  %2107 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef %37, ptr noundef %24, i1 noundef zeroext %2106, ptr noundef %2107)
  %2108 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2109 = trunc i8 %2108 to i1
  %2110 = load ptr, ptr %3, align 8, !tbaa !5
  %2111 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %2109, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %2110)
  br i1 %2111, label %2116, label %2112

2112:                                             ; preds = %2102
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25026, ptr noundef @.str.385)
  %2113 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2113)
  %2114 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2115 = trunc i8 %2114 to i1
  store i1 %2115, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2116:                                             ; preds = %2102
  %2117 = load i64, ptr %6, align 8, !tbaa !11
  %2118 = icmp eq i64 %2117, 0
  br i1 %2118, label %2119, label %2120

2119:                                             ; preds = %2116
  br label %2123

2120:                                             ; preds = %2116
  %2121 = load i64, ptr %6, align 8, !tbaa !11
  %2122 = sdiv i64 %2121, 2
  store i64 %2122, ptr %6, align 8, !tbaa !11
  br label %1914, !llvm.loop !86

2123:                                             ; preds = %2119
  br label %2124

2124:                                             ; preds = %2123
  %2125 = load i64, ptr %5, align 8, !tbaa !11
  %2126 = add nsw i64 %2125, 1
  store i64 %2126, ptr %5, align 8, !tbaa !11
  br label %1905, !llvm.loop !87

2127:                                             ; preds = %1905
  store i64 1, ptr %42, align 8, !tbaa !11
  store i64 3, ptr %41, align 8, !tbaa !11
  %2128 = load i64, ptr %41, align 8, !tbaa !11
  store i64 %2128, ptr %43, align 8, !tbaa !11
  store i64 1, ptr %42, align 8, !tbaa !11
  br label %2129

2129:                                             ; preds = %2769, %2127
  %2130 = load i64, ptr %42, align 8, !tbaa !11
  %2131 = load ptr, ptr %3, align 8, !tbaa !5
  %2132 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %2131)
  %2133 = icmp sle i64 %2130, %2132
  br i1 %2133, label %2134, label %2772

2134:                                             ; preds = %2129
  store i64 1, ptr %41, align 8, !tbaa !11
  br label %2135

2135:                                             ; preds = %2765, %2134
  %2136 = load i64, ptr %41, align 8, !tbaa !11
  %2137 = load ptr, ptr %3, align 8, !tbaa !5
  %2138 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %2137)
  %2139 = icmp sle i64 %2136, %2138
  br i1 %2139, label %2140, label %2768

2140:                                             ; preds = %2135
  %2141 = load i64, ptr %41, align 8, !tbaa !11
  store i64 %2141, ptr %43, align 8, !tbaa !11
  br label %2142

2142:                                             ; preds = %2761, %2140
  %2143 = load i64, ptr %43, align 8, !tbaa !11
  %2144 = load ptr, ptr %3, align 8, !tbaa !5
  %2145 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %2144)
  %2146 = icmp sle i64 %2143, %2145
  br i1 %2146, label %2147, label %2764

2147:                                             ; preds = %2142
  store i64 10, ptr %44, align 8, !tbaa !11
  %2148 = load ptr, ptr %3, align 8, !tbaa !5
  %2149 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef 10, ptr noundef %2148)
  %2150 = add nsw i64 2, %2149
  store i64 %2150, ptr %45, align 8, !tbaa !11
  %2151 = load i64, ptr %42, align 8, !tbaa !11
  %2152 = load i64, ptr %43, align 8, !tbaa !11
  %2153 = add nsw i64 %2151, %2152
  %2154 = load i64, ptr %44, align 8, !tbaa !11
  %2155 = mul nsw i64 2, %2154
  %2156 = add nsw i64 %2153, %2155
  %2157 = load i64, ptr %45, align 8, !tbaa !11
  %2158 = add nsw i64 %2156, %2157
  store i64 %2158, ptr %5, align 8, !tbaa !11
  %2159 = load i64, ptr %5, align 8, !tbaa !11
  %2160 = load i64, ptr %5, align 8, !tbaa !11
  %2161 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %8, i64 noundef %2159, i64 noundef %2160, ptr noundef %2161)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2162

2162:                                             ; preds = %2201, %2147
  %2163 = load i64, ptr %12, align 8, !tbaa !11
  %2164 = load i64, ptr %5, align 8, !tbaa !11
  %2165 = sub nsw i64 %2164, 1
  %2166 = icmp sle i64 %2163, %2165
  br i1 %2166, label %2167, label %2204

2167:                                             ; preds = %2162
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2168

2168:                                             ; preds = %2197, %2167
  %2169 = load i64, ptr %13, align 8, !tbaa !11
  %2170 = load i64, ptr %5, align 8, !tbaa !11
  %2171 = sub nsw i64 %2170, 1
  %2172 = icmp sle i64 %2169, %2171
  br i1 %2172, label %2173, label %2200

2173:                                             ; preds = %2168
  %2174 = load i64, ptr %12, align 8, !tbaa !11
  %2175 = load i64, ptr %13, align 8, !tbaa !11
  %2176 = icmp eq i64 %2174, %2175
  br i1 %2176, label %2177, label %2188

2177:                                             ; preds = %2173
  %2178 = load ptr, ptr %3, align 8, !tbaa !5
  %2179 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2178)
  %2180 = fadd double 1.000000e+00, %2179
  %2181 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2182 = load ptr, ptr %2181, align 8, !tbaa !15
  %2183 = load i64, ptr %12, align 8, !tbaa !11
  %2184 = getelementptr inbounds ptr, ptr %2182, i64 %2183
  %2185 = load ptr, ptr %2184, align 8, !tbaa !5
  %2186 = load i64, ptr %13, align 8, !tbaa !11
  %2187 = getelementptr inbounds double, ptr %2185, i64 %2186
  store double %2180, ptr %2187, align 8, !tbaa !13
  br label %2196

2188:                                             ; preds = %2173
  %2189 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2190 = load ptr, ptr %2189, align 8, !tbaa !15
  %2191 = load i64, ptr %12, align 8, !tbaa !11
  %2192 = getelementptr inbounds ptr, ptr %2190, i64 %2191
  %2193 = load ptr, ptr %2192, align 8, !tbaa !5
  %2194 = load i64, ptr %13, align 8, !tbaa !11
  %2195 = getelementptr inbounds double, ptr %2193, i64 %2194
  store double 0.000000e+00, ptr %2195, align 8, !tbaa !13
  br label %2196

2196:                                             ; preds = %2188, %2177
  br label %2197

2197:                                             ; preds = %2196
  %2198 = load i64, ptr %13, align 8, !tbaa !11
  %2199 = add nsw i64 %2198, 1
  store i64 %2199, ptr %13, align 8, !tbaa !11
  br label %2168, !llvm.loop !88

2200:                                             ; preds = %2168
  br label %2201

2201:                                             ; preds = %2200
  %2202 = load i64, ptr %12, align 8, !tbaa !11
  %2203 = add nsw i64 %2202, 1
  store i64 %2203, ptr %12, align 8, !tbaa !11
  br label %2162, !llvm.loop !89

2204:                                             ; preds = %2162
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2205

2205:                                             ; preds = %2266, %2204
  %2206 = load i64, ptr %13, align 8, !tbaa !11
  %2207 = load i64, ptr %42, align 8, !tbaa !11
  %2208 = sub nsw i64 %2207, 1
  %2209 = icmp sle i64 %2206, %2208
  br i1 %2209, label %2210, label %2269

2210:                                             ; preds = %2205
  %2211 = load i64, ptr %13, align 8, !tbaa !11
  %2212 = add nsw i64 %2211, 1
  store i64 %2212, ptr %12, align 8, !tbaa !11
  br label %2213

2213:                                             ; preds = %2235, %2210
  %2214 = load i64, ptr %12, align 8, !tbaa !11
  %2215 = load i64, ptr %42, align 8, !tbaa !11
  %2216 = load i64, ptr %41, align 8, !tbaa !11
  %2217 = add nsw i64 %2215, %2216
  %2218 = sub nsw i64 %2217, 1
  %2219 = icmp sle i64 %2214, %2218
  br i1 %2219, label %2220, label %2238

2220:                                             ; preds = %2213
  %2221 = load i64, ptr %5, align 8, !tbaa !11
  %2222 = sitofp i64 %2221 to double
  %2223 = fdiv double 5.000000e-01, %2222
  %2224 = load ptr, ptr %3, align 8, !tbaa !5
  %2225 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2224)
  %2226 = fsub double %2225, 5.000000e-01
  %2227 = fmul double %2223, %2226
  %2228 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2229 = load ptr, ptr %2228, align 8, !tbaa !15
  %2230 = load i64, ptr %12, align 8, !tbaa !11
  %2231 = getelementptr inbounds ptr, ptr %2229, i64 %2230
  %2232 = load ptr, ptr %2231, align 8, !tbaa !5
  %2233 = load i64, ptr %13, align 8, !tbaa !11
  %2234 = getelementptr inbounds double, ptr %2232, i64 %2233
  store double %2227, ptr %2234, align 8, !tbaa !13
  br label %2235

2235:                                             ; preds = %2220
  %2236 = load i64, ptr %12, align 8, !tbaa !11
  %2237 = add nsw i64 %2236, 1
  store i64 %2237, ptr %12, align 8, !tbaa !11
  br label %2213, !llvm.loop !90

2238:                                             ; preds = %2213
  %2239 = load i64, ptr %5, align 8, !tbaa !11
  %2240 = load i64, ptr %45, align 8, !tbaa !11
  %2241 = sub nsw i64 %2239, %2240
  store i64 %2241, ptr %12, align 8, !tbaa !11
  br label %2242

2242:                                             ; preds = %2262, %2238
  %2243 = load i64, ptr %12, align 8, !tbaa !11
  %2244 = load i64, ptr %5, align 8, !tbaa !11
  %2245 = sub nsw i64 %2244, 1
  %2246 = icmp sle i64 %2243, %2245
  br i1 %2246, label %2247, label %2265

2247:                                             ; preds = %2242
  %2248 = load i64, ptr %5, align 8, !tbaa !11
  %2249 = sitofp i64 %2248 to double
  %2250 = fdiv double 5.000000e-01, %2249
  %2251 = load ptr, ptr %3, align 8, !tbaa !5
  %2252 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2251)
  %2253 = fsub double %2252, 5.000000e-01
  %2254 = fmul double %2250, %2253
  %2255 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2256 = load ptr, ptr %2255, align 8, !tbaa !15
  %2257 = load i64, ptr %12, align 8, !tbaa !11
  %2258 = getelementptr inbounds ptr, ptr %2256, i64 %2257
  %2259 = load ptr, ptr %2258, align 8, !tbaa !5
  %2260 = load i64, ptr %13, align 8, !tbaa !11
  %2261 = getelementptr inbounds double, ptr %2259, i64 %2260
  store double %2254, ptr %2261, align 8, !tbaa !13
  br label %2262

2262:                                             ; preds = %2247
  %2263 = load i64, ptr %12, align 8, !tbaa !11
  %2264 = add nsw i64 %2263, 1
  store i64 %2264, ptr %12, align 8, !tbaa !11
  br label %2242, !llvm.loop !91

2265:                                             ; preds = %2242
  br label %2266

2266:                                             ; preds = %2265
  %2267 = load i64, ptr %13, align 8, !tbaa !11
  %2268 = add nsw i64 %2267, 1
  store i64 %2268, ptr %13, align 8, !tbaa !11
  br label %2205, !llvm.loop !92

2269:                                             ; preds = %2205
  %2270 = load i64, ptr %42, align 8, !tbaa !11
  store i64 %2270, ptr %13, align 8, !tbaa !11
  br label %2271

2271:                                             ; preds = %2336, %2269
  %2272 = load i64, ptr %13, align 8, !tbaa !11
  %2273 = load i64, ptr %42, align 8, !tbaa !11
  %2274 = load i64, ptr %43, align 8, !tbaa !11
  %2275 = add nsw i64 %2273, %2274
  %2276 = sub nsw i64 %2275, 1
  %2277 = icmp sle i64 %2272, %2276
  br i1 %2277, label %2278, label %2339

2278:                                             ; preds = %2271
  %2279 = load i64, ptr %13, align 8, !tbaa !11
  %2280 = add nsw i64 %2279, 1
  store i64 %2280, ptr %12, align 8, !tbaa !11
  br label %2281

2281:                                             ; preds = %2305, %2278
  %2282 = load i64, ptr %12, align 8, !tbaa !11
  %2283 = load i64, ptr %42, align 8, !tbaa !11
  %2284 = load i64, ptr %43, align 8, !tbaa !11
  %2285 = add nsw i64 %2283, %2284
  %2286 = load i64, ptr %44, align 8, !tbaa !11
  %2287 = add nsw i64 %2285, %2286
  %2288 = sub nsw i64 %2287, 1
  %2289 = icmp sle i64 %2282, %2288
  br i1 %2289, label %2290, label %2308

2290:                                             ; preds = %2281
  %2291 = load i64, ptr %5, align 8, !tbaa !11
  %2292 = sitofp i64 %2291 to double
  %2293 = fdiv double 5.000000e-01, %2292
  %2294 = load ptr, ptr %3, align 8, !tbaa !5
  %2295 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2294)
  %2296 = fsub double %2295, 5.000000e-01
  %2297 = fmul double %2293, %2296
  %2298 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2299 = load ptr, ptr %2298, align 8, !tbaa !15
  %2300 = load i64, ptr %12, align 8, !tbaa !11
  %2301 = getelementptr inbounds ptr, ptr %2299, i64 %2300
  %2302 = load ptr, ptr %2301, align 8, !tbaa !5
  %2303 = load i64, ptr %13, align 8, !tbaa !11
  %2304 = getelementptr inbounds double, ptr %2302, i64 %2303
  store double %2297, ptr %2304, align 8, !tbaa !13
  br label %2305

2305:                                             ; preds = %2290
  %2306 = load i64, ptr %12, align 8, !tbaa !11
  %2307 = add nsw i64 %2306, 1
  store i64 %2307, ptr %12, align 8, !tbaa !11
  br label %2281, !llvm.loop !93

2308:                                             ; preds = %2281
  %2309 = load i64, ptr %5, align 8, !tbaa !11
  %2310 = load i64, ptr %45, align 8, !tbaa !11
  %2311 = sub nsw i64 %2309, %2310
  store i64 %2311, ptr %12, align 8, !tbaa !11
  br label %2312

2312:                                             ; preds = %2332, %2308
  %2313 = load i64, ptr %12, align 8, !tbaa !11
  %2314 = load i64, ptr %5, align 8, !tbaa !11
  %2315 = sub nsw i64 %2314, 1
  %2316 = icmp sle i64 %2313, %2315
  br i1 %2316, label %2317, label %2335

2317:                                             ; preds = %2312
  %2318 = load i64, ptr %5, align 8, !tbaa !11
  %2319 = sitofp i64 %2318 to double
  %2320 = fdiv double 5.000000e-01, %2319
  %2321 = load ptr, ptr %3, align 8, !tbaa !5
  %2322 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2321)
  %2323 = fsub double %2322, 5.000000e-01
  %2324 = fmul double %2320, %2323
  %2325 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2326 = load ptr, ptr %2325, align 8, !tbaa !15
  %2327 = load i64, ptr %12, align 8, !tbaa !11
  %2328 = getelementptr inbounds ptr, ptr %2326, i64 %2327
  %2329 = load ptr, ptr %2328, align 8, !tbaa !5
  %2330 = load i64, ptr %13, align 8, !tbaa !11
  %2331 = getelementptr inbounds double, ptr %2329, i64 %2330
  store double %2324, ptr %2331, align 8, !tbaa !13
  br label %2332

2332:                                             ; preds = %2317
  %2333 = load i64, ptr %12, align 8, !tbaa !11
  %2334 = add nsw i64 %2333, 1
  store i64 %2334, ptr %12, align 8, !tbaa !11
  br label %2312, !llvm.loop !94

2335:                                             ; preds = %2312
  br label %2336

2336:                                             ; preds = %2335
  %2337 = load i64, ptr %13, align 8, !tbaa !11
  %2338 = add nsw i64 %2337, 1
  store i64 %2338, ptr %13, align 8, !tbaa !11
  br label %2271, !llvm.loop !95

2339:                                             ; preds = %2271
  %2340 = load i64, ptr %42, align 8, !tbaa !11
  %2341 = load i64, ptr %43, align 8, !tbaa !11
  %2342 = add nsw i64 %2340, %2341
  store i64 %2342, ptr %13, align 8, !tbaa !11
  br label %2343

2343:                                             ; preds = %2375, %2339
  %2344 = load i64, ptr %13, align 8, !tbaa !11
  %2345 = load i64, ptr %5, align 8, !tbaa !11
  %2346 = sub nsw i64 %2345, 1
  %2347 = icmp sle i64 %2344, %2346
  br i1 %2347, label %2348, label %2378

2348:                                             ; preds = %2343
  %2349 = load i64, ptr %13, align 8, !tbaa !11
  %2350 = add nsw i64 %2349, 1
  store i64 %2350, ptr %12, align 8, !tbaa !11
  br label %2351

2351:                                             ; preds = %2371, %2348
  %2352 = load i64, ptr %12, align 8, !tbaa !11
  %2353 = load i64, ptr %5, align 8, !tbaa !11
  %2354 = sub nsw i64 %2353, 1
  %2355 = icmp sle i64 %2352, %2354
  br i1 %2355, label %2356, label %2374

2356:                                             ; preds = %2351
  %2357 = load i64, ptr %5, align 8, !tbaa !11
  %2358 = sitofp i64 %2357 to double
  %2359 = fdiv double 5.000000e-01, %2358
  %2360 = load ptr, ptr %3, align 8, !tbaa !5
  %2361 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2360)
  %2362 = fsub double %2361, 5.000000e-01
  %2363 = fmul double %2359, %2362
  %2364 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2365 = load ptr, ptr %2364, align 8, !tbaa !15
  %2366 = load i64, ptr %12, align 8, !tbaa !11
  %2367 = getelementptr inbounds ptr, ptr %2365, i64 %2366
  %2368 = load ptr, ptr %2367, align 8, !tbaa !5
  %2369 = load i64, ptr %13, align 8, !tbaa !11
  %2370 = getelementptr inbounds double, ptr %2368, i64 %2369
  store double %2363, ptr %2370, align 8, !tbaa !13
  br label %2371

2371:                                             ; preds = %2356
  %2372 = load i64, ptr %12, align 8, !tbaa !11
  %2373 = add nsw i64 %2372, 1
  store i64 %2373, ptr %12, align 8, !tbaa !11
  br label %2351, !llvm.loop !96

2374:                                             ; preds = %2351
  br label %2375

2375:                                             ; preds = %2374
  %2376 = load i64, ptr %13, align 8, !tbaa !11
  %2377 = add nsw i64 %2376, 1
  store i64 %2377, ptr %13, align 8, !tbaa !11
  br label %2343, !llvm.loop !97

2378:                                             ; preds = %2343
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2379

2379:                                             ; preds = %2410, %2378
  %2380 = load i64, ptr %12, align 8, !tbaa !11
  %2381 = load i64, ptr %5, align 8, !tbaa !11
  %2382 = sub nsw i64 %2381, 1
  %2383 = icmp sle i64 %2380, %2382
  br i1 %2383, label %2384, label %2413

2384:                                             ; preds = %2379
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2385

2385:                                             ; preds = %2406, %2384
  %2386 = load i64, ptr %13, align 8, !tbaa !11
  %2387 = load i64, ptr %12, align 8, !tbaa !11
  %2388 = sub nsw i64 %2387, 1
  %2389 = icmp sle i64 %2386, %2388
  br i1 %2389, label %2390, label %2409

2390:                                             ; preds = %2385
  %2391 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2392 = load ptr, ptr %2391, align 8, !tbaa !15
  %2393 = load i64, ptr %12, align 8, !tbaa !11
  %2394 = getelementptr inbounds ptr, ptr %2392, i64 %2393
  %2395 = load ptr, ptr %2394, align 8, !tbaa !5
  %2396 = load i64, ptr %13, align 8, !tbaa !11
  %2397 = getelementptr inbounds double, ptr %2395, i64 %2396
  %2398 = load double, ptr %2397, align 8, !tbaa !13
  %2399 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2400 = load ptr, ptr %2399, align 8, !tbaa !15
  %2401 = load i64, ptr %13, align 8, !tbaa !11
  %2402 = getelementptr inbounds ptr, ptr %2400, i64 %2401
  %2403 = load ptr, ptr %2402, align 8, !tbaa !5
  %2404 = load i64, ptr %12, align 8, !tbaa !11
  %2405 = getelementptr inbounds double, ptr %2403, i64 %2404
  store double %2398, ptr %2405, align 8, !tbaa !13
  br label %2406

2406:                                             ; preds = %2390
  %2407 = load i64, ptr %13, align 8, !tbaa !11
  %2408 = add nsw i64 %2407, 1
  store i64 %2408, ptr %13, align 8, !tbaa !11
  br label %2385, !llvm.loop !98

2409:                                             ; preds = %2385
  br label %2410

2410:                                             ; preds = %2409
  %2411 = load i64, ptr %12, align 8, !tbaa !11
  %2412 = add nsw i64 %2411, 1
  store i64 %2412, ptr %12, align 8, !tbaa !11
  br label %2379, !llvm.loop !99

2413:                                             ; preds = %2379
  store i8 0, ptr %19, align 1, !tbaa !9
  %2414 = load i64, ptr %5, align 8, !tbaa !11
  %2415 = load i64, ptr %5, align 8, !tbaa !11
  %2416 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %2414, i64 noundef %2415, i64 noundef 0, ptr noundef %22, ptr noundef %2416)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2417

2417:                                             ; preds = %2444, %2413
  %2418 = load i64, ptr %12, align 8, !tbaa !11
  %2419 = load i64, ptr %5, align 8, !tbaa !11
  %2420 = sub nsw i64 %2419, 1
  %2421 = icmp sle i64 %2418, %2420
  br i1 %2421, label %2422, label %2447

2422:                                             ; preds = %2417
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2423

2423:                                             ; preds = %2440, %2422
  %2424 = load i64, ptr %13, align 8, !tbaa !11
  %2425 = load i64, ptr %5, align 8, !tbaa !11
  %2426 = sub nsw i64 %2425, 1
  %2427 = icmp sle i64 %2424, %2426
  br i1 %2427, label %2428, label %2443

2428:                                             ; preds = %2423
  %2429 = load i64, ptr %12, align 8, !tbaa !11
  %2430 = load i64, ptr %13, align 8, !tbaa !11
  %2431 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2432 = load ptr, ptr %2431, align 8, !tbaa !15
  %2433 = load i64, ptr %12, align 8, !tbaa !11
  %2434 = getelementptr inbounds ptr, ptr %2432, i64 %2433
  %2435 = load ptr, ptr %2434, align 8, !tbaa !5
  %2436 = load i64, ptr %13, align 8, !tbaa !11
  %2437 = getelementptr inbounds double, ptr %2435, i64 %2436
  %2438 = load double, ptr %2437, align 8, !tbaa !13
  %2439 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %2429, i64 noundef %2430, double noundef %2438, ptr noundef %2439)
  br label %2440

2440:                                             ; preds = %2428
  %2441 = load i64, ptr %13, align 8, !tbaa !11
  %2442 = add nsw i64 %2441, 1
  store i64 %2442, ptr %13, align 8, !tbaa !11
  br label %2423, !llvm.loop !100

2443:                                             ; preds = %2423
  br label %2444

2444:                                             ; preds = %2443
  %2445 = load i64, ptr %12, align 8, !tbaa !11
  %2446 = add nsw i64 %2445, 1
  store i64 %2446, ptr %12, align 8, !tbaa !11
  br label %2417, !llvm.loop !101

2447:                                             ; preds = %2417
  %2448 = load ptr, ptr %3, align 8, !tbaa !5
  %2449 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef 2, ptr noundef %2448)
  store i64 %2449, ptr %40, align 8, !tbaa !11
  %2450 = load i64, ptr %34, align 8, !tbaa !11
  %2451 = load i64, ptr %35, align 8, !tbaa !11
  %2452 = load i64, ptr %34, align 8, !tbaa !11
  %2453 = sub nsw i64 %2451, %2452
  %2454 = add nsw i64 %2453, 1
  %2455 = load ptr, ptr %3, align 8, !tbaa !5
  %2456 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %2454, ptr noundef %2455)
  %2457 = add nsw i64 %2450, %2456
  store i64 %2457, ptr %39, align 8, !tbaa !11
  %2458 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2459 = trunc i8 %2458 to i1
  %2460 = load i64, ptr %40, align 8, !tbaa !11
  %2461 = load i64, ptr %39, align 8, !tbaa !11
  %2462 = load ptr, ptr %3, align 8, !tbaa !5
  %2463 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext %2459, i64 noundef %2460, i64 noundef %2461, ptr noundef %37, ptr noundef %2462)
  br i1 %2463, label %2468, label %2464

2464:                                             ; preds = %2447
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25159, ptr noundef @.str.386)
  %2465 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2465)
  %2466 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2467 = trunc i8 %2466 to i1
  store i1 %2467, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2468:                                             ; preds = %2447
  %2469 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2470 = trunc i8 %2469 to i1
  %2471 = load ptr, ptr %3, align 8, !tbaa !5
  %2472 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext %2470, ptr noundef %24, ptr noundef %30, ptr noundef %27, ptr noundef %2471)
  br i1 %2472, label %2477, label %2473

2473:                                             ; preds = %2468
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25165, ptr noundef @.str.387)
  %2474 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2474)
  %2475 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2476 = trunc i8 %2475 to i1
  store i1 %2476, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2477:                                             ; preds = %2468
  %2478 = load ptr, ptr %3, align 8, !tbaa !5
  %2479 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %2478)
  br i1 %2479, label %2480, label %2490

2480:                                             ; preds = %2477
  %2481 = load ptr, ptr %3, align 8, !tbaa !5
  %2482 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %2481)
  %2483 = load i64, ptr %5, align 8, !tbaa !11
  %2484 = icmp ne i64 %2482, %2483
  br i1 %2484, label %2490, label %2485

2485:                                             ; preds = %2480
  %2486 = load ptr, ptr %3, align 8, !tbaa !5
  %2487 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %24, ptr noundef %2486)
  %2488 = load i64, ptr %5, align 8, !tbaa !11
  %2489 = icmp ne i64 %2487, %2488
  br label %2490

2490:                                             ; preds = %2485, %2480, %2477
  %2491 = phi i1 [ true, %2480 ], [ true, %2477 ], [ %2489, %2485 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2491, ptr noundef @.str.19, i32 noundef 25173, ptr noundef @.str.388)
  %2492 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 0
  %2493 = load i64, ptr %2492, align 8, !tbaa !29
  %2494 = load i64, ptr %5, align 8, !tbaa !11
  %2495 = icmp ne i64 %2493, %2494
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2495, ptr noundef @.str.19, i32 noundef 25174, ptr noundef @.str.389)
  %2496 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 0
  %2497 = load i64, ptr %2496, align 8, !tbaa !29
  %2498 = load i64, ptr %5, align 8, !tbaa !11
  %2499 = icmp ne i64 %2497, %2498
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2499, ptr noundef @.str.19, i32 noundef 25175, ptr noundef @.str.390)
  %2500 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2501 = trunc i8 %2500 to i1
  br i1 %2501, label %2502, label %2506

2502:                                             ; preds = %2490
  %2503 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2503)
  %2504 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2505 = trunc i8 %2504 to i1
  store i1 %2505, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2506:                                             ; preds = %2490
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2507

2507:                                             ; preds = %2538, %2506
  %2508 = load i64, ptr %12, align 8, !tbaa !11
  %2509 = load i64, ptr %5, align 8, !tbaa !11
  %2510 = sub nsw i64 %2509, 1
  %2511 = icmp sle i64 %2508, %2510
  br i1 %2511, label %2512, label %2541

2512:                                             ; preds = %2507
  %2513 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %2514 = load ptr, ptr %2513, align 8, !tbaa !15
  %2515 = load i64, ptr %12, align 8, !tbaa !11
  %2516 = getelementptr inbounds i64, ptr %2514, i64 %2515
  %2517 = load i64, ptr %2516, align 8, !tbaa !11
  %2518 = load i64, ptr %12, align 8, !tbaa !11
  %2519 = icmp slt i64 %2517, %2518
  br i1 %2519, label %2528, label %2520

2520:                                             ; preds = %2512
  %2521 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %2522 = load ptr, ptr %2521, align 8, !tbaa !15
  %2523 = load i64, ptr %12, align 8, !tbaa !11
  %2524 = getelementptr inbounds i64, ptr %2522, i64 %2523
  %2525 = load i64, ptr %2524, align 8, !tbaa !11
  %2526 = load i64, ptr %5, align 8, !tbaa !11
  %2527 = icmp sge i64 %2525, %2526
  br label %2528

2528:                                             ; preds = %2520, %2512
  %2529 = phi i1 [ true, %2512 ], [ %2527, %2520 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2529, ptr noundef @.str.19, i32 noundef 25183, ptr noundef @.str.391)
  %2530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %2531 = load ptr, ptr %2530, align 8, !tbaa !15
  %2532 = load i64, ptr %12, align 8, !tbaa !11
  %2533 = getelementptr inbounds double, ptr %2531, i64 %2532
  %2534 = load double, ptr %2533, align 8, !tbaa !13
  %2535 = load ptr, ptr %3, align 8, !tbaa !5
  %2536 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2534, ptr noundef %2535)
  %2537 = xor i1 %2536, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2537, ptr noundef @.str.19, i32 noundef 25184, ptr noundef @.str.392)
  br label %2538

2538:                                             ; preds = %2528
  %2539 = load i64, ptr %12, align 8, !tbaa !11
  %2540 = add nsw i64 %2539, 1
  store i64 %2540, ptr %12, align 8, !tbaa !11
  br label %2507, !llvm.loop !102

2541:                                             ; preds = %2507
  %2542 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2543 = trunc i8 %2542 to i1
  br i1 %2543, label %2544, label %2548

2544:                                             ; preds = %2541
  %2545 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2545)
  %2546 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2547 = trunc i8 %2546 to i1
  store i1 %2547, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2548:                                             ; preds = %2541
  store i64 0, ptr %17, align 8, !tbaa !11
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2549

2549:                                             ; preds = %2568, %2548
  %2550 = load ptr, ptr %3, align 8, !tbaa !5
  %2551 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef %24, ptr noundef %17, ptr noundef %18, ptr noundef %12, ptr noundef %13, ptr noundef %16, ptr noundef %2550)
  br i1 %2551, label %2552, label %2570

2552:                                             ; preds = %2549
  %2553 = load i64, ptr %13, align 8, !tbaa !11
  %2554 = load i64, ptr %12, align 8, !tbaa !11
  %2555 = icmp slt i64 %2553, %2554
  br i1 %2555, label %2556, label %2559

2556:                                             ; preds = %2552
  %2557 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2558 = trunc i8 %2557 to i1
  br label %2559

2559:                                             ; preds = %2556, %2552
  %2560 = phi i1 [ false, %2552 ], [ %2558, %2556 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2560, ptr noundef @.str.19, i32 noundef 25195, ptr noundef @.str.393)
  %2561 = load i64, ptr %13, align 8, !tbaa !11
  %2562 = load i64, ptr %12, align 8, !tbaa !11
  %2563 = icmp sgt i64 %2561, %2562
  br i1 %2563, label %2564, label %2568

2564:                                             ; preds = %2559
  %2565 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2566 = trunc i8 %2565 to i1
  %2567 = xor i1 %2566, true
  br label %2568

2568:                                             ; preds = %2564, %2559
  %2569 = phi i1 [ false, %2559 ], [ %2567, %2564 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2569, ptr noundef @.str.19, i32 noundef 25196, ptr noundef @.str.394)
  br label %2549, !llvm.loop !103

2570:                                             ; preds = %2549
  %2571 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2572 = trunc i8 %2571 to i1
  br i1 %2572, label %2573, label %2577

2573:                                             ; preds = %2570
  %2574 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2574)
  %2575 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %2576 = trunc i8 %2575 to i1
  store i1 %2576, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

2577:                                             ; preds = %2570
  %2578 = load i64, ptr %5, align 8, !tbaa !11
  %2579 = load i64, ptr %5, align 8, !tbaa !11
  %2580 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %9, i64 noundef %2578, i64 noundef %2579, ptr noundef %2580)
  %2581 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2582 = trunc i8 %2581 to i1
  br i1 %2582, label %2583, label %2638

2583:                                             ; preds = %2577
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2584

2584:                                             ; preds = %2634, %2583
  %2585 = load i64, ptr %12, align 8, !tbaa !11
  %2586 = load i64, ptr %5, align 8, !tbaa !11
  %2587 = sub nsw i64 %2586, 1
  %2588 = icmp sle i64 %2585, %2587
  br i1 %2588, label %2589, label %2637

2589:                                             ; preds = %2584
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2590

2590:                                             ; preds = %2630, %2589
  %2591 = load i64, ptr %13, align 8, !tbaa !11
  %2592 = load i64, ptr %5, align 8, !tbaa !11
  %2593 = sub nsw i64 %2592, 1
  %2594 = icmp sle i64 %2591, %2593
  br i1 %2594, label %2595, label %2633

2595:                                             ; preds = %2590
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %2596

2596:                                             ; preds = %2618, %2595
  %2597 = load i64, ptr %14, align 8, !tbaa !11
  %2598 = load i64, ptr %5, align 8, !tbaa !11
  %2599 = sub nsw i64 %2598, 1
  %2600 = icmp sle i64 %2597, %2599
  br i1 %2600, label %2601, label %2621

2601:                                             ; preds = %2596
  %2602 = load double, ptr %16, align 8, !tbaa !13
  %2603 = load i64, ptr %14, align 8, !tbaa !11
  %2604 = load i64, ptr %13, align 8, !tbaa !11
  %2605 = load ptr, ptr %3, align 8, !tbaa !5
  %2606 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %2603, i64 noundef %2604, ptr noundef %2605)
  %2607 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %2608 = load ptr, ptr %2607, align 8, !tbaa !15
  %2609 = load i64, ptr %14, align 8, !tbaa !11
  %2610 = getelementptr inbounds double, ptr %2608, i64 %2609
  %2611 = load double, ptr %2610, align 8, !tbaa !13
  %2612 = fmul double %2606, %2611
  %2613 = load i64, ptr %14, align 8, !tbaa !11
  %2614 = load i64, ptr %12, align 8, !tbaa !11
  %2615 = load ptr, ptr %3, align 8, !tbaa !5
  %2616 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %2613, i64 noundef %2614, ptr noundef %2615)
  %2617 = call double @llvm.fmuladd.f64(double %2612, double %2616, double %2602)
  store double %2617, ptr %16, align 8, !tbaa !13
  br label %2618

2618:                                             ; preds = %2601
  %2619 = load i64, ptr %14, align 8, !tbaa !11
  %2620 = add nsw i64 %2619, 1
  store i64 %2620, ptr %14, align 8, !tbaa !11
  br label %2596, !llvm.loop !104

2621:                                             ; preds = %2596
  %2622 = load double, ptr %16, align 8, !tbaa !13
  %2623 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %2624 = load ptr, ptr %2623, align 8, !tbaa !15
  %2625 = load i64, ptr %12, align 8, !tbaa !11
  %2626 = getelementptr inbounds ptr, ptr %2624, i64 %2625
  %2627 = load ptr, ptr %2626, align 8, !tbaa !5
  %2628 = load i64, ptr %13, align 8, !tbaa !11
  %2629 = getelementptr inbounds double, ptr %2627, i64 %2628
  store double %2622, ptr %2629, align 8, !tbaa !13
  br label %2630

2630:                                             ; preds = %2621
  %2631 = load i64, ptr %13, align 8, !tbaa !11
  %2632 = add nsw i64 %2631, 1
  store i64 %2632, ptr %13, align 8, !tbaa !11
  br label %2590, !llvm.loop !105

2633:                                             ; preds = %2590
  br label %2634

2634:                                             ; preds = %2633
  %2635 = load i64, ptr %12, align 8, !tbaa !11
  %2636 = add nsw i64 %2635, 1
  store i64 %2636, ptr %12, align 8, !tbaa !11
  br label %2584, !llvm.loop !106

2637:                                             ; preds = %2584
  br label %2693

2638:                                             ; preds = %2577
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2639

2639:                                             ; preds = %2689, %2638
  %2640 = load i64, ptr %12, align 8, !tbaa !11
  %2641 = load i64, ptr %5, align 8, !tbaa !11
  %2642 = sub nsw i64 %2641, 1
  %2643 = icmp sle i64 %2640, %2642
  br i1 %2643, label %2644, label %2692

2644:                                             ; preds = %2639
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2645

2645:                                             ; preds = %2685, %2644
  %2646 = load i64, ptr %13, align 8, !tbaa !11
  %2647 = load i64, ptr %5, align 8, !tbaa !11
  %2648 = sub nsw i64 %2647, 1
  %2649 = icmp sle i64 %2646, %2648
  br i1 %2649, label %2650, label %2688

2650:                                             ; preds = %2645
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %2651

2651:                                             ; preds = %2673, %2650
  %2652 = load i64, ptr %14, align 8, !tbaa !11
  %2653 = load i64, ptr %5, align 8, !tbaa !11
  %2654 = sub nsw i64 %2653, 1
  %2655 = icmp sle i64 %2652, %2654
  br i1 %2655, label %2656, label %2676

2656:                                             ; preds = %2651
  %2657 = load double, ptr %16, align 8, !tbaa !13
  %2658 = load i64, ptr %13, align 8, !tbaa !11
  %2659 = load i64, ptr %14, align 8, !tbaa !11
  %2660 = load ptr, ptr %3, align 8, !tbaa !5
  %2661 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %2658, i64 noundef %2659, ptr noundef %2660)
  %2662 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %30, i32 0, i32 4
  %2663 = load ptr, ptr %2662, align 8, !tbaa !15
  %2664 = load i64, ptr %14, align 8, !tbaa !11
  %2665 = getelementptr inbounds double, ptr %2663, i64 %2664
  %2666 = load double, ptr %2665, align 8, !tbaa !13
  %2667 = fmul double %2661, %2666
  %2668 = load i64, ptr %12, align 8, !tbaa !11
  %2669 = load i64, ptr %14, align 8, !tbaa !11
  %2670 = load ptr, ptr %3, align 8, !tbaa !5
  %2671 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %24, i64 noundef %2668, i64 noundef %2669, ptr noundef %2670)
  %2672 = call double @llvm.fmuladd.f64(double %2667, double %2671, double %2657)
  store double %2672, ptr %16, align 8, !tbaa !13
  br label %2673

2673:                                             ; preds = %2656
  %2674 = load i64, ptr %14, align 8, !tbaa !11
  %2675 = add nsw i64 %2674, 1
  store i64 %2675, ptr %14, align 8, !tbaa !11
  br label %2651, !llvm.loop !107

2676:                                             ; preds = %2651
  %2677 = load double, ptr %16, align 8, !tbaa !13
  %2678 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %2679 = load ptr, ptr %2678, align 8, !tbaa !15
  %2680 = load i64, ptr %12, align 8, !tbaa !11
  %2681 = getelementptr inbounds ptr, ptr %2679, i64 %2680
  %2682 = load ptr, ptr %2681, align 8, !tbaa !5
  %2683 = load i64, ptr %13, align 8, !tbaa !11
  %2684 = getelementptr inbounds double, ptr %2682, i64 %2683
  store double %2677, ptr %2684, align 8, !tbaa !13
  br label %2685

2685:                                             ; preds = %2676
  %2686 = load i64, ptr %13, align 8, !tbaa !11
  %2687 = add nsw i64 %2686, 1
  store i64 %2687, ptr %13, align 8, !tbaa !11
  br label %2645, !llvm.loop !108

2688:                                             ; preds = %2645
  br label %2689

2689:                                             ; preds = %2688
  %2690 = load i64, ptr %12, align 8, !tbaa !11
  %2691 = add nsw i64 %2690, 1
  store i64 %2691, ptr %12, align 8, !tbaa !11
  br label %2639, !llvm.loop !109

2692:                                             ; preds = %2639
  br label %2693

2693:                                             ; preds = %2692, %2637
  %2694 = load i64, ptr %5, align 8, !tbaa !11
  %2695 = sub nsw i64 %2694, 1
  store i64 %2695, ptr %12, align 8, !tbaa !11
  br label %2696

2696:                                             ; preds = %2716, %2693
  %2697 = load i64, ptr %12, align 8, !tbaa !11
  %2698 = icmp sge i64 %2697, 0
  br i1 %2698, label %2699, label %2719

2699:                                             ; preds = %2696
  %2700 = load i64, ptr %12, align 8, !tbaa !11
  %2701 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %2702 = load ptr, ptr %2701, align 8, !tbaa !15
  %2703 = load i64, ptr %12, align 8, !tbaa !11
  %2704 = getelementptr inbounds i64, ptr %2702, i64 %2703
  %2705 = load i64, ptr %2704, align 8, !tbaa !11
  %2706 = load i64, ptr %5, align 8, !tbaa !11
  %2707 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %9, i64 noundef %2700, i64 noundef %2705, i64 noundef %2706, ptr noundef %2707)
  %2708 = load i64, ptr %12, align 8, !tbaa !11
  %2709 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %2710 = load ptr, ptr %2709, align 8, !tbaa !15
  %2711 = load i64, ptr %12, align 8, !tbaa !11
  %2712 = getelementptr inbounds i64, ptr %2710, i64 %2711
  %2713 = load i64, ptr %2712, align 8, !tbaa !11
  %2714 = load i64, ptr %5, align 8, !tbaa !11
  %2715 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef %9, i64 noundef %2708, i64 noundef %2713, i64 noundef %2714, ptr noundef %2715)
  br label %2716

2716:                                             ; preds = %2699
  %2717 = load i64, ptr %12, align 8, !tbaa !11
  %2718 = add nsw i64 %2717, -1
  store i64 %2718, ptr %12, align 8, !tbaa !11
  br label %2696, !llvm.loop !110

2719:                                             ; preds = %2696
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2720

2720:                                             ; preds = %2757, %2719
  %2721 = load i64, ptr %12, align 8, !tbaa !11
  %2722 = load i64, ptr %5, align 8, !tbaa !11
  %2723 = sub nsw i64 %2722, 1
  %2724 = icmp sle i64 %2721, %2723
  br i1 %2724, label %2725, label %2760

2725:                                             ; preds = %2720
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2726

2726:                                             ; preds = %2753, %2725
  %2727 = load i64, ptr %13, align 8, !tbaa !11
  %2728 = load i64, ptr %5, align 8, !tbaa !11
  %2729 = sub nsw i64 %2728, 1
  %2730 = icmp sle i64 %2727, %2729
  br i1 %2730, label %2731, label %2756

2731:                                             ; preds = %2726
  %2732 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2733 = load ptr, ptr %2732, align 8, !tbaa !15
  %2734 = load i64, ptr %12, align 8, !tbaa !11
  %2735 = getelementptr inbounds ptr, ptr %2733, i64 %2734
  %2736 = load ptr, ptr %2735, align 8, !tbaa !5
  %2737 = load i64, ptr %13, align 8, !tbaa !11
  %2738 = getelementptr inbounds double, ptr %2736, i64 %2737
  %2739 = load double, ptr %2738, align 8, !tbaa !13
  %2740 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %2741 = load ptr, ptr %2740, align 8, !tbaa !15
  %2742 = load i64, ptr %12, align 8, !tbaa !11
  %2743 = getelementptr inbounds ptr, ptr %2741, i64 %2742
  %2744 = load ptr, ptr %2743, align 8, !tbaa !5
  %2745 = load i64, ptr %13, align 8, !tbaa !11
  %2746 = getelementptr inbounds double, ptr %2744, i64 %2745
  %2747 = load double, ptr %2746, align 8, !tbaa !13
  %2748 = fsub double %2739, %2747
  %2749 = load ptr, ptr %3, align 8, !tbaa !5
  %2750 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2748, ptr noundef %2749)
  %2751 = load double, ptr %21, align 8, !tbaa !13
  %2752 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2750, double noundef %2751)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %2752, ptr noundef @.str.19, i32 noundef 25252, ptr noundef @.str.395)
  br label %2753

2753:                                             ; preds = %2731
  %2754 = load i64, ptr %13, align 8, !tbaa !11
  %2755 = add nsw i64 %2754, 1
  store i64 %2755, ptr %13, align 8, !tbaa !11
  br label %2726, !llvm.loop !111

2756:                                             ; preds = %2726
  br label %2757

2757:                                             ; preds = %2756
  %2758 = load i64, ptr %12, align 8, !tbaa !11
  %2759 = add nsw i64 %2758, 1
  store i64 %2759, ptr %12, align 8, !tbaa !11
  br label %2720, !llvm.loop !112

2760:                                             ; preds = %2720
  br label %2761

2761:                                             ; preds = %2760
  %2762 = load i64, ptr %43, align 8, !tbaa !11
  %2763 = add nsw i64 %2762, 1
  store i64 %2763, ptr %43, align 8, !tbaa !11
  br label %2142, !llvm.loop !113

2764:                                             ; preds = %2142
  br label %2765

2765:                                             ; preds = %2764
  %2766 = load i64, ptr %41, align 8, !tbaa !11
  %2767 = add nsw i64 %2766, 1
  store i64 %2767, ptr %41, align 8, !tbaa !11
  br label %2135, !llvm.loop !114

2768:                                             ; preds = %2135
  br label %2769

2769:                                             ; preds = %2768
  %2770 = load i64, ptr %42, align 8, !tbaa !11
  %2771 = add nsw i64 %2770, 1
  store i64 %2771, ptr %42, align 8, !tbaa !11
  br label %2129, !llvm.loop !115

2772:                                             ; preds = %2129
  store i64 1, ptr %5, align 8, !tbaa !11
  br label %2773

2773:                                             ; preds = %3279, %2772
  %2774 = load i64, ptr %5, align 8, !tbaa !11
  %2775 = icmp sle i64 %2774, 20
  br i1 %2775, label %2776, label %3282

2776:                                             ; preds = %2773
  %2777 = load i64, ptr %5, align 8, !tbaa !11
  %2778 = load i64, ptr %5, align 8, !tbaa !11
  %2779 = mul nsw i64 %2777, %2778
  %2780 = load i64, ptr %5, align 8, !tbaa !11
  %2781 = sub nsw i64 %2779, %2780
  store i64 %2781, ptr %6, align 8, !tbaa !11
  br label %2782

2782:                                             ; preds = %3275, %2776
  %2783 = load ptr, ptr %3, align 8, !tbaa !5
  %2784 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2783)
  %2785 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2784, double noundef 5.000000e-01)
  %2786 = zext i1 %2785 to i8
  store i8 %2786, ptr %19, align 1, !tbaa !9
  %2787 = load i64, ptr %5, align 8, !tbaa !11
  %2788 = icmp sgt i64 %2787, 1
  br i1 %2788, label %2789, label %2799

2789:                                             ; preds = %2782
  %2790 = load i64, ptr %6, align 8, !tbaa !11
  %2791 = sitofp i64 %2790 to double
  %2792 = load i64, ptr %5, align 8, !tbaa !11
  %2793 = load i64, ptr %5, align 8, !tbaa !11
  %2794 = mul nsw i64 %2792, %2793
  %2795 = load i64, ptr %5, align 8, !tbaa !11
  %2796 = sub nsw i64 %2794, %2795
  %2797 = sitofp i64 %2796 to double
  %2798 = fdiv double %2791, %2797
  store double %2798, ptr %7, align 8, !tbaa !13
  br label %2800

2799:                                             ; preds = %2782
  store double 1.000000e+00, ptr %7, align 8, !tbaa !13
  br label %2800

2800:                                             ; preds = %2799, %2789
  %2801 = load i64, ptr %5, align 8, !tbaa !11
  %2802 = load i64, ptr %5, align 8, !tbaa !11
  %2803 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %8, i64 noundef %2801, i64 noundef %2802, ptr noundef %2803)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2804

2804:                                             ; preds = %2882, %2800
  %2805 = load i64, ptr %12, align 8, !tbaa !11
  %2806 = load i64, ptr %5, align 8, !tbaa !11
  %2807 = sub nsw i64 %2806, 1
  %2808 = icmp sle i64 %2805, %2807
  br i1 %2808, label %2809, label %2885

2809:                                             ; preds = %2804
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2810

2810:                                             ; preds = %2878, %2809
  %2811 = load i64, ptr %13, align 8, !tbaa !11
  %2812 = load i64, ptr %12, align 8, !tbaa !11
  %2813 = icmp sle i64 %2811, %2812
  br i1 %2813, label %2814, label %2881

2814:                                             ; preds = %2810
  %2815 = load i64, ptr %12, align 8, !tbaa !11
  %2816 = load i64, ptr %13, align 8, !tbaa !11
  %2817 = icmp eq i64 %2815, %2816
  br i1 %2817, label %2818, label %2829

2818:                                             ; preds = %2814
  %2819 = load ptr, ptr %3, align 8, !tbaa !5
  %2820 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2819)
  %2821 = fadd double 1.000000e+00, %2820
  %2822 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2823 = load ptr, ptr %2822, align 8, !tbaa !15
  %2824 = load i64, ptr %12, align 8, !tbaa !11
  %2825 = getelementptr inbounds ptr, ptr %2823, i64 %2824
  %2826 = load ptr, ptr %2825, align 8, !tbaa !5
  %2827 = load i64, ptr %12, align 8, !tbaa !11
  %2828 = getelementptr inbounds double, ptr %2826, i64 %2827
  store double %2821, ptr %2828, align 8, !tbaa !13
  br label %2878

2829:                                             ; preds = %2814
  %2830 = load ptr, ptr %3, align 8, !tbaa !5
  %2831 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2830)
  %2832 = load double, ptr %7, align 8, !tbaa !13
  %2833 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2831, double noundef %2832)
  br i1 %2833, label %2834, label %2862

2834:                                             ; preds = %2829
  %2835 = load double, ptr %20, align 8, !tbaa !13
  %2836 = load ptr, ptr %3, align 8, !tbaa !5
  %2837 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2836)
  %2838 = fsub double %2837, 5.000000e-01
  %2839 = fmul double %2835, %2838
  %2840 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2841 = load ptr, ptr %2840, align 8, !tbaa !15
  %2842 = load i64, ptr %12, align 8, !tbaa !11
  %2843 = getelementptr inbounds ptr, ptr %2841, i64 %2842
  %2844 = load ptr, ptr %2843, align 8, !tbaa !5
  %2845 = load i64, ptr %13, align 8, !tbaa !11
  %2846 = getelementptr inbounds double, ptr %2844, i64 %2845
  store double %2839, ptr %2846, align 8, !tbaa !13
  %2847 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2848 = load ptr, ptr %2847, align 8, !tbaa !15
  %2849 = load i64, ptr %12, align 8, !tbaa !11
  %2850 = getelementptr inbounds ptr, ptr %2848, i64 %2849
  %2851 = load ptr, ptr %2850, align 8, !tbaa !5
  %2852 = load i64, ptr %13, align 8, !tbaa !11
  %2853 = getelementptr inbounds double, ptr %2851, i64 %2852
  %2854 = load double, ptr %2853, align 8, !tbaa !13
  %2855 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2856 = load ptr, ptr %2855, align 8, !tbaa !15
  %2857 = load i64, ptr %13, align 8, !tbaa !11
  %2858 = getelementptr inbounds ptr, ptr %2856, i64 %2857
  %2859 = load ptr, ptr %2858, align 8, !tbaa !5
  %2860 = load i64, ptr %12, align 8, !tbaa !11
  %2861 = getelementptr inbounds double, ptr %2859, i64 %2860
  store double %2854, ptr %2861, align 8, !tbaa !13
  br label %2877

2862:                                             ; preds = %2829
  %2863 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2864 = load ptr, ptr %2863, align 8, !tbaa !15
  %2865 = load i64, ptr %12, align 8, !tbaa !11
  %2866 = getelementptr inbounds ptr, ptr %2864, i64 %2865
  %2867 = load ptr, ptr %2866, align 8, !tbaa !5
  %2868 = load i64, ptr %13, align 8, !tbaa !11
  %2869 = getelementptr inbounds double, ptr %2867, i64 %2868
  store double 0.000000e+00, ptr %2869, align 8, !tbaa !13
  %2870 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2871 = load ptr, ptr %2870, align 8, !tbaa !15
  %2872 = load i64, ptr %13, align 8, !tbaa !11
  %2873 = getelementptr inbounds ptr, ptr %2871, i64 %2872
  %2874 = load ptr, ptr %2873, align 8, !tbaa !5
  %2875 = load i64, ptr %12, align 8, !tbaa !11
  %2876 = getelementptr inbounds double, ptr %2874, i64 %2875
  store double 0.000000e+00, ptr %2876, align 8, !tbaa !13
  br label %2877

2877:                                             ; preds = %2862, %2834
  br label %2878

2878:                                             ; preds = %2877, %2818
  %2879 = load i64, ptr %13, align 8, !tbaa !11
  %2880 = add nsw i64 %2879, 1
  store i64 %2880, ptr %13, align 8, !tbaa !11
  br label %2810, !llvm.loop !116

2881:                                             ; preds = %2810
  br label %2882

2882:                                             ; preds = %2881
  %2883 = load i64, ptr %12, align 8, !tbaa !11
  %2884 = add nsw i64 %2883, 1
  store i64 %2884, ptr %12, align 8, !tbaa !11
  br label %2804, !llvm.loop !117

2885:                                             ; preds = %2804
  %2886 = load i64, ptr %5, align 8, !tbaa !11
  %2887 = load i64, ptr %5, align 8, !tbaa !11
  %2888 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %9, i64 noundef %2886, i64 noundef %2887, ptr noundef %2888)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2889

2889:                                             ; preds = %2962, %2885
  %2890 = load i64, ptr %12, align 8, !tbaa !11
  %2891 = load i64, ptr %5, align 8, !tbaa !11
  %2892 = sub nsw i64 %2891, 1
  %2893 = icmp sle i64 %2890, %2892
  br i1 %2893, label %2894, label %2965

2894:                                             ; preds = %2889
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2895

2895:                                             ; preds = %2958, %2894
  %2896 = load i64, ptr %13, align 8, !tbaa !11
  %2897 = load i64, ptr %5, align 8, !tbaa !11
  %2898 = sub nsw i64 %2897, 1
  %2899 = icmp sle i64 %2896, %2898
  br i1 %2899, label %2900, label %2961

2900:                                             ; preds = %2895
  %2901 = load i64, ptr %13, align 8, !tbaa !11
  %2902 = load i64, ptr %12, align 8, !tbaa !11
  %2903 = icmp sle i64 %2901, %2902
  br i1 %2903, label %2904, label %2907

2904:                                             ; preds = %2900
  %2905 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2906 = trunc i8 %2905 to i1
  br i1 %2906, label %2907, label %2914

2907:                                             ; preds = %2904, %2900
  %2908 = load i64, ptr %13, align 8, !tbaa !11
  %2909 = load i64, ptr %12, align 8, !tbaa !11
  %2910 = icmp sge i64 %2908, %2909
  br i1 %2910, label %2911, label %2930

2911:                                             ; preds = %2907
  %2912 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2913 = trunc i8 %2912 to i1
  br i1 %2913, label %2914, label %2930

2914:                                             ; preds = %2911, %2904
  %2915 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %2916 = load ptr, ptr %2915, align 8, !tbaa !15
  %2917 = load i64, ptr %12, align 8, !tbaa !11
  %2918 = getelementptr inbounds ptr, ptr %2916, i64 %2917
  %2919 = load ptr, ptr %2918, align 8, !tbaa !5
  %2920 = load i64, ptr %13, align 8, !tbaa !11
  %2921 = getelementptr inbounds double, ptr %2919, i64 %2920
  %2922 = load double, ptr %2921, align 8, !tbaa !13
  %2923 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %2924 = load ptr, ptr %2923, align 8, !tbaa !15
  %2925 = load i64, ptr %12, align 8, !tbaa !11
  %2926 = getelementptr inbounds ptr, ptr %2924, i64 %2925
  %2927 = load ptr, ptr %2926, align 8, !tbaa !5
  %2928 = load i64, ptr %13, align 8, !tbaa !11
  %2929 = getelementptr inbounds double, ptr %2927, i64 %2928
  store double %2922, ptr %2929, align 8, !tbaa !13
  br label %2957

2930:                                             ; preds = %2911, %2907
  %2931 = load ptr, ptr %3, align 8, !tbaa !5
  %2932 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2931)
  %2933 = load double, ptr %7, align 8, !tbaa !13
  %2934 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2932, double noundef %2933)
  br i1 %2934, label %2935, label %2948

2935:                                             ; preds = %2930
  %2936 = load double, ptr %20, align 8, !tbaa !13
  %2937 = load ptr, ptr %3, align 8, !tbaa !5
  %2938 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %2937)
  %2939 = fsub double %2938, 5.000000e-01
  %2940 = fmul double %2936, %2939
  %2941 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %2942 = load ptr, ptr %2941, align 8, !tbaa !15
  %2943 = load i64, ptr %12, align 8, !tbaa !11
  %2944 = getelementptr inbounds ptr, ptr %2942, i64 %2943
  %2945 = load ptr, ptr %2944, align 8, !tbaa !5
  %2946 = load i64, ptr %13, align 8, !tbaa !11
  %2947 = getelementptr inbounds double, ptr %2945, i64 %2946
  store double %2940, ptr %2947, align 8, !tbaa !13
  br label %2956

2948:                                             ; preds = %2930
  %2949 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %2950 = load ptr, ptr %2949, align 8, !tbaa !15
  %2951 = load i64, ptr %12, align 8, !tbaa !11
  %2952 = getelementptr inbounds ptr, ptr %2950, i64 %2951
  %2953 = load ptr, ptr %2952, align 8, !tbaa !5
  %2954 = load i64, ptr %13, align 8, !tbaa !11
  %2955 = getelementptr inbounds double, ptr %2953, i64 %2954
  store double 0.000000e+00, ptr %2955, align 8, !tbaa !13
  br label %2956

2956:                                             ; preds = %2948, %2935
  br label %2957

2957:                                             ; preds = %2956, %2914
  br label %2958

2958:                                             ; preds = %2957
  %2959 = load i64, ptr %13, align 8, !tbaa !11
  %2960 = add nsw i64 %2959, 1
  store i64 %2960, ptr %13, align 8, !tbaa !11
  br label %2895, !llvm.loop !118

2961:                                             ; preds = %2895
  br label %2962

2962:                                             ; preds = %2961
  %2963 = load i64, ptr %12, align 8, !tbaa !11
  %2964 = add nsw i64 %2963, 1
  store i64 %2964, ptr %12, align 8, !tbaa !11
  br label %2889, !llvm.loop !119

2965:                                             ; preds = %2889
  %2966 = load i64, ptr %5, align 8, !tbaa !11
  %2967 = load i64, ptr %5, align 8, !tbaa !11
  %2968 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %2966, i64 noundef %2967, i64 noundef 0, ptr noundef %22, ptr noundef %2968)
  %2969 = load i64, ptr %5, align 8, !tbaa !11
  %2970 = load i64, ptr %5, align 8, !tbaa !11
  %2971 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %2969, i64 noundef %2970, i64 noundef 0, ptr noundef %23, ptr noundef %2971)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %2972

2972:                                             ; preds = %3025, %2965
  %2973 = load i64, ptr %12, align 8, !tbaa !11
  %2974 = load i64, ptr %5, align 8, !tbaa !11
  %2975 = sub nsw i64 %2974, 1
  %2976 = icmp sle i64 %2973, %2975
  br i1 %2976, label %2977, label %3028

2977:                                             ; preds = %2972
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %2978

2978:                                             ; preds = %3021, %2977
  %2979 = load i64, ptr %13, align 8, !tbaa !11
  %2980 = load i64, ptr %5, align 8, !tbaa !11
  %2981 = sub nsw i64 %2980, 1
  %2982 = icmp sle i64 %2979, %2981
  br i1 %2982, label %2983, label %3024

2983:                                             ; preds = %2978
  %2984 = load i64, ptr %13, align 8, !tbaa !11
  %2985 = load i64, ptr %12, align 8, !tbaa !11
  %2986 = icmp sle i64 %2984, %2985
  br i1 %2986, label %2987, label %2990

2987:                                             ; preds = %2983
  %2988 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2989 = trunc i8 %2988 to i1
  br i1 %2989, label %2990, label %2997

2990:                                             ; preds = %2987, %2983
  %2991 = load i64, ptr %13, align 8, !tbaa !11
  %2992 = load i64, ptr %12, align 8, !tbaa !11
  %2993 = icmp sge i64 %2991, %2992
  br i1 %2993, label %2994, label %3009

2994:                                             ; preds = %2990
  %2995 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %2996 = trunc i8 %2995 to i1
  br i1 %2996, label %2997, label %3009

2997:                                             ; preds = %2994, %2987
  %2998 = load i64, ptr %12, align 8, !tbaa !11
  %2999 = load i64, ptr %13, align 8, !tbaa !11
  %3000 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %3001 = load ptr, ptr %3000, align 8, !tbaa !15
  %3002 = load i64, ptr %12, align 8, !tbaa !11
  %3003 = getelementptr inbounds ptr, ptr %3001, i64 %3002
  %3004 = load ptr, ptr %3003, align 8, !tbaa !5
  %3005 = load i64, ptr %13, align 8, !tbaa !11
  %3006 = getelementptr inbounds double, ptr %3004, i64 %3005
  %3007 = load double, ptr %3006, align 8, !tbaa !13
  %3008 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %2998, i64 noundef %2999, double noundef %3007, ptr noundef %3008)
  br label %3009

3009:                                             ; preds = %2997, %2994, %2990
  %3010 = load i64, ptr %12, align 8, !tbaa !11
  %3011 = load i64, ptr %13, align 8, !tbaa !11
  %3012 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %3013 = load ptr, ptr %3012, align 8, !tbaa !15
  %3014 = load i64, ptr %12, align 8, !tbaa !11
  %3015 = getelementptr inbounds ptr, ptr %3013, i64 %3014
  %3016 = load ptr, ptr %3015, align 8, !tbaa !5
  %3017 = load i64, ptr %13, align 8, !tbaa !11
  %3018 = getelementptr inbounds double, ptr %3016, i64 %3017
  %3019 = load double, ptr %3018, align 8, !tbaa !13
  %3020 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %23, i64 noundef %3010, i64 noundef %3011, double noundef %3019, ptr noundef %3020)
  br label %3021

3021:                                             ; preds = %3009
  %3022 = load i64, ptr %13, align 8, !tbaa !11
  %3023 = add nsw i64 %3022, 1
  store i64 %3023, ptr %13, align 8, !tbaa !11
  br label %2978, !llvm.loop !120

3024:                                             ; preds = %2978
  br label %3025

3025:                                             ; preds = %3024
  %3026 = load i64, ptr %12, align 8, !tbaa !11
  %3027 = add nsw i64 %3026, 1
  store i64 %3027, ptr %12, align 8, !tbaa !11
  br label %2972, !llvm.loop !121

3028:                                             ; preds = %2972
  %3029 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseconverttosksEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %22, ptr noundef %3029)
  %3030 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseconverttosksEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %23, ptr noundef %3030)
  %3031 = load i64, ptr %5, align 8, !tbaa !11
  %3032 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %3033 = trunc i8 %3032 to i1
  %3034 = load ptr, ptr %3, align 8, !tbaa !5
  %3035 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyskylineEPNS_12sparsematrixElbPNS_8ae_stateE(ptr noundef %22, i64 noundef %3031, i1 noundef zeroext %3033, ptr noundef %3034)
  br i1 %3035, label %3040, label %3036

3036:                                             ; preds = %3028
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25375, ptr noundef @.str.396)
  %3037 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3037)
  %3038 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3039 = trunc i8 %3038 to i1
  store i1 %3039, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3040:                                             ; preds = %3028
  %3041 = load ptr, ptr %3, align 8, !tbaa !5
  %3042 = call noundef zeroext i1 @_ZN11alglib_impl11sparseissksEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %22, ptr noundef %3041)
  %3043 = xor i1 %3042, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3043, ptr noundef @.str.19, i32 noundef 25379, ptr noundef @.str.397)
  %3044 = load ptr, ptr %3, align 8, !tbaa !5
  %3045 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %22, ptr noundef %3044)
  %3046 = load i64, ptr %5, align 8, !tbaa !11
  %3047 = icmp ne i64 %3045, %3046
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3047, ptr noundef @.str.19, i32 noundef 25380, ptr noundef @.str.398)
  %3048 = load ptr, ptr %3, align 8, !tbaa !5
  %3049 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %22, ptr noundef %3048)
  %3050 = load i64, ptr %5, align 8, !tbaa !11
  %3051 = icmp ne i64 %3049, %3050
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3051, ptr noundef @.str.19, i32 noundef 25381, ptr noundef @.str.399)
  store i64 0, ptr %17, align 8, !tbaa !11
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %3052

3052:                                             ; preds = %3071, %3040
  %3053 = load ptr, ptr %3, align 8, !tbaa !5
  %3054 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef %22, ptr noundef %17, ptr noundef %18, ptr noundef %12, ptr noundef %13, ptr noundef %16, ptr noundef %3053)
  br i1 %3054, label %3055, label %3073

3055:                                             ; preds = %3052
  %3056 = load i64, ptr %13, align 8, !tbaa !11
  %3057 = load i64, ptr %12, align 8, !tbaa !11
  %3058 = icmp slt i64 %3056, %3057
  br i1 %3058, label %3059, label %3062

3059:                                             ; preds = %3055
  %3060 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %3061 = trunc i8 %3060 to i1
  br label %3062

3062:                                             ; preds = %3059, %3055
  %3063 = phi i1 [ false, %3055 ], [ %3061, %3059 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3063, ptr noundef @.str.19, i32 noundef 25386, ptr noundef @.str.400)
  %3064 = load i64, ptr %13, align 8, !tbaa !11
  %3065 = load i64, ptr %12, align 8, !tbaa !11
  %3066 = icmp sgt i64 %3064, %3065
  br i1 %3066, label %3067, label %3071

3067:                                             ; preds = %3062
  %3068 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %3069 = trunc i8 %3068 to i1
  %3070 = xor i1 %3069, true
  br label %3071

3071:                                             ; preds = %3067, %3062
  %3072 = phi i1 [ false, %3062 ], [ %3070, %3067 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3072, ptr noundef @.str.19, i32 noundef 25387, ptr noundef @.str.401)
  br label %3052, !llvm.loop !122

3073:                                             ; preds = %3052
  %3074 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %3075 = trunc i8 %3074 to i1
  br i1 %3075, label %3076, label %3131

3076:                                             ; preds = %3073
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %3077

3077:                                             ; preds = %3127, %3076
  %3078 = load i64, ptr %12, align 8, !tbaa !11
  %3079 = load i64, ptr %5, align 8, !tbaa !11
  %3080 = sub nsw i64 %3079, 1
  %3081 = icmp sle i64 %3078, %3080
  br i1 %3081, label %3082, label %3130

3082:                                             ; preds = %3077
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %3083

3083:                                             ; preds = %3123, %3082
  %3084 = load i64, ptr %13, align 8, !tbaa !11
  %3085 = load i64, ptr %5, align 8, !tbaa !11
  %3086 = sub nsw i64 %3085, 1
  %3087 = icmp sle i64 %3084, %3086
  br i1 %3087, label %3088, label %3126

3088:                                             ; preds = %3083
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %3089

3089:                                             ; preds = %3105, %3088
  %3090 = load i64, ptr %14, align 8, !tbaa !11
  %3091 = load i64, ptr %5, align 8, !tbaa !11
  %3092 = sub nsw i64 %3091, 1
  %3093 = icmp sle i64 %3090, %3092
  br i1 %3093, label %3094, label %3108

3094:                                             ; preds = %3089
  %3095 = load double, ptr %16, align 8, !tbaa !13
  %3096 = load i64, ptr %14, align 8, !tbaa !11
  %3097 = load i64, ptr %13, align 8, !tbaa !11
  %3098 = load ptr, ptr %3, align 8, !tbaa !5
  %3099 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %22, i64 noundef %3096, i64 noundef %3097, ptr noundef %3098)
  %3100 = load i64, ptr %14, align 8, !tbaa !11
  %3101 = load i64, ptr %12, align 8, !tbaa !11
  %3102 = load ptr, ptr %3, align 8, !tbaa !5
  %3103 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %22, i64 noundef %3100, i64 noundef %3101, ptr noundef %3102)
  %3104 = call double @llvm.fmuladd.f64(double %3099, double %3103, double %3095)
  store double %3104, ptr %16, align 8, !tbaa !13
  br label %3105

3105:                                             ; preds = %3094
  %3106 = load i64, ptr %14, align 8, !tbaa !11
  %3107 = add nsw i64 %3106, 1
  store i64 %3107, ptr %14, align 8, !tbaa !11
  br label %3089, !llvm.loop !123

3108:                                             ; preds = %3089
  %3109 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %3110 = load ptr, ptr %3109, align 8, !tbaa !15
  %3111 = load i64, ptr %12, align 8, !tbaa !11
  %3112 = getelementptr inbounds ptr, ptr %3110, i64 %3111
  %3113 = load ptr, ptr %3112, align 8, !tbaa !5
  %3114 = load i64, ptr %13, align 8, !tbaa !11
  %3115 = getelementptr inbounds double, ptr %3113, i64 %3114
  %3116 = load double, ptr %3115, align 8, !tbaa !13
  %3117 = load double, ptr %16, align 8, !tbaa !13
  %3118 = fsub double %3116, %3117
  %3119 = load ptr, ptr %3, align 8, !tbaa !5
  %3120 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3118, ptr noundef %3119)
  %3121 = load double, ptr %21, align 8, !tbaa !13
  %3122 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3120, double noundef %3121)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3122, ptr noundef @.str.19, i32 noundef 25400, ptr noundef @.str.402)
  br label %3123

3123:                                             ; preds = %3108
  %3124 = load i64, ptr %13, align 8, !tbaa !11
  %3125 = add nsw i64 %3124, 1
  store i64 %3125, ptr %13, align 8, !tbaa !11
  br label %3083, !llvm.loop !124

3126:                                             ; preds = %3083
  br label %3127

3127:                                             ; preds = %3126
  %3128 = load i64, ptr %12, align 8, !tbaa !11
  %3129 = add nsw i64 %3128, 1
  store i64 %3129, ptr %12, align 8, !tbaa !11
  br label %3077, !llvm.loop !125

3130:                                             ; preds = %3077
  br label %3186

3131:                                             ; preds = %3073
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %3132

3132:                                             ; preds = %3182, %3131
  %3133 = load i64, ptr %12, align 8, !tbaa !11
  %3134 = load i64, ptr %5, align 8, !tbaa !11
  %3135 = sub nsw i64 %3134, 1
  %3136 = icmp sle i64 %3133, %3135
  br i1 %3136, label %3137, label %3185

3137:                                             ; preds = %3132
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %3138

3138:                                             ; preds = %3178, %3137
  %3139 = load i64, ptr %13, align 8, !tbaa !11
  %3140 = load i64, ptr %5, align 8, !tbaa !11
  %3141 = sub nsw i64 %3140, 1
  %3142 = icmp sle i64 %3139, %3141
  br i1 %3142, label %3143, label %3181

3143:                                             ; preds = %3138
  store double 0.000000e+00, ptr %16, align 8, !tbaa !13
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %3144

3144:                                             ; preds = %3160, %3143
  %3145 = load i64, ptr %14, align 8, !tbaa !11
  %3146 = load i64, ptr %5, align 8, !tbaa !11
  %3147 = sub nsw i64 %3146, 1
  %3148 = icmp sle i64 %3145, %3147
  br i1 %3148, label %3149, label %3163

3149:                                             ; preds = %3144
  %3150 = load double, ptr %16, align 8, !tbaa !13
  %3151 = load i64, ptr %13, align 8, !tbaa !11
  %3152 = load i64, ptr %14, align 8, !tbaa !11
  %3153 = load ptr, ptr %3, align 8, !tbaa !5
  %3154 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %22, i64 noundef %3151, i64 noundef %3152, ptr noundef %3153)
  %3155 = load i64, ptr %12, align 8, !tbaa !11
  %3156 = load i64, ptr %14, align 8, !tbaa !11
  %3157 = load ptr, ptr %3, align 8, !tbaa !5
  %3158 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %22, i64 noundef %3155, i64 noundef %3156, ptr noundef %3157)
  %3159 = call double @llvm.fmuladd.f64(double %3154, double %3158, double %3150)
  store double %3159, ptr %16, align 8, !tbaa !13
  br label %3160

3160:                                             ; preds = %3149
  %3161 = load i64, ptr %14, align 8, !tbaa !11
  %3162 = add nsw i64 %3161, 1
  store i64 %3162, ptr %14, align 8, !tbaa !11
  br label %3144, !llvm.loop !126

3163:                                             ; preds = %3144
  %3164 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %8, i32 0, i32 6
  %3165 = load ptr, ptr %3164, align 8, !tbaa !15
  %3166 = load i64, ptr %12, align 8, !tbaa !11
  %3167 = getelementptr inbounds ptr, ptr %3165, i64 %3166
  %3168 = load ptr, ptr %3167, align 8, !tbaa !5
  %3169 = load i64, ptr %13, align 8, !tbaa !11
  %3170 = getelementptr inbounds double, ptr %3168, i64 %3169
  %3171 = load double, ptr %3170, align 8, !tbaa !13
  %3172 = load double, ptr %16, align 8, !tbaa !13
  %3173 = fsub double %3171, %3172
  %3174 = load ptr, ptr %3, align 8, !tbaa !5
  %3175 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3173, ptr noundef %3174)
  %3176 = load double, ptr %21, align 8, !tbaa !13
  %3177 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3175, double noundef %3176)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3177, ptr noundef @.str.19, i32 noundef 25415, ptr noundef @.str.403)
  br label %3178

3178:                                             ; preds = %3163
  %3179 = load i64, ptr %13, align 8, !tbaa !11
  %3180 = add nsw i64 %3179, 1
  store i64 %3180, ptr %13, align 8, !tbaa !11
  br label %3138, !llvm.loop !127

3181:                                             ; preds = %3138
  br label %3182

3182:                                             ; preds = %3181
  %3183 = load i64, ptr %12, align 8, !tbaa !11
  %3184 = add nsw i64 %3183, 1
  store i64 %3184, ptr %12, align 8, !tbaa !11
  br label %3132, !llvm.loop !128

3185:                                             ; preds = %3132
  br label %3186

3186:                                             ; preds = %3185, %3130
  %3187 = load i64, ptr %5, align 8, !tbaa !11
  %3188 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %3189 = trunc i8 %3188 to i1
  %3190 = load ptr, ptr %3, align 8, !tbaa !5
  %3191 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyskylineEPNS_12sparsematrixElbPNS_8ae_stateE(ptr noundef %23, i64 noundef %3187, i1 noundef zeroext %3189, ptr noundef %3190)
  br i1 %3191, label %3196, label %3192

3192:                                             ; preds = %3186
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25429, ptr noundef @.str.404)
  %3193 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3193)
  %3194 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3195 = trunc i8 %3194 to i1
  store i1 %3195, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3196:                                             ; preds = %3186
  %3197 = load ptr, ptr %3, align 8, !tbaa !5
  %3198 = call noundef zeroext i1 @_ZN11alglib_impl11sparseissksEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %23, ptr noundef %3197)
  %3199 = xor i1 %3198, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3199, ptr noundef @.str.19, i32 noundef 25433, ptr noundef @.str.405)
  %3200 = load ptr, ptr %3, align 8, !tbaa !5
  %3201 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %23, ptr noundef %3200)
  %3202 = load i64, ptr %5, align 8, !tbaa !11
  %3203 = icmp ne i64 %3201, %3202
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3203, ptr noundef @.str.19, i32 noundef 25434, ptr noundef @.str.406)
  %3204 = load ptr, ptr %3, align 8, !tbaa !5
  %3205 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %23, ptr noundef %3204)
  %3206 = load i64, ptr %5, align 8, !tbaa !11
  %3207 = icmp ne i64 %3205, %3206
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3207, ptr noundef @.str.19, i32 noundef 25435, ptr noundef @.str.407)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %3208

3208:                                             ; preds = %3268, %3196
  %3209 = load i64, ptr %12, align 8, !tbaa !11
  %3210 = load i64, ptr %5, align 8, !tbaa !11
  %3211 = sub nsw i64 %3210, 1
  %3212 = icmp sle i64 %3209, %3211
  br i1 %3212, label %3213, label %3271

3213:                                             ; preds = %3208
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %3214

3214:                                             ; preds = %3264, %3213
  %3215 = load i64, ptr %13, align 8, !tbaa !11
  %3216 = load i64, ptr %5, align 8, !tbaa !11
  %3217 = sub nsw i64 %3216, 1
  %3218 = icmp sle i64 %3215, %3217
  br i1 %3218, label %3219, label %3267

3219:                                             ; preds = %3214
  %3220 = load i64, ptr %13, align 8, !tbaa !11
  %3221 = load i64, ptr %12, align 8, !tbaa !11
  %3222 = icmp sle i64 %3220, %3221
  br i1 %3222, label %3223, label %3226

3223:                                             ; preds = %3219
  %3224 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %3225 = trunc i8 %3224 to i1
  br i1 %3225, label %3226, label %3233

3226:                                             ; preds = %3223, %3219
  %3227 = load i64, ptr %13, align 8, !tbaa !11
  %3228 = load i64, ptr %12, align 8, !tbaa !11
  %3229 = icmp sge i64 %3227, %3228
  br i1 %3229, label %3230, label %3246

3230:                                             ; preds = %3226
  %3231 = load i8, ptr %19, align 1, !tbaa !9, !range !19, !noundef !20
  %3232 = trunc i8 %3231 to i1
  br i1 %3232, label %3233, label %3246

3233:                                             ; preds = %3230, %3223
  %3234 = load i64, ptr %12, align 8, !tbaa !11
  %3235 = load i64, ptr %13, align 8, !tbaa !11
  %3236 = load ptr, ptr %3, align 8, !tbaa !5
  %3237 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %23, i64 noundef %3234, i64 noundef %3235, ptr noundef %3236)
  %3238 = load i64, ptr %12, align 8, !tbaa !11
  %3239 = load i64, ptr %13, align 8, !tbaa !11
  %3240 = load ptr, ptr %3, align 8, !tbaa !5
  %3241 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %22, i64 noundef %3238, i64 noundef %3239, ptr noundef %3240)
  %3242 = fsub double %3237, %3241
  %3243 = load ptr, ptr %3, align 8, !tbaa !5
  %3244 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3242, ptr noundef %3243)
  %3245 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3244, double noundef 0x3CF6849B86A12B9C)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3245, ptr noundef @.str.19, i32 noundef 25442, ptr noundef @.str.408)
  br label %3263

3246:                                             ; preds = %3230, %3226
  %3247 = load i64, ptr %12, align 8, !tbaa !11
  %3248 = load i64, ptr %13, align 8, !tbaa !11
  %3249 = load ptr, ptr %3, align 8, !tbaa !5
  %3250 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %23, i64 noundef %3247, i64 noundef %3248, ptr noundef %3249)
  %3251 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %9, i32 0, i32 6
  %3252 = load ptr, ptr %3251, align 8, !tbaa !15
  %3253 = load i64, ptr %12, align 8, !tbaa !11
  %3254 = getelementptr inbounds ptr, ptr %3252, i64 %3253
  %3255 = load ptr, ptr %3254, align 8, !tbaa !5
  %3256 = load i64, ptr %13, align 8, !tbaa !11
  %3257 = getelementptr inbounds double, ptr %3255, i64 %3256
  %3258 = load double, ptr %3257, align 8, !tbaa !13
  %3259 = fsub double %3250, %3258
  %3260 = load ptr, ptr %3, align 8, !tbaa !5
  %3261 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3259, ptr noundef %3260)
  %3262 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3261, double noundef 0x3CF6849B86A12B9C)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3262, ptr noundef @.str.19, i32 noundef 25446, ptr noundef @.str.409)
  br label %3263

3263:                                             ; preds = %3246, %3233
  br label %3264

3264:                                             ; preds = %3263
  %3265 = load i64, ptr %13, align 8, !tbaa !11
  %3266 = add nsw i64 %3265, 1
  store i64 %3266, ptr %13, align 8, !tbaa !11
  br label %3214, !llvm.loop !129

3267:                                             ; preds = %3214
  br label %3268

3268:                                             ; preds = %3267
  %3269 = load i64, ptr %12, align 8, !tbaa !11
  %3270 = add nsw i64 %3269, 1
  store i64 %3270, ptr %12, align 8, !tbaa !11
  br label %3208, !llvm.loop !130

3271:                                             ; preds = %3208
  %3272 = load i64, ptr %6, align 8, !tbaa !11
  %3273 = icmp eq i64 %3272, 0
  br i1 %3273, label %3274, label %3275

3274:                                             ; preds = %3271
  br label %3278

3275:                                             ; preds = %3271
  %3276 = load i64, ptr %6, align 8, !tbaa !11
  %3277 = sdiv i64 %3276, 2
  store i64 %3277, ptr %6, align 8, !tbaa !11
  br label %2782, !llvm.loop !131

3278:                                             ; preds = %3274
  br label %3279

3279:                                             ; preds = %3278
  %3280 = load i64, ptr %5, align 8, !tbaa !11
  %3281 = add nsw i64 %3280, 1
  store i64 %3281, ptr %5, align 8, !tbaa !11
  br label %2773, !llvm.loop !132

3282:                                             ; preds = %2773
  store i64 0, ptr %39, align 8, !tbaa !11
  br label %3283

3283:                                             ; preds = %3439, %3282
  %3284 = load i64, ptr %39, align 8, !tbaa !11
  %3285 = load i64, ptr %35, align 8, !tbaa !11
  %3286 = icmp sle i64 %3284, %3285
  br i1 %3286, label %3287, label %3442

3287:                                             ; preds = %3283
  %3288 = load i64, ptr %39, align 8, !tbaa !11
  %3289 = icmp eq i64 %3288, 1
  br i1 %3289, label %3290, label %3291

3290:                                             ; preds = %3287
  br label %3439

3291:                                             ; preds = %3287
  store i64 0, ptr %46, align 8, !tbaa !11
  store i64 0, ptr %47, align 8, !tbaa !11
  store i64 0, ptr %48, align 8, !tbaa !11
  br label %3292

3292:                                             ; preds = %3427, %3291
  %3293 = load i64, ptr %48, align 8, !tbaa !11
  %3294 = icmp sle i64 %3293, 99
  br i1 %3294, label %3295, label %3430

3295:                                             ; preds = %3292
  %3296 = load ptr, ptr %3, align 8, !tbaa !5
  %3297 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef 20, ptr noundef %3296)
  %3298 = add nsw i64 30, %3297
  store i64 %3298, ptr %5, align 8, !tbaa !11
  %3299 = load i64, ptr %5, align 8, !tbaa !11
  %3300 = load i64, ptr %5, align 8, !tbaa !11
  %3301 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %3299, i64 noundef %3300, i64 noundef 0, ptr noundef %22, ptr noundef %3301)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %3302

3302:                                             ; preds = %3339, %3295
  %3303 = load i64, ptr %12, align 8, !tbaa !11
  %3304 = load i64, ptr %5, align 8, !tbaa !11
  %3305 = sub nsw i64 %3304, 1
  %3306 = icmp sle i64 %3303, %3305
  br i1 %3306, label %3307, label %3342

3307:                                             ; preds = %3302
  %3308 = load i64, ptr %12, align 8, !tbaa !11
  %3309 = load i64, ptr %12, align 8, !tbaa !11
  %3310 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %3308, i64 noundef %3309, double noundef 1.000000e+00, ptr noundef %3310)
  store i64 1, ptr %14, align 8, !tbaa !11
  br label %3311

3311:                                             ; preds = %3335, %3307
  %3312 = load i64, ptr %14, align 8, !tbaa !11
  %3313 = icmp sle i64 %3312, 2
  br i1 %3313, label %3314, label %3338

3314:                                             ; preds = %3311
  %3315 = load i64, ptr %5, align 8, !tbaa !11
  %3316 = load ptr, ptr %3, align 8, !tbaa !5
  %3317 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %3315, ptr noundef %3316)
  store i64 %3317, ptr %13, align 8, !tbaa !11
  %3318 = load i64, ptr %13, align 8, !tbaa !11
  %3319 = load i64, ptr %12, align 8, !tbaa !11
  %3320 = icmp ne i64 %3318, %3319
  br i1 %3320, label %3321, label %3334

3321:                                             ; preds = %3314
  %3322 = load i64, ptr %12, align 8, !tbaa !11
  %3323 = load i64, ptr %13, align 8, !tbaa !11
  %3324 = load i64, ptr %5, align 8, !tbaa !11
  %3325 = sitofp i64 %3324 to double
  %3326 = fdiv double 1.000000e-02, %3325
  %3327 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %3322, i64 noundef %3323, double noundef %3326, ptr noundef %3327)
  %3328 = load i64, ptr %13, align 8, !tbaa !11
  %3329 = load i64, ptr %12, align 8, !tbaa !11
  %3330 = load i64, ptr %5, align 8, !tbaa !11
  %3331 = sitofp i64 %3330 to double
  %3332 = fdiv double 1.000000e-02, %3331
  %3333 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %3328, i64 noundef %3329, double noundef %3332, ptr noundef %3333)
  br label %3334

3334:                                             ; preds = %3321, %3314
  br label %3335

3335:                                             ; preds = %3334
  %3336 = load i64, ptr %14, align 8, !tbaa !11
  %3337 = add nsw i64 %3336, 1
  store i64 %3337, ptr %14, align 8, !tbaa !11
  br label %3311, !llvm.loop !133

3338:                                             ; preds = %3311
  br label %3339

3339:                                             ; preds = %3338
  %3340 = load i64, ptr %12, align 8, !tbaa !11
  %3341 = add nsw i64 %3340, 1
  store i64 %3341, ptr %12, align 8, !tbaa !11
  br label %3302, !llvm.loop !134

3342:                                             ; preds = %3302
  br label %3343

3343:                                             ; preds = %3377, %3342
  %3344 = load ptr, ptr %3, align 8, !tbaa !5
  %3345 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %3344)
  %3346 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3345, double noundef 0.000000e+00)
  br i1 %3346, label %3347, label %3378

3347:                                             ; preds = %3343
  %3348 = load i64, ptr %5, align 8, !tbaa !11
  %3349 = load ptr, ptr %3, align 8, !tbaa !5
  %3350 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %3348, ptr noundef %3349)
  store i64 %3350, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %13, align 8, !tbaa !11
  br label %3351

3351:                                             ; preds = %3374, %3347
  %3352 = load i64, ptr %13, align 8, !tbaa !11
  %3353 = load i64, ptr %5, align 8, !tbaa !11
  %3354 = sub nsw i64 %3353, 1
  %3355 = icmp sle i64 %3352, %3354
  br i1 %3355, label %3356, label %3377

3356:                                             ; preds = %3351
  %3357 = load i64, ptr %13, align 8, !tbaa !11
  %3358 = load i64, ptr %12, align 8, !tbaa !11
  %3359 = icmp ne i64 %3357, %3358
  br i1 %3359, label %3360, label %3373

3360:                                             ; preds = %3356
  %3361 = load i64, ptr %12, align 8, !tbaa !11
  %3362 = load i64, ptr %13, align 8, !tbaa !11
  %3363 = load i64, ptr %5, align 8, !tbaa !11
  %3364 = sitofp i64 %3363 to double
  %3365 = fdiv double 1.000000e-02, %3364
  %3366 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %3361, i64 noundef %3362, double noundef %3365, ptr noundef %3366)
  %3367 = load i64, ptr %13, align 8, !tbaa !11
  %3368 = load i64, ptr %12, align 8, !tbaa !11
  %3369 = load i64, ptr %5, align 8, !tbaa !11
  %3370 = sitofp i64 %3369 to double
  %3371 = fdiv double 1.000000e-02, %3370
  %3372 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %3367, i64 noundef %3368, double noundef %3371, ptr noundef %3372)
  br label %3373

3373:                                             ; preds = %3360, %3356
  br label %3374

3374:                                             ; preds = %3373
  %3375 = load i64, ptr %13, align 8, !tbaa !11
  %3376 = add nsw i64 %3375, 1
  store i64 %3376, ptr %13, align 8, !tbaa !11
  br label %3351, !llvm.loop !135

3377:                                             ; preds = %3351
  br label %3343, !llvm.loop !136

3378:                                             ; preds = %3343
  %3379 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %22, ptr noundef %23, ptr noundef %3379)
  %3380 = load i64, ptr %39, align 8, !tbaa !11
  %3381 = load ptr, ptr %3, align 8, !tbaa !5
  %3382 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext false, i64 noundef 0, i64 noundef %3380, ptr noundef %37, ptr noundef %3381)
  br i1 %3382, label %3387, label %3383

3383:                                             ; preds = %3378
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25529, ptr noundef @.str.410)
  %3384 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3384)
  %3385 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3386 = trunc i8 %3385 to i1
  store i1 %3386, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3387:                                             ; preds = %3378
  %3388 = load ptr, ptr %3, align 8, !tbaa !5
  %3389 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext false, ptr noundef %22, ptr noundef %30, ptr noundef %27, ptr noundef %3388)
  br i1 %3389, label %3394, label %3390

3390:                                             ; preds = %3387
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25535, ptr noundef @.str.411)
  %3391 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3391)
  %3392 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3393 = trunc i8 %3392 to i1
  store i1 %3393, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3394:                                             ; preds = %3387
  %3395 = load ptr, ptr %3, align 8, !tbaa !5
  %3396 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef %23, i1 noundef zeroext false, i64 noundef 0, i64 noundef -2, ptr noundef %37, ptr noundef %3395)
  br i1 %3396, label %3401, label %3397

3397:                                             ; preds = %3394
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25541, ptr noundef @.str.412)
  %3398 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3398)
  %3399 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3400 = trunc i8 %3399 to i1
  store i1 %3400, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3401:                                             ; preds = %3394
  %3402 = load ptr, ptr %3, align 8, !tbaa !5
  %3403 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %37, i1 noundef zeroext false, ptr noundef %23, ptr noundef %30, ptr noundef %27, ptr noundef %3402)
  br i1 %3403, label %3408, label %3404

3404:                                             ; preds = %3401
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25547, ptr noundef @.str.413)
  %3405 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3405)
  %3406 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3407 = trunc i8 %3406 to i1
  store i1 %3407, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3408:                                             ; preds = %3401
  %3409 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %22, i32 0, i32 2
  %3410 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3409, i32 0, i32 4
  %3411 = load ptr, ptr %3410, align 8, !tbaa !15
  %3412 = load i64, ptr %5, align 8, !tbaa !11
  %3413 = getelementptr inbounds i64, ptr %3411, i64 %3412
  %3414 = load i64, ptr %3413, align 8, !tbaa !11
  %3415 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %23, i32 0, i32 2
  %3416 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3415, i32 0, i32 4
  %3417 = load ptr, ptr %3416, align 8, !tbaa !15
  %3418 = load i64, ptr %5, align 8, !tbaa !11
  %3419 = getelementptr inbounds i64, ptr %3417, i64 %3418
  %3420 = load i64, ptr %3419, align 8, !tbaa !11
  %3421 = icmp slt i64 %3414, %3420
  br i1 %3421, label %3422, label %3424

3422:                                             ; preds = %3408
  %3423 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %46, ptr noundef %3423)
  br label %3426

3424:                                             ; preds = %3408
  %3425 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %47, ptr noundef %3425)
  br label %3426

3426:                                             ; preds = %3424, %3422
  br label %3427

3427:                                             ; preds = %3426
  %3428 = load i64, ptr %48, align 8, !tbaa !11
  %3429 = add nsw i64 %3428, 1
  store i64 %3429, ptr %48, align 8, !tbaa !11
  br label %3292, !llvm.loop !137

3430:                                             ; preds = %3292
  %3431 = load i64, ptr %46, align 8, !tbaa !11
  %3432 = sitofp i64 %3431 to double
  %3433 = load i64, ptr %46, align 8, !tbaa !11
  %3434 = load i64, ptr %47, align 8, !tbaa !11
  %3435 = add nsw i64 %3433, %3434
  %3436 = sitofp i64 %3435 to double
  %3437 = fmul double 7.500000e-01, %3436
  %3438 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %3432, double noundef %3437)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3438, ptr noundef @.str.19, i32 noundef 25560, ptr noundef @.str.414)
  br label %3439

3439:                                             ; preds = %3430, %3290
  %3440 = load i64, ptr %39, align 8, !tbaa !11
  %3441 = add nsw i64 %3440, 1
  store i64 %3441, ptr %39, align 8, !tbaa !11
  br label %3283, !llvm.loop !138

3442:                                             ; preds = %3283
  store i64 5, ptr %5, align 8, !tbaa !11
  br label %3443

3443:                                             ; preds = %3646, %3442
  %3444 = load i64, ptr %5, align 8, !tbaa !11
  %3445 = icmp sle i64 %3444, 10
  br i1 %3445, label %3446, label %3649

3446:                                             ; preds = %3443
  store i64 1, ptr %15, align 8, !tbaa !11
  %3447 = load i64, ptr %5, align 8, !tbaa !11
  %3448 = load i64, ptr %5, align 8, !tbaa !11
  %3449 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %3447, i64 noundef %3448, i64 noundef 0, ptr noundef %22, ptr noundef %3449)
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %3450

3450:                                             ; preds = %3481, %3446
  %3451 = load i64, ptr %12, align 8, !tbaa !11
  %3452 = load i64, ptr %5, align 8, !tbaa !11
  %3453 = sub nsw i64 %3452, 1
  %3454 = icmp sle i64 %3451, %3453
  br i1 %3454, label %3455, label %3484

3455:                                             ; preds = %3450
  %3456 = load i64, ptr %12, align 8, !tbaa !11
  %3457 = load i64, ptr %15, align 8, !tbaa !11
  %3458 = sub nsw i64 %3456, %3457
  %3459 = load ptr, ptr %3, align 8, !tbaa !5
  %3460 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %3458, i64 noundef 0, ptr noundef %3459)
  store i64 %3460, ptr %13, align 8, !tbaa !11
  br label %3461

3461:                                             ; preds = %3477, %3455
  %3462 = load i64, ptr %13, align 8, !tbaa !11
  %3463 = load i64, ptr %12, align 8, !tbaa !11
  %3464 = icmp sle i64 %3462, %3463
  br i1 %3464, label %3465, label %3480

3465:                                             ; preds = %3461
  %3466 = load i64, ptr %12, align 8, !tbaa !11
  %3467 = load i64, ptr %13, align 8, !tbaa !11
  %3468 = load i64, ptr %12, align 8, !tbaa !11
  %3469 = load i64, ptr %13, align 8, !tbaa !11
  %3470 = icmp eq i64 %3468, %3469
  %3471 = load i64, ptr %5, align 8, !tbaa !11
  %3472 = sitofp i64 %3471 to double
  %3473 = fdiv double 5.000000e-02, %3472
  %3474 = load ptr, ptr %3, align 8, !tbaa !5
  %3475 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %3470, double noundef 1.000000e+00, double noundef %3473, ptr noundef %3474)
  %3476 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %22, i64 noundef %3466, i64 noundef %3467, double noundef %3475, ptr noundef %3476)
  br label %3477

3477:                                             ; preds = %3465
  %3478 = load i64, ptr %13, align 8, !tbaa !11
  %3479 = add nsw i64 %3478, 1
  store i64 %3479, ptr %13, align 8, !tbaa !11
  br label %3461, !llvm.loop !139

3480:                                             ; preds = %3461
  br label %3481

3481:                                             ; preds = %3480
  %3482 = load i64, ptr %12, align 8, !tbaa !11
  %3483 = add nsw i64 %3482, 1
  store i64 %3483, ptr %12, align 8, !tbaa !11
  br label %3450, !llvm.loop !140

3484:                                             ; preds = %3450
  %3485 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %22, ptr noundef %3485)
  %3486 = load i64, ptr %5, align 8, !tbaa !11
  %3487 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3486, i64 noundef 0, ptr noundef %29, ptr noundef %3487)
  %3488 = load i64, ptr %5, align 8, !tbaa !11
  %3489 = add nsw i64 %3488, 1
  %3490 = sitofp i64 %3489 to double
  %3491 = load ptr, ptr %3, align 8, !tbaa !5
  %3492 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %3491)
  %3493 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3492, double noundef 0.000000e+00)
  %3494 = load ptr, ptr %3, align 8, !tbaa !5
  %3495 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %3493, i64 noundef 1, i64 noundef -1, ptr noundef %3494)
  %3496 = load ptr, ptr %3, align 8, !tbaa !5
  %3497 = call noundef zeroext i1 @_ZN11alglib_impl13spsymmanalyzeEPKNS_12sparsematrixEPKNS_9ae_vectorEdllllPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef %22, ptr noundef %29, double noundef %3490, i64 noundef 0, i64 noundef 0, i64 noundef 3, i64 noundef %3495, ptr noundef %38, ptr noundef %3496)
  br i1 %3497, label %3502, label %3498

3498:                                             ; preds = %3484
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25594, ptr noundef @.str.415)
  %3499 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3499)
  %3500 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3501 = trunc i8 %3500 to i1
  store i1 %3501, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3502:                                             ; preds = %3484
  %3503 = load ptr, ptr %3, align 8, !tbaa !5
  %3504 = call noundef zeroext i1 @_ZN11alglib_impl15spsymmfactorizeEPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef %38, ptr noundef %3503)
  br i1 %3504, label %3509, label %3505

3505:                                             ; preds = %3502
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25600, ptr noundef @.str.416)
  %3506 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3506)
  %3507 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3508 = trunc i8 %3507 to i1
  store i1 %3508, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3509:                                             ; preds = %3502
  %3510 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl13spsymmextractEPNS_14spcholanalysisEPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %38, ptr noundef %23, ptr noundef %30, ptr noundef %27, ptr noundef %3510)
  store i8 1, ptr %49, align 1, !tbaa !9
  store i8 1, ptr %50, align 1, !tbaa !9
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %3511

3511:                                             ; preds = %3549, %3509
  %3512 = load i64, ptr %12, align 8, !tbaa !11
  %3513 = load i64, ptr %5, align 8, !tbaa !11
  %3514 = sub nsw i64 %3513, 1
  %3515 = icmp sle i64 %3512, %3514
  br i1 %3515, label %3516, label %3552

3516:                                             ; preds = %3511
  %3517 = load i8, ptr %49, align 1, !tbaa !9, !range !19, !noundef !20
  %3518 = trunc i8 %3517 to i1
  br i1 %3518, label %3519, label %3527

3519:                                             ; preds = %3516
  %3520 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %3521 = load ptr, ptr %3520, align 8, !tbaa !15
  %3522 = load i64, ptr %12, align 8, !tbaa !11
  %3523 = getelementptr inbounds i64, ptr %3521, i64 %3522
  %3524 = load i64, ptr %3523, align 8, !tbaa !11
  %3525 = load i64, ptr %12, align 8, !tbaa !11
  %3526 = icmp eq i64 %3524, %3525
  br label %3527

3527:                                             ; preds = %3519, %3516
  %3528 = phi i1 [ false, %3516 ], [ %3526, %3519 ]
  %3529 = zext i1 %3528 to i8
  store i8 %3529, ptr %49, align 1, !tbaa !9
  %3530 = load i8, ptr %50, align 1, !tbaa !9, !range !19, !noundef !20
  %3531 = trunc i8 %3530 to i1
  br i1 %3531, label %3532, label %3546

3532:                                             ; preds = %3527
  %3533 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %3534 = load ptr, ptr %3533, align 8, !tbaa !15
  %3535 = load i64, ptr %12, align 8, !tbaa !11
  %3536 = getelementptr inbounds i64, ptr %3534, i64 %3535
  %3537 = load i64, ptr %3536, align 8, !tbaa !11
  %3538 = load i64, ptr %5, align 8, !tbaa !11
  %3539 = sub nsw i64 %3538, 1
  %3540 = load i64, ptr %12, align 8, !tbaa !11
  %3541 = sub nsw i64 %3539, %3540
  %3542 = load i64, ptr %12, align 8, !tbaa !11
  %3543 = load ptr, ptr %3, align 8, !tbaa !5
  %3544 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %3541, i64 noundef %3542, ptr noundef %3543)
  %3545 = icmp eq i64 %3537, %3544
  br label %3546

3546:                                             ; preds = %3532, %3527
  %3547 = phi i1 [ false, %3527 ], [ %3545, %3532 ]
  %3548 = zext i1 %3547 to i8
  store i8 %3548, ptr %50, align 1, !tbaa !9
  br label %3549

3549:                                             ; preds = %3546
  %3550 = load i64, ptr %12, align 8, !tbaa !11
  %3551 = add nsw i64 %3550, 1
  store i64 %3551, ptr %12, align 8, !tbaa !11
  br label %3511, !llvm.loop !141

3552:                                             ; preds = %3511
  %3553 = load i8, ptr %49, align 1, !tbaa !9, !range !19, !noundef !20
  %3554 = trunc i8 %3553 to i1
  br i1 %3554, label %3559, label %3555

3555:                                             ; preds = %3552
  %3556 = load i8, ptr %50, align 1, !tbaa !9, !range !19, !noundef !20
  %3557 = trunc i8 %3556 to i1
  %3558 = xor i1 %3557, true
  br label %3559

3559:                                             ; preds = %3555, %3552
  %3560 = phi i1 [ false, %3552 ], [ %3558, %3555 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3560, ptr noundef @.str.19, i32 noundef 25612, ptr noundef @.str.417)
  %3561 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3562 = trunc i8 %3561 to i1
  br i1 %3562, label %3563, label %3567

3563:                                             ; preds = %3559
  %3564 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3564)
  %3565 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3566 = trunc i8 %3565 to i1
  store i1 %3566, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3567:                                             ; preds = %3559
  %3568 = load i64, ptr %5, align 8, !tbaa !11
  %3569 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3568, i64 noundef 0, ptr noundef %29, ptr noundef %3569)
  %3570 = load i64, ptr %5, align 8, !tbaa !11
  %3571 = sub nsw i64 %3570, 1
  %3572 = load ptr, ptr %3, align 8, !tbaa !5
  %3573 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %32, i64 noundef %3571, ptr noundef %3572)
  %3574 = add nsw i64 1, %3573
  store i64 %3574, ptr %51, align 8, !tbaa !11
  %3575 = load i64, ptr %51, align 8, !tbaa !11
  store i64 %3575, ptr %12, align 8, !tbaa !11
  br label %3576

3576:                                             ; preds = %3586, %3567
  %3577 = load i64, ptr %12, align 8, !tbaa !11
  %3578 = load i64, ptr %5, align 8, !tbaa !11
  %3579 = sub nsw i64 %3578, 1
  %3580 = icmp sle i64 %3577, %3579
  br i1 %3580, label %3581, label %3589

3581:                                             ; preds = %3576
  %3582 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %29, i32 0, i32 4
  %3583 = load ptr, ptr %3582, align 8, !tbaa !15
  %3584 = load i64, ptr %12, align 8, !tbaa !11
  %3585 = getelementptr inbounds i64, ptr %3583, i64 %3584
  store i64 1, ptr %3585, align 8, !tbaa !11
  br label %3586

3586:                                             ; preds = %3581
  %3587 = load i64, ptr %12, align 8, !tbaa !11
  %3588 = add nsw i64 %3587, 1
  store i64 %3588, ptr %12, align 8, !tbaa !11
  br label %3576, !llvm.loop !142

3589:                                             ; preds = %3576
  %3590 = load i64, ptr %5, align 8, !tbaa !11
  %3591 = add nsw i64 %3590, 1
  %3592 = sitofp i64 %3591 to double
  %3593 = load ptr, ptr %3, align 8, !tbaa !5
  %3594 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %32, ptr noundef %3593)
  %3595 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3594, double noundef 0.000000e+00)
  %3596 = load ptr, ptr %3, align 8, !tbaa !5
  %3597 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %3595, i64 noundef 1, i64 noundef -1, ptr noundef %3596)
  %3598 = load ptr, ptr %3, align 8, !tbaa !5
  %3599 = call noundef zeroext i1 @_ZN11alglib_impl13spsymmanalyzeEPKNS_12sparsematrixEPKNS_9ae_vectorEdllllPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef %22, ptr noundef %29, double noundef %3592, i64 noundef 0, i64 noundef 0, i64 noundef 3, i64 noundef %3597, ptr noundef %38, ptr noundef %3598)
  br i1 %3599, label %3604, label %3600

3600:                                             ; preds = %3589
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25633, ptr noundef @.str.418)
  %3601 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3601)
  %3602 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3603 = trunc i8 %3602 to i1
  store i1 %3603, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3604:                                             ; preds = %3589
  %3605 = load ptr, ptr %3, align 8, !tbaa !5
  %3606 = call noundef zeroext i1 @_ZN11alglib_impl15spsymmfactorizeEPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef %38, ptr noundef %3605)
  br i1 %3606, label %3611, label %3607

3607:                                             ; preds = %3604
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext true, ptr noundef @.str.19, i32 noundef 25639, ptr noundef @.str.419)
  %3608 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3608)
  %3609 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3610 = trunc i8 %3609 to i1
  store i1 %3610, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3611:                                             ; preds = %3604
  %3612 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl13spsymmextractEPNS_14spcholanalysisEPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %38, ptr noundef %23, ptr noundef %30, ptr noundef %27, ptr noundef %3612)
  store i8 1, ptr %49, align 1, !tbaa !9
  store i64 0, ptr %12, align 8, !tbaa !11
  br label %3613

3613:                                             ; preds = %3632, %3611
  %3614 = load i64, ptr %12, align 8, !tbaa !11
  %3615 = load i64, ptr %51, align 8, !tbaa !11
  %3616 = sub nsw i64 %3615, 1
  %3617 = icmp sle i64 %3614, %3616
  br i1 %3617, label %3618, label %3635

3618:                                             ; preds = %3613
  %3619 = load i8, ptr %49, align 1, !tbaa !9, !range !19, !noundef !20
  %3620 = trunc i8 %3619 to i1
  br i1 %3620, label %3621, label %3629

3621:                                             ; preds = %3618
  %3622 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %3623 = load ptr, ptr %3622, align 8, !tbaa !15
  %3624 = load i64, ptr %12, align 8, !tbaa !11
  %3625 = getelementptr inbounds i64, ptr %3623, i64 %3624
  %3626 = load i64, ptr %3625, align 8, !tbaa !11
  %3627 = load i64, ptr %12, align 8, !tbaa !11
  %3628 = icmp eq i64 %3626, %3627
  br label %3629

3629:                                             ; preds = %3621, %3618
  %3630 = phi i1 [ false, %3618 ], [ %3628, %3621 ]
  %3631 = zext i1 %3630 to i8
  store i8 %3631, ptr %49, align 1, !tbaa !9
  br label %3632

3632:                                             ; preds = %3629
  %3633 = load i64, ptr %12, align 8, !tbaa !11
  %3634 = add nsw i64 %3633, 1
  store i64 %3634, ptr %12, align 8, !tbaa !11
  br label %3613, !llvm.loop !143

3635:                                             ; preds = %3613
  %3636 = load i8, ptr %49, align 1, !tbaa !9, !range !19, !noundef !20
  %3637 = trunc i8 %3636 to i1
  %3638 = xor i1 %3637, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %52, i1 noundef zeroext %3638, ptr noundef @.str.19, i32 noundef 25649, ptr noundef @.str.420)
  %3639 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3640 = trunc i8 %3639 to i1
  br i1 %3640, label %3641, label %3645

3641:                                             ; preds = %3635
  %3642 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3642)
  %3643 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3644 = trunc i8 %3643 to i1
  store i1 %3644, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3645:                                             ; preds = %3635
  br label %3646

3646:                                             ; preds = %3645
  %3647 = load i64, ptr %5, align 8, !tbaa !11
  %3648 = add nsw i64 %3647, 1
  store i64 %3648, ptr %5, align 8, !tbaa !11
  br label %3443, !llvm.loop !144

3649:                                             ; preds = %3443
  %3650 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3650)
  %3651 = load i8, ptr %52, align 1, !tbaa !9, !range !19, !noundef !20
  %3652 = trunc i8 %3651 to i1
  store i1 %3652, ptr %2, align 1
  store i32 1, ptr %53, align 4
  br label %3653

3653:                                             ; preds = %3649, %3641, %3607, %3600, %3563, %3505, %3498, %3404, %3397, %3390, %3383, %3192, %3036, %2573, %2544, %2502, %2473, %2464, %2112, %2098, %2089, %1744, %1694, %1665, %1645, %1244, %1215, %1173, %1143, %1130, %1118, %1108, %569, %540, %498, %452, %442, %429, %418, %408, %335, %299
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 15064, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 16560, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 64, 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 496, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 368, 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 1, 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 80, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #5
  %3654 = load i1, ptr %2, align 1
  ret i1 %3654
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef) #2

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!7, !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = !{!30, !12, i64 0}
!30 = !{!"_ZTSN11alglib_impl9ae_vectorE", !12, i64 0, !12, i64 8, !10, i64 16, !31, i64 24, !7, i64 56}
!31 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!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}
!40 = distinct !{!40, !17}
!41 = distinct !{!41, !17}
!42 = distinct !{!42, !17}
!43 = distinct !{!43, !17}
!44 = distinct !{!44, !17}
!45 = distinct !{!45, !17}
!46 = distinct !{!46, !17}
!47 = distinct !{!47, !17}
!48 = distinct !{!48, !17}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = distinct !{!51, !17}
!52 = distinct !{!52, !17}
!53 = distinct !{!53, !17}
!54 = distinct !{!54, !17}
!55 = distinct !{!55, !17}
!56 = distinct !{!56, !17}
!57 = distinct !{!57, !17}
!58 = distinct !{!58, !17}
!59 = distinct !{!59, !17}
!60 = distinct !{!60, !17}
!61 = distinct !{!61, !17}
!62 = distinct !{!62, !17}
!63 = distinct !{!63, !17}
!64 = distinct !{!64, !17}
!65 = distinct !{!65, !17}
!66 = distinct !{!66, !17}
!67 = distinct !{!67, !17}
!68 = distinct !{!68, !17}
!69 = distinct !{!69, !17}
!70 = distinct !{!70, !17}
!71 = distinct !{!71, !17}
!72 = distinct !{!72, !17}
!73 = distinct !{!73, !17}
!74 = distinct !{!74, !17}
!75 = distinct !{!75, !17}
!76 = distinct !{!76, !17}
!77 = distinct !{!77, !17}
!78 = distinct !{!78, !17}
!79 = distinct !{!79, !17}
!80 = distinct !{!80, !17}
!81 = distinct !{!81, !17}
!82 = distinct !{!82, !17}
!83 = distinct !{!83, !17}
!84 = distinct !{!84, !17}
!85 = distinct !{!85, !17}
!86 = distinct !{!86, !17}
!87 = distinct !{!87, !17}
!88 = distinct !{!88, !17}
!89 = distinct !{!89, !17}
!90 = distinct !{!90, !17}
!91 = distinct !{!91, !17}
!92 = distinct !{!92, !17}
!93 = distinct !{!93, !17}
!94 = distinct !{!94, !17}
!95 = distinct !{!95, !17}
!96 = distinct !{!96, !17}
!97 = distinct !{!97, !17}
!98 = distinct !{!98, !17}
!99 = distinct !{!99, !17}
!100 = distinct !{!100, !17}
!101 = distinct !{!101, !17}
!102 = distinct !{!102, !17}
!103 = distinct !{!103, !17}
!104 = distinct !{!104, !17}
!105 = distinct !{!105, !17}
!106 = distinct !{!106, !17}
!107 = distinct !{!107, !17}
!108 = distinct !{!108, !17}
!109 = distinct !{!109, !17}
!110 = distinct !{!110, !17}
!111 = distinct !{!111, !17}
!112 = distinct !{!112, !17}
!113 = distinct !{!113, !17}
!114 = distinct !{!114, !17}
!115 = distinct !{!115, !17}
!116 = distinct !{!116, !17}
!117 = distinct !{!117, !17}
!118 = distinct !{!118, !17}
!119 = distinct !{!119, !17}
!120 = distinct !{!120, !17}
!121 = distinct !{!121, !17}
!122 = distinct !{!122, !17}
!123 = distinct !{!123, !17}
!124 = distinct !{!124, !17}
!125 = distinct !{!125, !17}
!126 = distinct !{!126, !17}
!127 = distinct !{!127, !17}
!128 = distinct !{!128, !17}
!129 = distinct !{!129, !17}
!130 = distinct !{!130, !17}
!131 = distinct !{!131, !17}
!132 = distinct !{!132, !17}
!133 = distinct !{!133, !17}
!134 = distinct !{!134, !17}
!135 = distinct !{!135, !17}
!136 = distinct !{!136, !17}
!137 = distinct !{!137, !17}
!138 = distinct !{!138, !17}
!139 = distinct !{!139, !17}
!140 = distinct !{!140, !17}
!141 = distinct !{!141, !17}
!142 = distinct !{!142, !17}
!143 = distinct !{!143, !17}
!144 = distinct !{!144, !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::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::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::sparsebuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }
%"struct.alglib_impl::sparsedecompositionanalysis" = type { i64, i64, i64, %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::spcholanalysis" = type { i64, i64, i64, i8, i64, double, double, double, double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, i8, %"struct.alglib_impl::spcholadj", %"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_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"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::amdbuffer", %"struct.alglib_impl::priorityamdbuffers", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::spcholadj" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_nxpool" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_dyn_block", %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::amdbuffer" = type { i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdllmatrix", %"struct.alglib_impl::amdvertexset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::amdllmatrix" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::amdvertexset" = type { i64, i8, 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::amdknset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::niset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::priorityamdbuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdbuffer", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix" }

@.str.19 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [22 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z22sparserealcholeskytestPN11alglib_impl8ae_stateE(ptr noundef %0) local_unnamed_addr #4 {
  %2 = alloca %"struct.alglib_impl::ae_frame", align 8
  %3 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %4 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %5 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %6 = alloca i64, align 8
  %7 = alloca i64, align 8
  %8 = alloca double, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %12 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %13 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %14 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %15 = alloca %"struct.alglib_impl::sparsebuffers", align 8
  %16 = alloca %"struct.alglib_impl::ae_vector", align 8
  %17 = alloca %"struct.alglib_impl::ae_vector", align 8
  %18 = alloca %"struct.alglib_impl::ae_vector", align 8
  %19 = alloca %"struct.alglib_impl::ae_vector", align 8
  %20 = alloca %"struct.alglib_impl::ae_vector", align 8
  %21 = alloca %"struct.alglib_impl::hqrndstate", align 8
  %22 = alloca %"struct.alglib_impl::sparsedecompositionanalysis", align 8
  %23 = alloca %"struct.alglib_impl::spcholanalysis", align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 496, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 16560, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 15064, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %0, ptr noundef nonnull %2)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %3, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %4, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %5, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %11, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %12, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %13, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %14, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(496) %15, i8 0, i64 496, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %16, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %17, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %18, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %19, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %20, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16560) %22, i8 0, i64 16560, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(15064) %23, i8 0, i64 15064, i1 false)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %3, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %4, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %5, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %11, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %12, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %13, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %14, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl19_sparsebuffers_initEPvPNS_8ae_stateEb(ptr noundef nonnull %15, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %16, i64 noundef 0, i64 noundef 2, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %17, i64 noundef 0, i64 noundef 2, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %18, i64 noundef 0, i64 noundef 2, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %19, i64 noundef 0, i64 noundef 3, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %20, i64 noundef 0, i64 noundef 1, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl16_hqrndstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %21, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl33_sparsedecompositionanalysis_initEPvPNS_8ae_stateEb(ptr noundef nonnull %22, ptr noundef %0, i1 noundef zeroext true)
  call void @_ZN11alglib_impl20_spcholanalysis_initEPvPNS_8ae_stateEb(ptr noundef nonnull %23, ptr noundef %0, i1 noundef zeroext true)
  store i8 0, ptr %26, align 1, !tbaa !5
  call void @_ZN11alglib_impl14hqrndrandomizeEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %27 = getelementptr inbounds i8, ptr %3, i64 72
  %28 = getelementptr inbounds i8, ptr %16, i64 56
  %29 = getelementptr inbounds i8, ptr %19, i64 56
  %30 = getelementptr inbounds i8, ptr %4, i64 72
  br label %31

31:                                               ; preds = %1, %336
  %indvar = phi i64 [ 0, %1 ], [ %indvar.next, %336 ]
  %.07611246 = phi i64 [ 1, %1 ], [ %337, %336 ]
  %.07611018 = add nsw i64 %.07611246, -1
  %32 = mul nuw nsw i64 %.07611018, %.07611246
  %33 = icmp ugt i64 %.07611246, 1
  %34 = sitofp i64 %32 to double
  %35 = uitofp nneg i64 %.07611246 to double
  %36 = fdiv double 5.000000e-01, %35
  %xtraiter = and i64 %.07611246, 3
  %37 = icmp ult i64 %indvar, 3
  %unroll_iter = and i64 %.07611246, 9223372036854775804
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br label %38

38:                                               ; preds = %334, %31
  %.0763 = phi i64 [ %32, %31 ], [ %335, %334 ]
  %39 = sitofp i64 %.0763 to double
  %40 = fdiv double %39, %34
  %.0773 = select i1 %33, double %40, double 1.000000e+00
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %3, i64 noundef %.07611246, i64 noundef %.07611246, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1171

.preheader1171:                                   ; preds = %38, %._crit_edge
  %41 = phi i64 [ 0, %38 ], [ %87, %._crit_edge ]
  store i64 0, ptr %7, align 8, !tbaa !9
  %.not10611226 = icmp slt i64 %41, 0
  br i1 %.not10611226, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader1171, %83
  %42 = phi i64 [ %84, %83 ], [ %41, %.preheader1171 ]
  %storemerge10601227 = phi i64 [ %86, %83 ], [ 0, %.preheader1171 ]
  %43 = icmp eq i64 %42, %storemerge10601227
  %44 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  br i1 %43, label %45, label %52

45:                                               ; preds = %.lr.ph
  %46 = fadd double %44, 1.000000e+00
  %47 = load ptr, ptr %27, align 8, !tbaa !11
  %48 = load i64, ptr %6, align 8, !tbaa !9
  %49 = getelementptr inbounds ptr, ptr %47, i64 %48
  %50 = load ptr, ptr %49, align 8, !tbaa !12
  %51 = getelementptr inbounds double, ptr %50, i64 %48
  store double %46, ptr %51, align 8, !tbaa !14
  %.pre = load i64, ptr %7, align 8, !tbaa !9
  br label %83

52:                                               ; preds = %.lr.ph
  %53 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %44, double noundef %.0773)
  br i1 %53, label %54, label %72

54:                                               ; preds = %52
  %55 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %56 = fadd double %55, -5.000000e-01
  %57 = fmul double %36, %56
  %58 = load ptr, ptr %27, align 8, !tbaa !11
  %59 = load i64, ptr %6, align 8, !tbaa !9
  %60 = getelementptr inbounds ptr, ptr %58, i64 %59
  %61 = load ptr, ptr %60, align 8, !tbaa !12
  %62 = load i64, ptr %7, align 8, !tbaa !9
  %63 = getelementptr inbounds double, ptr %61, i64 %62
  store double %57, ptr %63, align 8, !tbaa !14
  %64 = load ptr, ptr %27, align 8, !tbaa !11
  %65 = getelementptr inbounds ptr, ptr %64, i64 %59
  %66 = load ptr, ptr %65, align 8, !tbaa !12
  %67 = getelementptr inbounds double, ptr %66, i64 %62
  %68 = load double, ptr %67, align 8, !tbaa !14
  %69 = getelementptr inbounds ptr, ptr %64, i64 %62
  %70 = load ptr, ptr %69, align 8, !tbaa !12
  %71 = getelementptr inbounds double, ptr %70, i64 %59
  store double %68, ptr %71, align 8, !tbaa !14
  br label %83

72:                                               ; preds = %52
  %73 = load ptr, ptr %27, align 8, !tbaa !11
  %74 = load i64, ptr %6, align 8, !tbaa !9
  %75 = getelementptr inbounds ptr, ptr %73, i64 %74
  %76 = load ptr, ptr %75, align 8, !tbaa !12
  %77 = load i64, ptr %7, align 8, !tbaa !9
  %78 = getelementptr inbounds double, ptr %76, i64 %77
  store double 0.000000e+00, ptr %78, align 8, !tbaa !14
  %79 = load ptr, ptr %27, align 8, !tbaa !11
  %80 = getelementptr inbounds ptr, ptr %79, i64 %77
  %81 = load ptr, ptr %80, align 8, !tbaa !12
  %82 = getelementptr inbounds double, ptr %81, i64 %74
  store double 0.000000e+00, ptr %82, align 8, !tbaa !14
  br label %83

83:                                               ; preds = %54, %72, %45
  %84 = phi i64 [ %59, %54 ], [ %74, %72 ], [ %48, %45 ]
  %85 = phi i64 [ %62, %54 ], [ %77, %72 ], [ %.pre, %45 ]
  %86 = add nsw i64 %85, 1
  store i64 %86, ptr %7, align 8, !tbaa !9
  %.not1061.not = icmp slt i64 %85, %84
  br i1 %.not1061.not, label %.lr.ph, label %._crit_edge, !llvm.loop !16

._crit_edge:                                      ; preds = %83, %.preheader1171
  %.lcssa1202 = phi i64 [ %41, %.preheader1171 ], [ %84, %83 ]
  %87 = add nsw i64 %.lcssa1202, 1
  store i64 %87, ptr %6, align 8, !tbaa !9
  %.not1020.not = icmp slt i64 %87, %.07611246
  br i1 %.not1020.not, label %.preheader1171, label %88, !llvm.loop !18

88:                                               ; preds = %._crit_edge
  %89 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %0)
  %90 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %89, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.07611246, i64 noundef %.07611246, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1170

.preheader1173:                                   ; preds = %102
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1169

.preheader1170:                                   ; preds = %88, %102
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %91

91:                                               ; preds = %.preheader1170, %99
  %storemerge10561228 = phi i64 [ 0, %.preheader1170 ], [ %101, %99 ]
  %92 = load i64, ptr %6, align 8, !tbaa !9
  %.not1058 = icmp sle i64 %storemerge10561228, %92
  %.not1059 = icmp sge i64 %storemerge10561228, %92
  %or.cond = select i1 %90, i1 %.not1059, i1 %.not1058
  br i1 %or.cond, label %93, label %99

93:                                               ; preds = %91
  %94 = load ptr, ptr %27, align 8, !tbaa !11
  %95 = getelementptr inbounds ptr, ptr %94, i64 %92
  %96 = load ptr, ptr %95, align 8, !tbaa !12
  %97 = getelementptr inbounds double, ptr %96, i64 %storemerge10561228
  %98 = load double, ptr %97, align 8, !tbaa !14
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %92, i64 noundef %storemerge10561228, double noundef %98, ptr noundef %0)
  %.pre1472 = load i64, ptr %7, align 8, !tbaa !9
  br label %99

99:                                               ; preds = %91, %93
  %100 = phi i64 [ %storemerge10561228, %91 ], [ %.pre1472, %93 ]
  %101 = add nsw i64 %100, 1
  store i64 %101, ptr %7, align 8, !tbaa !9
  %.not1057.not = icmp slt i64 %101, %.07611246
  br i1 %.not1057.not, label %91, label %102, !llvm.loop !19

102:                                              ; preds = %99
  %103 = load i64, ptr %6, align 8, !tbaa !9
  %104 = add nsw i64 %103, 1
  store i64 %104, ptr %6, align 8, !tbaa !9
  %.not1022.not = icmp slt i64 %104, %.07611246
  br i1 %.not1022.not, label %.preheader1170, label %.preheader1173, !llvm.loop !20

.preheader1169:                                   ; preds = %.preheader1173, %118
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %105

105:                                              ; preds = %.preheader1169, %115
  %storemerge10541229 = phi i64 [ 0, %.preheader1169 ], [ %117, %115 ]
  %106 = load i64, ptr %6, align 8, !tbaa !9
  %107 = icmp sge i64 %storemerge10541229, %106
  %108 = icmp sle i64 %storemerge10541229, %106
  %or.cond1092 = select i1 %90, i1 %107, i1 %108
  br i1 %or.cond1092, label %115, label %109

109:                                              ; preds = %105
  %110 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %111 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %110, double noundef %.0773)
  %.pre1474 = load i64, ptr %7, align 8, !tbaa !9
  br i1 %111, label %112, label %115

112:                                              ; preds = %109
  %113 = load i64, ptr %6, align 8, !tbaa !9
  %114 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %113, i64 noundef %.pre1474, double noundef %114, ptr noundef %0)
  %.pre1473 = load i64, ptr %7, align 8, !tbaa !9
  br label %115

115:                                              ; preds = %105, %112, %109
  %116 = phi i64 [ %storemerge10541229, %105 ], [ %.pre1473, %112 ], [ %.pre1474, %109 ]
  %117 = add nsw i64 %116, 1
  store i64 %117, ptr %7, align 8, !tbaa !9
  %.not1055.not = icmp slt i64 %117, %.07611246
  br i1 %.not1055.not, label %105, label %118, !llvm.loop !21

118:                                              ; preds = %115
  %119 = load i64, ptr %6, align 8, !tbaa !9
  %120 = add nsw i64 %119, 1
  store i64 %120, ptr %6, align 8, !tbaa !9
  %.not1024.not = icmp slt i64 %120, %.07611246
  br i1 %.not1024.not, label %.preheader1169, label %121, !llvm.loop !22

121:                                              ; preds = %118
  %122 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 3, ptr noundef %0)
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %122, ptr noundef %0)
  %123 = xor i1 %90, true
  br label %124

124:                                              ; preds = %121, %318
  %.07711243 = phi i64 [ 0, %121 ], [ %319, %318 ]
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  switch i64 %.07711243, label %default.unreachable [
    i64 0, label %125
    i64 1, label %136
    i64 2, label %156
  ]

125:                                              ; preds = %124
  %126 = call noundef zeroext i1 @_ZN11alglib_impl14sparsecholeskyEPNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %90, ptr noundef %0)
  br i1 %126, label %128, label %127

127:                                              ; preds = %125
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24337, ptr noundef nonnull @.str.343)
  br label %.loopexit

128:                                              ; preds = %125
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %16, i64 noundef %.07611246, ptr noundef %0)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %19, i64 noundef %.07611246, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %129

129:                                              ; preds = %128, %129
  %storemerge10251230 = phi i64 [ 0, %128 ], [ %135, %129 ]
  %130 = load ptr, ptr %28, align 8, !tbaa !11
  %131 = getelementptr inbounds i64, ptr %130, i64 %storemerge10251230
  store i64 %storemerge10251230, ptr %131, align 8, !tbaa !9
  %132 = load ptr, ptr %29, align 8, !tbaa !11
  %133 = load i64, ptr %6, align 8, !tbaa !9
  %134 = getelementptr inbounds double, ptr %132, i64 %133
  store double 1.000000e+00, ptr %134, align 8, !tbaa !14
  %135 = add nsw i64 %133, 1
  store i64 %135, ptr %6, align 8, !tbaa !9
  %.not1026.not = icmp slt i64 %135, %.07611246
  br i1 %.not1026.not, label %129, label %.loopexit1168, !llvm.loop !23

136:                                              ; preds = %124
  %137 = call noundef zeroext i1 @_ZN11alglib_impl15sparsecholeskypEPNS_12sparsematrixEbPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %90, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %137, label %139, label %138

138:                                              ; preds = %136
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24357, ptr noundef nonnull @.str.344)
  br label %.loopexit

139:                                              ; preds = %136
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %19, i64 noundef %.07611246, ptr noundef %0)
  br i1 %37, label %.unr-lcssa, label %.new

.new:                                             ; preds = %139, %.new
  %storemerge10271231 = phi i64 [ %151, %.new ], [ 0, %139 ]
  %niter = phi i64 [ %niter.next.3, %.new ], [ 0, %139 ]
  %140 = load ptr, ptr %29, align 8, !tbaa !11
  %141 = getelementptr inbounds double, ptr %140, i64 %storemerge10271231
  store double 1.000000e+00, ptr %141, align 8, !tbaa !14
  %142 = or disjoint i64 %storemerge10271231, 1
  %143 = load ptr, ptr %29, align 8, !tbaa !11
  %144 = getelementptr inbounds double, ptr %143, i64 %142
  store double 1.000000e+00, ptr %144, align 8, !tbaa !14
  %145 = or disjoint i64 %storemerge10271231, 2
  %146 = load ptr, ptr %29, align 8, !tbaa !11
  %147 = getelementptr inbounds double, ptr %146, i64 %145
  store double 1.000000e+00, ptr %147, align 8, !tbaa !14
  %148 = or disjoint i64 %storemerge10271231, 3
  %149 = load ptr, ptr %29, align 8, !tbaa !11
  %150 = getelementptr inbounds double, ptr %149, i64 %148
  store double 1.000000e+00, ptr %150, align 8, !tbaa !14
  %151 = add nuw nsw i64 %storemerge10271231, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %.unr-lcssa, label %.new, !llvm.loop !24

.unr-lcssa:                                       ; preds = %.new, %139
  %storemerge10271231.unr = phi i64 [ 0, %139 ], [ %151, %.new ]
  br i1 %lcmp.mod.not, label %.epilog-lcssa, label %.epil.preheader

.epil.preheader:                                  ; preds = %.unr-lcssa, %.epil.preheader
  %storemerge10271231.epil = phi i64 [ %154, %.epil.preheader ], [ %storemerge10271231.unr, %.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %.unr-lcssa ]
  %152 = load ptr, ptr %29, align 8, !tbaa !11
  %153 = getelementptr inbounds double, ptr %152, i64 %storemerge10271231.epil
  store double 1.000000e+00, ptr %153, align 8, !tbaa !14
  %154 = add nuw nsw i64 %storemerge10271231.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.epilog-lcssa, label %.epil.preheader, !llvm.loop !25

.epilog-lcssa:                                    ; preds = %.epil.preheader, %.unr-lcssa
  store i64 %.07611246, ptr %6, align 8, !tbaa !9
  %155 = icmp eq i64 %.07711243, 2
  br i1 %155, label %156, label %.loopexit1168

156:                                              ; preds = %124, %.epilog-lcssa
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1160

.preheader1160:                                   ; preds = %156, %167
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %157

157:                                              ; preds = %.preheader1160, %164
  %storemerge10521232 = phi i64 [ 0, %.preheader1160 ], [ %166, %164 ]
  %158 = load i64, ptr %6, align 8, !tbaa !9
  %159 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %158, i64 noundef %storemerge10521232, ptr noundef %0)
  br i1 %159, label %160, label %164

160:                                              ; preds = %157
  %161 = load i64, ptr %6, align 8, !tbaa !9
  %162 = load i64, ptr %7, align 8, !tbaa !9
  %163 = call noundef zeroext i1 @_ZN11alglib_impl21sparserewriteexistingEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %161, i64 noundef %162, double noundef 1.000000e+00, ptr noundef %0)
  br label %164

164:                                              ; preds = %157, %160
  %165 = load i64, ptr %7, align 8, !tbaa !9
  %166 = add nsw i64 %165, 1
  store i64 %166, ptr %7, align 8, !tbaa !9
  %.not1053.not = icmp slt i64 %166, %.07611246
  br i1 %.not1053.not, label %157, label %167, !llvm.loop !27

167:                                              ; preds = %164
  %168 = load i64, ptr %6, align 8, !tbaa !9
  %169 = add nsw i64 %168, 1
  store i64 %169, ptr %6, align 8, !tbaa !9
  %.not1030.not = icmp slt i64 %169, %.07611246
  br i1 %.not1030.not, label %.preheader1160, label %170, !llvm.loop !28

170:                                              ; preds = %167
  %171 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 7, ptr noundef %0)
  %172 = add nsw i64 %171, -3
  %173 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %174 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %173, double noundef 0.000000e+00)
  br i1 %174, label %175, label %181

175:                                              ; preds = %170
  %176 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %90, i64 noundef 0, i64 noundef %172, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %176, label %178, label %177

177:                                              ; preds = %175
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24395, ptr noundef nonnull @.str.345)
  br label %.loopexit

178:                                              ; preds = %175
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef nonnull %13, ptr noundef %0)
  %179 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext %90, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %179, label %187, label %180

180:                                              ; preds = %178
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24402, ptr noundef nonnull @.str.346)
  br label %.loopexit

181:                                              ; preds = %170
  %182 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %14, i1 noundef zeroext %90, i64 noundef 0, i64 noundef %172, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %182, label %184, label %183

183:                                              ; preds = %181
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24415, ptr noundef nonnull @.str.347)
  br label %.loopexit

184:                                              ; preds = %181
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef nonnull %22, ptr noundef nonnull %13, i1 noundef zeroext %90, ptr noundef %0)
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef nonnull %13, ptr noundef %0)
  %185 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext %90, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %185, label %187, label %186

186:                                              ; preds = %184
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24423, ptr noundef nonnull @.str.348)
  br label %.loopexit

187:                                              ; preds = %184, %178
  %188 = load i64, ptr %19, align 8, !tbaa !29
  %.not1031 = icmp eq i64 %188, %.07611246
  br i1 %.not1031, label %.preheader1167, label %189

.preheader1167:                                   ; preds = %187
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %190

189:                                              ; preds = %187
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24430, ptr noundef nonnull @.str.349)
  br label %.loopexit

190:                                              ; preds = %.preheader1167, %190
  %storemerge10321233 = phi i64 [ 0, %.preheader1167 ], [ %196, %190 ]
  %191 = load ptr, ptr %29, align 8, !tbaa !11
  %192 = getelementptr inbounds double, ptr %191, i64 %storemerge10321233
  %193 = load double, ptr %192, align 8, !tbaa !14
  %194 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %193, double noundef 1.000000e+00)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %194, ptr noundef nonnull @.str.19, i32 noundef 24436, ptr noundef nonnull @.str.350)
  %195 = load i64, ptr %6, align 8, !tbaa !9
  %196 = add nsw i64 %195, 1
  store i64 %196, ptr %6, align 8, !tbaa !9
  %.not1033.not = icmp slt i64 %196, %.07611246
  br i1 %.not1033.not, label %190, label %.loopexit1168, !llvm.loop !32

default.unreachable:                              ; preds = %124
  unreachable

.loopexit1168:                                    ; preds = %190, %129, %.epilog-lcssa
  %197 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  br i1 %197, label %198, label %203

198:                                              ; preds = %.loopexit1168
  %199 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %.not1034 = icmp eq i64 %199, %.07611246
  br i1 %.not1034, label %200, label %203

200:                                              ; preds = %198
  %201 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %202 = icmp ne i64 %201, %.07611246
  br label %203

203:                                              ; preds = %200, %198, %.loopexit1168
  %204 = phi i1 [ true, %198 ], [ true, %.loopexit1168 ], [ %202, %200 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %204, ptr noundef nonnull @.str.19, i32 noundef 24443, ptr noundef nonnull @.str.351)
  %205 = load i64, ptr %16, align 8, !tbaa !29
  %206 = icmp ne i64 %205, %.07611246
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %206, ptr noundef nonnull @.str.19, i32 noundef 24444, ptr noundef nonnull @.str.352)
  %207 = load i64, ptr %19, align 8, !tbaa !29
  %208 = icmp ne i64 %207, %.07611246
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %208, ptr noundef nonnull @.str.19, i32 noundef 24445, ptr noundef nonnull @.str.353)
  %209 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %210 = trunc nuw i8 %209 to i1
  br i1 %210, label %.loopexit, label %.preheader1166

.preheader1166:                                   ; preds = %203
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %211

211:                                              ; preds = %.preheader1166, %211
  %storemerge10351234 = phi i64 [ 0, %.preheader1166 ], [ %224, %211 ]
  %212 = load ptr, ptr %28, align 8, !tbaa !11
  %213 = getelementptr inbounds i64, ptr %212, i64 %storemerge10351234
  %214 = load i64, ptr %213, align 8, !tbaa !9
  %215 = icmp slt i64 %214, %storemerge10351234
  %216 = icmp sge i64 %214, %.07611246
  %spec.select = or i1 %215, %216
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %spec.select, ptr noundef nonnull @.str.19, i32 noundef 24453, ptr noundef nonnull @.str.354)
  %217 = load ptr, ptr %29, align 8, !tbaa !11
  %218 = load i64, ptr %6, align 8, !tbaa !9
  %219 = getelementptr inbounds double, ptr %217, i64 %218
  %220 = load double, ptr %219, align 8, !tbaa !14
  %221 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %220, ptr noundef %0)
  %222 = xor i1 %221, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %222, ptr noundef nonnull @.str.19, i32 noundef 24454, ptr noundef nonnull @.str.355)
  %223 = load i64, ptr %6, align 8, !tbaa !9
  %224 = add nsw i64 %223, 1
  store i64 %224, ptr %6, align 8, !tbaa !9
  %.not1036.not = icmp slt i64 %224, %.07611246
  br i1 %.not1036.not, label %211, label %225, !llvm.loop !35

225:                                              ; preds = %211
  %226 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %227 = trunc nuw i8 %226 to i1
  br i1 %227, label %.loopexit, label %228

228:                                              ; preds = %225
  store i64 0, ptr %9, align 8, !tbaa !9
  store i64 0, ptr %10, align 8, !tbaa !9
  %229 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %229, label %.lr.ph1236, label %._crit_edge1237

.lr.ph1236:                                       ; preds = %228, %.lr.ph1236
  %230 = load i64, ptr %7, align 8, !tbaa !9
  %231 = load i64, ptr %6, align 8, !tbaa !9
  %232 = icmp slt i64 %230, %231
  %233 = and i1 %90, %232
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %233, ptr noundef nonnull @.str.19, i32 noundef 24465, ptr noundef nonnull @.str.356)
  %234 = load i64, ptr %7, align 8, !tbaa !9
  %235 = load i64, ptr %6, align 8, !tbaa !9
  %236 = icmp sgt i64 %234, %235
  %237 = and i1 %236, %123
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %237, ptr noundef nonnull @.str.19, i32 noundef 24466, ptr noundef nonnull @.str.357)
  %238 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %238, label %.lr.ph1236, label %._crit_edge1237, !llvm.loop !36

._crit_edge1237:                                  ; preds = %.lr.ph1236, %228
  %239 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %.loopexit, label %241

241:                                              ; preds = %._crit_edge1237
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.07611246, i64 noundef %.07611246, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br i1 %90, label %.preheader1158, label %.preheader1159

.preheader1158:                                   ; preds = %241, %263
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %242

242:                                              ; preds = %.preheader1158, %255
  store double 0.000000e+00, ptr %8, align 8, !tbaa !14
  br label %243

243:                                              ; preds = %242, %243
  %244 = phi double [ 0.000000e+00, %242 ], [ %253, %243 ]
  %.07781239 = phi i64 [ 0, %242 ], [ %254, %243 ]
  %245 = load i64, ptr %7, align 8, !tbaa !9
  %246 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.07781239, i64 noundef %245, ptr noundef %0)
  %247 = load ptr, ptr %29, align 8, !tbaa !11
  %248 = getelementptr inbounds double, ptr %247, i64 %.07781239
  %249 = load double, ptr %248, align 8, !tbaa !14
  %250 = fmul double %246, %249
  %251 = load i64, ptr %6, align 8, !tbaa !9
  %252 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.07781239, i64 noundef %251, ptr noundef %0)
  %253 = call double @llvm.fmuladd.f64(double %250, double %252, double %244)
  store double %253, ptr %8, align 8, !tbaa !14
  %254 = add nuw nsw i64 %.07781239, 1
  %exitcond1455.not = icmp eq i64 %254, %.07611246
  br i1 %exitcond1455.not, label %255, label %243, !llvm.loop !37

255:                                              ; preds = %243
  %256 = load ptr, ptr %30, align 8, !tbaa !11
  %257 = load i64, ptr %6, align 8, !tbaa !9
  %258 = getelementptr inbounds ptr, ptr %256, i64 %257
  %259 = load ptr, ptr %258, align 8, !tbaa !12
  %260 = load i64, ptr %7, align 8, !tbaa !9
  %261 = getelementptr inbounds double, ptr %259, i64 %260
  store double %253, ptr %261, align 8, !tbaa !14
  %262 = add nsw i64 %260, 1
  store i64 %262, ptr %7, align 8, !tbaa !9
  %.not1050.not = icmp slt i64 %262, %.07611246
  br i1 %.not1050.not, label %242, label %263, !llvm.loop !38

263:                                              ; preds = %255
  %264 = add nsw i64 %257, 1
  store i64 %264, ptr %6, align 8, !tbaa !9
  %.not1043.not = icmp slt i64 %264, %.07611246
  br i1 %.not1043.not, label %.preheader1158, label %.loopexit1163, !llvm.loop !39

.preheader1159:                                   ; preds = %241, %286
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %265

265:                                              ; preds = %.preheader1159, %278
  store double 0.000000e+00, ptr %8, align 8, !tbaa !14
  br label %266

266:                                              ; preds = %265, %266
  %267 = phi double [ 0.000000e+00, %265 ], [ %276, %266 ]
  %.17791238 = phi i64 [ 0, %265 ], [ %277, %266 ]
  %268 = load i64, ptr %7, align 8, !tbaa !9
  %269 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %268, i64 noundef %.17791238, ptr noundef %0)
  %270 = load ptr, ptr %29, align 8, !tbaa !11
  %271 = getelementptr inbounds double, ptr %270, i64 %.17791238
  %272 = load double, ptr %271, align 8, !tbaa !14
  %273 = fmul double %269, %272
  %274 = load i64, ptr %6, align 8, !tbaa !9
  %275 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %274, i64 noundef %.17791238, ptr noundef %0)
  %276 = call double @llvm.fmuladd.f64(double %273, double %275, double %267)
  store double %276, ptr %8, align 8, !tbaa !14
  %277 = add nuw nsw i64 %.17791238, 1
  %exitcond1454.not = icmp eq i64 %277, %.07611246
  br i1 %exitcond1454.not, label %278, label %266, !llvm.loop !40

278:                                              ; preds = %266
  %279 = load ptr, ptr %30, align 8, !tbaa !11
  %280 = load i64, ptr %6, align 8, !tbaa !9
  %281 = getelementptr inbounds ptr, ptr %279, i64 %280
  %282 = load ptr, ptr %281, align 8, !tbaa !12
  %283 = load i64, ptr %7, align 8, !tbaa !9
  %284 = getelementptr inbounds double, ptr %282, i64 %283
  store double %276, ptr %284, align 8, !tbaa !14
  %285 = add nsw i64 %283, 1
  store i64 %285, ptr %7, align 8, !tbaa !9
  %.not1040.not = icmp slt i64 %285, %.07611246
  br i1 %.not1040.not, label %265, label %286, !llvm.loop !41

286:                                              ; preds = %278
  %287 = add nsw i64 %280, 1
  store i64 %287, ptr %6, align 8, !tbaa !9
  %.not1038.not = icmp slt i64 %287, %.07611246
  br i1 %.not1038.not, label %.preheader1159, label %.loopexit1163, !llvm.loop !42

.loopexit1163:                                    ; preds = %286, %263
  store i64 %.07611018, ptr %6, align 8, !tbaa !9
  br label %288

.preheader1161:                                   ; preds = %288
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1157

288:                                              ; preds = %.loopexit1163, %288
  %storemerge10441241 = phi i64 [ %.07611018, %.loopexit1163 ], [ %storemerge1044, %288 ]
  %289 = load ptr, ptr %28, align 8, !tbaa !11
  %290 = getelementptr inbounds i64, ptr %289, i64 %storemerge10441241
  %291 = load i64, ptr %290, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %storemerge10441241, i64 noundef %291, i64 noundef %.07611246, ptr noundef %0)
  %292 = load i64, ptr %6, align 8, !tbaa !9
  %293 = load ptr, ptr %28, align 8, !tbaa !11
  %294 = getelementptr inbounds i64, ptr %293, i64 %292
  %295 = load i64, ptr %294, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %292, i64 noundef %295, i64 noundef %.07611246, ptr noundef %0)
  %296 = load i64, ptr %6, align 8, !tbaa !9
  %storemerge1044 = add nsw i64 %296, -1
  store i64 %storemerge1044, ptr %6, align 8, !tbaa !9
  %297 = icmp sgt i64 %296, 0
  br i1 %297, label %288, label %.preheader1161, !llvm.loop !43

.preheader1157:                                   ; preds = %.preheader1161, %315
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %298

298:                                              ; preds = %.preheader1157, %298
  %storemerge10471242 = phi i64 [ 0, %.preheader1157 ], [ %314, %298 ]
  %299 = load ptr, ptr %27, align 8, !tbaa !11
  %300 = load i64, ptr %6, align 8, !tbaa !9
  %301 = getelementptr inbounds ptr, ptr %299, i64 %300
  %302 = load ptr, ptr %301, align 8, !tbaa !12
  %303 = getelementptr inbounds double, ptr %302, i64 %storemerge10471242
  %304 = load double, ptr %303, align 8, !tbaa !14
  %305 = load ptr, ptr %30, align 8, !tbaa !11
  %306 = getelementptr inbounds ptr, ptr %305, i64 %300
  %307 = load ptr, ptr %306, align 8, !tbaa !12
  %308 = getelementptr inbounds double, ptr %307, i64 %storemerge10471242
  %309 = load double, ptr %308, align 8, !tbaa !14
  %310 = fsub double %304, %309
  %311 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %310, ptr noundef %0)
  %312 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %311, double noundef 1.000000e-08)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %312, ptr noundef nonnull @.str.19, i32 noundef 24522, ptr noundef nonnull @.str.358)
  %313 = load i64, ptr %7, align 8, !tbaa !9
  %314 = add nsw i64 %313, 1
  store i64 %314, ptr %7, align 8, !tbaa !9
  %.not1048.not = icmp slt i64 %314, %.07611246
  br i1 %.not1048.not, label %298, label %315, !llvm.loop !44

315:                                              ; preds = %298
  %316 = load i64, ptr %6, align 8, !tbaa !9
  %317 = add nsw i64 %316, 1
  store i64 %317, ptr %6, align 8, !tbaa !9
  %.not1046.not = icmp slt i64 %317, %.07611246
  br i1 %.not1046.not, label %.preheader1157, label %318, !llvm.loop !45

318:                                              ; preds = %315
  %319 = add nuw nsw i64 %.07711243, 1
  %exitcond1456.not = icmp eq i64 %319, 3
  br i1 %exitcond1456.not, label %320, label %124, !llvm.loop !46

320:                                              ; preds = %318
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  call void @_ZN11alglib_impl19sparseconverttohashEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %321 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %.07611246, ptr noundef %0)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %321, i64 noundef %321, double noundef 0.000000e+00, ptr noundef %0)
  %322 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 3, ptr noundef %0)
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %322, ptr noundef %0)
  %323 = call noundef zeroext i1 @_ZN11alglib_impl14sparsecholeskyEPNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %90, ptr noundef %0)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %323, ptr noundef nonnull @.str.19, i32 noundef 24543, ptr noundef nonnull @.str.359)
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  call void @_ZN11alglib_impl19sparseconverttohashEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %324 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %.07611246, ptr noundef %0)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %324, i64 noundef %324, double noundef -1.000000e+10, ptr noundef %0)
  %325 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 3, ptr noundef %0)
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %325, ptr noundef %0)
  %326 = call noundef zeroext i1 @_ZN11alglib_impl14sparsecholeskyEPNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %90, ptr noundef %0)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %326, ptr noundef nonnull @.str.19, i32 noundef 24560, ptr noundef nonnull @.str.361)
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  call void @_ZN11alglib_impl19sparseconverttohashEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %327 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %.07611246, ptr noundef %0)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %327, i64 noundef %327, double noundef 0.000000e+00, ptr noundef %0)
  %328 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 3, ptr noundef %0)
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %328, ptr noundef %0)
  %329 = call noundef zeroext i1 @_ZN11alglib_impl15sparsecholeskypEPNS_12sparsematrixEbPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %90, ptr noundef nonnull %16, ptr noundef %0)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %329, ptr noundef nonnull @.str.19, i32 noundef 24547, ptr noundef nonnull @.str.360)
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  call void @_ZN11alglib_impl19sparseconverttohashEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %330 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %.07611246, ptr noundef %0)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %330, i64 noundef %330, double noundef -1.000000e+10, ptr noundef %0)
  %331 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 3, ptr noundef %0)
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %331, ptr noundef %0)
  %332 = call noundef zeroext i1 @_ZN11alglib_impl15sparsecholeskypEPNS_12sparsematrixEbPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %90, ptr noundef nonnull %16, ptr noundef %0)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %332, ptr noundef nonnull @.str.19, i32 noundef 24564, ptr noundef nonnull @.str.362)
  %333 = icmp eq i64 %.0763, 0
  br i1 %333, label %336, label %334

334:                                              ; preds = %320
  %335 = sdiv i64 %.0763, 2
  br label %38, !llvm.loop !47

336:                                              ; preds = %320
  %337 = add nuw nsw i64 %.07611246, 1
  %exitcond1457.not = icmp eq i64 %337, 31
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond1457.not, label %.preheader1156, label %31, !llvm.loop !48

.preheader1141:                                   ; preds = %592
  %338 = getelementptr inbounds i8, ptr %22, i64 24
  %339 = getelementptr inbounds i8, ptr %5, i64 72
  br label %594

.preheader1156:                                   ; preds = %336, %592
  %.17621265 = phi i64 [ %593, %592 ], [ 1, %336 ]
  %.1762981 = add nsw i64 %.17621265, -1
  %340 = mul nuw nsw i64 %.1762981, %.17621265
  %341 = icmp ugt i64 %.17621265, 1
  %342 = sitofp i64 %340 to double
  %343 = uitofp nneg i64 %.17621265 to double
  %344 = fdiv double 5.000000e-01, %343
  br label %345

345:                                              ; preds = %590, %.preheader1156
  %.1764 = phi i64 [ %340, %.preheader1156 ], [ %591, %590 ]
  %346 = sitofp i64 %.1764 to double
  %347 = fdiv double %346, %342
  %.1774 = select i1 %341, double %347, double 1.000000e+00
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %3, i64 noundef %.17621265, i64 noundef %.17621265, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1148

.preheader1148:                                   ; preds = %345, %._crit_edge1250
  %348 = phi i64 [ 0, %345 ], [ %398, %._crit_edge1250 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  %.not10171247 = icmp slt i64 %348, 0
  br i1 %.not10171247, label %._crit_edge1250, label %.lr.ph1249

.lr.ph1249:                                       ; preds = %.preheader1148, %394
  %349 = phi i64 [ %395, %394 ], [ %348, %.preheader1148 ]
  %storemerge10161248 = phi i64 [ %397, %394 ], [ 0, %.preheader1148 ]
  %350 = icmp eq i64 %349, %storemerge10161248
  br i1 %350, label %351, label %362

351:                                              ; preds = %.lr.ph1249
  %352 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %353 = call noundef double @_ZN11alglib_impl7possignEdPNS_8ae_stateE(double noundef %352, ptr noundef %0)
  %354 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %355 = fadd double %354, 1.000000e+00
  %356 = fmul double %353, %355
  %357 = load ptr, ptr %27, align 8, !tbaa !11
  %358 = load i64, ptr %6, align 8, !tbaa !9
  %359 = getelementptr inbounds ptr, ptr %357, i64 %358
  %360 = load ptr, ptr %359, align 8, !tbaa !12
  %361 = getelementptr inbounds double, ptr %360, i64 %358
  store double %356, ptr %361, align 8, !tbaa !14
  %.pre1475 = load i64, ptr %7, align 8, !tbaa !9
  br label %394

362:                                              ; preds = %.lr.ph1249
  %363 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %364 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %363, double noundef %.1774)
  br i1 %364, label %365, label %383

365:                                              ; preds = %362
  %366 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %367 = fadd double %366, -5.000000e-01
  %368 = fmul double %344, %367
  %369 = load ptr, ptr %27, align 8, !tbaa !11
  %370 = load i64, ptr %6, align 8, !tbaa !9
  %371 = getelementptr inbounds ptr, ptr %369, i64 %370
  %372 = load ptr, ptr %371, align 8, !tbaa !12
  %373 = load i64, ptr %7, align 8, !tbaa !9
  %374 = getelementptr inbounds double, ptr %372, i64 %373
  store double %368, ptr %374, align 8, !tbaa !14
  %375 = load ptr, ptr %27, align 8, !tbaa !11
  %376 = getelementptr inbounds ptr, ptr %375, i64 %370
  %377 = load ptr, ptr %376, align 8, !tbaa !12
  %378 = getelementptr inbounds double, ptr %377, i64 %373
  %379 = load double, ptr %378, align 8, !tbaa !14
  %380 = getelementptr inbounds ptr, ptr %375, i64 %373
  %381 = load ptr, ptr %380, align 8, !tbaa !12
  %382 = getelementptr inbounds double, ptr %381, i64 %370
  store double %379, ptr %382, align 8, !tbaa !14
  br label %394

383:                                              ; preds = %362
  %384 = load ptr, ptr %27, align 8, !tbaa !11
  %385 = load i64, ptr %6, align 8, !tbaa !9
  %386 = getelementptr inbounds ptr, ptr %384, i64 %385
  %387 = load ptr, ptr %386, align 8, !tbaa !12
  %388 = load i64, ptr %7, align 8, !tbaa !9
  %389 = getelementptr inbounds double, ptr %387, i64 %388
  store double 0.000000e+00, ptr %389, align 8, !tbaa !14
  %390 = load ptr, ptr %27, align 8, !tbaa !11
  %391 = getelementptr inbounds ptr, ptr %390, i64 %388
  %392 = load ptr, ptr %391, align 8, !tbaa !12
  %393 = getelementptr inbounds double, ptr %392, i64 %385
  store double 0.000000e+00, ptr %393, align 8, !tbaa !14
  br label %394

394:                                              ; preds = %365, %383, %351
  %395 = phi i64 [ %370, %365 ], [ %385, %383 ], [ %358, %351 ]
  %396 = phi i64 [ %373, %365 ], [ %388, %383 ], [ %.pre1475, %351 ]
  %397 = add nsw i64 %396, 1
  store i64 %397, ptr %7, align 8, !tbaa !9
  %.not1017.not = icmp slt i64 %396, %395
  br i1 %.not1017.not, label %.lr.ph1249, label %._crit_edge1250, !llvm.loop !49

._crit_edge1250:                                  ; preds = %394, %.preheader1148
  %.lcssa1186 = phi i64 [ %348, %.preheader1148 ], [ %395, %394 ]
  %398 = add nsw i64 %.lcssa1186, 1
  store i64 %398, ptr %6, align 8, !tbaa !9
  %.not983.not = icmp slt i64 %398, %.17621265
  br i1 %.not983.not, label %.preheader1148, label %399, !llvm.loop !50

399:                                              ; preds = %._crit_edge1250
  %400 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %0)
  %401 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %400, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.17621265, i64 noundef %.17621265, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1147

.preheader1155:                                   ; preds = %413
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1146

.preheader1147:                                   ; preds = %399, %413
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %402

402:                                              ; preds = %.preheader1147, %410
  %storemerge10121252 = phi i64 [ 0, %.preheader1147 ], [ %412, %410 ]
  %403 = load i64, ptr %6, align 8, !tbaa !9
  %.not1014 = icmp sle i64 %storemerge10121252, %403
  %.not1015 = icmp sge i64 %storemerge10121252, %403
  %or.cond1093 = select i1 %401, i1 %.not1015, i1 %.not1014
  br i1 %or.cond1093, label %404, label %410

404:                                              ; preds = %402
  %405 = load ptr, ptr %27, align 8, !tbaa !11
  %406 = getelementptr inbounds ptr, ptr %405, i64 %403
  %407 = load ptr, ptr %406, align 8, !tbaa !12
  %408 = getelementptr inbounds double, ptr %407, i64 %storemerge10121252
  %409 = load double, ptr %408, align 8, !tbaa !14
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %403, i64 noundef %storemerge10121252, double noundef %409, ptr noundef %0)
  %.pre1476 = load i64, ptr %7, align 8, !tbaa !9
  br label %410

410:                                              ; preds = %402, %404
  %411 = phi i64 [ %storemerge10121252, %402 ], [ %.pre1476, %404 ]
  %412 = add nsw i64 %411, 1
  store i64 %412, ptr %7, align 8, !tbaa !9
  %.not1013.not = icmp slt i64 %412, %.17621265
  br i1 %.not1013.not, label %402, label %413, !llvm.loop !51

413:                                              ; preds = %410
  %414 = load i64, ptr %6, align 8, !tbaa !9
  %415 = add nsw i64 %414, 1
  store i64 %415, ptr %6, align 8, !tbaa !9
  %.not985.not = icmp slt i64 %415, %.17621265
  br i1 %.not985.not, label %.preheader1147, label %.preheader1155, !llvm.loop !52

.preheader1146:                                   ; preds = %.preheader1155, %429
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %416

416:                                              ; preds = %.preheader1146, %426
  %storemerge10101253 = phi i64 [ 0, %.preheader1146 ], [ %428, %426 ]
  %417 = load i64, ptr %6, align 8, !tbaa !9
  %418 = icmp sge i64 %storemerge10101253, %417
  %419 = icmp sle i64 %storemerge10101253, %417
  %or.cond1094 = select i1 %401, i1 %418, i1 %419
  br i1 %or.cond1094, label %426, label %420

420:                                              ; preds = %416
  %421 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %422 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %421, double noundef %.1774)
  %.pre1478 = load i64, ptr %7, align 8, !tbaa !9
  br i1 %422, label %423, label %426

423:                                              ; preds = %420
  %424 = load i64, ptr %6, align 8, !tbaa !9
  %425 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %424, i64 noundef %.pre1478, double noundef %425, ptr noundef %0)
  %.pre1477 = load i64, ptr %7, align 8, !tbaa !9
  br label %426

426:                                              ; preds = %416, %423, %420
  %427 = phi i64 [ %storemerge10101253, %416 ], [ %.pre1477, %423 ], [ %.pre1478, %420 ]
  %428 = add nsw i64 %427, 1
  store i64 %428, ptr %7, align 8, !tbaa !9
  %.not1011.not = icmp slt i64 %428, %.17621265
  br i1 %.not1011.not, label %416, label %429, !llvm.loop !53

429:                                              ; preds = %426
  %430 = load i64, ptr %6, align 8, !tbaa !9
  %431 = add nsw i64 %430, 1
  store i64 %431, ptr %6, align 8, !tbaa !9
  %.not987.not = icmp slt i64 %431, %.17621265
  br i1 %.not987.not, label %.preheader1146, label %432, !llvm.loop !54

432:                                              ; preds = %429
  %433 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 3, ptr noundef %0)
  call void @_ZN11alglib_impl15sparseconverttoEPNS_12sparsematrixElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %433, ptr noundef %0)
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  call void @_ZN11alglib_impl13sparsecopybufEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1145

.preheader1145:                                   ; preds = %432, %444
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %434

434:                                              ; preds = %.preheader1145, %441
  %storemerge10081254 = phi i64 [ 0, %.preheader1145 ], [ %443, %441 ]
  %435 = load i64, ptr %6, align 8, !tbaa !9
  %436 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %435, i64 noundef %storemerge10081254, ptr noundef %0)
  br i1 %436, label %437, label %441

437:                                              ; preds = %434
  %438 = load i64, ptr %6, align 8, !tbaa !9
  %439 = load i64, ptr %7, align 8, !tbaa !9
  %440 = call noundef zeroext i1 @_ZN11alglib_impl21sparserewriteexistingEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %438, i64 noundef %439, double noundef 1.000000e+00, ptr noundef %0)
  br label %441

441:                                              ; preds = %434, %437
  %442 = load i64, ptr %7, align 8, !tbaa !9
  %443 = add nsw i64 %442, 1
  store i64 %443, ptr %7, align 8, !tbaa !9
  %.not1009.not = icmp slt i64 %443, %.17621265
  br i1 %.not1009.not, label %434, label %444, !llvm.loop !55

444:                                              ; preds = %441
  %445 = load i64, ptr %6, align 8, !tbaa !9
  %446 = add nsw i64 %445, 1
  store i64 %446, ptr %6, align 8, !tbaa !9
  %.not989.not = icmp slt i64 %446, %.17621265
  br i1 %.not989.not, label %.preheader1145, label %447, !llvm.loop !56

447:                                              ; preds = %444
  %448 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 7, ptr noundef %0)
  %449 = add nsw i64 %448, -3
  %450 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %451 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %450, double noundef 0.000000e+00)
  br i1 %451, label %452, label %458

452:                                              ; preds = %447
  %453 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext %401, i64 noundef 1, i64 noundef %449, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %453, label %455, label %454

454:                                              ; preds = %452
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24680, ptr noundef nonnull @.str.363)
  br label %.loopexit

455:                                              ; preds = %452
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef nonnull %13, ptr noundef %0)
  %456 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext %401, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %456, label %464, label %457

457:                                              ; preds = %455
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24687, ptr noundef nonnull @.str.364)
  br label %.loopexit

458:                                              ; preds = %447
  %459 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %14, i1 noundef zeroext %401, i64 noundef 1, i64 noundef %449, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %459, label %461, label %460

460:                                              ; preds = %458
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24700, ptr noundef nonnull @.str.365)
  br label %.loopexit

461:                                              ; preds = %458
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef nonnull %22, ptr noundef nonnull %13, i1 noundef zeroext %401, ptr noundef %0)
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef 1, i64 noundef 0, ptr noundef nonnull %13, ptr noundef %0)
  %462 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext %401, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %462, label %464, label %463

463:                                              ; preds = %461
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24708, ptr noundef nonnull @.str.366)
  br label %.loopexit

464:                                              ; preds = %461, %455
  %465 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  br i1 %465, label %466, label %471

466:                                              ; preds = %464
  %467 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %.not990 = icmp eq i64 %467, %.17621265
  br i1 %.not990, label %468, label %471

468:                                              ; preds = %466
  %469 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %470 = icmp ne i64 %469, %.17621265
  br label %471

471:                                              ; preds = %468, %466, %464
  %472 = phi i1 [ true, %466 ], [ true, %464 ], [ %470, %468 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %472, ptr noundef nonnull @.str.19, i32 noundef 24717, ptr noundef nonnull @.str.367)
  %473 = load i64, ptr %16, align 8, !tbaa !29
  %474 = icmp ne i64 %473, %.17621265
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %474, ptr noundef nonnull @.str.19, i32 noundef 24718, ptr noundef nonnull @.str.368)
  %475 = load i64, ptr %19, align 8, !tbaa !29
  %476 = icmp ne i64 %475, %.17621265
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %476, ptr noundef nonnull @.str.19, i32 noundef 24719, ptr noundef nonnull @.str.369)
  %477 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %478 = trunc nuw i8 %477 to i1
  br i1 %478, label %.loopexit, label %.preheader1154

.preheader1154:                                   ; preds = %471
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %479

479:                                              ; preds = %.preheader1154, %479
  %storemerge9911255 = phi i64 [ 0, %.preheader1154 ], [ %492, %479 ]
  %480 = load ptr, ptr %28, align 8, !tbaa !11
  %481 = getelementptr inbounds i64, ptr %480, i64 %storemerge9911255
  %482 = load i64, ptr %481, align 8, !tbaa !9
  %483 = icmp slt i64 %482, %storemerge9911255
  %484 = icmp sge i64 %482, %.17621265
  %spec.select1077 = or i1 %483, %484
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %spec.select1077, ptr noundef nonnull @.str.19, i32 noundef 24727, ptr noundef nonnull @.str.370)
  %485 = load ptr, ptr %29, align 8, !tbaa !11
  %486 = load i64, ptr %6, align 8, !tbaa !9
  %487 = getelementptr inbounds double, ptr %485, i64 %486
  %488 = load double, ptr %487, align 8, !tbaa !14
  %489 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %488, ptr noundef %0)
  %490 = xor i1 %489, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %490, ptr noundef nonnull @.str.19, i32 noundef 24728, ptr noundef nonnull @.str.371)
  %491 = load i64, ptr %6, align 8, !tbaa !9
  %492 = add nsw i64 %491, 1
  store i64 %492, ptr %6, align 8, !tbaa !9
  %.not992.not = icmp slt i64 %492, %.17621265
  br i1 %.not992.not, label %479, label %493, !llvm.loop !57

493:                                              ; preds = %479
  %494 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %495 = trunc nuw i8 %494 to i1
  br i1 %495, label %.loopexit, label %496

496:                                              ; preds = %493
  store i64 0, ptr %9, align 8, !tbaa !9
  store i64 0, ptr %10, align 8, !tbaa !9
  %497 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %497, label %.lr.ph1257, label %._crit_edge1258

.lr.ph1257:                                       ; preds = %496
  %498 = xor i1 %401, true
  br label %499

499:                                              ; preds = %.lr.ph1257, %499
  %500 = load i64, ptr %7, align 8, !tbaa !9
  %501 = load i64, ptr %6, align 8, !tbaa !9
  %502 = icmp slt i64 %500, %501
  %503 = and i1 %401, %502
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %503, ptr noundef nonnull @.str.19, i32 noundef 24739, ptr noundef nonnull @.str.372)
  %504 = load i64, ptr %7, align 8, !tbaa !9
  %505 = load i64, ptr %6, align 8, !tbaa !9
  %506 = icmp sgt i64 %504, %505
  %507 = and i1 %506, %498
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %507, ptr noundef nonnull @.str.19, i32 noundef 24740, ptr noundef nonnull @.str.373)
  %508 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %508, label %499, label %._crit_edge1258, !llvm.loop !58

._crit_edge1258:                                  ; preds = %499, %496
  %509 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %510 = trunc nuw i8 %509 to i1
  br i1 %510, label %.loopexit, label %511

511:                                              ; preds = %._crit_edge1258
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.17621265, i64 noundef %.17621265, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br i1 %401, label %.preheader1143, label %.preheader1144

.preheader1143:                                   ; preds = %511, %533
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %512

512:                                              ; preds = %.preheader1143, %525
  store double 0.000000e+00, ptr %8, align 8, !tbaa !14
  br label %513

513:                                              ; preds = %512, %513
  %514 = phi double [ 0.000000e+00, %512 ], [ %523, %513 ]
  %.27801260 = phi i64 [ 0, %512 ], [ %524, %513 ]
  %515 = load i64, ptr %7, align 8, !tbaa !9
  %516 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.27801260, i64 noundef %515, ptr noundef %0)
  %517 = load ptr, ptr %29, align 8, !tbaa !11
  %518 = getelementptr inbounds double, ptr %517, i64 %.27801260
  %519 = load double, ptr %518, align 8, !tbaa !14
  %520 = fmul double %516, %519
  %521 = load i64, ptr %6, align 8, !tbaa !9
  %522 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.27801260, i64 noundef %521, ptr noundef %0)
  %523 = call double @llvm.fmuladd.f64(double %520, double %522, double %514)
  store double %523, ptr %8, align 8, !tbaa !14
  %524 = add nuw nsw i64 %.27801260, 1
  %exitcond1459.not = icmp eq i64 %524, %.17621265
  br i1 %exitcond1459.not, label %525, label %513, !llvm.loop !59

525:                                              ; preds = %513
  %526 = load ptr, ptr %30, align 8, !tbaa !11
  %527 = load i64, ptr %6, align 8, !tbaa !9
  %528 = getelementptr inbounds ptr, ptr %526, i64 %527
  %529 = load ptr, ptr %528, align 8, !tbaa !12
  %530 = load i64, ptr %7, align 8, !tbaa !9
  %531 = getelementptr inbounds double, ptr %529, i64 %530
  store double %523, ptr %531, align 8, !tbaa !14
  %532 = add nsw i64 %530, 1
  store i64 %532, ptr %7, align 8, !tbaa !9
  %.not1006.not = icmp slt i64 %532, %.17621265
  br i1 %.not1006.not, label %512, label %533, !llvm.loop !60

533:                                              ; preds = %525
  %534 = add nsw i64 %527, 1
  store i64 %534, ptr %6, align 8, !tbaa !9
  %.not999.not = icmp slt i64 %534, %.17621265
  br i1 %.not999.not, label %.preheader1143, label %.loopexit1151, !llvm.loop !61

.preheader1144:                                   ; preds = %511, %556
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %535

535:                                              ; preds = %.preheader1144, %548
  store double 0.000000e+00, ptr %8, align 8, !tbaa !14
  br label %536

536:                                              ; preds = %535, %536
  %537 = phi double [ 0.000000e+00, %535 ], [ %546, %536 ]
  %.37811259 = phi i64 [ 0, %535 ], [ %547, %536 ]
  %538 = load i64, ptr %7, align 8, !tbaa !9
  %539 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %538, i64 noundef %.37811259, ptr noundef %0)
  %540 = load ptr, ptr %29, align 8, !tbaa !11
  %541 = getelementptr inbounds double, ptr %540, i64 %.37811259
  %542 = load double, ptr %541, align 8, !tbaa !14
  %543 = fmul double %539, %542
  %544 = load i64, ptr %6, align 8, !tbaa !9
  %545 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %544, i64 noundef %.37811259, ptr noundef %0)
  %546 = call double @llvm.fmuladd.f64(double %543, double %545, double %537)
  store double %546, ptr %8, align 8, !tbaa !14
  %547 = add nuw nsw i64 %.37811259, 1
  %exitcond1458.not = icmp eq i64 %547, %.17621265
  br i1 %exitcond1458.not, label %548, label %536, !llvm.loop !62

548:                                              ; preds = %536
  %549 = load ptr, ptr %30, align 8, !tbaa !11
  %550 = load i64, ptr %6, align 8, !tbaa !9
  %551 = getelementptr inbounds ptr, ptr %549, i64 %550
  %552 = load ptr, ptr %551, align 8, !tbaa !12
  %553 = load i64, ptr %7, align 8, !tbaa !9
  %554 = getelementptr inbounds double, ptr %552, i64 %553
  store double %546, ptr %554, align 8, !tbaa !14
  %555 = add nsw i64 %553, 1
  store i64 %555, ptr %7, align 8, !tbaa !9
  %.not996.not = icmp slt i64 %555, %.17621265
  br i1 %.not996.not, label %535, label %556, !llvm.loop !63

556:                                              ; preds = %548
  %557 = add nsw i64 %550, 1
  store i64 %557, ptr %6, align 8, !tbaa !9
  %.not994.not = icmp slt i64 %557, %.17621265
  br i1 %.not994.not, label %.preheader1144, label %.loopexit1151, !llvm.loop !64

.loopexit1151:                                    ; preds = %556, %533
  store i64 %.1762981, ptr %6, align 8, !tbaa !9
  br label %558

.preheader1149:                                   ; preds = %558
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1142

558:                                              ; preds = %.loopexit1151, %558
  %storemerge10001262 = phi i64 [ %.1762981, %.loopexit1151 ], [ %storemerge1000, %558 ]
  %559 = load ptr, ptr %28, align 8, !tbaa !11
  %560 = getelementptr inbounds i64, ptr %559, i64 %storemerge10001262
  %561 = load i64, ptr %560, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %storemerge10001262, i64 noundef %561, i64 noundef %.17621265, ptr noundef %0)
  %562 = load i64, ptr %6, align 8, !tbaa !9
  %563 = load ptr, ptr %28, align 8, !tbaa !11
  %564 = getelementptr inbounds i64, ptr %563, i64 %562
  %565 = load i64, ptr %564, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %562, i64 noundef %565, i64 noundef %.17621265, ptr noundef %0)
  %566 = load i64, ptr %6, align 8, !tbaa !9
  %storemerge1000 = add nsw i64 %566, -1
  store i64 %storemerge1000, ptr %6, align 8, !tbaa !9
  %567 = icmp sgt i64 %566, 0
  br i1 %567, label %558, label %.preheader1149, !llvm.loop !65

.preheader1142:                                   ; preds = %.preheader1149, %585
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %568

568:                                              ; preds = %.preheader1142, %568
  %storemerge10031263 = phi i64 [ 0, %.preheader1142 ], [ %584, %568 ]
  %569 = load ptr, ptr %27, align 8, !tbaa !11
  %570 = load i64, ptr %6, align 8, !tbaa !9
  %571 = getelementptr inbounds ptr, ptr %569, i64 %570
  %572 = load ptr, ptr %571, align 8, !tbaa !12
  %573 = getelementptr inbounds double, ptr %572, i64 %storemerge10031263
  %574 = load double, ptr %573, align 8, !tbaa !14
  %575 = load ptr, ptr %30, align 8, !tbaa !11
  %576 = getelementptr inbounds ptr, ptr %575, i64 %570
  %577 = load ptr, ptr %576, align 8, !tbaa !12
  %578 = getelementptr inbounds double, ptr %577, i64 %storemerge10031263
  %579 = load double, ptr %578, align 8, !tbaa !14
  %580 = fsub double %574, %579
  %581 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %580, ptr noundef %0)
  %582 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %581, double noundef 1.000000e-08)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %582, ptr noundef nonnull @.str.19, i32 noundef 24796, ptr noundef nonnull @.str.374)
  %583 = load i64, ptr %7, align 8, !tbaa !9
  %584 = add nsw i64 %583, 1
  store i64 %584, ptr %7, align 8, !tbaa !9
  %.not1004.not = icmp slt i64 %584, %.17621265
  br i1 %.not1004.not, label %568, label %585, !llvm.loop !66

585:                                              ; preds = %568
  %586 = load i64, ptr %6, align 8, !tbaa !9
  %587 = add nsw i64 %586, 1
  store i64 %587, ptr %6, align 8, !tbaa !9
  %.not1002.not = icmp slt i64 %587, %.17621265
  br i1 %.not1002.not, label %.preheader1142, label %588, !llvm.loop !67

588:                                              ; preds = %585
  %589 = icmp eq i64 %.1764, 0
  br i1 %589, label %592, label %590

590:                                              ; preds = %588
  %591 = sdiv i64 %.1764, 2
  br label %345, !llvm.loop !68

592:                                              ; preds = %588
  %593 = add nuw nsw i64 %.17621265, 1
  %exitcond1460.not = icmp eq i64 %593, 31
  br i1 %exitcond1460.not, label %.preheader1141, label %.preheader1156, !llvm.loop !69

594:                                              ; preds = %.preheader1141, %799
  %.07771286 = phi i64 [ 0, %.preheader1141 ], [ %800, %799 ]
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %3, i64 noundef 512, i64 noundef 512, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1140

.preheader1140:                                   ; preds = %594, %._crit_edge1269
  %595 = phi i64 [ 0, %594 ], [ %661, %._crit_edge1269 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  %.not9801266 = icmp slt i64 %595, 0
  br i1 %.not9801266, label %._crit_edge1269, label %.lr.ph1268

.lr.ph1268:                                       ; preds = %.preheader1140, %649
  %596 = phi i64 [ %651, %649 ], [ %595, %.preheader1140 ]
  %storemerge9791267 = phi i64 [ %660, %649 ], [ 0, %.preheader1140 ]
  %597 = icmp eq i64 %596, %storemerge9791267
  %598 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %599 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %598, ptr noundef %0)
  %600 = fadd double %599, 1.000000e+00
  %601 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %602 = fadd double %601, -5.000000e-01
  %603 = fmul double %602, 0x3F1999999999999A
  %604 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %597, double noundef %600, double noundef %603, ptr noundef %0)
  %605 = load ptr, ptr %27, align 8, !tbaa !11
  %606 = load i64, ptr %6, align 8, !tbaa !9
  %607 = getelementptr inbounds ptr, ptr %605, i64 %606
  %608 = load ptr, ptr %607, align 8, !tbaa !12
  %609 = load i64, ptr %7, align 8, !tbaa !9
  %610 = getelementptr inbounds double, ptr %608, i64 %609
  store double %604, ptr %610, align 8, !tbaa !14
  switch i64 %.07771286, label %649 [
    i64 1, label %611
    i64 2, label %623
    i64 3, label %634
  ]

611:                                              ; preds = %.lr.ph1268
  %612 = sitofp i64 %609 to double
  %613 = sitofp i64 %606 to double
  %614 = fmul double %613, 5.000000e-01
  %615 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %612, double noundef %614)
  %616 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %615, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %0)
  %617 = load ptr, ptr %27, align 8, !tbaa !11
  %618 = load i64, ptr %6, align 8, !tbaa !9
  %619 = getelementptr inbounds ptr, ptr %617, i64 %618
  %620 = load ptr, ptr %619, align 8, !tbaa !12
  %621 = load i64, ptr %7, align 8, !tbaa !9
  %622 = getelementptr inbounds double, ptr %620, i64 %621
  br label %.sink.split

623:                                              ; preds = %.lr.ph1268
  %624 = shl nsw i64 %606, 1
  %625 = add nsw i64 %624, -511
  %626 = icmp sge i64 %609, %625
  %627 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %626, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %0)
  %628 = load ptr, ptr %27, align 8, !tbaa !11
  %629 = load i64, ptr %6, align 8, !tbaa !9
  %630 = getelementptr inbounds ptr, ptr %628, i64 %629
  %631 = load ptr, ptr %630, align 8, !tbaa !12
  %632 = load i64, ptr %7, align 8, !tbaa !9
  %633 = getelementptr inbounds double, ptr %631, i64 %632
  br label %.sink.split

634:                                              ; preds = %.lr.ph1268
  %635 = sitofp i64 %609 to double
  %636 = sitofp i64 %606 to double
  %637 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.120000e+02, ptr noundef %0)
  %638 = fsub double %636, %637
  %639 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %635, double noundef %638)
  %640 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %639, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %0)
  %641 = load ptr, ptr %27, align 8, !tbaa !11
  %642 = load i64, ptr %6, align 8, !tbaa !9
  %643 = getelementptr inbounds ptr, ptr %641, i64 %642
  %644 = load ptr, ptr %643, align 8, !tbaa !12
  %645 = load i64, ptr %7, align 8, !tbaa !9
  %646 = getelementptr inbounds double, ptr %644, i64 %645
  br label %.sink.split

.sink.split:                                      ; preds = %634, %611, %623
  %.sink = phi ptr [ %633, %623 ], [ %622, %611 ], [ %646, %634 ]
  %.sink1528 = phi double [ %627, %623 ], [ %616, %611 ], [ %640, %634 ]
  %.ph = phi i64 [ %632, %623 ], [ %621, %611 ], [ %645, %634 ]
  %.ph1526 = phi i64 [ %629, %623 ], [ %618, %611 ], [ %642, %634 ]
  %647 = load double, ptr %.sink, align 8, !tbaa !14
  %648 = fmul double %.sink1528, %647
  store double %648, ptr %.sink, align 8, !tbaa !14
  br label %649

649:                                              ; preds = %.sink.split, %.lr.ph1268
  %650 = phi i64 [ %609, %.lr.ph1268 ], [ %.ph, %.sink.split ]
  %651 = phi i64 [ %606, %.lr.ph1268 ], [ %.ph1526, %.sink.split ]
  %652 = load ptr, ptr %27, align 8, !tbaa !11
  %653 = getelementptr inbounds ptr, ptr %652, i64 %651
  %654 = load ptr, ptr %653, align 8, !tbaa !12
  %655 = getelementptr inbounds double, ptr %654, i64 %650
  %656 = load double, ptr %655, align 8, !tbaa !14
  %657 = getelementptr inbounds ptr, ptr %652, i64 %650
  %658 = load ptr, ptr %657, align 8, !tbaa !12
  %659 = getelementptr inbounds double, ptr %658, i64 %651
  store double %656, ptr %659, align 8, !tbaa !14
  %660 = add nsw i64 %650, 1
  store i64 %660, ptr %7, align 8, !tbaa !9
  %.not980.not = icmp slt i64 %650, %651
  br i1 %.not980.not, label %.lr.ph1268, label %._crit_edge1269, !llvm.loop !70

._crit_edge1269:                                  ; preds = %649, %.preheader1140
  %.lcssa1179 = phi i64 [ %595, %.preheader1140 ], [ %651, %649 ]
  %661 = add nsw i64 %.lcssa1179, 1
  store i64 %661, ptr %6, align 8, !tbaa !9
  %662 = icmp slt i64 %.lcssa1179, 511
  br i1 %662, label %.preheader1140, label %663, !llvm.loop !71

663:                                              ; preds = %._crit_edge1269
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 512, i64 noundef 512, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1139

.preheader1139:                                   ; preds = %663, %._crit_edge1274
  %664 = phi i64 [ 0, %663 ], [ %674, %._crit_edge1274 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  %.not9781271 = icmp slt i64 %664, 0
  br i1 %.not9781271, label %._crit_edge1274, label %.lr.ph1273

.lr.ph1273:                                       ; preds = %.preheader1139, %.lr.ph1273
  %665 = phi i64 [ %673, %.lr.ph1273 ], [ %664, %.preheader1139 ]
  %storemerge9771272 = phi i64 [ %672, %.lr.ph1273 ], [ 0, %.preheader1139 ]
  %666 = load ptr, ptr %27, align 8, !tbaa !11
  %667 = getelementptr inbounds ptr, ptr %666, i64 %665
  %668 = load ptr, ptr %667, align 8, !tbaa !12
  %669 = getelementptr inbounds double, ptr %668, i64 %storemerge9771272
  %670 = load double, ptr %669, align 8, !tbaa !14
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %665, i64 noundef %storemerge9771272, double noundef %670, ptr noundef %0)
  %671 = load i64, ptr %7, align 8, !tbaa !9
  %672 = add nsw i64 %671, 1
  store i64 %672, ptr %7, align 8, !tbaa !9
  %673 = load i64, ptr %6, align 8, !tbaa !9
  %.not978.not = icmp slt i64 %671, %673
  br i1 %.not978.not, label %.lr.ph1273, label %._crit_edge1274, !llvm.loop !72

._crit_edge1274:                                  ; preds = %.lr.ph1273, %.preheader1139
  %.lcssa1180 = phi i64 [ %664, %.preheader1139 ], [ %673, %.lr.ph1273 ]
  %674 = add nsw i64 %.lcssa1180, 1
  store i64 %674, ptr %6, align 8, !tbaa !9
  %675 = icmp slt i64 %.lcssa1180, 511
  br i1 %675, label %.preheader1139, label %676, !llvm.loop !73

676:                                              ; preds = %._crit_edge1274
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef %0)
  %677 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 7, ptr noundef %0)
  %678 = add nsw i64 %677, -3
  %679 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %11, i1 noundef zeroext false, i64 noundef 0, i64 noundef %678, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %679, label %681, label %680

680:                                              ; preds = %676
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24856, ptr noundef nonnull @.str.375)
  br label %.loopexit

681:                                              ; preds = %676
  %682 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %683 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %682, double noundef 0.000000e+00)
  br i1 %683, label %684, label %.preheader1592

684:                                              ; preds = %681
  call void @_ZN11alglib_impl24spsymmenforceparallelismEPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef nonnull %338, ptr noundef %0)
  br label %.preheader1592

.preheader1592:                                   ; preds = %684, %681
  br label %685

685:                                              ; preds = %.preheader1592, %798
  %686 = phi i1 [ false, %798 ], [ true, %.preheader1592 ]
  %687 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext false, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %687, label %689, label %688

688:                                              ; preds = %685
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 24872, ptr noundef nonnull @.str.376)
  br label %.loopexit

689:                                              ; preds = %685
  %690 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  br i1 %690, label %691, label %696

691:                                              ; preds = %689
  %692 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %.not968 = icmp eq i64 %692, 512
  br i1 %.not968, label %693, label %696

693:                                              ; preds = %691
  %694 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %695 = icmp ne i64 %694, 512
  br label %696

696:                                              ; preds = %693, %691, %689
  %697 = phi i1 [ true, %691 ], [ true, %689 ], [ %695, %693 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %697, ptr noundef nonnull @.str.19, i32 noundef 24880, ptr noundef nonnull @.str.377)
  %698 = load i64, ptr %16, align 8, !tbaa !29
  %699 = icmp ne i64 %698, 512
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %699, ptr noundef nonnull @.str.19, i32 noundef 24881, ptr noundef nonnull @.str.378)
  %700 = load i64, ptr %19, align 8, !tbaa !29
  %701 = icmp ne i64 %700, 512
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %701, ptr noundef nonnull @.str.19, i32 noundef 24882, ptr noundef nonnull @.str.379)
  %702 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %703 = trunc nuw i8 %702 to i1
  br i1 %703, label %.loopexit, label %.preheader1138

.preheader1138:                                   ; preds = %696
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %704

704:                                              ; preds = %.preheader1138, %721
  %storemerge9691276 = phi i64 [ 0, %.preheader1138 ], [ %724, %721 ]
  %705 = load ptr, ptr %28, align 8, !tbaa !11
  %706 = getelementptr inbounds i64, ptr %705, i64 %storemerge9691276
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = icmp slt i64 %707, %storemerge9691276
  %709 = icmp sgt i64 %707, 511
  %spec.select1078 = or i1 %708, %709
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %spec.select1078, ptr noundef nonnull @.str.19, i32 noundef 24890, ptr noundef nonnull @.str.380)
  %710 = load ptr, ptr %29, align 8, !tbaa !11
  %711 = load i64, ptr %6, align 8, !tbaa !9
  %712 = getelementptr inbounds double, ptr %710, i64 %711
  %713 = load double, ptr %712, align 8, !tbaa !14
  %714 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %713, ptr noundef %0)
  br i1 %714, label %715, label %721

715:                                              ; preds = %704
  %716 = load ptr, ptr %29, align 8, !tbaa !11
  %717 = load i64, ptr %6, align 8, !tbaa !9
  %718 = getelementptr inbounds double, ptr %716, i64 %717
  %719 = load double, ptr %718, align 8, !tbaa !14
  %720 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %719, double noundef 1.000000e+00)
  br label %721

721:                                              ; preds = %715, %704
  %722 = phi i1 [ true, %704 ], [ %720, %715 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %722, ptr noundef nonnull @.str.19, i32 noundef 24891, ptr noundef nonnull @.str.381)
  %723 = load i64, ptr %6, align 8, !tbaa !9
  %724 = add nsw i64 %723, 1
  store i64 %724, ptr %6, align 8, !tbaa !9
  %725 = icmp slt i64 %723, 511
  br i1 %725, label %704, label %726, !llvm.loop !74

726:                                              ; preds = %721
  %727 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %728 = trunc nuw i8 %727 to i1
  br i1 %728, label %.loopexit, label %729

729:                                              ; preds = %726
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 512, i64 noundef 512, double noundef 0.000000e+00, ptr noundef nonnull %4, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1135

.preheader1135:                                   ; preds = %729, %._crit_edge1280
  %730 = phi i64 [ 0, %729 ], [ %740, %._crit_edge1280 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  %.not9761277 = icmp slt i64 %730, 0
  br i1 %.not9761277, label %._crit_edge1280, label %.lr.ph1279

.lr.ph1279:                                       ; preds = %.preheader1135, %.lr.ph1279
  %731 = phi i64 [ %734, %.lr.ph1279 ], [ %730, %.preheader1135 ]
  %storemerge9751278 = phi i64 [ %739, %.lr.ph1279 ], [ 0, %.preheader1135 ]
  %732 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %731, i64 noundef %storemerge9751278, ptr noundef %0)
  %733 = load ptr, ptr %30, align 8, !tbaa !11
  %734 = load i64, ptr %6, align 8, !tbaa !9
  %735 = getelementptr inbounds ptr, ptr %733, i64 %734
  %736 = load ptr, ptr %735, align 8, !tbaa !12
  %737 = load i64, ptr %7, align 8, !tbaa !9
  %738 = getelementptr inbounds double, ptr %736, i64 %737
  store double %732, ptr %738, align 8, !tbaa !14
  %739 = add nsw i64 %737, 1
  store i64 %739, ptr %7, align 8, !tbaa !9
  %.not976.not = icmp slt i64 %737, %734
  br i1 %.not976.not, label %.lr.ph1279, label %._crit_edge1280, !llvm.loop !75

._crit_edge1280:                                  ; preds = %.lr.ph1279, %.preheader1135
  %.lcssa1181 = phi i64 [ %730, %.preheader1135 ], [ %734, %.lr.ph1279 ]
  %740 = add nsw i64 %.lcssa1181, 1
  store i64 %740, ptr %6, align 8, !tbaa !9
  %741 = icmp slt i64 %.lcssa1181, 511
  br i1 %741, label %.preheader1135, label %742, !llvm.loop !76

742:                                              ; preds = %._crit_edge1280
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 512, i64 noundef 512, double noundef 0.000000e+00, ptr noundef nonnull %5, ptr noundef %0)
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef 512, i64 noundef 512, i64 noundef 512, double noundef 1.000000e+00, ptr noundef nonnull %4, i64 noundef 0, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %4, i64 noundef 0, i64 noundef 0, i64 noundef 1, double noundef 0.000000e+00, ptr noundef nonnull %5, i64 noundef 0, i64 noundef 0, ptr noundef %0)
  store i64 511, ptr %6, align 8, !tbaa !9
  br label %743

.preheader1137:                                   ; preds = %743
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1134

743:                                              ; preds = %742, %743
  %storemerge9711282 = phi i64 [ 511, %742 ], [ %752, %743 ]
  %744 = load ptr, ptr %28, align 8, !tbaa !11
  %745 = getelementptr inbounds i64, ptr %744, i64 %storemerge9711282
  %746 = load i64, ptr %745, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %storemerge9711282, i64 noundef %746, i64 noundef 512, ptr noundef %0)
  %747 = load i64, ptr %6, align 8, !tbaa !9
  %748 = load ptr, ptr %28, align 8, !tbaa !11
  %749 = getelementptr inbounds i64, ptr %748, i64 %747
  %750 = load i64, ptr %749, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %747, i64 noundef %750, i64 noundef 512, ptr noundef %0)
  %751 = load i64, ptr %6, align 8, !tbaa !9
  %752 = add nsw i64 %751, -1
  store i64 %752, ptr %6, align 8, !tbaa !9
  %753 = icmp sgt i64 %751, 0
  br i1 %753, label %743, label %.preheader1137, !llvm.loop !77

.preheader1136:                                   ; preds = %772
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %776

.preheader1134:                                   ; preds = %.preheader1137, %772
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %754

754:                                              ; preds = %.preheader1134, %754
  %storemerge9741283 = phi i64 [ 0, %.preheader1134 ], [ %770, %754 ]
  %755 = load ptr, ptr %27, align 8, !tbaa !11
  %756 = load i64, ptr %6, align 8, !tbaa !9
  %757 = getelementptr inbounds ptr, ptr %755, i64 %756
  %758 = load ptr, ptr %757, align 8, !tbaa !12
  %759 = getelementptr inbounds double, ptr %758, i64 %storemerge9741283
  %760 = load double, ptr %759, align 8, !tbaa !14
  %761 = load ptr, ptr %339, align 8, !tbaa !11
  %762 = getelementptr inbounds ptr, ptr %761, i64 %756
  %763 = load ptr, ptr %762, align 8, !tbaa !12
  %764 = getelementptr inbounds double, ptr %763, i64 %storemerge9741283
  %765 = load double, ptr %764, align 8, !tbaa !14
  %766 = fsub double %760, %765
  %767 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %766, ptr noundef %0)
  %768 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %767, double noundef 1.000000e-08)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %768, ptr noundef nonnull @.str.19, i32 noundef 24926, ptr noundef nonnull @.str.382)
  %769 = load i64, ptr %7, align 8, !tbaa !9
  %770 = add nsw i64 %769, 1
  store i64 %770, ptr %7, align 8, !tbaa !9
  %771 = icmp slt i64 %769, 511
  br i1 %771, label %754, label %772, !llvm.loop !78

772:                                              ; preds = %754
  %773 = load i64, ptr %6, align 8, !tbaa !9
  %774 = add nsw i64 %773, 1
  store i64 %774, ptr %6, align 8, !tbaa !9
  %775 = icmp slt i64 %773, 511
  br i1 %775, label %.preheader1134, label %.preheader1136, !llvm.loop !79

776:                                              ; preds = %.preheader1136, %776
  %storemerge9731284 = phi i64 [ 0, %.preheader1136 ], [ %796, %776 ]
  %777 = load ptr, ptr %27, align 8, !tbaa !11
  %778 = getelementptr inbounds ptr, ptr %777, i64 %storemerge9731284
  %779 = load ptr, ptr %778, align 8, !tbaa !12
  %780 = getelementptr inbounds double, ptr %779, i64 %storemerge9731284
  %781 = load double, ptr %780, align 8, !tbaa !14
  %782 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %783 = fadd double %781, %782
  %784 = load ptr, ptr %27, align 8, !tbaa !11
  %785 = load i64, ptr %6, align 8, !tbaa !9
  %786 = getelementptr inbounds ptr, ptr %784, i64 %785
  %787 = load ptr, ptr %786, align 8, !tbaa !12
  %788 = getelementptr inbounds double, ptr %787, i64 %785
  store double %783, ptr %788, align 8, !tbaa !14
  %789 = load ptr, ptr %27, align 8, !tbaa !11
  %790 = getelementptr inbounds ptr, ptr %789, i64 %785
  %791 = load ptr, ptr %790, align 8, !tbaa !12
  %792 = getelementptr inbounds double, ptr %791, i64 %785
  %793 = load double, ptr %792, align 8, !tbaa !14
  %794 = call noundef zeroext i1 @_ZN11alglib_impl21sparserewriteexistingEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %785, i64 noundef %785, double noundef %793, ptr noundef %0)
  %795 = load i64, ptr %6, align 8, !tbaa !9
  %796 = add nsw i64 %795, 1
  store i64 %796, ptr %6, align 8, !tbaa !9
  %797 = icmp slt i64 %795, 511
  br i1 %797, label %776, label %798, !llvm.loop !80

798:                                              ; preds = %776
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef nonnull %22, ptr noundef nonnull %11, i1 noundef zeroext false, ptr noundef %0)
  br i1 %686, label %685, label %799, !llvm.loop !81

799:                                              ; preds = %798
  %800 = add nuw nsw i64 %.07771286, 1
  %exitcond1461.not = icmp eq i64 %800, 4
  br i1 %exitcond1461.not, label %.preheader1133, label %594, !llvm.loop !82

.preheader1130:                                   ; preds = %889
  %801 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %0)
  %.not1381 = icmp slt i64 %801, 1
  br i1 %.not1381, label %.preheader1110.preheader, label %.preheader1129

.preheader1110.preheader:                         ; preds = %._crit_edge1380, %.preheader1130
  br label %.preheader1110

.preheader1133:                                   ; preds = %799, %889
  %.21309 = phi i64 [ %890, %889 ], [ 1, %799 ]
  %.2955 = add nsw i64 %.21309, -1
  %802 = mul nuw nsw i64 %.2955, %.21309
  %803 = icmp ugt i64 %.21309, 1
  %804 = sitofp i64 %802 to double
  %805 = uitofp nneg i64 %.21309 to double
  %806 = fdiv double 5.000000e-01, %805
  br label %807

807:                                              ; preds = %887, %.preheader1133
  %.2765 = phi i64 [ %802, %.preheader1133 ], [ %888, %887 ]
  %808 = sitofp i64 %.2765 to double
  %809 = fdiv double %808, %804
  %.2775 = select i1 %803, double %809, double 1.000000e+00
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %3, i64 noundef %.21309, i64 noundef %.21309, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1132

.preheader1132:                                   ; preds = %807, %._crit_edge1290
  %810 = phi i64 [ 0, %807 ], [ %856, %._crit_edge1290 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  %.not9651287 = icmp slt i64 %810, 0
  br i1 %.not9651287, label %._crit_edge1290, label %.lr.ph1289

.lr.ph1289:                                       ; preds = %.preheader1132, %852
  %811 = phi i64 [ %853, %852 ], [ %810, %.preheader1132 ]
  %storemerge9641288 = phi i64 [ %855, %852 ], [ 0, %.preheader1132 ]
  %812 = icmp eq i64 %811, %storemerge9641288
  br i1 %812, label %813, label %820

813:                                              ; preds = %.lr.ph1289
  %814 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %815 = load ptr, ptr %27, align 8, !tbaa !11
  %816 = load i64, ptr %6, align 8, !tbaa !9
  %817 = getelementptr inbounds ptr, ptr %815, i64 %816
  %818 = load ptr, ptr %817, align 8, !tbaa !12
  %819 = getelementptr inbounds double, ptr %818, i64 %816
  store double %814, ptr %819, align 8, !tbaa !14
  %.pre1479 = load i64, ptr %7, align 8, !tbaa !9
  br label %852

820:                                              ; preds = %.lr.ph1289
  %821 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %822 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %821, double noundef %.2775)
  br i1 %822, label %823, label %841

823:                                              ; preds = %820
  %824 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %825 = fadd double %824, -5.000000e-01
  %826 = fmul double %806, %825
  %827 = load ptr, ptr %27, align 8, !tbaa !11
  %828 = load i64, ptr %6, align 8, !tbaa !9
  %829 = getelementptr inbounds ptr, ptr %827, i64 %828
  %830 = load ptr, ptr %829, align 8, !tbaa !12
  %831 = load i64, ptr %7, align 8, !tbaa !9
  %832 = getelementptr inbounds double, ptr %830, i64 %831
  store double %826, ptr %832, align 8, !tbaa !14
  %833 = load ptr, ptr %27, align 8, !tbaa !11
  %834 = getelementptr inbounds ptr, ptr %833, i64 %828
  %835 = load ptr, ptr %834, align 8, !tbaa !12
  %836 = getelementptr inbounds double, ptr %835, i64 %831
  %837 = load double, ptr %836, align 8, !tbaa !14
  %838 = getelementptr inbounds ptr, ptr %833, i64 %831
  %839 = load ptr, ptr %838, align 8, !tbaa !12
  %840 = getelementptr inbounds double, ptr %839, i64 %828
  store double %837, ptr %840, align 8, !tbaa !14
  br label %852

841:                                              ; preds = %820
  %842 = load ptr, ptr %27, align 8, !tbaa !11
  %843 = load i64, ptr %6, align 8, !tbaa !9
  %844 = getelementptr inbounds ptr, ptr %842, i64 %843
  %845 = load ptr, ptr %844, align 8, !tbaa !12
  %846 = load i64, ptr %7, align 8, !tbaa !9
  %847 = getelementptr inbounds double, ptr %845, i64 %846
  store double 0.000000e+00, ptr %847, align 8, !tbaa !14
  %848 = load ptr, ptr %27, align 8, !tbaa !11
  %849 = getelementptr inbounds ptr, ptr %848, i64 %846
  %850 = load ptr, ptr %849, align 8, !tbaa !12
  %851 = getelementptr inbounds double, ptr %850, i64 %843
  store double 0.000000e+00, ptr %851, align 8, !tbaa !14
  br label %852

852:                                              ; preds = %823, %841, %813
  %853 = phi i64 [ %828, %823 ], [ %843, %841 ], [ %816, %813 ]
  %854 = phi i64 [ %831, %823 ], [ %846, %841 ], [ %.pre1479, %813 ]
  %855 = add nsw i64 %854, 1
  store i64 %855, ptr %7, align 8, !tbaa !9
  %.not965.not = icmp slt i64 %854, %853
  br i1 %.not965.not, label %.lr.ph1289, label %._crit_edge1290, !llvm.loop !83

._crit_edge1290:                                  ; preds = %852, %.preheader1132
  %.lcssa1178 = phi i64 [ %810, %.preheader1132 ], [ %853, %852 ]
  %856 = add nsw i64 %.lcssa1178, 1
  store i64 %856, ptr %6, align 8, !tbaa !9
  %.not957.not = icmp slt i64 %856, %.21309
  br i1 %.not957.not, label %.preheader1132, label %.preheader1131.preheader, !llvm.loop !84

.preheader1131.preheader:                         ; preds = %._crit_edge1290
  %857 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %.21309, ptr noundef %0)
  store i64 %857, ptr %6, align 8, !tbaa !9
  %858 = load ptr, ptr %27, align 8, !tbaa !11
  %859 = getelementptr inbounds ptr, ptr %858, i64 %857
  %860 = load ptr, ptr %859, align 8, !tbaa !12
  %861 = getelementptr inbounds double, ptr %860, i64 %857
  store double -1.000000e+00, ptr %861, align 8, !tbaa !14
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.21309, i64 noundef %.21309, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1131

.preheader1131:                                   ; preds = %.preheader1131.preheader, %.split.split
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %862

862:                                              ; preds = %.preheader1131, %870
  %storemerge9601292 = phi i64 [ 0, %.preheader1131 ], [ %872, %870 ]
  %863 = load i64, ptr %6, align 8, !tbaa !9
  %.not962 = icmp sgt i64 %storemerge9601292, %863
  br i1 %.not962, label %870, label %864

864:                                              ; preds = %862
  %865 = load ptr, ptr %27, align 8, !tbaa !11
  %866 = getelementptr inbounds ptr, ptr %865, i64 %863
  %867 = load ptr, ptr %866, align 8, !tbaa !12
  %868 = getelementptr inbounds double, ptr %867, i64 %storemerge9601292
  %869 = load double, ptr %868, align 8, !tbaa !14
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %863, i64 noundef %storemerge9601292, double noundef %869, ptr noundef %0)
  %.pre1480 = load i64, ptr %7, align 8, !tbaa !9
  br label %870

870:                                              ; preds = %862, %864
  %871 = phi i64 [ %storemerge9601292, %862 ], [ %.pre1480, %864 ]
  %872 = add nsw i64 %871, 1
  store i64 %872, ptr %7, align 8, !tbaa !9
  %.not961.not = icmp slt i64 %872, %.21309
  br i1 %.not961.not, label %862, label %.split.split, !llvm.loop !85

.split.split:                                     ; preds = %870
  %873 = load i64, ptr %6, align 8, !tbaa !9
  %874 = add nsw i64 %873, 1
  store i64 %874, ptr %6, align 8, !tbaa !9
  %.not959.not = icmp slt i64 %874, %.21309
  br i1 %.not959.not, label %.preheader1131, label %.split1305.us, !llvm.loop !86

.split1305.us:                                    ; preds = %.split.split
  %875 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 7, ptr noundef %0)
  %876 = add nsw i64 %875, -3
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  %877 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %13, i1 noundef zeroext false, i64 noundef 0, i64 noundef %876, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %877, label %879, label %878

878:                                              ; preds = %.split1305.us
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25011, ptr noundef nonnull @.str.383)
  br label %.loopexit

879:                                              ; preds = %.split1305.us
  %880 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext false, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %880, label %881, label %882

881:                                              ; preds = %879
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25017, ptr noundef nonnull @.str.384)
  br label %.loopexit

882:                                              ; preds = %879
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef %0)
  call void @_ZN11alglib_impl24sparsecholeskysetmodtypeEPNS_27sparsedecompositionanalysisElddddPNS_8ae_stateE(ptr noundef nonnull %22, i64 noundef 1, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, ptr noundef %0)
  call void @_ZN11alglib_impl20sparsecholeskyreloadEPNS_27sparsedecompositionanalysisEPKNS_12sparsematrixEbPNS_8ae_stateE(ptr noundef nonnull %22, ptr noundef nonnull %13, i1 noundef zeroext false, ptr noundef %0)
  %883 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext false, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %883, label %885, label %884

884:                                              ; preds = %882
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25026, ptr noundef nonnull @.str.385)
  br label %.loopexit

885:                                              ; preds = %882
  %886 = icmp eq i64 %.2765, 0
  br i1 %886, label %889, label %887

887:                                              ; preds = %885
  %888 = sdiv i64 %.2765, 2
  br label %807, !llvm.loop !87

889:                                              ; preds = %885
  %890 = add nuw nsw i64 %.21309, 1
  %exitcond1462.not = icmp eq i64 %890, 31
  br i1 %exitcond1462.not, label %.preheader1130, label %.preheader1133, !llvm.loop !88

.preheader1129:                                   ; preds = %.preheader1130, %._crit_edge1380
  %.07681382 = phi i64 [ %1121, %._crit_edge1380 ], [ 1, %.preheader1130 ]
  %891 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %0)
  %.not9121378 = icmp slt i64 %891, 1
  br i1 %.not9121378, label %._crit_edge1380, label %.preheader1128.lr.ph

.preheader1128.lr.ph:                             ; preds = %.preheader1129
  %892 = add nsw i64 %.07681382, -1
  br label %.preheader1128

.preheader1128:                                   ; preds = %.preheader1128.lr.ph, %._crit_edge1377
  %.07691379 = phi i64 [ 1, %.preheader1128.lr.ph ], [ %1119, %._crit_edge1377 ]
  %893 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %0)
  %.not9131374 = icmp sgt i64 %.07691379, %893
  br i1 %.not9131374, label %._crit_edge1377, label %.lr.ph1376

.lr.ph1376:                                       ; preds = %.preheader1128
  %894 = add nuw i64 %892, %.07691379
  br label %895

895:                                              ; preds = %.lr.ph1376, %._crit_edge1373
  %.07671375 = phi i64 [ %.07691379, %.lr.ph1376 ], [ %1117, %._crit_edge1373 ]
  %896 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 10, ptr noundef %0)
  %897 = add nuw nsw i64 %.07671375, %.07681382
  %898 = add nuw nsw i64 %897, 20
  %899 = add nuw i64 %897, 22
  %900 = add i64 %899, %896
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %3, i64 noundef %900, i64 noundef %900, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  %.not915.not1314 = icmp sgt i64 %900, 0
  br i1 %.not915.not1314, label %.preheader1120, label %.preheader1127

.preheader1127:                                   ; preds = %._crit_edge1313, %895
  store i64 0, ptr %7, align 8, !tbaa !9
  %901 = sitofp i64 %900 to double
  %902 = fdiv double 5.000000e-01, %901
  %.not952.not1318 = icmp slt i64 %898, %900
  br label %.preheader1119

.preheader1120:                                   ; preds = %895, %._crit_edge1313
  %903 = phi i64 [ %925, %._crit_edge1313 ], [ 0, %895 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %904

904:                                              ; preds = %.preheader1120, %921
  %905 = phi i64 [ %903, %.preheader1120 ], [ %923, %921 ]
  %storemerge9531311 = phi i64 [ 0, %.preheader1120 ], [ %924, %921 ]
  %906 = icmp eq i64 %905, %storemerge9531311
  br i1 %906, label %907, label %916

907:                                              ; preds = %904
  %908 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %909 = fadd double %908, 1.000000e+00
  %910 = load ptr, ptr %27, align 8, !tbaa !11
  %911 = load i64, ptr %6, align 8, !tbaa !9
  %912 = getelementptr inbounds ptr, ptr %910, i64 %911
  %913 = load ptr, ptr %912, align 8, !tbaa !12
  %914 = load i64, ptr %7, align 8, !tbaa !9
  %915 = getelementptr inbounds double, ptr %913, i64 %914
  store double %909, ptr %915, align 8, !tbaa !14
  br label %921

916:                                              ; preds = %904
  %917 = load ptr, ptr %27, align 8, !tbaa !11
  %918 = getelementptr inbounds ptr, ptr %917, i64 %905
  %919 = load ptr, ptr %918, align 8, !tbaa !12
  %920 = getelementptr inbounds double, ptr %919, i64 %storemerge9531311
  store double 0.000000e+00, ptr %920, align 8, !tbaa !14
  br label %921

921:                                              ; preds = %907, %916
  %922 = phi i64 [ %914, %907 ], [ %storemerge9531311, %916 ]
  %923 = phi i64 [ %911, %907 ], [ %905, %916 ]
  %924 = add nsw i64 %922, 1
  store i64 %924, ptr %7, align 8, !tbaa !9
  %.not954.not = icmp slt i64 %924, %900
  br i1 %.not954.not, label %904, label %._crit_edge1313, !llvm.loop !89

._crit_edge1313:                                  ; preds = %921
  %925 = add nsw i64 %923, 1
  store i64 %925, ptr %6, align 8, !tbaa !9
  %.not915.not = icmp slt i64 %925, %900
  br i1 %.not915.not, label %.preheader1120, label %.preheader1127, !llvm.loop !90

.preheader1126:                                   ; preds = %._crit_edge1320
  %926 = add nuw nsw i64 %897, 9
  store i64 %.07681382, ptr %7, align 8, !tbaa !9
  br label %.preheader1117

.preheader1119:                                   ; preds = %.preheader1127, %._crit_edge1320
  %storemerge9161321 = phi i64 [ 0, %.preheader1127 ], [ %948, %._crit_edge1320 ]
  %storemerge9491315 = add nsw i64 %storemerge9161321, 1
  store i64 %storemerge9491315, ptr %6, align 8, !tbaa !9
  %.not950.not1316 = icmp slt i64 %storemerge9161321, %894
  br i1 %.not950.not1316, label %.lr.ph1317, label %.preheader1118

.preheader1118:                                   ; preds = %.lr.ph1317, %.preheader1119
  %927 = phi i64 [ %storemerge9161321, %.preheader1119 ], [ %935, %.lr.ph1317 ]
  store i64 %898, ptr %6, align 8, !tbaa !9
  br i1 %.not952.not1318, label %.lr.ph1319, label %._crit_edge1320

.lr.ph1317:                                       ; preds = %.preheader1119, %.lr.ph1317
  %928 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %929 = fadd double %928, -5.000000e-01
  %930 = fmul double %902, %929
  %931 = load ptr, ptr %27, align 8, !tbaa !11
  %932 = load i64, ptr %6, align 8, !tbaa !9
  %933 = getelementptr inbounds ptr, ptr %931, i64 %932
  %934 = load ptr, ptr %933, align 8, !tbaa !12
  %935 = load i64, ptr %7, align 8, !tbaa !9
  %936 = getelementptr inbounds double, ptr %934, i64 %935
  store double %930, ptr %936, align 8, !tbaa !14
  %storemerge949 = add nsw i64 %932, 1
  store i64 %storemerge949, ptr %6, align 8, !tbaa !9
  %.not950.not = icmp slt i64 %932, %894
  br i1 %.not950.not, label %.lr.ph1317, label %.preheader1118, !llvm.loop !91

.lr.ph1319:                                       ; preds = %.preheader1118, %.lr.ph1319
  %937 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %938 = fadd double %937, -5.000000e-01
  %939 = fmul double %902, %938
  %940 = load ptr, ptr %27, align 8, !tbaa !11
  %941 = load i64, ptr %6, align 8, !tbaa !9
  %942 = getelementptr inbounds ptr, ptr %940, i64 %941
  %943 = load ptr, ptr %942, align 8, !tbaa !12
  %944 = load i64, ptr %7, align 8, !tbaa !9
  %945 = getelementptr inbounds double, ptr %943, i64 %944
  store double %939, ptr %945, align 8, !tbaa !14
  %946 = add nsw i64 %941, 1
  store i64 %946, ptr %6, align 8, !tbaa !9
  %.not952.not = icmp slt i64 %946, %900
  br i1 %.not952.not, label %.lr.ph1319, label %._crit_edge1320, !llvm.loop !92

._crit_edge1320:                                  ; preds = %.lr.ph1319, %.preheader1118
  %947 = phi i64 [ %927, %.preheader1118 ], [ %944, %.lr.ph1319 ]
  %948 = add nsw i64 %947, 1
  store i64 %948, ptr %7, align 8, !tbaa !9
  %.not917.not = icmp slt i64 %948, %.07681382
  br i1 %.not917.not, label %.preheader1119, label %.preheader1126, !llvm.loop !93

.preheader1125:                                   ; preds = %._crit_edge1325
  %949 = add nsw i64 %900, -1
  store i64 %897, ptr %7, align 8, !tbaa !9
  %.not921.not1331 = icmp slt i64 %897, %900
  br i1 %.not921.not1331, label %.preheader1115, label %.preheader1124

.preheader1117:                                   ; preds = %.preheader1126, %._crit_edge1325
  %storemerge9181326 = phi i64 [ %.07681382, %.preheader1126 ], [ %971, %._crit_edge1325 ]
  %storemerge9451322 = add nsw i64 %storemerge9181326, 1
  store i64 %storemerge9451322, ptr %6, align 8, !tbaa !9
  br label %950

.preheader1116:                                   ; preds = %950
  store i64 %898, ptr %6, align 8, !tbaa !9
  br i1 %.not952.not1318, label %.lr.ph1324, label %._crit_edge1325

950:                                              ; preds = %.preheader1117, %950
  %951 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %952 = fadd double %951, -5.000000e-01
  %953 = fmul double %902, %952
  %954 = load ptr, ptr %27, align 8, !tbaa !11
  %955 = load i64, ptr %6, align 8, !tbaa !9
  %956 = getelementptr inbounds ptr, ptr %954, i64 %955
  %957 = load ptr, ptr %956, align 8, !tbaa !12
  %958 = load i64, ptr %7, align 8, !tbaa !9
  %959 = getelementptr inbounds double, ptr %957, i64 %958
  store double %953, ptr %959, align 8, !tbaa !14
  %storemerge945 = add nsw i64 %955, 1
  store i64 %storemerge945, ptr %6, align 8, !tbaa !9
  %.not946.not = icmp slt i64 %955, %926
  br i1 %.not946.not, label %950, label %.preheader1116, !llvm.loop !94

.lr.ph1324:                                       ; preds = %.preheader1116, %.lr.ph1324
  %960 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %961 = fadd double %960, -5.000000e-01
  %962 = fmul double %902, %961
  %963 = load ptr, ptr %27, align 8, !tbaa !11
  %964 = load i64, ptr %6, align 8, !tbaa !9
  %965 = getelementptr inbounds ptr, ptr %963, i64 %964
  %966 = load ptr, ptr %965, align 8, !tbaa !12
  %967 = load i64, ptr %7, align 8, !tbaa !9
  %968 = getelementptr inbounds double, ptr %966, i64 %967
  store double %962, ptr %968, align 8, !tbaa !14
  %969 = add nsw i64 %964, 1
  store i64 %969, ptr %6, align 8, !tbaa !9
  %.not948.not = icmp slt i64 %969, %900
  br i1 %.not948.not, label %.lr.ph1324, label %._crit_edge1325, !llvm.loop !95

._crit_edge1325:                                  ; preds = %.lr.ph1324, %.preheader1116
  %970 = phi i64 [ %958, %.preheader1116 ], [ %967, %.lr.ph1324 ]
  %971 = add nsw i64 %970, 1
  store i64 %971, ptr %7, align 8, !tbaa !9
  %.not919.not = icmp slt i64 %971, %897
  br i1 %.not919.not, label %.preheader1117, label %.preheader1125, !llvm.loop !96

.preheader1124:                                   ; preds = %._crit_edge1330, %.preheader1125
  br i1 %.not915.not1314, label %.preheader1114, label %.thread

.thread:                                          ; preds = %.preheader1124
  store i64 0, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %900, i64 noundef %900, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %._crit_edge1347

.preheader1115:                                   ; preds = %.preheader1125, %._crit_edge1330
  %storemerge9201332 = phi i64 [ %.pre-phi, %._crit_edge1330 ], [ %897, %.preheader1125 ]
  %storemerge9431327 = add nsw i64 %storemerge9201332, 1
  store i64 %storemerge9431327, ptr %6, align 8, !tbaa !9
  %.not944.not1328 = icmp slt i64 %storemerge9201332, %949
  br i1 %.not944.not1328, label %.lr.ph1329, label %._crit_edge1330

.lr.ph1329:                                       ; preds = %.preheader1115, %.lr.ph1329
  %972 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %973 = fadd double %972, -5.000000e-01
  %974 = fmul double %902, %973
  %975 = load ptr, ptr %27, align 8, !tbaa !11
  %976 = load i64, ptr %6, align 8, !tbaa !9
  %977 = getelementptr inbounds ptr, ptr %975, i64 %976
  %978 = load ptr, ptr %977, align 8, !tbaa !12
  %979 = load i64, ptr %7, align 8, !tbaa !9
  %980 = getelementptr inbounds double, ptr %978, i64 %979
  store double %974, ptr %980, align 8, !tbaa !14
  %storemerge943 = add nsw i64 %976, 1
  store i64 %storemerge943, ptr %6, align 8, !tbaa !9
  %.not944.not = icmp slt i64 %976, %949
  br i1 %.not944.not, label %.lr.ph1329, label %._crit_edge1330.loopexit, !llvm.loop !97

._crit_edge1330.loopexit:                         ; preds = %.lr.ph1329
  %.pre1488 = add nsw i64 %979, 1
  br label %._crit_edge1330

._crit_edge1330:                                  ; preds = %._crit_edge1330.loopexit, %.preheader1115
  %.pre-phi = phi i64 [ %.pre1488, %._crit_edge1330.loopexit ], [ %storemerge9431327, %.preheader1115 ]
  store i64 %.pre-phi, ptr %7, align 8, !tbaa !9
  %.not921.not = icmp slt i64 %.pre-phi, %900
  br i1 %.not921.not, label %.preheader1115, label %.preheader1124, !llvm.loop !98

.preheader1114:                                   ; preds = %.preheader1124, %._crit_edge1336
  %storemerge9221339 = phi i64 [ %1008, %._crit_edge1336 ], [ 0, %.preheader1124 ]
  %.not942.not1333.not = icmp eq i64 %storemerge9221339, 0
  br i1 %.not942.not1333.not, label %._crit_edge1336, label %.lr.ph1335.preheader

.lr.ph1335.preheader:                             ; preds = %.preheader1114
  %xtraiter1612 = and i64 %storemerge9221339, 1
  %981 = icmp eq i64 %storemerge9221339, 1
  br i1 %981, label %._crit_edge1336.loopexit.unr-lcssa, label %.lr.ph1335.preheader.new

.lr.ph1335.preheader.new:                         ; preds = %.lr.ph1335.preheader
  %unroll_iter1615 = and i64 %storemerge9221339, 9223372036854775806
  br label %.lr.ph1335

.lr.ph1335:                                       ; preds = %.lr.ph1335, %.lr.ph1335.preheader.new
  %storemerge9411334 = phi i64 [ 0, %.lr.ph1335.preheader.new ], [ %999, %.lr.ph1335 ]
  %niter1616 = phi i64 [ 0, %.lr.ph1335.preheader.new ], [ %niter1616.next.1, %.lr.ph1335 ]
  %982 = load ptr, ptr %27, align 8, !tbaa !11
  %983 = getelementptr inbounds ptr, ptr %982, i64 %storemerge9221339
  %984 = load ptr, ptr %983, align 8, !tbaa !12
  %985 = getelementptr inbounds double, ptr %984, i64 %storemerge9411334
  %986 = load double, ptr %985, align 8, !tbaa !14
  %987 = getelementptr inbounds ptr, ptr %982, i64 %storemerge9411334
  %988 = load ptr, ptr %987, align 8, !tbaa !12
  %989 = getelementptr inbounds double, ptr %988, i64 %storemerge9221339
  store double %986, ptr %989, align 8, !tbaa !14
  %990 = or disjoint i64 %storemerge9411334, 1
  %991 = load ptr, ptr %27, align 8, !tbaa !11
  %992 = getelementptr inbounds ptr, ptr %991, i64 %storemerge9221339
  %993 = load ptr, ptr %992, align 8, !tbaa !12
  %994 = getelementptr inbounds double, ptr %993, i64 %990
  %995 = load double, ptr %994, align 8, !tbaa !14
  %996 = getelementptr inbounds ptr, ptr %991, i64 %990
  %997 = load ptr, ptr %996, align 8, !tbaa !12
  %998 = getelementptr inbounds double, ptr %997, i64 %storemerge9221339
  store double %995, ptr %998, align 8, !tbaa !14
  %999 = add nuw nsw i64 %storemerge9411334, 2
  %niter1616.next.1 = add i64 %niter1616, 2
  %niter1616.ncmp.1 = icmp eq i64 %niter1616.next.1, %unroll_iter1615
  br i1 %niter1616.ncmp.1, label %._crit_edge1336.loopexit.unr-lcssa, label %.lr.ph1335, !llvm.loop !99

._crit_edge1336.loopexit.unr-lcssa:               ; preds = %.lr.ph1335, %.lr.ph1335.preheader
  %storemerge9411334.unr = phi i64 [ 0, %.lr.ph1335.preheader ], [ %999, %.lr.ph1335 ]
  %lcmp.mod1614.not = icmp eq i64 %xtraiter1612, 0
  br i1 %lcmp.mod1614.not, label %._crit_edge1336, label %.lr.ph1335.epil

.lr.ph1335.epil:                                  ; preds = %._crit_edge1336.loopexit.unr-lcssa
  %1000 = load ptr, ptr %27, align 8, !tbaa !11
  %1001 = getelementptr inbounds ptr, ptr %1000, i64 %storemerge9221339
  %1002 = load ptr, ptr %1001, align 8, !tbaa !12
  %1003 = getelementptr inbounds double, ptr %1002, i64 %storemerge9411334.unr
  %1004 = load double, ptr %1003, align 8, !tbaa !14
  %1005 = getelementptr inbounds ptr, ptr %1000, i64 %storemerge9411334.unr
  %1006 = load ptr, ptr %1005, align 8, !tbaa !12
  %1007 = getelementptr inbounds double, ptr %1006, i64 %storemerge9221339
  store double %1004, ptr %1007, align 8, !tbaa !14
  br label %._crit_edge1336

._crit_edge1336:                                  ; preds = %.lr.ph1335.epil, %._crit_edge1336.loopexit.unr-lcssa, %.preheader1114
  %1008 = add nuw nsw i64 %storemerge9221339, 1
  %.not923.not = icmp slt i64 %1008, %900
  br i1 %.not923.not, label %.preheader1114, label %1009, !llvm.loop !100

1009:                                             ; preds = %._crit_edge1336
  store i64 %storemerge9221339, ptr %7, align 8, !tbaa !9
  store i64 %1008, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %900, i64 noundef %900, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br i1 %.not915.not1314, label %.preheader1113, label %._crit_edge1347

.preheader1113:                                   ; preds = %1009, %._crit_edge1345
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1010

1010:                                             ; preds = %.preheader1113, %1010
  %storemerge9391343 = phi i64 [ 0, %.preheader1113 ], [ %1018, %1010 ]
  %1011 = load i64, ptr %6, align 8, !tbaa !9
  %1012 = load ptr, ptr %27, align 8, !tbaa !11
  %1013 = getelementptr inbounds ptr, ptr %1012, i64 %1011
  %1014 = load ptr, ptr %1013, align 8, !tbaa !12
  %1015 = getelementptr inbounds double, ptr %1014, i64 %storemerge9391343
  %1016 = load double, ptr %1015, align 8, !tbaa !14
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1011, i64 noundef %storemerge9391343, double noundef %1016, ptr noundef %0)
  %1017 = load i64, ptr %7, align 8, !tbaa !9
  %1018 = add nsw i64 %1017, 1
  store i64 %1018, ptr %7, align 8, !tbaa !9
  %.not940.not = icmp slt i64 %1018, %900
  br i1 %.not940.not, label %1010, label %._crit_edge1345, !llvm.loop !101

._crit_edge1345:                                  ; preds = %1010
  %1019 = load i64, ptr %6, align 8, !tbaa !9
  %1020 = add nsw i64 %1019, 1
  store i64 %1020, ptr %6, align 8, !tbaa !9
  %.not925.not = icmp slt i64 %1020, %900
  br i1 %.not925.not, label %.preheader1113, label %._crit_edge1347, !llvm.loop !102

._crit_edge1347:                                  ; preds = %._crit_edge1345, %.thread, %1009
  %1021 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 2, ptr noundef %0)
  %1022 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 7, ptr noundef %0)
  %1023 = add nsw i64 %1022, -3
  %1024 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %11, i1 noundef zeroext false, i64 noundef %1021, i64 noundef %1023, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %1024, label %1026, label %1025

1025:                                             ; preds = %._crit_edge1347
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25159, ptr noundef nonnull @.str.386)
  br label %.loopexit

1026:                                             ; preds = %._crit_edge1347
  %1027 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext false, ptr noundef nonnull %13, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %1027, label %1029, label %1028

1028:                                             ; preds = %1026
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25165, ptr noundef nonnull @.str.387)
  br label %.loopexit

1029:                                             ; preds = %1026
  %1030 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  br i1 %1030, label %1031, label %1036

1031:                                             ; preds = %1029
  %1032 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %.not926 = icmp eq i64 %1032, %900
  br i1 %.not926, label %1033, label %1036

1033:                                             ; preds = %1031
  %1034 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %0)
  %1035 = icmp ne i64 %1034, %900
  br label %1036

1036:                                             ; preds = %1033, %1031, %1029
  %1037 = phi i1 [ true, %1031 ], [ true, %1029 ], [ %1035, %1033 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1037, ptr noundef nonnull @.str.19, i32 noundef 25173, ptr noundef nonnull @.str.388)
  %1038 = load i64, ptr %16, align 8, !tbaa !29
  %1039 = icmp ne i64 %1038, %900
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1039, ptr noundef nonnull @.str.19, i32 noundef 25174, ptr noundef nonnull @.str.389)
  %1040 = load i64, ptr %19, align 8, !tbaa !29
  %1041 = icmp ne i64 %1040, %900
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1041, ptr noundef nonnull @.str.19, i32 noundef 25175, ptr noundef nonnull @.str.390)
  %1042 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %1043 = trunc nuw i8 %1042 to i1
  br i1 %1043, label %.loopexit, label %.preheader1123

.preheader1123:                                   ; preds = %1036
  store i64 0, ptr %6, align 8, !tbaa !9
  br i1 %.not915.not1314, label %.lr.ph1350, label %._crit_edge1351

.lr.ph1350:                                       ; preds = %.preheader1123, %.lr.ph1350
  %storemerge9271349 = phi i64 [ %1056, %.lr.ph1350 ], [ 0, %.preheader1123 ]
  %1044 = load ptr, ptr %28, align 8, !tbaa !11
  %1045 = getelementptr inbounds i64, ptr %1044, i64 %storemerge9271349
  %1046 = load i64, ptr %1045, align 8, !tbaa !9
  %1047 = icmp slt i64 %1046, %storemerge9271349
  %1048 = icmp sge i64 %1046, %900
  %spec.select1079 = or i1 %1047, %1048
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %spec.select1079, ptr noundef nonnull @.str.19, i32 noundef 25183, ptr noundef nonnull @.str.391)
  %1049 = load ptr, ptr %29, align 8, !tbaa !11
  %1050 = load i64, ptr %6, align 8, !tbaa !9
  %1051 = getelementptr inbounds double, ptr %1049, i64 %1050
  %1052 = load double, ptr %1051, align 8, !tbaa !14
  %1053 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1052, ptr noundef %0)
  %1054 = xor i1 %1053, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1054, ptr noundef nonnull @.str.19, i32 noundef 25184, ptr noundef nonnull @.str.392)
  %1055 = load i64, ptr %6, align 8, !tbaa !9
  %1056 = add nsw i64 %1055, 1
  store i64 %1056, ptr %6, align 8, !tbaa !9
  %.not928.not = icmp slt i64 %1056, %900
  br i1 %.not928.not, label %.lr.ph1350, label %._crit_edge1351.loopexit, !llvm.loop !103

._crit_edge1351.loopexit:                         ; preds = %.lr.ph1350
  %.pre1481 = load i8, ptr %26, align 1, !tbaa !5, !range !33
  br label %._crit_edge1351

._crit_edge1351:                                  ; preds = %._crit_edge1351.loopexit, %.preheader1123
  %1057 = phi i8 [ %.pre1481, %._crit_edge1351.loopexit ], [ %1042, %.preheader1123 ]
  %1058 = trunc nuw i8 %1057 to i1
  br i1 %1058, label %.loopexit, label %1059

1059:                                             ; preds = %._crit_edge1351
  store i64 0, ptr %9, align 8, !tbaa !9
  store i64 0, ptr %10, align 8, !tbaa !9
  %1060 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %1060, label %.lr.ph1353, label %._crit_edge1354

.lr.ph1353:                                       ; preds = %1059, %.lr.ph1353
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext false, ptr noundef nonnull @.str.19, i32 noundef 25195, ptr noundef nonnull @.str.393)
  %1061 = load i64, ptr %7, align 8, !tbaa !9
  %1062 = load i64, ptr %6, align 8, !tbaa !9
  %1063 = icmp sgt i64 %1061, %1062
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1063, ptr noundef nonnull @.str.19, i32 noundef 25196, ptr noundef nonnull @.str.394)
  %1064 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %1064, label %.lr.ph1353, label %._crit_edge1354, !llvm.loop !104

._crit_edge1354:                                  ; preds = %.lr.ph1353, %1059
  %1065 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %1066 = trunc nuw i8 %1065 to i1
  br i1 %1066, label %.loopexit, label %1067

1067:                                             ; preds = %._crit_edge1354
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %900, i64 noundef %900, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br i1 %.not915.not1314, label %.preheader1112, label %.preheader1121.thread

.preheader1122:                                   ; preds = %._crit_edge1362.split.us
  store i64 %949, ptr %6, align 8, !tbaa !9
  br i1 %.not915.not1314, label %.lr.ph1367, label %.preheader1121.thread

.preheader1112:                                   ; preds = %1067, %._crit_edge1362.split.us
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %.lr.ph1358.us

.lr.ph1358.us:                                    ; preds = %._crit_edge1359.us, %.preheader1112
  store double 0.000000e+00, ptr %8, align 8, !tbaa !14
  br label %1068

1068:                                             ; preds = %.lr.ph1358.us, %1068
  %1069 = phi double [ 0.000000e+00, %.lr.ph1358.us ], [ %1078, %1068 ]
  %.51356.us = phi i64 [ 0, %.lr.ph1358.us ], [ %1079, %1068 ]
  %1070 = load i64, ptr %7, align 8, !tbaa !9
  %1071 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %1070, i64 noundef %.51356.us, ptr noundef %0)
  %1072 = load ptr, ptr %29, align 8, !tbaa !11
  %1073 = getelementptr inbounds double, ptr %1072, i64 %.51356.us
  %1074 = load double, ptr %1073, align 8, !tbaa !14
  %1075 = fmul double %1071, %1074
  %1076 = load i64, ptr %6, align 8, !tbaa !9
  %1077 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %1076, i64 noundef %.51356.us, ptr noundef %0)
  %1078 = call double @llvm.fmuladd.f64(double %1075, double %1077, double %1069)
  store double %1078, ptr %8, align 8, !tbaa !14
  %1079 = add nuw nsw i64 %.51356.us, 1
  %.not938.not.us = icmp slt i64 %1079, %900
  br i1 %.not938.not.us, label %1068, label %._crit_edge1359.us, !llvm.loop !105

._crit_edge1359.us:                               ; preds = %1068
  %1080 = load ptr, ptr %30, align 8, !tbaa !11
  %1081 = load i64, ptr %6, align 8, !tbaa !9
  %1082 = getelementptr inbounds ptr, ptr %1080, i64 %1081
  %1083 = load ptr, ptr %1082, align 8, !tbaa !12
  %1084 = load i64, ptr %7, align 8, !tbaa !9
  %1085 = getelementptr inbounds double, ptr %1083, i64 %1084
  store double %1078, ptr %1085, align 8, !tbaa !14
  %1086 = add nsw i64 %1084, 1
  store i64 %1086, ptr %7, align 8, !tbaa !9
  %.not937.not.us = icmp slt i64 %1086, %900
  br i1 %.not937.not.us, label %.lr.ph1358.us, label %._crit_edge1362.split.us, !llvm.loop !106

._crit_edge1362.split.us:                         ; preds = %._crit_edge1359.us
  %1087 = add nsw i64 %1081, 1
  store i64 %1087, ptr %6, align 8, !tbaa !9
  %.not930.not = icmp slt i64 %1087, %900
  br i1 %.not930.not, label %.preheader1112, label %.preheader1122, !llvm.loop !107

.preheader1121.thread:                            ; preds = %1067, %.preheader1122
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %._crit_edge1373

.preheader1121:                                   ; preds = %.lr.ph1367
  store i64 0, ptr %6, align 8, !tbaa !9
  br i1 %.not915.not1314, label %.preheader1111, label %._crit_edge1373

.lr.ph1367:                                       ; preds = %.preheader1122, %.lr.ph1367
  %storemerge9311366 = phi i64 [ %1096, %.lr.ph1367 ], [ %949, %.preheader1122 ]
  %1088 = load ptr, ptr %28, align 8, !tbaa !11
  %1089 = getelementptr inbounds i64, ptr %1088, i64 %storemerge9311366
  %1090 = load i64, ptr %1089, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swaprowsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %storemerge9311366, i64 noundef %1090, i64 noundef %900, ptr noundef %0)
  %1091 = load i64, ptr %6, align 8, !tbaa !9
  %1092 = load ptr, ptr %28, align 8, !tbaa !11
  %1093 = getelementptr inbounds i64, ptr %1092, i64 %1091
  %1094 = load i64, ptr %1093, align 8, !tbaa !9
  call void @_ZN11alglib_impl8swapcolsEPNS_9ae_matrixElllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %1091, i64 noundef %1094, i64 noundef %900, ptr noundef %0)
  %1095 = load i64, ptr %6, align 8, !tbaa !9
  %1096 = add nsw i64 %1095, -1
  store i64 %1096, ptr %6, align 8, !tbaa !9
  %1097 = icmp sgt i64 %1095, 0
  br i1 %1097, label %.lr.ph1367, label %.preheader1121, !llvm.loop !108

.preheader1111:                                   ; preds = %.preheader1121, %._crit_edge1371
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1098

1098:                                             ; preds = %.preheader1111, %1098
  %storemerge9341369 = phi i64 [ 0, %.preheader1111 ], [ %1114, %1098 ]
  %1099 = load ptr, ptr %27, align 8, !tbaa !11
  %1100 = load i64, ptr %6, align 8, !tbaa !9
  %1101 = getelementptr inbounds ptr, ptr %1099, i64 %1100
  %1102 = load ptr, ptr %1101, align 8, !tbaa !12
  %1103 = getelementptr inbounds double, ptr %1102, i64 %storemerge9341369
  %1104 = load double, ptr %1103, align 8, !tbaa !14
  %1105 = load ptr, ptr %30, align 8, !tbaa !11
  %1106 = getelementptr inbounds ptr, ptr %1105, i64 %1100
  %1107 = load ptr, ptr %1106, align 8, !tbaa !12
  %1108 = getelementptr inbounds double, ptr %1107, i64 %storemerge9341369
  %1109 = load double, ptr %1108, align 8, !tbaa !14
  %1110 = fsub double %1104, %1109
  %1111 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1110, ptr noundef %0)
  %1112 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1111, double noundef 1.000000e-08)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1112, ptr noundef nonnull @.str.19, i32 noundef 25252, ptr noundef nonnull @.str.395)
  %1113 = load i64, ptr %7, align 8, !tbaa !9
  %1114 = add nsw i64 %1113, 1
  store i64 %1114, ptr %7, align 8, !tbaa !9
  %.not935.not = icmp slt i64 %1114, %900
  br i1 %.not935.not, label %1098, label %._crit_edge1371, !llvm.loop !109

._crit_edge1371:                                  ; preds = %1098
  %1115 = load i64, ptr %6, align 8, !tbaa !9
  %1116 = add nsw i64 %1115, 1
  store i64 %1116, ptr %6, align 8, !tbaa !9
  %.not933.not = icmp slt i64 %1116, %900
  br i1 %.not933.not, label %.preheader1111, label %._crit_edge1373, !llvm.loop !110

._crit_edge1373:                                  ; preds = %._crit_edge1371, %.preheader1121.thread, %.preheader1121
  %1117 = add nuw nsw i64 %.07671375, 1
  %1118 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %0)
  %.not913.not = icmp slt i64 %.07671375, %1118
  br i1 %.not913.not, label %895, label %._crit_edge1377, !llvm.loop !111

._crit_edge1377:                                  ; preds = %._crit_edge1373, %.preheader1128
  %1119 = add nuw nsw i64 %.07691379, 1
  %1120 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %0)
  %.not912.not = icmp slt i64 %.07691379, %1120
  br i1 %.not912.not, label %.preheader1128, label %._crit_edge1380, !llvm.loop !112

._crit_edge1380:                                  ; preds = %._crit_edge1377, %.preheader1129
  %1121 = add nuw nsw i64 %.07681382, 1
  %1122 = call noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef %0)
  %.not.not = icmp slt i64 %.07681382, %1122
  br i1 %.not.not, label %.preheader1129, label %.preheader1110.preheader, !llvm.loop !113

.preheader1099:                                   ; preds = %1354
  %1123 = getelementptr inbounds i8, ptr %11, i64 184
  %1124 = getelementptr inbounds i8, ptr %12, i64 184
  br label %1357

.preheader1110:                                   ; preds = %.preheader1110.preheader, %1354
  %.31396 = phi i64 [ %1355, %1354 ], [ 1, %.preheader1110.preheader ]
  %.3879 = add nsw i64 %.31396, -1
  %1125 = mul nuw nsw i64 %.3879, %.31396
  %1126 = icmp ugt i64 %.31396, 1
  %1127 = sitofp i64 %1125 to double
  br label %1128

1128:                                             ; preds = %1352, %.preheader1110
  %.3766 = phi i64 [ %1125, %.preheader1110 ], [ %1353, %1352 ]
  %1129 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %0)
  %1130 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1129, double noundef 5.000000e-01)
  %1131 = sitofp i64 %.3766 to double
  %1132 = fdiv double %1131, %1127
  %.3776 = select i1 %1126, double %1132, double 1.000000e+00
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %3, i64 noundef %.31396, i64 noundef %.31396, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1105

.preheader1105:                                   ; preds = %1128, %._crit_edge1386
  %1133 = phi i64 [ 0, %1128 ], [ %1179, %._crit_edge1386 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  %.not9111383 = icmp slt i64 %1133, 0
  br i1 %.not9111383, label %._crit_edge1386, label %.lr.ph1385

.lr.ph1385:                                       ; preds = %.preheader1105, %1175
  %1134 = phi i64 [ %1176, %1175 ], [ %1133, %.preheader1105 ]
  %storemerge9101384 = phi i64 [ %1178, %1175 ], [ 0, %.preheader1105 ]
  %1135 = icmp eq i64 %1134, %storemerge9101384
  %1136 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  br i1 %1135, label %1137, label %1144

1137:                                             ; preds = %.lr.ph1385
  %1138 = fadd double %1136, 1.000000e+00
  %1139 = load ptr, ptr %27, align 8, !tbaa !11
  %1140 = load i64, ptr %6, align 8, !tbaa !9
  %1141 = getelementptr inbounds ptr, ptr %1139, i64 %1140
  %1142 = load ptr, ptr %1141, align 8, !tbaa !12
  %1143 = getelementptr inbounds double, ptr %1142, i64 %1140
  store double %1138, ptr %1143, align 8, !tbaa !14
  %.pre1482 = load i64, ptr %7, align 8, !tbaa !9
  br label %1175

1144:                                             ; preds = %.lr.ph1385
  %1145 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1136, double noundef %.3776)
  br i1 %1145, label %1146, label %1164

1146:                                             ; preds = %1144
  %1147 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1148 = fadd double %1147, -5.000000e-01
  %1149 = fmul double %1148, 1.000000e-03
  %1150 = load ptr, ptr %27, align 8, !tbaa !11
  %1151 = load i64, ptr %6, align 8, !tbaa !9
  %1152 = getelementptr inbounds ptr, ptr %1150, i64 %1151
  %1153 = load ptr, ptr %1152, align 8, !tbaa !12
  %1154 = load i64, ptr %7, align 8, !tbaa !9
  %1155 = getelementptr inbounds double, ptr %1153, i64 %1154
  store double %1149, ptr %1155, align 8, !tbaa !14
  %1156 = load ptr, ptr %27, align 8, !tbaa !11
  %1157 = getelementptr inbounds ptr, ptr %1156, i64 %1151
  %1158 = load ptr, ptr %1157, align 8, !tbaa !12
  %1159 = getelementptr inbounds double, ptr %1158, i64 %1154
  %1160 = load double, ptr %1159, align 8, !tbaa !14
  %1161 = getelementptr inbounds ptr, ptr %1156, i64 %1154
  %1162 = load ptr, ptr %1161, align 8, !tbaa !12
  %1163 = getelementptr inbounds double, ptr %1162, i64 %1151
  store double %1160, ptr %1163, align 8, !tbaa !14
  br label %1175

1164:                                             ; preds = %1144
  %1165 = load ptr, ptr %27, align 8, !tbaa !11
  %1166 = load i64, ptr %6, align 8, !tbaa !9
  %1167 = getelementptr inbounds ptr, ptr %1165, i64 %1166
  %1168 = load ptr, ptr %1167, align 8, !tbaa !12
  %1169 = load i64, ptr %7, align 8, !tbaa !9
  %1170 = getelementptr inbounds double, ptr %1168, i64 %1169
  store double 0.000000e+00, ptr %1170, align 8, !tbaa !14
  %1171 = load ptr, ptr %27, align 8, !tbaa !11
  %1172 = getelementptr inbounds ptr, ptr %1171, i64 %1169
  %1173 = load ptr, ptr %1172, align 8, !tbaa !12
  %1174 = getelementptr inbounds double, ptr %1173, i64 %1166
  store double 0.000000e+00, ptr %1174, align 8, !tbaa !14
  br label %1175

1175:                                             ; preds = %1146, %1164, %1137
  %1176 = phi i64 [ %1151, %1146 ], [ %1166, %1164 ], [ %1140, %1137 ]
  %1177 = phi i64 [ %1154, %1146 ], [ %1169, %1164 ], [ %.pre1482, %1137 ]
  %1178 = add nsw i64 %1177, 1
  store i64 %1178, ptr %7, align 8, !tbaa !9
  %.not911.not = icmp slt i64 %1177, %1176
  br i1 %.not911.not, label %.lr.ph1385, label %._crit_edge1386, !llvm.loop !114

._crit_edge1386:                                  ; preds = %1175, %.preheader1105
  %.lcssa1176 = phi i64 [ %1133, %.preheader1105 ], [ %1176, %1175 ]
  %1179 = add nsw i64 %.lcssa1176, 1
  store i64 %1179, ptr %6, align 8, !tbaa !9
  %.not881.not = icmp slt i64 %1179, %.31396
  br i1 %.not881.not, label %.preheader1105, label %1180, !llvm.loop !115

1180:                                             ; preds = %._crit_edge1386
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.31396, i64 noundef %.31396, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1104

.preheader1104:                                   ; preds = %1180, %1218
  %1181 = phi i64 [ 0, %1180 ], [ %1219, %1218 ]
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1182

1182:                                             ; preds = %.preheader1104, %1214
  %1183 = phi i64 [ %1181, %.preheader1104 ], [ %1216, %1214 ]
  %storemerge9061388 = phi i64 [ 0, %.preheader1104 ], [ %1217, %1214 ]
  %.not908 = icmp sle i64 %storemerge9061388, %1183
  %.not909 = icmp sge i64 %storemerge9061388, %1183
  %or.cond1095 = select i1 %1130, i1 %.not909, i1 %.not908
  br i1 %or.cond1095, label %1184, label %1194

1184:                                             ; preds = %1182
  %1185 = load ptr, ptr %27, align 8, !tbaa !11
  %1186 = getelementptr inbounds ptr, ptr %1185, i64 %1183
  %1187 = load ptr, ptr %1186, align 8, !tbaa !12
  %1188 = getelementptr inbounds double, ptr %1187, i64 %storemerge9061388
  %1189 = load double, ptr %1188, align 8, !tbaa !14
  %1190 = load ptr, ptr %30, align 8, !tbaa !11
  %1191 = getelementptr inbounds ptr, ptr %1190, i64 %1183
  %1192 = load ptr, ptr %1191, align 8, !tbaa !12
  %1193 = getelementptr inbounds double, ptr %1192, i64 %storemerge9061388
  store double %1189, ptr %1193, align 8, !tbaa !14
  br label %1214

1194:                                             ; preds = %1182
  %1195 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1196 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1195, double noundef %.3776)
  br i1 %1196, label %1197, label %1207

1197:                                             ; preds = %1194
  %1198 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1199 = fadd double %1198, -5.000000e-01
  %1200 = fmul double %1199, 1.000000e-03
  %1201 = load ptr, ptr %30, align 8, !tbaa !11
  %1202 = load i64, ptr %6, align 8, !tbaa !9
  %1203 = getelementptr inbounds ptr, ptr %1201, i64 %1202
  %1204 = load ptr, ptr %1203, align 8, !tbaa !12
  %1205 = load i64, ptr %7, align 8, !tbaa !9
  %1206 = getelementptr inbounds double, ptr %1204, i64 %1205
  store double %1200, ptr %1206, align 8, !tbaa !14
  br label %1214

1207:                                             ; preds = %1194
  %1208 = load ptr, ptr %30, align 8, !tbaa !11
  %1209 = load i64, ptr %6, align 8, !tbaa !9
  %1210 = getelementptr inbounds ptr, ptr %1208, i64 %1209
  %1211 = load ptr, ptr %1210, align 8, !tbaa !12
  %1212 = load i64, ptr %7, align 8, !tbaa !9
  %1213 = getelementptr inbounds double, ptr %1211, i64 %1212
  store double 0.000000e+00, ptr %1213, align 8, !tbaa !14
  br label %1214

1214:                                             ; preds = %1184, %1207, %1197
  %1215 = phi i64 [ %storemerge9061388, %1184 ], [ %1212, %1207 ], [ %1205, %1197 ]
  %1216 = phi i64 [ %1183, %1184 ], [ %1209, %1207 ], [ %1202, %1197 ]
  %1217 = add nsw i64 %1215, 1
  store i64 %1217, ptr %7, align 8, !tbaa !9
  %.not907.not = icmp slt i64 %1217, %.31396
  br i1 %.not907.not, label %1182, label %1218, !llvm.loop !116

1218:                                             ; preds = %1214
  %1219 = add nsw i64 %1216, 1
  store i64 %1219, ptr %6, align 8, !tbaa !9
  %.not883.not = icmp slt i64 %1219, %.31396
  br i1 %.not883.not, label %.preheader1104, label %1220, !llvm.loop !117

1220:                                             ; preds = %1218
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.31396, i64 noundef %.31396, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.31396, i64 noundef %.31396, i64 noundef 0, ptr noundef nonnull %12, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1103

.preheader1103:                                   ; preds = %1220, %1239
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1221

1221:                                             ; preds = %.preheader1103, %1229
  %storemerge9021389 = phi i64 [ 0, %.preheader1103 ], [ %1238, %1229 ]
  %1222 = load i64, ptr %6, align 8, !tbaa !9
  %.not904 = icmp sle i64 %storemerge9021389, %1222
  %.not905 = icmp sge i64 %storemerge9021389, %1222
  %or.cond1096 = select i1 %1130, i1 %.not905, i1 %.not904
  br i1 %or.cond1096, label %1223, label %1229

1223:                                             ; preds = %1221
  %1224 = load ptr, ptr %27, align 8, !tbaa !11
  %1225 = getelementptr inbounds ptr, ptr %1224, i64 %1222
  %1226 = load ptr, ptr %1225, align 8, !tbaa !12
  %1227 = getelementptr inbounds double, ptr %1226, i64 %storemerge9021389
  %1228 = load double, ptr %1227, align 8, !tbaa !14
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1222, i64 noundef %storemerge9021389, double noundef %1228, ptr noundef %0)
  %.pre1483 = load i64, ptr %6, align 8, !tbaa !9
  %.pre1484 = load i64, ptr %7, align 8, !tbaa !9
  br label %1229

1229:                                             ; preds = %1221, %1223
  %1230 = phi i64 [ %storemerge9021389, %1221 ], [ %.pre1484, %1223 ]
  %1231 = phi i64 [ %1222, %1221 ], [ %.pre1483, %1223 ]
  %1232 = load ptr, ptr %30, align 8, !tbaa !11
  %1233 = getelementptr inbounds ptr, ptr %1232, i64 %1231
  %1234 = load ptr, ptr %1233, align 8, !tbaa !12
  %1235 = getelementptr inbounds double, ptr %1234, i64 %1230
  %1236 = load double, ptr %1235, align 8, !tbaa !14
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1231, i64 noundef %1230, double noundef %1236, ptr noundef %0)
  %1237 = load i64, ptr %7, align 8, !tbaa !9
  %1238 = add nsw i64 %1237, 1
  store i64 %1238, ptr %7, align 8, !tbaa !9
  %.not903.not = icmp slt i64 %1238, %.31396
  br i1 %.not903.not, label %1221, label %1239, !llvm.loop !118

1239:                                             ; preds = %1229
  %1240 = load i64, ptr %6, align 8, !tbaa !9
  %1241 = add nsw i64 %1240, 1
  store i64 %1241, ptr %6, align 8, !tbaa !9
  %.not885.not = icmp slt i64 %1241, %.31396
  br i1 %.not885.not, label %.preheader1103, label %1242, !llvm.loop !119

1242:                                             ; preds = %1239
  call void @_ZN11alglib_impl18sparseconverttosksEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef %0)
  call void @_ZN11alglib_impl18sparseconverttosksEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %12, ptr noundef %0)
  %1243 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyskylineEPNS_12sparsematrixElbPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.31396, i1 noundef zeroext %1130, ptr noundef %0)
  br i1 %1243, label %1245, label %1244

1244:                                             ; preds = %1242
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25375, ptr noundef nonnull @.str.396)
  br label %.loopexit

1245:                                             ; preds = %1242
  %1246 = call noundef zeroext i1 @_ZN11alglib_impl11sparseissksEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef %0)
  %1247 = xor i1 %1246, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1247, ptr noundef nonnull @.str.19, i32 noundef 25379, ptr noundef nonnull @.str.397)
  %1248 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef %0)
  %1249 = icmp ne i64 %1248, %.31396
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1249, ptr noundef nonnull @.str.19, i32 noundef 25380, ptr noundef nonnull @.str.398)
  %1250 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef %0)
  %1251 = icmp ne i64 %1250, %.31396
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1251, ptr noundef nonnull @.str.19, i32 noundef 25381, ptr noundef nonnull @.str.399)
  store i64 0, ptr %9, align 8, !tbaa !9
  store i64 0, ptr %10, align 8, !tbaa !9
  %1252 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %1252, label %.lr.ph1391, label %._crit_edge1392

.lr.ph1391:                                       ; preds = %1245
  %1253 = xor i1 %1130, true
  br label %1254

1254:                                             ; preds = %.lr.ph1391, %1254
  %1255 = load i64, ptr %7, align 8, !tbaa !9
  %1256 = load i64, ptr %6, align 8, !tbaa !9
  %1257 = icmp slt i64 %1255, %1256
  %1258 = and i1 %1130, %1257
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1258, ptr noundef nonnull @.str.19, i32 noundef 25386, ptr noundef nonnull @.str.400)
  %1259 = load i64, ptr %7, align 8, !tbaa !9
  %1260 = load i64, ptr %6, align 8, !tbaa !9
  %1261 = icmp sgt i64 %1259, %1260
  %1262 = and i1 %1261, %1253
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1262, ptr noundef nonnull @.str.19, i32 noundef 25387, ptr noundef nonnull @.str.401)
  %1263 = call noundef zeroext i1 @_ZN11alglib_impl15sparseenumerateEPKNS_12sparsematrixEPlS3_S3_S3_PdPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %0)
  br i1 %1263, label %1254, label %._crit_edge1392, !llvm.loop !120

._crit_edge1392:                                  ; preds = %1254, %1245
  store i64 0, ptr %6, align 8, !tbaa !9
  br i1 %1130, label %.preheader1101, label %.preheader1102

.preheader1101:                                   ; preds = %._crit_edge1392, %1286
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1264

1264:                                             ; preds = %.preheader1101, %1273
  store double 0.000000e+00, ptr %8, align 8, !tbaa !14
  br label %1265

1265:                                             ; preds = %1264, %1265
  %1266 = phi double [ 0.000000e+00, %1264 ], [ %1271, %1265 ]
  %.61394 = phi i64 [ 0, %1264 ], [ %1272, %1265 ]
  %1267 = load i64, ptr %7, align 8, !tbaa !9
  %1268 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.61394, i64 noundef %1267, ptr noundef %0)
  %1269 = load i64, ptr %6, align 8, !tbaa !9
  %1270 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.61394, i64 noundef %1269, ptr noundef %0)
  %1271 = call double @llvm.fmuladd.f64(double %1268, double %1270, double %1266)
  store double %1271, ptr %8, align 8, !tbaa !14
  %1272 = add nuw nsw i64 %.61394, 1
  %exitcond1465.not = icmp eq i64 %1272, %.31396
  br i1 %exitcond1465.not, label %1273, label %1265, !llvm.loop !121

1273:                                             ; preds = %1265
  %1274 = load ptr, ptr %27, align 8, !tbaa !11
  %1275 = load i64, ptr %6, align 8, !tbaa !9
  %1276 = getelementptr inbounds ptr, ptr %1274, i64 %1275
  %1277 = load ptr, ptr %1276, align 8, !tbaa !12
  %1278 = load i64, ptr %7, align 8, !tbaa !9
  %1279 = getelementptr inbounds double, ptr %1277, i64 %1278
  %1280 = load double, ptr %1279, align 8, !tbaa !14
  %1281 = fsub double %1280, %1271
  %1282 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1281, ptr noundef %0)
  %1283 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1282, double noundef 1.000000e-08)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1283, ptr noundef nonnull @.str.19, i32 noundef 25400, ptr noundef nonnull @.str.402)
  %1284 = load i64, ptr %7, align 8, !tbaa !9
  %1285 = add nsw i64 %1284, 1
  store i64 %1285, ptr %7, align 8, !tbaa !9
  %.not900.not = icmp slt i64 %1285, %.31396
  br i1 %.not900.not, label %1264, label %1286, !llvm.loop !122

1286:                                             ; preds = %1273
  %1287 = load i64, ptr %6, align 8, !tbaa !9
  %1288 = add nsw i64 %1287, 1
  store i64 %1288, ptr %6, align 8, !tbaa !9
  %.not892.not = icmp slt i64 %1288, %.31396
  br i1 %.not892.not, label %.preheader1101, label %.loopexit1107, !llvm.loop !123

.preheader1102:                                   ; preds = %._crit_edge1392, %1311
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1289

1289:                                             ; preds = %.preheader1102, %1298
  store double 0.000000e+00, ptr %8, align 8, !tbaa !14
  br label %1290

1290:                                             ; preds = %1289, %1290
  %1291 = phi double [ 0.000000e+00, %1289 ], [ %1296, %1290 ]
  %.71393 = phi i64 [ 0, %1289 ], [ %1297, %1290 ]
  %1292 = load i64, ptr %7, align 8, !tbaa !9
  %1293 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1292, i64 noundef %.71393, ptr noundef %0)
  %1294 = load i64, ptr %6, align 8, !tbaa !9
  %1295 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1294, i64 noundef %.71393, ptr noundef %0)
  %1296 = call double @llvm.fmuladd.f64(double %1293, double %1295, double %1291)
  store double %1296, ptr %8, align 8, !tbaa !14
  %1297 = add nuw nsw i64 %.71393, 1
  %exitcond1464.not = icmp eq i64 %1297, %.31396
  br i1 %exitcond1464.not, label %1298, label %1290, !llvm.loop !124

1298:                                             ; preds = %1290
  %1299 = load ptr, ptr %27, align 8, !tbaa !11
  %1300 = load i64, ptr %6, align 8, !tbaa !9
  %1301 = getelementptr inbounds ptr, ptr %1299, i64 %1300
  %1302 = load ptr, ptr %1301, align 8, !tbaa !12
  %1303 = load i64, ptr %7, align 8, !tbaa !9
  %1304 = getelementptr inbounds double, ptr %1302, i64 %1303
  %1305 = load double, ptr %1304, align 8, !tbaa !14
  %1306 = fsub double %1305, %1296
  %1307 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1306, ptr noundef %0)
  %1308 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1307, double noundef 1.000000e-08)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1308, ptr noundef nonnull @.str.19, i32 noundef 25415, ptr noundef nonnull @.str.403)
  %1309 = load i64, ptr %7, align 8, !tbaa !9
  %1310 = add nsw i64 %1309, 1
  store i64 %1310, ptr %7, align 8, !tbaa !9
  %.not889.not = icmp slt i64 %1310, %.31396
  br i1 %.not889.not, label %1289, label %1311, !llvm.loop !125

1311:                                             ; preds = %1298
  %1312 = load i64, ptr %6, align 8, !tbaa !9
  %1313 = add nsw i64 %1312, 1
  store i64 %1313, ptr %6, align 8, !tbaa !9
  %.not887.not = icmp slt i64 %1313, %.31396
  br i1 %.not887.not, label %.preheader1102, label %.loopexit1107, !llvm.loop !126

.loopexit1107:                                    ; preds = %1311, %1286
  %1314 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyskylineEPNS_12sparsematrixElbPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %.31396, i1 noundef zeroext %1130, ptr noundef %0)
  br i1 %1314, label %1316, label %1315

1315:                                             ; preds = %.loopexit1107
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25429, ptr noundef nonnull @.str.404)
  br label %.loopexit

1316:                                             ; preds = %.loopexit1107
  %1317 = call noundef zeroext i1 @_ZN11alglib_impl11sparseissksEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %12, ptr noundef %0)
  %1318 = xor i1 %1317, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1318, ptr noundef nonnull @.str.19, i32 noundef 25433, ptr noundef nonnull @.str.405)
  %1319 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %12, ptr noundef %0)
  %1320 = icmp ne i64 %1319, %.31396
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1320, ptr noundef nonnull @.str.19, i32 noundef 25434, ptr noundef nonnull @.str.406)
  %1321 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %12, ptr noundef %0)
  %1322 = icmp ne i64 %1321, %.31396
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1322, ptr noundef nonnull @.str.19, i32 noundef 25435, ptr noundef nonnull @.str.407)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %.preheader1100

.preheader1100:                                   ; preds = %1316, %1347
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1323

1323:                                             ; preds = %.preheader1100, %1344
  %storemerge8951395 = phi i64 [ 0, %.preheader1100 ], [ %1346, %1344 ]
  %1324 = load i64, ptr %6, align 8, !tbaa !9
  %.not897 = icmp sle i64 %storemerge8951395, %1324
  %.not898 = icmp sge i64 %storemerge8951395, %1324
  %or.cond1097 = select i1 %1130, i1 %.not898, i1 %.not897
  %1325 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1324, i64 noundef %storemerge8951395, ptr noundef %0)
  br i1 %or.cond1097, label %1326, label %1333

1326:                                             ; preds = %1323
  %1327 = load i64, ptr %6, align 8, !tbaa !9
  %1328 = load i64, ptr %7, align 8, !tbaa !9
  %1329 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1327, i64 noundef %1328, ptr noundef %0)
  %1330 = fsub double %1325, %1329
  %1331 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1330, ptr noundef %0)
  %1332 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1331, double noundef 0x3CF6849B86A12B9C)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1332, ptr noundef nonnull @.str.19, i32 noundef 25442, ptr noundef nonnull @.str.408)
  br label %1344

1333:                                             ; preds = %1323
  %1334 = load ptr, ptr %30, align 8, !tbaa !11
  %1335 = load i64, ptr %6, align 8, !tbaa !9
  %1336 = getelementptr inbounds ptr, ptr %1334, i64 %1335
  %1337 = load ptr, ptr %1336, align 8, !tbaa !12
  %1338 = load i64, ptr %7, align 8, !tbaa !9
  %1339 = getelementptr inbounds double, ptr %1337, i64 %1338
  %1340 = load double, ptr %1339, align 8, !tbaa !14
  %1341 = fsub double %1325, %1340
  %1342 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1341, ptr noundef %0)
  %1343 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1342, double noundef 0x3CF6849B86A12B9C)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1343, ptr noundef nonnull @.str.19, i32 noundef 25446, ptr noundef nonnull @.str.409)
  br label %1344

1344:                                             ; preds = %1326, %1333
  %1345 = load i64, ptr %7, align 8, !tbaa !9
  %1346 = add nsw i64 %1345, 1
  store i64 %1346, ptr %7, align 8, !tbaa !9
  %.not896.not = icmp slt i64 %1346, %.31396
  br i1 %.not896.not, label %1323, label %1347, !llvm.loop !127

1347:                                             ; preds = %1344
  %1348 = load i64, ptr %6, align 8, !tbaa !9
  %1349 = add nsw i64 %1348, 1
  store i64 %1349, ptr %6, align 8, !tbaa !9
  %.not894.not = icmp slt i64 %1349, %.31396
  br i1 %.not894.not, label %.preheader1100, label %1350, !llvm.loop !128

1350:                                             ; preds = %1347
  %1351 = icmp eq i64 %.3766, 0
  br i1 %1351, label %1354, label %1352

1352:                                             ; preds = %1350
  %1353 = sdiv i64 %.3766, 2
  br label %1128, !llvm.loop !129

1354:                                             ; preds = %1350
  %1355 = add nuw nsw i64 %.31396, 1
  %exitcond1466.not = icmp eq i64 %1355, 21
  br i1 %exitcond1466.not, label %.preheader1099, label %.preheader1110, !llvm.loop !130

.preheader:                                       ; preds = %1427
  %1356 = getelementptr inbounds i8, ptr %18, i64 56
  br label %1429

1357:                                             ; preds = %.preheader1099, %1427
  %.07701410 = phi i64 [ 0, %.preheader1099 ], [ %1428, %1427 ]
  %1358 = icmp eq i64 %.07701410, 1
  br i1 %1358, label %1427, label %1359

1359:                                             ; preds = %1357
  store i64 0, ptr %24, align 8, !tbaa !9
  store i64 0, ptr %25, align 8, !tbaa !9
  br label %1360

1360:                                             ; preds = %1359, %1410
  %.17601409 = phi i64 [ 0, %1359 ], [ %1418, %1410 ]
  %1361 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef 20, ptr noundef %0)
  %1362 = add nsw i64 %1361, 30
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %1362, i64 noundef %1362, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  %1363 = add nsw i64 %1361, 29
  store i64 0, ptr %6, align 8, !tbaa !9
  %.not8741398 = icmp slt i64 %1361, -29
  br i1 %.not8741398, label %.preheader1098, label %.lr.ph1401

.lr.ph1401:                                       ; preds = %1360
  %1364 = uitofp nneg i64 %1362 to double
  %1365 = fdiv double 1.000000e-02, %1364
  br label %1373

.preheader1098:                                   ; preds = %1385, %1360
  %1366 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1367 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1366, double noundef 0.000000e+00)
  br i1 %1367, label %.lr.ph1407, label %._crit_edge1408

.lr.ph1407:                                       ; preds = %.preheader1098
  %1368 = sitofp i64 %1362 to double
  %1369 = fdiv double 1.000000e-02, %1368
  br i1 %.not8741398, label %.loopexit.us, label %.lr.ph1406

.loopexit.us:                                     ; preds = %.lr.ph1407, %.loopexit.us
  %1370 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %1362, ptr noundef %0)
  store i64 %1370, ptr %6, align 8, !tbaa !9
  store i64 0, ptr %7, align 8, !tbaa !9
  %1371 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1372 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1371, double noundef 0.000000e+00)
  br i1 %1372, label %.loopexit.us, label %._crit_edge1408, !llvm.loop !131

1373:                                             ; preds = %.lr.ph1401, %1385
  %storemerge8731399 = phi i64 [ 0, %.lr.ph1401 ], [ %1387, %1385 ]
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %storemerge8731399, i64 noundef %storemerge8731399, double noundef 1.000000e+00, ptr noundef %0)
  %1374 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %1362, ptr noundef %0)
  store i64 %1374, ptr %7, align 8, !tbaa !9
  %1375 = load i64, ptr %6, align 8, !tbaa !9
  %.not878 = icmp eq i64 %1374, %1375
  br i1 %.not878, label %1379, label %1376

1376:                                             ; preds = %1373
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1375, i64 noundef %1374, double noundef %1365, ptr noundef %0)
  %1377 = load i64, ptr %7, align 8, !tbaa !9
  %1378 = load i64, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1377, i64 noundef %1378, double noundef %1365, ptr noundef %0)
  br label %1379

1379:                                             ; preds = %1373, %1376
  %1380 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %1362, ptr noundef %0)
  store i64 %1380, ptr %7, align 8, !tbaa !9
  %1381 = load i64, ptr %6, align 8, !tbaa !9
  %.not878.1 = icmp eq i64 %1380, %1381
  br i1 %.not878.1, label %1385, label %1382

1382:                                             ; preds = %1379
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1381, i64 noundef %1380, double noundef %1365, ptr noundef %0)
  %1383 = load i64, ptr %7, align 8, !tbaa !9
  %1384 = load i64, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1383, i64 noundef %1384, double noundef %1365, ptr noundef %0)
  %.pre1485 = load i64, ptr %6, align 8, !tbaa !9
  br label %1385

1385:                                             ; preds = %1382, %1379
  %1386 = phi i64 [ %.pre1485, %1382 ], [ %1380, %1379 ]
  %1387 = add nsw i64 %1386, 1
  store i64 %1387, ptr %6, align 8, !tbaa !9
  %.not874.not = icmp slt i64 %1386, %1363
  br i1 %.not874.not, label %1373, label %.preheader1098, !llvm.loop !132

..loopexit_crit_edge:                             ; preds = %1396
  %1388 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1389 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1388, double noundef 0.000000e+00)
  br i1 %1389, label %.lr.ph1406, label %._crit_edge1408, !llvm.loop !131

.lr.ph1406:                                       ; preds = %.lr.ph1407, %..loopexit_crit_edge
  %1390 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %1362, ptr noundef %0)
  store i64 %1390, ptr %6, align 8, !tbaa !9
  store i64 0, ptr %7, align 8, !tbaa !9
  br label %1391

1391:                                             ; preds = %.lr.ph1406, %1396
  %storemerge8751404 = phi i64 [ 0, %.lr.ph1406 ], [ %1398, %1396 ]
  %1392 = load i64, ptr %6, align 8, !tbaa !9
  %.not877 = icmp eq i64 %storemerge8751404, %1392
  br i1 %.not877, label %1396, label %1393

1393:                                             ; preds = %1391
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1392, i64 noundef %storemerge8751404, double noundef %1369, ptr noundef %0)
  %1394 = load i64, ptr %7, align 8, !tbaa !9
  %1395 = load i64, ptr %6, align 8, !tbaa !9
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1394, i64 noundef %1395, double noundef %1369, ptr noundef %0)
  %.pre1486 = load i64, ptr %7, align 8, !tbaa !9
  br label %1396

1396:                                             ; preds = %1391, %1393
  %1397 = phi i64 [ %storemerge8751404, %1391 ], [ %.pre1486, %1393 ]
  %1398 = add nsw i64 %1397, 1
  store i64 %1398, ptr %7, align 8, !tbaa !9
  %.not876.not = icmp slt i64 %1397, %1363
  br i1 %.not876.not, label %1391, label %..loopexit_crit_edge, !llvm.loop !133

._crit_edge1408:                                  ; preds = %..loopexit_crit_edge, %.loopexit.us, %.preheader1098
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef %0)
  %1399 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %11, i1 noundef zeroext false, i64 noundef 0, i64 noundef %.07701410, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %1399, label %1401, label %1400

1400:                                             ; preds = %._crit_edge1408
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25529, ptr noundef nonnull @.str.410)
  br label %.loopexit

1401:                                             ; preds = %._crit_edge1408
  %1402 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext false, ptr noundef nonnull %11, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %1402, label %1404, label %1403

1403:                                             ; preds = %1401
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25535, ptr noundef nonnull @.str.411)
  br label %.loopexit

1404:                                             ; preds = %1401
  %1405 = call noundef zeroext i1 @_ZN11alglib_impl21sparsecholeskyanalyzeEPKNS_12sparsematrixEbllPNS_27sparsedecompositionanalysisEPNS_8ae_stateE(ptr noundef nonnull %12, i1 noundef zeroext false, i64 noundef 0, i64 noundef -2, ptr noundef nonnull %22, ptr noundef %0)
  br i1 %1405, label %1407, label %1406

1406:                                             ; preds = %1404
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25541, ptr noundef nonnull @.str.412)
  br label %.loopexit

1407:                                             ; preds = %1404
  %1408 = call noundef zeroext i1 @_ZN11alglib_impl23sparsecholeskyfactorizeEPNS_27sparsedecompositionanalysisEbPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %22, i1 noundef zeroext false, ptr noundef nonnull %12, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  br i1 %1408, label %1410, label %1409

1409:                                             ; preds = %1407
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25547, ptr noundef nonnull @.str.413)
  br label %.loopexit

1410:                                             ; preds = %1407
  %1411 = load ptr, ptr %1123, align 8, !tbaa !11
  %1412 = getelementptr inbounds i64, ptr %1411, i64 %1362
  %1413 = load i64, ptr %1412, align 8, !tbaa !9
  %1414 = load ptr, ptr %1124, align 8, !tbaa !11
  %1415 = getelementptr inbounds i64, ptr %1414, i64 %1362
  %1416 = load i64, ptr %1415, align 8, !tbaa !9
  %1417 = icmp slt i64 %1413, %1416
  %. = select i1 %1417, ptr %24, ptr %25
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %., ptr noundef %0)
  %1418 = add nuw nsw i64 %.17601409, 1
  %exitcond1468.not = icmp eq i64 %1418, 100
  br i1 %exitcond1468.not, label %1419, label %1360, !llvm.loop !134

1419:                                             ; preds = %1410
  %1420 = load i64, ptr %24, align 8, !tbaa !9
  %1421 = sitofp i64 %1420 to double
  %1422 = load i64, ptr %25, align 8, !tbaa !9
  %1423 = add nsw i64 %1422, %1420
  %1424 = sitofp i64 %1423 to double
  %1425 = fmul double %1424, 7.500000e-01
  %1426 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1421, double noundef %1425)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1426, ptr noundef nonnull @.str.19, i32 noundef 25560, ptr noundef nonnull @.str.414)
  br label %1427

1427:                                             ; preds = %1357, %1419
  %1428 = add nuw nsw i64 %.07701410, 1
  %exitcond1469.not = icmp eq i64 %1428, 4
  br i1 %exitcond1469.not, label %.preheader, label %1357, !llvm.loop !135

1429:                                             ; preds = %.preheader, %._crit_edge1432
  %.4 = phi i64 [ %1445, %._crit_edge1432 ], [ 5, %.preheader ]
  %exitcond1471.not = icmp eq i64 %.4, 11
  br i1 %exitcond1471.not, label %.loopexit, label %1430

1430:                                             ; preds = %1429
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.4, i64 noundef %.4, i64 noundef 0, ptr noundef nonnull %11, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  %1431 = uitofp nneg i64 %.4 to double
  %1432 = fdiv double 5.000000e-02, %1431
  br label %1433

1433:                                             ; preds = %1430, %._crit_edge1415
  %storemerge1417 = phi i64 [ -1, %1430 ], [ %.lcssa, %._crit_edge1415 ]
  %1434 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %storemerge1417, i64 noundef 0, ptr noundef %0)
  store i64 %1434, ptr %7, align 8, !tbaa !9
  %1435 = load i64, ptr %6, align 8, !tbaa !9
  %.not8721411 = icmp sgt i64 %1434, %1435
  br i1 %.not8721411, label %._crit_edge1415, label %.lr.ph1414

.lr.ph1414:                                       ; preds = %1433, %.lr.ph1414
  %1436 = phi i64 [ %1441, %.lr.ph1414 ], [ %1435, %1433 ]
  %storemerge8711412 = phi i64 [ %1440, %.lr.ph1414 ], [ %1434, %1433 ]
  %1437 = icmp eq i64 %1436, %storemerge8711412
  %1438 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1437, double noundef 1.000000e+00, double noundef %1432, ptr noundef %0)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1436, i64 noundef %storemerge8711412, double noundef %1438, ptr noundef %0)
  %1439 = load i64, ptr %7, align 8, !tbaa !9
  %1440 = add nsw i64 %1439, 1
  store i64 %1440, ptr %7, align 8, !tbaa !9
  %1441 = load i64, ptr %6, align 8, !tbaa !9
  %.not872.not = icmp slt i64 %1439, %1441
  br i1 %.not872.not, label %.lr.ph1414, label %._crit_edge1415, !llvm.loop !136

._crit_edge1415:                                  ; preds = %.lr.ph1414, %1433
  %.lcssa = phi i64 [ %1435, %1433 ], [ %1441, %.lr.ph1414 ]
  %1442 = add nsw i64 %.lcssa, 1
  store i64 %1442, ptr %6, align 8, !tbaa !9
  %.not864.not = icmp slt i64 %1442, %.4
  br i1 %.not864.not, label %1433, label %1443, !llvm.loop !137

1443:                                             ; preds = %._crit_edge1415
  %1444 = add nsw i64 %.4, -1
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef %0)
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.4, i64 noundef 0, ptr noundef nonnull %18, ptr noundef %0)
  %1445 = add nuw nsw i64 %.4, 1
  %1446 = uitofp nneg i64 %1445 to double
  %1447 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1448 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1447, double noundef 0.000000e+00)
  %1449 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %1448, i64 noundef 1, i64 noundef -1, ptr noundef %0)
  %1450 = call noundef zeroext i1 @_ZN11alglib_impl13spsymmanalyzeEPKNS_12sparsematrixEPKNS_9ae_vectorEdllllPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %18, double noundef %1446, i64 noundef 0, i64 noundef 0, i64 noundef 3, i64 noundef %1449, ptr noundef nonnull %23, ptr noundef %0)
  br i1 %1450, label %1452, label %1451

1451:                                             ; preds = %1443
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25594, ptr noundef nonnull @.str.415)
  br label %.loopexit

1452:                                             ; preds = %1443
  %1453 = call noundef zeroext i1 @_ZN11alglib_impl15spsymmfactorizeEPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef nonnull %23, ptr noundef %0)
  br i1 %1453, label %1455, label %1454

1454:                                             ; preds = %1452
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25600, ptr noundef nonnull @.str.416)
  br label %.loopexit

1455:                                             ; preds = %1452
  call void @_ZN11alglib_impl13spsymmextractEPNS_14spcholanalysisEPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %23, ptr noundef nonnull %12, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %1456

1456:                                             ; preds = %1455, %1471
  %.07571420 = phi i1 [ true, %1455 ], [ %1473, %1471 ]
  %.07581419 = phi i1 [ true, %1455 ], [ %1463, %1471 ]
  %storemerge8651418 = phi i64 [ 0, %1455 ], [ %1474, %1471 ]
  br i1 %.07581419, label %1457, label %1462

1457:                                             ; preds = %1456
  %1458 = load ptr, ptr %28, align 8, !tbaa !11
  %1459 = getelementptr inbounds i64, ptr %1458, i64 %storemerge8651418
  %1460 = load i64, ptr %1459, align 8, !tbaa !9
  %1461 = icmp eq i64 %1460, %storemerge8651418
  br label %1462

1462:                                             ; preds = %1457, %1456
  %1463 = phi i1 [ false, %1456 ], [ %1461, %1457 ]
  br i1 %.07571420, label %1464, label %1471

1464:                                             ; preds = %1462
  %1465 = load ptr, ptr %28, align 8, !tbaa !11
  %1466 = getelementptr inbounds i64, ptr %1465, i64 %storemerge8651418
  %1467 = load i64, ptr %1466, align 8, !tbaa !9
  %1468 = sub nsw i64 %1444, %storemerge8651418
  %1469 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %1468, i64 noundef %storemerge8651418, ptr noundef %0)
  %1470 = icmp eq i64 %1467, %1469
  %.pre1487 = load i64, ptr %6, align 8, !tbaa !9
  br label %1471

1471:                                             ; preds = %1464, %1462
  %1472 = phi i64 [ %storemerge8651418, %1462 ], [ %.pre1487, %1464 ]
  %1473 = phi i1 [ false, %1462 ], [ %1470, %1464 ]
  %1474 = add nsw i64 %1472, 1
  store i64 %1474, ptr %6, align 8, !tbaa !9
  %.not866.not = icmp slt i64 %1474, %.4
  br i1 %.not866.not, label %1456, label %1475, !llvm.loop !138

1475:                                             ; preds = %1471
  %1476 = select i1 %1463, i1 true, i1 %1473
  %1477 = xor i1 %1476, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1477, ptr noundef nonnull @.str.19, i32 noundef 25612, ptr noundef nonnull @.str.417)
  %1478 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %1479 = trunc nuw i8 %1478 to i1
  br i1 %1479, label %.loopexit, label %1480

1480:                                             ; preds = %1475
  call void @_ZN11alglib_impl10isetallocvEllPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.4, i64 noundef 0, ptr noundef nonnull %18, ptr noundef %0)
  %1481 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %1444, ptr noundef %0)
  %storemerge8671421 = add i64 %1481, 1
  store i64 %storemerge8671421, ptr %6, align 8, !tbaa !9
  %.not868.not1422 = icmp slt i64 %1481, %1444
  br i1 %.not868.not1422, label %.lr.ph1425, label %._crit_edge1426

.lr.ph1425:                                       ; preds = %1480, %.lr.ph1425
  %storemerge8671423 = phi i64 [ %storemerge867, %.lr.ph1425 ], [ %storemerge8671421, %1480 ]
  %1482 = load ptr, ptr %1356, align 8, !tbaa !11
  %1483 = getelementptr inbounds i64, ptr %1482, i64 %storemerge8671423
  store i64 1, ptr %1483, align 8, !tbaa !9
  %1484 = load i64, ptr %6, align 8, !tbaa !9
  %storemerge867 = add nsw i64 %1484, 1
  store i64 %storemerge867, ptr %6, align 8, !tbaa !9
  %.not868.not = icmp slt i64 %1484, %1444
  br i1 %.not868.not, label %.lr.ph1425, label %._crit_edge1426, !llvm.loop !139

._crit_edge1426:                                  ; preds = %.lr.ph1425, %1480
  %1485 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %0)
  %1486 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1485, double noundef 0.000000e+00)
  %1487 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %1486, i64 noundef 1, i64 noundef -1, ptr noundef %0)
  %1488 = call noundef zeroext i1 @_ZN11alglib_impl13spsymmanalyzeEPKNS_12sparsematrixEPKNS_9ae_vectorEdllllPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef nonnull %11, ptr noundef nonnull %18, double noundef %1446, i64 noundef 0, i64 noundef 0, i64 noundef 3, i64 noundef %1487, ptr noundef nonnull %23, ptr noundef %0)
  br i1 %1488, label %1490, label %1489

1489:                                             ; preds = %._crit_edge1426
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25633, ptr noundef nonnull @.str.418)
  br label %.loopexit

1490:                                             ; preds = %._crit_edge1426
  %1491 = call noundef zeroext i1 @_ZN11alglib_impl15spsymmfactorizeEPNS_14spcholanalysisEPNS_8ae_stateE(ptr noundef nonnull %23, ptr noundef %0)
  br i1 %1491, label %1493, label %1492

1492:                                             ; preds = %1490
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext true, ptr noundef nonnull @.str.19, i32 noundef 25639, ptr noundef nonnull @.str.419)
  br label %.loopexit

1493:                                             ; preds = %1490
  call void @_ZN11alglib_impl13spsymmextractEPNS_14spcholanalysisEPNS_12sparsematrixEPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %23, ptr noundef nonnull %12, ptr noundef nonnull %19, ptr noundef nonnull %16, ptr noundef %0)
  store i64 0, ptr %6, align 8, !tbaa !9
  %.not8701427 = icmp slt i64 %1481, 0
  br i1 %.not8701427, label %._crit_edge1432, label %.lr.ph1431

.lr.ph1431:                                       ; preds = %1493
  %1494 = load ptr, ptr %28, align 8
  %1495 = add nuw i64 %1481, 1
  %xtraiter1618 = and i64 %1495, 3
  %1496 = icmp ult i64 %1481, 3
  br i1 %1496, label %._crit_edge1432.loopexit.unr-lcssa, label %.lr.ph1431.new

.lr.ph1431.new:                                   ; preds = %.lr.ph1431
  %unroll_iter1622 = and i64 %1495, -4
  br label %1497

1497:                                             ; preds = %1523, %.lr.ph1431.new
  %.11429 = phi i1 [ true, %.lr.ph1431.new ], [ %1524, %1523 ]
  %storemerge8691428 = phi i64 [ 0, %.lr.ph1431.new ], [ %1525, %1523 ]
  %niter1623 = phi i64 [ 0, %.lr.ph1431.new ], [ %niter1623.next.3, %1523 ]
  br i1 %.11429, label %1498, label %1502

1498:                                             ; preds = %1497
  %1499 = getelementptr inbounds i64, ptr %1494, i64 %storemerge8691428
  %1500 = load i64, ptr %1499, align 8, !tbaa !9
  %1501 = icmp eq i64 %1500, %storemerge8691428
  br label %1502

1502:                                             ; preds = %1498, %1497
  %1503 = phi i1 [ false, %1497 ], [ %1501, %1498 ]
  %1504 = or disjoint i64 %storemerge8691428, 1
  store i64 %1504, ptr %6, align 8, !tbaa !9
  br i1 %1503, label %1505, label %1509

1505:                                             ; preds = %1502
  %1506 = getelementptr inbounds i64, ptr %1494, i64 %1504
  %1507 = load i64, ptr %1506, align 8, !tbaa !9
  %1508 = icmp eq i64 %1507, %1504
  br label %1509

1509:                                             ; preds = %1505, %1502
  %1510 = phi i1 [ false, %1502 ], [ %1508, %1505 ]
  %1511 = or disjoint i64 %storemerge8691428, 2
  store i64 %1511, ptr %6, align 8, !tbaa !9
  br i1 %1510, label %1512, label %1516

1512:                                             ; preds = %1509
  %1513 = getelementptr inbounds i64, ptr %1494, i64 %1511
  %1514 = load i64, ptr %1513, align 8, !tbaa !9
  %1515 = icmp eq i64 %1514, %1511
  br label %1516

1516:                                             ; preds = %1512, %1509
  %1517 = phi i1 [ false, %1509 ], [ %1515, %1512 ]
  %1518 = or disjoint i64 %storemerge8691428, 3
  store i64 %1518, ptr %6, align 8, !tbaa !9
  br i1 %1517, label %1519, label %1523

1519:                                             ; preds = %1516
  %1520 = getelementptr inbounds i64, ptr %1494, i64 %1518
  %1521 = load i64, ptr %1520, align 8, !tbaa !9
  %1522 = icmp eq i64 %1521, %1518
  br label %1523

1523:                                             ; preds = %1519, %1516
  %1524 = phi i1 [ false, %1516 ], [ %1522, %1519 ]
  %1525 = add nuw i64 %storemerge8691428, 4
  store i64 %1525, ptr %6, align 8, !tbaa !9
  %niter1623.next.3 = add i64 %niter1623, 4
  %niter1623.ncmp.3 = icmp eq i64 %niter1623.next.3, %unroll_iter1622
  br i1 %niter1623.ncmp.3, label %._crit_edge1432.loopexit.unr-lcssa, label %1497, !llvm.loop !140

._crit_edge1432.loopexit.unr-lcssa:               ; preds = %1523, %.lr.ph1431
  %.lcssa1574.ph = phi i1 [ poison, %.lr.ph1431 ], [ %1524, %1523 ]
  %.11429.unr = phi i1 [ true, %.lr.ph1431 ], [ %1524, %1523 ]
  %storemerge8691428.unr = phi i64 [ 0, %.lr.ph1431 ], [ %1525, %1523 ]
  %lcmp.mod1620.not = icmp eq i64 %xtraiter1618, 0
  br i1 %lcmp.mod1620.not, label %._crit_edge1432, label %.epil.preheader1617

.epil.preheader1617:                              ; preds = %._crit_edge1432.loopexit.unr-lcssa, %1530
  %.11429.epil = phi i1 [ %1531, %1530 ], [ %.11429.unr, %._crit_edge1432.loopexit.unr-lcssa ]
  %storemerge8691428.epil = phi i64 [ %1532, %1530 ], [ %storemerge8691428.unr, %._crit_edge1432.loopexit.unr-lcssa ]
  %epil.iter1619 = phi i64 [ %epil.iter1619.next, %1530 ], [ 0, %._crit_edge1432.loopexit.unr-lcssa ]
  br i1 %.11429.epil, label %1526, label %1530

1526:                                             ; preds = %.epil.preheader1617
  %1527 = getelementptr inbounds i64, ptr %1494, i64 %storemerge8691428.epil
  %1528 = load i64, ptr %1527, align 8, !tbaa !9
  %1529 = icmp eq i64 %1528, %storemerge8691428.epil
  br label %1530

1530:                                             ; preds = %1526, %.epil.preheader1617
  %1531 = phi i1 [ false, %.epil.preheader1617 ], [ %1529, %1526 ]
  %1532 = add nuw i64 %storemerge8691428.epil, 1
  store i64 %1532, ptr %6, align 8, !tbaa !9
  %epil.iter1619.next = add i64 %epil.iter1619, 1
  %epil.iter1619.cmp.not = icmp eq i64 %epil.iter1619.next, %xtraiter1618
  br i1 %epil.iter1619.cmp.not, label %._crit_edge1432, label %.epil.preheader1617, !llvm.loop !141

._crit_edge1432:                                  ; preds = %._crit_edge1432.loopexit.unr-lcssa, %1530, %1493
  %.1.lcssa = phi i1 [ true, %1493 ], [ %.lcssa1574.ph, %._crit_edge1432.loopexit.unr-lcssa ], [ %1531, %1530 ]
  %1533 = xor i1 %.1.lcssa, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %26, i1 noundef zeroext %1533, ptr noundef nonnull @.str.19, i32 noundef 25649, ptr noundef nonnull @.str.420)
  %1534 = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %1535 = trunc nuw i8 %1534 to i1
  br i1 %1535, label %.loopexit, label %1429, !llvm.loop !142

.loopexit:                                        ; preds = %._crit_edge1237, %225, %203, %._crit_edge1258, %493, %471, %726, %696, %._crit_edge1354, %._crit_edge1351, %1036, %1429, %._crit_edge1432, %1475, %1492, %1489, %1454, %1451, %1409, %1406, %1403, %1400, %1315, %1244, %1028, %1025, %884, %881, %878, %688, %680, %463, %460, %457, %454, %189, %186, %183, %180, %177, %138, %127
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %0)
  %.0.in = load i8, ptr %26, align 1, !tbaa !5, !range !33, !noundef !34
  %.0 = trunc nuw i8 %.0.in to i1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 15064, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 16560, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 496, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #5
  ret i1 %.0
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef i64 @_ZN11alglib_impl22spsymmgetmaxfastkernelEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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 = !{!"long", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"double", !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.unroll.disable"}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = !{!30, !10, i64 0}
!30 = !{!"_ZTSN11alglib_impl9ae_vectorE", !10, i64 0, !10, i64 8, !6, i64 16, !31, i64 24, !7, i64 56}
!31 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!32 = distinct !{!32, !17}
!33 = !{i8 0, i8 2}
!34 = !{}
!35 = distinct !{!35, !17}
!36 = distinct !{!36, !17}
!37 = distinct !{!37, !17}
!38 = distinct !{!38, !17}
!39 = distinct !{!39, !17}
!40 = distinct !{!40, !17}
!41 = distinct !{!41, !17}
!42 = distinct !{!42, !17}
!43 = distinct !{!43, !17}
!44 = distinct !{!44, !17}
!45 = distinct !{!45, !17}
!46 = distinct !{!46, !17}
!47 = distinct !{!47, !17}
!48 = distinct !{!48, !17}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = distinct !{!51, !17}
!52 = distinct !{!52, !17}
!53 = distinct !{!53, !17}
!54 = distinct !{!54, !17}
!55 = distinct !{!55, !17}
!56 = distinct !{!56, !17}
!57 = distinct !{!57, !17}
!58 = distinct !{!58, !17}
!59 = distinct !{!59, !17}
!60 = distinct !{!60, !17}
!61 = distinct !{!61, !17}
!62 = distinct !{!62, !17}
!63 = distinct !{!63, !17}
!64 = distinct !{!64, !17}
!65 = distinct !{!65, !17}
!66 = distinct !{!66, !17}
!67 = distinct !{!67, !17}
!68 = distinct !{!68, !17}
!69 = distinct !{!69, !17}
!70 = distinct !{!70, !17}
!71 = distinct !{!71, !17}
!72 = distinct !{!72, !17}
!73 = distinct !{!73, !17}
!74 = distinct !{!74, !17}
!75 = distinct !{!75, !17}
!76 = distinct !{!76, !17}
!77 = distinct !{!77, !17}
!78 = distinct !{!78, !17}
!79 = distinct !{!79, !17}
!80 = distinct !{!80, !17}
!81 = distinct !{!81, !17}
!82 = distinct !{!82, !17}
!83 = distinct !{!83, !17}
!84 = distinct !{!84, !17}
!85 = distinct !{!85, !17}
!86 = distinct !{!86, !17}
!87 = distinct !{!87, !17}
!88 = distinct !{!88, !17}
!89 = distinct !{!89, !17}
!90 = distinct !{!90, !17}
!91 = distinct !{!91, !17}
!92 = distinct !{!92, !17}
!93 = distinct !{!93, !17}
!94 = distinct !{!94, !17}
!95 = distinct !{!95, !17}
!96 = distinct !{!96, !17}
!97 = distinct !{!97, !17}
!98 = distinct !{!98, !17}
!99 = distinct !{!99, !17}
!100 = distinct !{!100, !17}
!101 = distinct !{!101, !17}
!102 = distinct !{!102, !17}
!103 = distinct !{!103, !17}
!104 = distinct !{!104, !17}
!105 = distinct !{!105, !17}
!106 = distinct !{!106, !17}
!107 = distinct !{!107, !17}
!108 = distinct !{!108, !17}
!109 = distinct !{!109, !17}
!110 = distinct !{!110, !17}
!111 = distinct !{!111, !17}
!112 = distinct !{!112, !17}
!113 = distinct !{!113, !17}
!114 = distinct !{!114, !17}
!115 = distinct !{!115, !17}
!116 = distinct !{!116, !17}
!117 = distinct !{!117, !17}
!118 = distinct !{!118, !17}
!119 = distinct !{!119, !17}
!120 = distinct !{!120, !17}
!121 = distinct !{!121, !17}
!122 = distinct !{!122, !17}
!123 = distinct !{!123, !17}
!124 = distinct !{!124, !17}
!125 = distinct !{!125, !17}
!126 = distinct !{!126, !17}
!127 = distinct !{!127, !17}
!128 = distinct !{!128, !17}
!129 = distinct !{!129, !17}
!130 = distinct !{!130, !17}
!131 = distinct !{!131, !17}
!132 = distinct !{!132, !17}
!133 = distinct !{!133, !17}
!134 = distinct !{!134, !17}
!135 = distinct !{!135, !17}
!136 = distinct !{!136, !17}
!137 = distinct !{!137, !17}
!138 = distinct !{!138, !17}
!139 = distinct !{!139, !17}
!140 = distinct !{!140, !17}
!141 = distinct !{!141, !26}
!142 = distinct !{!142, !17}


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