; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/tests/test_c.ll (Z7crstestPbPN11alglib_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::hqrndstate" = type { i64, i64, i64 }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }

@.str.19 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [22 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z7crstestPbPN11alglib_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 i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca double, align 8
  %10 = alloca %"struct.alglib_impl::hqrndstate", align 8
  %11 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %12 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %13 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %14 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %15 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %20 = alloca %"struct.alglib_impl::ae_vector", align 8
  %21 = alloca %"struct.alglib_impl::ae_vector", align 8
  %22 = alloca %"struct.alglib_impl::ae_vector", align 8
  %23 = alloca %"struct.alglib_impl::ae_vector", align 8
  %24 = alloca i64, align 8
  %25 = 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 8, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 368, 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 80, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %26 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %26, ptr noundef %5)
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %14, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %21, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 64, i1 false)
  %27 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl16_hqrndstate_initEPvPNS_8ae_stateEb(ptr noundef %10, ptr noundef %27, i1 noundef zeroext true)
  %28 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %11, ptr noundef %28, i1 noundef zeroext true)
  %29 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %12, ptr noundef %29, i1 noundef zeroext true)
  %30 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %13, ptr noundef %30, i1 noundef zeroext true)
  %31 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %14, ptr noundef %31, i1 noundef zeroext true)
  %32 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef %15, ptr noundef %32, i1 noundef zeroext true)
  %33 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %19, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %33, i1 noundef zeroext true)
  %34 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %20, i64 noundef 0, i64 noundef 3, ptr noundef %34, i1 noundef zeroext true)
  %35 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %21, i64 noundef 0, i64 noundef 3, ptr noundef %35, i1 noundef zeroext true)
  %36 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %22, i64 noundef 0, i64 noundef 2, ptr noundef %36, i1 noundef zeroext true)
  %37 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %23, i64 noundef 0, i64 noundef 3, ptr noundef %37, i1 noundef zeroext true)
  %38 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14hqrndrandomizeEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %38)
  store i64 1, ptr %6, align 8, !tbaa !9
  br label %39

39:                                               ; preds = %1398, %2
  %40 = load i64, ptr %6, align 8, !tbaa !9
  %41 = icmp sle i64 %40, 10
  br i1 %41, label %42, label %1401

42:                                               ; preds = %39
  store i64 1, ptr %7, align 8, !tbaa !9
  br label %43

43:                                               ; preds = %1394, %42
  %44 = load i64, ptr %7, align 8, !tbaa !9
  %45 = icmp sle i64 %44, 10
  br i1 %45, label %46, label %1397

46:                                               ; preds = %43
  %47 = load i64, ptr %6, align 8, !tbaa !9
  %48 = load i64, ptr %7, align 8, !tbaa !9
  %49 = mul nsw i64 %47, %48
  store i64 %49, ptr %8, align 8, !tbaa !9
  br label %50

50:                                               ; preds = %1383, %46
  %51 = load i64, ptr %6, align 8, !tbaa !9
  %52 = icmp sgt i64 %51, 1
  br i1 %52, label %53, label %61

53:                                               ; preds = %50
  %54 = load i64, ptr %8, align 8, !tbaa !9
  %55 = sitofp i64 %54 to double
  %56 = load i64, ptr %7, align 8, !tbaa !9
  %57 = load i64, ptr %6, align 8, !tbaa !9
  %58 = mul nsw i64 %56, %57
  %59 = sitofp i64 %58 to double
  %60 = fdiv double %55, %59
  store double %60, ptr %9, align 8, !tbaa !11
  br label %62

61:                                               ; preds = %50
  store double 1.000000e+00, ptr %9, align 8, !tbaa !11
  br label %62

62:                                               ; preds = %61, %53
  %63 = load i64, ptr %7, align 8, !tbaa !9
  %64 = load i64, ptr %6, align 8, !tbaa !9
  %65 = load i64, ptr %8, align 8, !tbaa !9
  %66 = sitofp i64 %65 to double
  %67 = load ptr, ptr %4, align 8, !tbaa !5
  %68 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %67)
  %69 = fmul double %66, %68
  %70 = load ptr, ptr %4, align 8, !tbaa !5
  %71 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %69, ptr noundef %70)
  %72 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %63, i64 noundef %64, i64 noundef %71, ptr noundef %11, ptr noundef %72)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %73

73:                                               ; preds = %111, %62
  %74 = load i64, ptr %16, align 8, !tbaa !9
  %75 = load i64, ptr %7, align 8, !tbaa !9
  %76 = sub nsw i64 %75, 1
  %77 = icmp sle i64 %74, %76
  br i1 %77, label %78, label %114

78:                                               ; preds = %73
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %79

79:                                               ; preds = %107, %78
  %80 = load i64, ptr %17, align 8, !tbaa !9
  %81 = load i64, ptr %6, align 8, !tbaa !9
  %82 = sub nsw i64 %81, 1
  %83 = icmp sle i64 %80, %82
  br i1 %83, label %84, label %110

84:                                               ; preds = %79
  %85 = load ptr, ptr %3, align 8, !tbaa !5
  %86 = load i64, ptr %16, align 8, !tbaa !9
  %87 = load i64, ptr %17, align 8, !tbaa !9
  %88 = load ptr, ptr %4, align 8, !tbaa !5
  %89 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %86, i64 noundef %87, ptr noundef %88)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %85, i1 noundef zeroext %89, ptr noundef @.str.19, i32 noundef 14791, ptr noundef @.str.168)
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  %91 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %90)
  %92 = load double, ptr %9, align 8, !tbaa !11
  %93 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %91, double noundef %92)
  br i1 %93, label %94, label %106

94:                                               ; preds = %84
  %95 = load i64, ptr %16, align 8, !tbaa !9
  %96 = load i64, ptr %17, align 8, !tbaa !9
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %97)
  %99 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %11, i64 noundef %95, i64 noundef %96, double noundef %98, ptr noundef %99)
  %100 = load ptr, ptr %3, align 8, !tbaa !5
  %101 = load i64, ptr %16, align 8, !tbaa !9
  %102 = load i64, ptr %17, align 8, !tbaa !9
  %103 = load ptr, ptr %4, align 8, !tbaa !5
  %104 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %101, i64 noundef %102, ptr noundef %103)
  %105 = xor i1 %104, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %100, i1 noundef zeroext %105, ptr noundef @.str.19, i32 noundef 14795, ptr noundef @.str.169)
  br label %106

106:                                              ; preds = %94, %84
  br label %107

107:                                              ; preds = %106
  %108 = load i64, ptr %17, align 8, !tbaa !9
  %109 = add nsw i64 %108, 1
  store i64 %109, ptr %17, align 8, !tbaa !9
  br label %79, !llvm.loop !13

110:                                              ; preds = %79
  br label %111

111:                                              ; preds = %110
  %112 = load i64, ptr %16, align 8, !tbaa !9
  %113 = add nsw i64 %112, 1
  store i64 %113, ptr %16, align 8, !tbaa !9
  br label %73, !llvm.loop !15

114:                                              ; preds = %73
  %115 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl15sparsecopytocrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %11, ptr noundef %12, ptr noundef %115)
  %116 = load ptr, ptr %3, align 8, !tbaa !5
  %117 = load ptr, ptr %4, align 8, !tbaa !5
  %118 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %117)
  %119 = xor i1 %118, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %116, i1 noundef zeroext %119, ptr noundef @.str.19, i32 noundef 14800, ptr noundef @.str.170)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %120

120:                                              ; preds = %172, %114
  %121 = load i64, ptr %16, align 8, !tbaa !9
  %122 = load i64, ptr %7, align 8, !tbaa !9
  %123 = sub nsw i64 %122, 1
  %124 = icmp sle i64 %121, %123
  br i1 %124, label %125, label %175

125:                                              ; preds = %120
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %126

126:                                              ; preds = %168, %125
  %127 = load i64, ptr %17, align 8, !tbaa !9
  %128 = load i64, ptr %6, align 8, !tbaa !9
  %129 = sub nsw i64 %128, 1
  %130 = icmp sle i64 %127, %129
  br i1 %130, label %131, label %171

131:                                              ; preds = %126
  %132 = load ptr, ptr %3, align 8, !tbaa !5
  %133 = load i64, ptr %16, align 8, !tbaa !9
  %134 = load i64, ptr %17, align 8, !tbaa !9
  %135 = load ptr, ptr %4, align 8, !tbaa !5
  %136 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %133, i64 noundef %134, ptr noundef %135)
  %137 = load i64, ptr %16, align 8, !tbaa !9
  %138 = load i64, ptr %17, align 8, !tbaa !9
  %139 = load ptr, ptr %4, align 8, !tbaa !5
  %140 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %137, i64 noundef %138, ptr noundef %139)
  %141 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %136, double noundef %140)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %132, i1 noundef zeroext %141, ptr noundef @.str.19, i32 noundef 14805, ptr noundef @.str.171)
  %142 = load ptr, ptr %3, align 8, !tbaa !5
  %143 = load i64, ptr %16, align 8, !tbaa !9
  %144 = load i64, ptr %17, align 8, !tbaa !9
  %145 = load ptr, ptr %4, align 8, !tbaa !5
  %146 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %143, i64 noundef %144, ptr noundef %145)
  br i1 %146, label %147, label %153

147:                                              ; preds = %131
  %148 = load i64, ptr %16, align 8, !tbaa !9
  %149 = load i64, ptr %17, align 8, !tbaa !9
  %150 = load ptr, ptr %4, align 8, !tbaa !5
  %151 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %148, i64 noundef %149, ptr noundef %150)
  %152 = xor i1 %151, true
  br label %153

153:                                              ; preds = %147, %131
  %154 = phi i1 [ false, %131 ], [ %152, %147 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %142, i1 noundef zeroext %154, ptr noundef @.str.19, i32 noundef 14806, ptr noundef @.str.172)
  %155 = load ptr, ptr %3, align 8, !tbaa !5
  %156 = load i64, ptr %16, align 8, !tbaa !9
  %157 = load i64, ptr %17, align 8, !tbaa !9
  %158 = load ptr, ptr %4, align 8, !tbaa !5
  %159 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %156, i64 noundef %157, ptr noundef %158)
  br i1 %159, label %160, label %166

160:                                              ; preds = %153
  %161 = load i64, ptr %16, align 8, !tbaa !9
  %162 = load i64, ptr %17, align 8, !tbaa !9
  %163 = load ptr, ptr %4, align 8, !tbaa !5
  %164 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %161, i64 noundef %162, ptr noundef %163)
  %165 = xor i1 %164, true
  br label %166

166:                                              ; preds = %160, %153
  %167 = phi i1 [ false, %153 ], [ %165, %160 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %155, i1 noundef zeroext %167, ptr noundef @.str.19, i32 noundef 14807, ptr noundef @.str.173)
  br label %168

168:                                              ; preds = %166
  %169 = load i64, ptr %17, align 8, !tbaa !9
  %170 = add nsw i64 %169, 1
  store i64 %170, ptr %17, align 8, !tbaa !9
  br label %126, !llvm.loop !16

171:                                              ; preds = %126
  br label %172

172:                                              ; preds = %171
  %173 = load i64, ptr %16, align 8, !tbaa !9
  %174 = add nsw i64 %173, 1
  store i64 %174, ptr %16, align 8, !tbaa !9
  br label %120, !llvm.loop !17

175:                                              ; preds = %120
  %176 = load ptr, ptr %3, align 8, !tbaa !5
  %177 = load i8, ptr %176, align 1, !tbaa !18, !range !20, !noundef !21
  %178 = trunc i8 %177 to i1
  br i1 %178, label %179, label %181

179:                                              ; preds = %175
  %180 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %180)
  store i32 1, ptr %25, align 4
  br label %1403

181:                                              ; preds = %175
  %182 = load i64, ptr %6, align 8, !tbaa !9
  %183 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef %182, i64 noundef 0, ptr noundef %13, ptr noundef %183)
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %184

184:                                              ; preds = %195, %181
  %185 = load i64, ptr %17, align 8, !tbaa !9
  %186 = load i64, ptr %6, align 8, !tbaa !9
  %187 = sub nsw i64 %186, 1
  %188 = icmp sle i64 %185, %187
  br i1 %188, label %189, label %198

189:                                              ; preds = %184
  %190 = load i64, ptr %17, align 8, !tbaa !9
  %191 = load i64, ptr %17, align 8, !tbaa !9
  %192 = load ptr, ptr %4, align 8, !tbaa !5
  %193 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef 0, i64 noundef %191, ptr noundef %192)
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %13, i64 noundef 0, i64 noundef %190, double noundef %193, ptr noundef %194)
  br label %195

195:                                              ; preds = %189
  %196 = load i64, ptr %17, align 8, !tbaa !9
  %197 = add nsw i64 %196, 1
  store i64 %197, ptr %17, align 8, !tbaa !9
  br label %184, !llvm.loop !22

198:                                              ; preds = %184
  %199 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %199)
  store i64 1, ptr %16, align 8, !tbaa !9
  br label %200

200:                                              ; preds = %380, %198
  %201 = load i64, ptr %16, align 8, !tbaa !9
  %202 = load i64, ptr %7, align 8, !tbaa !9
  %203 = sub nsw i64 %202, 1
  %204 = icmp sle i64 %201, %203
  br i1 %204, label %205, label %383

205:                                              ; preds = %200
  %206 = load ptr, ptr %4, align 8, !tbaa !5
  %207 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %206)
  %208 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %207, double noundef 0.000000e+00)
  br i1 %208, label %209, label %299

209:                                              ; preds = %205
  %210 = load i64, ptr %6, align 8, !tbaa !9
  %211 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %210, ptr noundef %22, ptr noundef %211)
  %212 = load i64, ptr %6, align 8, !tbaa !9
  %213 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %212, ptr noundef %23, ptr noundef %213)
  store i64 0, ptr %24, align 8, !tbaa !9
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %214

214:                                              ; preds = %241, %209
  %215 = load i64, ptr %17, align 8, !tbaa !9
  %216 = load i64, ptr %6, align 8, !tbaa !9
  %217 = sub nsw i64 %216, 1
  %218 = icmp sle i64 %215, %217
  br i1 %218, label %219, label %244

219:                                              ; preds = %214
  %220 = load i64, ptr %16, align 8, !tbaa !9
  %221 = load i64, ptr %17, align 8, !tbaa !9
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %220, i64 noundef %221, ptr noundef %222)
  br i1 %223, label %224, label %240

224:                                              ; preds = %219
  %225 = load i64, ptr %17, align 8, !tbaa !9
  %226 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %227 = load ptr, ptr %226, align 8, !tbaa !23
  %228 = load i64, ptr %24, align 8, !tbaa !9
  %229 = getelementptr inbounds i64, ptr %227, i64 %228
  store i64 %225, ptr %229, align 8, !tbaa !9
  %230 = load i64, ptr %16, align 8, !tbaa !9
  %231 = load i64, ptr %17, align 8, !tbaa !9
  %232 = load ptr, ptr %4, align 8, !tbaa !5
  %233 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %230, i64 noundef %231, ptr noundef %232)
  %234 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %235 = load ptr, ptr %234, align 8, !tbaa !23
  %236 = load i64, ptr %24, align 8, !tbaa !9
  %237 = getelementptr inbounds double, ptr %235, i64 %236
  store double %233, ptr %237, align 8, !tbaa !11
  %238 = load i64, ptr %24, align 8, !tbaa !9
  %239 = add nsw i64 %238, 1
  store i64 %239, ptr %24, align 8, !tbaa !9
  br label %240

240:                                              ; preds = %224, %219
  br label %241

241:                                              ; preds = %240
  %242 = load i64, ptr %17, align 8, !tbaa !9
  %243 = add nsw i64 %242, 1
  store i64 %243, ptr %17, align 8, !tbaa !9
  br label %214, !llvm.loop !24

244:                                              ; preds = %214
  br label %245

245:                                              ; preds = %254, %244
  %246 = load ptr, ptr %4, align 8, !tbaa !5
  %247 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %246)
  %248 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %247, double noundef 0.000000e+00)
  br i1 %248, label %249, label %252

249:                                              ; preds = %245
  %250 = load i64, ptr %24, align 8, !tbaa !9
  %251 = icmp sgt i64 %250, 0
  br label %252

252:                                              ; preds = %249, %245
  %253 = phi i1 [ false, %245 ], [ %251, %249 ]
  br i1 %253, label %254, label %296

254:                                              ; preds = %252
  %255 = load i64, ptr %24, align 8, !tbaa !9
  %256 = add nsw i64 %255, 1
  %257 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %256, ptr noundef %22, ptr noundef %257)
  %258 = load i64, ptr %24, align 8, !tbaa !9
  %259 = add nsw i64 %258, 1
  %260 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %259, ptr noundef %23, ptr noundef %260)
  %261 = load i64, ptr %24, align 8, !tbaa !9
  %262 = load ptr, ptr %4, align 8, !tbaa !5
  %263 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %10, i64 noundef %261, ptr noundef %262)
  store i64 %263, ptr %17, align 8, !tbaa !9
  %264 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %265 = load ptr, ptr %264, align 8, !tbaa !23
  %266 = load i64, ptr %17, align 8, !tbaa !9
  %267 = getelementptr inbounds i64, ptr %265, i64 %266
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %270 = load ptr, ptr %269, align 8, !tbaa !23
  %271 = load i64, ptr %24, align 8, !tbaa !9
  %272 = getelementptr inbounds i64, ptr %270, i64 %271
  store i64 %268, ptr %272, align 8, !tbaa !9
  %273 = load ptr, ptr %4, align 8, !tbaa !5
  %274 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %273)
  %275 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %276 = load ptr, ptr %275, align 8, !tbaa !23
  %277 = load i64, ptr %24, align 8, !tbaa !9
  %278 = getelementptr inbounds double, ptr %276, i64 %277
  store double %274, ptr %278, align 8, !tbaa !11
  %279 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %280 = load ptr, ptr %279, align 8, !tbaa !23
  %281 = load i64, ptr %17, align 8, !tbaa !9
  %282 = getelementptr inbounds double, ptr %280, i64 %281
  %283 = load double, ptr %282, align 8, !tbaa !11
  %284 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %285 = load ptr, ptr %284, align 8, !tbaa !23
  %286 = load i64, ptr %24, align 8, !tbaa !9
  %287 = getelementptr inbounds double, ptr %285, i64 %286
  %288 = load double, ptr %287, align 8, !tbaa !11
  %289 = fsub double %283, %288
  %290 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %291 = load ptr, ptr %290, align 8, !tbaa !23
  %292 = load i64, ptr %17, align 8, !tbaa !9
  %293 = getelementptr inbounds double, ptr %291, i64 %292
  store double %289, ptr %293, align 8, !tbaa !11
  %294 = load i64, ptr %24, align 8, !tbaa !9
  %295 = add nsw i64 %294, 1
  store i64 %295, ptr %24, align 8, !tbaa !9
  br label %245, !llvm.loop !25

296:                                              ; preds = %252
  %297 = load i64, ptr %24, align 8, !tbaa !9
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl25sparseappendcompressedrowEPNS_12sparsematrixEPKNS_9ae_vectorES4_lPNS_8ae_stateE(ptr noundef %13, ptr noundef %22, ptr noundef %23, i64 noundef %297, ptr noundef %298)
  br label %373

299:                                              ; preds = %205
  %300 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparseappendemptyrowEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %300)
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %301

301:                                              ; preds = %319, %299
  %302 = load i64, ptr %17, align 8, !tbaa !9
  %303 = load i64, ptr %6, align 8, !tbaa !9
  %304 = sub nsw i64 %303, 1
  %305 = icmp sle i64 %302, %304
  br i1 %305, label %306, label %322

306:                                              ; preds = %301
  %307 = load i64, ptr %16, align 8, !tbaa !9
  %308 = load i64, ptr %17, align 8, !tbaa !9
  %309 = load ptr, ptr %4, align 8, !tbaa !5
  %310 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %307, i64 noundef %308, ptr noundef %309)
  br i1 %310, label %311, label %318

311:                                              ; preds = %306
  %312 = load i64, ptr %17, align 8, !tbaa !9
  %313 = load i64, ptr %16, align 8, !tbaa !9
  %314 = load i64, ptr %17, align 8, !tbaa !9
  %315 = load ptr, ptr %4, align 8, !tbaa !5
  %316 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %313, i64 noundef %314, ptr noundef %315)
  %317 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sparseappendelementEPNS_12sparsematrixEldPNS_8ae_stateE(ptr noundef %13, i64 noundef %312, double noundef %316, ptr noundef %317)
  br label %318

318:                                              ; preds = %311, %306
  br label %319

319:                                              ; preds = %318
  %320 = load i64, ptr %17, align 8, !tbaa !9
  %321 = add nsw i64 %320, 1
  store i64 %321, ptr %17, align 8, !tbaa !9
  br label %301, !llvm.loop !26

322:                                              ; preds = %301
  %323 = load ptr, ptr %3, align 8, !tbaa !5
  %324 = load i64, ptr %16, align 8, !tbaa !9
  %325 = load i64, ptr %6, align 8, !tbaa !9
  %326 = icmp slt i64 %324, %325
  br i1 %326, label %327, label %346

327:                                              ; preds = %322
  %328 = load i64, ptr %16, align 8, !tbaa !9
  %329 = load i64, ptr %16, align 8, !tbaa !9
  %330 = load ptr, ptr %4, align 8, !tbaa !5
  %331 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %328, i64 noundef %329, ptr noundef %330)
  br i1 %331, label %332, label %346

332:                                              ; preds = %327
  %333 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 3
  %334 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %333, i32 0, i32 4
  %335 = load ptr, ptr %334, align 8, !tbaa !23
  %336 = load i64, ptr %16, align 8, !tbaa !9
  %337 = getelementptr inbounds i64, ptr %335, i64 %336
  %338 = load i64, ptr %337, align 8, !tbaa !9
  %339 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 4
  %340 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %339, i32 0, i32 4
  %341 = load ptr, ptr %340, align 8, !tbaa !23
  %342 = load i64, ptr %16, align 8, !tbaa !9
  %343 = getelementptr inbounds i64, ptr %341, i64 %342
  %344 = load i64, ptr %343, align 8, !tbaa !9
  %345 = icmp eq i64 %338, %344
  br label %346

346:                                              ; preds = %332, %327, %322
  %347 = phi i1 [ false, %327 ], [ false, %322 ], [ %345, %332 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %323, i1 noundef zeroext %347, ptr noundef @.str.19, i32 noundef 14876, ptr noundef @.str.174)
  %348 = load ptr, ptr %3, align 8, !tbaa !5
  %349 = load i64, ptr %16, align 8, !tbaa !9
  %350 = load i64, ptr %6, align 8, !tbaa !9
  %351 = icmp sge i64 %349, %350
  br i1 %351, label %357, label %352

352:                                              ; preds = %346
  %353 = load i64, ptr %16, align 8, !tbaa !9
  %354 = load i64, ptr %16, align 8, !tbaa !9
  %355 = load ptr, ptr %4, align 8, !tbaa !5
  %356 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %353, i64 noundef %354, ptr noundef %355)
  br i1 %356, label %371, label %357

357:                                              ; preds = %352, %346
  %358 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 3
  %359 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %358, i32 0, i32 4
  %360 = load ptr, ptr %359, align 8, !tbaa !23
  %361 = load i64, ptr %16, align 8, !tbaa !9
  %362 = getelementptr inbounds i64, ptr %360, i64 %361
  %363 = load i64, ptr %362, align 8, !tbaa !9
  %364 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 4
  %365 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %364, i32 0, i32 4
  %366 = load ptr, ptr %365, align 8, !tbaa !23
  %367 = load i64, ptr %16, align 8, !tbaa !9
  %368 = getelementptr inbounds i64, ptr %366, i64 %367
  %369 = load i64, ptr %368, align 8, !tbaa !9
  %370 = icmp ne i64 %363, %369
  br label %371

371:                                              ; preds = %357, %352
  %372 = phi i1 [ false, %352 ], [ %370, %357 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %348, i1 noundef zeroext %372, ptr noundef @.str.19, i32 noundef 14877, ptr noundef @.str.175)
  br label %373

373:                                              ; preds = %371, %296
  %374 = load ptr, ptr %3, align 8, !tbaa !5
  %375 = load ptr, ptr %4, align 8, !tbaa !5
  %376 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %375)
  %377 = load i64, ptr %16, align 8, !tbaa !9
  %378 = add nsw i64 %377, 1
  %379 = icmp ne i64 %376, %378
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %374, i1 noundef zeroext %379, ptr noundef @.str.19, i32 noundef 14879, ptr noundef @.str.176)
  br label %380

380:                                              ; preds = %373
  %381 = load i64, ptr %16, align 8, !tbaa !9
  %382 = add nsw i64 %381, 1
  store i64 %382, ptr %16, align 8, !tbaa !9
  br label %200, !llvm.loop !27

383:                                              ; preds = %200
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %384

384:                                              ; preds = %441, %383
  %385 = load i64, ptr %16, align 8, !tbaa !9
  %386 = load i64, ptr %7, align 8, !tbaa !9
  %387 = sub nsw i64 %386, 1
  %388 = icmp sle i64 %385, %387
  br i1 %388, label %389, label %444

389:                                              ; preds = %384
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %390

390:                                              ; preds = %437, %389
  %391 = load i64, ptr %17, align 8, !tbaa !9
  %392 = load i64, ptr %6, align 8, !tbaa !9
  %393 = sub nsw i64 %392, 1
  %394 = icmp sle i64 %391, %393
  br i1 %394, label %395, label %440

395:                                              ; preds = %390
  %396 = load ptr, ptr %3, align 8, !tbaa !5
  %397 = load i64, ptr %16, align 8, !tbaa !9
  %398 = load i64, ptr %17, align 8, !tbaa !9
  %399 = load ptr, ptr %4, align 8, !tbaa !5
  %400 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %397, i64 noundef %398, ptr noundef %399)
  %401 = load i64, ptr %16, align 8, !tbaa !9
  %402 = load i64, ptr %17, align 8, !tbaa !9
  %403 = load ptr, ptr %4, align 8, !tbaa !5
  %404 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %401, i64 noundef %402, ptr noundef %403)
  %405 = fsub double %400, %404
  %406 = load ptr, ptr %4, align 8, !tbaa !5
  %407 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %405, ptr noundef %406)
  %408 = load ptr, ptr %4, align 8, !tbaa !5
  %409 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %408)
  %410 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %407, double noundef %409)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %396, i1 noundef zeroext %410, ptr noundef @.str.19, i32 noundef 14885, ptr noundef @.str.177)
  %411 = load ptr, ptr %3, align 8, !tbaa !5
  %412 = load i64, ptr %16, align 8, !tbaa !9
  %413 = load i64, ptr %17, align 8, !tbaa !9
  %414 = load ptr, ptr %4, align 8, !tbaa !5
  %415 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %412, i64 noundef %413, ptr noundef %414)
  br i1 %415, label %416, label %422

416:                                              ; preds = %395
  %417 = load i64, ptr %16, align 8, !tbaa !9
  %418 = load i64, ptr %17, align 8, !tbaa !9
  %419 = load ptr, ptr %4, align 8, !tbaa !5
  %420 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %417, i64 noundef %418, ptr noundef %419)
  %421 = xor i1 %420, true
  br label %422

422:                                              ; preds = %416, %395
  %423 = phi i1 [ false, %395 ], [ %421, %416 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %411, i1 noundef zeroext %423, ptr noundef @.str.19, i32 noundef 14886, ptr noundef @.str.178)
  %424 = load ptr, ptr %3, align 8, !tbaa !5
  %425 = load i64, ptr %16, align 8, !tbaa !9
  %426 = load i64, ptr %17, align 8, !tbaa !9
  %427 = load ptr, ptr %4, align 8, !tbaa !5
  %428 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %425, i64 noundef %426, ptr noundef %427)
  br i1 %428, label %429, label %435

429:                                              ; preds = %422
  %430 = load i64, ptr %16, align 8, !tbaa !9
  %431 = load i64, ptr %17, align 8, !tbaa !9
  %432 = load ptr, ptr %4, align 8, !tbaa !5
  %433 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %430, i64 noundef %431, ptr noundef %432)
  %434 = xor i1 %433, true
  br label %435

435:                                              ; preds = %429, %422
  %436 = phi i1 [ false, %422 ], [ %434, %429 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %424, i1 noundef zeroext %436, ptr noundef @.str.19, i32 noundef 14887, ptr noundef @.str.179)
  br label %437

437:                                              ; preds = %435
  %438 = load i64, ptr %17, align 8, !tbaa !9
  %439 = add nsw i64 %438, 1
  store i64 %439, ptr %17, align 8, !tbaa !9
  br label %390, !llvm.loop !28

440:                                              ; preds = %390
  br label %441

441:                                              ; preds = %440
  %442 = load i64, ptr %16, align 8, !tbaa !9
  %443 = add nsw i64 %442, 1
  store i64 %443, ptr %16, align 8, !tbaa !9
  br label %384, !llvm.loop !29

444:                                              ; preds = %384
  store i64 0, ptr %18, align 8, !tbaa !9
  br label %445

445:                                              ; preds = %608, %444
  %446 = load i64, ptr %18, align 8, !tbaa !9
  %447 = load i64, ptr %7, align 8, !tbaa !9
  %448 = sub nsw i64 %447, 1
  %449 = icmp sle i64 %446, %448
  br i1 %449, label %450, label %611

450:                                              ; preds = %445
  %451 = load i64, ptr %18, align 8, !tbaa !9
  %452 = icmp sgt i64 %451, 0
  br i1 %452, label %453, label %485

453:                                              ; preds = %450
  %454 = load i64, ptr %18, align 8, !tbaa !9
  %455 = load i64, ptr %6, align 8, !tbaa !9
  %456 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %454, i64 noundef %455, i64 noundef 0, ptr noundef %13, ptr noundef %456)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %457

457:                                              ; preds = %480, %453
  %458 = load i64, ptr %16, align 8, !tbaa !9
  %459 = load i64, ptr %18, align 8, !tbaa !9
  %460 = sub nsw i64 %459, 1
  %461 = icmp sle i64 %458, %460
  br i1 %461, label %462, label %483

462:                                              ; preds = %457
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %463

463:                                              ; preds = %476, %462
  %464 = load i64, ptr %17, align 8, !tbaa !9
  %465 = load i64, ptr %6, align 8, !tbaa !9
  %466 = sub nsw i64 %465, 1
  %467 = icmp sle i64 %464, %466
  br i1 %467, label %468, label %479

468:                                              ; preds = %463
  %469 = load i64, ptr %16, align 8, !tbaa !9
  %470 = load i64, ptr %17, align 8, !tbaa !9
  %471 = load i64, ptr %16, align 8, !tbaa !9
  %472 = load i64, ptr %17, align 8, !tbaa !9
  %473 = load ptr, ptr %4, align 8, !tbaa !5
  %474 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %471, i64 noundef %472, ptr noundef %473)
  %475 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %13, i64 noundef %469, i64 noundef %470, double noundef %474, ptr noundef %475)
  br label %476

476:                                              ; preds = %468
  %477 = load i64, ptr %17, align 8, !tbaa !9
  %478 = add nsw i64 %477, 1
  store i64 %478, ptr %17, align 8, !tbaa !9
  br label %463, !llvm.loop !30

479:                                              ; preds = %463
  br label %480

480:                                              ; preds = %479
  %481 = load i64, ptr %16, align 8, !tbaa !9
  %482 = add nsw i64 %481, 1
  store i64 %482, ptr %16, align 8, !tbaa !9
  br label %457, !llvm.loop !31

483:                                              ; preds = %457
  %484 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %484)
  br label %488

485:                                              ; preds = %450
  %486 = load i64, ptr %6, align 8, !tbaa !9
  %487 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsecreatecrsemptyElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %486, ptr noundef %13, ptr noundef %487)
  br label %488

488:                                              ; preds = %485, %483
  %489 = load ptr, ptr %3, align 8, !tbaa !5
  %490 = load ptr, ptr %4, align 8, !tbaa !5
  %491 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %490)
  %492 = load i64, ptr %18, align 8, !tbaa !9
  %493 = icmp ne i64 %491, %492
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %489, i1 noundef zeroext %493, ptr noundef @.str.19, i32 noundef 14912, ptr noundef @.str.180)
  %494 = load ptr, ptr %3, align 8, !tbaa !5
  %495 = load ptr, ptr %4, align 8, !tbaa !5
  %496 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %495)
  %497 = load i64, ptr %6, align 8, !tbaa !9
  %498 = icmp ne i64 %496, %497
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %494, i1 noundef zeroext %498, ptr noundef @.str.19, i32 noundef 14913, ptr noundef @.str.181)
  %499 = load i64, ptr %7, align 8, !tbaa !9
  %500 = load i64, ptr %18, align 8, !tbaa !9
  %501 = sub nsw i64 %499, %500
  %502 = load i64, ptr %6, align 8, !tbaa !9
  %503 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %501, i64 noundef %502, i64 noundef 0, ptr noundef %14, ptr noundef %503)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %504

504:                                              ; preds = %531, %488
  %505 = load i64, ptr %16, align 8, !tbaa !9
  %506 = load i64, ptr %7, align 8, !tbaa !9
  %507 = load i64, ptr %18, align 8, !tbaa !9
  %508 = sub nsw i64 %506, %507
  %509 = sub nsw i64 %508, 1
  %510 = icmp sle i64 %505, %509
  br i1 %510, label %511, label %534

511:                                              ; preds = %504
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %512

512:                                              ; preds = %527, %511
  %513 = load i64, ptr %17, align 8, !tbaa !9
  %514 = load i64, ptr %6, align 8, !tbaa !9
  %515 = sub nsw i64 %514, 1
  %516 = icmp sle i64 %513, %515
  br i1 %516, label %517, label %530

517:                                              ; preds = %512
  %518 = load i64, ptr %16, align 8, !tbaa !9
  %519 = load i64, ptr %17, align 8, !tbaa !9
  %520 = load i64, ptr %18, align 8, !tbaa !9
  %521 = load i64, ptr %16, align 8, !tbaa !9
  %522 = add nsw i64 %520, %521
  %523 = load i64, ptr %17, align 8, !tbaa !9
  %524 = load ptr, ptr %4, align 8, !tbaa !5
  %525 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %522, i64 noundef %523, ptr noundef %524)
  %526 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef %14, i64 noundef %518, i64 noundef %519, double noundef %525, ptr noundef %526)
  br label %527

527:                                              ; preds = %517
  %528 = load i64, ptr %17, align 8, !tbaa !9
  %529 = add nsw i64 %528, 1
  store i64 %529, ptr %17, align 8, !tbaa !9
  br label %512, !llvm.loop !32

530:                                              ; preds = %512
  br label %531

531:                                              ; preds = %530
  %532 = load i64, ptr %16, align 8, !tbaa !9
  %533 = add nsw i64 %532, 1
  store i64 %533, ptr %16, align 8, !tbaa !9
  br label %504, !llvm.loop !33

534:                                              ; preds = %504
  %535 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %14, ptr noundef %535)
  %536 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparseappendmatrixEPNS_12sparsematrixEPKS0_PNS_8ae_stateE(ptr noundef %13, ptr noundef %14, ptr noundef %536)
  %537 = load ptr, ptr %3, align 8, !tbaa !5
  %538 = load ptr, ptr %4, align 8, !tbaa !5
  %539 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %538)
  %540 = load i64, ptr %7, align 8, !tbaa !9
  %541 = icmp ne i64 %539, %540
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %537, i1 noundef zeroext %541, ptr noundef @.str.19, i32 noundef 14924, ptr noundef @.str.182)
  %542 = load ptr, ptr %3, align 8, !tbaa !5
  %543 = load ptr, ptr %4, align 8, !tbaa !5
  %544 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %543)
  %545 = load i64, ptr %6, align 8, !tbaa !9
  %546 = icmp ne i64 %544, %545
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %542, i1 noundef zeroext %546, ptr noundef @.str.19, i32 noundef 14925, ptr noundef @.str.183)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %547

547:                                              ; preds = %604, %534
  %548 = load i64, ptr %16, align 8, !tbaa !9
  %549 = load i64, ptr %7, align 8, !tbaa !9
  %550 = sub nsw i64 %549, 1
  %551 = icmp sle i64 %548, %550
  br i1 %551, label %552, label %607

552:                                              ; preds = %547
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %553

553:                                              ; preds = %600, %552
  %554 = load i64, ptr %17, align 8, !tbaa !9
  %555 = load i64, ptr %6, align 8, !tbaa !9
  %556 = sub nsw i64 %555, 1
  %557 = icmp sle i64 %554, %556
  br i1 %557, label %558, label %603

558:                                              ; preds = %553
  %559 = load ptr, ptr %3, align 8, !tbaa !5
  %560 = load i64, ptr %16, align 8, !tbaa !9
  %561 = load i64, ptr %17, align 8, !tbaa !9
  %562 = load ptr, ptr %4, align 8, !tbaa !5
  %563 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %560, i64 noundef %561, ptr noundef %562)
  %564 = load i64, ptr %16, align 8, !tbaa !9
  %565 = load i64, ptr %17, align 8, !tbaa !9
  %566 = load ptr, ptr %4, align 8, !tbaa !5
  %567 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %564, i64 noundef %565, ptr noundef %566)
  %568 = fsub double %563, %567
  %569 = load ptr, ptr %4, align 8, !tbaa !5
  %570 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %568, ptr noundef %569)
  %571 = load ptr, ptr %4, align 8, !tbaa !5
  %572 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %571)
  %573 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %570, double noundef %572)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %559, i1 noundef zeroext %573, ptr noundef @.str.19, i32 noundef 14930, ptr noundef @.str.184)
  %574 = load ptr, ptr %3, align 8, !tbaa !5
  %575 = load i64, ptr %16, align 8, !tbaa !9
  %576 = load i64, ptr %17, align 8, !tbaa !9
  %577 = load ptr, ptr %4, align 8, !tbaa !5
  %578 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %575, i64 noundef %576, ptr noundef %577)
  br i1 %578, label %579, label %585

579:                                              ; preds = %558
  %580 = load i64, ptr %16, align 8, !tbaa !9
  %581 = load i64, ptr %17, align 8, !tbaa !9
  %582 = load ptr, ptr %4, align 8, !tbaa !5
  %583 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %580, i64 noundef %581, ptr noundef %582)
  %584 = xor i1 %583, true
  br label %585

585:                                              ; preds = %579, %558
  %586 = phi i1 [ false, %558 ], [ %584, %579 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %574, i1 noundef zeroext %586, ptr noundef @.str.19, i32 noundef 14931, ptr noundef @.str.185)
  %587 = load ptr, ptr %3, align 8, !tbaa !5
  %588 = load i64, ptr %16, align 8, !tbaa !9
  %589 = load i64, ptr %17, align 8, !tbaa !9
  %590 = load ptr, ptr %4, align 8, !tbaa !5
  %591 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %588, i64 noundef %589, ptr noundef %590)
  br i1 %591, label %592, label %598

592:                                              ; preds = %585
  %593 = load i64, ptr %16, align 8, !tbaa !9
  %594 = load i64, ptr %17, align 8, !tbaa !9
  %595 = load ptr, ptr %4, align 8, !tbaa !5
  %596 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %593, i64 noundef %594, ptr noundef %595)
  %597 = xor i1 %596, true
  br label %598

598:                                              ; preds = %592, %585
  %599 = phi i1 [ false, %585 ], [ %597, %592 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %587, i1 noundef zeroext %599, ptr noundef @.str.19, i32 noundef 14932, ptr noundef @.str.186)
  br label %600

600:                                              ; preds = %598
  %601 = load i64, ptr %17, align 8, !tbaa !9
  %602 = add nsw i64 %601, 1
  store i64 %602, ptr %17, align 8, !tbaa !9
  br label %553, !llvm.loop !34

603:                                              ; preds = %553
  br label %604

604:                                              ; preds = %603
  %605 = load i64, ptr %16, align 8, !tbaa !9
  %606 = add nsw i64 %605, 1
  store i64 %606, ptr %16, align 8, !tbaa !9
  br label %547, !llvm.loop !35

607:                                              ; preds = %547
  br label %608

608:                                              ; preds = %607
  %609 = load i64, ptr %18, align 8, !tbaa !9
  %610 = add nsw i64 %609, 1
  store i64 %610, ptr %18, align 8, !tbaa !9
  br label %445, !llvm.loop !36

611:                                              ; preds = %445
  %612 = load i64, ptr %6, align 8, !tbaa !9
  %613 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsecreatecrsemptyElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %612, ptr noundef %13, ptr noundef %613)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %614

614:                                              ; preds = %794, %611
  %615 = load i64, ptr %16, align 8, !tbaa !9
  %616 = load i64, ptr %7, align 8, !tbaa !9
  %617 = sub nsw i64 %616, 1
  %618 = icmp sle i64 %615, %617
  br i1 %618, label %619, label %797

619:                                              ; preds = %614
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %620)
  %622 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %621, double noundef 0.000000e+00)
  br i1 %622, label %623, label %713

623:                                              ; preds = %619
  %624 = load i64, ptr %6, align 8, !tbaa !9
  %625 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %624, ptr noundef %22, ptr noundef %625)
  %626 = load i64, ptr %6, align 8, !tbaa !9
  %627 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %626, ptr noundef %23, ptr noundef %627)
  store i64 0, ptr %24, align 8, !tbaa !9
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %628

628:                                              ; preds = %655, %623
  %629 = load i64, ptr %17, align 8, !tbaa !9
  %630 = load i64, ptr %6, align 8, !tbaa !9
  %631 = sub nsw i64 %630, 1
  %632 = icmp sle i64 %629, %631
  br i1 %632, label %633, label %658

633:                                              ; preds = %628
  %634 = load i64, ptr %16, align 8, !tbaa !9
  %635 = load i64, ptr %17, align 8, !tbaa !9
  %636 = load ptr, ptr %4, align 8, !tbaa !5
  %637 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %634, i64 noundef %635, ptr noundef %636)
  br i1 %637, label %638, label %654

638:                                              ; preds = %633
  %639 = load i64, ptr %17, align 8, !tbaa !9
  %640 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %641 = load ptr, ptr %640, align 8, !tbaa !23
  %642 = load i64, ptr %24, align 8, !tbaa !9
  %643 = getelementptr inbounds i64, ptr %641, i64 %642
  store i64 %639, ptr %643, align 8, !tbaa !9
  %644 = load i64, ptr %16, align 8, !tbaa !9
  %645 = load i64, ptr %17, align 8, !tbaa !9
  %646 = load ptr, ptr %4, align 8, !tbaa !5
  %647 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %644, i64 noundef %645, ptr noundef %646)
  %648 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %649 = load ptr, ptr %648, align 8, !tbaa !23
  %650 = load i64, ptr %24, align 8, !tbaa !9
  %651 = getelementptr inbounds double, ptr %649, i64 %650
  store double %647, ptr %651, align 8, !tbaa !11
  %652 = load i64, ptr %24, align 8, !tbaa !9
  %653 = add nsw i64 %652, 1
  store i64 %653, ptr %24, align 8, !tbaa !9
  br label %654

654:                                              ; preds = %638, %633
  br label %655

655:                                              ; preds = %654
  %656 = load i64, ptr %17, align 8, !tbaa !9
  %657 = add nsw i64 %656, 1
  store i64 %657, ptr %17, align 8, !tbaa !9
  br label %628, !llvm.loop !37

658:                                              ; preds = %628
  br label %659

659:                                              ; preds = %668, %658
  %660 = load ptr, ptr %4, align 8, !tbaa !5
  %661 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %660)
  %662 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %661, double noundef 0.000000e+00)
  br i1 %662, label %663, label %666

663:                                              ; preds = %659
  %664 = load i64, ptr %24, align 8, !tbaa !9
  %665 = icmp sgt i64 %664, 0
  br label %666

666:                                              ; preds = %663, %659
  %667 = phi i1 [ false, %659 ], [ %665, %663 ]
  br i1 %667, label %668, label %710

668:                                              ; preds = %666
  %669 = load i64, ptr %24, align 8, !tbaa !9
  %670 = add nsw i64 %669, 1
  %671 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %670, ptr noundef %22, ptr noundef %671)
  %672 = load i64, ptr %24, align 8, !tbaa !9
  %673 = add nsw i64 %672, 1
  %674 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %673, ptr noundef %23, ptr noundef %674)
  %675 = load i64, ptr %24, align 8, !tbaa !9
  %676 = load ptr, ptr %4, align 8, !tbaa !5
  %677 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %10, i64 noundef %675, ptr noundef %676)
  store i64 %677, ptr %17, align 8, !tbaa !9
  %678 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %679 = load ptr, ptr %678, align 8, !tbaa !23
  %680 = load i64, ptr %17, align 8, !tbaa !9
  %681 = getelementptr inbounds i64, ptr %679, i64 %680
  %682 = load i64, ptr %681, align 8, !tbaa !9
  %683 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %22, i32 0, i32 4
  %684 = load ptr, ptr %683, align 8, !tbaa !23
  %685 = load i64, ptr %24, align 8, !tbaa !9
  %686 = getelementptr inbounds i64, ptr %684, i64 %685
  store i64 %682, ptr %686, align 8, !tbaa !9
  %687 = load ptr, ptr %4, align 8, !tbaa !5
  %688 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %687)
  %689 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %690 = load ptr, ptr %689, align 8, !tbaa !23
  %691 = load i64, ptr %24, align 8, !tbaa !9
  %692 = getelementptr inbounds double, ptr %690, i64 %691
  store double %688, ptr %692, align 8, !tbaa !11
  %693 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %694 = load ptr, ptr %693, align 8, !tbaa !23
  %695 = load i64, ptr %17, align 8, !tbaa !9
  %696 = getelementptr inbounds double, ptr %694, i64 %695
  %697 = load double, ptr %696, align 8, !tbaa !11
  %698 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %699 = load ptr, ptr %698, align 8, !tbaa !23
  %700 = load i64, ptr %24, align 8, !tbaa !9
  %701 = getelementptr inbounds double, ptr %699, i64 %700
  %702 = load double, ptr %701, align 8, !tbaa !11
  %703 = fsub double %697, %702
  %704 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %705 = load ptr, ptr %704, align 8, !tbaa !23
  %706 = load i64, ptr %17, align 8, !tbaa !9
  %707 = getelementptr inbounds double, ptr %705, i64 %706
  store double %703, ptr %707, align 8, !tbaa !11
  %708 = load i64, ptr %24, align 8, !tbaa !9
  %709 = add nsw i64 %708, 1
  store i64 %709, ptr %24, align 8, !tbaa !9
  br label %659, !llvm.loop !38

710:                                              ; preds = %666
  %711 = load i64, ptr %24, align 8, !tbaa !9
  %712 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl25sparseappendcompressedrowEPNS_12sparsematrixEPKNS_9ae_vectorES4_lPNS_8ae_stateE(ptr noundef %13, ptr noundef %22, ptr noundef %23, i64 noundef %711, ptr noundef %712)
  br label %787

713:                                              ; preds = %619
  %714 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparseappendemptyrowEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %714)
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %715

715:                                              ; preds = %733, %713
  %716 = load i64, ptr %17, align 8, !tbaa !9
  %717 = load i64, ptr %6, align 8, !tbaa !9
  %718 = sub nsw i64 %717, 1
  %719 = icmp sle i64 %716, %718
  br i1 %719, label %720, label %736

720:                                              ; preds = %715
  %721 = load i64, ptr %16, align 8, !tbaa !9
  %722 = load i64, ptr %17, align 8, !tbaa !9
  %723 = load ptr, ptr %4, align 8, !tbaa !5
  %724 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %721, i64 noundef %722, ptr noundef %723)
  br i1 %724, label %725, label %732

725:                                              ; preds = %720
  %726 = load i64, ptr %17, align 8, !tbaa !9
  %727 = load i64, ptr %16, align 8, !tbaa !9
  %728 = load i64, ptr %17, align 8, !tbaa !9
  %729 = load ptr, ptr %4, align 8, !tbaa !5
  %730 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %727, i64 noundef %728, ptr noundef %729)
  %731 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl19sparseappendelementEPNS_12sparsematrixEldPNS_8ae_stateE(ptr noundef %13, i64 noundef %726, double noundef %730, ptr noundef %731)
  br label %732

732:                                              ; preds = %725, %720
  br label %733

733:                                              ; preds = %732
  %734 = load i64, ptr %17, align 8, !tbaa !9
  %735 = add nsw i64 %734, 1
  store i64 %735, ptr %17, align 8, !tbaa !9
  br label %715, !llvm.loop !39

736:                                              ; preds = %715
  %737 = load ptr, ptr %3, align 8, !tbaa !5
  %738 = load i64, ptr %16, align 8, !tbaa !9
  %739 = load i64, ptr %6, align 8, !tbaa !9
  %740 = icmp slt i64 %738, %739
  br i1 %740, label %741, label %760

741:                                              ; preds = %736
  %742 = load i64, ptr %16, align 8, !tbaa !9
  %743 = load i64, ptr %16, align 8, !tbaa !9
  %744 = load ptr, ptr %4, align 8, !tbaa !5
  %745 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %742, i64 noundef %743, ptr noundef %744)
  br i1 %745, label %746, label %760

746:                                              ; preds = %741
  %747 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 3
  %748 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %747, i32 0, i32 4
  %749 = load ptr, ptr %748, align 8, !tbaa !23
  %750 = load i64, ptr %16, align 8, !tbaa !9
  %751 = getelementptr inbounds i64, ptr %749, i64 %750
  %752 = load i64, ptr %751, align 8, !tbaa !9
  %753 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 4
  %754 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %753, i32 0, i32 4
  %755 = load ptr, ptr %754, align 8, !tbaa !23
  %756 = load i64, ptr %16, align 8, !tbaa !9
  %757 = getelementptr inbounds i64, ptr %755, i64 %756
  %758 = load i64, ptr %757, align 8, !tbaa !9
  %759 = icmp eq i64 %752, %758
  br label %760

760:                                              ; preds = %746, %741, %736
  %761 = phi i1 [ false, %741 ], [ false, %736 ], [ %759, %746 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %737, i1 noundef zeroext %761, ptr noundef @.str.19, i32 noundef 14991, ptr noundef @.str.187)
  %762 = load ptr, ptr %3, align 8, !tbaa !5
  %763 = load i64, ptr %16, align 8, !tbaa !9
  %764 = load i64, ptr %6, align 8, !tbaa !9
  %765 = icmp sge i64 %763, %764
  br i1 %765, label %771, label %766

766:                                              ; preds = %760
  %767 = load i64, ptr %16, align 8, !tbaa !9
  %768 = load i64, ptr %16, align 8, !tbaa !9
  %769 = load ptr, ptr %4, align 8, !tbaa !5
  %770 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %767, i64 noundef %768, ptr noundef %769)
  br i1 %770, label %785, label %771

771:                                              ; preds = %766, %760
  %772 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 3
  %773 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %772, i32 0, i32 4
  %774 = load ptr, ptr %773, align 8, !tbaa !23
  %775 = load i64, ptr %16, align 8, !tbaa !9
  %776 = getelementptr inbounds i64, ptr %774, i64 %775
  %777 = load i64, ptr %776, align 8, !tbaa !9
  %778 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %13, i32 0, i32 4
  %779 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %778, i32 0, i32 4
  %780 = load ptr, ptr %779, align 8, !tbaa !23
  %781 = load i64, ptr %16, align 8, !tbaa !9
  %782 = getelementptr inbounds i64, ptr %780, i64 %781
  %783 = load i64, ptr %782, align 8, !tbaa !9
  %784 = icmp ne i64 %777, %783
  br label %785

785:                                              ; preds = %771, %766
  %786 = phi i1 [ false, %766 ], [ %784, %771 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %762, i1 noundef zeroext %786, ptr noundef @.str.19, i32 noundef 14992, ptr noundef @.str.188)
  br label %787

787:                                              ; preds = %785, %710
  %788 = load ptr, ptr %3, align 8, !tbaa !5
  %789 = load ptr, ptr %4, align 8, !tbaa !5
  %790 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %789)
  %791 = load i64, ptr %16, align 8, !tbaa !9
  %792 = add nsw i64 %791, 1
  %793 = icmp ne i64 %790, %792
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %788, i1 noundef zeroext %793, ptr noundef @.str.19, i32 noundef 14994, ptr noundef @.str.189)
  br label %794

794:                                              ; preds = %787
  %795 = load i64, ptr %16, align 8, !tbaa !9
  %796 = add nsw i64 %795, 1
  store i64 %796, ptr %16, align 8, !tbaa !9
  br label %614, !llvm.loop !40

797:                                              ; preds = %614
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %798

798:                                              ; preds = %855, %797
  %799 = load i64, ptr %16, align 8, !tbaa !9
  %800 = load i64, ptr %7, align 8, !tbaa !9
  %801 = sub nsw i64 %800, 1
  %802 = icmp sle i64 %799, %801
  br i1 %802, label %803, label %858

803:                                              ; preds = %798
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %804

804:                                              ; preds = %851, %803
  %805 = load i64, ptr %17, align 8, !tbaa !9
  %806 = load i64, ptr %6, align 8, !tbaa !9
  %807 = sub nsw i64 %806, 1
  %808 = icmp sle i64 %805, %807
  br i1 %808, label %809, label %854

809:                                              ; preds = %804
  %810 = load ptr, ptr %3, align 8, !tbaa !5
  %811 = load i64, ptr %16, align 8, !tbaa !9
  %812 = load i64, ptr %17, align 8, !tbaa !9
  %813 = load ptr, ptr %4, align 8, !tbaa !5
  %814 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %811, i64 noundef %812, ptr noundef %813)
  %815 = load i64, ptr %16, align 8, !tbaa !9
  %816 = load i64, ptr %17, align 8, !tbaa !9
  %817 = load ptr, ptr %4, align 8, !tbaa !5
  %818 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %815, i64 noundef %816, ptr noundef %817)
  %819 = fsub double %814, %818
  %820 = load ptr, ptr %4, align 8, !tbaa !5
  %821 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %819, ptr noundef %820)
  %822 = load ptr, ptr %4, align 8, !tbaa !5
  %823 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %822)
  %824 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %821, double noundef %823)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %810, i1 noundef zeroext %824, ptr noundef @.str.19, i32 noundef 15000, ptr noundef @.str.190)
  %825 = load ptr, ptr %3, align 8, !tbaa !5
  %826 = load i64, ptr %16, align 8, !tbaa !9
  %827 = load i64, ptr %17, align 8, !tbaa !9
  %828 = load ptr, ptr %4, align 8, !tbaa !5
  %829 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %826, i64 noundef %827, ptr noundef %828)
  br i1 %829, label %830, label %836

830:                                              ; preds = %809
  %831 = load i64, ptr %16, align 8, !tbaa !9
  %832 = load i64, ptr %17, align 8, !tbaa !9
  %833 = load ptr, ptr %4, align 8, !tbaa !5
  %834 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %831, i64 noundef %832, ptr noundef %833)
  %835 = xor i1 %834, true
  br label %836

836:                                              ; preds = %830, %809
  %837 = phi i1 [ false, %809 ], [ %835, %830 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %825, i1 noundef zeroext %837, ptr noundef @.str.19, i32 noundef 15001, ptr noundef @.str.191)
  %838 = load ptr, ptr %3, align 8, !tbaa !5
  %839 = load i64, ptr %16, align 8, !tbaa !9
  %840 = load i64, ptr %17, align 8, !tbaa !9
  %841 = load ptr, ptr %4, align 8, !tbaa !5
  %842 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %839, i64 noundef %840, ptr noundef %841)
  br i1 %842, label %843, label %849

843:                                              ; preds = %836
  %844 = load i64, ptr %16, align 8, !tbaa !9
  %845 = load i64, ptr %17, align 8, !tbaa !9
  %846 = load ptr, ptr %4, align 8, !tbaa !5
  %847 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %844, i64 noundef %845, ptr noundef %846)
  %848 = xor i1 %847, true
  br label %849

849:                                              ; preds = %843, %836
  %850 = phi i1 [ false, %836 ], [ %848, %843 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %838, i1 noundef zeroext %850, ptr noundef @.str.19, i32 noundef 15002, ptr noundef @.str.192)
  br label %851

851:                                              ; preds = %849
  %852 = load i64, ptr %17, align 8, !tbaa !9
  %853 = add nsw i64 %852, 1
  store i64 %853, ptr %17, align 8, !tbaa !9
  br label %804, !llvm.loop !41

854:                                              ; preds = %804
  br label %855

855:                                              ; preds = %854
  %856 = load i64, ptr %16, align 8, !tbaa !9
  %857 = add nsw i64 %856, 1
  store i64 %857, ptr %16, align 8, !tbaa !9
  br label %798, !llvm.loop !42

858:                                              ; preds = %798
  %859 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl15sparsecopytocrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %12, ptr noundef %13, ptr noundef %859)
  %860 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl18sparsetransposecrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %860)
  %861 = load ptr, ptr %3, align 8, !tbaa !5
  %862 = load ptr, ptr %4, align 8, !tbaa !5
  %863 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %862)
  %864 = xor i1 %863, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %861, i1 noundef zeroext %864, ptr noundef @.str.19, i32 noundef 15011, ptr noundef @.str.193)
  %865 = load ptr, ptr %3, align 8, !tbaa !5
  %866 = load ptr, ptr %4, align 8, !tbaa !5
  %867 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %866)
  %868 = load ptr, ptr %4, align 8, !tbaa !5
  %869 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %868)
  %870 = icmp ne i64 %867, %869
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %865, i1 noundef zeroext %870, ptr noundef @.str.19, i32 noundef 15012, ptr noundef @.str.194)
  %871 = load ptr, ptr %3, align 8, !tbaa !5
  %872 = load ptr, ptr %4, align 8, !tbaa !5
  %873 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %872)
  %874 = load ptr, ptr %4, align 8, !tbaa !5
  %875 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %13, ptr noundef %874)
  %876 = icmp ne i64 %873, %875
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %871, i1 noundef zeroext %876, ptr noundef @.str.19, i32 noundef 15013, ptr noundef @.str.195)
  %877 = load ptr, ptr %3, align 8, !tbaa !5
  %878 = load i8, ptr %877, align 1, !tbaa !18, !range !20, !noundef !21
  %879 = trunc i8 %878 to i1
  br i1 %879, label %880, label %882

880:                                              ; preds = %858
  %881 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %881)
  store i32 1, ptr %25, align 4
  br label %1403

882:                                              ; preds = %858
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %883

883:                                              ; preds = %909, %882
  %884 = load i64, ptr %16, align 8, !tbaa !9
  %885 = load i64, ptr %7, align 8, !tbaa !9
  %886 = sub nsw i64 %885, 1
  %887 = icmp sle i64 %884, %886
  br i1 %887, label %888, label %912

888:                                              ; preds = %883
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %889

889:                                              ; preds = %905, %888
  %890 = load i64, ptr %17, align 8, !tbaa !9
  %891 = load i64, ptr %6, align 8, !tbaa !9
  %892 = sub nsw i64 %891, 1
  %893 = icmp sle i64 %890, %892
  br i1 %893, label %894, label %908

894:                                              ; preds = %889
  %895 = load ptr, ptr %3, align 8, !tbaa !5
  %896 = load i64, ptr %16, align 8, !tbaa !9
  %897 = load i64, ptr %17, align 8, !tbaa !9
  %898 = load ptr, ptr %4, align 8, !tbaa !5
  %899 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %896, i64 noundef %897, ptr noundef %898)
  %900 = load i64, ptr %17, align 8, !tbaa !9
  %901 = load i64, ptr %16, align 8, !tbaa !9
  %902 = load ptr, ptr %4, align 8, !tbaa !5
  %903 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %900, i64 noundef %901, ptr noundef %902)
  %904 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %899, double noundef %903)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %895, i1 noundef zeroext %904, ptr noundef @.str.19, i32 noundef 15023, ptr noundef @.str.196)
  br label %905

905:                                              ; preds = %894
  %906 = load i64, ptr %17, align 8, !tbaa !9
  %907 = add nsw i64 %906, 1
  store i64 %907, ptr %17, align 8, !tbaa !9
  br label %889, !llvm.loop !43

908:                                              ; preds = %889
  br label %909

909:                                              ; preds = %908
  %910 = load i64, ptr %16, align 8, !tbaa !9
  %911 = add nsw i64 %910, 1
  store i64 %911, ptr %16, align 8, !tbaa !9
  br label %883, !llvm.loop !44

912:                                              ; preds = %883
  %913 = load ptr, ptr %3, align 8, !tbaa !5
  %914 = load i8, ptr %913, align 1, !tbaa !18, !range !20, !noundef !21
  %915 = trunc i8 %914 to i1
  br i1 %915, label %916, label %918

916:                                              ; preds = %912
  %917 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %917)
  store i32 1, ptr %25, align 4
  br label %1403

918:                                              ; preds = %912
  %919 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl22sparsecopytransposecrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %12, ptr noundef %14, ptr noundef %919)
  %920 = load ptr, ptr %3, align 8, !tbaa !5
  %921 = load ptr, ptr %4, align 8, !tbaa !5
  %922 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %14, ptr noundef %921)
  %923 = xor i1 %922, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %920, i1 noundef zeroext %923, ptr noundef @.str.19, i32 noundef 15036, ptr noundef @.str.197)
  %924 = load ptr, ptr %3, align 8, !tbaa !5
  %925 = load ptr, ptr %4, align 8, !tbaa !5
  %926 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %925)
  %927 = load ptr, ptr %4, align 8, !tbaa !5
  %928 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %14, ptr noundef %927)
  %929 = icmp ne i64 %926, %928
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %924, i1 noundef zeroext %929, ptr noundef @.str.19, i32 noundef 15037, ptr noundef @.str.198)
  %930 = load ptr, ptr %3, align 8, !tbaa !5
  %931 = load ptr, ptr %4, align 8, !tbaa !5
  %932 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %931)
  %933 = load ptr, ptr %4, align 8, !tbaa !5
  %934 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %14, ptr noundef %933)
  %935 = icmp ne i64 %932, %934
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %930, i1 noundef zeroext %935, ptr noundef @.str.19, i32 noundef 15038, ptr noundef @.str.199)
  %936 = load ptr, ptr %3, align 8, !tbaa !5
  %937 = load i8, ptr %936, align 1, !tbaa !18, !range !20, !noundef !21
  %938 = trunc i8 %937 to i1
  br i1 %938, label %939, label %941

939:                                              ; preds = %918
  %940 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %940)
  store i32 1, ptr %25, align 4
  br label %1403

941:                                              ; preds = %918
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %942

942:                                              ; preds = %968, %941
  %943 = load i64, ptr %16, align 8, !tbaa !9
  %944 = load i64, ptr %7, align 8, !tbaa !9
  %945 = sub nsw i64 %944, 1
  %946 = icmp sle i64 %943, %945
  br i1 %946, label %947, label %971

947:                                              ; preds = %942
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %948

948:                                              ; preds = %964, %947
  %949 = load i64, ptr %17, align 8, !tbaa !9
  %950 = load i64, ptr %6, align 8, !tbaa !9
  %951 = sub nsw i64 %950, 1
  %952 = icmp sle i64 %949, %951
  br i1 %952, label %953, label %967

953:                                              ; preds = %948
  %954 = load ptr, ptr %3, align 8, !tbaa !5
  %955 = load i64, ptr %16, align 8, !tbaa !9
  %956 = load i64, ptr %17, align 8, !tbaa !9
  %957 = load ptr, ptr %4, align 8, !tbaa !5
  %958 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %955, i64 noundef %956, ptr noundef %957)
  %959 = load i64, ptr %17, align 8, !tbaa !9
  %960 = load i64, ptr %16, align 8, !tbaa !9
  %961 = load ptr, ptr %4, align 8, !tbaa !5
  %962 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %14, i64 noundef %959, i64 noundef %960, ptr noundef %961)
  %963 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %958, double noundef %962)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %954, i1 noundef zeroext %963, ptr noundef @.str.19, i32 noundef 15048, ptr noundef @.str.200)
  br label %964

964:                                              ; preds = %953
  %965 = load i64, ptr %17, align 8, !tbaa !9
  %966 = add nsw i64 %965, 1
  store i64 %966, ptr %17, align 8, !tbaa !9
  br label %948, !llvm.loop !45

967:                                              ; preds = %948
  br label %968

968:                                              ; preds = %967
  %969 = load i64, ptr %16, align 8, !tbaa !9
  %970 = add nsw i64 %969, 1
  store i64 %970, ptr %16, align 8, !tbaa !9
  br label %942, !llvm.loop !46

971:                                              ; preds = %942
  %972 = load ptr, ptr %3, align 8, !tbaa !5
  %973 = load i8, ptr %972, align 1, !tbaa !18, !range !20, !noundef !21
  %974 = trunc i8 %973 to i1
  br i1 %974, label %975, label %977

975:                                              ; preds = %971
  %976 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %976)
  store i32 1, ptr %25, align 4
  br label %1403

977:                                              ; preds = %971
  %978 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl22sparsecopytransposecrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %12, ptr noundef %15, ptr noundef %978)
  %979 = load ptr, ptr %3, align 8, !tbaa !5
  %980 = load ptr, ptr %4, align 8, !tbaa !5
  %981 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %15, ptr noundef %980)
  %982 = xor i1 %981, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %979, i1 noundef zeroext %982, ptr noundef @.str.19, i32 noundef 15061, ptr noundef @.str.201)
  %983 = load ptr, ptr %3, align 8, !tbaa !5
  %984 = load ptr, ptr %4, align 8, !tbaa !5
  %985 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %984)
  %986 = load ptr, ptr %4, align 8, !tbaa !5
  %987 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %15, ptr noundef %986)
  %988 = icmp ne i64 %985, %987
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %983, i1 noundef zeroext %988, ptr noundef @.str.19, i32 noundef 15062, ptr noundef @.str.202)
  %989 = load ptr, ptr %3, align 8, !tbaa !5
  %990 = load ptr, ptr %4, align 8, !tbaa !5
  %991 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %990)
  %992 = load ptr, ptr %4, align 8, !tbaa !5
  %993 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %15, ptr noundef %992)
  %994 = icmp ne i64 %991, %993
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %989, i1 noundef zeroext %994, ptr noundef @.str.19, i32 noundef 15063, ptr noundef @.str.203)
  %995 = load ptr, ptr %3, align 8, !tbaa !5
  %996 = load i8, ptr %995, align 1, !tbaa !18, !range !20, !noundef !21
  %997 = trunc i8 %996 to i1
  br i1 %997, label %998, label %1000

998:                                              ; preds = %977
  %999 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %999)
  store i32 1, ptr %25, align 4
  br label %1403

1000:                                             ; preds = %977
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %1001

1001:                                             ; preds = %1027, %1000
  %1002 = load i64, ptr %16, align 8, !tbaa !9
  %1003 = load i64, ptr %7, align 8, !tbaa !9
  %1004 = sub nsw i64 %1003, 1
  %1005 = icmp sle i64 %1002, %1004
  br i1 %1005, label %1006, label %1030

1006:                                             ; preds = %1001
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %1007

1007:                                             ; preds = %1023, %1006
  %1008 = load i64, ptr %17, align 8, !tbaa !9
  %1009 = load i64, ptr %6, align 8, !tbaa !9
  %1010 = sub nsw i64 %1009, 1
  %1011 = icmp sle i64 %1008, %1010
  br i1 %1011, label %1012, label %1026

1012:                                             ; preds = %1007
  %1013 = load ptr, ptr %3, align 8, !tbaa !5
  %1014 = load i64, ptr %16, align 8, !tbaa !9
  %1015 = load i64, ptr %17, align 8, !tbaa !9
  %1016 = load ptr, ptr %4, align 8, !tbaa !5
  %1017 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %1014, i64 noundef %1015, ptr noundef %1016)
  %1018 = load i64, ptr %17, align 8, !tbaa !9
  %1019 = load i64, ptr %16, align 8, !tbaa !9
  %1020 = load ptr, ptr %4, align 8, !tbaa !5
  %1021 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %15, i64 noundef %1018, i64 noundef %1019, ptr noundef %1020)
  %1022 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1017, double noundef %1021)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1013, i1 noundef zeroext %1022, ptr noundef @.str.19, i32 noundef 15073, ptr noundef @.str.204)
  br label %1023

1023:                                             ; preds = %1012
  %1024 = load i64, ptr %17, align 8, !tbaa !9
  %1025 = add nsw i64 %1024, 1
  store i64 %1025, ptr %17, align 8, !tbaa !9
  br label %1007, !llvm.loop !47

1026:                                             ; preds = %1007
  br label %1027

1027:                                             ; preds = %1026
  %1028 = load i64, ptr %16, align 8, !tbaa !9
  %1029 = add nsw i64 %1028, 1
  store i64 %1029, ptr %16, align 8, !tbaa !9
  br label %1001, !llvm.loop !48

1030:                                             ; preds = %1001
  %1031 = load ptr, ptr %3, align 8, !tbaa !5
  %1032 = load i8, ptr %1031, align 1, !tbaa !18, !range !20, !noundef !21
  %1033 = trunc i8 %1032 to i1
  br i1 %1033, label %1034, label %1036

1034:                                             ; preds = %1030
  %1035 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1035)
  store i32 1, ptr %25, align 4
  br label %1403

1036:                                             ; preds = %1030
  %1037 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %12, ptr noundef %13, ptr noundef %1037)
  %1038 = load i64, ptr %6, align 8, !tbaa !9
  %1039 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %10, i64 noundef %1038, ptr noundef %21, ptr noundef %1039)
  %1040 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %21, ptr noundef %1040)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %1041

1041:                                             ; preds = %1078, %1036
  %1042 = load i64, ptr %16, align 8, !tbaa !9
  %1043 = load i64, ptr %7, align 8, !tbaa !9
  %1044 = sub nsw i64 %1043, 1
  %1045 = icmp sle i64 %1042, %1044
  br i1 %1045, label %1046, label %1081

1046:                                             ; preds = %1041
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %1047

1047:                                             ; preds = %1074, %1046
  %1048 = load i64, ptr %17, align 8, !tbaa !9
  %1049 = load i64, ptr %6, align 8, !tbaa !9
  %1050 = sub nsw i64 %1049, 1
  %1051 = icmp sle i64 %1048, %1050
  br i1 %1051, label %1052, label %1077

1052:                                             ; preds = %1047
  %1053 = load ptr, ptr %3, align 8, !tbaa !5
  %1054 = load i64, ptr %16, align 8, !tbaa !9
  %1055 = load i64, ptr %17, align 8, !tbaa !9
  %1056 = load ptr, ptr %4, align 8, !tbaa !5
  %1057 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %1054, i64 noundef %1055, ptr noundef %1056)
  %1058 = load i64, ptr %16, align 8, !tbaa !9
  %1059 = load i64, ptr %17, align 8, !tbaa !9
  %1060 = load ptr, ptr %4, align 8, !tbaa !5
  %1061 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %1058, i64 noundef %1059, ptr noundef %1060)
  %1062 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %21, i32 0, i32 4
  %1063 = load ptr, ptr %1062, align 8, !tbaa !23
  %1064 = load i64, ptr %17, align 8, !tbaa !9
  %1065 = getelementptr inbounds double, ptr %1063, i64 %1064
  %1066 = load double, ptr %1065, align 8, !tbaa !11
  %1067 = fneg double %1061
  %1068 = call double @llvm.fmuladd.f64(double %1067, double %1066, double %1057)
  %1069 = load ptr, ptr %4, align 8, !tbaa !5
  %1070 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1068, ptr noundef %1069)
  %1071 = load ptr, ptr %4, align 8, !tbaa !5
  %1072 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1071)
  %1073 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1070, double noundef %1072)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1053, i1 noundef zeroext %1073, ptr noundef @.str.19, i32 noundef 15092, ptr noundef @.str.205)
  br label %1074

1074:                                             ; preds = %1052
  %1075 = load i64, ptr %17, align 8, !tbaa !9
  %1076 = add nsw i64 %1075, 1
  store i64 %1076, ptr %17, align 8, !tbaa !9
  br label %1047, !llvm.loop !49

1077:                                             ; preds = %1047
  br label %1078

1078:                                             ; preds = %1077
  %1079 = load i64, ptr %16, align 8, !tbaa !9
  %1080 = add nsw i64 %1079, 1
  store i64 %1080, ptr %16, align 8, !tbaa !9
  br label %1041, !llvm.loop !50

1081:                                             ; preds = %1041
  %1082 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef %12, ptr noundef %13, ptr noundef %1082)
  %1083 = load i64, ptr %7, align 8, !tbaa !9
  %1084 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %10, i64 noundef %1083, ptr noundef %21, ptr noundef %1084)
  %1085 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20sparsemultiplyrowsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %21, ptr noundef %1085)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %1086

1086:                                             ; preds = %1123, %1081
  %1087 = load i64, ptr %16, align 8, !tbaa !9
  %1088 = load i64, ptr %7, align 8, !tbaa !9
  %1089 = sub nsw i64 %1088, 1
  %1090 = icmp sle i64 %1087, %1089
  br i1 %1090, label %1091, label %1126

1091:                                             ; preds = %1086
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %1092

1092:                                             ; preds = %1119, %1091
  %1093 = load i64, ptr %17, align 8, !tbaa !9
  %1094 = load i64, ptr %6, align 8, !tbaa !9
  %1095 = sub nsw i64 %1094, 1
  %1096 = icmp sle i64 %1093, %1095
  br i1 %1096, label %1097, label %1122

1097:                                             ; preds = %1092
  %1098 = load ptr, ptr %3, align 8, !tbaa !5
  %1099 = load i64, ptr %16, align 8, !tbaa !9
  %1100 = load i64, ptr %17, align 8, !tbaa !9
  %1101 = load ptr, ptr %4, align 8, !tbaa !5
  %1102 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %13, i64 noundef %1099, i64 noundef %1100, ptr noundef %1101)
  %1103 = load i64, ptr %16, align 8, !tbaa !9
  %1104 = load i64, ptr %17, align 8, !tbaa !9
  %1105 = load ptr, ptr %4, align 8, !tbaa !5
  %1106 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %1103, i64 noundef %1104, ptr noundef %1105)
  %1107 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %21, i32 0, i32 4
  %1108 = load ptr, ptr %1107, align 8, !tbaa !23
  %1109 = load i64, ptr %16, align 8, !tbaa !9
  %1110 = getelementptr inbounds double, ptr %1108, i64 %1109
  %1111 = load double, ptr %1110, align 8, !tbaa !11
  %1112 = fneg double %1106
  %1113 = call double @llvm.fmuladd.f64(double %1112, double %1111, double %1102)
  %1114 = load ptr, ptr %4, align 8, !tbaa !5
  %1115 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1113, ptr noundef %1114)
  %1116 = load ptr, ptr %4, align 8, !tbaa !5
  %1117 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1116)
  %1118 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1115, double noundef %1117)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1098, i1 noundef zeroext %1118, ptr noundef @.str.19, i32 noundef 15102, ptr noundef @.str.206)
  br label %1119

1119:                                             ; preds = %1097
  %1120 = load i64, ptr %17, align 8, !tbaa !9
  %1121 = add nsw i64 %1120, 1
  store i64 %1121, ptr %17, align 8, !tbaa !9
  br label %1092, !llvm.loop !51

1122:                                             ; preds = %1092
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i64, ptr %16, align 8, !tbaa !9
  %1125 = add nsw i64 %1124, 1
  store i64 %1125, ptr %16, align 8, !tbaa !9
  br label %1086, !llvm.loop !52

1126:                                             ; preds = %1086
  %1127 = load ptr, ptr %3, align 8, !tbaa !5
  %1128 = load i8, ptr %1127, align 1, !tbaa !18, !range !20, !noundef !21
  %1129 = trunc i8 %1128 to i1
  br i1 %1129, label %1130, label %1132

1130:                                             ; preds = %1126
  %1131 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1131)
  store i32 1, ptr %25, align 4
  br label %1403

1132:                                             ; preds = %1126
  %1133 = load i64, ptr %7, align 8, !tbaa !9
  %1134 = load i64, ptr %6, align 8, !tbaa !9
  %1135 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %19, i64 noundef %1133, i64 noundef %1134, ptr noundef %1135)
  %1136 = load i64, ptr %7, align 8, !tbaa !9
  %1137 = load i64, ptr %6, align 8, !tbaa !9
  %1138 = mul nsw i64 %1136, %1137
  %1139 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %20, i64 noundef %1138, ptr noundef %1139)
  %1140 = load i64, ptr %7, align 8, !tbaa !9
  %1141 = load i64, ptr %6, align 8, !tbaa !9
  %1142 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1140, i64 noundef %1141, double noundef 0.000000e+00, ptr noundef %19, ptr noundef %1142)
  %1143 = load i64, ptr %7, align 8, !tbaa !9
  %1144 = load i64, ptr %6, align 8, !tbaa !9
  %1145 = mul nsw i64 %1143, %1144
  %1146 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1145, double noundef 0.000000e+00, ptr noundef %20, ptr noundef %1146)
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %1147

1147:                                             ; preds = %1194, %1132
  %1148 = load i64, ptr %16, align 8, !tbaa !9
  %1149 = load i64, ptr %7, align 8, !tbaa !9
  %1150 = sub nsw i64 %1149, 1
  %1151 = icmp sle i64 %1148, %1150
  br i1 %1151, label %1152, label %1197

1152:                                             ; preds = %1147
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %1153

1153:                                             ; preds = %1190, %1152
  %1154 = load i64, ptr %17, align 8, !tbaa !9
  %1155 = load i64, ptr %6, align 8, !tbaa !9
  %1156 = sub nsw i64 %1155, 1
  %1157 = icmp sle i64 %1154, %1156
  br i1 %1157, label %1158, label %1193

1158:                                             ; preds = %1153
  %1159 = load ptr, ptr %4, align 8, !tbaa !5
  %1160 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %1159)
  %1161 = load double, ptr %9, align 8, !tbaa !11
  %1162 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1160, double noundef %1161)
  br i1 %1162, label %1163, label %1189

1163:                                             ; preds = %1158
  %1164 = load ptr, ptr %4, align 8, !tbaa !5
  %1165 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %1164)
  %1166 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1167 = load ptr, ptr %1166, align 8, !tbaa !23
  %1168 = load i64, ptr %16, align 8, !tbaa !9
  %1169 = getelementptr inbounds ptr, ptr %1167, i64 %1168
  %1170 = load ptr, ptr %1169, align 8, !tbaa !5
  %1171 = load i64, ptr %17, align 8, !tbaa !9
  %1172 = getelementptr inbounds double, ptr %1170, i64 %1171
  store double %1165, ptr %1172, align 8, !tbaa !11
  %1173 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1174 = load ptr, ptr %1173, align 8, !tbaa !23
  %1175 = load i64, ptr %16, align 8, !tbaa !9
  %1176 = getelementptr inbounds ptr, ptr %1174, i64 %1175
  %1177 = load ptr, ptr %1176, align 8, !tbaa !5
  %1178 = load i64, ptr %17, align 8, !tbaa !9
  %1179 = getelementptr inbounds double, ptr %1177, i64 %1178
  %1180 = load double, ptr %1179, align 8, !tbaa !11
  %1181 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %20, i32 0, i32 4
  %1182 = load ptr, ptr %1181, align 8, !tbaa !23
  %1183 = load i64, ptr %16, align 8, !tbaa !9
  %1184 = load i64, ptr %6, align 8, !tbaa !9
  %1185 = mul nsw i64 %1183, %1184
  %1186 = load i64, ptr %17, align 8, !tbaa !9
  %1187 = add nsw i64 %1185, %1186
  %1188 = getelementptr inbounds double, ptr %1182, i64 %1187
  store double %1180, ptr %1188, align 8, !tbaa !11
  br label %1189

1189:                                             ; preds = %1163, %1158
  br label %1190

1190:                                             ; preds = %1189
  %1191 = load i64, ptr %17, align 8, !tbaa !9
  %1192 = add nsw i64 %1191, 1
  store i64 %1192, ptr %17, align 8, !tbaa !9
  br label %1153, !llvm.loop !53

1193:                                             ; preds = %1153
  br label %1194

1194:                                             ; preds = %1193
  %1195 = load i64, ptr %16, align 8, !tbaa !9
  %1196 = add nsw i64 %1195, 1
  store i64 %1196, ptr %16, align 8, !tbaa !9
  br label %1147, !llvm.loop !54

1197:                                             ; preds = %1147
  %1198 = load ptr, ptr %4, align 8, !tbaa !5
  %1199 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %1198)
  %1200 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1199, double noundef 0.000000e+00)
  br i1 %1200, label %1201, label %1205

1201:                                             ; preds = %1197
  %1202 = load i64, ptr %7, align 8, !tbaa !9
  %1203 = load i64, ptr %6, align 8, !tbaa !9
  %1204 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl24sparsecreatecrsfromdenseEPKNS_9ae_matrixEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %19, i64 noundef %1202, i64 noundef %1203, ptr noundef %11, ptr noundef %1204)
  br label %1209

1205:                                             ; preds = %1197
  %1206 = load i64, ptr %7, align 8, !tbaa !9
  %1207 = load i64, ptr %6, align 8, !tbaa !9
  %1208 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl25sparsecreatecrsfromdensevEPKNS_9ae_vectorEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %20, i64 noundef %1206, i64 noundef %1207, ptr noundef %11, ptr noundef %1208)
  br label %1209

1209:                                             ; preds = %1205, %1201
  %1210 = load ptr, ptr %4, align 8, !tbaa !5
  %1211 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %10, ptr noundef %1210)
  %1212 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1211, double noundef 0.000000e+00)
  br i1 %1212, label %1213, label %1217

1213:                                             ; preds = %1209
  %1214 = load i64, ptr %7, align 8, !tbaa !9
  %1215 = load i64, ptr %6, align 8, !tbaa !9
  %1216 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl27sparsecreatecrsfromdensebufEPKNS_9ae_matrixEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %19, i64 noundef %1214, i64 noundef %1215, ptr noundef %12, ptr noundef %1216)
  br label %1221

1217:                                             ; preds = %1209
  %1218 = load i64, ptr %7, align 8, !tbaa !9
  %1219 = load i64, ptr %6, align 8, !tbaa !9
  %1220 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl28sparsecreatecrsfromdensevbufEPKNS_9ae_vectorEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %20, i64 noundef %1218, i64 noundef %1219, ptr noundef %12, ptr noundef %1220)
  br label %1221

1221:                                             ; preds = %1217, %1213
  %1222 = load ptr, ptr %3, align 8, !tbaa !5
  %1223 = load ptr, ptr %4, align 8, !tbaa !5
  %1224 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %11, ptr noundef %1223)
  br i1 %1224, label %1225, label %1235

1225:                                             ; preds = %1221
  %1226 = load ptr, ptr %4, align 8, !tbaa !5
  %1227 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %11, ptr noundef %1226)
  %1228 = load i64, ptr %7, align 8, !tbaa !9
  %1229 = icmp ne i64 %1227, %1228
  br i1 %1229, label %1235, label %1230

1230:                                             ; preds = %1225
  %1231 = load ptr, ptr %4, align 8, !tbaa !5
  %1232 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %11, ptr noundef %1231)
  %1233 = load i64, ptr %6, align 8, !tbaa !9
  %1234 = icmp ne i64 %1232, %1233
  br label %1235

1235:                                             ; preds = %1230, %1225, %1221
  %1236 = phi i1 [ true, %1225 ], [ true, %1221 ], [ %1234, %1230 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1222, i1 noundef zeroext %1236, ptr noundef @.str.19, i32 noundef 15145, ptr noundef @.str.207)
  %1237 = load ptr, ptr %3, align 8, !tbaa !5
  %1238 = load ptr, ptr %4, align 8, !tbaa !5
  %1239 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %1238)
  br i1 %1239, label %1240, label %1250

1240:                                             ; preds = %1235
  %1241 = load ptr, ptr %4, align 8, !tbaa !5
  %1242 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %1241)
  %1243 = load i64, ptr %7, align 8, !tbaa !9
  %1244 = icmp ne i64 %1242, %1243
  br i1 %1244, label %1250, label %1245

1245:                                             ; preds = %1240
  %1246 = load ptr, ptr %4, align 8, !tbaa !5
  %1247 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef %12, ptr noundef %1246)
  %1248 = load i64, ptr %6, align 8, !tbaa !9
  %1249 = icmp ne i64 %1247, %1248
  br label %1250

1250:                                             ; preds = %1245, %1240, %1235
  %1251 = phi i1 [ true, %1240 ], [ true, %1235 ], [ %1249, %1245 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1237, i1 noundef zeroext %1251, ptr noundef @.str.19, i32 noundef 15146, ptr noundef @.str.208)
  %1252 = load ptr, ptr %3, align 8, !tbaa !5
  %1253 = load i8, ptr %1252, align 1, !tbaa !18, !range !20, !noundef !21
  %1254 = trunc i8 %1253 to i1
  br i1 %1254, label %1255, label %1257

1255:                                             ; preds = %1250
  %1256 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1256)
  store i32 1, ptr %25, align 4
  br label %1403

1257:                                             ; preds = %1250
  store i64 0, ptr %16, align 8, !tbaa !9
  br label %1258

1258:                                             ; preds = %1370, %1257
  %1259 = load i64, ptr %16, align 8, !tbaa !9
  %1260 = load i64, ptr %7, align 8, !tbaa !9
  %1261 = sub nsw i64 %1260, 1
  %1262 = icmp sle i64 %1259, %1261
  br i1 %1262, label %1263, label %1373

1263:                                             ; preds = %1258
  store i64 0, ptr %17, align 8, !tbaa !9
  br label %1264

1264:                                             ; preds = %1366, %1263
  %1265 = load i64, ptr %17, align 8, !tbaa !9
  %1266 = load i64, ptr %6, align 8, !tbaa !9
  %1267 = sub nsw i64 %1266, 1
  %1268 = icmp sle i64 %1265, %1267
  br i1 %1268, label %1269, label %1369

1269:                                             ; preds = %1264
  %1270 = load ptr, ptr %3, align 8, !tbaa !5
  %1271 = load i64, ptr %16, align 8, !tbaa !9
  %1272 = load i64, ptr %17, align 8, !tbaa !9
  %1273 = load ptr, ptr %4, align 8, !tbaa !5
  %1274 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %1271, i64 noundef %1272, ptr noundef %1273)
  %1275 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1276 = load ptr, ptr %1275, align 8, !tbaa !23
  %1277 = load i64, ptr %16, align 8, !tbaa !9
  %1278 = getelementptr inbounds ptr, ptr %1276, i64 %1277
  %1279 = load ptr, ptr %1278, align 8, !tbaa !5
  %1280 = load i64, ptr %17, align 8, !tbaa !9
  %1281 = getelementptr inbounds double, ptr %1279, i64 %1280
  %1282 = load double, ptr %1281, align 8, !tbaa !11
  %1283 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1274, double noundef %1282)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1270, i1 noundef zeroext %1283, ptr noundef @.str.19, i32 noundef 15156, ptr noundef @.str.209)
  %1284 = load ptr, ptr %3, align 8, !tbaa !5
  %1285 = load i64, ptr %16, align 8, !tbaa !9
  %1286 = load i64, ptr %17, align 8, !tbaa !9
  %1287 = load ptr, ptr %4, align 8, !tbaa !5
  %1288 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %1285, i64 noundef %1286, ptr noundef %1287)
  %1289 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1290 = load ptr, ptr %1289, align 8, !tbaa !23
  %1291 = load i64, ptr %16, align 8, !tbaa !9
  %1292 = getelementptr inbounds ptr, ptr %1290, i64 %1291
  %1293 = load ptr, ptr %1292, align 8, !tbaa !5
  %1294 = load i64, ptr %17, align 8, !tbaa !9
  %1295 = getelementptr inbounds double, ptr %1293, i64 %1294
  %1296 = load double, ptr %1295, align 8, !tbaa !11
  %1297 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1288, double noundef %1296)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1284, i1 noundef zeroext %1297, ptr noundef @.str.19, i32 noundef 15157, ptr noundef @.str.210)
  %1298 = load ptr, ptr %3, align 8, !tbaa !5
  %1299 = load i64, ptr %16, align 8, !tbaa !9
  %1300 = load i64, ptr %17, align 8, !tbaa !9
  %1301 = load ptr, ptr %4, align 8, !tbaa !5
  %1302 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %1299, i64 noundef %1300, ptr noundef %1301)
  br i1 %1302, label %1303, label %1313

1303:                                             ; preds = %1269
  %1304 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1305 = load ptr, ptr %1304, align 8, !tbaa !23
  %1306 = load i64, ptr %16, align 8, !tbaa !9
  %1307 = getelementptr inbounds ptr, ptr %1305, i64 %1306
  %1308 = load ptr, ptr %1307, align 8, !tbaa !5
  %1309 = load i64, ptr %17, align 8, !tbaa !9
  %1310 = getelementptr inbounds double, ptr %1308, i64 %1309
  %1311 = load double, ptr %1310, align 8, !tbaa !11
  %1312 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1311, double noundef 0.000000e+00)
  br label %1313

1313:                                             ; preds = %1303, %1269
  %1314 = phi i1 [ false, %1269 ], [ %1312, %1303 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1298, i1 noundef zeroext %1314, ptr noundef @.str.19, i32 noundef 15158, ptr noundef @.str.211)
  %1315 = load ptr, ptr %3, align 8, !tbaa !5
  %1316 = load i64, ptr %16, align 8, !tbaa !9
  %1317 = load i64, ptr %17, align 8, !tbaa !9
  %1318 = load ptr, ptr %4, align 8, !tbaa !5
  %1319 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %1316, i64 noundef %1317, ptr noundef %1318)
  br i1 %1319, label %1320, label %1330

1320:                                             ; preds = %1313
  %1321 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1322 = load ptr, ptr %1321, align 8, !tbaa !23
  %1323 = load i64, ptr %16, align 8, !tbaa !9
  %1324 = getelementptr inbounds ptr, ptr %1322, i64 %1323
  %1325 = load ptr, ptr %1324, align 8, !tbaa !5
  %1326 = load i64, ptr %17, align 8, !tbaa !9
  %1327 = getelementptr inbounds double, ptr %1325, i64 %1326
  %1328 = load double, ptr %1327, align 8, !tbaa !11
  %1329 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1328, double noundef 0.000000e+00)
  br label %1330

1330:                                             ; preds = %1320, %1313
  %1331 = phi i1 [ false, %1313 ], [ %1329, %1320 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1315, i1 noundef zeroext %1331, ptr noundef @.str.19, i32 noundef 15159, ptr noundef @.str.212)
  %1332 = load ptr, ptr %3, align 8, !tbaa !5
  %1333 = load i64, ptr %16, align 8, !tbaa !9
  %1334 = load i64, ptr %17, align 8, !tbaa !9
  %1335 = load ptr, ptr %4, align 8, !tbaa !5
  %1336 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %11, i64 noundef %1333, i64 noundef %1334, ptr noundef %1335)
  br i1 %1336, label %1347, label %1337

1337:                                             ; preds = %1330
  %1338 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1339 = load ptr, ptr %1338, align 8, !tbaa !23
  %1340 = load i64, ptr %16, align 8, !tbaa !9
  %1341 = getelementptr inbounds ptr, ptr %1339, i64 %1340
  %1342 = load ptr, ptr %1341, align 8, !tbaa !5
  %1343 = load i64, ptr %17, align 8, !tbaa !9
  %1344 = getelementptr inbounds double, ptr %1342, i64 %1343
  %1345 = load double, ptr %1344, align 8, !tbaa !11
  %1346 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1345, double noundef 0.000000e+00)
  br label %1347

1347:                                             ; preds = %1337, %1330
  %1348 = phi i1 [ false, %1330 ], [ %1346, %1337 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1332, i1 noundef zeroext %1348, ptr noundef @.str.19, i32 noundef 15160, ptr noundef @.str.213)
  %1349 = load ptr, ptr %3, align 8, !tbaa !5
  %1350 = load i64, ptr %16, align 8, !tbaa !9
  %1351 = load i64, ptr %17, align 8, !tbaa !9
  %1352 = load ptr, ptr %4, align 8, !tbaa !5
  %1353 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef %12, i64 noundef %1350, i64 noundef %1351, ptr noundef %1352)
  br i1 %1353, label %1364, label %1354

1354:                                             ; preds = %1347
  %1355 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %19, i32 0, i32 6
  %1356 = load ptr, ptr %1355, align 8, !tbaa !23
  %1357 = load i64, ptr %16, align 8, !tbaa !9
  %1358 = getelementptr inbounds ptr, ptr %1356, i64 %1357
  %1359 = load ptr, ptr %1358, align 8, !tbaa !5
  %1360 = load i64, ptr %17, align 8, !tbaa !9
  %1361 = getelementptr inbounds double, ptr %1359, i64 %1360
  %1362 = load double, ptr %1361, align 8, !tbaa !11
  %1363 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1362, double noundef 0.000000e+00)
  br label %1364

1364:                                             ; preds = %1354, %1347
  %1365 = phi i1 [ false, %1347 ], [ %1363, %1354 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %1349, i1 noundef zeroext %1365, ptr noundef @.str.19, i32 noundef 15161, ptr noundef @.str.214)
  br label %1366

1366:                                             ; preds = %1364
  %1367 = load i64, ptr %17, align 8, !tbaa !9
  %1368 = add nsw i64 %1367, 1
  store i64 %1368, ptr %17, align 8, !tbaa !9
  br label %1264, !llvm.loop !55

1369:                                             ; preds = %1264
  br label %1370

1370:                                             ; preds = %1369
  %1371 = load i64, ptr %16, align 8, !tbaa !9
  %1372 = add nsw i64 %1371, 1
  store i64 %1372, ptr %16, align 8, !tbaa !9
  br label %1258, !llvm.loop !56

1373:                                             ; preds = %1258
  %1374 = load ptr, ptr %3, align 8, !tbaa !5
  %1375 = load i8, ptr %1374, align 1, !tbaa !18, !range !20, !noundef !21
  %1376 = trunc i8 %1375 to i1
  br i1 %1376, label %1377, label %1379

1377:                                             ; preds = %1373
  %1378 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1378)
  store i32 1, ptr %25, align 4
  br label %1403

1379:                                             ; preds = %1373
  %1380 = load i64, ptr %8, align 8, !tbaa !9
  %1381 = icmp eq i64 %1380, 0
  br i1 %1381, label %1382, label %1383

1382:                                             ; preds = %1379
  br label %1393

1383:                                             ; preds = %1379
  %1384 = load i64, ptr %8, align 8, !tbaa !9
  %1385 = sitofp i64 %1384 to double
  %1386 = fmul double %1385, 0x3FEE666666666666
  %1387 = load ptr, ptr %4, align 8, !tbaa !5
  %1388 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %1386, ptr noundef %1387)
  %1389 = load i64, ptr %8, align 8, !tbaa !9
  %1390 = sub nsw i64 %1389, 1
  %1391 = load ptr, ptr %4, align 8, !tbaa !5
  %1392 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %1388, i64 noundef %1390, ptr noundef %1391)
  store i64 %1392, ptr %8, align 8, !tbaa !9
  br label %50, !llvm.loop !57

1393:                                             ; preds = %1382
  br label %1394

1394:                                             ; preds = %1393
  %1395 = load i64, ptr %7, align 8, !tbaa !9
  %1396 = add nsw i64 %1395, 1
  store i64 %1396, ptr %7, align 8, !tbaa !9
  br label %43, !llvm.loop !58

1397:                                             ; preds = %43
  br label %1398

1398:                                             ; preds = %1397
  %1399 = load i64, ptr %6, align 8, !tbaa !9
  %1400 = add nsw i64 %1399, 1
  store i64 %1400, ptr %6, align 8, !tbaa !9
  br label %39, !llvm.loop !59

1401:                                             ; preds = %39
  %1402 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1402)
  store i32 0, ptr %25, align 4
  br label %1403

1403:                                             ; preds = %1401, %1377, %1255, %1130, %1034, %998, %975, %939, %916, %880, %179
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 80, 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 368, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  %1404 = load i32, ptr %25, align 4
  switch i32 %1404, label %1406 [
    i32 0, label %1405
    i32 1, label %1405
  ]

1405:                                             ; preds = %1403, %1403
  ret void

1406:                                             ; preds = %1403
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!19, !19, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = distinct !{!22, !14}
!23 = !{!7, !7, i64 0}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}


; 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::hqrndstate" = type { i64, i64, i64 }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }

@.str.19 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [22 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z7crstestPbPN11alglib_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::hqrndstate", align 8
  %5 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %6 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %7 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %8 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %9 = alloca %"struct.alglib_impl::sparsematrix", align 8
  %10 = alloca %"struct.alglib_impl::ae_matrix", 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
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %14) #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(24) %4, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %5, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %6, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %7, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %8, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %9, i8 0, i64 368, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %10, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %12, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %13, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %14, i8 0, i64 64, i1 false)
  call void @_ZN11alglib_impl16_hqrndstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %4, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %5, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %6, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %7, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %8, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_sparsematrix_initEPvPNS_8ae_stateEb(ptr noundef nonnull %9, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %10, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %11, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %12, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %13, i64 noundef 0, i64 noundef 2, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %14, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14hqrndrandomizeEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %15 = getelementptr inbounds i8, ptr %7, i64 248
  %16 = getelementptr inbounds i8, ptr %7, i64 312
  %17 = getelementptr inbounds i8, ptr %13, i64 56
  %18 = getelementptr inbounds i8, ptr %14, i64 56
  %19 = getelementptr inbounds i8, ptr %12, i64 56
  %20 = getelementptr inbounds i8, ptr %10, i64 72
  %21 = getelementptr inbounds i8, ptr %11, i64 56
  br label %.preheader693

.preheader693:                                    ; preds = %2, %528
  %.0626745 = phi i64 [ 1, %2 ], [ %529, %528 ]
  %22 = icmp ugt i64 %.0626745, 1
  br label %23

23:                                               ; preds = %.preheader693, %526
  %.0625744 = phi i64 [ 1, %.preheader693 ], [ %527, %526 ]
  %24 = mul nuw nsw i64 %.0625744, %.0626745
  %25 = uitofp nneg i64 %24 to double
  %.not.not631703 = icmp ugt i64 %.0625744, 1
  br label %26

26:                                               ; preds = %521, %23
  %.0624 = phi i64 [ %24, %23 ], [ %525, %521 ]
  %27 = sitofp i64 %.0624 to double
  %28 = fdiv double %27, %25
  %.0623 = select i1 %22, double %28, double 1.000000e+00
  %29 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %30 = fmul double %29, %27
  %31 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %30, ptr noundef %1)
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.0625744, i64 noundef %.0626745, i64 noundef %31, ptr noundef nonnull %5, ptr noundef %1)
  br label %.preheader685

.preheader685:                                    ; preds = %26, %42
  %.0607695 = phi i64 [ 0, %26 ], [ %43, %42 ]
  br label %32

32:                                               ; preds = %.preheader685, %40
  %.0601694 = phi i64 [ 0, %.preheader685 ], [ %41, %40 ]
  %33 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.0607695, i64 noundef %.0601694, ptr noundef %1)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %0, i1 noundef zeroext %33, ptr noundef nonnull @.str.19, i32 noundef 14791, ptr noundef nonnull @.str.168)
  %34 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %35 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %34, double noundef %.0623)
  br i1 %35, label %36, label %40

36:                                               ; preds = %32
  %37 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.0607695, i64 noundef %.0601694, double noundef %37, ptr noundef %1)
  %38 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.0607695, i64 noundef %.0601694, ptr noundef %1)
  %39 = xor i1 %38, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %0, i1 noundef zeroext %39, ptr noundef nonnull @.str.19, i32 noundef 14795, ptr noundef nonnull @.str.169)
  br label %40

40:                                               ; preds = %32, %36
  %41 = add nuw nsw i64 %.0601694, 1
  %exitcond.not = icmp eq i64 %41, %.0626745
  br i1 %exitcond.not, label %42, label %32, !llvm.loop !5

42:                                               ; preds = %40
  %43 = add nuw nsw i64 %.0607695, 1
  %exitcond747.not = icmp eq i64 %43, %.0625744
  br i1 %exitcond747.not, label %44, label %.preheader685, !llvm.loop !7

44:                                               ; preds = %42
  call void @_ZN11alglib_impl15sparsecopytocrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %1)
  %45 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %46 = xor i1 %45, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %0, i1 noundef zeroext %46, ptr noundef nonnull @.str.19, i32 noundef 14800, ptr noundef nonnull @.str.170)
  br label %.preheader684

.preheader684:                                    ; preds = %44, %64
  %.1608697 = phi i64 [ 0, %44 ], [ %65, %64 ]
  br label %47

47:                                               ; preds = %.preheader684, %61
  %.1602696 = phi i64 [ 0, %.preheader684 ], [ %63, %61 ]
  %48 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.1608697, i64 noundef %.1602696, ptr noundef %1)
  %49 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.1608697, i64 noundef %.1602696, ptr noundef %1)
  %50 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %48, double noundef %49)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %0, i1 noundef zeroext %50, ptr noundef nonnull @.str.19, i32 noundef 14805, ptr noundef nonnull @.str.171)
  %51 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.1608697, i64 noundef %.1602696, ptr noundef %1)
  br i1 %51, label %52, label %55

52:                                               ; preds = %47
  %53 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.1608697, i64 noundef %.1602696, ptr noundef %1)
  %54 = xor i1 %53, true
  br label %55

55:                                               ; preds = %52, %47
  %56 = phi i1 [ false, %47 ], [ %54, %52 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %0, i1 noundef zeroext %56, ptr noundef nonnull @.str.19, i32 noundef 14806, ptr noundef nonnull @.str.172)
  %57 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.1608697, i64 noundef %.1602696, ptr noundef %1)
  br i1 %57, label %58, label %61

58:                                               ; preds = %55
  %59 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.1608697, i64 noundef %.1602696, ptr noundef %1)
  %60 = xor i1 %59, true
  br label %61

61:                                               ; preds = %58, %55
  %62 = phi i1 [ false, %55 ], [ %60, %58 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef %0, i1 noundef zeroext %62, ptr noundef nonnull @.str.19, i32 noundef 14807, ptr noundef nonnull @.str.173)
  %63 = add nuw nsw i64 %.1602696, 1
  %exitcond748.not = icmp eq i64 %63, %.0626745
  br i1 %exitcond748.not, label %64, label %47, !llvm.loop !8

64:                                               ; preds = %61
  %65 = add nuw nsw i64 %.1608697, 1
  %exitcond749.not = icmp eq i64 %65, %.0625744
  br i1 %exitcond749.not, label %66, label %.preheader684, !llvm.loop !9

66:                                               ; preds = %64
  %67 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %68 = trunc nuw i8 %67 to i1
  br i1 %68, label %.loopexit, label %69

69:                                               ; preds = %66
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef %.0626745, i64 noundef 0, ptr noundef nonnull %7, ptr noundef %1)
  br label %70

70:                                               ; preds = %69, %70
  %.2603698 = phi i64 [ 0, %69 ], [ %72, %70 ]
  %71 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 0, i64 noundef %.2603698, ptr noundef %1)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef 0, i64 noundef %.2603698, double noundef %71, ptr noundef %1)
  %72 = add nuw nsw i64 %.2603698, 1
  %exitcond750.not = icmp eq i64 %72, %.0626745
  br i1 %exitcond750.not, label %73, label %70, !llvm.loop !16

73:                                               ; preds = %70
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  br i1 %.not.not631703, label %.lr.ph707, label %.preheader682.preheader

.lr.ph707:                                        ; preds = %73, %141
  %.2609704 = phi i64 [ %143, %141 ], [ 1, %73 ]
  %74 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %75 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %74, double noundef 0.000000e+00)
  br i1 %75, label %76, label %109

76:                                               ; preds = %.lr.ph707
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0626745, ptr noundef nonnull %13, ptr noundef %1)
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0626745, ptr noundef nonnull %14, ptr noundef %1)
  br label %81

.preheader683:                                    ; preds = %90
  %77 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %78 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %77, double noundef 0.000000e+00)
  %79 = icmp sgt i64 %.1, 0
  %80 = select i1 %78, i1 %79, i1 false
  br i1 %80, label %.lr.ph, label %._crit_edge

81:                                               ; preds = %76, %90
  %.0701 = phi i64 [ 0, %76 ], [ %.1, %90 ]
  %.3604700 = phi i64 [ 0, %76 ], [ %91, %90 ]
  %82 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.2609704, i64 noundef %.3604700, ptr noundef %1)
  br i1 %82, label %83, label %90

83:                                               ; preds = %81
  %84 = load ptr, ptr %17, align 8, !tbaa !17
  %85 = getelementptr inbounds i64, ptr %84, i64 %.0701
  store i64 %.3604700, ptr %85, align 8, !tbaa !18
  %86 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.2609704, i64 noundef %.3604700, ptr noundef %1)
  %87 = load ptr, ptr %18, align 8, !tbaa !17
  %88 = getelementptr inbounds double, ptr %87, i64 %.0701
  store double %86, ptr %88, align 8, !tbaa !20
  %89 = add nsw i64 %.0701, 1
  br label %90

90:                                               ; preds = %81, %83
  %.1 = phi i64 [ %89, %83 ], [ %.0701, %81 ]
  %91 = add nuw nsw i64 %.3604700, 1
  %exitcond752.not = icmp eq i64 %91, %.0626745
  br i1 %exitcond752.not, label %.preheader683, label %81, !llvm.loop !22

.lr.ph:                                           ; preds = %.preheader683, %.lr.ph
  %.2702 = phi i64 [ %92, %.lr.ph ], [ %.1, %.preheader683 ]
  %92 = add nuw nsw i64 %.2702, 1
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %92, ptr noundef nonnull %13, ptr noundef %1)
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %92, ptr noundef nonnull %14, ptr noundef %1)
  %93 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.2702, ptr noundef %1)
  %94 = load ptr, ptr %17, align 8, !tbaa !17
  %95 = getelementptr inbounds i64, ptr %94, i64 %93
  %96 = load i64, ptr %95, align 8, !tbaa !18
  %97 = getelementptr inbounds i64, ptr %94, i64 %.2702
  store i64 %96, ptr %97, align 8, !tbaa !18
  %98 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %99 = load ptr, ptr %18, align 8, !tbaa !17
  %100 = getelementptr inbounds double, ptr %99, i64 %.2702
  store double %98, ptr %100, align 8, !tbaa !20
  %101 = load ptr, ptr %18, align 8, !tbaa !17
  %102 = getelementptr inbounds double, ptr %101, i64 %93
  %103 = load double, ptr %102, align 8, !tbaa !20
  %104 = getelementptr inbounds double, ptr %101, i64 %.2702
  %105 = load double, ptr %104, align 8, !tbaa !20
  %106 = fsub double %103, %105
  store double %106, ptr %102, align 8, !tbaa !20
  %107 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %108 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %107, double noundef 0.000000e+00)
  br i1 %108, label %.lr.ph, label %._crit_edge, !llvm.loop !23

._crit_edge:                                      ; preds = %.lr.ph, %.preheader683
  %.2.lcssa = phi i64 [ %.1, %.preheader683 ], [ %92, %.lr.ph ]
  call void @_ZN11alglib_impl25sparseappendcompressedrowEPNS_12sparsematrixEPKNS_9ae_vectorES4_lPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef nonnull %13, ptr noundef nonnull %14, i64 noundef %.2.lcssa, ptr noundef %1)
  br label %141

109:                                              ; preds = %.lr.ph707
  call void @_ZN11alglib_impl20sparseappendemptyrowEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  br label %110

110:                                              ; preds = %109, %114
  %.4605699 = phi i64 [ 0, %109 ], [ %115, %114 ]
  %111 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.2609704, i64 noundef %.4605699, ptr noundef %1)
  br i1 %111, label %112, label %114

112:                                              ; preds = %110
  %113 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.2609704, i64 noundef %.4605699, ptr noundef %1)
  call void @_ZN11alglib_impl19sparseappendelementEPNS_12sparsematrixEldPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.4605699, double noundef %113, ptr noundef %1)
  br label %114

114:                                              ; preds = %110, %112
  %115 = add nuw nsw i64 %.4605699, 1
  %exitcond751.not = icmp eq i64 %115, %.0626745
  br i1 %exitcond751.not, label %116, label %110, !llvm.loop !24

116:                                              ; preds = %114
  %117 = icmp ult i64 %.2609704, %.0626745
  br i1 %117, label %118, label %128

118:                                              ; preds = %116
  %119 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.2609704, i64 noundef %.2609704, ptr noundef %1)
  br i1 %119, label %120, label %129

120:                                              ; preds = %118
  %121 = load ptr, ptr %15, align 8, !tbaa !17
  %122 = getelementptr inbounds i64, ptr %121, i64 %.2609704
  %123 = load i64, ptr %122, align 8, !tbaa !18
  %124 = load ptr, ptr %16, align 8, !tbaa !17
  %125 = getelementptr inbounds i64, ptr %124, i64 %.2609704
  %126 = load i64, ptr %125, align 8, !tbaa !18
  %127 = icmp eq i64 %123, %126
  br label %129

128:                                              ; preds = %116
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext false, ptr noundef nonnull @.str.19, i32 noundef 14876, ptr noundef nonnull @.str.174)
  br label %131

129:                                              ; preds = %120, %118
  %.ph = phi i1 [ %127, %120 ], [ false, %118 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %.ph, ptr noundef nonnull @.str.19, i32 noundef 14876, ptr noundef nonnull @.str.174)
  %130 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.2609704, i64 noundef %.2609704, ptr noundef %1)
  br i1 %130, label %139, label %131

131:                                              ; preds = %128, %129
  %132 = load ptr, ptr %15, align 8, !tbaa !17
  %133 = getelementptr inbounds i64, ptr %132, i64 %.2609704
  %134 = load i64, ptr %133, align 8, !tbaa !18
  %135 = load ptr, ptr %16, align 8, !tbaa !17
  %136 = getelementptr inbounds i64, ptr %135, i64 %.2609704
  %137 = load i64, ptr %136, align 8, !tbaa !18
  %138 = icmp ne i64 %134, %137
  br label %139

139:                                              ; preds = %131, %129
  %140 = phi i1 [ false, %129 ], [ %138, %131 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %140, ptr noundef nonnull @.str.19, i32 noundef 14877, ptr noundef nonnull @.str.175)
  br label %141

141:                                              ; preds = %139, %._crit_edge
  %142 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %143 = add nuw nsw i64 %.2609704, 1
  %144 = icmp ne i64 %142, %143
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %144, ptr noundef nonnull @.str.19, i32 noundef 14879, ptr noundef nonnull @.str.176)
  %exitcond753.not = icmp eq i64 %143, %.0625744
  br i1 %exitcond753.not, label %.preheader682.preheader, label %.lr.ph707, !llvm.loop !25

.preheader682.preheader:                          ; preds = %141, %73
  br label %.preheader682

.preheader682:                                    ; preds = %.preheader682.preheader, %165
  %.3610709 = phi i64 [ %166, %165 ], [ 0, %.preheader682.preheader ]
  br label %145

145:                                              ; preds = %.preheader682, %162
  %.5606708 = phi i64 [ 0, %.preheader682 ], [ %164, %162 ]
  %146 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.3610709, i64 noundef %.5606708, ptr noundef %1)
  %147 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.3610709, i64 noundef %.5606708, ptr noundef %1)
  %148 = fsub double %146, %147
  %149 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %148, ptr noundef %1)
  %150 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1)
  %151 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %149, double noundef %150)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %151, ptr noundef nonnull @.str.19, i32 noundef 14885, ptr noundef nonnull @.str.177)
  %152 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.3610709, i64 noundef %.5606708, ptr noundef %1)
  br i1 %152, label %153, label %156

153:                                              ; preds = %145
  %154 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.3610709, i64 noundef %.5606708, ptr noundef %1)
  %155 = xor i1 %154, true
  br label %156

156:                                              ; preds = %153, %145
  %157 = phi i1 [ false, %145 ], [ %155, %153 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %157, ptr noundef nonnull @.str.19, i32 noundef 14886, ptr noundef nonnull @.str.178)
  %158 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.3610709, i64 noundef %.5606708, ptr noundef %1)
  br i1 %158, label %159, label %162

159:                                              ; preds = %156
  %160 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.3610709, i64 noundef %.5606708, ptr noundef %1)
  %161 = xor i1 %160, true
  br label %162

162:                                              ; preds = %159, %156
  %163 = phi i1 [ false, %156 ], [ %161, %159 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %163, ptr noundef nonnull @.str.19, i32 noundef 14887, ptr noundef nonnull @.str.179)
  %164 = add nuw nsw i64 %.5606708, 1
  %exitcond754.not = icmp eq i64 %164, %.0626745
  br i1 %exitcond754.not, label %165, label %145, !llvm.loop !26

165:                                              ; preds = %162
  %166 = add nuw nsw i64 %.3610709, 1
  %exitcond755.not = icmp eq i64 %166, %.0625744
  br i1 %exitcond755.not, label %.preheader691, label %.preheader682, !llvm.loop !27

.preheader691:                                    ; preds = %165, %213
  %.0600718 = phi i64 [ %214, %213 ], [ 0, %165 ]
  %.not655 = icmp eq i64 %.0600718, 0
  br i1 %.not655, label %174, label %167

167:                                              ; preds = %.preheader691
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.0600718, i64 noundef %.0626745, i64 noundef 0, ptr noundef nonnull %7, ptr noundef %1)
  br label %.preheader672

.preheader672:                                    ; preds = %167, %171
  %.4611711 = phi i64 [ 0, %167 ], [ %172, %171 ]
  br label %168

168:                                              ; preds = %.preheader672, %168
  %.6710 = phi i64 [ 0, %.preheader672 ], [ %170, %168 ]
  %169 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.4611711, i64 noundef %.6710, ptr noundef %1)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.4611711, i64 noundef %.6710, double noundef %169, ptr noundef %1)
  %170 = add nuw nsw i64 %.6710, 1
  %exitcond756.not = icmp eq i64 %170, %.0626745
  br i1 %exitcond756.not, label %171, label %168, !llvm.loop !28

171:                                              ; preds = %168
  %172 = add nuw nsw i64 %.4611711, 1
  %exitcond757.not = icmp eq i64 %172, %.0600718
  br i1 %exitcond757.not, label %173, label %.preheader672, !llvm.loop !29

173:                                              ; preds = %171
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  br label %175

174:                                              ; preds = %.preheader691
  call void @_ZN11alglib_impl20sparsecreatecrsemptyElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.0626745, ptr noundef nonnull %7, ptr noundef %1)
  br label %175

175:                                              ; preds = %174, %173
  %176 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %177 = icmp ne i64 %176, %.0600718
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %177, ptr noundef nonnull @.str.19, i32 noundef 14912, ptr noundef nonnull @.str.180)
  %178 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %179 = icmp ne i64 %178, %.0626745
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %179, ptr noundef nonnull @.str.19, i32 noundef 14913, ptr noundef nonnull @.str.181)
  %180 = sub nsw i64 %.0625744, %.0600718
  call void @_ZN11alglib_impl12sparsecreateElllPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %180, i64 noundef %.0626745, i64 noundef 0, ptr noundef nonnull %8, ptr noundef %1)
  %.not657.not713 = icmp sgt i64 %180, 0
  br i1 %.not657.not713, label %.preheader671, label %._crit_edge715

.preheader671:                                    ; preds = %175, %185
  %.5612714 = phi i64 [ %186, %185 ], [ 0, %175 ]
  %181 = add nuw nsw i64 %.5612714, %.0600718
  br label %182

182:                                              ; preds = %.preheader671, %182
  %.7712 = phi i64 [ 0, %.preheader671 ], [ %184, %182 ]
  %183 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %181, i64 noundef %.7712, ptr noundef %1)
  call void @_ZN11alglib_impl9sparsesetEPNS_12sparsematrixElldPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.5612714, i64 noundef %.7712, double noundef %183, ptr noundef %1)
  %184 = add nuw nsw i64 %.7712, 1
  %exitcond758.not = icmp eq i64 %184, %.0626745
  br i1 %exitcond758.not, label %185, label %182, !llvm.loop !30

185:                                              ; preds = %182
  %186 = add nuw nsw i64 %.5612714, 1
  %.not657.not = icmp slt i64 %186, %180
  br i1 %.not657.not, label %.preheader671, label %._crit_edge715, !llvm.loop !31

._crit_edge715:                                   ; preds = %185, %175
  call void @_ZN11alglib_impl18sparseconverttocrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %8, ptr noundef %1)
  call void @_ZN11alglib_impl18sparseappendmatrixEPNS_12sparsematrixEPKS0_PNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %1)
  %187 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %188 = icmp ne i64 %187, %.0625744
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %188, ptr noundef nonnull @.str.19, i32 noundef 14924, ptr noundef nonnull @.str.182)
  %189 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %190 = icmp ne i64 %189, %.0626745
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %190, ptr noundef nonnull @.str.19, i32 noundef 14925, ptr noundef nonnull @.str.183)
  br label %.preheader

.preheader:                                       ; preds = %._crit_edge715, %211
  %.6613717 = phi i64 [ 0, %._crit_edge715 ], [ %212, %211 ]
  br label %191

191:                                              ; preds = %.preheader, %208
  %.8716 = phi i64 [ 0, %.preheader ], [ %210, %208 ]
  %192 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.6613717, i64 noundef %.8716, ptr noundef %1)
  %193 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.6613717, i64 noundef %.8716, ptr noundef %1)
  %194 = fsub double %192, %193
  %195 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %194, ptr noundef %1)
  %196 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1)
  %197 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %195, double noundef %196)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %197, ptr noundef nonnull @.str.19, i32 noundef 14930, ptr noundef nonnull @.str.184)
  %198 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.6613717, i64 noundef %.8716, ptr noundef %1)
  br i1 %198, label %199, label %202

199:                                              ; preds = %191
  %200 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.6613717, i64 noundef %.8716, ptr noundef %1)
  %201 = xor i1 %200, true
  br label %202

202:                                              ; preds = %199, %191
  %203 = phi i1 [ false, %191 ], [ %201, %199 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %203, ptr noundef nonnull @.str.19, i32 noundef 14931, ptr noundef nonnull @.str.185)
  %204 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.6613717, i64 noundef %.8716, ptr noundef %1)
  br i1 %204, label %205, label %208

205:                                              ; preds = %202
  %206 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.6613717, i64 noundef %.8716, ptr noundef %1)
  %207 = xor i1 %206, true
  br label %208

208:                                              ; preds = %205, %202
  %209 = phi i1 [ false, %202 ], [ %207, %205 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %209, ptr noundef nonnull @.str.19, i32 noundef 14932, ptr noundef nonnull @.str.186)
  %210 = add nuw nsw i64 %.8716, 1
  %exitcond759.not = icmp eq i64 %210, %.0626745
  br i1 %exitcond759.not, label %211, label %191, !llvm.loop !32

211:                                              ; preds = %208
  %212 = add nuw nsw i64 %.6613717, 1
  %exitcond760.not = icmp eq i64 %212, %.0625744
  br i1 %exitcond760.not, label %213, label %.preheader, !llvm.loop !33

213:                                              ; preds = %211
  %214 = add nuw nsw i64 %.0600718, 1
  %exitcond761.not = icmp eq i64 %214, %.0625744
  br i1 %exitcond761.not, label %215, label %.preheader691, !llvm.loop !34

215:                                              ; preds = %213
  call void @_ZN11alglib_impl20sparsecreatecrsemptyElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %.0626745, ptr noundef nonnull %7, ptr noundef %1)
  br label %216

216:                                              ; preds = %215, %284
  %.7614726 = phi i64 [ 0, %215 ], [ %286, %284 ]
  %217 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %218 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %217, double noundef 0.000000e+00)
  br i1 %218, label %219, label %252

219:                                              ; preds = %216
  call void @_ZN11alglib_impl7iallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0626745, ptr noundef nonnull %13, ptr noundef %1)
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0626745, ptr noundef nonnull %14, ptr noundef %1)
  br label %224

.preheader681:                                    ; preds = %233
  %220 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %221 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %220, double noundef 0.000000e+00)
  %222 = icmp sgt i64 %.4, 0
  %223 = select i1 %221, i1 %222, i1 false
  br i1 %223, label %.lr.ph723, label %._crit_edge724

224:                                              ; preds = %219, %233
  %.3721 = phi i64 [ 0, %219 ], [ %.4, %233 ]
  %.9720 = phi i64 [ 0, %219 ], [ %234, %233 ]
  %225 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.7614726, i64 noundef %.9720, ptr noundef %1)
  br i1 %225, label %226, label %233

226:                                              ; preds = %224
  %227 = load ptr, ptr %17, align 8, !tbaa !17
  %228 = getelementptr inbounds i64, ptr %227, i64 %.3721
  store i64 %.9720, ptr %228, align 8, !tbaa !18
  %229 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.7614726, i64 noundef %.9720, ptr noundef %1)
  %230 = load ptr, ptr %18, align 8, !tbaa !17
  %231 = getelementptr inbounds double, ptr %230, i64 %.3721
  store double %229, ptr %231, align 8, !tbaa !20
  %232 = add nsw i64 %.3721, 1
  br label %233

233:                                              ; preds = %224, %226
  %.4 = phi i64 [ %232, %226 ], [ %.3721, %224 ]
  %234 = add nuw nsw i64 %.9720, 1
  %exitcond763.not = icmp eq i64 %234, %.0626745
  br i1 %exitcond763.not, label %.preheader681, label %224, !llvm.loop !35

.lr.ph723:                                        ; preds = %.preheader681, %.lr.ph723
  %.5722 = phi i64 [ %235, %.lr.ph723 ], [ %.4, %.preheader681 ]
  %235 = add nuw nsw i64 %.5722, 1
  call void @_ZN11alglib_impl6igrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %235, ptr noundef nonnull %13, ptr noundef %1)
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %235, ptr noundef nonnull %14, ptr noundef %1)
  %236 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.5722, ptr noundef %1)
  %237 = load ptr, ptr %17, align 8, !tbaa !17
  %238 = getelementptr inbounds i64, ptr %237, i64 %236
  %239 = load i64, ptr %238, align 8, !tbaa !18
  %240 = getelementptr inbounds i64, ptr %237, i64 %.5722
  store i64 %239, ptr %240, align 8, !tbaa !18
  %241 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %242 = load ptr, ptr %18, align 8, !tbaa !17
  %243 = getelementptr inbounds double, ptr %242, i64 %.5722
  store double %241, ptr %243, align 8, !tbaa !20
  %244 = load ptr, ptr %18, align 8, !tbaa !17
  %245 = getelementptr inbounds double, ptr %244, i64 %236
  %246 = load double, ptr %245, align 8, !tbaa !20
  %247 = getelementptr inbounds double, ptr %244, i64 %.5722
  %248 = load double, ptr %247, align 8, !tbaa !20
  %249 = fsub double %246, %248
  store double %249, ptr %245, align 8, !tbaa !20
  %250 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %251 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %250, double noundef 0.000000e+00)
  br i1 %251, label %.lr.ph723, label %._crit_edge724, !llvm.loop !36

._crit_edge724:                                   ; preds = %.lr.ph723, %.preheader681
  %.5.lcssa = phi i64 [ %.4, %.preheader681 ], [ %235, %.lr.ph723 ]
  call void @_ZN11alglib_impl25sparseappendcompressedrowEPNS_12sparsematrixEPKNS_9ae_vectorES4_lPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef nonnull %13, ptr noundef nonnull %14, i64 noundef %.5.lcssa, ptr noundef %1)
  br label %284

252:                                              ; preds = %216
  call void @_ZN11alglib_impl20sparseappendemptyrowEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  br label %253

253:                                              ; preds = %252, %257
  %.10719 = phi i64 [ 0, %252 ], [ %258, %257 ]
  %254 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.7614726, i64 noundef %.10719, ptr noundef %1)
  br i1 %254, label %255, label %257

255:                                              ; preds = %253
  %256 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.7614726, i64 noundef %.10719, ptr noundef %1)
  call void @_ZN11alglib_impl19sparseappendelementEPNS_12sparsematrixEldPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.10719, double noundef %256, ptr noundef %1)
  br label %257

257:                                              ; preds = %253, %255
  %258 = add nuw nsw i64 %.10719, 1
  %exitcond762.not = icmp eq i64 %258, %.0626745
  br i1 %exitcond762.not, label %259, label %253, !llvm.loop !37

259:                                              ; preds = %257
  %260 = icmp ult i64 %.7614726, %.0626745
  br i1 %260, label %261, label %271

261:                                              ; preds = %259
  %262 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.7614726, i64 noundef %.7614726, ptr noundef %1)
  br i1 %262, label %263, label %272

263:                                              ; preds = %261
  %264 = load ptr, ptr %15, align 8, !tbaa !17
  %265 = getelementptr inbounds i64, ptr %264, i64 %.7614726
  %266 = load i64, ptr %265, align 8, !tbaa !18
  %267 = load ptr, ptr %16, align 8, !tbaa !17
  %268 = getelementptr inbounds i64, ptr %267, i64 %.7614726
  %269 = load i64, ptr %268, align 8, !tbaa !18
  %270 = icmp eq i64 %266, %269
  br label %272

271:                                              ; preds = %259
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext false, ptr noundef nonnull @.str.19, i32 noundef 14991, ptr noundef nonnull @.str.187)
  br label %274

272:                                              ; preds = %263, %261
  %.ph669 = phi i1 [ %270, %263 ], [ false, %261 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %.ph669, ptr noundef nonnull @.str.19, i32 noundef 14991, ptr noundef nonnull @.str.187)
  %273 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.7614726, i64 noundef %.7614726, ptr noundef %1)
  br i1 %273, label %282, label %274

274:                                              ; preds = %271, %272
  %275 = load ptr, ptr %15, align 8, !tbaa !17
  %276 = getelementptr inbounds i64, ptr %275, i64 %.7614726
  %277 = load i64, ptr %276, align 8, !tbaa !18
  %278 = load ptr, ptr %16, align 8, !tbaa !17
  %279 = getelementptr inbounds i64, ptr %278, i64 %.7614726
  %280 = load i64, ptr %279, align 8, !tbaa !18
  %281 = icmp ne i64 %277, %280
  br label %282

282:                                              ; preds = %274, %272
  %283 = phi i1 [ false, %272 ], [ %281, %274 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %283, ptr noundef nonnull @.str.19, i32 noundef 14992, ptr noundef nonnull @.str.188)
  br label %284

284:                                              ; preds = %282, %._crit_edge724
  %285 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %286 = add nuw nsw i64 %.7614726, 1
  %287 = icmp ne i64 %285, %286
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %287, ptr noundef nonnull @.str.19, i32 noundef 14994, ptr noundef nonnull @.str.189)
  %exitcond764.not = icmp eq i64 %286, %.0625744
  br i1 %exitcond764.not, label %.preheader680, label %216, !llvm.loop !38

.preheader680:                                    ; preds = %284, %308
  %.8615729 = phi i64 [ %309, %308 ], [ 0, %284 ]
  br label %288

288:                                              ; preds = %.preheader680, %305
  %.11728 = phi i64 [ 0, %.preheader680 ], [ %307, %305 ]
  %289 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.8615729, i64 noundef %.11728, ptr noundef %1)
  %290 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.8615729, i64 noundef %.11728, ptr noundef %1)
  %291 = fsub double %289, %290
  %292 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %291, ptr noundef %1)
  %293 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1)
  %294 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %292, double noundef %293)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %294, ptr noundef nonnull @.str.19, i32 noundef 15000, ptr noundef nonnull @.str.190)
  %295 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.8615729, i64 noundef %.11728, ptr noundef %1)
  br i1 %295, label %296, label %299

296:                                              ; preds = %288
  %297 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.8615729, i64 noundef %.11728, ptr noundef %1)
  %298 = xor i1 %297, true
  br label %299

299:                                              ; preds = %296, %288
  %300 = phi i1 [ false, %288 ], [ %298, %296 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %300, ptr noundef nonnull @.str.19, i32 noundef 15001, ptr noundef nonnull @.str.191)
  %301 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.8615729, i64 noundef %.11728, ptr noundef %1)
  br i1 %301, label %302, label %305

302:                                              ; preds = %299
  %303 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.8615729, i64 noundef %.11728, ptr noundef %1)
  %304 = xor i1 %303, true
  br label %305

305:                                              ; preds = %302, %299
  %306 = phi i1 [ false, %299 ], [ %304, %302 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %306, ptr noundef nonnull @.str.19, i32 noundef 15002, ptr noundef nonnull @.str.192)
  %307 = add nuw nsw i64 %.11728, 1
  %exitcond765.not = icmp eq i64 %307, %.0626745
  br i1 %exitcond765.not, label %308, label %288, !llvm.loop !39

308:                                              ; preds = %305
  %309 = add nuw nsw i64 %.8615729, 1
  %exitcond766.not = icmp eq i64 %309, %.0625744
  br i1 %exitcond766.not, label %310, label %.preheader680, !llvm.loop !40

310:                                              ; preds = %308
  call void @_ZN11alglib_impl15sparsecopytocrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  call void @_ZN11alglib_impl18sparsetransposecrsEPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %311 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %312 = xor i1 %311, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %312, ptr noundef nonnull @.str.19, i32 noundef 15011, ptr noundef nonnull @.str.193)
  %313 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %314 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %315 = icmp ne i64 %313, %314
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %315, ptr noundef nonnull @.str.19, i32 noundef 15012, ptr noundef nonnull @.str.194)
  %316 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %317 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef %1)
  %318 = icmp ne i64 %316, %317
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %318, ptr noundef nonnull @.str.19, i32 noundef 15013, ptr noundef nonnull @.str.195)
  %319 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %320 = trunc nuw i8 %319 to i1
  br i1 %320, label %.loopexit, label %.preheader679

.preheader679:                                    ; preds = %310, %326
  %.9616731 = phi i64 [ %327, %326 ], [ 0, %310 ]
  br label %321

321:                                              ; preds = %.preheader679, %321
  %.12730 = phi i64 [ 0, %.preheader679 ], [ %325, %321 ]
  %322 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.9616731, i64 noundef %.12730, ptr noundef %1)
  %323 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.12730, i64 noundef %.9616731, ptr noundef %1)
  %324 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %322, double noundef %323)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %324, ptr noundef nonnull @.str.19, i32 noundef 15023, ptr noundef nonnull @.str.196)
  %325 = add nuw nsw i64 %.12730, 1
  %exitcond767.not = icmp eq i64 %325, %.0626745
  br i1 %exitcond767.not, label %326, label %321, !llvm.loop !41

326:                                              ; preds = %321
  %327 = add nuw nsw i64 %.9616731, 1
  %exitcond768.not = icmp eq i64 %327, %.0625744
  br i1 %exitcond768.not, label %328, label %.preheader679, !llvm.loop !42

328:                                              ; preds = %326
  %329 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %330 = trunc nuw i8 %329 to i1
  br i1 %330, label %.loopexit, label %331

331:                                              ; preds = %328
  call void @_ZN11alglib_impl22sparsecopytransposecrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef nonnull %8, ptr noundef %1)
  %332 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %8, ptr noundef %1)
  %333 = xor i1 %332, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %333, ptr noundef nonnull @.str.19, i32 noundef 15036, ptr noundef nonnull @.str.197)
  %334 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %335 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %8, ptr noundef %1)
  %336 = icmp ne i64 %334, %335
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %336, ptr noundef nonnull @.str.19, i32 noundef 15037, ptr noundef nonnull @.str.198)
  %337 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %338 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %8, ptr noundef %1)
  %339 = icmp ne i64 %337, %338
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %339, ptr noundef nonnull @.str.19, i32 noundef 15038, ptr noundef nonnull @.str.199)
  %340 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %341 = trunc nuw i8 %340 to i1
  br i1 %341, label %.loopexit, label %.preheader678

.preheader678:                                    ; preds = %331, %347
  %.10617733 = phi i64 [ %348, %347 ], [ 0, %331 ]
  br label %342

342:                                              ; preds = %.preheader678, %342
  %.13732 = phi i64 [ 0, %.preheader678 ], [ %346, %342 ]
  %343 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.10617733, i64 noundef %.13732, ptr noundef %1)
  %344 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.13732, i64 noundef %.10617733, ptr noundef %1)
  %345 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %343, double noundef %344)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %345, ptr noundef nonnull @.str.19, i32 noundef 15048, ptr noundef nonnull @.str.200)
  %346 = add nuw nsw i64 %.13732, 1
  %exitcond769.not = icmp eq i64 %346, %.0626745
  br i1 %exitcond769.not, label %347, label %342, !llvm.loop !43

347:                                              ; preds = %342
  %348 = add nuw nsw i64 %.10617733, 1
  %exitcond770.not = icmp eq i64 %348, %.0625744
  br i1 %exitcond770.not, label %349, label %.preheader678, !llvm.loop !44

349:                                              ; preds = %347
  %350 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %.loopexit, label %352

352:                                              ; preds = %349
  call void @_ZN11alglib_impl22sparsecopytransposecrsEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef nonnull %9, ptr noundef %1)
  %353 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %9, ptr noundef %1)
  %354 = xor i1 %353, true
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %354, ptr noundef nonnull @.str.19, i32 noundef 15061, ptr noundef nonnull @.str.201)
  %355 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %356 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %9, ptr noundef %1)
  %357 = icmp ne i64 %355, %356
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %357, ptr noundef nonnull @.str.19, i32 noundef 15062, ptr noundef nonnull @.str.202)
  %358 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %359 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %9, ptr noundef %1)
  %360 = icmp ne i64 %358, %359
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %360, ptr noundef nonnull @.str.19, i32 noundef 15063, ptr noundef nonnull @.str.203)
  %361 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %362 = trunc nuw i8 %361 to i1
  br i1 %362, label %.loopexit, label %.preheader677

.preheader677:                                    ; preds = %352, %368
  %.11618735 = phi i64 [ %369, %368 ], [ 0, %352 ]
  br label %363

363:                                              ; preds = %.preheader677, %363
  %.14734 = phi i64 [ 0, %.preheader677 ], [ %367, %363 ]
  %364 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.11618735, i64 noundef %.14734, ptr noundef %1)
  %365 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef %.14734, i64 noundef %.11618735, ptr noundef %1)
  %366 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %364, double noundef %365)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %366, ptr noundef nonnull @.str.19, i32 noundef 15073, ptr noundef nonnull @.str.204)
  %367 = add nuw nsw i64 %.14734, 1
  %exitcond771.not = icmp eq i64 %367, %.0626745
  br i1 %exitcond771.not, label %368, label %363, !llvm.loop !45

368:                                              ; preds = %363
  %369 = add nuw nsw i64 %.11618735, 1
  %exitcond772.not = icmp eq i64 %369, %.0625744
  br i1 %exitcond772.not, label %370, label %.preheader677, !llvm.loop !46

370:                                              ; preds = %368
  %371 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %372 = trunc nuw i8 %371 to i1
  br i1 %372, label %.loopexit, label %373

373:                                              ; preds = %370
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.0626745, ptr noundef nonnull %12, ptr noundef %1)
  call void @_ZN11alglib_impl20sparsemultiplycolsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef %1)
  br label %.preheader676

.preheader676:                                    ; preds = %373, %386
  %.12619737 = phi i64 [ 0, %373 ], [ %387, %386 ]
  br label %374

374:                                              ; preds = %.preheader676, %374
  %.15736 = phi i64 [ 0, %.preheader676 ], [ %385, %374 ]
  %375 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.12619737, i64 noundef %.15736, ptr noundef %1)
  %376 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.12619737, i64 noundef %.15736, ptr noundef %1)
  %377 = load ptr, ptr %19, align 8, !tbaa !17
  %378 = getelementptr inbounds double, ptr %377, i64 %.15736
  %379 = load double, ptr %378, align 8, !tbaa !20
  %380 = fneg double %376
  %381 = call double @llvm.fmuladd.f64(double %380, double %379, double %375)
  %382 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %381, ptr noundef %1)
  %383 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1)
  %384 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %382, double noundef %383)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %384, ptr noundef nonnull @.str.19, i32 noundef 15092, ptr noundef nonnull @.str.205)
  %385 = add nuw nsw i64 %.15736, 1
  %exitcond773.not = icmp eq i64 %385, %.0626745
  br i1 %exitcond773.not, label %386, label %374, !llvm.loop !47

386:                                              ; preds = %374
  %387 = add nuw nsw i64 %.12619737, 1
  %exitcond774.not = icmp eq i64 %387, %.0625744
  br i1 %exitcond774.not, label %388, label %.preheader676, !llvm.loop !48

388:                                              ; preds = %386
  call void @_ZN11alglib_impl10sparsecopyEPKNS_12sparsematrixEPS0_PNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.0625744, ptr noundef nonnull %12, ptr noundef %1)
  call void @_ZN11alglib_impl20sparsemultiplyrowsbyEPNS_12sparsematrixEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef %1)
  br label %.preheader675

.preheader675:                                    ; preds = %388, %401
  %.13620739 = phi i64 [ 0, %388 ], [ %402, %401 ]
  br label %389

389:                                              ; preds = %.preheader675, %389
  %.16738 = phi i64 [ 0, %.preheader675 ], [ %400, %389 ]
  %390 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.13620739, i64 noundef %.16738, ptr noundef %1)
  %391 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.13620739, i64 noundef %.16738, ptr noundef %1)
  %392 = load ptr, ptr %19, align 8, !tbaa !17
  %393 = getelementptr inbounds double, ptr %392, i64 %.13620739
  %394 = load double, ptr %393, align 8, !tbaa !20
  %395 = fneg double %391
  %396 = call double @llvm.fmuladd.f64(double %395, double %394, double %390)
  %397 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %396, ptr noundef %1)
  %398 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %1)
  %399 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %397, double noundef %398)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %399, ptr noundef nonnull @.str.19, i32 noundef 15102, ptr noundef nonnull @.str.206)
  %400 = add nuw nsw i64 %.16738, 1
  %exitcond775.not = icmp eq i64 %400, %.0626745
  br i1 %exitcond775.not, label %401, label %389, !llvm.loop !49

401:                                              ; preds = %389
  %402 = add nuw nsw i64 %.13620739, 1
  %exitcond776.not = icmp eq i64 %402, %.0625744
  br i1 %exitcond776.not, label %403, label %.preheader675, !llvm.loop !50

403:                                              ; preds = %401
  %404 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %405 = trunc nuw i8 %404 to i1
  br i1 %405, label %.loopexit, label %406

406:                                              ; preds = %403
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.0625744, i64 noundef %.0626745, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %24, ptr noundef %1)
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %.0625744, i64 noundef %.0626745, double noundef 0.000000e+00, ptr noundef nonnull %10, ptr noundef %1)
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %24, double noundef 0.000000e+00, ptr noundef nonnull %11, ptr noundef %1)
  br label %.preheader674

.preheader674:                                    ; preds = %406, %427
  %.14621741 = phi i64 [ 0, %406 ], [ %428, %427 ]
  %407 = mul nuw nsw i64 %.14621741, %.0626745
  br label %408

408:                                              ; preds = %.preheader674, %425
  %.17740 = phi i64 [ 0, %.preheader674 ], [ %426, %425 ]
  %409 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %410 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %409, double noundef %.0623)
  br i1 %410, label %411, label %425

411:                                              ; preds = %408
  %412 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %413 = load ptr, ptr %20, align 8, !tbaa !17
  %414 = getelementptr inbounds ptr, ptr %413, i64 %.14621741
  %415 = load ptr, ptr %414, align 8, !tbaa !51
  %416 = getelementptr inbounds double, ptr %415, i64 %.17740
  store double %412, ptr %416, align 8, !tbaa !20
  %417 = load ptr, ptr %20, align 8, !tbaa !17
  %418 = getelementptr inbounds ptr, ptr %417, i64 %.14621741
  %419 = load ptr, ptr %418, align 8, !tbaa !51
  %420 = getelementptr inbounds double, ptr %419, i64 %.17740
  %421 = load double, ptr %420, align 8, !tbaa !20
  %422 = load ptr, ptr %21, align 8, !tbaa !17
  %423 = getelementptr inbounds double, ptr %422, i64 %407
  %424 = getelementptr inbounds double, ptr %423, i64 %.17740
  store double %421, ptr %424, align 8, !tbaa !20
  br label %425

425:                                              ; preds = %408, %411
  %426 = add nuw nsw i64 %.17740, 1
  %exitcond777.not = icmp eq i64 %426, %.0626745
  br i1 %exitcond777.not, label %427, label %408, !llvm.loop !53

427:                                              ; preds = %425
  %428 = add nuw nsw i64 %.14621741, 1
  %exitcond778.not = icmp eq i64 %428, %.0625744
  br i1 %exitcond778.not, label %429, label %.preheader674, !llvm.loop !54

429:                                              ; preds = %427
  %430 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %431 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %430, double noundef 0.000000e+00)
  br i1 %431, label %432, label %433

432:                                              ; preds = %429
  call void @_ZN11alglib_impl24sparsecreatecrsfromdenseEPKNS_9ae_matrixEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.0625744, i64 noundef %.0626745, ptr noundef nonnull %5, ptr noundef %1)
  br label %434

433:                                              ; preds = %429
  call void @_ZN11alglib_impl25sparsecreatecrsfromdensevEPKNS_9ae_vectorEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.0625744, i64 noundef %.0626745, ptr noundef nonnull %5, ptr noundef %1)
  br label %434

434:                                              ; preds = %433, %432
  %435 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  %436 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %435, double noundef 0.000000e+00)
  br i1 %436, label %437, label %438

437:                                              ; preds = %434
  call void @_ZN11alglib_impl27sparsecreatecrsfromdensebufEPKNS_9ae_matrixEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.0625744, i64 noundef %.0626745, ptr noundef nonnull %6, ptr noundef %1)
  br label %439

438:                                              ; preds = %434
  call void @_ZN11alglib_impl28sparsecreatecrsfromdensevbufEPKNS_9ae_vectorEllPNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.0625744, i64 noundef %.0626745, ptr noundef nonnull %6, ptr noundef %1)
  br label %439

439:                                              ; preds = %438, %437
  %440 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %5, ptr noundef %1)
  br i1 %440, label %441, label %446

441:                                              ; preds = %439
  %442 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %5, ptr noundef %1)
  %.not = icmp eq i64 %442, %.0625744
  br i1 %.not, label %443, label %446

443:                                              ; preds = %441
  %444 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %5, ptr noundef %1)
  %445 = icmp ne i64 %444, %.0626745
  br label %446

446:                                              ; preds = %443, %441, %439
  %447 = phi i1 [ true, %441 ], [ true, %439 ], [ %445, %443 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %447, ptr noundef nonnull @.str.19, i32 noundef 15145, ptr noundef nonnull @.str.207)
  %448 = call noundef zeroext i1 @_ZN11alglib_impl11sparseiscrsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  br i1 %448, label %449, label %454

449:                                              ; preds = %446
  %450 = call noundef i64 @_ZN11alglib_impl14sparsegetnrowsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %.not642 = icmp eq i64 %450, %.0625744
  br i1 %.not642, label %451, label %454

451:                                              ; preds = %449
  %452 = call noundef i64 @_ZN11alglib_impl14sparsegetncolsEPKNS_12sparsematrixEPNS_8ae_stateE(ptr noundef nonnull %6, ptr noundef %1)
  %453 = icmp ne i64 %452, %.0626745
  br label %454

454:                                              ; preds = %451, %449, %446
  %455 = phi i1 [ true, %449 ], [ true, %446 ], [ %453, %451 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %455, ptr noundef nonnull @.str.19, i32 noundef 15146, ptr noundef nonnull @.str.208)
  %456 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %457 = trunc nuw i8 %456 to i1
  br i1 %457, label %.loopexit, label %.preheader673

.preheader673:                                    ; preds = %454, %514
  %.15622743 = phi i64 [ %515, %514 ], [ 0, %454 ]
  br label %458

458:                                              ; preds = %.preheader673, %511
  %.18742 = phi i64 [ 0, %.preheader673 ], [ %513, %511 ]
  %459 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.15622743, i64 noundef %.18742, ptr noundef %1)
  %460 = load ptr, ptr %20, align 8, !tbaa !17
  %461 = getelementptr inbounds ptr, ptr %460, i64 %.15622743
  %462 = load ptr, ptr %461, align 8, !tbaa !51
  %463 = getelementptr inbounds double, ptr %462, i64 %.18742
  %464 = load double, ptr %463, align 8, !tbaa !20
  %465 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %459, double noundef %464)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %465, ptr noundef nonnull @.str.19, i32 noundef 15156, ptr noundef nonnull @.str.209)
  %466 = call noundef double @_ZN11alglib_impl9sparsegetEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.15622743, i64 noundef %.18742, ptr noundef %1)
  %467 = load ptr, ptr %20, align 8, !tbaa !17
  %468 = getelementptr inbounds ptr, ptr %467, i64 %.15622743
  %469 = load ptr, ptr %468, align 8, !tbaa !51
  %470 = getelementptr inbounds double, ptr %469, i64 %.18742
  %471 = load double, ptr %470, align 8, !tbaa !20
  %472 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %466, double noundef %471)
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %472, ptr noundef nonnull @.str.19, i32 noundef 15157, ptr noundef nonnull @.str.210)
  %473 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.15622743, i64 noundef %.18742, ptr noundef %1)
  br i1 %473, label %474, label %481

474:                                              ; preds = %458
  %475 = load ptr, ptr %20, align 8, !tbaa !17
  %476 = getelementptr inbounds ptr, ptr %475, i64 %.15622743
  %477 = load ptr, ptr %476, align 8, !tbaa !51
  %478 = getelementptr inbounds double, ptr %477, i64 %.18742
  %479 = load double, ptr %478, align 8, !tbaa !20
  %480 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %479, double noundef 0.000000e+00)
  br label %481

481:                                              ; preds = %474, %458
  %482 = phi i1 [ false, %458 ], [ %480, %474 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %482, ptr noundef nonnull @.str.19, i32 noundef 15158, ptr noundef nonnull @.str.211)
  %483 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.15622743, i64 noundef %.18742, ptr noundef %1)
  br i1 %483, label %484, label %491

484:                                              ; preds = %481
  %485 = load ptr, ptr %20, align 8, !tbaa !17
  %486 = getelementptr inbounds ptr, ptr %485, i64 %.15622743
  %487 = load ptr, ptr %486, align 8, !tbaa !51
  %488 = getelementptr inbounds double, ptr %487, i64 %.18742
  %489 = load double, ptr %488, align 8, !tbaa !20
  %490 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %489, double noundef 0.000000e+00)
  br label %491

491:                                              ; preds = %484, %481
  %492 = phi i1 [ false, %481 ], [ %490, %484 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %492, ptr noundef nonnull @.str.19, i32 noundef 15159, ptr noundef nonnull @.str.212)
  %493 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.15622743, i64 noundef %.18742, ptr noundef %1)
  br i1 %493, label %501, label %494

494:                                              ; preds = %491
  %495 = load ptr, ptr %20, align 8, !tbaa !17
  %496 = getelementptr inbounds ptr, ptr %495, i64 %.15622743
  %497 = load ptr, ptr %496, align 8, !tbaa !51
  %498 = getelementptr inbounds double, ptr %497, i64 %.18742
  %499 = load double, ptr %498, align 8, !tbaa !20
  %500 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %499, double noundef 0.000000e+00)
  br label %501

501:                                              ; preds = %494, %491
  %502 = phi i1 [ false, %491 ], [ %500, %494 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %502, ptr noundef nonnull @.str.19, i32 noundef 15160, ptr noundef nonnull @.str.213)
  %503 = call noundef zeroext i1 @_ZN11alglib_impl12sparseexistsEPKNS_12sparsematrixEllPNS_8ae_stateE(ptr noundef nonnull %6, i64 noundef %.15622743, i64 noundef %.18742, ptr noundef %1)
  br i1 %503, label %511, label %504

504:                                              ; preds = %501
  %505 = load ptr, ptr %20, align 8, !tbaa !17
  %506 = getelementptr inbounds ptr, ptr %505, i64 %.15622743
  %507 = load ptr, ptr %506, align 8, !tbaa !51
  %508 = getelementptr inbounds double, ptr %507, i64 %.18742
  %509 = load double, ptr %508, align 8, !tbaa !20
  %510 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %509, double noundef 0.000000e+00)
  br label %511

511:                                              ; preds = %504, %501
  %512 = phi i1 [ false, %501 ], [ %510, %504 ]
  call void @_ZN11alglib_impl17ae_set_error_flagEPbbPKciS2_(ptr noundef nonnull %0, i1 noundef zeroext %512, ptr noundef nonnull @.str.19, i32 noundef 15161, ptr noundef nonnull @.str.214)
  %513 = add nuw nsw i64 %.18742, 1
  %exitcond779.not = icmp eq i64 %513, %.0626745
  br i1 %exitcond779.not, label %514, label %458, !llvm.loop !55

514:                                              ; preds = %511
  %515 = add nuw nsw i64 %.15622743, 1
  %exitcond780.not = icmp eq i64 %515, %.0625744
  br i1 %exitcond780.not, label %516, label %.preheader673, !llvm.loop !56

516:                                              ; preds = %514
  %517 = load i8, ptr %0, align 1, !tbaa !10, !range !14, !noundef !15
  %518 = trunc nuw i8 %517 to i1
  br i1 %518, label %.loopexit, label %519

519:                                              ; preds = %516
  %520 = icmp eq i64 %.0624, 0
  br i1 %520, label %526, label %521

521:                                              ; preds = %519
  %522 = fmul double %27, 0x3FEE666666666666
  %523 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %522, ptr noundef %1)
  %524 = add nsw i64 %.0624, -1
  %525 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %523, i64 noundef %524, ptr noundef %1)
  br label %26, !llvm.loop !57

526:                                              ; preds = %519
  %527 = add nuw nsw i64 %.0625744, 1
  %exitcond781.not = icmp eq i64 %527, 11
  br i1 %exitcond781.not, label %528, label %23, !llvm.loop !58

528:                                              ; preds = %526
  %529 = add nuw nsw i64 %.0626745, 1
  %exitcond782.not = icmp eq i64 %529, 11
  br i1 %exitcond782.not, label %.loopexit, label %.preheader693, !llvm.loop !59

.loopexit:                                        ; preds = %528, %516, %454, %403, %370, %352, %349, %331, %328, %310, %66
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = distinct !{!7, !6}
!8 = distinct !{!8, !6}
!9 = distinct !{!9, !6}
!10 = !{!11, !11, i64 0}
!11 = !{!"bool", !12, i64 0}
!12 = !{!"omnipotent char", !13, i64 0}
!13 = !{!"Simple C++ TBAA"}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = distinct !{!16, !6}
!17 = !{!12, !12, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"long", !12, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"double", !12, i64 0}
!22 = distinct !{!22, !6}
!23 = distinct !{!23, !6}
!24 = distinct !{!24, !6}
!25 = distinct !{!25, !6}
!26 = distinct !{!26, !6}
!27 = distinct !{!27, !6}
!28 = distinct !{!28, !6}
!29 = distinct !{!29, !6}
!30 = distinct !{!30, !6}
!31 = distinct !{!31, !6}
!32 = distinct !{!32, !6}
!33 = distinct !{!33, !6}
!34 = distinct !{!34, !6}
!35 = distinct !{!35, !6}
!36 = distinct !{!36, !6}
!37 = distinct !{!37, !6}
!38 = distinct !{!38, !6}
!39 = distinct !{!39, !6}
!40 = distinct !{!40, !6}
!41 = distinct !{!41, !6}
!42 = distinct !{!42, !6}
!43 = distinct !{!43, !6}
!44 = distinct !{!44, !6}
!45 = distinct !{!45, !6}
!46 = distinct !{!46, !6}
!47 = distinct !{!47, !6}
!48 = distinct !{!48, !6}
!49 = distinct !{!49, !6}
!50 = distinct !{!50, !6}
!51 = !{!52, !52, i64 0}
!52 = !{!"any pointer", !12, i64 0}
!53 = distinct !{!53, !6}
!54 = distinct !{!54, !6}
!55 = distinct !{!55, !6}
!56 = distinct !{!56, !6}
!57 = distinct !{!57, !6}
!58 = distinct !{!58, !6}
!59 = distinct !{!59, !6}


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