; LLVM IR from venumb/ZSPACE :: cpp/depends/alglib/cpp/tests/test_c.ll (Z9testotherPbPN11alglib_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_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { 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::mincgstate" = type { i64, double, double, double, i64, double, double, i8, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, double, %"struct.alglib_impl::ae_vector", double, double, i64, i8, i8, double, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, i8, i8, %"struct.alglib_impl::rcommstate", i64, i64, i64, i64, %"struct.alglib_impl::linminstate", double, double, double, double, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::linminstate" = type { i8, i8, i64, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"struct.alglib_impl::smoothnessmonitor" = type { i64, i64, i8, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, i8, double, double, i8, %"struct.alglib_impl::optguardreport", double, double, %"struct.alglib_impl::optguardnonc1test0report", %"struct.alglib_impl::optguardnonc1test0report", double, double, %"struct.alglib_impl::optguardnonc1test1report", %"struct.alglib_impl::optguardnonc1test1report", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardreport" = type { i8, i8, i64, double, i8, i8, i8, i64, double, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardnonc1test0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test1report" = type { i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::mincgreport" = type { i64, i64, i64 }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }
%"struct.alglib_impl::ae_state" = type { i64, double, double, double, ptr, %"struct.alglib_impl::ae_dyn_block", ptr, i32, ptr, i64, ptr, ptr, ptr }

@.str.8 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.463 = 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

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

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

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

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #1

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

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

declare noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef) #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

66:                                               ; preds = %1132, %2
  %67 = load i64, ptr %24, align 8, !tbaa !9
  %68 = icmp sle i64 %67, 1
  br i1 %68, label %69, label %1135

69:                                               ; preds = %66
  store i64 50, ptr %6, align 8, !tbaa !9
  %70 = load i64, ptr %6, align 8, !tbaa !9
  %71 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef %70, ptr noundef %71)
  %72 = load i64, ptr %6, align 8, !tbaa !9
  %73 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %14, i64 noundef %72, ptr noundef %73)
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %74

74:                                               ; preds = %84, %69
  %75 = load i64, ptr %19, align 8, !tbaa !9
  %76 = load i64, ptr %6, align 8, !tbaa !9
  %77 = sub nsw i64 %76, 1
  %78 = icmp sle i64 %75, %77
  br i1 %78, label %79, label %87

79:                                               ; preds = %74
  %80 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %81 = load ptr, ptr %80, align 8, !tbaa !11
  %82 = load i64, ptr %19, align 8, !tbaa !9
  %83 = getelementptr inbounds double, ptr %81, i64 %82
  store double 1.000000e+00, ptr %83, align 8, !tbaa !12
  br label %84

84:                                               ; preds = %79
  %85 = load i64, ptr %19, align 8, !tbaa !9
  %86 = add nsw i64 %85, 1
  store i64 %86, ptr %19, align 8, !tbaa !9
  br label %74, !llvm.loop !14

87:                                               ; preds = %74
  %88 = load i64, ptr %6, align 8, !tbaa !9
  %89 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %88, ptr noundef %7, ptr noundef %22, ptr noundef %89)
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 100, ptr noundef %90)
  %91 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext true, ptr noundef %91)
  store double 1.000000e+300, ptr %16, align 8, !tbaa !12
  br label %92

92:                                               ; preds = %206, %87
  %93 = load ptr, ptr %4, align 8, !tbaa !5
  %94 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %93)
  br i1 %94, label %95, label %207

95:                                               ; preds = %92
  %96 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %97 = load i8, ptr %96, align 1, !tbaa !16, !range !29, !noundef !30
  %98 = trunc i8 %97 to i1
  br i1 %98, label %99, label %143

99:                                               ; preds = %95
  %100 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double 0.000000e+00, ptr %100, align 8, !tbaa !31
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %101

101:                                              ; preds = %139, %99
  %102 = load i64, ptr %19, align 8, !tbaa !9
  %103 = load i64, ptr %6, align 8, !tbaa !9
  %104 = sub nsw i64 %103, 1
  %105 = icmp sle i64 %102, %104
  br i1 %105, label %106, label %142

106:                                              ; preds = %101
  %107 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %108 = load double, ptr %107, align 8, !tbaa !31
  %109 = load i64, ptr %19, align 8, !tbaa !9
  %110 = add nsw i64 1, %109
  %111 = sitofp i64 %110 to double
  %112 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %113 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %112, i32 0, i32 4
  %114 = load ptr, ptr %113, align 8, !tbaa !11
  %115 = load i64, ptr %19, align 8, !tbaa !9
  %116 = getelementptr inbounds double, ptr %114, i64 %115
  %117 = load double, ptr %116, align 8, !tbaa !12
  %118 = fmul double %111, %117
  %119 = load ptr, ptr %4, align 8, !tbaa !5
  %120 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %118, ptr noundef %119)
  %121 = fadd double %108, %120
  %122 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %121, ptr %122, align 8, !tbaa !31
  %123 = load i64, ptr %19, align 8, !tbaa !9
  %124 = add nsw i64 1, %123
  %125 = mul nsw i64 2, %124
  %126 = sitofp i64 %125 to double
  %127 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %128 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %127, i32 0, i32 4
  %129 = load ptr, ptr %128, align 8, !tbaa !11
  %130 = load i64, ptr %19, align 8, !tbaa !9
  %131 = getelementptr inbounds double, ptr %129, i64 %130
  %132 = load double, ptr %131, align 8, !tbaa !12
  %133 = fmul double %126, %132
  %134 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %135 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %134, i32 0, i32 4
  %136 = load ptr, ptr %135, align 8, !tbaa !11
  %137 = load i64, ptr %19, align 8, !tbaa !9
  %138 = getelementptr inbounds double, ptr %136, i64 %137
  store double %133, ptr %138, align 8, !tbaa !12
  br label %139

139:                                              ; preds = %106
  %140 = load i64, ptr %19, align 8, !tbaa !9
  %141 = add nsw i64 %140, 1
  store i64 %141, ptr %19, align 8, !tbaa !9
  br label %101, !llvm.loop !32

142:                                              ; preds = %101
  br label %143

143:                                              ; preds = %142, %95
  %144 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 42
  %145 = load i8, ptr %144, align 2, !tbaa !33, !range !29, !noundef !30
  %146 = trunc i8 %145 to i1
  br i1 %146, label %147, label %206

147:                                              ; preds = %143
  %148 = load ptr, ptr %3, align 8, !tbaa !5
  %149 = load i8, ptr %148, align 1, !tbaa !34, !range !29, !noundef !30
  %150 = trunc i8 %149 to i1
  br i1 %150, label %156, label %151

151:                                              ; preds = %147
  %152 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %153 = load double, ptr %152, align 8, !tbaa !31
  %154 = load double, ptr %16, align 8, !tbaa !12
  %155 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %153, double noundef %154)
  br label %156

156:                                              ; preds = %151, %147
  %157 = phi i1 [ true, %147 ], [ %155, %151 ]
  %158 = load ptr, ptr %3, align 8, !tbaa !5
  %159 = zext i1 %157 to i8
  store i8 %159, ptr %158, align 1, !tbaa !34
  %160 = load double, ptr %16, align 8, !tbaa !12
  %161 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %160, double noundef 1.000000e+300)
  br i1 %161, label %162, label %193

162:                                              ; preds = %156
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %163

163:                                              ; preds = %189, %162
  %164 = load i64, ptr %19, align 8, !tbaa !9
  %165 = load i64, ptr %6, align 8, !tbaa !9
  %166 = sub nsw i64 %165, 1
  %167 = icmp sle i64 %164, %166
  br i1 %167, label %168, label %192

168:                                              ; preds = %163
  %169 = load ptr, ptr %3, align 8, !tbaa !5
  %170 = load i8, ptr %169, align 1, !tbaa !34, !range !29, !noundef !30
  %171 = trunc i8 %170 to i1
  br i1 %171, label %185, label %172

172:                                              ; preds = %168
  %173 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %174 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %173, i32 0, i32 4
  %175 = load ptr, ptr %174, align 8, !tbaa !11
  %176 = load i64, ptr %19, align 8, !tbaa !9
  %177 = getelementptr inbounds double, ptr %175, i64 %176
  %178 = load double, ptr %177, align 8, !tbaa !12
  %179 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %180 = load ptr, ptr %179, align 8, !tbaa !11
  %181 = load i64, ptr %19, align 8, !tbaa !9
  %182 = getelementptr inbounds double, ptr %180, i64 %181
  %183 = load double, ptr %182, align 8, !tbaa !12
  %184 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %178, double noundef %183)
  br label %185

185:                                              ; preds = %172, %168
  %186 = phi i1 [ true, %168 ], [ %184, %172 ]
  %187 = load ptr, ptr %3, align 8, !tbaa !5
  %188 = zext i1 %186 to i8
  store i8 %188, ptr %187, align 1, !tbaa !34
  br label %189

189:                                              ; preds = %185
  %190 = load i64, ptr %19, align 8, !tbaa !9
  %191 = add nsw i64 %190, 1
  store i64 %191, ptr %19, align 8, !tbaa !9
  br label %163, !llvm.loop !35

192:                                              ; preds = %163
  br label %193

193:                                              ; preds = %192, %156
  %194 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %195 = load double, ptr %194, align 8, !tbaa !31
  store double %195, ptr %16, align 8, !tbaa !12
  %196 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %14, i32 0, i32 4
  %197 = load ptr, ptr %196, align 8, !tbaa !11
  %198 = getelementptr inbounds double, ptr %197, i64 0
  %199 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %200 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %199, i32 0, i32 4
  %201 = load ptr, ptr %200, align 8, !tbaa !11
  %202 = getelementptr inbounds double, ptr %201, i64 0
  %203 = load i64, ptr %6, align 8, !tbaa !9
  %204 = sub nsw i64 %203, 1
  %205 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %204)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %198, i64 noundef 1, ptr noundef %202, i64 noundef 1, i64 noundef %205)
  br label %206

206:                                              ; preds = %193, %143
  br label %92, !llvm.loop !36

207:                                              ; preds = %92
  %208 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %23, ptr noundef %208)
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %209

209:                                              ; preds = %234, %207
  %210 = load i64, ptr %19, align 8, !tbaa !9
  %211 = load i64, ptr %6, align 8, !tbaa !9
  %212 = sub nsw i64 %211, 1
  %213 = icmp sle i64 %210, %212
  br i1 %213, label %214, label %237

214:                                              ; preds = %209
  %215 = load ptr, ptr %3, align 8, !tbaa !5
  %216 = load i8, ptr %215, align 1, !tbaa !34, !range !29, !noundef !30
  %217 = trunc i8 %216 to i1
  br i1 %217, label %230, label %218

218:                                              ; preds = %214
  %219 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %220 = load ptr, ptr %219, align 8, !tbaa !11
  %221 = load i64, ptr %19, align 8, !tbaa !9
  %222 = getelementptr inbounds double, ptr %220, i64 %221
  %223 = load double, ptr %222, align 8, !tbaa !12
  %224 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %14, i32 0, i32 4
  %225 = load ptr, ptr %224, align 8, !tbaa !11
  %226 = load i64, ptr %19, align 8, !tbaa !9
  %227 = getelementptr inbounds double, ptr %225, i64 %226
  %228 = load double, ptr %227, align 8, !tbaa !12
  %229 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %223, double noundef %228)
  br label %230

230:                                              ; preds = %218, %214
  %231 = phi i1 [ true, %214 ], [ %229, %218 ]
  %232 = load ptr, ptr %3, align 8, !tbaa !5
  %233 = zext i1 %231 to i8
  store i8 %233, ptr %232, align 1, !tbaa !34
  br label %234

234:                                              ; preds = %230
  %235 = load i64, ptr %19, align 8, !tbaa !9
  %236 = add nsw i64 %235, 1
  store i64 %236, ptr %19, align 8, !tbaa !9
  br label %209, !llvm.loop !37

237:                                              ; preds = %209
  store i64 50, ptr %6, align 8, !tbaa !9
  store double 0x3EB0C6F7A0B5ED8D, ptr %35, align 8, !tbaa !12
  store i64 0, ptr %34, align 8, !tbaa !9
  br label %238

238:                                              ; preds = %401, %237
  %239 = load i64, ptr %34, align 8, !tbaa !9
  %240 = icmp sle i64 %239, 1
  br i1 %240, label %241, label %404

241:                                              ; preds = %238
  %242 = load i64, ptr %6, align 8, !tbaa !9
  %243 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef %242, ptr noundef %243)
  %244 = load i64, ptr %6, align 8, !tbaa !9
  %245 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %14, i64 noundef %244, ptr noundef %245)
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %246

246:                                              ; preds = %256, %241
  %247 = load i64, ptr %19, align 8, !tbaa !9
  %248 = load i64, ptr %6, align 8, !tbaa !9
  %249 = sub nsw i64 %248, 1
  %250 = icmp sle i64 %247, %249
  br i1 %250, label %251, label %259

251:                                              ; preds = %246
  %252 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %253 = load ptr, ptr %252, align 8, !tbaa !11
  %254 = load i64, ptr %19, align 8, !tbaa !9
  %255 = getelementptr inbounds double, ptr %253, i64 %254
  store double 1.000000e+00, ptr %255, align 8, !tbaa !12
  br label %256

256:                                              ; preds = %251
  %257 = load i64, ptr %19, align 8, !tbaa !9
  %258 = add nsw i64 %257, 1
  store i64 %258, ptr %19, align 8, !tbaa !9
  br label %246, !llvm.loop !38

259:                                              ; preds = %246
  %260 = load i64, ptr %34, align 8, !tbaa !9
  %261 = icmp eq i64 %260, 0
  br i1 %261, label %262, label %265

262:                                              ; preds = %259
  %263 = load i64, ptr %6, align 8, !tbaa !9
  %264 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %263, ptr noundef %7, ptr noundef %22, ptr noundef %264)
  br label %265

265:                                              ; preds = %262, %259
  %266 = load i64, ptr %34, align 8, !tbaa !9
  %267 = icmp eq i64 %266, 1
  br i1 %267, label %268, label %272

268:                                              ; preds = %265
  %269 = load i64, ptr %6, align 8, !tbaa !9
  %270 = load double, ptr %35, align 8, !tbaa !12
  %271 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgcreatefElPNS_9ae_vectorEdPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %269, ptr noundef %7, double noundef %270, ptr noundef %22, ptr noundef %271)
  br label %272

272:                                              ; preds = %268, %265
  %273 = load i64, ptr %6, align 8, !tbaa !9
  %274 = sdiv i64 %273, 2
  %275 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef %274, ptr noundef %275)
  store i8 0, ptr %38, align 1, !tbaa !34
  store i8 0, ptr %39, align 1, !tbaa !34
  br label %276

276:                                              ; preds = %361, %272
  %277 = load ptr, ptr %4, align 8, !tbaa !5
  %278 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %277)
  br i1 %278, label %279, label %364

279:                                              ; preds = %276
  %280 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 40
  %281 = load i8, ptr %280, align 8, !tbaa !39, !range !29, !noundef !30
  %282 = trunc i8 %281 to i1
  br i1 %282, label %287, label %283

283:                                              ; preds = %279
  %284 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %285 = load i8, ptr %284, align 1, !tbaa !16, !range !29, !noundef !30
  %286 = trunc i8 %285 to i1
  br i1 %286, label %287, label %289

287:                                              ; preds = %283, %279
  %288 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double 0.000000e+00, ptr %288, align 8, !tbaa !31
  br label %289

289:                                              ; preds = %287, %283
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %290

290:                                              ; preds = %342, %289
  %291 = load i64, ptr %19, align 8, !tbaa !9
  %292 = load i64, ptr %6, align 8, !tbaa !9
  %293 = sub nsw i64 %292, 1
  %294 = icmp sle i64 %291, %293
  br i1 %294, label %295, label %345

295:                                              ; preds = %290
  %296 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 40
  %297 = load i8, ptr %296, align 8, !tbaa !39, !range !29, !noundef !30
  %298 = trunc i8 %297 to i1
  br i1 %298, label %303, label %299

299:                                              ; preds = %295
  %300 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %301 = load i8, ptr %300, align 1, !tbaa !16, !range !29, !noundef !30
  %302 = trunc i8 %301 to i1
  br i1 %302, label %303, label %320

303:                                              ; preds = %299, %295
  %304 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %305 = load double, ptr %304, align 8, !tbaa !31
  %306 = load i64, ptr %19, align 8, !tbaa !9
  %307 = add nsw i64 1, %306
  %308 = sitofp i64 %307 to double
  %309 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %310 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %309, i32 0, i32 4
  %311 = load ptr, ptr %310, align 8, !tbaa !11
  %312 = load i64, ptr %19, align 8, !tbaa !9
  %313 = getelementptr inbounds double, ptr %311, i64 %312
  %314 = load double, ptr %313, align 8, !tbaa !12
  %315 = fmul double %308, %314
  %316 = load ptr, ptr %4, align 8, !tbaa !5
  %317 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %315, ptr noundef %316)
  %318 = fadd double %305, %317
  %319 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %318, ptr %319, align 8, !tbaa !31
  br label %320

320:                                              ; preds = %303, %299
  %321 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %322 = load i8, ptr %321, align 1, !tbaa !16, !range !29, !noundef !30
  %323 = trunc i8 %322 to i1
  br i1 %323, label %324, label %341

324:                                              ; preds = %320
  %325 = load i64, ptr %19, align 8, !tbaa !9
  %326 = add nsw i64 1, %325
  %327 = mul nsw i64 2, %326
  %328 = sitofp i64 %327 to double
  %329 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %330 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %329, i32 0, i32 4
  %331 = load ptr, ptr %330, align 8, !tbaa !11
  %332 = load i64, ptr %19, align 8, !tbaa !9
  %333 = getelementptr inbounds double, ptr %331, i64 %332
  %334 = load double, ptr %333, align 8, !tbaa !12
  %335 = fmul double %328, %334
  %336 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %337 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %336, i32 0, i32 4
  %338 = load ptr, ptr %337, align 8, !tbaa !11
  %339 = load i64, ptr %19, align 8, !tbaa !9
  %340 = getelementptr inbounds double, ptr %338, i64 %339
  store double %335, ptr %340, align 8, !tbaa !12
  br label %341

341:                                              ; preds = %324, %320
  br label %342

342:                                              ; preds = %341
  %343 = load i64, ptr %19, align 8, !tbaa !9
  %344 = add nsw i64 %343, 1
  store i64 %344, ptr %19, align 8, !tbaa !9
  br label %290, !llvm.loop !40

345:                                              ; preds = %290
  %346 = load i8, ptr %38, align 1, !tbaa !34, !range !29, !noundef !30
  %347 = trunc i8 %346 to i1
  br i1 %347, label %352, label %348

348:                                              ; preds = %345
  %349 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 40
  %350 = load i8, ptr %349, align 8, !tbaa !39, !range !29, !noundef !30
  %351 = trunc i8 %350 to i1
  br label %352

352:                                              ; preds = %348, %345
  %353 = phi i1 [ true, %345 ], [ %351, %348 ]
  %354 = zext i1 %353 to i8
  store i8 %354, ptr %38, align 1, !tbaa !34
  %355 = load i8, ptr %39, align 1, !tbaa !34, !range !29, !noundef !30
  %356 = trunc i8 %355 to i1
  br i1 %356, label %361, label %357

357:                                              ; preds = %352
  %358 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %359 = load i8, ptr %358, align 1, !tbaa !16, !range !29, !noundef !30
  %360 = trunc i8 %359 to i1
  br label %361

361:                                              ; preds = %357, %352
  %362 = phi i1 [ true, %352 ], [ %360, %357 ]
  %363 = zext i1 %362 to i8
  store i8 %363, ptr %39, align 1, !tbaa !34
  br label %276, !llvm.loop !41

364:                                              ; preds = %276
  %365 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %23, ptr noundef %365)
  %366 = load i64, ptr %34, align 8, !tbaa !9
  %367 = icmp eq i64 %366, 0
  br i1 %367, label %368, label %383

368:                                              ; preds = %364
  %369 = load ptr, ptr %3, align 8, !tbaa !5
  %370 = load i8, ptr %369, align 1, !tbaa !34, !range !29, !noundef !30
  %371 = trunc i8 %370 to i1
  br i1 %371, label %379, label %372

372:                                              ; preds = %368
  %373 = load i8, ptr %38, align 1, !tbaa !34, !range !29, !noundef !30
  %374 = trunc i8 %373 to i1
  br i1 %374, label %379, label %375

375:                                              ; preds = %372
  %376 = load i8, ptr %39, align 1, !tbaa !34, !range !29, !noundef !30
  %377 = trunc i8 %376 to i1
  %378 = xor i1 %377, true
  br label %379

379:                                              ; preds = %375, %372, %368
  %380 = phi i1 [ true, %372 ], [ true, %368 ], [ %378, %375 ]
  %381 = load ptr, ptr %3, align 8, !tbaa !5
  %382 = zext i1 %380 to i8
  store i8 %382, ptr %381, align 1, !tbaa !34
  br label %383

383:                                              ; preds = %379, %364
  %384 = load i64, ptr %34, align 8, !tbaa !9
  %385 = icmp eq i64 %384, 1
  br i1 %385, label %386, label %400

386:                                              ; preds = %383
  %387 = load ptr, ptr %3, align 8, !tbaa !5
  %388 = load i8, ptr %387, align 1, !tbaa !34, !range !29, !noundef !30
  %389 = trunc i8 %388 to i1
  br i1 %389, label %396, label %390

390:                                              ; preds = %386
  %391 = load i8, ptr %38, align 1, !tbaa !34, !range !29, !noundef !30
  %392 = trunc i8 %391 to i1
  br i1 %392, label %393, label %396

393:                                              ; preds = %390
  %394 = load i8, ptr %39, align 1, !tbaa !34, !range !29, !noundef !30
  %395 = trunc i8 %394 to i1
  br label %396

396:                                              ; preds = %393, %390, %386
  %397 = phi i1 [ true, %390 ], [ true, %386 ], [ %395, %393 ]
  %398 = load ptr, ptr %3, align 8, !tbaa !5
  %399 = zext i1 %397 to i8
  store i8 %399, ptr %398, align 1, !tbaa !34
  br label %400

400:                                              ; preds = %396, %383
  br label %401

401:                                              ; preds = %400
  %402 = load i64, ptr %34, align 8, !tbaa !9
  %403 = add nsw i64 %402, 1
  store i64 %403, ptr %34, align 8, !tbaa !9
  br label %238, !llvm.loop !42

404:                                              ; preds = %238
  %405 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 1, ptr noundef %405)
  %406 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %8, i64 noundef 1, ptr noundef %406)
  %407 = load ptr, ptr %4, align 8, !tbaa !5
  %408 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %407)
  %409 = fmul double %408, 0x3EB0C6F7A0B5ED8D
  store double %409, ptr %35, align 8, !tbaa !12
  %410 = load ptr, ptr %4, align 8, !tbaa !5
  %411 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %410)
  %412 = call double @llvm.fmuladd.f64(double %411, double 4.000000e+00, double -2.000000e+00)
  %413 = load ptr, ptr %4, align 8, !tbaa !5
  %414 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %412, ptr noundef %413)
  %415 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %416 = load ptr, ptr %415, align 8, !tbaa !11
  %417 = getelementptr inbounds double, ptr %416, i64 0
  store double %414, ptr %417, align 8, !tbaa !12
  %418 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %419 = load ptr, ptr %418, align 8, !tbaa !11
  %420 = getelementptr inbounds double, ptr %419, i64 0
  store double 0.000000e+00, ptr %420, align 8, !tbaa !12
  %421 = load double, ptr %35, align 8, !tbaa !12
  %422 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgcreatefElPNS_9ae_vectorEdPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 1, ptr noundef %7, double noundef %421, ptr noundef %22, ptr noundef %422)
  %423 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef 0x3EB0C6F7A0B5ED8D, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %423)
  %424 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl13mincgsetscaleEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %22, ptr noundef %8, ptr noundef %424)
  store double 0.000000e+00, ptr %27, align 8, !tbaa !12
  br label %425

425:                                              ; preds = %428, %404
  %426 = load ptr, ptr %4, align 8, !tbaa !5
  %427 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %426)
  br i1 %427, label %428, label %447

428:                                              ; preds = %425
  %429 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %430 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %429, i32 0, i32 4
  %431 = load ptr, ptr %430, align 8, !tbaa !11
  %432 = getelementptr inbounds double, ptr %431, i64 0
  %433 = load double, ptr %432, align 8, !tbaa !12
  %434 = load ptr, ptr %4, align 8, !tbaa !5
  %435 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %433, ptr noundef %434)
  %436 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %435, ptr %436, align 8, !tbaa !31
  %437 = load double, ptr %27, align 8, !tbaa !12
  %438 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %439 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %438, i32 0, i32 4
  %440 = load ptr, ptr %439, align 8, !tbaa !11
  %441 = getelementptr inbounds double, ptr %440, i64 0
  %442 = load double, ptr %441, align 8, !tbaa !12
  %443 = load ptr, ptr %4, align 8, !tbaa !5
  %444 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %442, ptr noundef %443)
  %445 = load ptr, ptr %4, align 8, !tbaa !5
  %446 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %437, double noundef %444, ptr noundef %445)
  store double %446, ptr %27, align 8, !tbaa !12
  br label %425, !llvm.loop !43

447:                                              ; preds = %425
  %448 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %23, ptr noundef %448)
  %449 = load double, ptr %27, align 8, !tbaa !12
  %450 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %451 = load ptr, ptr %450, align 8, !tbaa !11
  %452 = getelementptr inbounds double, ptr %451, i64 0
  %453 = load double, ptr %452, align 8, !tbaa !12
  %454 = load double, ptr %35, align 8, !tbaa !12
  %455 = fmul double %453, %454
  %456 = fdiv double %449, %455
  store double %456, ptr %28, align 8, !tbaa !12
  %457 = load ptr, ptr %3, align 8, !tbaa !5
  %458 = load i8, ptr %457, align 1, !tbaa !34, !range !29, !noundef !30
  %459 = trunc i8 %458 to i1
  br i1 %459, label %469, label %460

460:                                              ; preds = %447
  %461 = load double, ptr %28, align 8, !tbaa !12
  %462 = load ptr, ptr %4, align 8, !tbaa !5
  %463 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %461, ptr noundef %462)
  %464 = load ptr, ptr %4, align 8, !tbaa !5
  %465 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %463, ptr noundef %464)
  %466 = load ptr, ptr %4, align 8, !tbaa !5
  %467 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 0x3FF00000000008CC, ptr noundef %466)
  %468 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %465, double noundef %467)
  br label %469

469:                                              ; preds = %460, %447
  %470 = phi i1 [ true, %447 ], [ %468, %460 ]
  %471 = load ptr, ptr %3, align 8, !tbaa !5
  %472 = zext i1 %470 to i8
  store i8 %472, ptr %471, align 1, !tbaa !34
  store i64 1, ptr %6, align 8, !tbaa !9
  %473 = load i64, ptr %6, align 8, !tbaa !9
  %474 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef %473, ptr noundef %474)
  %475 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %476 = load ptr, ptr %475, align 8, !tbaa !11
  %477 = getelementptr inbounds double, ptr %476, i64 0
  store double 1.000000e+02, ptr %477, align 8, !tbaa !12
  %478 = load ptr, ptr %4, align 8, !tbaa !5
  %479 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %478)
  %480 = call double @llvm.fmuladd.f64(double 5.000000e-02, double %479, double 5.000000e-02)
  store double %480, ptr %18, align 8, !tbaa !12
  %481 = load i64, ptr %6, align 8, !tbaa !9
  %482 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %481, ptr noundef %7, ptr noundef %22, ptr noundef %482)
  %483 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef 1.000000e-09, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %483)
  %484 = load double, ptr %18, align 8, !tbaa !12
  %485 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14mincgsetstpmaxEPNS_10mincgstateEdPNS_8ae_stateE(ptr noundef %22, double noundef %484, ptr noundef %485)
  %486 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext true, ptr noundef %486)
  %487 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %488 = load ptr, ptr %487, align 8, !tbaa !11
  %489 = getelementptr inbounds double, ptr %488, i64 0
  %490 = load double, ptr %489, align 8, !tbaa !12
  store double %490, ptr %17, align 8, !tbaa !12
  br label %491

491:                                              ; preds = %592, %469
  %492 = load ptr, ptr %4, align 8, !tbaa !5
  %493 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %492)
  br i1 %493, label %494, label %593

494:                                              ; preds = %491
  %495 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %496 = load i8, ptr %495, align 1, !tbaa !16, !range !29, !noundef !30
  %497 = trunc i8 %496 to i1
  br i1 %497, label %498, label %559

498:                                              ; preds = %494
  %499 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %500 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %499, i32 0, i32 4
  %501 = load ptr, ptr %500, align 8, !tbaa !11
  %502 = getelementptr inbounds double, ptr %501, i64 0
  %503 = load double, ptr %502, align 8, !tbaa !12
  %504 = load ptr, ptr %4, align 8, !tbaa !5
  %505 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %503, ptr noundef %504)
  %506 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %507 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %506, i32 0, i32 4
  %508 = load ptr, ptr %507, align 8, !tbaa !11
  %509 = getelementptr inbounds double, ptr %508, i64 0
  %510 = load double, ptr %509, align 8, !tbaa !12
  %511 = fneg double %510
  %512 = load ptr, ptr %4, align 8, !tbaa !5
  %513 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %511, ptr noundef %512)
  %514 = fadd double %505, %513
  %515 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %514, ptr %515, align 8, !tbaa !31
  %516 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %517 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %516, i32 0, i32 4
  %518 = load ptr, ptr %517, align 8, !tbaa !11
  %519 = getelementptr inbounds double, ptr %518, i64 0
  %520 = load double, ptr %519, align 8, !tbaa !12
  %521 = load ptr, ptr %4, align 8, !tbaa !5
  %522 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %520, ptr noundef %521)
  %523 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %524 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %523, i32 0, i32 4
  %525 = load ptr, ptr %524, align 8, !tbaa !11
  %526 = getelementptr inbounds double, ptr %525, i64 0
  %527 = load double, ptr %526, align 8, !tbaa !12
  %528 = fneg double %527
  %529 = load ptr, ptr %4, align 8, !tbaa !5
  %530 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %528, ptr noundef %529)
  %531 = fsub double %522, %530
  %532 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %533 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %532, i32 0, i32 4
  %534 = load ptr, ptr %533, align 8, !tbaa !11
  %535 = getelementptr inbounds double, ptr %534, i64 0
  store double %531, ptr %535, align 8, !tbaa !12
  %536 = load ptr, ptr %3, align 8, !tbaa !5
  %537 = load i8, ptr %536, align 1, !tbaa !34, !range !29, !noundef !30
  %538 = trunc i8 %537 to i1
  br i1 %538, label %555, label %539

539:                                              ; preds = %498
  %540 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %541 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %540, i32 0, i32 4
  %542 = load ptr, ptr %541, align 8, !tbaa !11
  %543 = getelementptr inbounds double, ptr %542, i64 0
  %544 = load double, ptr %543, align 8, !tbaa !12
  %545 = load double, ptr %17, align 8, !tbaa !12
  %546 = fsub double %544, %545
  %547 = load ptr, ptr %4, align 8, !tbaa !5
  %548 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %546, ptr noundef %547)
  %549 = load ptr, ptr %4, align 8, !tbaa !5
  %550 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %549)
  %551 = fadd double 1.000000e+00, %550
  %552 = load double, ptr %18, align 8, !tbaa !12
  %553 = fmul double %551, %552
  %554 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %548, double noundef %553)
  br label %555

555:                                              ; preds = %539, %498
  %556 = phi i1 [ true, %498 ], [ %554, %539 ]
  %557 = load ptr, ptr %3, align 8, !tbaa !5
  %558 = zext i1 %556 to i8
  store i8 %558, ptr %557, align 1, !tbaa !34
  br label %559

559:                                              ; preds = %555, %494
  %560 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 42
  %561 = load i8, ptr %560, align 2, !tbaa !33, !range !29, !noundef !30
  %562 = trunc i8 %561 to i1
  br i1 %562, label %563, label %592

563:                                              ; preds = %559
  %564 = load ptr, ptr %3, align 8, !tbaa !5
  %565 = load i8, ptr %564, align 1, !tbaa !34, !range !29, !noundef !30
  %566 = trunc i8 %565 to i1
  br i1 %566, label %583, label %567

567:                                              ; preds = %563
  %568 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %569 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %568, i32 0, i32 4
  %570 = load ptr, ptr %569, align 8, !tbaa !11
  %571 = getelementptr inbounds double, ptr %570, i64 0
  %572 = load double, ptr %571, align 8, !tbaa !12
  %573 = load double, ptr %17, align 8, !tbaa !12
  %574 = fsub double %572, %573
  %575 = load ptr, ptr %4, align 8, !tbaa !5
  %576 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %574, ptr noundef %575)
  %577 = load ptr, ptr %4, align 8, !tbaa !5
  %578 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %577)
  %579 = fadd double 1.000000e+00, %578
  %580 = load double, ptr %18, align 8, !tbaa !12
  %581 = fmul double %579, %580
  %582 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %576, double noundef %581)
  br label %583

583:                                              ; preds = %567, %563
  %584 = phi i1 [ true, %563 ], [ %582, %567 ]
  %585 = load ptr, ptr %3, align 8, !tbaa !5
  %586 = zext i1 %584 to i8
  store i8 %586, ptr %585, align 1, !tbaa !34
  %587 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %588 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %587, i32 0, i32 4
  %589 = load ptr, ptr %588, align 8, !tbaa !11
  %590 = getelementptr inbounds double, ptr %589, i64 0
  %591 = load double, ptr %590, align 8, !tbaa !12
  store double %591, ptr %17, align 8, !tbaa !12
  br label %592

592:                                              ; preds = %583, %559
  br label %491, !llvm.loop !44

593:                                              ; preds = %491
  store double 1.000000e-10, ptr %25, align 8, !tbaa !12
  store i64 1, ptr %6, align 8, !tbaa !9
  br label %594

594:                                              ; preds = %971, %593
  %595 = load i64, ptr %6, align 8, !tbaa !9
  %596 = icmp sle i64 %595, 10
  br i1 %596, label %597, label %974

597:                                              ; preds = %594
  store i64 0, ptr %31, align 8, !tbaa !9
  br label %598

598:                                              ; preds = %967, %597
  %599 = load i64, ptr %31, align 8, !tbaa !9
  %600 = icmp sle i64 %599, 2
  br i1 %600, label %601, label %970

601:                                              ; preds = %598
  %602 = load i64, ptr %6, align 8, !tbaa !9
  %603 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef %602, ptr noundef %603)
  %604 = load i64, ptr %6, align 8, !tbaa !9
  %605 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %14, i64 noundef %604, ptr noundef %605)
  %606 = load i64, ptr %6, align 8, !tbaa !9
  %607 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %9, i64 noundef %606, ptr noundef %607)
  %608 = load i64, ptr %6, align 8, !tbaa !9
  %609 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %8, i64 noundef %608, ptr noundef %609)
  %610 = load i64, ptr %6, align 8, !tbaa !9
  %611 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %11, i64 noundef %610, ptr noundef %611)
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %612

612:                                              ; preds = %661, %601
  %613 = load i64, ptr %19, align 8, !tbaa !9
  %614 = load i64, ptr %6, align 8, !tbaa !9
  %615 = sub nsw i64 %614, 1
  %616 = icmp sle i64 %613, %615
  br i1 %616, label %617, label %664

617:                                              ; preds = %612
  %618 = load ptr, ptr %4, align 8, !tbaa !5
  %619 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %618)
  %620 = fadd double %619, 1.000000e+00
  %621 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %622 = load ptr, ptr %621, align 8, !tbaa !11
  %623 = load i64, ptr %19, align 8, !tbaa !9
  %624 = getelementptr inbounds double, ptr %622, i64 %623
  store double %620, ptr %624, align 8, !tbaa !12
  %625 = load ptr, ptr %4, align 8, !tbaa !5
  %626 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+02, ptr noundef %625)
  %627 = load ptr, ptr %4, align 8, !tbaa !5
  %628 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %627)
  %629 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %628, double -1.000000e+00)
  %630 = fmul double %626, %629
  %631 = load ptr, ptr %4, align 8, !tbaa !5
  %632 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %630, ptr noundef %631)
  %633 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %634 = load ptr, ptr %633, align 8, !tbaa !11
  %635 = load i64, ptr %19, align 8, !tbaa !9
  %636 = getelementptr inbounds double, ptr %634, i64 %635
  store double %632, ptr %636, align 8, !tbaa !12
  %637 = load ptr, ptr %4, align 8, !tbaa !5
  %638 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+02, ptr noundef %637)
  %639 = load ptr, ptr %4, align 8, !tbaa !5
  %640 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %639)
  %641 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %640, double -1.000000e+00)
  %642 = fmul double %638, %641
  %643 = load ptr, ptr %4, align 8, !tbaa !5
  %644 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %642, ptr noundef %643)
  %645 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %646 = load ptr, ptr %645, align 8, !tbaa !11
  %647 = load i64, ptr %19, align 8, !tbaa !9
  %648 = getelementptr inbounds double, ptr %646, i64 %647
  store double %644, ptr %648, align 8, !tbaa !12
  %649 = load ptr, ptr %4, align 8, !tbaa !5
  %650 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+02, ptr noundef %649)
  %651 = load ptr, ptr %4, align 8, !tbaa !5
  %652 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %651)
  %653 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %652, double -1.000000e+00)
  %654 = fmul double %650, %653
  %655 = load ptr, ptr %4, align 8, !tbaa !5
  %656 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %654, ptr noundef %655)
  %657 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %11, i32 0, i32 4
  %658 = load ptr, ptr %657, align 8, !tbaa !11
  %659 = load i64, ptr %19, align 8, !tbaa !9
  %660 = getelementptr inbounds double, ptr %658, i64 %659
  store double %656, ptr %660, align 8, !tbaa !12
  br label %661

661:                                              ; preds = %617
  %662 = load i64, ptr %19, align 8, !tbaa !9
  %663 = add nsw i64 %662, 1
  store i64 %663, ptr %19, align 8, !tbaa !9
  br label %612, !llvm.loop !45

664:                                              ; preds = %612
  %665 = load i64, ptr %6, align 8, !tbaa !9
  %666 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %665, ptr noundef %7, ptr noundef %22, ptr noundef %666)
  %667 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl13mincgsetscaleEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %22, ptr noundef %8, ptr noundef %667)
  %668 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext true, ptr noundef %668)
  %669 = load i64, ptr %31, align 8, !tbaa !9
  %670 = icmp eq i64 %669, 1
  br i1 %670, label %671, label %673

671:                                              ; preds = %664
  %672 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl16mincgsetprecdiagEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %22, ptr noundef %11, ptr noundef %672)
  br label %673

673:                                              ; preds = %671, %664
  %674 = load i64, ptr %31, align 8, !tbaa !9
  %675 = icmp eq i64 %674, 2
  br i1 %675, label %676, label %678

676:                                              ; preds = %673
  %677 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl17mincgsetprecscaleEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %677)
  br label %678

678:                                              ; preds = %676, %673
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %679

679:                                              ; preds = %692, %678
  %680 = load i64, ptr %19, align 8, !tbaa !9
  %681 = load i64, ptr %6, align 8, !tbaa !9
  %682 = sub nsw i64 %681, 1
  %683 = icmp sle i64 %680, %682
  br i1 %683, label %684, label %695

684:                                              ; preds = %679
  %685 = load ptr, ptr %4, align 8, !tbaa !5
  %686 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %685)
  %687 = fadd double %686, 1.000000e+00
  %688 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %689 = load ptr, ptr %688, align 8, !tbaa !11
  %690 = load i64, ptr %19, align 8, !tbaa !9
  %691 = getelementptr inbounds double, ptr %689, i64 %690
  store double %687, ptr %691, align 8, !tbaa !12
  br label %692

692:                                              ; preds = %684
  %693 = load i64, ptr %19, align 8, !tbaa !9
  %694 = add nsw i64 %693, 1
  store i64 %694, ptr %19, align 8, !tbaa !9
  br label %679, !llvm.loop !46

695:                                              ; preds = %679
  %696 = load double, ptr %25, align 8, !tbaa !12
  %697 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef %696, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %697)
  %698 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl16mincgrestartfromEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %698)
  br label %699

699:                                              ; preds = %755, %695
  %700 = load ptr, ptr %4, align 8, !tbaa !5
  %701 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %700)
  br i1 %701, label %702, label %756

702:                                              ; preds = %699
  %703 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %704 = load i8, ptr %703, align 1, !tbaa !16, !range !29, !noundef !30
  %705 = trunc i8 %704 to i1
  br i1 %705, label %706, label %755

706:                                              ; preds = %702
  %707 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double 0.000000e+00, ptr %707, align 8, !tbaa !31
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %708

708:                                              ; preds = %751, %706
  %709 = load i64, ptr %19, align 8, !tbaa !9
  %710 = load i64, ptr %6, align 8, !tbaa !9
  %711 = sub nsw i64 %710, 1
  %712 = icmp sle i64 %709, %711
  br i1 %712, label %713, label %754

713:                                              ; preds = %708
  %714 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %715 = load double, ptr %714, align 8, !tbaa !31
  %716 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %717 = load ptr, ptr %716, align 8, !tbaa !11
  %718 = load i64, ptr %19, align 8, !tbaa !9
  %719 = getelementptr inbounds double, ptr %717, i64 %718
  %720 = load double, ptr %719, align 8, !tbaa !12
  %721 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %722 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %721, i32 0, i32 4
  %723 = load ptr, ptr %722, align 8, !tbaa !11
  %724 = load i64, ptr %19, align 8, !tbaa !9
  %725 = getelementptr inbounds double, ptr %723, i64 %724
  %726 = load double, ptr %725, align 8, !tbaa !12
  %727 = load ptr, ptr %4, align 8, !tbaa !5
  %728 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %726, double noundef 4.000000e+00, ptr noundef %727)
  %729 = call double @llvm.fmuladd.f64(double %720, double %728, double %715)
  %730 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %729, ptr %730, align 8, !tbaa !31
  %731 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %732 = load ptr, ptr %731, align 8, !tbaa !11
  %733 = load i64, ptr %19, align 8, !tbaa !9
  %734 = getelementptr inbounds double, ptr %732, i64 %733
  %735 = load double, ptr %734, align 8, !tbaa !12
  %736 = fmul double 4.000000e+00, %735
  %737 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %738 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %737, i32 0, i32 4
  %739 = load ptr, ptr %738, align 8, !tbaa !11
  %740 = load i64, ptr %19, align 8, !tbaa !9
  %741 = getelementptr inbounds double, ptr %739, i64 %740
  %742 = load double, ptr %741, align 8, !tbaa !12
  %743 = load ptr, ptr %4, align 8, !tbaa !5
  %744 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %742, double noundef 3.000000e+00, ptr noundef %743)
  %745 = fmul double %736, %744
  %746 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %747 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %746, i32 0, i32 4
  %748 = load ptr, ptr %747, align 8, !tbaa !11
  %749 = load i64, ptr %19, align 8, !tbaa !9
  %750 = getelementptr inbounds double, ptr %748, i64 %749
  store double %745, ptr %750, align 8, !tbaa !12
  br label %751

751:                                              ; preds = %713
  %752 = load i64, ptr %19, align 8, !tbaa !9
  %753 = add nsw i64 %752, 1
  store i64 %753, ptr %19, align 8, !tbaa !9
  br label %708, !llvm.loop !47

754:                                              ; preds = %708
  br label %755

755:                                              ; preds = %754, %702
  br label %699, !llvm.loop !48

756:                                              ; preds = %699
  %757 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %23, ptr noundef %757)
  %758 = getelementptr inbounds %"struct.alglib_impl::mincgreport", ptr %23, i32 0, i32 2
  %759 = load i64, ptr %758, align 8, !tbaa !49
  %760 = icmp sle i64 %759, 0
  br i1 %760, label %761, label %764

761:                                              ; preds = %756
  %762 = load ptr, ptr %3, align 8, !tbaa !5
  store i8 1, ptr %762, align 1, !tbaa !34
  %763 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %763)
  store i32 1, ptr %51, align 4
  br label %1552

764:                                              ; preds = %756
  store double 0.000000e+00, ptr %27, align 8, !tbaa !12
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %765

765:                                              ; preds = %795, %764
  %766 = load i64, ptr %19, align 8, !tbaa !9
  %767 = load i64, ptr %6, align 8, !tbaa !9
  %768 = sub nsw i64 %767, 1
  %769 = icmp sle i64 %766, %768
  br i1 %769, label %770, label %798

770:                                              ; preds = %765
  %771 = load double, ptr %27, align 8, !tbaa !12
  %772 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %773 = load ptr, ptr %772, align 8, !tbaa !11
  %774 = load i64, ptr %19, align 8, !tbaa !9
  %775 = getelementptr inbounds double, ptr %773, i64 %774
  %776 = load double, ptr %775, align 8, !tbaa !12
  %777 = fmul double %776, 4.000000e+00
  %778 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %779 = load ptr, ptr %778, align 8, !tbaa !11
  %780 = load i64, ptr %19, align 8, !tbaa !9
  %781 = getelementptr inbounds double, ptr %779, i64 %780
  %782 = load double, ptr %781, align 8, !tbaa !12
  %783 = fmul double %777, %782
  %784 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %785 = load ptr, ptr %784, align 8, !tbaa !11
  %786 = load i64, ptr %19, align 8, !tbaa !9
  %787 = getelementptr inbounds double, ptr %785, i64 %786
  %788 = load double, ptr %787, align 8, !tbaa !12
  %789 = load ptr, ptr %4, align 8, !tbaa !5
  %790 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %788, double noundef 3.000000e+00, ptr noundef %789)
  %791 = fmul double %783, %790
  %792 = load ptr, ptr %4, align 8, !tbaa !5
  %793 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %791, ptr noundef %792)
  %794 = fadd double %771, %793
  store double %794, ptr %27, align 8, !tbaa !12
  br label %795

795:                                              ; preds = %770
  %796 = load i64, ptr %19, align 8, !tbaa !9
  %797 = add nsw i64 %796, 1
  store i64 %797, ptr %19, align 8, !tbaa !9
  br label %765, !llvm.loop !51

798:                                              ; preds = %765
  %799 = load double, ptr %27, align 8, !tbaa !12
  %800 = load ptr, ptr %4, align 8, !tbaa !5
  %801 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %799, ptr noundef %800)
  store double %801, ptr %27, align 8, !tbaa !12
  %802 = load ptr, ptr %3, align 8, !tbaa !5
  %803 = load i8, ptr %802, align 1, !tbaa !34, !range !29, !noundef !30
  %804 = trunc i8 %803 to i1
  br i1 %804, label %809, label %805

805:                                              ; preds = %798
  %806 = load double, ptr %27, align 8, !tbaa !12
  %807 = load double, ptr %25, align 8, !tbaa !12
  %808 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %806, double noundef %807)
  br label %809

809:                                              ; preds = %805, %798
  %810 = phi i1 [ true, %798 ], [ %808, %805 ]
  %811 = load ptr, ptr %3, align 8, !tbaa !5
  %812 = zext i1 %810 to i8
  store i8 %812, ptr %811, align 1, !tbaa !34
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %813

813:                                              ; preds = %826, %809
  %814 = load i64, ptr %19, align 8, !tbaa !9
  %815 = load i64, ptr %6, align 8, !tbaa !9
  %816 = sub nsw i64 %815, 1
  %817 = icmp sle i64 %814, %816
  br i1 %817, label %818, label %829

818:                                              ; preds = %813
  %819 = load ptr, ptr %4, align 8, !tbaa !5
  %820 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %819)
  %821 = fadd double %820, 1.000000e+00
  %822 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %823 = load ptr, ptr %822, align 8, !tbaa !11
  %824 = load i64, ptr %19, align 8, !tbaa !9
  %825 = getelementptr inbounds double, ptr %823, i64 %824
  store double %821, ptr %825, align 8, !tbaa !12
  br label %826

826:                                              ; preds = %818
  %827 = load i64, ptr %19, align 8, !tbaa !9
  %828 = add nsw i64 %827, 1
  store i64 %828, ptr %19, align 8, !tbaa !9
  br label %813, !llvm.loop !52

829:                                              ; preds = %813
  store i8 0, ptr %29, align 1, !tbaa !34
  %830 = load double, ptr %25, align 8, !tbaa !12
  %831 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %830, i64 noundef 0, ptr noundef %831)
  %832 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl16mincgrestartfromEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %832)
  store double 0.000000e+00, ptr %30, align 8, !tbaa !12
  br label %833

833:                                              ; preds = %946, %829
  %834 = load ptr, ptr %4, align 8, !tbaa !5
  %835 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %834)
  br i1 %835, label %836, label %947

836:                                              ; preds = %833
  %837 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %838 = load i8, ptr %837, align 1, !tbaa !16, !range !29, !noundef !30
  %839 = trunc i8 %838 to i1
  br i1 %839, label %840, label %889

840:                                              ; preds = %836
  %841 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double 0.000000e+00, ptr %841, align 8, !tbaa !31
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %842

842:                                              ; preds = %885, %840
  %843 = load i64, ptr %19, align 8, !tbaa !9
  %844 = load i64, ptr %6, align 8, !tbaa !9
  %845 = sub nsw i64 %844, 1
  %846 = icmp sle i64 %843, %845
  br i1 %846, label %847, label %888

847:                                              ; preds = %842
  %848 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %849 = load double, ptr %848, align 8, !tbaa !31
  %850 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %851 = load ptr, ptr %850, align 8, !tbaa !11
  %852 = load i64, ptr %19, align 8, !tbaa !9
  %853 = getelementptr inbounds double, ptr %851, i64 %852
  %854 = load double, ptr %853, align 8, !tbaa !12
  %855 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %856 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %855, i32 0, i32 4
  %857 = load ptr, ptr %856, align 8, !tbaa !11
  %858 = load i64, ptr %19, align 8, !tbaa !9
  %859 = getelementptr inbounds double, ptr %857, i64 %858
  %860 = load double, ptr %859, align 8, !tbaa !12
  %861 = load ptr, ptr %4, align 8, !tbaa !5
  %862 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %860, double noundef 4.000000e+00, ptr noundef %861)
  %863 = call double @llvm.fmuladd.f64(double %854, double %862, double %849)
  %864 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %863, ptr %864, align 8, !tbaa !31
  %865 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %866 = load ptr, ptr %865, align 8, !tbaa !11
  %867 = load i64, ptr %19, align 8, !tbaa !9
  %868 = getelementptr inbounds double, ptr %866, i64 %867
  %869 = load double, ptr %868, align 8, !tbaa !12
  %870 = fmul double 4.000000e+00, %869
  %871 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %872 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %871, i32 0, i32 4
  %873 = load ptr, ptr %872, align 8, !tbaa !11
  %874 = load i64, ptr %19, align 8, !tbaa !9
  %875 = getelementptr inbounds double, ptr %873, i64 %874
  %876 = load double, ptr %875, align 8, !tbaa !12
  %877 = load ptr, ptr %4, align 8, !tbaa !5
  %878 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %876, double noundef 3.000000e+00, ptr noundef %877)
  %879 = fmul double %870, %878
  %880 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %881 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %880, i32 0, i32 4
  %882 = load ptr, ptr %881, align 8, !tbaa !11
  %883 = load i64, ptr %19, align 8, !tbaa !9
  %884 = getelementptr inbounds double, ptr %882, i64 %883
  store double %879, ptr %884, align 8, !tbaa !12
  br label %885

885:                                              ; preds = %847
  %886 = load i64, ptr %19, align 8, !tbaa !9
  %887 = add nsw i64 %886, 1
  store i64 %887, ptr %19, align 8, !tbaa !9
  br label %842, !llvm.loop !53

888:                                              ; preds = %842
  br label %889

889:                                              ; preds = %888, %836
  %890 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 42
  %891 = load i8, ptr %890, align 2, !tbaa !33, !range !29, !noundef !30
  %892 = trunc i8 %891 to i1
  br i1 %892, label %893, label %946

893:                                              ; preds = %889
  %894 = load i8, ptr %29, align 1, !tbaa !34, !range !29, !noundef !30
  %895 = trunc i8 %894 to i1
  br i1 %895, label %896, label %934

896:                                              ; preds = %893
  store double 0.000000e+00, ptr %30, align 8, !tbaa !12
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %897

897:                                              ; preds = %927, %896
  %898 = load i64, ptr %19, align 8, !tbaa !9
  %899 = load i64, ptr %6, align 8, !tbaa !9
  %900 = sub nsw i64 %899, 1
  %901 = icmp sle i64 %898, %900
  br i1 %901, label %902, label %930

902:                                              ; preds = %897
  %903 = load double, ptr %30, align 8, !tbaa !12
  %904 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %905 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %904, i32 0, i32 4
  %906 = load ptr, ptr %905, align 8, !tbaa !11
  %907 = load i64, ptr %19, align 8, !tbaa !9
  %908 = getelementptr inbounds double, ptr %906, i64 %907
  %909 = load double, ptr %908, align 8, !tbaa !12
  %910 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %14, i32 0, i32 4
  %911 = load ptr, ptr %910, align 8, !tbaa !11
  %912 = load i64, ptr %19, align 8, !tbaa !9
  %913 = getelementptr inbounds double, ptr %911, i64 %912
  %914 = load double, ptr %913, align 8, !tbaa !12
  %915 = fsub double %909, %914
  %916 = load ptr, ptr %4, align 8, !tbaa !5
  %917 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %915, ptr noundef %916)
  %918 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %919 = load ptr, ptr %918, align 8, !tbaa !11
  %920 = load i64, ptr %19, align 8, !tbaa !9
  %921 = getelementptr inbounds double, ptr %919, i64 %920
  %922 = load double, ptr %921, align 8, !tbaa !12
  %923 = load ptr, ptr %4, align 8, !tbaa !5
  %924 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %922, ptr noundef %923)
  %925 = fdiv double %917, %924
  %926 = fadd double %903, %925
  store double %926, ptr %30, align 8, !tbaa !12
  br label %927

927:                                              ; preds = %902
  %928 = load i64, ptr %19, align 8, !tbaa !9
  %929 = add nsw i64 %928, 1
  store i64 %929, ptr %19, align 8, !tbaa !9
  br label %897, !llvm.loop !54

930:                                              ; preds = %897
  %931 = load double, ptr %30, align 8, !tbaa !12
  %932 = load ptr, ptr %4, align 8, !tbaa !5
  %933 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %931, ptr noundef %932)
  store double %933, ptr %30, align 8, !tbaa !12
  br label %935

934:                                              ; preds = %893
  store double 0.000000e+00, ptr %30, align 8, !tbaa !12
  br label %935

935:                                              ; preds = %934, %930
  %936 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %14, i32 0, i32 4
  %937 = load ptr, ptr %936, align 8, !tbaa !11
  %938 = getelementptr inbounds double, ptr %937, i64 0
  %939 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %940 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %939, i32 0, i32 4
  %941 = load ptr, ptr %940, align 8, !tbaa !11
  %942 = getelementptr inbounds double, ptr %941, i64 0
  %943 = load i64, ptr %6, align 8, !tbaa !9
  %944 = sub nsw i64 %943, 1
  %945 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %944)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %938, i64 noundef 1, ptr noundef %942, i64 noundef 1, i64 noundef %945)
  store i8 1, ptr %29, align 1, !tbaa !34
  br label %946

946:                                              ; preds = %935, %889
  br label %833, !llvm.loop !55

947:                                              ; preds = %833
  %948 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %23, ptr noundef %948)
  %949 = getelementptr inbounds %"struct.alglib_impl::mincgreport", ptr %23, i32 0, i32 2
  %950 = load i64, ptr %949, align 8, !tbaa !49
  %951 = icmp sle i64 %950, 0
  br i1 %951, label %952, label %955

952:                                              ; preds = %947
  %953 = load ptr, ptr %3, align 8, !tbaa !5
  store i8 1, ptr %953, align 1, !tbaa !34
  %954 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %954)
  store i32 1, ptr %51, align 4
  br label %1552

955:                                              ; preds = %947
  %956 = load ptr, ptr %3, align 8, !tbaa !5
  %957 = load i8, ptr %956, align 1, !tbaa !34, !range !29, !noundef !30
  %958 = trunc i8 %957 to i1
  br i1 %958, label %963, label %959

959:                                              ; preds = %955
  %960 = load double, ptr %30, align 8, !tbaa !12
  %961 = load double, ptr %25, align 8, !tbaa !12
  %962 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %960, double noundef %961)
  br label %963

963:                                              ; preds = %959, %955
  %964 = phi i1 [ true, %955 ], [ %962, %959 ]
  %965 = load ptr, ptr %3, align 8, !tbaa !5
  %966 = zext i1 %964 to i8
  store i8 %966, ptr %965, align 1, !tbaa !34
  br label %967

967:                                              ; preds = %963
  %968 = load i64, ptr %31, align 8, !tbaa !9
  %969 = add nsw i64 %968, 1
  store i64 %969, ptr %31, align 8, !tbaa !9
  br label %598, !llvm.loop !56

970:                                              ; preds = %598
  br label %971

971:                                              ; preds = %970
  %972 = load i64, ptr %6, align 8, !tbaa !9
  %973 = add nsw i64 %972, 1
  store i64 %973, ptr %6, align 8, !tbaa !9
  br label %594, !llvm.loop !57

974:                                              ; preds = %594
  store i64 0, ptr %32, align 8, !tbaa !9
  br label %975

975:                                              ; preds = %1128, %974
  %976 = load i64, ptr %32, align 8, !tbaa !9
  %977 = icmp sle i64 %976, 1
  br i1 %977, label %978, label %1131

978:                                              ; preds = %975
  store i64 0, ptr %33, align 8, !tbaa !9
  br label %979

979:                                              ; preds = %1124, %978
  %980 = load i64, ptr %33, align 8, !tbaa !9
  %981 = icmp sle i64 %980, 2
  br i1 %981, label %982, label %1127

982:                                              ; preds = %979
  store double 1.000000e+00, ptr %36, align 8, !tbaa !12
  store double 1.000000e+08, ptr %37, align 8, !tbaa !12
  %983 = load i64, ptr %32, align 8, !tbaa !9
  %984 = icmp eq i64 %983, 1
  br i1 %984, label %985, label %986

985:                                              ; preds = %982
  store double 1.000000e+06, ptr %36, align 8, !tbaa !12
  br label %986

986:                                              ; preds = %985, %982
  %987 = load i64, ptr %33, align 8, !tbaa !9
  %988 = icmp eq i64 %987, 1
  br i1 %988, label %989, label %990

989:                                              ; preds = %986
  store double 1.000000e+20, ptr %37, align 8, !tbaa !12
  br label %990

990:                                              ; preds = %989, %986
  %991 = load i64, ptr %33, align 8, !tbaa !9
  %992 = icmp eq i64 %991, 2
  br i1 %992, label %993, label %997

993:                                              ; preds = %990
  %994 = load ptr, ptr %4, align 8, !tbaa !5
  %995 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %994, i32 0, i32 2
  %996 = load double, ptr %995, align 8, !tbaa !58
  store double %996, ptr %37, align 8, !tbaa !12
  br label %997

997:                                              ; preds = %993, %990
  %998 = load double, ptr %36, align 8, !tbaa !12
  %999 = fmul double 0x3EB0C6F7A0B5ED8D, %998
  store double %999, ptr %26, align 8, !tbaa !12
  %1000 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 1, ptr noundef %1000)
  %1001 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1002 = load ptr, ptr %1001, align 8, !tbaa !11
  %1003 = getelementptr inbounds double, ptr %1002, i64 0
  store double 0.000000e+00, ptr %1003, align 8, !tbaa !12
  %1004 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 1, ptr noundef %7, ptr noundef %22, ptr noundef %1004)
  %1005 = load double, ptr %26, align 8, !tbaa !12
  %1006 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef %1005, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %1006)
  %1007 = load i64, ptr %24, align 8, !tbaa !9
  %1008 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14mincgsetcgtypeEPNS_10mincgstateElPNS_8ae_stateE(ptr noundef %22, i64 noundef %1007, ptr noundef %1008)
  br label %1009

1009:                                             ; preds = %1083, %997
  %1010 = load ptr, ptr %4, align 8, !tbaa !5
  %1011 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %1010)
  br i1 %1011, label %1012, label %1084

1012:                                             ; preds = %1009
  %1013 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %1014 = load i8, ptr %1013, align 1, !tbaa !16, !range !29, !noundef !30
  %1015 = trunc i8 %1014 to i1
  br i1 %1015, label %1016, label %1083

1016:                                             ; preds = %1012
  %1017 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1018 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1017, i32 0, i32 4
  %1019 = load ptr, ptr %1018, align 8, !tbaa !11
  %1020 = getelementptr inbounds double, ptr %1019, i64 0
  %1021 = load double, ptr %1020, align 8, !tbaa !12
  %1022 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef 0xBFEFFFFDE7210BE9, double noundef %1021)
  br i1 %1022, label %1023, label %1079

1023:                                             ; preds = %1016
  %1024 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1025 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1024, i32 0, i32 4
  %1026 = load ptr, ptr %1025, align 8, !tbaa !11
  %1027 = getelementptr inbounds double, ptr %1026, i64 0
  %1028 = load double, ptr %1027, align 8, !tbaa !12
  %1029 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1028, double noundef 0x3FEFFFFDE7210BE9)
  br i1 %1029, label %1030, label %1079

1030:                                             ; preds = %1023
  %1031 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1032 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1031, i32 0, i32 4
  %1033 = load ptr, ptr %1032, align 8, !tbaa !11
  %1034 = getelementptr inbounds double, ptr %1033, i64 0
  %1035 = load double, ptr %1034, align 8, !tbaa !12
  %1036 = fsub double 1.000000e+00, %1035
  %1037 = fdiv double 1.000000e+00, %1036
  %1038 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1039 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1038, i32 0, i32 4
  %1040 = load ptr, ptr %1039, align 8, !tbaa !11
  %1041 = getelementptr inbounds double, ptr %1040, i64 0
  %1042 = load double, ptr %1041, align 8, !tbaa !12
  %1043 = fadd double 1.000000e+00, %1042
  %1044 = fdiv double 1.000000e+00, %1043
  %1045 = fadd double %1037, %1044
  %1046 = load double, ptr %36, align 8, !tbaa !12
  %1047 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1048 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1047, i32 0, i32 4
  %1049 = load ptr, ptr %1048, align 8, !tbaa !11
  %1050 = getelementptr inbounds double, ptr %1049, i64 0
  %1051 = load double, ptr %1050, align 8, !tbaa !12
  %1052 = call double @llvm.fmuladd.f64(double %1046, double %1051, double %1045)
  %1053 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %1052, ptr %1053, align 8, !tbaa !31
  %1054 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1055 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1054, i32 0, i32 4
  %1056 = load ptr, ptr %1055, align 8, !tbaa !11
  %1057 = getelementptr inbounds double, ptr %1056, i64 0
  %1058 = load double, ptr %1057, align 8, !tbaa !12
  %1059 = fsub double 1.000000e+00, %1058
  %1060 = load ptr, ptr %4, align 8, !tbaa !5
  %1061 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1059, ptr noundef %1060)
  %1062 = fdiv double 1.000000e+00, %1061
  %1063 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1064 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1063, i32 0, i32 4
  %1065 = load ptr, ptr %1064, align 8, !tbaa !11
  %1066 = getelementptr inbounds double, ptr %1065, i64 0
  %1067 = load double, ptr %1066, align 8, !tbaa !12
  %1068 = fadd double 1.000000e+00, %1067
  %1069 = load ptr, ptr %4, align 8, !tbaa !5
  %1070 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1068, ptr noundef %1069)
  %1071 = fdiv double 1.000000e+00, %1070
  %1072 = fsub double %1062, %1071
  %1073 = load double, ptr %36, align 8, !tbaa !12
  %1074 = fadd double %1072, %1073
  %1075 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1076 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1075, i32 0, i32 4
  %1077 = load ptr, ptr %1076, align 8, !tbaa !11
  %1078 = getelementptr inbounds double, ptr %1077, i64 0
  store double %1074, ptr %1078, align 8, !tbaa !12
  br label %1082

1079:                                             ; preds = %1023, %1016
  %1080 = load double, ptr %37, align 8, !tbaa !12
  %1081 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %1080, ptr %1081, align 8, !tbaa !31
  br label %1082

1082:                                             ; preds = %1079, %1030
  br label %1083

1083:                                             ; preds = %1082, %1012
  br label %1009, !llvm.loop !62

1084:                                             ; preds = %1009
  %1085 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %23, ptr noundef %1085)
  %1086 = getelementptr inbounds %"struct.alglib_impl::mincgreport", ptr %23, i32 0, i32 2
  %1087 = load i64, ptr %1086, align 8, !tbaa !49
  %1088 = icmp sle i64 %1087, 0
  br i1 %1088, label %1089, label %1092

1089:                                             ; preds = %1084
  %1090 = load ptr, ptr %3, align 8, !tbaa !5
  store i8 1, ptr %1090, align 1, !tbaa !34
  %1091 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1091)
  store i32 1, ptr %51, align 4
  br label %1552

1092:                                             ; preds = %1084
  %1093 = load ptr, ptr %3, align 8, !tbaa !5
  %1094 = load i8, ptr %1093, align 1, !tbaa !34, !range !29, !noundef !30
  %1095 = trunc i8 %1094 to i1
  br i1 %1095, label %1120, label %1096

1096:                                             ; preds = %1092
  %1097 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1098 = load ptr, ptr %1097, align 8, !tbaa !11
  %1099 = getelementptr inbounds double, ptr %1098, i64 0
  %1100 = load double, ptr %1099, align 8, !tbaa !12
  %1101 = fsub double 1.000000e+00, %1100
  %1102 = load ptr, ptr %4, align 8, !tbaa !5
  %1103 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1101, ptr noundef %1102)
  %1104 = fdiv double 1.000000e+00, %1103
  %1105 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1106 = load ptr, ptr %1105, align 8, !tbaa !11
  %1107 = getelementptr inbounds double, ptr %1106, i64 0
  %1108 = load double, ptr %1107, align 8, !tbaa !12
  %1109 = fadd double 1.000000e+00, %1108
  %1110 = load ptr, ptr %4, align 8, !tbaa !5
  %1111 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1109, ptr noundef %1110)
  %1112 = fdiv double 1.000000e+00, %1111
  %1113 = fsub double %1104, %1112
  %1114 = load double, ptr %36, align 8, !tbaa !12
  %1115 = fadd double %1113, %1114
  %1116 = load ptr, ptr %4, align 8, !tbaa !5
  %1117 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1115, ptr noundef %1116)
  %1118 = load double, ptr %26, align 8, !tbaa !12
  %1119 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1117, double noundef %1118)
  br label %1120

1120:                                             ; preds = %1096, %1092
  %1121 = phi i1 [ true, %1092 ], [ %1119, %1096 ]
  %1122 = load ptr, ptr %3, align 8, !tbaa !5
  %1123 = zext i1 %1121 to i8
  store i8 %1123, ptr %1122, align 1, !tbaa !34
  br label %1124

1124:                                             ; preds = %1120
  %1125 = load i64, ptr %33, align 8, !tbaa !9
  %1126 = add nsw i64 %1125, 1
  store i64 %1126, ptr %33, align 8, !tbaa !9
  br label %979, !llvm.loop !63

1127:                                             ; preds = %979
  br label %1128

1128:                                             ; preds = %1127
  %1129 = load i64, ptr %32, align 8, !tbaa !9
  %1130 = add nsw i64 %1129, 1
  store i64 %1130, ptr %32, align 8, !tbaa !9
  br label %975, !llvm.loop !64

1131:                                             ; preds = %975
  br label %1132

1132:                                             ; preds = %1131
  %1133 = load i64, ptr %24, align 8, !tbaa !9
  %1134 = add nsw i64 %1133, 1
  store i64 %1134, ptr %24, align 8, !tbaa !9
  br label %66, !llvm.loop !65

1135:                                             ; preds = %66
  store i64 100, ptr %6, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %1136

1136:                                             ; preds = %1342, %1135
  %1137 = load i64, ptr %45, align 8, !tbaa !9
  %1138 = icmp sle i64 %1137, 10
  br i1 %1138, label %1139, label %1345

1139:                                             ; preds = %1136
  store i64 5, ptr %41, align 8, !tbaa !9
  store i64 8, ptr %42, align 8, !tbaa !9
  %1140 = load ptr, ptr %4, align 8, !tbaa !5
  %1141 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %40, ptr noundef %1140)
  %1142 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1141, double noundef 0.000000e+00)
  br i1 %1142, label %1143, label %1166

1143:                                             ; preds = %1139
  %1144 = load i64, ptr %6, align 8, !tbaa !9
  %1145 = load ptr, ptr %4, align 8, !tbaa !5
  %1146 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %40, i64 noundef %1144, ptr noundef %1145)
  store i64 %1146, ptr %43, align 8, !tbaa !9
  %1147 = load ptr, ptr %4, align 8, !tbaa !5
  %1148 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %40, i64 noundef 3, ptr noundef %1147)
  store i64 %1148, ptr %19, align 8, !tbaa !9
  %1149 = load ptr, ptr %4, align 8, !tbaa !5
  %1150 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1149, i32 0, i32 1
  %1151 = load double, ptr %1150, align 8, !tbaa !66
  store double %1151, ptr %44, align 8, !tbaa !12
  %1152 = load i64, ptr %19, align 8, !tbaa !9
  %1153 = icmp eq i64 %1152, 0
  br i1 %1153, label %1154, label %1158

1154:                                             ; preds = %1143
  %1155 = load ptr, ptr %4, align 8, !tbaa !5
  %1156 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1155, i32 0, i32 3
  %1157 = load double, ptr %1156, align 8, !tbaa !67
  store double %1157, ptr %44, align 8, !tbaa !12
  br label %1158

1158:                                             ; preds = %1154, %1143
  %1159 = load i64, ptr %19, align 8, !tbaa !9
  %1160 = icmp eq i64 %1159, 1
  br i1 %1160, label %1161, label %1165

1161:                                             ; preds = %1158
  %1162 = load ptr, ptr %4, align 8, !tbaa !5
  %1163 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1162, i32 0, i32 2
  %1164 = load double, ptr %1163, align 8, !tbaa !58
  store double %1164, ptr %44, align 8, !tbaa !12
  br label %1165

1165:                                             ; preds = %1161, %1158
  br label %1170

1166:                                             ; preds = %1139
  store i64 -1, ptr %43, align 8, !tbaa !9
  %1167 = load ptr, ptr %4, align 8, !tbaa !5
  %1168 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1167, i32 0, i32 1
  %1169 = load double, ptr %1168, align 8, !tbaa !66
  store double %1169, ptr %44, align 8, !tbaa !12
  br label %1170

1170:                                             ; preds = %1166, %1165
  %1171 = load i64, ptr %6, align 8, !tbaa !9
  %1172 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1171, double noundef 1.000000e+05, ptr noundef %15, ptr noundef %1172)
  %1173 = load i64, ptr %6, align 8, !tbaa !9
  %1174 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %10, i64 noundef %1173, ptr noundef %1174)
  %1175 = load i64, ptr %6, align 8, !tbaa !9
  %1176 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %12, i64 noundef %1175, ptr noundef %1176)
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %1177

1177:                                             ; preds = %1195, %1170
  %1178 = load i64, ptr %19, align 8, !tbaa !9
  %1179 = load i64, ptr %6, align 8, !tbaa !9
  %1180 = sub nsw i64 %1179, 1
  %1181 = icmp sle i64 %1178, %1180
  br i1 %1181, label %1182, label %1198

1182:                                             ; preds = %1177
  %1183 = load ptr, ptr %4, align 8, !tbaa !5
  %1184 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %40, ptr noundef %1183)
  %1185 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %10, i32 0, i32 4
  %1186 = load ptr, ptr %1185, align 8, !tbaa !11
  %1187 = load i64, ptr %19, align 8, !tbaa !9
  %1188 = getelementptr inbounds double, ptr %1186, i64 %1187
  store double %1184, ptr %1188, align 8, !tbaa !12
  %1189 = load ptr, ptr %4, align 8, !tbaa !5
  %1190 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %40, ptr noundef %1189)
  %1191 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %12, i32 0, i32 4
  %1192 = load ptr, ptr %1191, align 8, !tbaa !11
  %1193 = load i64, ptr %19, align 8, !tbaa !9
  %1194 = getelementptr inbounds double, ptr %1192, i64 %1193
  store double %1190, ptr %1194, align 8, !tbaa !12
  br label %1195

1195:                                             ; preds = %1182
  %1196 = load i64, ptr %19, align 8, !tbaa !9
  %1197 = add nsw i64 %1196, 1
  store i64 %1197, ptr %19, align 8, !tbaa !9
  br label %1177, !llvm.loop !68

1198:                                             ; preds = %1177
  %1199 = load i64, ptr %6, align 8, !tbaa !9
  %1200 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %1199, ptr noundef %12, ptr noundef %22, ptr noundef %1200)
  %1201 = load i64, ptr %42, align 8, !tbaa !9
  %1202 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef %1201, ptr noundef %1202)
  %1203 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext true, ptr noundef %1203)
  store i64 -1, ptr %21, align 8, !tbaa !9
  br label %1204

1204:                                             ; preds = %1334, %1332, %1327, %1198
  %1205 = load ptr, ptr %4, align 8, !tbaa !5
  %1206 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %1205)
  br i1 %1206, label %1207, label %1336

1207:                                             ; preds = %1204
  %1208 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %1209 = load i8, ptr %1208, align 1, !tbaa !16, !range !29, !noundef !30
  %1210 = trunc i8 %1209 to i1
  br i1 %1210, label %1211, label %1328

1211:                                             ; preds = %1207
  %1212 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double 0.000000e+00, ptr %1212, align 8, !tbaa !31
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %1213

1213:                                             ; preds = %1306, %1211
  %1214 = load i64, ptr %19, align 8, !tbaa !9
  %1215 = load i64, ptr %6, align 8, !tbaa !9
  %1216 = sub nsw i64 %1215, 1
  %1217 = icmp sle i64 %1214, %1216
  br i1 %1217, label %1218, label %1309

1218:                                             ; preds = %1213
  %1219 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %1220 = load double, ptr %1219, align 8, !tbaa !31
  %1221 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %10, i32 0, i32 4
  %1222 = load ptr, ptr %1221, align 8, !tbaa !11
  %1223 = load i64, ptr %19, align 8, !tbaa !9
  %1224 = getelementptr inbounds double, ptr %1222, i64 %1223
  %1225 = load double, ptr %1224, align 8, !tbaa !12
  %1226 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1227 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1226, i32 0, i32 4
  %1228 = load ptr, ptr %1227, align 8, !tbaa !11
  %1229 = load i64, ptr %19, align 8, !tbaa !9
  %1230 = getelementptr inbounds double, ptr %1228, i64 %1229
  %1231 = load double, ptr %1230, align 8, !tbaa !12
  %1232 = call double @llvm.fmuladd.f64(double %1225, double %1231, double %1220)
  %1233 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %1232, ptr %1233, align 8, !tbaa !31
  %1234 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %10, i32 0, i32 4
  %1235 = load ptr, ptr %1234, align 8, !tbaa !11
  %1236 = load i64, ptr %19, align 8, !tbaa !9
  %1237 = getelementptr inbounds double, ptr %1235, i64 %1236
  %1238 = load double, ptr %1237, align 8, !tbaa !12
  %1239 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1240 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1239, i32 0, i32 4
  %1241 = load ptr, ptr %1240, align 8, !tbaa !11
  %1242 = load i64, ptr %19, align 8, !tbaa !9
  %1243 = getelementptr inbounds double, ptr %1241, i64 %1242
  store double %1238, ptr %1243, align 8, !tbaa !12
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1244

1244:                                             ; preds = %1302, %1218
  %1245 = load i64, ptr %20, align 8, !tbaa !9
  %1246 = load i64, ptr %6, align 8, !tbaa !9
  %1247 = sub nsw i64 %1246, 1
  %1248 = icmp sle i64 %1245, %1247
  br i1 %1248, label %1249, label %1305

1249:                                             ; preds = %1244
  %1250 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  %1251 = load double, ptr %1250, align 8, !tbaa !31
  %1252 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1253 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1252, i32 0, i32 4
  %1254 = load ptr, ptr %1253, align 8, !tbaa !11
  %1255 = load i64, ptr %19, align 8, !tbaa !9
  %1256 = getelementptr inbounds double, ptr %1254, i64 %1255
  %1257 = load double, ptr %1256, align 8, !tbaa !12
  %1258 = fmul double 5.000000e-01, %1257
  %1259 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %15, i32 0, i32 6
  %1260 = load ptr, ptr %1259, align 8, !tbaa !11
  %1261 = load i64, ptr %19, align 8, !tbaa !9
  %1262 = getelementptr inbounds ptr, ptr %1260, i64 %1261
  %1263 = load ptr, ptr %1262, align 8, !tbaa !5
  %1264 = load i64, ptr %20, align 8, !tbaa !9
  %1265 = getelementptr inbounds double, ptr %1263, i64 %1264
  %1266 = load double, ptr %1265, align 8, !tbaa !12
  %1267 = fmul double %1258, %1266
  %1268 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1269 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1268, i32 0, i32 4
  %1270 = load ptr, ptr %1269, align 8, !tbaa !11
  %1271 = load i64, ptr %20, align 8, !tbaa !9
  %1272 = getelementptr inbounds double, ptr %1270, i64 %1271
  %1273 = load double, ptr %1272, align 8, !tbaa !12
  %1274 = call double @llvm.fmuladd.f64(double %1267, double %1273, double %1251)
  %1275 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %1274, ptr %1275, align 8, !tbaa !31
  %1276 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1277 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1276, i32 0, i32 4
  %1278 = load ptr, ptr %1277, align 8, !tbaa !11
  %1279 = load i64, ptr %19, align 8, !tbaa !9
  %1280 = getelementptr inbounds double, ptr %1278, i64 %1279
  %1281 = load double, ptr %1280, align 8, !tbaa !12
  %1282 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %15, i32 0, i32 6
  %1283 = load ptr, ptr %1282, align 8, !tbaa !11
  %1284 = load i64, ptr %19, align 8, !tbaa !9
  %1285 = getelementptr inbounds ptr, ptr %1283, i64 %1284
  %1286 = load ptr, ptr %1285, align 8, !tbaa !5
  %1287 = load i64, ptr %20, align 8, !tbaa !9
  %1288 = getelementptr inbounds double, ptr %1286, i64 %1287
  %1289 = load double, ptr %1288, align 8, !tbaa !12
  %1290 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1291 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1290, i32 0, i32 4
  %1292 = load ptr, ptr %1291, align 8, !tbaa !11
  %1293 = load i64, ptr %20, align 8, !tbaa !9
  %1294 = getelementptr inbounds double, ptr %1292, i64 %1293
  %1295 = load double, ptr %1294, align 8, !tbaa !12
  %1296 = call double @llvm.fmuladd.f64(double %1289, double %1295, double %1281)
  %1297 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1298 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1297, i32 0, i32 4
  %1299 = load ptr, ptr %1298, align 8, !tbaa !11
  %1300 = load i64, ptr %19, align 8, !tbaa !9
  %1301 = getelementptr inbounds double, ptr %1299, i64 %1300
  store double %1296, ptr %1301, align 8, !tbaa !12
  br label %1302

1302:                                             ; preds = %1249
  %1303 = load i64, ptr %20, align 8, !tbaa !9
  %1304 = add nsw i64 %1303, 1
  store i64 %1304, ptr %20, align 8, !tbaa !9
  br label %1244, !llvm.loop !69

1305:                                             ; preds = %1244
  br label %1306

1306:                                             ; preds = %1305
  %1307 = load i64, ptr %19, align 8, !tbaa !9
  %1308 = add nsw i64 %1307, 1
  store i64 %1308, ptr %19, align 8, !tbaa !9
  br label %1213, !llvm.loop !70

1309:                                             ; preds = %1213
  %1310 = load i64, ptr %21, align 8, !tbaa !9
  %1311 = load i64, ptr %41, align 8, !tbaa !9
  %1312 = icmp sge i64 %1310, %1311
  br i1 %1312, label %1313, label %1327

1313:                                             ; preds = %1309
  %1314 = load i64, ptr %43, align 8, !tbaa !9
  %1315 = icmp slt i64 %1314, 0
  br i1 %1315, label %1316, label %1319

1316:                                             ; preds = %1313
  %1317 = load double, ptr %44, align 8, !tbaa !12
  %1318 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %1317, ptr %1318, align 8, !tbaa !31
  br label %1326

1319:                                             ; preds = %1313
  %1320 = load double, ptr %44, align 8, !tbaa !12
  %1321 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1322 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1321, i32 0, i32 4
  %1323 = load ptr, ptr %1322, align 8, !tbaa !11
  %1324 = load i64, ptr %43, align 8, !tbaa !9
  %1325 = getelementptr inbounds double, ptr %1323, i64 %1324
  store double %1320, ptr %1325, align 8, !tbaa !12
  br label %1326

1326:                                             ; preds = %1319, %1316
  br label %1327

1327:                                             ; preds = %1326, %1309
  br label %1204, !llvm.loop !71

1328:                                             ; preds = %1207
  %1329 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 42
  %1330 = load i8, ptr %1329, align 2, !tbaa !33, !range !29, !noundef !30
  %1331 = trunc i8 %1330 to i1
  br i1 %1331, label %1332, label %1334

1332:                                             ; preds = %1328
  %1333 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %21, ptr noundef %1333)
  br label %1204, !llvm.loop !71

1334:                                             ; preds = %1328
  %1335 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.26, ptr noundef %1335)
  br label %1204, !llvm.loop !71

1336:                                             ; preds = %1204
  %1337 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %13, ptr noundef %23, ptr noundef %1337)
  %1338 = load ptr, ptr %3, align 8, !tbaa !5
  %1339 = getelementptr inbounds %"struct.alglib_impl::mincgreport", ptr %23, i32 0, i32 2
  %1340 = load i64, ptr %1339, align 8, !tbaa !49
  %1341 = icmp ne i64 %1340, -8
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1338, i1 noundef zeroext %1341, ptr noundef @.str.8, i32 noundef 64253, ptr noundef @.str.461)
  br label %1342

1342:                                             ; preds = %1336
  %1343 = load i64, ptr %45, align 8, !tbaa !9
  %1344 = add nsw i64 %1343, 1
  store i64 %1344, ptr %45, align 8, !tbaa !9
  br label %1136, !llvm.loop !72

1345:                                             ; preds = %1136
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %1346

1346:                                             ; preds = %1547, %1345
  %1347 = load i64, ptr %45, align 8, !tbaa !9
  %1348 = icmp sle i64 %1347, 50
  br i1 %1348, label %1349, label %1550

1349:                                             ; preds = %1346
  store i64 3, ptr %6, align 8, !tbaa !9
  store double 1.000000e+02, ptr %46, align 8, !tbaa !12
  %1350 = load i64, ptr %6, align 8, !tbaa !9
  %1351 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef %1350, ptr noundef %1351)
  %1352 = load i64, ptr %6, align 8, !tbaa !9
  %1353 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %14, i64 noundef %1352, ptr noundef %1353)
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %1354

1354:                                             ; preds = %1367, %1349
  %1355 = load i64, ptr %19, align 8, !tbaa !9
  %1356 = load i64, ptr %6, align 8, !tbaa !9
  %1357 = sub nsw i64 %1356, 1
  %1358 = icmp sle i64 %1355, %1357
  br i1 %1358, label %1359, label %1370

1359:                                             ; preds = %1354
  %1360 = load ptr, ptr %4, align 8, !tbaa !5
  %1361 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1360)
  %1362 = fadd double 6.000000e+00, %1361
  %1363 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1364 = load ptr, ptr %1363, align 8, !tbaa !11
  %1365 = load i64, ptr %19, align 8, !tbaa !9
  %1366 = getelementptr inbounds double, ptr %1364, i64 %1365
  store double %1362, ptr %1366, align 8, !tbaa !12
  br label %1367

1367:                                             ; preds = %1359
  %1368 = load i64, ptr %19, align 8, !tbaa !9
  %1369 = add nsw i64 %1368, 1
  store i64 %1369, ptr %19, align 8, !tbaa !9
  br label %1354, !llvm.loop !73

1370:                                             ; preds = %1354
  %1371 = load ptr, ptr %4, align 8, !tbaa !5
  %1372 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 20, ptr noundef %1371)
  store i64 %1372, ptr %48, align 8, !tbaa !9
  store i64 25, ptr %49, align 8, !tbaa !9
  %1373 = load i64, ptr %6, align 8, !tbaa !9
  %1374 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %1373, ptr noundef %7, ptr noundef %22, ptr noundef %1374)
  %1375 = load i64, ptr %49, align 8, !tbaa !9
  %1376 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef %22, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef %1375, ptr noundef %1376)
  %1377 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef %22, i1 noundef zeroext true, ptr noundef %1377)
  store i64 0, ptr %47, align 8, !tbaa !9
  store i8 0, ptr %50, align 1, !tbaa !34
  %1378 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %14, i32 0, i32 4
  %1379 = load ptr, ptr %1378, align 8, !tbaa !11
  %1380 = getelementptr inbounds double, ptr %1379, i64 0
  %1381 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1382 = load ptr, ptr %1381, align 8, !tbaa !11
  %1383 = getelementptr inbounds double, ptr %1382, i64 0
  %1384 = load i64, ptr %6, align 8, !tbaa !9
  %1385 = sub nsw i64 %1384, 1
  %1386 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1385)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1380, i64 noundef 1, ptr noundef %1383, i64 noundef 1, i64 noundef %1386)
  br label %1387

1387:                                             ; preds = %1517, %1516, %1496, %1370
  %1388 = load ptr, ptr %4, align 8, !tbaa !5
  %1389 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %1388)
  br i1 %1389, label %1390, label %1519

1390:                                             ; preds = %1387
  %1391 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 41
  %1392 = load i8, ptr %1391, align 1, !tbaa !16, !range !29, !noundef !30
  %1393 = trunc i8 %1392 to i1
  br i1 %1393, label %1394, label %1498

1394:                                             ; preds = %1390
  %1395 = load double, ptr %46, align 8, !tbaa !12
  %1396 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1397 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1396, i32 0, i32 4
  %1398 = load ptr, ptr %1397, align 8, !tbaa !11
  %1399 = getelementptr inbounds double, ptr %1398, i64 0
  %1400 = load double, ptr %1399, align 8, !tbaa !12
  %1401 = load ptr, ptr %4, align 8, !tbaa !5
  %1402 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1400, ptr noundef %1401)
  %1403 = fsub double %1402, 2.000000e+00
  %1404 = load ptr, ptr %4, align 8, !tbaa !5
  %1405 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1403, ptr noundef %1404)
  %1406 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1407 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1406, i32 0, i32 4
  %1408 = load ptr, ptr %1407, align 8, !tbaa !11
  %1409 = getelementptr inbounds double, ptr %1408, i64 1
  %1410 = load double, ptr %1409, align 8, !tbaa !12
  %1411 = load ptr, ptr %4, align 8, !tbaa !5
  %1412 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1410, ptr noundef %1411)
  %1413 = call double @llvm.fmuladd.f64(double %1395, double %1405, double %1412)
  %1414 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1415 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1414, i32 0, i32 4
  %1416 = load ptr, ptr %1415, align 8, !tbaa !11
  %1417 = getelementptr inbounds double, ptr %1416, i64 2
  %1418 = load double, ptr %1417, align 8, !tbaa !12
  %1419 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1420 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1419, i32 0, i32 4
  %1421 = load ptr, ptr %1420, align 8, !tbaa !11
  %1422 = getelementptr inbounds double, ptr %1421, i64 0
  %1423 = load double, ptr %1422, align 8, !tbaa !12
  %1424 = fsub double %1418, %1423
  %1425 = load ptr, ptr %4, align 8, !tbaa !5
  %1426 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1424, ptr noundef %1425)
  %1427 = fadd double %1413, %1426
  %1428 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 38
  store double %1427, ptr %1428, align 8, !tbaa !31
  %1429 = load double, ptr %46, align 8, !tbaa !12
  %1430 = fmul double 2.000000e+00, %1429
  %1431 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1432 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1431, i32 0, i32 4
  %1433 = load ptr, ptr %1432, align 8, !tbaa !11
  %1434 = getelementptr inbounds double, ptr %1433, i64 0
  %1435 = load double, ptr %1434, align 8, !tbaa !12
  %1436 = load ptr, ptr %4, align 8, !tbaa !5
  %1437 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1435, ptr noundef %1436)
  %1438 = fsub double %1437, 2.000000e+00
  %1439 = fmul double %1430, %1438
  %1440 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1441 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1440, i32 0, i32 4
  %1442 = load ptr, ptr %1441, align 8, !tbaa !11
  %1443 = getelementptr inbounds double, ptr %1442, i64 0
  %1444 = load double, ptr %1443, align 8, !tbaa !12
  %1445 = load ptr, ptr %4, align 8, !tbaa !5
  %1446 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1444, ptr noundef %1445)
  %1447 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1448 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1447, i32 0, i32 4
  %1449 = load ptr, ptr %1448, align 8, !tbaa !11
  %1450 = getelementptr inbounds double, ptr %1449, i64 2
  %1451 = load double, ptr %1450, align 8, !tbaa !12
  %1452 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1453 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1452, i32 0, i32 4
  %1454 = load ptr, ptr %1453, align 8, !tbaa !11
  %1455 = getelementptr inbounds double, ptr %1454, i64 0
  %1456 = load double, ptr %1455, align 8, !tbaa !12
  %1457 = fsub double %1451, %1456
  %1458 = fmul double 2.000000e+00, %1457
  %1459 = fmul double %1458, -1.000000e+00
  %1460 = call double @llvm.fmuladd.f64(double %1439, double %1446, double %1459)
  %1461 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1462 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1461, i32 0, i32 4
  %1463 = load ptr, ptr %1462, align 8, !tbaa !11
  %1464 = getelementptr inbounds double, ptr %1463, i64 0
  store double %1460, ptr %1464, align 8, !tbaa !12
  %1465 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1466 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1465, i32 0, i32 4
  %1467 = load ptr, ptr %1466, align 8, !tbaa !11
  %1468 = getelementptr inbounds double, ptr %1467, i64 1
  %1469 = load double, ptr %1468, align 8, !tbaa !12
  %1470 = fmul double 2.000000e+00, %1469
  %1471 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1472 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1471, i32 0, i32 4
  %1473 = load ptr, ptr %1472, align 8, !tbaa !11
  %1474 = getelementptr inbounds double, ptr %1473, i64 1
  store double %1470, ptr %1474, align 8, !tbaa !12
  %1475 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1476 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1475, i32 0, i32 4
  %1477 = load ptr, ptr %1476, align 8, !tbaa !11
  %1478 = getelementptr inbounds double, ptr %1477, i64 2
  %1479 = load double, ptr %1478, align 8, !tbaa !12
  %1480 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1481 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1480, i32 0, i32 4
  %1482 = load ptr, ptr %1481, align 8, !tbaa !11
  %1483 = getelementptr inbounds double, ptr %1482, i64 0
  %1484 = load double, ptr %1483, align 8, !tbaa !12
  %1485 = fsub double %1479, %1484
  %1486 = fmul double 2.000000e+00, %1485
  %1487 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 39
  %1488 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1487, i32 0, i32 4
  %1489 = load ptr, ptr %1488, align 8, !tbaa !11
  %1490 = getelementptr inbounds double, ptr %1489, i64 2
  store double %1486, ptr %1490, align 8, !tbaa !12
  %1491 = load i64, ptr %47, align 8, !tbaa !9
  %1492 = load i64, ptr %48, align 8, !tbaa !9
  %1493 = icmp eq i64 %1491, %1492
  br i1 %1493, label %1494, label %1496

1494:                                             ; preds = %1394
  %1495 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl23mincgrequestterminationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef %22, ptr noundef %1495)
  store i8 1, ptr %50, align 1, !tbaa !34
  br label %1496

1496:                                             ; preds = %1494, %1394
  %1497 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %47, ptr noundef %1497)
  br label %1387, !llvm.loop !74

1498:                                             ; preds = %1390
  %1499 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 42
  %1500 = load i8, ptr %1499, align 2, !tbaa !33, !range !29, !noundef !30
  %1501 = trunc i8 %1500 to i1
  br i1 %1501, label %1502, label %1517

1502:                                             ; preds = %1498
  %1503 = load i8, ptr %50, align 1, !tbaa !34, !range !29, !noundef !30
  %1504 = trunc i8 %1503 to i1
  br i1 %1504, label %1516, label %1505

1505:                                             ; preds = %1502
  %1506 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %14, i32 0, i32 4
  %1507 = load ptr, ptr %1506, align 8, !tbaa !11
  %1508 = getelementptr inbounds double, ptr %1507, i64 0
  %1509 = getelementptr inbounds %"struct.alglib_impl::mincgstate", ptr %22, i32 0, i32 37
  %1510 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1509, i32 0, i32 4
  %1511 = load ptr, ptr %1510, align 8, !tbaa !11
  %1512 = getelementptr inbounds double, ptr %1511, i64 0
  %1513 = load i64, ptr %6, align 8, !tbaa !9
  %1514 = sub nsw i64 %1513, 1
  %1515 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1514)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1508, i64 noundef 1, ptr noundef %1512, i64 noundef 1, i64 noundef %1515)
  br label %1516

1516:                                             ; preds = %1505, %1502
  br label %1387, !llvm.loop !74

1517:                                             ; preds = %1498
  %1518 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.26, ptr noundef %1518)
  br label %1387, !llvm.loop !74

1519:                                             ; preds = %1387
  %1520 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef %22, ptr noundef %7, ptr noundef %23, ptr noundef %1520)
  %1521 = load ptr, ptr %3, align 8, !tbaa !5
  %1522 = getelementptr inbounds %"struct.alglib_impl::mincgreport", ptr %23, i32 0, i32 2
  %1523 = load i64, ptr %1522, align 8, !tbaa !49
  %1524 = icmp ne i64 %1523, 8
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1521, i1 noundef zeroext %1524, ptr noundef @.str.8, i32 noundef 64306, ptr noundef @.str.462)
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %1525

1525:                                             ; preds = %1543, %1519
  %1526 = load i64, ptr %19, align 8, !tbaa !9
  %1527 = load i64, ptr %6, align 8, !tbaa !9
  %1528 = sub nsw i64 %1527, 1
  %1529 = icmp sle i64 %1526, %1528
  br i1 %1529, label %1530, label %1546

1530:                                             ; preds = %1525
  %1531 = load ptr, ptr %3, align 8, !tbaa !5
  %1532 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1533 = load ptr, ptr %1532, align 8, !tbaa !11
  %1534 = load i64, ptr %19, align 8, !tbaa !9
  %1535 = getelementptr inbounds double, ptr %1533, i64 %1534
  %1536 = load double, ptr %1535, align 8, !tbaa !12
  %1537 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %14, i32 0, i32 4
  %1538 = load ptr, ptr %1537, align 8, !tbaa !11
  %1539 = load i64, ptr %19, align 8, !tbaa !9
  %1540 = getelementptr inbounds double, ptr %1538, i64 %1539
  %1541 = load double, ptr %1540, align 8, !tbaa !12
  %1542 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1536, double noundef %1541)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1531, i1 noundef zeroext %1542, ptr noundef @.str.8, i32 noundef 64309, ptr noundef @.str.463)
  br label %1543

1543:                                             ; preds = %1530
  %1544 = load i64, ptr %19, align 8, !tbaa !9
  %1545 = add nsw i64 %1544, 1
  store i64 %1545, ptr %19, align 8, !tbaa !9
  br label %1525, !llvm.loop !75

1546:                                             ; preds = %1525
  br label %1547

1547:                                             ; preds = %1546
  %1548 = load i64, ptr %45, align 8, !tbaa !9
  %1549 = add nsw i64 %1548, 1
  store i64 %1549, ptr %45, align 8, !tbaa !9
  br label %1346, !llvm.loop !76

1550:                                             ; preds = %1346
  %1551 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1551)
  store i32 0, ptr %51, align 4
  br label %1552

1552:                                             ; preds = %1550, %1089, %952, %761
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 24, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 5840, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  %1553 = load i32, ptr %51, align 4
  switch i32 %1553, label %1555 [
    i32 0, label %1554
    i32 1, label %1554
  ]

1554:                                             ; preds = %1552, %1552
  ret void

1555:                                             ; preds = %1552
  unreachable
}

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

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

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

declare noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!17, !18, i64 1049}
!17 = !{!"_ZTSN11alglib_impl10mincgstateE", !10, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !13, i64 40, !13, i64 48, !18, i64 56, !18, i64 57, !10, i64 64, !10, i64 72, !19, i64 80, !19, i64 144, !21, i64 208, !10, i64 288, !19, i64 296, !13, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !19, i64 392, !19, i64 456, !19, i64 520, !19, i64 584, !19, i64 648, !13, i64 712, !13, i64 720, !13, i64 728, !19, i64 736, !13, i64 800, !13, i64 808, !10, i64 816, !18, i64 824, !18, i64 825, !13, i64 832, !19, i64 840, !10, i64 904, !19, i64 912, !13, i64 976, !19, i64 984, !18, i64 1048, !18, i64 1049, !18, i64 1050, !18, i64 1051, !18, i64 1052, !18, i64 1053, !18, i64 1054, !22, i64 1056, !10, i64 1320, !10, i64 1328, !10, i64 1336, !10, i64 1344, !24, i64 1352, !13, i64 1544, !13, i64 1552, !13, i64 1560, !13, i64 1568, !13, i64 1576, !13, i64 1584, !13, i64 1592, !19, i64 1600, !19, i64 1664, !19, i64 1728, !13, i64 1792, !10, i64 1800, !25, i64 1808, !19, i64 5776}
!18 = !{!"bool", !7, i64 0}
!19 = !{!"_ZTSN11alglib_impl9ae_vectorE", !10, i64 0, !10, i64 8, !18, i64 16, !20, i64 24, !7, i64 56}
!20 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!21 = !{!"_ZTSN11alglib_impl9ae_matrixE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !18, i64 32, !20, i64 40, !7, i64 72}
!22 = !{!"_ZTSN11alglib_impl10rcommstateE", !23, i64 0, !19, i64 8, !19, i64 72, !19, i64 136, !19, i64 200}
!23 = !{!"int", !7, i64 0}
!24 = !{!"_ZTSN11alglib_impl11linminstateE", !18, i64 0, !18, i64 1, !10, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !13, i64 120, !13, i64 128, !13, i64 136, !13, i64 144, !13, i64 152, !13, i64 160, !13, i64 168, !13, i64 176, !13, i64 184}
!25 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !10, i64 0, !10, i64 8, !18, i64 16, !19, i64 24, !10, i64 88, !19, i64 96, !19, i64 160, !19, i64 224, !21, i64 288, !19, i64 368, !19, i64 432, !10, i64 496, !18, i64 504, !18, i64 505, !13, i64 512, !13, i64 520, !18, i64 528, !26, i64 536, !13, i64 832, !13, i64 840, !27, i64 848, !27, i64 1152, !13, i64 1456, !13, i64 1464, !28, i64 1472, !28, i64 1784, !18, i64 2096, !19, i64 2104, !19, i64 2168, !21, i64 2232, !22, i64 2312, !19, i64 2576, !19, i64 2640, !19, i64 2704, !19, i64 2768, !19, i64 2832, !19, i64 2896, !19, i64 2960, !19, i64 3024, !21, i64 3088, !21, i64 3168, !19, i64 3248, !19, i64 3312, !19, i64 3376, !19, i64 3440, !19, i64 3504, !19, i64 3568, !19, i64 3632, !19, i64 3696, !19, i64 3760, !19, i64 3824, !21, i64 3888}
!26 = !{!"_ZTSN11alglib_impl14optguardreportE", !18, i64 0, !18, i64 1, !10, i64 8, !13, i64 16, !18, i64 24, !18, i64 25, !18, i64 26, !10, i64 32, !13, i64 40, !18, i64 48, !10, i64 56, !10, i64 64, !19, i64 72, !21, i64 136, !21, i64 216}
!27 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !18, i64 0, !10, i64 8, !19, i64 16, !19, i64 80, !10, i64 144, !19, i64 152, !19, i64 216, !10, i64 280, !10, i64 288, !10, i64 296}
!28 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !18, i64 0, !10, i64 8, !10, i64 16, !19, i64 24, !19, i64 88, !10, i64 152, !19, i64 160, !19, i64 224, !10, i64 288, !10, i64 296, !10, i64 304}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = !{!17, !13, i64 976}
!32 = distinct !{!32, !15}
!33 = !{!17, !18, i64 1050}
!34 = !{!18, !18, i64 0}
!35 = distinct !{!35, !15}
!36 = distinct !{!36, !15}
!37 = distinct !{!37, !15}
!38 = distinct !{!38, !15}
!39 = !{!17, !18, i64 1048}
!40 = distinct !{!40, !15}
!41 = distinct !{!41, !15}
!42 = distinct !{!42, !15}
!43 = distinct !{!43, !15}
!44 = distinct !{!44, !15}
!45 = distinct !{!45, !15}
!46 = distinct !{!46, !15}
!47 = distinct !{!47, !15}
!48 = distinct !{!48, !15}
!49 = !{!50, !10, i64 16}
!50 = !{!"_ZTSN11alglib_impl11mincgreportE", !10, i64 0, !10, i64 8, !10, i64 16}
!51 = distinct !{!51, !15}
!52 = distinct !{!52, !15}
!53 = distinct !{!53, !15}
!54 = distinct !{!54, !15}
!55 = distinct !{!55, !15}
!56 = distinct !{!56, !15}
!57 = distinct !{!57, !15}
!58 = !{!59, !13, i64 16}
!59 = !{!"_ZTSN11alglib_impl8ae_stateE", !10, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !6, i64 32, !20, i64 40, !6, i64 72, !60, i64 80, !6, i64 88, !61, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!60 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !7, i64 0}
!61 = !{!"long long", !7, i64 0}
!62 = distinct !{!62, !15}
!63 = distinct !{!63, !15}
!64 = distinct !{!64, !15}
!65 = distinct !{!65, !15}
!66 = !{!59, !13, i64 8}
!67 = !{!59, !13, i64 24}
!68 = distinct !{!68, !15}
!69 = distinct !{!69, !15}
!70 = distinct !{!70, !15}
!71 = distinct !{!71, !15}
!72 = distinct !{!72, !15}
!73 = distinct !{!73, !15}
!74 = distinct !{!74, !15}
!75 = distinct !{!75, !15}
!76 = distinct !{!76, !15}


; 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_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { 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::mincgstate" = type { i64, double, double, double, i64, double, double, i8, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, double, %"struct.alglib_impl::ae_vector", double, double, i64, i8, i8, double, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, i8, i8, %"struct.alglib_impl::rcommstate", i64, i64, i64, i64, %"struct.alglib_impl::linminstate", double, double, double, double, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::linminstate" = type { i8, i8, i64, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"struct.alglib_impl::smoothnessmonitor" = type { i64, i64, i8, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, i8, double, double, i8, %"struct.alglib_impl::optguardreport", double, double, %"struct.alglib_impl::optguardnonc1test0report", %"struct.alglib_impl::optguardnonc1test0report", double, double, %"struct.alglib_impl::optguardnonc1test1report", %"struct.alglib_impl::optguardnonc1test1report", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardreport" = type { i8, i8, i64, double, i8, i8, i8, i64, double, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardnonc1test0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test1report" = type { i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::mincgreport" = type { i64, i64, i64 }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }

@.str.8 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.463 = 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

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

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

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

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z9testotherPbPN11alglib_impl8ae_stateE(ptr noundef %0, ptr noundef %1) local_unnamed_addr #4 {
  %3 = alloca %"struct.alglib_impl::ae_frame", align 8
  %4 = alloca %"struct.alglib_impl::ae_vector", align 8
  %5 = alloca %"struct.alglib_impl::ae_vector", align 8
  %6 = alloca %"struct.alglib_impl::ae_vector", align 8
  %7 = alloca %"struct.alglib_impl::ae_vector", align 8
  %8 = alloca %"struct.alglib_impl::ae_vector", align 8
  %9 = alloca %"struct.alglib_impl::ae_vector", align 8
  %10 = alloca %"struct.alglib_impl::ae_vector", align 8
  %11 = alloca %"struct.alglib_impl::ae_vector", align 8
  %12 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %13 = alloca i64, align 8
  %14 = alloca %"struct.alglib_impl::mincgstate", align 8
  %15 = alloca %"struct.alglib_impl::mincgreport", align 8
  %16 = alloca %"struct.alglib_impl::hqrndstate", align 8
  %17 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 5840, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %1, ptr noundef nonnull %3)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %4, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %6, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %7, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %8, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %10, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %12, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(5840) %14, i8 0, i64 5840, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, i8 0, i64 24, i1 false)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %4, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %5, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %6, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %7, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %8, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %9, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %10, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %11, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl16_mincgstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %14, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl17_mincgreport_initEPvPNS_8ae_stateEb(ptr noundef nonnull %15, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl16_hqrndstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %16, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14hqrndrandomizeEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %16, ptr noundef %1)
  %18 = getelementptr inbounds i8, ptr %4, i64 56
  %19 = getelementptr inbounds i8, ptr %14, i64 1049
  %20 = getelementptr inbounds i8, ptr %14, i64 976
  %21 = getelementptr inbounds i8, ptr %14, i64 968
  %22 = getelementptr inbounds i8, ptr %14, i64 1040
  %23 = getelementptr inbounds i8, ptr %14, i64 1050
  %24 = getelementptr inbounds i8, ptr %11, i64 56
  %25 = getelementptr inbounds i8, ptr %14, i64 1048
  %26 = getelementptr inbounds i8, ptr %5, i64 56
  %27 = getelementptr inbounds i8, ptr %6, i64 56
  %28 = getelementptr inbounds i8, ptr %8, i64 56
  %29 = getelementptr inbounds i8, ptr %15, i64 16
  %30 = getelementptr inbounds i8, ptr %1, i64 16
  br label %35

.preheader438:                                    ; preds = %719
  %31 = getelementptr inbounds i8, ptr %1, i64 8
  %32 = getelementptr inbounds i8, ptr %7, i64 56
  %33 = getelementptr inbounds i8, ptr %9, i64 56
  %34 = getelementptr inbounds i8, ptr %12, i64 72
  br label %721

35:                                               ; preds = %2, %719
  %.0423498 = phi i64 [ -1, %2 ], [ %720, %719 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 50, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef 50, ptr noundef %1)
  %36 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+00, ptr %36, align 8, !tbaa !8
  %37 = load ptr, ptr %18, align 8, !tbaa !5
  %38 = getelementptr inbounds i8, ptr %37, i64 8
  store double 1.000000e+00, ptr %38, align 8, !tbaa !8
  %39 = load ptr, ptr %18, align 8, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %39, i64 16
  store double 1.000000e+00, ptr %40, align 8, !tbaa !8
  %41 = load ptr, ptr %18, align 8, !tbaa !5
  %42 = getelementptr inbounds i8, ptr %41, i64 24
  store double 1.000000e+00, ptr %42, align 8, !tbaa !8
  %43 = load ptr, ptr %18, align 8, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %43, i64 32
  store double 1.000000e+00, ptr %44, align 8, !tbaa !8
  %45 = load ptr, ptr %18, align 8, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %45, i64 40
  store double 1.000000e+00, ptr %46, align 8, !tbaa !8
  %47 = load ptr, ptr %18, align 8, !tbaa !5
  %48 = getelementptr inbounds i8, ptr %47, i64 48
  store double 1.000000e+00, ptr %48, align 8, !tbaa !8
  %49 = load ptr, ptr %18, align 8, !tbaa !5
  %50 = getelementptr inbounds i8, ptr %49, i64 56
  store double 1.000000e+00, ptr %50, align 8, !tbaa !8
  %51 = load ptr, ptr %18, align 8, !tbaa !5
  %52 = getelementptr inbounds i8, ptr %51, i64 64
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %52, align 8, !tbaa !8
  %53 = getelementptr inbounds i8, ptr %51, i64 80
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %53, align 8, !tbaa !8
  %54 = getelementptr inbounds i8, ptr %51, i64 96
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %54, align 8, !tbaa !8
  %55 = getelementptr inbounds i8, ptr %51, i64 112
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %55, align 8, !tbaa !8
  %56 = getelementptr inbounds i8, ptr %51, i64 128
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %56, align 8, !tbaa !8
  %57 = getelementptr inbounds i8, ptr %51, i64 144
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %57, align 8, !tbaa !8
  %58 = getelementptr inbounds i8, ptr %51, i64 160
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %58, align 8, !tbaa !8
  %59 = getelementptr inbounds i8, ptr %51, i64 176
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %59, align 8, !tbaa !8
  %60 = getelementptr inbounds i8, ptr %51, i64 192
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %60, align 8, !tbaa !8
  %61 = getelementptr inbounds i8, ptr %51, i64 208
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %61, align 8, !tbaa !8
  %62 = getelementptr inbounds i8, ptr %51, i64 224
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %62, align 8, !tbaa !8
  %63 = getelementptr inbounds i8, ptr %51, i64 240
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %63, align 8, !tbaa !8
  %64 = getelementptr inbounds i8, ptr %51, i64 256
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %64, align 8, !tbaa !8
  %65 = getelementptr inbounds i8, ptr %51, i64 272
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %65, align 8, !tbaa !8
  %66 = getelementptr inbounds i8, ptr %51, i64 288
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %66, align 8, !tbaa !8
  %67 = getelementptr inbounds i8, ptr %51, i64 304
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %67, align 8, !tbaa !8
  %68 = getelementptr inbounds i8, ptr %51, i64 320
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %68, align 8, !tbaa !8
  %69 = getelementptr inbounds i8, ptr %51, i64 336
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %69, align 8, !tbaa !8
  %70 = getelementptr inbounds i8, ptr %51, i64 352
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %70, align 8, !tbaa !8
  %71 = getelementptr inbounds i8, ptr %51, i64 368
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %71, align 8, !tbaa !8
  %72 = getelementptr inbounds i8, ptr %51, i64 384
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %72, align 8, !tbaa !8
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 50, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 100, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef nonnull %14, i1 noundef zeroext true, ptr noundef %1)
  %73 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %73, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %35, %125
  %.0396453 = phi double [ %.1397, %125 ], [ 1.000000e+300, %35 ]
  %74 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %75 = trunc nuw i8 %74 to i1
  br i1 %75, label %76, label %.loopexit446

76:                                               ; preds = %.lr.ph
  store double 0.000000e+00, ptr %20, align 8, !tbaa !27
  br label %77

77:                                               ; preds = %76, %77
  %.1406451 = phi i64 [ 0, %76 ], [ %79, %77 ]
  %78 = load double, ptr %20, align 8, !tbaa !27
  %79 = add nuw nsw i64 %.1406451, 1
  %80 = uitofp nneg i64 %79 to double
  %81 = load ptr, ptr %21, align 8, !tbaa !5
  %82 = getelementptr inbounds double, ptr %81, i64 %.1406451
  %83 = load double, ptr %82, align 8, !tbaa !8
  %84 = fmul double %83, %80
  %85 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %84, ptr noundef %1)
  %86 = fadd double %78, %85
  store double %86, ptr %20, align 8, !tbaa !27
  %87 = shl nuw nsw i64 %79, 1
  %88 = uitofp nneg i64 %87 to double
  %89 = load ptr, ptr %21, align 8, !tbaa !5
  %90 = getelementptr inbounds double, ptr %89, i64 %.1406451
  %91 = load double, ptr %90, align 8, !tbaa !8
  %92 = fmul double %91, %88
  %93 = load ptr, ptr %22, align 8, !tbaa !5
  %94 = getelementptr inbounds double, ptr %93, i64 %.1406451
  store double %92, ptr %94, align 8, !tbaa !8
  %exitcond.not = icmp eq i64 %79, 50
  br i1 %exitcond.not, label %.loopexit446, label %77, !llvm.loop !28

.loopexit446:                                     ; preds = %77, %.lr.ph
  %95 = load i8, ptr %23, align 2, !tbaa !30, !range !25, !noundef !26
  %96 = trunc nuw i8 %95 to i1
  br i1 %96, label %97, label %125

97:                                               ; preds = %.loopexit446
  %98 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %99 = trunc nuw i8 %98 to i1
  br i1 %99, label %103, label %100

100:                                              ; preds = %97
  %101 = load double, ptr %20, align 8, !tbaa !27
  %102 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %101, double noundef %.0396453)
  br label %103

103:                                              ; preds = %100, %97
  %104 = phi i1 [ true, %97 ], [ %102, %100 ]
  %105 = zext i1 %104 to i8
  store i8 %105, ptr %0, align 1, !tbaa !31
  %106 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %.0396453, double noundef 1.000000e+300)
  br i1 %106, label %.preheader444.preheader, label %.loopexit445

.preheader444.preheader:                          ; preds = %103
  %.pre = load i8, ptr %0, align 1, !tbaa !31, !range !25
  br label %.preheader444

.preheader444:                                    ; preds = %.preheader444.preheader, %117
  %107 = phi i8 [ %119, %117 ], [ %.pre, %.preheader444.preheader ]
  %.2452 = phi i64 [ %120, %117 ], [ 0, %.preheader444.preheader ]
  %108 = trunc nuw i8 %107 to i1
  br i1 %108, label %117, label %109

109:                                              ; preds = %.preheader444
  %110 = load ptr, ptr %21, align 8, !tbaa !5
  %111 = getelementptr inbounds double, ptr %110, i64 %.2452
  %112 = load double, ptr %111, align 8, !tbaa !8
  %113 = load ptr, ptr %18, align 8, !tbaa !5
  %114 = getelementptr inbounds double, ptr %113, i64 %.2452
  %115 = load double, ptr %114, align 8, !tbaa !8
  %116 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %112, double noundef %115)
  br label %117

117:                                              ; preds = %109, %.preheader444
  %118 = phi i1 [ true, %.preheader444 ], [ %116, %109 ]
  %119 = zext i1 %118 to i8
  store i8 %119, ptr %0, align 1, !tbaa !31
  %120 = add nuw nsw i64 %.2452, 1
  %exitcond519.not = icmp eq i64 %120, 50
  br i1 %exitcond519.not, label %.loopexit445, label %.preheader444, !llvm.loop !32

.loopexit445:                                     ; preds = %117, %103
  %121 = load double, ptr %20, align 8, !tbaa !27
  %122 = load ptr, ptr %24, align 8, !tbaa !5
  %123 = load ptr, ptr %21, align 8, !tbaa !5
  %124 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef 49)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %122, i64 noundef 1, ptr noundef %123, i64 noundef 1, i64 noundef %124)
  br label %125

125:                                              ; preds = %.loopexit445, %.loopexit446
  %.1397 = phi double [ %121, %.loopexit445 ], [ %.0396453, %.loopexit446 ]
  %126 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %126, label %.lr.ph, label %._crit_edge, !llvm.loop !33

._crit_edge:                                      ; preds = %125, %35
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %.pre543 = load i8, ptr %0, align 1, !tbaa !31, !range !25
  br label %127

127:                                              ; preds = %._crit_edge, %138
  %128 = phi i8 [ %.pre543, %._crit_edge ], [ %140, %138 ]
  %.3454 = phi i64 [ 0, %._crit_edge ], [ %141, %138 ]
  %129 = trunc nuw i8 %128 to i1
  br i1 %129, label %138, label %130

130:                                              ; preds = %127
  %131 = load ptr, ptr %18, align 8, !tbaa !5
  %132 = getelementptr inbounds double, ptr %131, i64 %.3454
  %133 = load double, ptr %132, align 8, !tbaa !8
  %134 = load ptr, ptr %24, align 8, !tbaa !5
  %135 = getelementptr inbounds double, ptr %134, i64 %.3454
  %136 = load double, ptr %135, align 8, !tbaa !8
  %137 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %133, double noundef %136)
  br label %138

138:                                              ; preds = %130, %127
  %139 = phi i1 [ true, %127 ], [ %137, %130 ]
  %140 = zext i1 %139 to i8
  store i8 %140, ptr %0, align 1, !tbaa !31
  %141 = add nuw nsw i64 %.3454, 1
  %exitcond520.not = icmp eq i64 %141, 50
  br i1 %exitcond520.not, label %.preheader449, label %127, !llvm.loop !34

.preheader449:                                    ; preds = %138
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 50, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef 50, ptr noundef %1)
  %142 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+00, ptr %142, align 8, !tbaa !8
  %143 = load ptr, ptr %18, align 8, !tbaa !5
  %144 = getelementptr inbounds i8, ptr %143, i64 8
  store double 1.000000e+00, ptr %144, align 8, !tbaa !8
  %145 = load ptr, ptr %18, align 8, !tbaa !5
  %146 = getelementptr inbounds i8, ptr %145, i64 16
  store double 1.000000e+00, ptr %146, align 8, !tbaa !8
  %147 = load ptr, ptr %18, align 8, !tbaa !5
  %148 = getelementptr inbounds i8, ptr %147, i64 24
  store double 1.000000e+00, ptr %148, align 8, !tbaa !8
  %149 = load ptr, ptr %18, align 8, !tbaa !5
  %150 = getelementptr inbounds i8, ptr %149, i64 32
  store double 1.000000e+00, ptr %150, align 8, !tbaa !8
  %151 = load ptr, ptr %18, align 8, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %151, i64 40
  store double 1.000000e+00, ptr %152, align 8, !tbaa !8
  %153 = load ptr, ptr %18, align 8, !tbaa !5
  %154 = getelementptr inbounds i8, ptr %153, i64 48
  store double 1.000000e+00, ptr %154, align 8, !tbaa !8
  %155 = load ptr, ptr %18, align 8, !tbaa !5
  %156 = getelementptr inbounds i8, ptr %155, i64 56
  store double 1.000000e+00, ptr %156, align 8, !tbaa !8
  %157 = load ptr, ptr %18, align 8, !tbaa !5
  %158 = getelementptr inbounds i8, ptr %157, i64 64
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %158, align 8, !tbaa !8
  %159 = getelementptr inbounds i8, ptr %157, i64 80
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %159, align 8, !tbaa !8
  %160 = getelementptr inbounds i8, ptr %157, i64 96
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %160, align 8, !tbaa !8
  %161 = getelementptr inbounds i8, ptr %157, i64 112
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %161, align 8, !tbaa !8
  %162 = getelementptr inbounds i8, ptr %157, i64 128
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %162, align 8, !tbaa !8
  %163 = getelementptr inbounds i8, ptr %157, i64 144
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %163, align 8, !tbaa !8
  %164 = getelementptr inbounds i8, ptr %157, i64 160
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %164, align 8, !tbaa !8
  %165 = getelementptr inbounds i8, ptr %157, i64 176
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %165, align 8, !tbaa !8
  %166 = getelementptr inbounds i8, ptr %157, i64 192
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %166, align 8, !tbaa !8
  %167 = getelementptr inbounds i8, ptr %157, i64 208
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %167, align 8, !tbaa !8
  %168 = getelementptr inbounds i8, ptr %157, i64 224
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %168, align 8, !tbaa !8
  %169 = getelementptr inbounds i8, ptr %157, i64 240
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %169, align 8, !tbaa !8
  %170 = getelementptr inbounds i8, ptr %157, i64 256
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %170, align 8, !tbaa !8
  %171 = getelementptr inbounds i8, ptr %157, i64 272
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %171, align 8, !tbaa !8
  %172 = getelementptr inbounds i8, ptr %157, i64 288
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %172, align 8, !tbaa !8
  %173 = getelementptr inbounds i8, ptr %157, i64 304
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %173, align 8, !tbaa !8
  %174 = getelementptr inbounds i8, ptr %157, i64 320
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %174, align 8, !tbaa !8
  %175 = getelementptr inbounds i8, ptr %157, i64 336
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %175, align 8, !tbaa !8
  %176 = getelementptr inbounds i8, ptr %157, i64 352
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %176, align 8, !tbaa !8
  %177 = getelementptr inbounds i8, ptr %157, i64 368
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %177, align 8, !tbaa !8
  %178 = getelementptr inbounds i8, ptr %157, i64 384
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %178, align 8, !tbaa !8
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 50, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 25, ptr noundef %1)
  %179 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %179, label %.lr.ph460, label %._crit_edge461

.lr.ph460:                                        ; preds = %.preheader449, %217
  %.0408458 = phi i1 [ %223, %217 ], [ false, %.preheader449 ]
  %.0409457 = phi i1 [ %220, %217 ], [ false, %.preheader449 ]
  %180 = load i8, ptr %25, align 8, !tbaa !35, !range !25, !noundef !26
  %181 = trunc nuw i8 %180 to i1
  br i1 %181, label %185, label %182

182:                                              ; preds = %.lr.ph460
  %183 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %184 = trunc nuw i8 %183 to i1
  br i1 %184, label %185, label %.preheader574

185:                                              ; preds = %182, %.lr.ph460
  store double 0.000000e+00, ptr %20, align 8, !tbaa !27
  br label %.preheader574

.preheader574:                                    ; preds = %185, %182
  br label %186

186:                                              ; preds = %.preheader574, %215
  %.5456 = phi i64 [ %216, %215 ], [ 0, %.preheader574 ]
  %187 = load i8, ptr %25, align 8, !tbaa !35, !range !25, !noundef !26
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %192, label %189

189:                                              ; preds = %186
  %190 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %191 = trunc nuw i8 %190 to i1
  br i1 %191, label %192, label %202

192:                                              ; preds = %189, %186
  %193 = load double, ptr %20, align 8, !tbaa !27
  %194 = add nuw nsw i64 %.5456, 1
  %195 = uitofp nneg i64 %194 to double
  %196 = load ptr, ptr %21, align 8, !tbaa !5
  %197 = getelementptr inbounds double, ptr %196, i64 %.5456
  %198 = load double, ptr %197, align 8, !tbaa !8
  %199 = fmul double %198, %195
  %200 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %199, ptr noundef %1)
  %201 = fadd double %193, %200
  store double %201, ptr %20, align 8, !tbaa !27
  %.pre544 = load i8, ptr %19, align 1, !tbaa !10, !range !25
  br label %202

202:                                              ; preds = %192, %189
  %203 = phi i8 [ %.pre544, %192 ], [ %190, %189 ]
  %204 = trunc nuw i8 %203 to i1
  br i1 %204, label %205, label %215

205:                                              ; preds = %202
  %206 = shl nuw nsw i64 %.5456, 1
  %207 = add nuw nsw i64 %206, 2
  %208 = uitofp nneg i64 %207 to double
  %209 = load ptr, ptr %21, align 8, !tbaa !5
  %210 = getelementptr inbounds double, ptr %209, i64 %.5456
  %211 = load double, ptr %210, align 8, !tbaa !8
  %212 = fmul double %211, %208
  %213 = load ptr, ptr %22, align 8, !tbaa !5
  %214 = getelementptr inbounds double, ptr %213, i64 %.5456
  store double %212, ptr %214, align 8, !tbaa !8
  br label %215

215:                                              ; preds = %202, %205
  %216 = add nuw nsw i64 %.5456, 1
  %exitcond522.not = icmp eq i64 %216, 50
  br i1 %exitcond522.not, label %217, label %186, !llvm.loop !36

217:                                              ; preds = %215
  %218 = load i8, ptr %25, align 8, !range !25
  %219 = trunc nuw i8 %218 to i1
  %220 = select i1 %.0409457, i1 true, i1 %219
  %221 = load i8, ptr %19, align 1, !range !25
  %222 = trunc nuw i8 %221 to i1
  %223 = select i1 %.0408458, i1 true, i1 %222
  %224 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %224, label %.lr.ph460, label %._crit_edge461, !llvm.loop !37

._crit_edge461:                                   ; preds = %217, %.preheader449
  %.0409.lcssa = phi i1 [ false, %.preheader449 ], [ %220, %217 ]
  %.0408.lcssa = phi i1 [ false, %.preheader449 ], [ %223, %217 ]
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %225 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %226 = trunc nuw i8 %225 to i1
  br i1 %226, label %.preheader449.1, label %227

227:                                              ; preds = %._crit_edge461
  %228 = xor i1 %.0408.lcssa, true
  %spec.select = select i1 %.0409.lcssa, i1 true, i1 %228
  br label %.preheader449.1

.preheader449.1:                                  ; preds = %._crit_edge461, %227
  %229 = phi i1 [ true, %._crit_edge461 ], [ %spec.select, %227 ]
  %230 = zext i1 %229 to i8
  store i8 %230, ptr %0, align 1, !tbaa !31
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 50, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef 50, ptr noundef %1)
  %231 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+00, ptr %231, align 8, !tbaa !8
  %232 = load ptr, ptr %18, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %232, i64 8
  store double 1.000000e+00, ptr %233, align 8, !tbaa !8
  %234 = load ptr, ptr %18, align 8, !tbaa !5
  %235 = getelementptr inbounds i8, ptr %234, i64 16
  store double 1.000000e+00, ptr %235, align 8, !tbaa !8
  %236 = load ptr, ptr %18, align 8, !tbaa !5
  %237 = getelementptr inbounds i8, ptr %236, i64 24
  store double 1.000000e+00, ptr %237, align 8, !tbaa !8
  %238 = load ptr, ptr %18, align 8, !tbaa !5
  %239 = getelementptr inbounds i8, ptr %238, i64 32
  store double 1.000000e+00, ptr %239, align 8, !tbaa !8
  %240 = load ptr, ptr %18, align 8, !tbaa !5
  %241 = getelementptr inbounds i8, ptr %240, i64 40
  store double 1.000000e+00, ptr %241, align 8, !tbaa !8
  %242 = load ptr, ptr %18, align 8, !tbaa !5
  %243 = getelementptr inbounds i8, ptr %242, i64 48
  store double 1.000000e+00, ptr %243, align 8, !tbaa !8
  %244 = load ptr, ptr %18, align 8, !tbaa !5
  %245 = getelementptr inbounds i8, ptr %244, i64 56
  store double 1.000000e+00, ptr %245, align 8, !tbaa !8
  %246 = load ptr, ptr %18, align 8, !tbaa !5
  %247 = getelementptr inbounds i8, ptr %246, i64 64
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %247, align 8, !tbaa !8
  %248 = getelementptr inbounds i8, ptr %246, i64 80
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %248, align 8, !tbaa !8
  %249 = getelementptr inbounds i8, ptr %246, i64 96
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %249, align 8, !tbaa !8
  %250 = getelementptr inbounds i8, ptr %246, i64 112
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %250, align 8, !tbaa !8
  %251 = getelementptr inbounds i8, ptr %246, i64 128
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %251, align 8, !tbaa !8
  %252 = getelementptr inbounds i8, ptr %246, i64 144
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %252, align 8, !tbaa !8
  %253 = getelementptr inbounds i8, ptr %246, i64 160
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %253, align 8, !tbaa !8
  %254 = getelementptr inbounds i8, ptr %246, i64 176
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %254, align 8, !tbaa !8
  %255 = getelementptr inbounds i8, ptr %246, i64 192
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %255, align 8, !tbaa !8
  %256 = getelementptr inbounds i8, ptr %246, i64 208
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %256, align 8, !tbaa !8
  %257 = getelementptr inbounds i8, ptr %246, i64 224
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %257, align 8, !tbaa !8
  %258 = getelementptr inbounds i8, ptr %246, i64 240
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %258, align 8, !tbaa !8
  %259 = getelementptr inbounds i8, ptr %246, i64 256
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %259, align 8, !tbaa !8
  %260 = getelementptr inbounds i8, ptr %246, i64 272
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %260, align 8, !tbaa !8
  %261 = getelementptr inbounds i8, ptr %246, i64 288
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %261, align 8, !tbaa !8
  %262 = getelementptr inbounds i8, ptr %246, i64 304
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %262, align 8, !tbaa !8
  %263 = getelementptr inbounds i8, ptr %246, i64 320
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %263, align 8, !tbaa !8
  %264 = getelementptr inbounds i8, ptr %246, i64 336
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %264, align 8, !tbaa !8
  %265 = getelementptr inbounds i8, ptr %246, i64 352
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %265, align 8, !tbaa !8
  %266 = getelementptr inbounds i8, ptr %246, i64 368
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %266, align 8, !tbaa !8
  %267 = getelementptr inbounds i8, ptr %246, i64 384
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %267, align 8, !tbaa !8
  call void @_ZN11alglib_impl12mincgcreatefElPNS_9ae_vectorEdPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 50, ptr noundef nonnull %4, double noundef 0x3EB0C6F7A0B5ED8D, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 25, ptr noundef %1)
  %268 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %268, label %.lr.ph460.1, label %._crit_edge461.1

.lr.ph460.1:                                      ; preds = %.preheader449.1, %306
  %.0408458.1 = phi i1 [ %312, %306 ], [ false, %.preheader449.1 ]
  %.0409457.1 = phi i1 [ %309, %306 ], [ false, %.preheader449.1 ]
  %269 = load i8, ptr %25, align 8, !tbaa !35, !range !25, !noundef !26
  %270 = trunc nuw i8 %269 to i1
  br i1 %270, label %274, label %271

271:                                              ; preds = %.lr.ph460.1
  %272 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %273 = trunc nuw i8 %272 to i1
  br i1 %273, label %274, label %.preheader574.1

274:                                              ; preds = %271, %.lr.ph460.1
  store double 0.000000e+00, ptr %20, align 8, !tbaa !27
  br label %.preheader574.1

.preheader574.1:                                  ; preds = %274, %271
  br label %275

275:                                              ; preds = %304, %.preheader574.1
  %.5456.1 = phi i64 [ %305, %304 ], [ 0, %.preheader574.1 ]
  %276 = load i8, ptr %25, align 8, !tbaa !35, !range !25, !noundef !26
  %277 = trunc nuw i8 %276 to i1
  br i1 %277, label %281, label %278

278:                                              ; preds = %275
  %279 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %280 = trunc nuw i8 %279 to i1
  br i1 %280, label %281, label %291

281:                                              ; preds = %278, %275
  %282 = load double, ptr %20, align 8, !tbaa !27
  %283 = add nuw nsw i64 %.5456.1, 1
  %284 = uitofp nneg i64 %283 to double
  %285 = load ptr, ptr %21, align 8, !tbaa !5
  %286 = getelementptr inbounds double, ptr %285, i64 %.5456.1
  %287 = load double, ptr %286, align 8, !tbaa !8
  %288 = fmul double %287, %284
  %289 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %288, ptr noundef %1)
  %290 = fadd double %282, %289
  store double %290, ptr %20, align 8, !tbaa !27
  %.pre544.1 = load i8, ptr %19, align 1, !tbaa !10, !range !25
  br label %291

291:                                              ; preds = %281, %278
  %292 = phi i8 [ %.pre544.1, %281 ], [ %279, %278 ]
  %293 = trunc nuw i8 %292 to i1
  br i1 %293, label %294, label %304

294:                                              ; preds = %291
  %295 = shl nuw nsw i64 %.5456.1, 1
  %296 = add nuw nsw i64 %295, 2
  %297 = uitofp nneg i64 %296 to double
  %298 = load ptr, ptr %21, align 8, !tbaa !5
  %299 = getelementptr inbounds double, ptr %298, i64 %.5456.1
  %300 = load double, ptr %299, align 8, !tbaa !8
  %301 = fmul double %300, %297
  %302 = load ptr, ptr %22, align 8, !tbaa !5
  %303 = getelementptr inbounds double, ptr %302, i64 %.5456.1
  store double %301, ptr %303, align 8, !tbaa !8
  br label %304

304:                                              ; preds = %294, %291
  %305 = add nuw nsw i64 %.5456.1, 1
  %exitcond522.not.1 = icmp eq i64 %305, 50
  br i1 %exitcond522.not.1, label %306, label %275, !llvm.loop !36

306:                                              ; preds = %304
  %307 = load i8, ptr %25, align 8, !range !25
  %308 = trunc nuw i8 %307 to i1
  %309 = select i1 %.0409457.1, i1 true, i1 %308
  %310 = load i8, ptr %19, align 1, !range !25
  %311 = trunc nuw i8 %310 to i1
  %312 = select i1 %.0408458.1, i1 true, i1 %311
  %313 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %313, label %.lr.ph460.1, label %._crit_edge461.1, !llvm.loop !37

._crit_edge461.1:                                 ; preds = %306, %.preheader449.1
  %.0409.lcssa.1 = phi i1 [ false, %.preheader449.1 ], [ %309, %306 ]
  %.0408.lcssa.1 = phi i1 [ false, %.preheader449.1 ], [ %312, %306 ]
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %314 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %315 = trunc nuw i8 %314 to i1
  %not..0409 = xor i1 %.0409.lcssa.1, true
  %316 = select i1 %315, i1 true, i1 %not..0409
  %spec.select436 = select i1 %316, i1 true, i1 %.0408.lcssa.1
  %317 = zext i1 %spec.select436 to i8
  store i8 %317, ptr %0, align 1, !tbaa !31
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 1, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 1, ptr noundef %1)
  %318 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %319 = fmul double %318, 0x3EB0C6F7A0B5ED8D
  %320 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %321 = call double @llvm.fmuladd.f64(double %320, double 4.000000e+00, double -2.000000e+00)
  %322 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %321, ptr noundef %1)
  %323 = load ptr, ptr %26, align 8, !tbaa !5
  store double %322, ptr %323, align 8, !tbaa !8
  %324 = load ptr, ptr %18, align 8, !tbaa !5
  store double 0.000000e+00, ptr %324, align 8, !tbaa !8
  call void @_ZN11alglib_impl12mincgcreatefElPNS_9ae_vectorEdPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 1, ptr noundef nonnull %4, double noundef %319, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0x3EB0C6F7A0B5ED8D, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %1)
  call void @_ZN11alglib_impl13mincgsetscaleEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %5, ptr noundef %1)
  %325 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %325, label %.lr.ph466, label %._crit_edge467

.lr.ph466:                                        ; preds = %._crit_edge461.1, %.lr.ph466
  %.0424464 = phi double [ %332, %.lr.ph466 ], [ 0.000000e+00, %._crit_edge461.1 ]
  %326 = load ptr, ptr %21, align 8, !tbaa !5
  %327 = load double, ptr %326, align 8, !tbaa !8
  %328 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %327, ptr noundef %1)
  store double %328, ptr %20, align 8, !tbaa !27
  %329 = load ptr, ptr %21, align 8, !tbaa !5
  %330 = load double, ptr %329, align 8, !tbaa !8
  %331 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %330, ptr noundef %1)
  %332 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.0424464, double noundef %331, ptr noundef %1)
  %333 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %333, label %.lr.ph466, label %._crit_edge467, !llvm.loop !38

._crit_edge467:                                   ; preds = %.lr.ph466, %._crit_edge461.1
  %.0424.lcssa = phi double [ 0.000000e+00, %._crit_edge461.1 ], [ %332, %.lr.ph466 ]
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %334 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %335 = trunc nuw i8 %334 to i1
  br i1 %335, label %345, label %336

336:                                              ; preds = %._crit_edge467
  %337 = load ptr, ptr %26, align 8, !tbaa !5
  %338 = load double, ptr %337, align 8, !tbaa !8
  %339 = fmul double %319, %338
  %340 = fdiv double %.0424.lcssa, %339
  %341 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %340, ptr noundef %1)
  %342 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %341, ptr noundef %1)
  %343 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 0x3FF00000000008CC, ptr noundef %1)
  %344 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %342, double noundef %343)
  br label %345

345:                                              ; preds = %336, %._crit_edge467
  %346 = phi i1 [ true, %._crit_edge467 ], [ %344, %336 ]
  %347 = zext i1 %346 to i8
  store i8 %347, ptr %0, align 1, !tbaa !31
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 1, ptr noundef %1)
  %348 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+02, ptr %348, align 8, !tbaa !8
  %349 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %350 = call double @llvm.fmuladd.f64(double %349, double 5.000000e-02, double 5.000000e-02)
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 1, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 1.000000e-09, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %1)
  call void @_ZN11alglib_impl14mincgsetstpmaxEPNS_10mincgstateEdPNS_8ae_stateE(ptr noundef nonnull %14, double noundef %350, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef nonnull %14, i1 noundef zeroext true, ptr noundef %1)
  %351 = load ptr, ptr %18, align 8, !tbaa !5
  %352 = load double, ptr %351, align 8, !tbaa !8
  %353 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %353, label %.lr.ph472, label %.preheader443.preheader

.lr.ph472:                                        ; preds = %345, %408
  %.0398469 = phi double [ %.1399, %408 ], [ %352, %345 ]
  %354 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %355 = trunc nuw i8 %354 to i1
  br i1 %355, label %356, label %388

356:                                              ; preds = %.lr.ph472
  %357 = load ptr, ptr %21, align 8, !tbaa !5
  %358 = load double, ptr %357, align 8, !tbaa !8
  %359 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %358, ptr noundef %1)
  %360 = load ptr, ptr %21, align 8, !tbaa !5
  %361 = load double, ptr %360, align 8, !tbaa !8
  %362 = fneg double %361
  %363 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %362, ptr noundef %1)
  %364 = fadd double %359, %363
  store double %364, ptr %20, align 8, !tbaa !27
  %365 = load ptr, ptr %21, align 8, !tbaa !5
  %366 = load double, ptr %365, align 8, !tbaa !8
  %367 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %366, ptr noundef %1)
  %368 = load ptr, ptr %21, align 8, !tbaa !5
  %369 = load double, ptr %368, align 8, !tbaa !8
  %370 = fneg double %369
  %371 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %370, ptr noundef %1)
  %372 = fsub double %367, %371
  %373 = load ptr, ptr %22, align 8, !tbaa !5
  store double %372, ptr %373, align 8, !tbaa !8
  %374 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %375 = trunc nuw i8 %374 to i1
  br i1 %375, label %385, label %376

376:                                              ; preds = %356
  %377 = load ptr, ptr %21, align 8, !tbaa !5
  %378 = load double, ptr %377, align 8, !tbaa !8
  %379 = fsub double %378, %.0398469
  %380 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %379, ptr noundef %1)
  %381 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1)
  %382 = fadd double %381, 1.000000e+00
  %383 = fmul double %350, %382
  %384 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %380, double noundef %383)
  br label %385

385:                                              ; preds = %376, %356
  %386 = phi i1 [ true, %356 ], [ %384, %376 ]
  %387 = zext i1 %386 to i8
  store i8 %387, ptr %0, align 1, !tbaa !31
  br label %388

388:                                              ; preds = %385, %.lr.ph472
  %389 = load i8, ptr %23, align 2, !tbaa !30, !range !25, !noundef !26
  %390 = trunc nuw i8 %389 to i1
  br i1 %390, label %391, label %408

391:                                              ; preds = %388
  %392 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %403, label %394

394:                                              ; preds = %391
  %395 = load ptr, ptr %21, align 8, !tbaa !5
  %396 = load double, ptr %395, align 8, !tbaa !8
  %397 = fsub double %396, %.0398469
  %398 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %397, ptr noundef %1)
  %399 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1)
  %400 = fadd double %399, 1.000000e+00
  %401 = fmul double %350, %400
  %402 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %398, double noundef %401)
  br label %403

403:                                              ; preds = %394, %391
  %404 = phi i1 [ true, %391 ], [ %402, %394 ]
  %405 = zext i1 %404 to i8
  store i8 %405, ptr %0, align 1, !tbaa !31
  %406 = load ptr, ptr %21, align 8, !tbaa !5
  %407 = load double, ptr %406, align 8, !tbaa !8
  br label %408

408:                                              ; preds = %403, %388
  %.1399 = phi double [ %407, %403 ], [ %.0398469, %388 ]
  %409 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %409, label %.lr.ph472, label %.preheader443.preheader, !llvm.loop !39

.preheader443.preheader:                          ; preds = %408, %345
  br label %.preheader443

.preheader443:                                    ; preds = %.preheader443.preheader, %573
  %.0395492 = phi i64 [ %574, %573 ], [ 1, %.preheader443.preheader ]
  %410 = add nsw i64 %.0395492, -1
  br label %411

411:                                              ; preds = %.preheader443, %569
  %.0416491 = phi i64 [ 0, %.preheader443 ], [ %572, %569 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.0395492, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.0395492, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.0395492, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.0395492, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.0395492, ptr noundef %1)
  br label %412

412:                                              ; preds = %411, %412
  %.6473 = phi i64 [ 0, %411 ], [ %438, %412 ]
  %413 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %414 = fadd double %413, 1.000000e+00
  %415 = load ptr, ptr %18, align 8, !tbaa !5
  %416 = getelementptr inbounds double, ptr %415, i64 %.6473
  store double %414, ptr %416, align 8, !tbaa !8
  %417 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+02, ptr noundef %1)
  %418 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %419 = call double @llvm.fmuladd.f64(double %418, double 2.000000e+00, double -1.000000e+00)
  %420 = fmul double %417, %419
  %421 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %420, ptr noundef %1)
  %422 = load ptr, ptr %27, align 8, !tbaa !5
  %423 = getelementptr inbounds double, ptr %422, i64 %.6473
  store double %421, ptr %423, align 8, !tbaa !8
  %424 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+02, ptr noundef %1)
  %425 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %426 = call double @llvm.fmuladd.f64(double %425, double 2.000000e+00, double -1.000000e+00)
  %427 = fmul double %424, %426
  %428 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %427, ptr noundef %1)
  %429 = load ptr, ptr %26, align 8, !tbaa !5
  %430 = getelementptr inbounds double, ptr %429, i64 %.6473
  store double %428, ptr %430, align 8, !tbaa !8
  %431 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+02, ptr noundef %1)
  %432 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %433 = call double @llvm.fmuladd.f64(double %432, double 2.000000e+00, double -1.000000e+00)
  %434 = fmul double %431, %433
  %435 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %434, ptr noundef %1)
  %436 = load ptr, ptr %28, align 8, !tbaa !5
  %437 = getelementptr inbounds double, ptr %436, i64 %.6473
  store double %435, ptr %437, align 8, !tbaa !8
  %438 = add nuw nsw i64 %.6473, 1
  %exitcond523.not = icmp eq i64 %438, %.0395492
  br i1 %exitcond523.not, label %439, label %412, !llvm.loop !40

439:                                              ; preds = %412
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef %.0395492, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl13mincgsetscaleEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %5, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef nonnull %14, i1 noundef zeroext true, ptr noundef %1)
  switch i64 %.0416491, label %.preheader573 [
    i64 1, label %440
    i64 2, label %441
  ]

440:                                              ; preds = %439
  call void @_ZN11alglib_impl16mincgsetprecdiagEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %8, ptr noundef %1)
  br label %.preheader573

441:                                              ; preds = %439
  call void @_ZN11alglib_impl17mincgsetprecscaleEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br label %.preheader573

.preheader573:                                    ; preds = %440, %439, %441
  br label %442

442:                                              ; preds = %.preheader573, %442
  %.7474 = phi i64 [ %447, %442 ], [ 0, %.preheader573 ]
  %443 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %444 = fadd double %443, 1.000000e+00
  %445 = load ptr, ptr %18, align 8, !tbaa !5
  %446 = getelementptr inbounds double, ptr %445, i64 %.7474
  store double %444, ptr %446, align 8, !tbaa !8
  %447 = add nuw nsw i64 %.7474, 1
  %exitcond524.not = icmp eq i64 %447, %.0395492
  br i1 %exitcond524.not, label %448, label %442, !llvm.loop !41

448:                                              ; preds = %442
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 1.000000e-10, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %1)
  call void @_ZN11alglib_impl16mincgrestartfromEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef %1)
  %449 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %449, label %.lr.ph477, label %._crit_edge478

.lr.ph477:                                        ; preds = %448, %.loopexit440
  %450 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %451 = trunc nuw i8 %450 to i1
  br i1 %451, label %452, label %.loopexit440

452:                                              ; preds = %.lr.ph477
  store double 0.000000e+00, ptr %20, align 8, !tbaa !27
  br label %453

453:                                              ; preds = %452, %453
  %.8475 = phi i64 [ 0, %452 ], [ %474, %453 ]
  %454 = load double, ptr %20, align 8, !tbaa !27
  %455 = load ptr, ptr %27, align 8, !tbaa !5
  %456 = getelementptr inbounds double, ptr %455, i64 %.8475
  %457 = load double, ptr %456, align 8, !tbaa !8
  %458 = load ptr, ptr %21, align 8, !tbaa !5
  %459 = getelementptr inbounds double, ptr %458, i64 %.8475
  %460 = load double, ptr %459, align 8, !tbaa !8
  %461 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %460, double noundef 4.000000e+00, ptr noundef %1)
  %462 = call double @llvm.fmuladd.f64(double %457, double %461, double %454)
  store double %462, ptr %20, align 8, !tbaa !27
  %463 = load ptr, ptr %27, align 8, !tbaa !5
  %464 = getelementptr inbounds double, ptr %463, i64 %.8475
  %465 = load double, ptr %464, align 8, !tbaa !8
  %466 = fmul double %465, 4.000000e+00
  %467 = load ptr, ptr %21, align 8, !tbaa !5
  %468 = getelementptr inbounds double, ptr %467, i64 %.8475
  %469 = load double, ptr %468, align 8, !tbaa !8
  %470 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %469, double noundef 3.000000e+00, ptr noundef %1)
  %471 = fmul double %466, %470
  %472 = load ptr, ptr %22, align 8, !tbaa !5
  %473 = getelementptr inbounds double, ptr %472, i64 %.8475
  store double %471, ptr %473, align 8, !tbaa !8
  %474 = add nuw nsw i64 %.8475, 1
  %exitcond525.not = icmp eq i64 %474, %.0395492
  br i1 %exitcond525.not, label %.loopexit440, label %453, !llvm.loop !42

.loopexit440:                                     ; preds = %453, %.lr.ph477
  %475 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %475, label %.lr.ph477, label %._crit_edge478, !llvm.loop !43

._crit_edge478:                                   ; preds = %.loopexit440, %448
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %476 = load i64, ptr %29, align 8, !tbaa !44
  %477 = icmp slt i64 %476, 1
  br i1 %477, label %.sink.split, label %.preheader441

.preheader441:                                    ; preds = %._crit_edge478, %.preheader441
  %.9480 = phi i64 [ %493, %.preheader441 ], [ 0, %._crit_edge478 ]
  %.1425479 = phi double [ %492, %.preheader441 ], [ 0.000000e+00, %._crit_edge478 ]
  %478 = load ptr, ptr %26, align 8, !tbaa !5
  %479 = getelementptr inbounds double, ptr %478, i64 %.9480
  %480 = load double, ptr %479, align 8, !tbaa !8
  %481 = fmul double %480, 4.000000e+00
  %482 = load ptr, ptr %27, align 8, !tbaa !5
  %483 = getelementptr inbounds double, ptr %482, i64 %.9480
  %484 = load double, ptr %483, align 8, !tbaa !8
  %485 = fmul double %481, %484
  %486 = load ptr, ptr %18, align 8, !tbaa !5
  %487 = getelementptr inbounds double, ptr %486, i64 %.9480
  %488 = load double, ptr %487, align 8, !tbaa !8
  %489 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %488, double noundef 3.000000e+00, ptr noundef %1)
  %490 = fmul double %485, %489
  %491 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %490, ptr noundef %1)
  %492 = fadd double %.1425479, %491
  %493 = add nuw nsw i64 %.9480, 1
  %exitcond526.not = icmp eq i64 %493, %.0395492
  br i1 %exitcond526.not, label %494, label %.preheader441, !llvm.loop !46

494:                                              ; preds = %.preheader441
  %495 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %492, ptr noundef %1)
  %496 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %497 = trunc nuw i8 %496 to i1
  br i1 %497, label %500, label %498

498:                                              ; preds = %494
  %499 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %495, double noundef 1.000000e-10)
  br label %500

500:                                              ; preds = %498, %494
  %501 = phi i1 [ true, %494 ], [ %499, %498 ]
  %502 = zext i1 %501 to i8
  store i8 %502, ptr %0, align 1, !tbaa !31
  br label %503

503:                                              ; preds = %500, %503
  %.10481 = phi i64 [ 0, %500 ], [ %508, %503 ]
  %504 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %505 = fadd double %504, 1.000000e+00
  %506 = load ptr, ptr %18, align 8, !tbaa !5
  %507 = getelementptr inbounds double, ptr %506, i64 %.10481
  store double %505, ptr %507, align 8, !tbaa !8
  %508 = add nuw nsw i64 %.10481, 1
  %exitcond527.not = icmp eq i64 %508, %.0395492
  br i1 %exitcond527.not, label %509, label %503, !llvm.loop !47

509:                                              ; preds = %503
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.000000e-10, i64 noundef 0, ptr noundef %1)
  call void @_ZN11alglib_impl16mincgrestartfromEPNS_10mincgstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef %1)
  %510 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %510, label %.lr.ph488, label %._crit_edge489

.lr.ph488:                                        ; preds = %509, %560
  %.0417486 = phi double [ %.3420, %560 ], [ 0.000000e+00, %509 ]
  %.0421485 = phi i1 [ %.1422, %560 ], [ false, %509 ]
  %511 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %512 = trunc nuw i8 %511 to i1
  br i1 %512, label %513, label %.loopexit

513:                                              ; preds = %.lr.ph488
  store double 0.000000e+00, ptr %20, align 8, !tbaa !27
  br label %514

514:                                              ; preds = %513, %514
  %.11482 = phi i64 [ 0, %513 ], [ %535, %514 ]
  %515 = load double, ptr %20, align 8, !tbaa !27
  %516 = load ptr, ptr %27, align 8, !tbaa !5
  %517 = getelementptr inbounds double, ptr %516, i64 %.11482
  %518 = load double, ptr %517, align 8, !tbaa !8
  %519 = load ptr, ptr %21, align 8, !tbaa !5
  %520 = getelementptr inbounds double, ptr %519, i64 %.11482
  %521 = load double, ptr %520, align 8, !tbaa !8
  %522 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %521, double noundef 4.000000e+00, ptr noundef %1)
  %523 = call double @llvm.fmuladd.f64(double %518, double %522, double %515)
  store double %523, ptr %20, align 8, !tbaa !27
  %524 = load ptr, ptr %27, align 8, !tbaa !5
  %525 = getelementptr inbounds double, ptr %524, i64 %.11482
  %526 = load double, ptr %525, align 8, !tbaa !8
  %527 = fmul double %526, 4.000000e+00
  %528 = load ptr, ptr %21, align 8, !tbaa !5
  %529 = getelementptr inbounds double, ptr %528, i64 %.11482
  %530 = load double, ptr %529, align 8, !tbaa !8
  %531 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %530, double noundef 3.000000e+00, ptr noundef %1)
  %532 = fmul double %527, %531
  %533 = load ptr, ptr %22, align 8, !tbaa !5
  %534 = getelementptr inbounds double, ptr %533, i64 %.11482
  store double %532, ptr %534, align 8, !tbaa !8
  %535 = add nuw nsw i64 %.11482, 1
  %exitcond528.not = icmp eq i64 %535, %.0395492
  br i1 %exitcond528.not, label %.loopexit, label %514, !llvm.loop !48

.loopexit:                                        ; preds = %514, %.lr.ph488
  %536 = load i8, ptr %23, align 2, !tbaa !30, !range !25, !noundef !26
  %537 = trunc nuw i8 %536 to i1
  br i1 %537, label %538, label %560

538:                                              ; preds = %.loopexit
  br i1 %.0421485, label %.preheader439, label %556

.preheader439:                                    ; preds = %538, %.preheader439
  %.12484 = phi i64 [ %553, %.preheader439 ], [ 0, %538 ]
  %.1418483 = phi double [ %552, %.preheader439 ], [ 0.000000e+00, %538 ]
  %539 = load ptr, ptr %21, align 8, !tbaa !5
  %540 = getelementptr inbounds double, ptr %539, i64 %.12484
  %541 = load double, ptr %540, align 8, !tbaa !8
  %542 = load ptr, ptr %24, align 8, !tbaa !5
  %543 = getelementptr inbounds double, ptr %542, i64 %.12484
  %544 = load double, ptr %543, align 8, !tbaa !8
  %545 = fsub double %541, %544
  %546 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %545, ptr noundef %1)
  %547 = load ptr, ptr %26, align 8, !tbaa !5
  %548 = getelementptr inbounds double, ptr %547, i64 %.12484
  %549 = load double, ptr %548, align 8, !tbaa !8
  %550 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %549, ptr noundef %1)
  %551 = fdiv double %546, %550
  %552 = fadd double %.1418483, %551
  %553 = add nuw nsw i64 %.12484, 1
  %exitcond529.not = icmp eq i64 %553, %.0395492
  br i1 %exitcond529.not, label %554, label %.preheader439, !llvm.loop !49

554:                                              ; preds = %.preheader439
  %555 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %552, ptr noundef %1)
  br label %556

556:                                              ; preds = %538, %554
  %.2419 = phi double [ %555, %554 ], [ 0.000000e+00, %538 ]
  %557 = load ptr, ptr %24, align 8, !tbaa !5
  %558 = load ptr, ptr %21, align 8, !tbaa !5
  %559 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %410)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %557, i64 noundef 1, ptr noundef %558, i64 noundef 1, i64 noundef %559)
  br label %560

560:                                              ; preds = %556, %.loopexit
  %.1422 = phi i1 [ true, %556 ], [ %.0421485, %.loopexit ]
  %.3420 = phi double [ %.2419, %556 ], [ %.0417486, %.loopexit ]
  %561 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %561, label %.lr.ph488, label %._crit_edge489, !llvm.loop !50

._crit_edge489:                                   ; preds = %560, %509
  %.0417.lcssa = phi double [ 0.000000e+00, %509 ], [ %.3420, %560 ]
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %562 = load i64, ptr %29, align 8, !tbaa !44
  %563 = icmp slt i64 %562, 1
  br i1 %563, label %.sink.split, label %564

564:                                              ; preds = %._crit_edge489
  %565 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %566 = trunc nuw i8 %565 to i1
  br i1 %566, label %569, label %567

567:                                              ; preds = %564
  %568 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.0417.lcssa, double noundef 1.000000e-10)
  br label %569

569:                                              ; preds = %567, %564
  %570 = phi i1 [ true, %564 ], [ %568, %567 ]
  %571 = zext i1 %570 to i8
  store i8 %571, ptr %0, align 1, !tbaa !31
  %572 = add nuw nsw i64 %.0416491, 1
  %exitcond530.not = icmp eq i64 %572, 3
  br i1 %exitcond530.not, label %573, label %411, !llvm.loop !51

573:                                              ; preds = %569
  %574 = add nuw nsw i64 %.0395492, 1
  %exitcond531.not = icmp eq i64 %574, 11
  br i1 %exitcond531.not, label %.preheader442.preheader, label %.preheader443, !llvm.loop !52

.preheader442.preheader:                          ; preds = %573, %643
  %.0414496 = phi i64 [ %646, %643 ], [ 0, %573 ]
  %575 = icmp eq i64 %.0414496, 1
  %.0410 = select i1 %575, double 1.000000e+20, double 1.000000e+08
  %576 = icmp eq i64 %.0414496, 2
  br i1 %576, label %577, label %579

577:                                              ; preds = %.preheader442.preheader
  %578 = load double, ptr %30, align 8, !tbaa !53
  br label %579

579:                                              ; preds = %577, %.preheader442.preheader
  %.1411 = phi double [ %578, %577 ], [ %.0410, %.preheader442.preheader ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 1, ptr noundef %1)
  %580 = load ptr, ptr %18, align 8, !tbaa !5
  store double 0.000000e+00, ptr %580, align 8, !tbaa !8
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 1, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0x3EB0C6F7A0B5ED8D, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %1)
  call void @_ZN11alglib_impl14mincgsetcgtypeEPNS_10mincgstateElPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %.0423498, ptr noundef %1)
  %581 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %581, label %.lr.ph494, label %._crit_edge495

.lr.ph494:                                        ; preds = %579, %619
  %582 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %583 = trunc nuw i8 %582 to i1
  br i1 %583, label %584, label %619

584:                                              ; preds = %.lr.ph494
  %585 = load ptr, ptr %21, align 8, !tbaa !5
  %586 = load double, ptr %585, align 8, !tbaa !8
  %587 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef 0xBFEFFFFDE7210BE9, double noundef %586)
  br i1 %587, label %588, label %618

588:                                              ; preds = %584
  %589 = load ptr, ptr %21, align 8, !tbaa !5
  %590 = load double, ptr %589, align 8, !tbaa !8
  %591 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %590, double noundef 0x3FEFFFFDE7210BE9)
  br i1 %591, label %592, label %618

592:                                              ; preds = %588
  %593 = load ptr, ptr %21, align 8, !tbaa !5
  %594 = load double, ptr %593, align 8, !tbaa !8
  %595 = insertelement <2 x double> poison, double %594, i64 0
  %596 = shufflevector <2 x double> %595, <2 x double> poison, <2 x i32> zeroinitializer
  %597 = fsub <2 x double> <double 1.000000e+00, double poison>, %596
  %598 = fadd <2 x double> %596, <double poison, double 1.000000e+00>
  %599 = shufflevector <2 x double> %597, <2 x double> %598, <2 x i32> <i32 0, i32 3>
  %600 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %599
  %shift = shufflevector <2 x double> %600, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %601 = fadd <2 x double> %600, %shift
  %602 = extractelement <2 x double> %601, i64 0
  %603 = fadd double %594, %602
  store double %603, ptr %20, align 8, !tbaa !27
  %604 = load double, ptr %593, align 8, !tbaa !8
  %605 = fsub double 1.000000e+00, %604
  %606 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %605, ptr noundef %1)
  %607 = load ptr, ptr %21, align 8, !tbaa !5
  %608 = load double, ptr %607, align 8, !tbaa !8
  %609 = fadd double %608, 1.000000e+00
  %610 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %609, ptr noundef %1)
  %611 = insertelement <2 x double> poison, double %606, i64 0
  %612 = insertelement <2 x double> %611, double %610, i64 1
  %613 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %612
  %shift565 = shufflevector <2 x double> %613, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %614 = fsub <2 x double> %613, %shift565
  %615 = extractelement <2 x double> %614, i64 0
  %616 = fadd double %615, 1.000000e+00
  %617 = load ptr, ptr %22, align 8, !tbaa !5
  store double %616, ptr %617, align 8, !tbaa !8
  br label %619

618:                                              ; preds = %588, %584
  store double %.1411, ptr %20, align 8, !tbaa !27
  br label %619

619:                                              ; preds = %592, %618, %.lr.ph494
  %620 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %620, label %.lr.ph494, label %._crit_edge495, !llvm.loop !57

._crit_edge495:                                   ; preds = %619, %579
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %621 = load i64, ptr %29, align 8, !tbaa !44
  %622 = icmp slt i64 %621, 1
  br i1 %622, label %.sink.split, label %623

623:                                              ; preds = %._crit_edge495
  %624 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %625 = trunc nuw i8 %624 to i1
  br i1 %625, label %643, label %626

626:                                              ; preds = %623
  %627 = load ptr, ptr %18, align 8, !tbaa !5
  %628 = load double, ptr %627, align 8, !tbaa !8
  %629 = fsub double 1.000000e+00, %628
  %630 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %629, ptr noundef %1)
  %631 = load ptr, ptr %18, align 8, !tbaa !5
  %632 = load double, ptr %631, align 8, !tbaa !8
  %633 = fadd double %632, 1.000000e+00
  %634 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %633, ptr noundef %1)
  %635 = insertelement <2 x double> poison, double %630, i64 0
  %636 = insertelement <2 x double> %635, double %634, i64 1
  %637 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %636
  %shift566 = shufflevector <2 x double> %637, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %638 = fsub <2 x double> %637, %shift566
  %639 = extractelement <2 x double> %638, i64 0
  %640 = fadd double %639, 1.000000e+00
  %641 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %640, ptr noundef %1)
  %642 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %641, double noundef 0x3EB0C6F7A0B5ED8D)
  br label %643

643:                                              ; preds = %626, %623
  %644 = phi i1 [ true, %623 ], [ %642, %626 ]
  %645 = zext i1 %644 to i8
  store i8 %645, ptr %0, align 1, !tbaa !31
  %646 = add nuw nsw i64 %.0414496, 1
  %exitcond532.not = icmp eq i64 %646, 3
  br i1 %exitcond532.not, label %.preheader442.1, label %.preheader442.preheader, !llvm.loop !58

.preheader442.1:                                  ; preds = %643, %715
  %.0414496.1 = phi i64 [ %718, %715 ], [ 0, %643 ]
  %647 = icmp eq i64 %.0414496.1, 1
  %.0410.1 = select i1 %647, double 1.000000e+20, double 1.000000e+08
  %648 = icmp eq i64 %.0414496.1, 2
  br i1 %648, label %649, label %651

649:                                              ; preds = %.preheader442.1
  %650 = load double, ptr %30, align 8, !tbaa !53
  br label %651

651:                                              ; preds = %649, %.preheader442.1
  %.1411.1 = phi double [ %650, %649 ], [ %.0410.1, %.preheader442.1 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 1, ptr noundef %1)
  %652 = load ptr, ptr %18, align 8, !tbaa !5
  store double 0.000000e+00, ptr %652, align 8, !tbaa !8
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 1, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 0, ptr noundef %1)
  call void @_ZN11alglib_impl14mincgsetcgtypeEPNS_10mincgstateElPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %.0423498, ptr noundef %1)
  %653 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %653, label %.lr.ph494.1, label %._crit_edge495.1

.lr.ph494.1:                                      ; preds = %651, %691
  %654 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %655 = trunc nuw i8 %654 to i1
  br i1 %655, label %656, label %691

656:                                              ; preds = %.lr.ph494.1
  %657 = load ptr, ptr %21, align 8, !tbaa !5
  %658 = load double, ptr %657, align 8, !tbaa !8
  %659 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef 0xBFEFFFFDE7210BE9, double noundef %658)
  br i1 %659, label %660, label %664

660:                                              ; preds = %656
  %661 = load ptr, ptr %21, align 8, !tbaa !5
  %662 = load double, ptr %661, align 8, !tbaa !8
  %663 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %662, double noundef 0x3FEFFFFDE7210BE9)
  br i1 %663, label %665, label %664

664:                                              ; preds = %660, %656
  store double %.1411.1, ptr %20, align 8, !tbaa !27
  br label %691

665:                                              ; preds = %660
  %666 = load ptr, ptr %21, align 8, !tbaa !5
  %667 = load double, ptr %666, align 8, !tbaa !8
  %668 = insertelement <2 x double> poison, double %667, i64 0
  %669 = shufflevector <2 x double> %668, <2 x double> poison, <2 x i32> zeroinitializer
  %670 = fsub <2 x double> <double 1.000000e+00, double poison>, %669
  %671 = fadd <2 x double> %669, <double poison, double 1.000000e+00>
  %672 = shufflevector <2 x double> %670, <2 x double> %671, <2 x i32> <i32 0, i32 3>
  %673 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %672
  %shift567 = shufflevector <2 x double> %673, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %674 = fadd <2 x double> %673, %shift567
  %675 = extractelement <2 x double> %674, i64 0
  %676 = call double @llvm.fmuladd.f64(double %667, double 1.000000e+06, double %675)
  store double %676, ptr %20, align 8, !tbaa !27
  %677 = load double, ptr %666, align 8, !tbaa !8
  %678 = fsub double 1.000000e+00, %677
  %679 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %678, ptr noundef %1)
  %680 = load ptr, ptr %21, align 8, !tbaa !5
  %681 = load double, ptr %680, align 8, !tbaa !8
  %682 = fadd double %681, 1.000000e+00
  %683 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %682, ptr noundef %1)
  %684 = insertelement <2 x double> poison, double %679, i64 0
  %685 = insertelement <2 x double> %684, double %683, i64 1
  %686 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %685
  %shift568 = shufflevector <2 x double> %686, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %687 = fsub <2 x double> %686, %shift568
  %688 = extractelement <2 x double> %687, i64 0
  %689 = fadd double %688, 1.000000e+06
  %690 = load ptr, ptr %22, align 8, !tbaa !5
  store double %689, ptr %690, align 8, !tbaa !8
  br label %691

691:                                              ; preds = %665, %664, %.lr.ph494.1
  %692 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %692, label %.lr.ph494.1, label %._crit_edge495.1, !llvm.loop !57

._crit_edge495.1:                                 ; preds = %691, %651
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %693 = load i64, ptr %29, align 8, !tbaa !44
  %694 = icmp slt i64 %693, 1
  br i1 %694, label %.sink.split, label %695

695:                                              ; preds = %._crit_edge495.1
  %696 = load i8, ptr %0, align 1, !tbaa !31, !range !25, !noundef !26
  %697 = trunc nuw i8 %696 to i1
  br i1 %697, label %715, label %698

698:                                              ; preds = %695
  %699 = load ptr, ptr %18, align 8, !tbaa !5
  %700 = load double, ptr %699, align 8, !tbaa !8
  %701 = fsub double 1.000000e+00, %700
  %702 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %701, ptr noundef %1)
  %703 = load ptr, ptr %18, align 8, !tbaa !5
  %704 = load double, ptr %703, align 8, !tbaa !8
  %705 = fadd double %704, 1.000000e+00
  %706 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %705, ptr noundef %1)
  %707 = insertelement <2 x double> poison, double %702, i64 0
  %708 = insertelement <2 x double> %707, double %706, i64 1
  %709 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %708
  %shift569 = shufflevector <2 x double> %709, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %710 = fsub <2 x double> %709, %shift569
  %711 = extractelement <2 x double> %710, i64 0
  %712 = fadd double %711, 1.000000e+06
  %713 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %712, ptr noundef %1)
  %714 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %713, double noundef 1.000000e+00)
  br label %715

715:                                              ; preds = %698, %695
  %716 = phi i1 [ true, %695 ], [ %714, %698 ]
  %717 = zext i1 %716 to i8
  store i8 %717, ptr %0, align 1, !tbaa !31
  %718 = add nuw nsw i64 %.0414496.1, 1
  %exitcond532.1.not = icmp eq i64 %718, 3
  br i1 %exitcond532.1.not, label %719, label %.preheader442.1, !llvm.loop !58

719:                                              ; preds = %715
  %720 = add nsw i64 %.0423498, 1
  %exitcond535.not = icmp eq i64 %720, 2
  br i1 %exitcond535.not, label %.preheader438, label %35, !llvm.loop !59

721:                                              ; preds = %.preheader438, %._crit_edge504
  %.0400505 = phi i64 [ 1, %.preheader438 ], [ %797, %._crit_edge504 ]
  %722 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %16, ptr noundef %1)
  %723 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %722, double noundef 0.000000e+00)
  br i1 %723, label %724, label %729

724:                                              ; preds = %721
  %725 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %16, i64 noundef 100, ptr noundef %1)
  %726 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %16, i64 noundef 3, ptr noundef %1)
  %727 = icmp eq i64 %726, 0
  %spec.select434.v = select i1 %727, i64 24, i64 8
  %728 = icmp eq i64 %726, 1
  %spec.select435.v = select i1 %728, i64 16, i64 %spec.select434.v
  %spec.select435 = getelementptr inbounds i8, ptr %1, i64 %spec.select435.v
  br label %729

729:                                              ; preds = %721, %724
  %.0404 = phi i64 [ %725, %724 ], [ -1, %721 ]
  %.1403.in = phi ptr [ %spec.select435, %724 ], [ %31, %721 ]
  %.1403 = load double, ptr %.1403.in, align 8, !tbaa !8
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 100, double noundef 1.000000e+05, ptr noundef nonnull %12, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef 100, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef 100, ptr noundef %1)
  br label %730

730:                                              ; preds = %729, %730
  %.13499 = phi i64 [ 0, %729 ], [ %737, %730 ]
  %731 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %16, ptr noundef %1)
  %732 = load ptr, ptr %32, align 8, !tbaa !5
  %733 = getelementptr inbounds double, ptr %732, i64 %.13499
  store double %731, ptr %733, align 8, !tbaa !8
  %734 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %16, ptr noundef %1)
  %735 = load ptr, ptr %33, align 8, !tbaa !5
  %736 = getelementptr inbounds double, ptr %735, i64 %.13499
  store double %734, ptr %736, align 8, !tbaa !8
  %737 = add nuw nsw i64 %.13499, 1
  %exitcond536.not = icmp eq i64 %737, 100
  br i1 %exitcond536.not, label %738, label %730, !llvm.loop !60

738:                                              ; preds = %730
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 100, ptr noundef nonnull %9, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 8, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef nonnull %14, i1 noundef zeroext true, ptr noundef %1)
  store i64 -1, ptr %13, align 8, !tbaa !61
  %739 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %739, label %.lr.ph503, label %._crit_edge504

.lr.ph503:                                        ; preds = %738
  %740 = icmp slt i64 %.0404, 0
  br label %741

741:                                              ; preds = %.lr.ph503, %.backedge437
  %742 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %743 = trunc nuw i8 %742 to i1
  br i1 %743, label %744, label %790

744:                                              ; preds = %741
  store double 0.000000e+00, ptr %20, align 8, !tbaa !27
  br label %745

745:                                              ; preds = %744, %779
  %.14501 = phi i64 [ 0, %744 ], [ %780, %779 ]
  %746 = load double, ptr %20, align 8, !tbaa !27
  %747 = load ptr, ptr %32, align 8, !tbaa !5
  %748 = getelementptr inbounds double, ptr %747, i64 %.14501
  %749 = load double, ptr %748, align 8, !tbaa !8
  %750 = load ptr, ptr %21, align 8, !tbaa !5
  %751 = getelementptr inbounds double, ptr %750, i64 %.14501
  %752 = load double, ptr %751, align 8, !tbaa !8
  %753 = call double @llvm.fmuladd.f64(double %749, double %752, double %746)
  store double %753, ptr %20, align 8, !tbaa !27
  %754 = load double, ptr %748, align 8, !tbaa !8
  %755 = load ptr, ptr %22, align 8, !tbaa !5
  %756 = getelementptr inbounds double, ptr %755, i64 %.14501
  store double %754, ptr %756, align 8, !tbaa !8
  br label %757

757:                                              ; preds = %745, %757
  %.0407500 = phi i64 [ 0, %745 ], [ %778, %757 ]
  %758 = load double, ptr %20, align 8, !tbaa !27
  %759 = load ptr, ptr %21, align 8, !tbaa !5
  %760 = getelementptr inbounds double, ptr %759, i64 %.14501
  %761 = load double, ptr %760, align 8, !tbaa !8
  %762 = fmul double %761, 5.000000e-01
  %763 = load ptr, ptr %34, align 8, !tbaa !5
  %764 = getelementptr inbounds ptr, ptr %763, i64 %.14501
  %765 = load ptr, ptr %764, align 8, !tbaa !62
  %766 = getelementptr inbounds double, ptr %765, i64 %.0407500
  %767 = load double, ptr %766, align 8, !tbaa !8
  %768 = fmul double %762, %767
  %769 = getelementptr inbounds double, ptr %759, i64 %.0407500
  %770 = load double, ptr %769, align 8, !tbaa !8
  %771 = call double @llvm.fmuladd.f64(double %768, double %770, double %758)
  store double %771, ptr %20, align 8, !tbaa !27
  %772 = load ptr, ptr %22, align 8, !tbaa !5
  %773 = getelementptr inbounds double, ptr %772, i64 %.14501
  %774 = load double, ptr %773, align 8, !tbaa !8
  %775 = load double, ptr %766, align 8, !tbaa !8
  %776 = load double, ptr %769, align 8, !tbaa !8
  %777 = call double @llvm.fmuladd.f64(double %775, double %776, double %774)
  store double %777, ptr %773, align 8, !tbaa !8
  %778 = add nuw nsw i64 %.0407500, 1
  %exitcond537.not = icmp eq i64 %778, 100
  br i1 %exitcond537.not, label %779, label %757, !llvm.loop !63

779:                                              ; preds = %757
  %780 = add nuw nsw i64 %.14501, 1
  %exitcond538.not = icmp eq i64 %780, 100
  br i1 %exitcond538.not, label %781, label %745, !llvm.loop !64

781:                                              ; preds = %779
  %782 = load i64, ptr %13, align 8, !tbaa !61
  %783 = icmp sgt i64 %782, 4
  br i1 %783, label %784, label %.backedge437

784:                                              ; preds = %781
  br i1 %740, label %785, label %786

785:                                              ; preds = %784
  store double %.1403, ptr %20, align 8, !tbaa !27
  br label %.backedge437

786:                                              ; preds = %784
  %787 = load ptr, ptr %22, align 8, !tbaa !5
  %788 = getelementptr inbounds double, ptr %787, i64 %.0404
  store double %.1403, ptr %788, align 8, !tbaa !8
  br label %.backedge437

.backedge437:                                     ; preds = %781, %786, %785, %793, %794
  %789 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %789, label %741, label %._crit_edge504, !llvm.loop !65

790:                                              ; preds = %741
  %791 = load i8, ptr %23, align 2, !tbaa !30, !range !25, !noundef !26
  %792 = trunc nuw i8 %791 to i1
  br i1 %792, label %793, label %794

793:                                              ; preds = %790
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %13, ptr noundef %1)
  br label %.backedge437

794:                                              ; preds = %790
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.26, ptr noundef %1)
  br label %.backedge437

._crit_edge504:                                   ; preds = %.backedge437, %738
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %10, ptr noundef nonnull %15, ptr noundef %1)
  %795 = load i64, ptr %29, align 8, !tbaa !44
  %796 = icmp ne i64 %795, -8
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %796, ptr noundef nonnull @.str.8, i32 noundef 64253, ptr noundef nonnull @.str.461)
  %797 = add nuw nsw i64 %.0400505, 1
  %exitcond539.not = icmp eq i64 %797, 11
  br i1 %exitcond539.not, label %.preheader, label %721, !llvm.loop !66

.preheader:                                       ; preds = %._crit_edge504, %.outer._crit_edge
  %.1401511 = phi i64 [ %904, %.outer._crit_edge ], [ 1, %._crit_edge504 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 3, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef 3, ptr noundef %1)
  %798 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %799 = fadd double %798, 6.000000e+00
  %800 = load ptr, ptr %18, align 8, !tbaa !5
  store double %799, ptr %800, align 8, !tbaa !8
  %801 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %802 = fadd double %801, 6.000000e+00
  %803 = load ptr, ptr %18, align 8, !tbaa !5
  %804 = getelementptr inbounds i8, ptr %803, i64 8
  store double %802, ptr %804, align 8, !tbaa !8
  %805 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %806 = fadd double %805, 6.000000e+00
  %807 = load ptr, ptr %18, align 8, !tbaa !5
  %808 = getelementptr inbounds i8, ptr %807, i64 16
  store double %806, ptr %808, align 8, !tbaa !8
  %809 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 20, ptr noundef %1)
  call void @_ZN11alglib_impl11mincgcreateElPNS_9ae_vectorEPNS_10mincgstateEPNS_8ae_stateE(i64 noundef 3, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetcondEPNS_10mincgstateEdddlPNS_8ae_stateE(ptr noundef nonnull %14, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, i64 noundef 25, ptr noundef %1)
  call void @_ZN11alglib_impl12mincgsetxrepEPNS_10mincgstateEbPNS_8ae_stateE(ptr noundef nonnull %14, i1 noundef zeroext true, ptr noundef %1)
  store i64 0, ptr %17, align 8, !tbaa !61
  %810 = load ptr, ptr %24, align 8, !tbaa !5
  %811 = load ptr, ptr %18, align 8, !tbaa !5
  %812 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef 2)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %810, i64 noundef 1, ptr noundef %811, i64 noundef 1, i64 noundef %812)
  %813 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %813, label %.lr.ph507, label %.outer._crit_edge

.lr.ph507:                                        ; preds = %.preheader, %.outer
  %.0.ph509 = phi i1 [ %.1, %.outer ], [ false, %.preheader ]
  br i1 %.0.ph509, label %.lr.ph507.split.us, label %.lr.ph507.split

.lr.ph507.split.us:                               ; preds = %.lr.ph507, %.backedge.us
  %814 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %815 = trunc nuw i8 %814 to i1
  br i1 %815, label %.split.us, label %816

816:                                              ; preds = %.lr.ph507.split.us
  %817 = load i8, ptr %23, align 2, !tbaa !30, !range !25, !noundef !26
  %818 = trunc nuw i8 %817 to i1
  br i1 %818, label %.backedge.us, label %819

819:                                              ; preds = %816
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.26, ptr noundef %1)
  br label %.backedge.us

.backedge.us:                                     ; preds = %816, %819
  %820 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %820, label %.lr.ph507.split.us, label %.outer._crit_edge, !llvm.loop !67

.lr.ph507.split:                                  ; preds = %.lr.ph507, %.backedge
  %821 = load i8, ptr %19, align 1, !tbaa !10, !range !25, !noundef !26
  %822 = trunc nuw i8 %821 to i1
  br i1 %822, label %.split.us, label %874

.split.us:                                        ; preds = %.lr.ph507.split, %.lr.ph507.split.us
  %823 = load ptr, ptr %21, align 8, !tbaa !5
  %824 = load double, ptr %823, align 8, !tbaa !8
  %825 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %824, ptr noundef %1)
  %826 = fadd double %825, -2.000000e+00
  %827 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %826, ptr noundef %1)
  %828 = load ptr, ptr %21, align 8, !tbaa !5
  %829 = getelementptr inbounds i8, ptr %828, i64 8
  %830 = load double, ptr %829, align 8, !tbaa !8
  %831 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %830, ptr noundef %1)
  %832 = call double @llvm.fmuladd.f64(double %827, double 1.000000e+02, double %831)
  %833 = load ptr, ptr %21, align 8, !tbaa !5
  %834 = getelementptr inbounds i8, ptr %833, i64 16
  %835 = load double, ptr %834, align 8, !tbaa !8
  %836 = load double, ptr %833, align 8, !tbaa !8
  %837 = fsub double %835, %836
  %838 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %837, ptr noundef %1)
  %839 = fadd double %832, %838
  store double %839, ptr %20, align 8, !tbaa !27
  %840 = load ptr, ptr %21, align 8, !tbaa !5
  %841 = load double, ptr %840, align 8, !tbaa !8
  %842 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %841, ptr noundef %1)
  %843 = fadd double %842, -2.000000e+00
  %844 = fmul double %843, 2.000000e+02
  %845 = load ptr, ptr %21, align 8, !tbaa !5
  %846 = load double, ptr %845, align 8, !tbaa !8
  %847 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %846, ptr noundef %1)
  %848 = load ptr, ptr %21, align 8, !tbaa !5
  %849 = getelementptr inbounds i8, ptr %848, i64 16
  %850 = load double, ptr %849, align 8, !tbaa !8
  %851 = load double, ptr %848, align 8, !tbaa !8
  %852 = fsub double %850, %851
  %853 = fmul double %852, -2.000000e+00
  %854 = call double @llvm.fmuladd.f64(double %844, double %847, double %853)
  %855 = load ptr, ptr %22, align 8, !tbaa !5
  store double %854, ptr %855, align 8, !tbaa !8
  %856 = load ptr, ptr %21, align 8, !tbaa !5
  %857 = getelementptr inbounds i8, ptr %856, i64 8
  %858 = load double, ptr %857, align 8, !tbaa !8
  %859 = fmul double %858, 2.000000e+00
  %860 = load ptr, ptr %22, align 8, !tbaa !5
  %861 = getelementptr inbounds i8, ptr %860, i64 8
  store double %859, ptr %861, align 8, !tbaa !8
  %862 = load ptr, ptr %21, align 8, !tbaa !5
  %863 = getelementptr inbounds i8, ptr %862, i64 16
  %864 = load double, ptr %863, align 8, !tbaa !8
  %865 = load double, ptr %862, align 8, !tbaa !8
  %866 = fsub double %864, %865
  %867 = fmul double %866, 2.000000e+00
  %868 = load ptr, ptr %22, align 8, !tbaa !5
  %869 = getelementptr inbounds i8, ptr %868, i64 16
  store double %867, ptr %869, align 8, !tbaa !8
  %870 = load i64, ptr %17, align 8, !tbaa !61
  %871 = icmp eq i64 %870, %809
  br i1 %871, label %872, label %.outer

872:                                              ; preds = %.split.us
  call void @_ZN11alglib_impl23mincgrequestterminationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br label %.outer

.outer:                                           ; preds = %872, %.split.us
  %.1 = phi i1 [ true, %872 ], [ %.0.ph509, %.split.us ]
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %17, ptr noundef %1)
  %873 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %873, label %.lr.ph507, label %.outer._crit_edge, !llvm.loop !67

874:                                              ; preds = %.lr.ph507.split
  %875 = load i8, ptr %23, align 2, !tbaa !30, !range !25, !noundef !26
  %876 = trunc nuw i8 %875 to i1
  br i1 %876, label %877, label %882

877:                                              ; preds = %874
  %878 = load ptr, ptr %24, align 8, !tbaa !5
  %879 = load ptr, ptr %21, align 8, !tbaa !5
  %880 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef 2)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %878, i64 noundef 1, ptr noundef %879, i64 noundef 1, i64 noundef %880)
  br label %.backedge

.backedge:                                        ; preds = %877, %882
  %881 = call noundef zeroext i1 @_ZN11alglib_impl14mincgiterationEPNS_10mincgstateEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef %1)
  br i1 %881, label %.lr.ph507.split, label %.outer._crit_edge, !llvm.loop !67

882:                                              ; preds = %874
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.26, ptr noundef %1)
  br label %.backedge

.outer._crit_edge:                                ; preds = %.outer, %.backedge, %.backedge.us, %.preheader
  call void @_ZN11alglib_impl12mincgresultsEPNS_10mincgstateEPNS_9ae_vectorEPNS_11mincgreportEPNS_8ae_stateE(ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %1)
  %883 = load i64, ptr %29, align 8, !tbaa !44
  %884 = icmp ne i64 %883, 8
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %884, ptr noundef nonnull @.str.8, i32 noundef 64306, ptr noundef nonnull @.str.462)
  %885 = load ptr, ptr %18, align 8, !tbaa !5
  %886 = load double, ptr %885, align 8, !tbaa !8
  %887 = load ptr, ptr %24, align 8, !tbaa !5
  %888 = load double, ptr %887, align 8, !tbaa !8
  %889 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %886, double noundef %888)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %889, ptr noundef nonnull @.str.8, i32 noundef 64309, ptr noundef nonnull @.str.463)
  %890 = load ptr, ptr %18, align 8, !tbaa !5
  %891 = getelementptr inbounds i8, ptr %890, i64 8
  %892 = load double, ptr %891, align 8, !tbaa !8
  %893 = load ptr, ptr %24, align 8, !tbaa !5
  %894 = getelementptr inbounds i8, ptr %893, i64 8
  %895 = load double, ptr %894, align 8, !tbaa !8
  %896 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %892, double noundef %895)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %896, ptr noundef nonnull @.str.8, i32 noundef 64309, ptr noundef nonnull @.str.463)
  %897 = load ptr, ptr %18, align 8, !tbaa !5
  %898 = getelementptr inbounds i8, ptr %897, i64 16
  %899 = load double, ptr %898, align 8, !tbaa !8
  %900 = load ptr, ptr %24, align 8, !tbaa !5
  %901 = getelementptr inbounds i8, ptr %900, i64 16
  %902 = load double, ptr %901, align 8, !tbaa !8
  %903 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %899, double noundef %902)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %903, ptr noundef nonnull @.str.8, i32 noundef 64309, ptr noundef nonnull @.str.463)
  %904 = add nuw nsw i64 %.1401511, 1
  %exitcond542.not = icmp eq i64 %904, 51
  br i1 %exitcond542.not, label %.loopexit558, label %.preheader, !llvm.loop !68

.sink.split:                                      ; preds = %._crit_edge495, %._crit_edge495.1, %._crit_edge489, %._crit_edge478
  store i8 1, ptr %0, align 1, !tbaa !31
  br label %.loopexit558

.loopexit558:                                     ; preds = %.outer._crit_edge, %.sink.split
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 5840, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"double", !6, i64 0}
!10 = !{!11, !13, i64 1049}
!11 = !{!"_ZTSN11alglib_impl10mincgstateE", !12, i64 0, !9, i64 8, !9, i64 16, !9, i64 24, !12, i64 32, !9, i64 40, !9, i64 48, !13, i64 56, !13, i64 57, !12, i64 64, !12, i64 72, !14, i64 80, !14, i64 144, !17, i64 208, !12, i64 288, !14, i64 296, !9, i64 360, !12, i64 368, !12, i64 376, !12, i64 384, !14, i64 392, !14, i64 456, !14, i64 520, !14, i64 584, !14, i64 648, !9, i64 712, !9, i64 720, !9, i64 728, !14, i64 736, !9, i64 800, !9, i64 808, !12, i64 816, !13, i64 824, !13, i64 825, !9, i64 832, !14, i64 840, !12, i64 904, !14, i64 912, !9, i64 976, !14, i64 984, !13, i64 1048, !13, i64 1049, !13, i64 1050, !13, i64 1051, !13, i64 1052, !13, i64 1053, !13, i64 1054, !18, i64 1056, !12, i64 1320, !12, i64 1328, !12, i64 1336, !12, i64 1344, !20, i64 1352, !9, i64 1544, !9, i64 1552, !9, i64 1560, !9, i64 1568, !9, i64 1576, !9, i64 1584, !9, i64 1592, !14, i64 1600, !14, i64 1664, !14, i64 1728, !9, i64 1792, !12, i64 1800, !21, i64 1808, !14, i64 5776}
!12 = !{!"long", !6, i64 0}
!13 = !{!"bool", !6, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !12, i64 0, !12, i64 8, !13, i64 16, !15, i64 24, !6, i64 56}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24}
!16 = !{!"any pointer", !6, i64 0}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !13, i64 32, !15, i64 40, !6, i64 72}
!18 = !{!"_ZTSN11alglib_impl10rcommstateE", !19, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!19 = !{!"int", !6, i64 0}
!20 = !{!"_ZTSN11alglib_impl11linminstateE", !13, i64 0, !13, i64 1, !12, i64 8, !9, i64 16, !9, i64 24, !9, i64 32, !9, i64 40, !9, i64 48, !9, i64 56, !9, i64 64, !9, i64 72, !9, i64 80, !9, i64 88, !9, i64 96, !9, i64 104, !9, i64 112, !9, i64 120, !9, i64 128, !9, i64 136, !9, i64 144, !9, i64 152, !9, i64 160, !9, i64 168, !9, i64 176, !9, i64 184}
!21 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !12, i64 0, !12, i64 8, !13, i64 16, !14, i64 24, !12, i64 88, !14, i64 96, !14, i64 160, !14, i64 224, !17, i64 288, !14, i64 368, !14, i64 432, !12, i64 496, !13, i64 504, !13, i64 505, !9, i64 512, !9, i64 520, !13, i64 528, !22, i64 536, !9, i64 832, !9, i64 840, !23, i64 848, !23, i64 1152, !9, i64 1456, !9, i64 1464, !24, i64 1472, !24, i64 1784, !13, i64 2096, !14, i64 2104, !14, i64 2168, !17, i64 2232, !18, i64 2312, !14, i64 2576, !14, i64 2640, !14, i64 2704, !14, i64 2768, !14, i64 2832, !14, i64 2896, !14, i64 2960, !14, i64 3024, !17, i64 3088, !17, i64 3168, !14, i64 3248, !14, i64 3312, !14, i64 3376, !14, i64 3440, !14, i64 3504, !14, i64 3568, !14, i64 3632, !14, i64 3696, !14, i64 3760, !14, i64 3824, !17, i64 3888}
!22 = !{!"_ZTSN11alglib_impl14optguardreportE", !13, i64 0, !13, i64 1, !12, i64 8, !9, i64 16, !13, i64 24, !13, i64 25, !13, i64 26, !12, i64 32, !9, i64 40, !13, i64 48, !12, i64 56, !12, i64 64, !14, i64 72, !17, i64 136, !17, i64 216}
!23 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !13, i64 0, !12, i64 8, !14, i64 16, !14, i64 80, !12, i64 144, !14, i64 152, !14, i64 216, !12, i64 280, !12, i64 288, !12, i64 296}
!24 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !13, i64 0, !12, i64 8, !12, i64 16, !14, i64 24, !14, i64 88, !12, i64 152, !14, i64 160, !14, i64 224, !12, i64 288, !12, i64 296, !12, i64 304}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!11, !9, i64 976}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!11, !13, i64 1050}
!31 = !{!13, !13, i64 0}
!32 = distinct !{!32, !29}
!33 = distinct !{!33, !29}
!34 = distinct !{!34, !29}
!35 = !{!11, !13, i64 1048}
!36 = distinct !{!36, !29}
!37 = distinct !{!37, !29}
!38 = distinct !{!38, !29}
!39 = distinct !{!39, !29}
!40 = distinct !{!40, !29}
!41 = distinct !{!41, !29}
!42 = distinct !{!42, !29}
!43 = distinct !{!43, !29}
!44 = !{!45, !12, i64 16}
!45 = !{!"_ZTSN11alglib_impl11mincgreportE", !12, i64 0, !12, i64 8, !12, i64 16}
!46 = distinct !{!46, !29}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}
!49 = distinct !{!49, !29}
!50 = distinct !{!50, !29}
!51 = distinct !{!51, !29}
!52 = distinct !{!52, !29}
!53 = !{!54, !9, i64 16}
!54 = !{!"_ZTSN11alglib_impl8ae_stateE", !12, i64 0, !9, i64 8, !9, i64 16, !9, i64 24, !16, i64 32, !15, i64 40, !16, i64 72, !55, i64 80, !16, i64 88, !56, i64 96, !16, i64 104, !16, i64 112, !16, i64 120}
!55 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !6, i64 0}
!56 = !{!"long long", !6, i64 0}
!57 = distinct !{!57, !29}
!58 = distinct !{!58, !29}
!59 = distinct !{!59, !29}
!60 = distinct !{!60, !29}
!61 = !{!12, !12, i64 0}
!62 = !{!16, !16, i64 0}
!63 = distinct !{!63, !29}
!64 = distinct !{!64, !29}
!65 = distinct !{!65, !29}
!66 = distinct !{!66, !29}
!67 = distinct !{!67, !29}
!68 = distinct !{!68, !29}


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