; LLVM IR from venumb/ZSPACE :: cpp/depends/alglib/cpp/tests/test_c.ll (Z12testcqmodelsbPN11alglib_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::convexquadraticmodel" = type { i64, i64, double, double, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, i8, i8, i8 }
%"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.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [43 x i8], align 1

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

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

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

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

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

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

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

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

declare i32 @printf(ptr noundef, ...) #1

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #1

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

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

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

declare noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef) #1

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

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

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

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

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

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

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

declare noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef) #1

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

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

63:                                               ; preds = %676, %2
  %64 = load i64, ptr %16, align 8, !tbaa !11
  %65 = icmp sle i64 %64, 5
  br i1 %65, label %66, label %679

66:                                               ; preds = %63
  store i64 0, ptr %17, align 8, !tbaa !11
  br label %67

67:                                               ; preds = %672, %66
  %68 = load i64, ptr %17, align 8, !tbaa !11
  %69 = load i64, ptr %16, align 8, !tbaa !11
  %70 = mul nsw i64 2, %69
  %71 = icmp sle i64 %68, %70
  br i1 %71, label %72, label %675

72:                                               ; preds = %67
  %73 = load i64, ptr %16, align 8, !tbaa !11
  %74 = load i64, ptr %16, align 8, !tbaa !11
  %75 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %31, i64 noundef %73, i64 noundef %74, ptr noundef %75)
  %76 = load i64, ptr %16, align 8, !tbaa !11
  %77 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %33, i64 noundef %76, ptr noundef %77)
  %78 = load i64, ptr %16, align 8, !tbaa !11
  %79 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %78, ptr noundef %79)
  %80 = load i64, ptr %16, align 8, !tbaa !11
  %81 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %38, i64 noundef %80, ptr noundef %81)
  %82 = load i64, ptr %16, align 8, !tbaa !11
  %83 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %39, i64 noundef %82, ptr noundef %83)
  %84 = load i64, ptr %16, align 8, !tbaa !11
  %85 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %40, i64 noundef %84, ptr noundef %85)
  %86 = load i64, ptr %16, align 8, !tbaa !11
  %87 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %41, i64 noundef %86, ptr noundef %87)
  %88 = load i64, ptr %17, align 8, !tbaa !11
  %89 = icmp sgt i64 %88, 0
  br i1 %89, label %90, label %96

90:                                               ; preds = %72
  %91 = load i64, ptr %17, align 8, !tbaa !11
  %92 = load i64, ptr %16, align 8, !tbaa !11
  %93 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %32, i64 noundef %91, i64 noundef %92, ptr noundef %93)
  %94 = load i64, ptr %17, align 8, !tbaa !11
  %95 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %94, ptr noundef %95)
  br label %96

96:                                               ; preds = %90, %72
  %97 = load ptr, ptr %4, align 8, !tbaa !9
  %98 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %97)
  %99 = fadd double %98, 1.000000e+00
  store double %99, ptr %21, align 8, !tbaa !13
  %100 = load ptr, ptr %4, align 8, !tbaa !9
  %101 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %100)
  %102 = fadd double %101, 1.000000e+00
  store double %102, ptr %22, align 8, !tbaa !13
  %103 = load ptr, ptr %4, align 8, !tbaa !9
  %104 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %103)
  %105 = load ptr, ptr %4, align 8, !tbaa !9
  %106 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %105)
  %107 = sitofp i64 %106 to double
  %108 = fmul double %104, %107
  store double %108, ptr %23, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %109

109:                                              ; preds = %191, %96
  %110 = load i64, ptr %18, align 8, !tbaa !11
  %111 = load i64, ptr %16, align 8, !tbaa !11
  %112 = sub nsw i64 %111, 1
  %113 = icmp sle i64 %110, %112
  br i1 %113, label %114, label %194

114:                                              ; preds = %109
  %115 = load ptr, ptr %4, align 8, !tbaa !9
  %116 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %115)
  %117 = fadd double 1.000000e+00, %116
  %118 = fmul double 1.000000e+01, %117
  %119 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %120 = load ptr, ptr %119, align 8, !tbaa !15
  %121 = load i64, ptr %18, align 8, !tbaa !11
  %122 = getelementptr inbounds ptr, ptr %120, i64 %121
  %123 = load ptr, ptr %122, align 8, !tbaa !9
  %124 = load i64, ptr %18, align 8, !tbaa !11
  %125 = getelementptr inbounds double, ptr %123, i64 %124
  store double %118, ptr %125, align 8, !tbaa !13
  %126 = load ptr, ptr %4, align 8, !tbaa !9
  %127 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %126)
  %128 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %127, double -1.000000e+00)
  %129 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %130 = load ptr, ptr %129, align 8, !tbaa !15
  %131 = load i64, ptr %18, align 8, !tbaa !11
  %132 = getelementptr inbounds double, ptr %130, i64 %131
  store double %128, ptr %132, align 8, !tbaa !13
  %133 = load ptr, ptr %4, align 8, !tbaa !9
  %134 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %133)
  %135 = fadd double %134, 1.000000e+00
  %136 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %137 = load ptr, ptr %136, align 8, !tbaa !15
  %138 = load i64, ptr %18, align 8, !tbaa !11
  %139 = getelementptr inbounds double, ptr %137, i64 %138
  store double %135, ptr %139, align 8, !tbaa !13
  %140 = load i64, ptr %18, align 8, !tbaa !11
  %141 = add nsw i64 %140, 1
  store i64 %141, ptr %20, align 8, !tbaa !11
  br label %142

142:                                              ; preds = %167, %114
  %143 = load i64, ptr %20, align 8, !tbaa !11
  %144 = load i64, ptr %16, align 8, !tbaa !11
  %145 = sub nsw i64 %144, 1
  %146 = icmp sle i64 %143, %145
  br i1 %146, label %147, label %170

147:                                              ; preds = %142
  %148 = load ptr, ptr %4, align 8, !tbaa !9
  %149 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %148)
  %150 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %149, double -5.000000e-02)
  store double %150, ptr %24, align 8, !tbaa !13
  %151 = load double, ptr %24, align 8, !tbaa !13
  %152 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %153 = load ptr, ptr %152, align 8, !tbaa !15
  %154 = load i64, ptr %18, align 8, !tbaa !11
  %155 = getelementptr inbounds ptr, ptr %153, i64 %154
  %156 = load ptr, ptr %155, align 8, !tbaa !9
  %157 = load i64, ptr %20, align 8, !tbaa !11
  %158 = getelementptr inbounds double, ptr %156, i64 %157
  store double %151, ptr %158, align 8, !tbaa !13
  %159 = load double, ptr %24, align 8, !tbaa !13
  %160 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %161 = load ptr, ptr %160, align 8, !tbaa !15
  %162 = load i64, ptr %20, align 8, !tbaa !11
  %163 = getelementptr inbounds ptr, ptr %161, i64 %162
  %164 = load ptr, ptr %163, align 8, !tbaa !9
  %165 = load i64, ptr %18, align 8, !tbaa !11
  %166 = getelementptr inbounds double, ptr %164, i64 %165
  store double %159, ptr %166, align 8, !tbaa !13
  br label %167

167:                                              ; preds = %147
  %168 = load i64, ptr %20, align 8, !tbaa !11
  %169 = add nsw i64 %168, 1
  store i64 %169, ptr %20, align 8, !tbaa !11
  br label %142, !llvm.loop !16

170:                                              ; preds = %142
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %171

171:                                              ; preds = %187, %170
  %172 = load i64, ptr %20, align 8, !tbaa !11
  %173 = load i64, ptr %17, align 8, !tbaa !11
  %174 = sub nsw i64 %173, 1
  %175 = icmp sle i64 %172, %174
  br i1 %175, label %176, label %190

176:                                              ; preds = %171
  %177 = load ptr, ptr %4, align 8, !tbaa !9
  %178 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %177)
  %179 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %178, double -1.000000e+00)
  %180 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %181 = load ptr, ptr %180, align 8, !tbaa !15
  %182 = load i64, ptr %20, align 8, !tbaa !11
  %183 = getelementptr inbounds ptr, ptr %181, i64 %182
  %184 = load ptr, ptr %183, align 8, !tbaa !9
  %185 = load i64, ptr %18, align 8, !tbaa !11
  %186 = getelementptr inbounds double, ptr %184, i64 %185
  store double %179, ptr %186, align 8, !tbaa !13
  br label %187

187:                                              ; preds = %176
  %188 = load i64, ptr %20, align 8, !tbaa !11
  %189 = add nsw i64 %188, 1
  store i64 %189, ptr %20, align 8, !tbaa !11
  br label %171, !llvm.loop !18

190:                                              ; preds = %171
  br label %191

191:                                              ; preds = %190
  %192 = load i64, ptr %18, align 8, !tbaa !11
  %193 = add nsw i64 %192, 1
  store i64 %193, ptr %18, align 8, !tbaa !11
  br label %109, !llvm.loop !19

194:                                              ; preds = %109
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %195

195:                                              ; preds = %208, %194
  %196 = load i64, ptr %18, align 8, !tbaa !11
  %197 = load i64, ptr %17, align 8, !tbaa !11
  %198 = sub nsw i64 %197, 1
  %199 = icmp sle i64 %196, %198
  br i1 %199, label %200, label %211

200:                                              ; preds = %195
  %201 = load ptr, ptr %4, align 8, !tbaa !9
  %202 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %201)
  %203 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %202, double -1.000000e+00)
  %204 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %205 = load ptr, ptr %204, align 8, !tbaa !15
  %206 = load i64, ptr %18, align 8, !tbaa !11
  %207 = getelementptr inbounds double, ptr %205, i64 %206
  store double %203, ptr %207, align 8, !tbaa !13
  br label %208

208:                                              ; preds = %200
  %209 = load i64, ptr %18, align 8, !tbaa !11
  %210 = add nsw i64 %209, 1
  store i64 %210, ptr %18, align 8, !tbaa !11
  br label %195, !llvm.loop !20

211:                                              ; preds = %195
  %212 = load i64, ptr %16, align 8, !tbaa !11
  %213 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %212, ptr noundef %13, ptr noundef %213)
  %214 = load ptr, ptr %4, align 8, !tbaa !9
  %215 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %214)
  %216 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %215, double noundef 5.000000e-01)
  %217 = load double, ptr %21, align 8, !tbaa !13
  %218 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %13, ptr noundef %31, i1 noundef zeroext %216, double noundef %217, ptr noundef %218)
  %219 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %33, ptr noundef %219)
  %220 = load i64, ptr %17, align 8, !tbaa !11
  %221 = load double, ptr %22, align 8, !tbaa !13
  %222 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %13, ptr noundef %32, ptr noundef %34, i64 noundef %220, double noundef %221, ptr noundef %222)
  %223 = load double, ptr %23, align 8, !tbaa !13
  %224 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef %13, ptr noundef %38, double noundef %223, ptr noundef %224)
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %225

225:                                              ; preds = %242, %211
  %226 = load i64, ptr %18, align 8, !tbaa !11
  %227 = load i64, ptr %16, align 8, !tbaa !11
  %228 = sub nsw i64 %227, 1
  %229 = icmp sle i64 %226, %228
  br i1 %229, label %230, label %245

230:                                              ; preds = %225
  %231 = load ptr, ptr %4, align 8, !tbaa !9
  %232 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %231)
  %233 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %232, double -1.000000e+00)
  %234 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %235 = load ptr, ptr %234, align 8, !tbaa !15
  %236 = load i64, ptr %18, align 8, !tbaa !11
  %237 = getelementptr inbounds double, ptr %235, i64 %236
  store double %233, ptr %237, align 8, !tbaa !13
  %238 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %239 = load ptr, ptr %238, align 8, !tbaa !15
  %240 = load i64, ptr %18, align 8, !tbaa !11
  %241 = getelementptr inbounds double, ptr %239, i64 %240
  store double 0.000000e+00, ptr %241, align 8, !tbaa !13
  br label %242

242:                                              ; preds = %230
  %243 = load i64, ptr %18, align 8, !tbaa !11
  %244 = add nsw i64 %243, 1
  store i64 %244, ptr %18, align 8, !tbaa !11
  br label %225, !llvm.loop !21

245:                                              ; preds = %225
  store double 0.000000e+00, ptr %24, align 8, !tbaa !13
  store double 0.000000e+00, ptr %29, align 8, !tbaa !13
  %246 = load i64, ptr %16, align 8, !tbaa !11
  %247 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %43, i64 noundef %246, ptr noundef %247)
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %248

248:                                              ; preds = %258, %245
  %249 = load i64, ptr %18, align 8, !tbaa !11
  %250 = load i64, ptr %16, align 8, !tbaa !11
  %251 = sub nsw i64 %250, 1
  %252 = icmp sle i64 %249, %251
  br i1 %252, label %253, label %261

253:                                              ; preds = %248
  %254 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %43, i32 0, i32 4
  %255 = load ptr, ptr %254, align 8, !tbaa !15
  %256 = load i64, ptr %18, align 8, !tbaa !11
  %257 = getelementptr inbounds double, ptr %255, i64 %256
  store double 0.000000e+00, ptr %257, align 8, !tbaa !13
  br label %258

258:                                              ; preds = %253
  %259 = load i64, ptr %18, align 8, !tbaa !11
  %260 = add nsw i64 %259, 1
  store i64 %260, ptr %18, align 8, !tbaa !11
  br label %248, !llvm.loop !22

261:                                              ; preds = %248
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %262

262:                                              ; preds = %481, %261
  %263 = load i64, ptr %18, align 8, !tbaa !11
  %264 = load i64, ptr %16, align 8, !tbaa !11
  %265 = sub nsw i64 %264, 1
  %266 = icmp sle i64 %263, %265
  br i1 %266, label %267, label %484

267:                                              ; preds = %262
  %268 = load double, ptr %24, align 8, !tbaa !13
  %269 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %270 = load ptr, ptr %269, align 8, !tbaa !15
  %271 = load i64, ptr %18, align 8, !tbaa !11
  %272 = getelementptr inbounds double, ptr %270, i64 %271
  %273 = load double, ptr %272, align 8, !tbaa !13
  %274 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %275 = load ptr, ptr %274, align 8, !tbaa !15
  %276 = load i64, ptr %18, align 8, !tbaa !11
  %277 = getelementptr inbounds double, ptr %275, i64 %276
  %278 = load double, ptr %277, align 8, !tbaa !13
  %279 = call double @llvm.fmuladd.f64(double %273, double %278, double %268)
  store double %279, ptr %24, align 8, !tbaa !13
  %280 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %281 = load ptr, ptr %280, align 8, !tbaa !15
  %282 = load i64, ptr %18, align 8, !tbaa !11
  %283 = getelementptr inbounds double, ptr %281, i64 %282
  %284 = load double, ptr %283, align 8, !tbaa !13
  %285 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %286 = load ptr, ptr %285, align 8, !tbaa !15
  %287 = load i64, ptr %18, align 8, !tbaa !11
  %288 = getelementptr inbounds double, ptr %286, i64 %287
  %289 = load double, ptr %288, align 8, !tbaa !13
  %290 = fadd double %284, %289
  %291 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %292 = load ptr, ptr %291, align 8, !tbaa !15
  %293 = load i64, ptr %18, align 8, !tbaa !11
  %294 = getelementptr inbounds double, ptr %292, i64 %293
  store double %290, ptr %294, align 8, !tbaa !13
  %295 = load double, ptr %24, align 8, !tbaa !13
  %296 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %297 = load ptr, ptr %296, align 8, !tbaa !15
  %298 = load i64, ptr %18, align 8, !tbaa !11
  %299 = getelementptr inbounds double, ptr %297, i64 %298
  %300 = load double, ptr %299, align 8, !tbaa !13
  %301 = load ptr, ptr %4, align 8, !tbaa !9
  %302 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %300, ptr noundef %301)
  %303 = fmul double 5.000000e-01, %302
  %304 = load double, ptr %23, align 8, !tbaa !13
  %305 = fmul double %303, %304
  %306 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %307 = load ptr, ptr %306, align 8, !tbaa !15
  %308 = load i64, ptr %18, align 8, !tbaa !11
  %309 = getelementptr inbounds double, ptr %307, i64 %308
  %310 = load double, ptr %309, align 8, !tbaa !13
  %311 = call double @llvm.fmuladd.f64(double %305, double %310, double %295)
  store double %311, ptr %24, align 8, !tbaa !13
  %312 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %313 = load ptr, ptr %312, align 8, !tbaa !15
  %314 = load i64, ptr %18, align 8, !tbaa !11
  %315 = getelementptr inbounds double, ptr %313, i64 %314
  %316 = load double, ptr %315, align 8, !tbaa !13
  %317 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %318 = load ptr, ptr %317, align 8, !tbaa !15
  %319 = load i64, ptr %18, align 8, !tbaa !11
  %320 = getelementptr inbounds double, ptr %318, i64 %319
  %321 = load double, ptr %320, align 8, !tbaa !13
  %322 = load double, ptr %23, align 8, !tbaa !13
  %323 = fmul double %321, %322
  %324 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %325 = load ptr, ptr %324, align 8, !tbaa !15
  %326 = load i64, ptr %18, align 8, !tbaa !11
  %327 = getelementptr inbounds double, ptr %325, i64 %326
  %328 = load double, ptr %327, align 8, !tbaa !13
  %329 = call double @llvm.fmuladd.f64(double %323, double %328, double %316)
  %330 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %331 = load ptr, ptr %330, align 8, !tbaa !15
  %332 = load i64, ptr %18, align 8, !tbaa !11
  %333 = getelementptr inbounds double, ptr %331, i64 %332
  store double %329, ptr %333, align 8, !tbaa !13
  %334 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %43, i32 0, i32 4
  %335 = load ptr, ptr %334, align 8, !tbaa !15
  %336 = load i64, ptr %18, align 8, !tbaa !11
  %337 = getelementptr inbounds double, ptr %335, i64 %336
  %338 = load double, ptr %337, align 8, !tbaa !13
  %339 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %340 = load ptr, ptr %339, align 8, !tbaa !15
  %341 = load i64, ptr %18, align 8, !tbaa !11
  %342 = getelementptr inbounds double, ptr %340, i64 %341
  %343 = load double, ptr %342, align 8, !tbaa !13
  %344 = load double, ptr %23, align 8, !tbaa !13
  %345 = fmul double %343, %344
  %346 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %347 = load ptr, ptr %346, align 8, !tbaa !15
  %348 = load i64, ptr %18, align 8, !tbaa !11
  %349 = getelementptr inbounds double, ptr %347, i64 %348
  %350 = load double, ptr %349, align 8, !tbaa !13
  %351 = call double @llvm.fmuladd.f64(double %345, double %350, double %338)
  %352 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %43, i32 0, i32 4
  %353 = load ptr, ptr %352, align 8, !tbaa !15
  %354 = load i64, ptr %18, align 8, !tbaa !11
  %355 = getelementptr inbounds double, ptr %353, i64 %354
  store double %351, ptr %355, align 8, !tbaa !13
  %356 = load double, ptr %29, align 8, !tbaa !13
  %357 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %358 = load ptr, ptr %357, align 8, !tbaa !15
  %359 = load i64, ptr %18, align 8, !tbaa !11
  %360 = getelementptr inbounds double, ptr %358, i64 %359
  %361 = load double, ptr %360, align 8, !tbaa !13
  %362 = load ptr, ptr %4, align 8, !tbaa !9
  %363 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %361, ptr noundef %362)
  %364 = fmul double 5.000000e-01, %363
  %365 = load double, ptr %23, align 8, !tbaa !13
  %366 = fmul double %364, %365
  %367 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %368 = load ptr, ptr %367, align 8, !tbaa !15
  %369 = load i64, ptr %18, align 8, !tbaa !11
  %370 = getelementptr inbounds double, ptr %368, i64 %369
  %371 = load double, ptr %370, align 8, !tbaa !13
  %372 = call double @llvm.fmuladd.f64(double %366, double %371, double %356)
  store double %372, ptr %29, align 8, !tbaa !13
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %373

373:                                              ; preds = %477, %267
  %374 = load i64, ptr %20, align 8, !tbaa !11
  %375 = load i64, ptr %16, align 8, !tbaa !11
  %376 = sub nsw i64 %375, 1
  %377 = icmp sle i64 %374, %376
  br i1 %377, label %378, label %480

378:                                              ; preds = %373
  %379 = load double, ptr %24, align 8, !tbaa !13
  %380 = load double, ptr %21, align 8, !tbaa !13
  %381 = fmul double 5.000000e-01, %380
  %382 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %383 = load ptr, ptr %382, align 8, !tbaa !15
  %384 = load i64, ptr %18, align 8, !tbaa !11
  %385 = getelementptr inbounds double, ptr %383, i64 %384
  %386 = load double, ptr %385, align 8, !tbaa !13
  %387 = fmul double %381, %386
  %388 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %389 = load ptr, ptr %388, align 8, !tbaa !15
  %390 = load i64, ptr %18, align 8, !tbaa !11
  %391 = getelementptr inbounds ptr, ptr %389, i64 %390
  %392 = load ptr, ptr %391, align 8, !tbaa !9
  %393 = load i64, ptr %20, align 8, !tbaa !11
  %394 = getelementptr inbounds double, ptr %392, i64 %393
  %395 = load double, ptr %394, align 8, !tbaa !13
  %396 = fmul double %387, %395
  %397 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %398 = load ptr, ptr %397, align 8, !tbaa !15
  %399 = load i64, ptr %20, align 8, !tbaa !11
  %400 = getelementptr inbounds double, ptr %398, i64 %399
  %401 = load double, ptr %400, align 8, !tbaa !13
  %402 = call double @llvm.fmuladd.f64(double %396, double %401, double %379)
  store double %402, ptr %24, align 8, !tbaa !13
  %403 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %404 = load ptr, ptr %403, align 8, !tbaa !15
  %405 = load i64, ptr %18, align 8, !tbaa !11
  %406 = getelementptr inbounds double, ptr %404, i64 %405
  %407 = load double, ptr %406, align 8, !tbaa !13
  %408 = load double, ptr %21, align 8, !tbaa !13
  %409 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %410 = load ptr, ptr %409, align 8, !tbaa !15
  %411 = load i64, ptr %18, align 8, !tbaa !11
  %412 = getelementptr inbounds ptr, ptr %410, i64 %411
  %413 = load ptr, ptr %412, align 8, !tbaa !9
  %414 = load i64, ptr %20, align 8, !tbaa !11
  %415 = getelementptr inbounds double, ptr %413, i64 %414
  %416 = load double, ptr %415, align 8, !tbaa !13
  %417 = fmul double %408, %416
  %418 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %419 = load ptr, ptr %418, align 8, !tbaa !15
  %420 = load i64, ptr %20, align 8, !tbaa !11
  %421 = getelementptr inbounds double, ptr %419, i64 %420
  %422 = load double, ptr %421, align 8, !tbaa !13
  %423 = call double @llvm.fmuladd.f64(double %417, double %422, double %407)
  %424 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %425 = load ptr, ptr %424, align 8, !tbaa !15
  %426 = load i64, ptr %18, align 8, !tbaa !11
  %427 = getelementptr inbounds double, ptr %425, i64 %426
  store double %423, ptr %427, align 8, !tbaa !13
  %428 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %43, i32 0, i32 4
  %429 = load ptr, ptr %428, align 8, !tbaa !15
  %430 = load i64, ptr %18, align 8, !tbaa !11
  %431 = getelementptr inbounds double, ptr %429, i64 %430
  %432 = load double, ptr %431, align 8, !tbaa !13
  %433 = load double, ptr %21, align 8, !tbaa !13
  %434 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %435 = load ptr, ptr %434, align 8, !tbaa !15
  %436 = load i64, ptr %18, align 8, !tbaa !11
  %437 = getelementptr inbounds ptr, ptr %435, i64 %436
  %438 = load ptr, ptr %437, align 8, !tbaa !9
  %439 = load i64, ptr %20, align 8, !tbaa !11
  %440 = getelementptr inbounds double, ptr %438, i64 %439
  %441 = load double, ptr %440, align 8, !tbaa !13
  %442 = fmul double %433, %441
  %443 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %444 = load ptr, ptr %443, align 8, !tbaa !15
  %445 = load i64, ptr %20, align 8, !tbaa !11
  %446 = getelementptr inbounds double, ptr %444, i64 %445
  %447 = load double, ptr %446, align 8, !tbaa !13
  %448 = call double @llvm.fmuladd.f64(double %442, double %447, double %432)
  %449 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %43, i32 0, i32 4
  %450 = load ptr, ptr %449, align 8, !tbaa !15
  %451 = load i64, ptr %18, align 8, !tbaa !11
  %452 = getelementptr inbounds double, ptr %450, i64 %451
  store double %448, ptr %452, align 8, !tbaa !13
  %453 = load double, ptr %29, align 8, !tbaa !13
  %454 = load double, ptr %21, align 8, !tbaa !13
  %455 = fmul double 5.000000e-01, %454
  %456 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %457 = load ptr, ptr %456, align 8, !tbaa !15
  %458 = load i64, ptr %18, align 8, !tbaa !11
  %459 = getelementptr inbounds double, ptr %457, i64 %458
  %460 = load double, ptr %459, align 8, !tbaa !13
  %461 = fmul double %455, %460
  %462 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %463 = load ptr, ptr %462, align 8, !tbaa !15
  %464 = load i64, ptr %18, align 8, !tbaa !11
  %465 = getelementptr inbounds ptr, ptr %463, i64 %464
  %466 = load ptr, ptr %465, align 8, !tbaa !9
  %467 = load i64, ptr %20, align 8, !tbaa !11
  %468 = getelementptr inbounds double, ptr %466, i64 %467
  %469 = load double, ptr %468, align 8, !tbaa !13
  %470 = fmul double %461, %469
  %471 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %472 = load ptr, ptr %471, align 8, !tbaa !15
  %473 = load i64, ptr %20, align 8, !tbaa !11
  %474 = getelementptr inbounds double, ptr %472, i64 %473
  %475 = load double, ptr %474, align 8, !tbaa !13
  %476 = call double @llvm.fmuladd.f64(double %470, double %475, double %453)
  store double %476, ptr %29, align 8, !tbaa !13
  br label %477

477:                                              ; preds = %378
  %478 = load i64, ptr %20, align 8, !tbaa !11
  %479 = add nsw i64 %478, 1
  store i64 %479, ptr %20, align 8, !tbaa !11
  br label %373, !llvm.loop !23

480:                                              ; preds = %373
  br label %481

481:                                              ; preds = %480
  %482 = load i64, ptr %18, align 8, !tbaa !11
  %483 = add nsw i64 %482, 1
  store i64 %483, ptr %18, align 8, !tbaa !11
  br label %262, !llvm.loop !24

484:                                              ; preds = %262
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %485

485:                                              ; preds = %554, %484
  %486 = load i64, ptr %18, align 8, !tbaa !11
  %487 = load i64, ptr %17, align 8, !tbaa !11
  %488 = sub nsw i64 %487, 1
  %489 = icmp sle i64 %486, %488
  br i1 %489, label %490, label %557

490:                                              ; preds = %485
  %491 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %492 = load ptr, ptr %491, align 8, !tbaa !15
  %493 = load i64, ptr %18, align 8, !tbaa !11
  %494 = getelementptr inbounds ptr, ptr %492, i64 %493
  %495 = load ptr, ptr %494, align 8, !tbaa !9
  %496 = getelementptr inbounds double, ptr %495, i64 0
  %497 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %498 = load ptr, ptr %497, align 8, !tbaa !15
  %499 = getelementptr inbounds double, ptr %498, i64 0
  %500 = load i64, ptr %16, align 8, !tbaa !11
  %501 = sub nsw i64 %500, 1
  %502 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %501)
  %503 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %496, i64 noundef 1, ptr noundef %499, i64 noundef 1, i64 noundef %502)
  store double %503, ptr %25, align 8, !tbaa !13
  %504 = load double, ptr %24, align 8, !tbaa !13
  %505 = load double, ptr %22, align 8, !tbaa !13
  %506 = fmul double 5.000000e-01, %505
  %507 = load double, ptr %25, align 8, !tbaa !13
  %508 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %509 = load ptr, ptr %508, align 8, !tbaa !15
  %510 = load i64, ptr %18, align 8, !tbaa !11
  %511 = getelementptr inbounds double, ptr %509, i64 %510
  %512 = load double, ptr %511, align 8, !tbaa !13
  %513 = fsub double %507, %512
  %514 = load ptr, ptr %4, align 8, !tbaa !9
  %515 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %513, ptr noundef %514)
  %516 = call double @llvm.fmuladd.f64(double %506, double %515, double %504)
  store double %516, ptr %24, align 8, !tbaa !13
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %517

517:                                              ; preds = %550, %490
  %518 = load i64, ptr %20, align 8, !tbaa !11
  %519 = load i64, ptr %16, align 8, !tbaa !11
  %520 = sub nsw i64 %519, 1
  %521 = icmp sle i64 %518, %520
  br i1 %521, label %522, label %553

522:                                              ; preds = %517
  %523 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %524 = load ptr, ptr %523, align 8, !tbaa !15
  %525 = load i64, ptr %20, align 8, !tbaa !11
  %526 = getelementptr inbounds double, ptr %524, i64 %525
  %527 = load double, ptr %526, align 8, !tbaa !13
  %528 = load double, ptr %22, align 8, !tbaa !13
  %529 = load double, ptr %25, align 8, !tbaa !13
  %530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %531 = load ptr, ptr %530, align 8, !tbaa !15
  %532 = load i64, ptr %18, align 8, !tbaa !11
  %533 = getelementptr inbounds double, ptr %531, i64 %532
  %534 = load double, ptr %533, align 8, !tbaa !13
  %535 = fsub double %529, %534
  %536 = fmul double %528, %535
  %537 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %538 = load ptr, ptr %537, align 8, !tbaa !15
  %539 = load i64, ptr %18, align 8, !tbaa !11
  %540 = getelementptr inbounds ptr, ptr %538, i64 %539
  %541 = load ptr, ptr %540, align 8, !tbaa !9
  %542 = load i64, ptr %20, align 8, !tbaa !11
  %543 = getelementptr inbounds double, ptr %541, i64 %542
  %544 = load double, ptr %543, align 8, !tbaa !13
  %545 = call double @llvm.fmuladd.f64(double %536, double %544, double %527)
  %546 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %547 = load ptr, ptr %546, align 8, !tbaa !15
  %548 = load i64, ptr %20, align 8, !tbaa !11
  %549 = getelementptr inbounds double, ptr %547, i64 %548
  store double %545, ptr %549, align 8, !tbaa !13
  br label %550

550:                                              ; preds = %522
  %551 = load i64, ptr %20, align 8, !tbaa !11
  %552 = add nsw i64 %551, 1
  store i64 %552, ptr %20, align 8, !tbaa !11
  br label %517, !llvm.loop !25

553:                                              ; preds = %517
  br label %554

554:                                              ; preds = %553
  %555 = load i64, ptr %18, align 8, !tbaa !11
  %556 = add nsw i64 %555, 1
  store i64 %556, ptr %18, align 8, !tbaa !11
  br label %485, !llvm.loop !26

557:                                              ; preds = %485
  %558 = load ptr, ptr %4, align 8, !tbaa !9
  %559 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %558)
  store double %559, ptr %25, align 8, !tbaa !13
  %560 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %561 = trunc i8 %560 to i1
  br i1 %561, label %569, label %562

562:                                              ; preds = %557
  %563 = load double, ptr %24, align 8, !tbaa !13
  %564 = load double, ptr %25, align 8, !tbaa !13
  %565 = fsub double %563, %564
  %566 = load ptr, ptr %4, align 8, !tbaa !9
  %567 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %565, ptr noundef %566)
  %568 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %567, double noundef 0x3D95FD7FE1796496)
  br label %569

569:                                              ; preds = %562, %557
  %570 = phi i1 [ true, %557 ], [ %568, %562 ]
  %571 = zext i1 %570 to i8
  store i8 %571, ptr %6, align 1, !tbaa !5
  %572 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl8cqmevalxEPNS_20convexquadraticmodelEPNS_9ae_vectorEPdS4_PNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %25, ptr noundef %30, ptr noundef %572)
  %573 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %574 = trunc i8 %573 to i1
  br i1 %574, label %582, label %575

575:                                              ; preds = %569
  %576 = load double, ptr %24, align 8, !tbaa !13
  %577 = load double, ptr %25, align 8, !tbaa !13
  %578 = fsub double %576, %577
  %579 = load ptr, ptr %4, align 8, !tbaa !9
  %580 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %578, ptr noundef %579)
  %581 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %580, double noundef 0x3D95FD7FE1796496)
  br label %582

582:                                              ; preds = %575, %569
  %583 = phi i1 [ true, %569 ], [ %581, %575 ]
  %584 = zext i1 %583 to i8
  store i8 %584, ptr %6, align 1, !tbaa !5
  %585 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %586 = trunc i8 %585 to i1
  br i1 %586, label %593, label %587

587:                                              ; preds = %582
  %588 = load double, ptr %30, align 8, !tbaa !13
  %589 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %588, double noundef 0.000000e+00)
  br i1 %589, label %593, label %590

590:                                              ; preds = %587
  %591 = load double, ptr %30, align 8, !tbaa !13
  %592 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %591, double noundef 0x3D95FD7FE1796496)
  br label %593

593:                                              ; preds = %590, %587, %582
  %594 = phi i1 [ true, %587 ], [ true, %582 ], [ %592, %590 ]
  %595 = zext i1 %594 to i8
  store i8 %595, ptr %6, align 1, !tbaa !5
  %596 = load ptr, ptr %4, align 8, !tbaa !9
  %597 = call noundef double @_ZN11alglib_impl9cqmxtadx2EPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %41, ptr noundef %596)
  store double %597, ptr %25, align 8, !tbaa !13
  %598 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %599 = trunc i8 %598 to i1
  br i1 %599, label %607, label %600

600:                                              ; preds = %593
  %601 = load double, ptr %29, align 8, !tbaa !13
  %602 = load double, ptr %25, align 8, !tbaa !13
  %603 = fsub double %601, %602
  %604 = load ptr, ptr %4, align 8, !tbaa !9
  %605 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %603, ptr noundef %604)
  %606 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %605, double noundef 0x3D95FD7FE1796496)
  br label %607

607:                                              ; preds = %600, %593
  %608 = phi i1 [ true, %593 ], [ %606, %600 ]
  %609 = zext i1 %608 to i8
  store i8 %609, ptr %6, align 1, !tbaa !5
  %610 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20cqmgradunconstrainedEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %40, ptr noundef %610)
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %611

611:                                              ; preds = %637, %607
  %612 = load i64, ptr %18, align 8, !tbaa !11
  %613 = load i64, ptr %16, align 8, !tbaa !11
  %614 = sub nsw i64 %613, 1
  %615 = icmp sle i64 %612, %614
  br i1 %615, label %616, label %640

616:                                              ; preds = %611
  %617 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %618 = trunc i8 %617 to i1
  br i1 %618, label %634, label %619

619:                                              ; preds = %616
  %620 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %39, i32 0, i32 4
  %621 = load ptr, ptr %620, align 8, !tbaa !15
  %622 = load i64, ptr %18, align 8, !tbaa !11
  %623 = getelementptr inbounds double, ptr %621, i64 %622
  %624 = load double, ptr %623, align 8, !tbaa !13
  %625 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %40, i32 0, i32 4
  %626 = load ptr, ptr %625, align 8, !tbaa !15
  %627 = load i64, ptr %18, align 8, !tbaa !11
  %628 = getelementptr inbounds double, ptr %626, i64 %627
  %629 = load double, ptr %628, align 8, !tbaa !13
  %630 = fsub double %624, %629
  %631 = load ptr, ptr %4, align 8, !tbaa !9
  %632 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %630, ptr noundef %631)
  %633 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %632, double noundef 0x3D95FD7FE1796496)
  br label %634

634:                                              ; preds = %619, %616
  %635 = phi i1 [ true, %616 ], [ %633, %619 ]
  %636 = zext i1 %635 to i8
  store i8 %636, ptr %6, align 1, !tbaa !5
  br label %637

637:                                              ; preds = %634
  %638 = load i64, ptr %18, align 8, !tbaa !11
  %639 = add nsw i64 %638, 1
  store i64 %639, ptr %18, align 8, !tbaa !11
  br label %611, !llvm.loop !29

640:                                              ; preds = %611
  %641 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl6cqmadxEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %42, ptr noundef %641)
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %642

642:                                              ; preds = %668, %640
  %643 = load i64, ptr %18, align 8, !tbaa !11
  %644 = load i64, ptr %16, align 8, !tbaa !11
  %645 = sub nsw i64 %644, 1
  %646 = icmp sle i64 %643, %645
  br i1 %646, label %647, label %671

647:                                              ; preds = %642
  %648 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %649 = trunc i8 %648 to i1
  br i1 %649, label %665, label %650

650:                                              ; preds = %647
  %651 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %42, i32 0, i32 4
  %652 = load ptr, ptr %651, align 8, !tbaa !15
  %653 = load i64, ptr %18, align 8, !tbaa !11
  %654 = getelementptr inbounds double, ptr %652, i64 %653
  %655 = load double, ptr %654, align 8, !tbaa !13
  %656 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %43, i32 0, i32 4
  %657 = load ptr, ptr %656, align 8, !tbaa !15
  %658 = load i64, ptr %18, align 8, !tbaa !11
  %659 = getelementptr inbounds double, ptr %657, i64 %658
  %660 = load double, ptr %659, align 8, !tbaa !13
  %661 = fsub double %655, %660
  %662 = load ptr, ptr %4, align 8, !tbaa !9
  %663 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %661, ptr noundef %662)
  %664 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %663, double noundef 0x3D95FD7FE1796496)
  br label %665

665:                                              ; preds = %650, %647
  %666 = phi i1 [ true, %647 ], [ %664, %650 ]
  %667 = zext i1 %666 to i8
  store i8 %667, ptr %6, align 1, !tbaa !5
  br label %668

668:                                              ; preds = %665
  %669 = load i64, ptr %18, align 8, !tbaa !11
  %670 = add nsw i64 %669, 1
  store i64 %670, ptr %18, align 8, !tbaa !11
  br label %642, !llvm.loop !30

671:                                              ; preds = %642
  br label %672

672:                                              ; preds = %671
  %673 = load i64, ptr %17, align 8, !tbaa !11
  %674 = add nsw i64 %673, 1
  store i64 %674, ptr %17, align 8, !tbaa !11
  br label %67, !llvm.loop !31

675:                                              ; preds = %67
  br label %676

676:                                              ; preds = %675
  %677 = load i64, ptr %16, align 8, !tbaa !11
  %678 = add nsw i64 %677, 1
  store i64 %678, ptr %16, align 8, !tbaa !11
  br label %63, !llvm.loop !32

679:                                              ; preds = %63
  %680 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %681 = trunc i8 %680 to i1
  br i1 %681, label %685, label %682

682:                                              ; preds = %679
  %683 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %684 = trunc i8 %683 to i1
  br label %685

685:                                              ; preds = %682, %679
  %686 = phi i1 [ true, %679 ], [ %684, %682 ]
  %687 = zext i1 %686 to i8
  store i8 %687, ptr %12, align 1, !tbaa !5
  store i8 0, ptr %7, align 1, !tbaa !5
  store i64 1, ptr %16, align 8, !tbaa !11
  br label %688

688:                                              ; preds = %1016, %685
  %689 = load i64, ptr %16, align 8, !tbaa !11
  %690 = icmp sle i64 %689, 5
  br i1 %690, label %691, label %1019

691:                                              ; preds = %688
  store i64 0, ptr %17, align 8, !tbaa !11
  br label %692

692:                                              ; preds = %1012, %691
  %693 = load i64, ptr %17, align 8, !tbaa !11
  %694 = load i64, ptr %16, align 8, !tbaa !11
  %695 = mul nsw i64 2, %694
  %696 = icmp sle i64 %693, %695
  br i1 %696, label %697, label %1015

697:                                              ; preds = %692
  %698 = load i64, ptr %16, align 8, !tbaa !11
  %699 = load i64, ptr %16, align 8, !tbaa !11
  %700 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %31, i64 noundef %698, i64 noundef %699, ptr noundef %700)
  %701 = load i64, ptr %16, align 8, !tbaa !11
  %702 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %33, i64 noundef %701, ptr noundef %702)
  %703 = load i64, ptr %16, align 8, !tbaa !11
  %704 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %703, ptr noundef %704)
  %705 = load i64, ptr %16, align 8, !tbaa !11
  %706 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %37, i64 noundef %705, ptr noundef %706)
  %707 = load i64, ptr %16, align 8, !tbaa !11
  %708 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %44, i64 noundef %707, ptr noundef %708)
  %709 = load i64, ptr %17, align 8, !tbaa !11
  %710 = icmp sgt i64 %709, 0
  br i1 %710, label %711, label %717

711:                                              ; preds = %697
  %712 = load i64, ptr %17, align 8, !tbaa !11
  %713 = load i64, ptr %16, align 8, !tbaa !11
  %714 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %32, i64 noundef %712, i64 noundef %713, ptr noundef %714)
  %715 = load i64, ptr %17, align 8, !tbaa !11
  %716 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %715, ptr noundef %716)
  br label %717

717:                                              ; preds = %711, %697
  %718 = load ptr, ptr %4, align 8, !tbaa !9
  %719 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %718)
  %720 = fadd double %719, 1.000000e+00
  store double %720, ptr %21, align 8, !tbaa !13
  %721 = load ptr, ptr %4, align 8, !tbaa !9
  %722 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %721)
  %723 = fadd double %722, 1.000000e+00
  store double %723, ptr %22, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %724

724:                                              ; preds = %814, %717
  %725 = load i64, ptr %18, align 8, !tbaa !11
  %726 = load i64, ptr %16, align 8, !tbaa !11
  %727 = sub nsw i64 %726, 1
  %728 = icmp sle i64 %725, %727
  br i1 %728, label %729, label %817

729:                                              ; preds = %724
  %730 = load ptr, ptr %4, align 8, !tbaa !9
  %731 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %730)
  %732 = fadd double 1.000000e+00, %731
  %733 = fmul double 1.000000e+01, %732
  %734 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %735 = load ptr, ptr %734, align 8, !tbaa !15
  %736 = load i64, ptr %18, align 8, !tbaa !11
  %737 = getelementptr inbounds ptr, ptr %735, i64 %736
  %738 = load ptr, ptr %737, align 8, !tbaa !9
  %739 = load i64, ptr %18, align 8, !tbaa !11
  %740 = getelementptr inbounds double, ptr %738, i64 %739
  store double %733, ptr %740, align 8, !tbaa !13
  %741 = load ptr, ptr %4, align 8, !tbaa !9
  %742 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %741)
  %743 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %742, double -1.000000e+00)
  %744 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %745 = load ptr, ptr %744, align 8, !tbaa !15
  %746 = load i64, ptr %18, align 8, !tbaa !11
  %747 = getelementptr inbounds double, ptr %745, i64 %746
  store double %743, ptr %747, align 8, !tbaa !13
  %748 = load ptr, ptr %4, align 8, !tbaa !9
  %749 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %748)
  %750 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %749, double -1.000000e+00)
  %751 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %752 = load ptr, ptr %751, align 8, !tbaa !15
  %753 = load i64, ptr %18, align 8, !tbaa !11
  %754 = getelementptr inbounds double, ptr %752, i64 %753
  store double %750, ptr %754, align 8, !tbaa !13
  %755 = load ptr, ptr %4, align 8, !tbaa !9
  %756 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %755)
  %757 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %756, double noundef 5.000000e-01)
  %758 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %759 = load ptr, ptr %758, align 8, !tbaa !15
  %760 = load i64, ptr %18, align 8, !tbaa !11
  %761 = getelementptr inbounds i8, ptr %759, i64 %760
  %762 = zext i1 %757 to i8
  store i8 %762, ptr %761, align 1, !tbaa !5
  %763 = load i64, ptr %18, align 8, !tbaa !11
  %764 = add nsw i64 %763, 1
  store i64 %764, ptr %20, align 8, !tbaa !11
  br label %765

765:                                              ; preds = %790, %729
  %766 = load i64, ptr %20, align 8, !tbaa !11
  %767 = load i64, ptr %16, align 8, !tbaa !11
  %768 = sub nsw i64 %767, 1
  %769 = icmp sle i64 %766, %768
  br i1 %769, label %770, label %793

770:                                              ; preds = %765
  %771 = load ptr, ptr %4, align 8, !tbaa !9
  %772 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %771)
  %773 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %772, double -5.000000e-02)
  store double %773, ptr %24, align 8, !tbaa !13
  %774 = load double, ptr %24, align 8, !tbaa !13
  %775 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %776 = load ptr, ptr %775, align 8, !tbaa !15
  %777 = load i64, ptr %18, align 8, !tbaa !11
  %778 = getelementptr inbounds ptr, ptr %776, i64 %777
  %779 = load ptr, ptr %778, align 8, !tbaa !9
  %780 = load i64, ptr %20, align 8, !tbaa !11
  %781 = getelementptr inbounds double, ptr %779, i64 %780
  store double %774, ptr %781, align 8, !tbaa !13
  %782 = load double, ptr %24, align 8, !tbaa !13
  %783 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %784 = load ptr, ptr %783, align 8, !tbaa !15
  %785 = load i64, ptr %20, align 8, !tbaa !11
  %786 = getelementptr inbounds ptr, ptr %784, i64 %785
  %787 = load ptr, ptr %786, align 8, !tbaa !9
  %788 = load i64, ptr %18, align 8, !tbaa !11
  %789 = getelementptr inbounds double, ptr %787, i64 %788
  store double %782, ptr %789, align 8, !tbaa !13
  br label %790

790:                                              ; preds = %770
  %791 = load i64, ptr %20, align 8, !tbaa !11
  %792 = add nsw i64 %791, 1
  store i64 %792, ptr %20, align 8, !tbaa !11
  br label %765, !llvm.loop !33

793:                                              ; preds = %765
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %794

794:                                              ; preds = %810, %793
  %795 = load i64, ptr %20, align 8, !tbaa !11
  %796 = load i64, ptr %17, align 8, !tbaa !11
  %797 = sub nsw i64 %796, 1
  %798 = icmp sle i64 %795, %797
  br i1 %798, label %799, label %813

799:                                              ; preds = %794
  %800 = load ptr, ptr %4, align 8, !tbaa !9
  %801 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %800)
  %802 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %801, double -1.000000e+00)
  %803 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %804 = load ptr, ptr %803, align 8, !tbaa !15
  %805 = load i64, ptr %20, align 8, !tbaa !11
  %806 = getelementptr inbounds ptr, ptr %804, i64 %805
  %807 = load ptr, ptr %806, align 8, !tbaa !9
  %808 = load i64, ptr %18, align 8, !tbaa !11
  %809 = getelementptr inbounds double, ptr %807, i64 %808
  store double %802, ptr %809, align 8, !tbaa !13
  br label %810

810:                                              ; preds = %799
  %811 = load i64, ptr %20, align 8, !tbaa !11
  %812 = add nsw i64 %811, 1
  store i64 %812, ptr %20, align 8, !tbaa !11
  br label %794, !llvm.loop !34

813:                                              ; preds = %794
  br label %814

814:                                              ; preds = %813
  %815 = load i64, ptr %18, align 8, !tbaa !11
  %816 = add nsw i64 %815, 1
  store i64 %816, ptr %18, align 8, !tbaa !11
  br label %724, !llvm.loop !35

817:                                              ; preds = %724
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %818

818:                                              ; preds = %831, %817
  %819 = load i64, ptr %18, align 8, !tbaa !11
  %820 = load i64, ptr %17, align 8, !tbaa !11
  %821 = sub nsw i64 %820, 1
  %822 = icmp sle i64 %819, %821
  br i1 %822, label %823, label %834

823:                                              ; preds = %818
  %824 = load ptr, ptr %4, align 8, !tbaa !9
  %825 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %824)
  %826 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %825, double -1.000000e+00)
  %827 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %828 = load ptr, ptr %827, align 8, !tbaa !15
  %829 = load i64, ptr %18, align 8, !tbaa !11
  %830 = getelementptr inbounds double, ptr %828, i64 %829
  store double %826, ptr %830, align 8, !tbaa !13
  br label %831

831:                                              ; preds = %823
  %832 = load i64, ptr %18, align 8, !tbaa !11
  %833 = add nsw i64 %832, 1
  store i64 %833, ptr %18, align 8, !tbaa !11
  br label %818, !llvm.loop !36

834:                                              ; preds = %818
  %835 = load i64, ptr %16, align 8, !tbaa !11
  %836 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %835, ptr noundef %13, ptr noundef %836)
  %837 = load ptr, ptr %4, align 8, !tbaa !9
  %838 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %837)
  %839 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %838, double noundef 5.000000e-01)
  %840 = load double, ptr %21, align 8, !tbaa !13
  %841 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %13, ptr noundef %31, i1 noundef zeroext %839, double noundef %840, ptr noundef %841)
  %842 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %33, ptr noundef %842)
  %843 = load i64, ptr %17, align 8, !tbaa !11
  %844 = load double, ptr %22, align 8, !tbaa !13
  %845 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %13, ptr noundef %32, ptr noundef %34, i64 noundef %843, double noundef %844, ptr noundef %845)
  %846 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %13, ptr noundef %37, ptr noundef %44, ptr noundef %846)
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %847

847:                                              ; preds = %877, %834
  %848 = load i64, ptr %18, align 8, !tbaa !11
  %849 = load i64, ptr %16, align 8, !tbaa !11
  %850 = sub nsw i64 %849, 1
  %851 = icmp sle i64 %848, %850
  br i1 %851, label %852, label %880

852:                                              ; preds = %847
  %853 = load ptr, ptr %4, align 8, !tbaa !9
  %854 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %853)
  %855 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %854, double -1.000000e+00)
  %856 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %857 = load ptr, ptr %856, align 8, !tbaa !15
  %858 = load i64, ptr %18, align 8, !tbaa !11
  %859 = getelementptr inbounds double, ptr %857, i64 %858
  store double %855, ptr %859, align 8, !tbaa !13
  %860 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %861 = load ptr, ptr %860, align 8, !tbaa !15
  %862 = load i64, ptr %18, align 8, !tbaa !11
  %863 = getelementptr inbounds i8, ptr %861, i64 %862
  %864 = load i8, ptr %863, align 1, !tbaa !5, !range !27, !noundef !28
  %865 = trunc i8 %864 to i1
  br i1 %865, label %876, label %866

866:                                              ; preds = %852
  %867 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %868 = load ptr, ptr %867, align 8, !tbaa !15
  %869 = load i64, ptr %18, align 8, !tbaa !11
  %870 = getelementptr inbounds double, ptr %868, i64 %869
  %871 = load double, ptr %870, align 8, !tbaa !13
  %872 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %873 = load ptr, ptr %872, align 8, !tbaa !15
  %874 = load i64, ptr %18, align 8, !tbaa !11
  %875 = getelementptr inbounds double, ptr %873, i64 %874
  store double %871, ptr %875, align 8, !tbaa !13
  br label %876

876:                                              ; preds = %866, %852
  br label %877

877:                                              ; preds = %876
  %878 = load i64, ptr %18, align 8, !tbaa !11
  %879 = add nsw i64 %878, 1
  store i64 %879, ptr %18, align 8, !tbaa !11
  br label %847, !llvm.loop !37

880:                                              ; preds = %847
  store double 0.000000e+00, ptr %24, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %881

881:                                              ; preds = %933, %880
  %882 = load i64, ptr %18, align 8, !tbaa !11
  %883 = load i64, ptr %16, align 8, !tbaa !11
  %884 = sub nsw i64 %883, 1
  %885 = icmp sle i64 %882, %884
  br i1 %885, label %886, label %936

886:                                              ; preds = %881
  %887 = load double, ptr %24, align 8, !tbaa !13
  %888 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %889 = load ptr, ptr %888, align 8, !tbaa !15
  %890 = load i64, ptr %18, align 8, !tbaa !11
  %891 = getelementptr inbounds double, ptr %889, i64 %890
  %892 = load double, ptr %891, align 8, !tbaa !13
  %893 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %894 = load ptr, ptr %893, align 8, !tbaa !15
  %895 = load i64, ptr %18, align 8, !tbaa !11
  %896 = getelementptr inbounds double, ptr %894, i64 %895
  %897 = load double, ptr %896, align 8, !tbaa !13
  %898 = call double @llvm.fmuladd.f64(double %892, double %897, double %887)
  store double %898, ptr %24, align 8, !tbaa !13
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %899

899:                                              ; preds = %929, %886
  %900 = load i64, ptr %20, align 8, !tbaa !11
  %901 = load i64, ptr %16, align 8, !tbaa !11
  %902 = sub nsw i64 %901, 1
  %903 = icmp sle i64 %900, %902
  br i1 %903, label %904, label %932

904:                                              ; preds = %899
  %905 = load double, ptr %24, align 8, !tbaa !13
  %906 = load double, ptr %21, align 8, !tbaa !13
  %907 = fmul double 5.000000e-01, %906
  %908 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %909 = load ptr, ptr %908, align 8, !tbaa !15
  %910 = load i64, ptr %18, align 8, !tbaa !11
  %911 = getelementptr inbounds double, ptr %909, i64 %910
  %912 = load double, ptr %911, align 8, !tbaa !13
  %913 = fmul double %907, %912
  %914 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %915 = load ptr, ptr %914, align 8, !tbaa !15
  %916 = load i64, ptr %18, align 8, !tbaa !11
  %917 = getelementptr inbounds ptr, ptr %915, i64 %916
  %918 = load ptr, ptr %917, align 8, !tbaa !9
  %919 = load i64, ptr %20, align 8, !tbaa !11
  %920 = getelementptr inbounds double, ptr %918, i64 %919
  %921 = load double, ptr %920, align 8, !tbaa !13
  %922 = fmul double %913, %921
  %923 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %924 = load ptr, ptr %923, align 8, !tbaa !15
  %925 = load i64, ptr %20, align 8, !tbaa !11
  %926 = getelementptr inbounds double, ptr %924, i64 %925
  %927 = load double, ptr %926, align 8, !tbaa !13
  %928 = call double @llvm.fmuladd.f64(double %922, double %927, double %905)
  store double %928, ptr %24, align 8, !tbaa !13
  br label %929

929:                                              ; preds = %904
  %930 = load i64, ptr %20, align 8, !tbaa !11
  %931 = add nsw i64 %930, 1
  store i64 %931, ptr %20, align 8, !tbaa !11
  br label %899, !llvm.loop !38

932:                                              ; preds = %899
  br label %933

933:                                              ; preds = %932
  %934 = load i64, ptr %18, align 8, !tbaa !11
  %935 = add nsw i64 %934, 1
  store i64 %935, ptr %18, align 8, !tbaa !11
  br label %881, !llvm.loop !39

936:                                              ; preds = %881
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %937

937:                                              ; preds = %969, %936
  %938 = load i64, ptr %18, align 8, !tbaa !11
  %939 = load i64, ptr %17, align 8, !tbaa !11
  %940 = sub nsw i64 %939, 1
  %941 = icmp sle i64 %938, %940
  br i1 %941, label %942, label %972

942:                                              ; preds = %937
  %943 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %944 = load ptr, ptr %943, align 8, !tbaa !15
  %945 = load i64, ptr %18, align 8, !tbaa !11
  %946 = getelementptr inbounds ptr, ptr %944, i64 %945
  %947 = load ptr, ptr %946, align 8, !tbaa !9
  %948 = getelementptr inbounds double, ptr %947, i64 0
  %949 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %950 = load ptr, ptr %949, align 8, !tbaa !15
  %951 = getelementptr inbounds double, ptr %950, i64 0
  %952 = load i64, ptr %16, align 8, !tbaa !11
  %953 = sub nsw i64 %952, 1
  %954 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %953)
  %955 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %948, i64 noundef 1, ptr noundef %951, i64 noundef 1, i64 noundef %954)
  store double %955, ptr %25, align 8, !tbaa !13
  %956 = load double, ptr %24, align 8, !tbaa !13
  %957 = load double, ptr %22, align 8, !tbaa !13
  %958 = fmul double 5.000000e-01, %957
  %959 = load double, ptr %25, align 8, !tbaa !13
  %960 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %961 = load ptr, ptr %960, align 8, !tbaa !15
  %962 = load i64, ptr %18, align 8, !tbaa !11
  %963 = getelementptr inbounds double, ptr %961, i64 %962
  %964 = load double, ptr %963, align 8, !tbaa !13
  %965 = fsub double %959, %964
  %966 = load ptr, ptr %4, align 8, !tbaa !9
  %967 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %965, ptr noundef %966)
  %968 = call double @llvm.fmuladd.f64(double %958, double %967, double %956)
  store double %968, ptr %24, align 8, !tbaa !13
  br label %969

969:                                              ; preds = %942
  %970 = load i64, ptr %18, align 8, !tbaa !11
  %971 = add nsw i64 %970, 1
  store i64 %971, ptr %18, align 8, !tbaa !11
  br label %937, !llvm.loop !40

972:                                              ; preds = %937
  %973 = load i8, ptr %7, align 1, !tbaa !5, !range !27, !noundef !28
  %974 = trunc i8 %973 to i1
  br i1 %974, label %983, label %975

975:                                              ; preds = %972
  %976 = load double, ptr %24, align 8, !tbaa !13
  %977 = load ptr, ptr %4, align 8, !tbaa !9
  %978 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %37, ptr noundef %977)
  %979 = fsub double %976, %978
  %980 = load ptr, ptr %4, align 8, !tbaa !9
  %981 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %979, ptr noundef %980)
  %982 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %981, double noundef 0x3D95FD7FE1796496)
  br label %983

983:                                              ; preds = %975, %972
  %984 = phi i1 [ true, %972 ], [ %982, %975 ]
  %985 = zext i1 %984 to i8
  store i8 %985, ptr %7, align 1, !tbaa !5
  %986 = load i8, ptr %7, align 1, !tbaa !5, !range !27, !noundef !28
  %987 = trunc i8 %986 to i1
  br i1 %987, label %996, label %988

988:                                              ; preds = %983
  %989 = load double, ptr %24, align 8, !tbaa !13
  %990 = load ptr, ptr %4, align 8, !tbaa !9
  %991 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %990)
  %992 = fsub double %989, %991
  %993 = load ptr, ptr %4, align 8, !tbaa !9
  %994 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %992, ptr noundef %993)
  %995 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %994, double noundef 0x3D95FD7FE1796496)
  br label %996

996:                                              ; preds = %988, %983
  %997 = phi i1 [ true, %983 ], [ %995, %988 ]
  %998 = zext i1 %997 to i8
  store i8 %998, ptr %7, align 1, !tbaa !5
  %999 = load i8, ptr %7, align 1, !tbaa !5, !range !27, !noundef !28
  %1000 = trunc i8 %999 to i1
  br i1 %1000, label %1009, label %1001

1001:                                             ; preds = %996
  %1002 = load double, ptr %24, align 8, !tbaa !13
  %1003 = load ptr, ptr %4, align 8, !tbaa !9
  %1004 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %1003)
  %1005 = fsub double %1002, %1004
  %1006 = load ptr, ptr %4, align 8, !tbaa !9
  %1007 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1005, ptr noundef %1006)
  %1008 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1007, double noundef 0x3D95FD7FE1796496)
  br label %1009

1009:                                             ; preds = %1001, %996
  %1010 = phi i1 [ true, %996 ], [ %1008, %1001 ]
  %1011 = zext i1 %1010 to i8
  store i8 %1011, ptr %7, align 1, !tbaa !5
  br label %1012

1012:                                             ; preds = %1009
  %1013 = load i64, ptr %17, align 8, !tbaa !11
  %1014 = add nsw i64 %1013, 1
  store i64 %1014, ptr %17, align 8, !tbaa !11
  br label %692, !llvm.loop !41

1015:                                             ; preds = %692
  br label %1016

1016:                                             ; preds = %1015
  %1017 = load i64, ptr %16, align 8, !tbaa !11
  %1018 = add nsw i64 %1017, 1
  store i64 %1018, ptr %16, align 8, !tbaa !11
  br label %688, !llvm.loop !42

1019:                                             ; preds = %688
  %1020 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %1021 = trunc i8 %1020 to i1
  br i1 %1021, label %1025, label %1022

1022:                                             ; preds = %1019
  %1023 = load i8, ptr %7, align 1, !tbaa !5, !range !27, !noundef !28
  %1024 = trunc i8 %1023 to i1
  br label %1025

1025:                                             ; preds = %1022, %1019
  %1026 = phi i1 [ true, %1019 ], [ %1024, %1022 ]
  %1027 = zext i1 %1026 to i8
  store i8 %1027, ptr %12, align 1, !tbaa !5
  store i8 0, ptr %8, align 1, !tbaa !5
  store i64 1, ptr %16, align 8, !tbaa !11
  br label %1028

1028:                                             ; preds = %1750, %1025
  %1029 = load i64, ptr %16, align 8, !tbaa !11
  %1030 = icmp sle i64 %1029, 5
  br i1 %1030, label %1031, label %1753

1031:                                             ; preds = %1028
  %1032 = load i64, ptr %16, align 8, !tbaa !11
  %1033 = mul nsw i64 2, %1032
  store i64 %1033, ptr %15, align 8, !tbaa !11
  %1034 = load i64, ptr %16, align 8, !tbaa !11
  %1035 = load i64, ptr %16, align 8, !tbaa !11
  %1036 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %31, i64 noundef %1034, i64 noundef %1035, ptr noundef %1036)
  %1037 = load i64, ptr %16, align 8, !tbaa !11
  %1038 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %33, i64 noundef %1037, ptr noundef %1038)
  %1039 = load i64, ptr %16, align 8, !tbaa !11
  %1040 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %38, i64 noundef %1039, ptr noundef %1040)
  %1041 = load i64, ptr %16, align 8, !tbaa !11
  %1042 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %1041, ptr noundef %1042)
  %1043 = load i64, ptr %16, align 8, !tbaa !11
  %1044 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %37, i64 noundef %1043, ptr noundef %1044)
  %1045 = load i64, ptr %15, align 8, !tbaa !11
  %1046 = load i64, ptr %16, align 8, !tbaa !11
  %1047 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %32, i64 noundef %1045, i64 noundef %1046, ptr noundef %1047)
  %1048 = load i64, ptr %15, align 8, !tbaa !11
  %1049 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %1048, ptr noundef %1049)
  %1050 = load i64, ptr %16, align 8, !tbaa !11
  %1051 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %44, i64 noundef %1050, ptr noundef %1051)
  %1052 = load i64, ptr %16, align 8, !tbaa !11
  %1053 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %41, i64 noundef %1052, ptr noundef %1053)
  store double 0.000000e+00, ptr %21, align 8, !tbaa !13
  store double 0.000000e+00, ptr %22, align 8, !tbaa !13
  store i64 0, ptr %17, align 8, !tbaa !11
  %1054 = load ptr, ptr %4, align 8, !tbaa !9
  %1055 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1054)
  %1056 = fadd double 1.000000e+00, %1055
  store double %1056, ptr %23, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1057

1057:                                             ; preds = %1099, %1031
  %1058 = load i64, ptr %18, align 8, !tbaa !11
  %1059 = load i64, ptr %16, align 8, !tbaa !11
  %1060 = sub nsw i64 %1059, 1
  %1061 = icmp sle i64 %1058, %1060
  br i1 %1061, label %1062, label %1102

1062:                                             ; preds = %1057
  %1063 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %1064 = load ptr, ptr %1063, align 8, !tbaa !15
  %1065 = load i64, ptr %18, align 8, !tbaa !11
  %1066 = getelementptr inbounds i8, ptr %1064, i64 %1065
  store i8 0, ptr %1066, align 1, !tbaa !5
  %1067 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %1068 = load ptr, ptr %1067, align 8, !tbaa !15
  %1069 = load i64, ptr %18, align 8, !tbaa !11
  %1070 = getelementptr inbounds double, ptr %1068, i64 %1069
  store double 1.000000e+00, ptr %1070, align 8, !tbaa !13
  %1071 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %1072 = load ptr, ptr %1071, align 8, !tbaa !15
  %1073 = load i64, ptr %18, align 8, !tbaa !11
  %1074 = getelementptr inbounds double, ptr %1072, i64 %1073
  store double 0.000000e+00, ptr %1074, align 8, !tbaa !13
  %1075 = load ptr, ptr %4, align 8, !tbaa !9
  %1076 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1075)
  %1077 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1076, double -1.000000e+00)
  %1078 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %1079 = load ptr, ptr %1078, align 8, !tbaa !15
  %1080 = load i64, ptr %18, align 8, !tbaa !11
  %1081 = getelementptr inbounds double, ptr %1079, i64 %1080
  store double %1077, ptr %1081, align 8, !tbaa !13
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %1082

1082:                                             ; preds = %1095, %1062
  %1083 = load i64, ptr %20, align 8, !tbaa !11
  %1084 = load i64, ptr %16, align 8, !tbaa !11
  %1085 = sub nsw i64 %1084, 1
  %1086 = icmp sle i64 %1083, %1085
  br i1 %1086, label %1087, label %1098

1087:                                             ; preds = %1082
  %1088 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1089 = load ptr, ptr %1088, align 8, !tbaa !15
  %1090 = load i64, ptr %18, align 8, !tbaa !11
  %1091 = getelementptr inbounds ptr, ptr %1089, i64 %1090
  %1092 = load ptr, ptr %1091, align 8, !tbaa !9
  %1093 = load i64, ptr %20, align 8, !tbaa !11
  %1094 = getelementptr inbounds double, ptr %1092, i64 %1093
  store double 0.000000e+00, ptr %1094, align 8, !tbaa !13
  br label %1095

1095:                                             ; preds = %1087
  %1096 = load i64, ptr %20, align 8, !tbaa !11
  %1097 = add nsw i64 %1096, 1
  store i64 %1097, ptr %20, align 8, !tbaa !11
  br label %1082, !llvm.loop !43

1098:                                             ; preds = %1082
  br label %1099

1099:                                             ; preds = %1098
  %1100 = load i64, ptr %18, align 8, !tbaa !11
  %1101 = add nsw i64 %1100, 1
  store i64 %1101, ptr %18, align 8, !tbaa !11
  br label %1057, !llvm.loop !44

1102:                                             ; preds = %1057
  %1103 = load i64, ptr %16, align 8, !tbaa !11
  %1104 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %1103, ptr noundef %13, ptr noundef %1104)
  %1105 = load double, ptr %23, align 8, !tbaa !13
  %1106 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef %13, ptr noundef %38, double noundef %1105, ptr noundef %1106)
  store i64 1, ptr %19, align 8, !tbaa !11
  br label %1107

1107:                                             ; preds = %1746, %1102
  %1108 = load i64, ptr %19, align 8, !tbaa !11
  %1109 = icmp sle i64 %1108, 100
  br i1 %1109, label %1110, label %1749

1110:                                             ; preds = %1107
  %1111 = load ptr, ptr %4, align 8, !tbaa !9
  %1112 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 8, ptr noundef %1111)
  %1113 = sitofp i64 %1112 to double
  store double %1113, ptr %28, align 8, !tbaa !13
  %1114 = load double, ptr %28, align 8, !tbaa !13
  %1115 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1114, double noundef 0.000000e+00)
  br i1 %1115, label %1116, label %1139

1116:                                             ; preds = %1110
  %1117 = load ptr, ptr %4, align 8, !tbaa !9
  %1118 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1117)
  %1119 = fadd double 1.000000e+00, %1118
  store double %1119, ptr %23, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1120

1120:                                             ; preds = %1133, %1116
  %1121 = load i64, ptr %18, align 8, !tbaa !11
  %1122 = load i64, ptr %16, align 8, !tbaa !11
  %1123 = sub nsw i64 %1122, 1
  %1124 = icmp sle i64 %1121, %1123
  br i1 %1124, label %1125, label %1136

1125:                                             ; preds = %1120
  %1126 = load ptr, ptr %4, align 8, !tbaa !9
  %1127 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1126)
  %1128 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1127, double 1.000000e+00)
  %1129 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %1130 = load ptr, ptr %1129, align 8, !tbaa !15
  %1131 = load i64, ptr %18, align 8, !tbaa !11
  %1132 = getelementptr inbounds double, ptr %1130, i64 %1131
  store double %1128, ptr %1132, align 8, !tbaa !13
  br label %1133

1133:                                             ; preds = %1125
  %1134 = load i64, ptr %18, align 8, !tbaa !11
  %1135 = add nsw i64 %1134, 1
  store i64 %1135, ptr %18, align 8, !tbaa !11
  br label %1120, !llvm.loop !45

1136:                                             ; preds = %1120
  %1137 = load double, ptr %23, align 8, !tbaa !13
  %1138 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef %13, ptr noundef %38, double noundef %1137, ptr noundef %1138)
  br label %1528

1139:                                             ; preds = %1110
  %1140 = load double, ptr %28, align 8, !tbaa !13
  %1141 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1140, double noundef 1.000000e+00)
  br i1 %1141, label %1142, label %1237

1142:                                             ; preds = %1139
  %1143 = load double, ptr %21, align 8, !tbaa !13
  %1144 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1143, double noundef 0.000000e+00)
  br i1 %1144, label %1145, label %1221

1145:                                             ; preds = %1142
  %1146 = load ptr, ptr %4, align 8, !tbaa !9
  %1147 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1146)
  %1148 = fadd double 1.000000e+00, %1147
  store double %1148, ptr %21, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1149

1149:                                             ; preds = %1192, %1145
  %1150 = load i64, ptr %18, align 8, !tbaa !11
  %1151 = load i64, ptr %16, align 8, !tbaa !11
  %1152 = sub nsw i64 %1151, 1
  %1153 = icmp sle i64 %1150, %1152
  br i1 %1153, label %1154, label %1195

1154:                                             ; preds = %1149
  %1155 = load i64, ptr %18, align 8, !tbaa !11
  %1156 = add nsw i64 %1155, 1
  store i64 %1156, ptr %20, align 8, !tbaa !11
  br label %1157

1157:                                             ; preds = %1188, %1154
  %1158 = load i64, ptr %20, align 8, !tbaa !11
  %1159 = load i64, ptr %16, align 8, !tbaa !11
  %1160 = sub nsw i64 %1159, 1
  %1161 = icmp sle i64 %1158, %1160
  br i1 %1161, label %1162, label %1191

1162:                                             ; preds = %1157
  %1163 = load ptr, ptr %4, align 8, !tbaa !9
  %1164 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1163)
  %1165 = call double @llvm.fmuladd.f64(double 2.000000e-01, double %1164, double -1.000000e-01)
  %1166 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1167 = load ptr, ptr %1166, align 8, !tbaa !15
  %1168 = load i64, ptr %18, align 8, !tbaa !11
  %1169 = getelementptr inbounds ptr, ptr %1167, i64 %1168
  %1170 = load ptr, ptr %1169, align 8, !tbaa !9
  %1171 = load i64, ptr %20, align 8, !tbaa !11
  %1172 = getelementptr inbounds double, ptr %1170, i64 %1171
  store double %1165, ptr %1172, align 8, !tbaa !13
  %1173 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1174 = load ptr, ptr %1173, align 8, !tbaa !15
  %1175 = load i64, ptr %18, align 8, !tbaa !11
  %1176 = getelementptr inbounds ptr, ptr %1174, i64 %1175
  %1177 = load ptr, ptr %1176, align 8, !tbaa !9
  %1178 = load i64, ptr %20, align 8, !tbaa !11
  %1179 = getelementptr inbounds double, ptr %1177, i64 %1178
  %1180 = load double, ptr %1179, align 8, !tbaa !13
  %1181 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1182 = load ptr, ptr %1181, align 8, !tbaa !15
  %1183 = load i64, ptr %20, align 8, !tbaa !11
  %1184 = getelementptr inbounds ptr, ptr %1182, i64 %1183
  %1185 = load ptr, ptr %1184, align 8, !tbaa !9
  %1186 = load i64, ptr %18, align 8, !tbaa !11
  %1187 = getelementptr inbounds double, ptr %1185, i64 %1186
  store double %1180, ptr %1187, align 8, !tbaa !13
  br label %1188

1188:                                             ; preds = %1162
  %1189 = load i64, ptr %20, align 8, !tbaa !11
  %1190 = add nsw i64 %1189, 1
  store i64 %1190, ptr %20, align 8, !tbaa !11
  br label %1157, !llvm.loop !46

1191:                                             ; preds = %1157
  br label %1192

1192:                                             ; preds = %1191
  %1193 = load i64, ptr %18, align 8, !tbaa !11
  %1194 = add nsw i64 %1193, 1
  store i64 %1194, ptr %18, align 8, !tbaa !11
  br label %1149, !llvm.loop !47

1195:                                             ; preds = %1149
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1196

1196:                                             ; preds = %1212, %1195
  %1197 = load i64, ptr %18, align 8, !tbaa !11
  %1198 = load i64, ptr %16, align 8, !tbaa !11
  %1199 = sub nsw i64 %1198, 1
  %1200 = icmp sle i64 %1197, %1199
  br i1 %1200, label %1201, label %1215

1201:                                             ; preds = %1196
  %1202 = load ptr, ptr %4, align 8, !tbaa !9
  %1203 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1202)
  %1204 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1203, double 4.000000e+00)
  %1205 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1206 = load ptr, ptr %1205, align 8, !tbaa !15
  %1207 = load i64, ptr %18, align 8, !tbaa !11
  %1208 = getelementptr inbounds ptr, ptr %1206, i64 %1207
  %1209 = load ptr, ptr %1208, align 8, !tbaa !9
  %1210 = load i64, ptr %18, align 8, !tbaa !11
  %1211 = getelementptr inbounds double, ptr %1209, i64 %1210
  store double %1204, ptr %1211, align 8, !tbaa !13
  br label %1212

1212:                                             ; preds = %1201
  %1213 = load i64, ptr %18, align 8, !tbaa !11
  %1214 = add nsw i64 %1213, 1
  store i64 %1214, ptr %18, align 8, !tbaa !11
  br label %1196, !llvm.loop !48

1215:                                             ; preds = %1196
  %1216 = load ptr, ptr %4, align 8, !tbaa !9
  %1217 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1216)
  %1218 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1217, double noundef 5.000000e-01)
  %1219 = load double, ptr %21, align 8, !tbaa !13
  %1220 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %13, ptr noundef %31, i1 noundef zeroext %1218, double noundef %1219, ptr noundef %1220)
  br label %1221

1221:                                             ; preds = %1215, %1142
  store double 0.000000e+00, ptr %23, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1222

1222:                                             ; preds = %1232, %1221
  %1223 = load i64, ptr %18, align 8, !tbaa !11
  %1224 = load i64, ptr %16, align 8, !tbaa !11
  %1225 = sub nsw i64 %1224, 1
  %1226 = icmp sle i64 %1223, %1225
  br i1 %1226, label %1227, label %1235

1227:                                             ; preds = %1222
  %1228 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %1229 = load ptr, ptr %1228, align 8, !tbaa !15
  %1230 = load i64, ptr %18, align 8, !tbaa !11
  %1231 = getelementptr inbounds double, ptr %1229, i64 %1230
  store double 0.000000e+00, ptr %1231, align 8, !tbaa !13
  br label %1232

1232:                                             ; preds = %1227
  %1233 = load i64, ptr %18, align 8, !tbaa !11
  %1234 = add nsw i64 %1233, 1
  store i64 %1234, ptr %18, align 8, !tbaa !11
  br label %1222, !llvm.loop !49

1235:                                             ; preds = %1222
  %1236 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef %13, ptr noundef %38, double noundef 0.000000e+00, ptr noundef %1236)
  br label %1527

1237:                                             ; preds = %1139
  %1238 = load double, ptr %28, align 8, !tbaa !13
  %1239 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1238, double noundef 2.000000e+00)
  br i1 %1239, label %1240, label %1316

1240:                                             ; preds = %1237
  %1241 = load ptr, ptr %4, align 8, !tbaa !9
  %1242 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1241)
  %1243 = fadd double 1.000000e+00, %1242
  store double %1243, ptr %21, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1244

1244:                                             ; preds = %1287, %1240
  %1245 = load i64, ptr %18, align 8, !tbaa !11
  %1246 = load i64, ptr %16, align 8, !tbaa !11
  %1247 = sub nsw i64 %1246, 1
  %1248 = icmp sle i64 %1245, %1247
  br i1 %1248, label %1249, label %1290

1249:                                             ; preds = %1244
  %1250 = load i64, ptr %18, align 8, !tbaa !11
  %1251 = add nsw i64 %1250, 1
  store i64 %1251, ptr %20, align 8, !tbaa !11
  br label %1252

1252:                                             ; preds = %1283, %1249
  %1253 = load i64, ptr %20, align 8, !tbaa !11
  %1254 = load i64, ptr %16, align 8, !tbaa !11
  %1255 = sub nsw i64 %1254, 1
  %1256 = icmp sle i64 %1253, %1255
  br i1 %1256, label %1257, label %1286

1257:                                             ; preds = %1252
  %1258 = load ptr, ptr %4, align 8, !tbaa !9
  %1259 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1258)
  %1260 = call double @llvm.fmuladd.f64(double 2.000000e-01, double %1259, double -1.000000e-01)
  %1261 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1262 = load ptr, ptr %1261, align 8, !tbaa !15
  %1263 = load i64, ptr %18, align 8, !tbaa !11
  %1264 = getelementptr inbounds ptr, ptr %1262, i64 %1263
  %1265 = load ptr, ptr %1264, align 8, !tbaa !9
  %1266 = load i64, ptr %20, align 8, !tbaa !11
  %1267 = getelementptr inbounds double, ptr %1265, i64 %1266
  store double %1260, ptr %1267, align 8, !tbaa !13
  %1268 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1269 = load ptr, ptr %1268, align 8, !tbaa !15
  %1270 = load i64, ptr %18, align 8, !tbaa !11
  %1271 = getelementptr inbounds ptr, ptr %1269, i64 %1270
  %1272 = load ptr, ptr %1271, align 8, !tbaa !9
  %1273 = load i64, ptr %20, align 8, !tbaa !11
  %1274 = getelementptr inbounds double, ptr %1272, i64 %1273
  %1275 = load double, ptr %1274, align 8, !tbaa !13
  %1276 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1277 = load ptr, ptr %1276, align 8, !tbaa !15
  %1278 = load i64, ptr %20, align 8, !tbaa !11
  %1279 = getelementptr inbounds ptr, ptr %1277, i64 %1278
  %1280 = load ptr, ptr %1279, align 8, !tbaa !9
  %1281 = load i64, ptr %18, align 8, !tbaa !11
  %1282 = getelementptr inbounds double, ptr %1280, i64 %1281
  store double %1275, ptr %1282, align 8, !tbaa !13
  br label %1283

1283:                                             ; preds = %1257
  %1284 = load i64, ptr %20, align 8, !tbaa !11
  %1285 = add nsw i64 %1284, 1
  store i64 %1285, ptr %20, align 8, !tbaa !11
  br label %1252, !llvm.loop !50

1286:                                             ; preds = %1252
  br label %1287

1287:                                             ; preds = %1286
  %1288 = load i64, ptr %18, align 8, !tbaa !11
  %1289 = add nsw i64 %1288, 1
  store i64 %1289, ptr %18, align 8, !tbaa !11
  br label %1244, !llvm.loop !51

1290:                                             ; preds = %1244
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1291

1291:                                             ; preds = %1307, %1290
  %1292 = load i64, ptr %18, align 8, !tbaa !11
  %1293 = load i64, ptr %16, align 8, !tbaa !11
  %1294 = sub nsw i64 %1293, 1
  %1295 = icmp sle i64 %1292, %1294
  br i1 %1295, label %1296, label %1310

1296:                                             ; preds = %1291
  %1297 = load ptr, ptr %4, align 8, !tbaa !9
  %1298 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1297)
  %1299 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1298, double 4.000000e+00)
  %1300 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1301 = load ptr, ptr %1300, align 8, !tbaa !15
  %1302 = load i64, ptr %18, align 8, !tbaa !11
  %1303 = getelementptr inbounds ptr, ptr %1301, i64 %1302
  %1304 = load ptr, ptr %1303, align 8, !tbaa !9
  %1305 = load i64, ptr %18, align 8, !tbaa !11
  %1306 = getelementptr inbounds double, ptr %1304, i64 %1305
  store double %1299, ptr %1306, align 8, !tbaa !13
  br label %1307

1307:                                             ; preds = %1296
  %1308 = load i64, ptr %18, align 8, !tbaa !11
  %1309 = add nsw i64 %1308, 1
  store i64 %1309, ptr %18, align 8, !tbaa !11
  br label %1291, !llvm.loop !52

1310:                                             ; preds = %1291
  %1311 = load ptr, ptr %4, align 8, !tbaa !9
  %1312 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1311)
  %1313 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1312, double noundef 5.000000e-01)
  %1314 = load double, ptr %21, align 8, !tbaa !13
  %1315 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %13, ptr noundef %31, i1 noundef zeroext %1313, double noundef %1314, ptr noundef %1315)
  br label %1526

1316:                                             ; preds = %1237
  %1317 = load double, ptr %28, align 8, !tbaa !13
  %1318 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1317, double noundef 3.000000e+00)
  br i1 %1318, label %1319, label %1378

1319:                                             ; preds = %1316
  %1320 = load double, ptr %23, align 8, !tbaa !13
  %1321 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1320, double noundef 0.000000e+00)
  br i1 %1321, label %1322, label %1345

1322:                                             ; preds = %1319
  %1323 = load ptr, ptr %4, align 8, !tbaa !9
  %1324 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1323)
  %1325 = fadd double 1.000000e+00, %1324
  store double %1325, ptr %23, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1326

1326:                                             ; preds = %1339, %1322
  %1327 = load i64, ptr %18, align 8, !tbaa !11
  %1328 = load i64, ptr %16, align 8, !tbaa !11
  %1329 = sub nsw i64 %1328, 1
  %1330 = icmp sle i64 %1327, %1329
  br i1 %1330, label %1331, label %1342

1331:                                             ; preds = %1326
  %1332 = load ptr, ptr %4, align 8, !tbaa !9
  %1333 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1332)
  %1334 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1333, double 1.000000e+00)
  %1335 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %1336 = load ptr, ptr %1335, align 8, !tbaa !15
  %1337 = load i64, ptr %18, align 8, !tbaa !11
  %1338 = getelementptr inbounds double, ptr %1336, i64 %1337
  store double %1334, ptr %1338, align 8, !tbaa !13
  br label %1339

1339:                                             ; preds = %1331
  %1340 = load i64, ptr %18, align 8, !tbaa !11
  %1341 = add nsw i64 %1340, 1
  store i64 %1341, ptr %18, align 8, !tbaa !11
  br label %1326, !llvm.loop !53

1342:                                             ; preds = %1326
  %1343 = load double, ptr %23, align 8, !tbaa !13
  %1344 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef %13, ptr noundef %38, double noundef %1343, ptr noundef %1344)
  br label %1345

1345:                                             ; preds = %1342, %1319
  store double 0.000000e+00, ptr %21, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1346

1346:                                             ; preds = %1369, %1345
  %1347 = load i64, ptr %18, align 8, !tbaa !11
  %1348 = load i64, ptr %16, align 8, !tbaa !11
  %1349 = sub nsw i64 %1348, 1
  %1350 = icmp sle i64 %1347, %1349
  br i1 %1350, label %1351, label %1372

1351:                                             ; preds = %1346
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %1352

1352:                                             ; preds = %1365, %1351
  %1353 = load i64, ptr %20, align 8, !tbaa !11
  %1354 = load i64, ptr %16, align 8, !tbaa !11
  %1355 = sub nsw i64 %1354, 1
  %1356 = icmp sle i64 %1353, %1355
  br i1 %1356, label %1357, label %1368

1357:                                             ; preds = %1352
  %1358 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1359 = load ptr, ptr %1358, align 8, !tbaa !15
  %1360 = load i64, ptr %18, align 8, !tbaa !11
  %1361 = getelementptr inbounds ptr, ptr %1359, i64 %1360
  %1362 = load ptr, ptr %1361, align 8, !tbaa !9
  %1363 = load i64, ptr %20, align 8, !tbaa !11
  %1364 = getelementptr inbounds double, ptr %1362, i64 %1363
  store double 0.000000e+00, ptr %1364, align 8, !tbaa !13
  br label %1365

1365:                                             ; preds = %1357
  %1366 = load i64, ptr %20, align 8, !tbaa !11
  %1367 = add nsw i64 %1366, 1
  store i64 %1367, ptr %20, align 8, !tbaa !11
  br label %1352, !llvm.loop !54

1368:                                             ; preds = %1352
  br label %1369

1369:                                             ; preds = %1368
  %1370 = load i64, ptr %18, align 8, !tbaa !11
  %1371 = add nsw i64 %1370, 1
  store i64 %1371, ptr %18, align 8, !tbaa !11
  br label %1346, !llvm.loop !55

1372:                                             ; preds = %1346
  %1373 = load ptr, ptr %4, align 8, !tbaa !9
  %1374 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1373)
  %1375 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1374, double noundef 5.000000e-01)
  %1376 = load double, ptr %21, align 8, !tbaa !13
  %1377 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %13, ptr noundef %31, i1 noundef zeroext %1375, double noundef %1376, ptr noundef %1377)
  br label %1525

1378:                                             ; preds = %1316
  %1379 = load double, ptr %28, align 8, !tbaa !13
  %1380 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1379, double noundef 4.000000e+00)
  br i1 %1380, label %1381, label %1400

1381:                                             ; preds = %1378
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1382

1382:                                             ; preds = %1395, %1381
  %1383 = load i64, ptr %18, align 8, !tbaa !11
  %1384 = load i64, ptr %16, align 8, !tbaa !11
  %1385 = sub nsw i64 %1384, 1
  %1386 = icmp sle i64 %1383, %1385
  br i1 %1386, label %1387, label %1398

1387:                                             ; preds = %1382
  %1388 = load ptr, ptr %4, align 8, !tbaa !9
  %1389 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1388)
  %1390 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1389, double -1.000000e+00)
  %1391 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %1392 = load ptr, ptr %1391, align 8, !tbaa !15
  %1393 = load i64, ptr %18, align 8, !tbaa !11
  %1394 = getelementptr inbounds double, ptr %1392, i64 %1393
  store double %1390, ptr %1394, align 8, !tbaa !13
  br label %1395

1395:                                             ; preds = %1387
  %1396 = load i64, ptr %18, align 8, !tbaa !11
  %1397 = add nsw i64 %1396, 1
  store i64 %1397, ptr %18, align 8, !tbaa !11
  br label %1382, !llvm.loop !56

1398:                                             ; preds = %1382
  %1399 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %33, ptr noundef %1399)
  br label %1524

1400:                                             ; preds = %1378
  %1401 = load double, ptr %28, align 8, !tbaa !13
  %1402 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1401, double noundef 5.000000e+00)
  br i1 %1402, label %1403, label %1451

1403:                                             ; preds = %1400
  %1404 = load i64, ptr %15, align 8, !tbaa !11
  %1405 = add nsw i64 %1404, 1
  %1406 = load ptr, ptr %4, align 8, !tbaa !9
  %1407 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef %1405, ptr noundef %1406)
  store i64 %1407, ptr %17, align 8, !tbaa !11
  %1408 = load ptr, ptr %4, align 8, !tbaa !9
  %1409 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1408)
  %1410 = fadd double 1.000000e+00, %1409
  store double %1410, ptr %22, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1411

1411:                                             ; preds = %1444, %1403
  %1412 = load i64, ptr %18, align 8, !tbaa !11
  %1413 = load i64, ptr %17, align 8, !tbaa !11
  %1414 = sub nsw i64 %1413, 1
  %1415 = icmp sle i64 %1412, %1414
  br i1 %1415, label %1416, label %1447

1416:                                             ; preds = %1411
  %1417 = load ptr, ptr %4, align 8, !tbaa !9
  %1418 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1417)
  %1419 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1418, double -1.000000e+00)
  %1420 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %1421 = load ptr, ptr %1420, align 8, !tbaa !15
  %1422 = load i64, ptr %18, align 8, !tbaa !11
  %1423 = getelementptr inbounds double, ptr %1421, i64 %1422
  store double %1419, ptr %1423, align 8, !tbaa !13
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %1424

1424:                                             ; preds = %1440, %1416
  %1425 = load i64, ptr %20, align 8, !tbaa !11
  %1426 = load i64, ptr %16, align 8, !tbaa !11
  %1427 = sub nsw i64 %1426, 1
  %1428 = icmp sle i64 %1425, %1427
  br i1 %1428, label %1429, label %1443

1429:                                             ; preds = %1424
  %1430 = load ptr, ptr %4, align 8, !tbaa !9
  %1431 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1430)
  %1432 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1431, double -1.000000e+00)
  %1433 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %1434 = load ptr, ptr %1433, align 8, !tbaa !15
  %1435 = load i64, ptr %18, align 8, !tbaa !11
  %1436 = getelementptr inbounds ptr, ptr %1434, i64 %1435
  %1437 = load ptr, ptr %1436, align 8, !tbaa !9
  %1438 = load i64, ptr %20, align 8, !tbaa !11
  %1439 = getelementptr inbounds double, ptr %1437, i64 %1438
  store double %1432, ptr %1439, align 8, !tbaa !13
  br label %1440

1440:                                             ; preds = %1429
  %1441 = load i64, ptr %20, align 8, !tbaa !11
  %1442 = add nsw i64 %1441, 1
  store i64 %1442, ptr %20, align 8, !tbaa !11
  br label %1424, !llvm.loop !57

1443:                                             ; preds = %1424
  br label %1444

1444:                                             ; preds = %1443
  %1445 = load i64, ptr %18, align 8, !tbaa !11
  %1446 = add nsw i64 %1445, 1
  store i64 %1446, ptr %18, align 8, !tbaa !11
  br label %1411, !llvm.loop !58

1447:                                             ; preds = %1411
  %1448 = load i64, ptr %17, align 8, !tbaa !11
  %1449 = load double, ptr %22, align 8, !tbaa !13
  %1450 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %13, ptr noundef %32, ptr noundef %34, i64 noundef %1448, double noundef %1449, ptr noundef %1450)
  br label %1523

1451:                                             ; preds = %1400
  %1452 = load double, ptr %28, align 8, !tbaa !13
  %1453 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1452, double noundef 6.000000e+00)
  br i1 %1453, label %1454, label %1481

1454:                                             ; preds = %1451
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1455

1455:                                             ; preds = %1476, %1454
  %1456 = load i64, ptr %18, align 8, !tbaa !11
  %1457 = load i64, ptr %16, align 8, !tbaa !11
  %1458 = sub nsw i64 %1457, 1
  %1459 = icmp sle i64 %1456, %1458
  br i1 %1459, label %1460, label %1479

1460:                                             ; preds = %1455
  %1461 = load ptr, ptr %4, align 8, !tbaa !9
  %1462 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1461)
  %1463 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1462, double noundef 5.000000e-01)
  %1464 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %1465 = load ptr, ptr %1464, align 8, !tbaa !15
  %1466 = load i64, ptr %18, align 8, !tbaa !11
  %1467 = getelementptr inbounds i8, ptr %1465, i64 %1466
  %1468 = zext i1 %1463 to i8
  store i8 %1468, ptr %1467, align 1, !tbaa !5
  %1469 = load ptr, ptr %4, align 8, !tbaa !9
  %1470 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1469)
  %1471 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1470, double -1.000000e+00)
  %1472 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %1473 = load ptr, ptr %1472, align 8, !tbaa !15
  %1474 = load i64, ptr %18, align 8, !tbaa !11
  %1475 = getelementptr inbounds double, ptr %1473, i64 %1474
  store double %1471, ptr %1475, align 8, !tbaa !13
  br label %1476

1476:                                             ; preds = %1460
  %1477 = load i64, ptr %18, align 8, !tbaa !11
  %1478 = add nsw i64 %1477, 1
  store i64 %1478, ptr %18, align 8, !tbaa !11
  br label %1455, !llvm.loop !59

1479:                                             ; preds = %1455
  %1480 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %13, ptr noundef %37, ptr noundef %44, ptr noundef %1480)
  br label %1522

1481:                                             ; preds = %1451
  %1482 = load double, ptr %28, align 8, !tbaa !13
  %1483 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1482, double noundef 7.000000e+00)
  br i1 %1483, label %1484, label %1521

1484:                                             ; preds = %1481
  %1485 = load double, ptr %21, align 8, !tbaa !13
  %1486 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1485, double noundef 0.000000e+00)
  br i1 %1486, label %1487, label %1488

1487:                                             ; preds = %1484
  store double 1.000000e+00, ptr %21, align 8, !tbaa !13
  br label %1488

1488:                                             ; preds = %1487, %1484
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1489

1489:                                             ; preds = %1516, %1488
  %1490 = load i64, ptr %18, align 8, !tbaa !11
  %1491 = load i64, ptr %16, align 8, !tbaa !11
  %1492 = sub nsw i64 %1491, 1
  %1493 = icmp sle i64 %1490, %1492
  br i1 %1493, label %1494, label %1519

1494:                                             ; preds = %1489
  %1495 = load ptr, ptr %4, align 8, !tbaa !9
  %1496 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1495)
  %1497 = fadd double 1.000000e+00, %1496
  %1498 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %1499 = load ptr, ptr %1498, align 8, !tbaa !15
  %1500 = load i64, ptr %18, align 8, !tbaa !11
  %1501 = getelementptr inbounds double, ptr %1499, i64 %1500
  store double %1497, ptr %1501, align 8, !tbaa !13
  %1502 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %1503 = load ptr, ptr %1502, align 8, !tbaa !15
  %1504 = load i64, ptr %18, align 8, !tbaa !11
  %1505 = getelementptr inbounds double, ptr %1503, i64 %1504
  %1506 = load double, ptr %1505, align 8, !tbaa !13
  %1507 = load double, ptr %21, align 8, !tbaa !13
  %1508 = fdiv double %1506, %1507
  %1509 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1510 = load ptr, ptr %1509, align 8, !tbaa !15
  %1511 = load i64, ptr %18, align 8, !tbaa !11
  %1512 = getelementptr inbounds ptr, ptr %1510, i64 %1511
  %1513 = load ptr, ptr %1512, align 8, !tbaa !9
  %1514 = load i64, ptr %18, align 8, !tbaa !11
  %1515 = getelementptr inbounds double, ptr %1513, i64 %1514
  store double %1508, ptr %1515, align 8, !tbaa !13
  br label %1516

1516:                                             ; preds = %1494
  %1517 = load i64, ptr %18, align 8, !tbaa !11
  %1518 = add nsw i64 %1517, 1
  store i64 %1518, ptr %18, align 8, !tbaa !11
  br label %1489, !llvm.loop !60

1519:                                             ; preds = %1489
  %1520 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl23cqmrewritedensediagonalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %41, ptr noundef %1520)
  br label %1521

1521:                                             ; preds = %1519, %1481
  br label %1522

1522:                                             ; preds = %1521, %1479
  br label %1523

1523:                                             ; preds = %1522, %1447
  br label %1524

1524:                                             ; preds = %1523, %1398
  br label %1525

1525:                                             ; preds = %1524, %1372
  br label %1526

1526:                                             ; preds = %1525, %1310
  br label %1527

1527:                                             ; preds = %1526, %1235
  br label %1528

1528:                                             ; preds = %1527, %1136
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1529

1529:                                             ; preds = %1559, %1528
  %1530 = load i64, ptr %18, align 8, !tbaa !11
  %1531 = load i64, ptr %16, align 8, !tbaa !11
  %1532 = sub nsw i64 %1531, 1
  %1533 = icmp sle i64 %1530, %1532
  br i1 %1533, label %1534, label %1562

1534:                                             ; preds = %1529
  %1535 = load ptr, ptr %4, align 8, !tbaa !9
  %1536 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1535)
  %1537 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1536, double -1.000000e+00)
  %1538 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1539 = load ptr, ptr %1538, align 8, !tbaa !15
  %1540 = load i64, ptr %18, align 8, !tbaa !11
  %1541 = getelementptr inbounds double, ptr %1539, i64 %1540
  store double %1537, ptr %1541, align 8, !tbaa !13
  %1542 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %1543 = load ptr, ptr %1542, align 8, !tbaa !15
  %1544 = load i64, ptr %18, align 8, !tbaa !11
  %1545 = getelementptr inbounds i8, ptr %1543, i64 %1544
  %1546 = load i8, ptr %1545, align 1, !tbaa !5, !range !27, !noundef !28
  %1547 = trunc i8 %1546 to i1
  br i1 %1547, label %1548, label %1558

1548:                                             ; preds = %1534
  %1549 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %1550 = load ptr, ptr %1549, align 8, !tbaa !15
  %1551 = load i64, ptr %18, align 8, !tbaa !11
  %1552 = getelementptr inbounds double, ptr %1550, i64 %1551
  %1553 = load double, ptr %1552, align 8, !tbaa !13
  %1554 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1555 = load ptr, ptr %1554, align 8, !tbaa !15
  %1556 = load i64, ptr %18, align 8, !tbaa !11
  %1557 = getelementptr inbounds double, ptr %1555, i64 %1556
  store double %1553, ptr %1557, align 8, !tbaa !13
  br label %1558

1558:                                             ; preds = %1548, %1534
  br label %1559

1559:                                             ; preds = %1558
  %1560 = load i64, ptr %18, align 8, !tbaa !11
  %1561 = add nsw i64 %1560, 1
  store i64 %1561, ptr %18, align 8, !tbaa !11
  br label %1529, !llvm.loop !61

1562:                                             ; preds = %1529
  store double 0.000000e+00, ptr %24, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1563

1563:                                             ; preds = %1581, %1562
  %1564 = load i64, ptr %18, align 8, !tbaa !11
  %1565 = load i64, ptr %16, align 8, !tbaa !11
  %1566 = sub nsw i64 %1565, 1
  %1567 = icmp sle i64 %1564, %1566
  br i1 %1567, label %1568, label %1584

1568:                                             ; preds = %1563
  %1569 = load double, ptr %24, align 8, !tbaa !13
  %1570 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1571 = load ptr, ptr %1570, align 8, !tbaa !15
  %1572 = load i64, ptr %18, align 8, !tbaa !11
  %1573 = getelementptr inbounds double, ptr %1571, i64 %1572
  %1574 = load double, ptr %1573, align 8, !tbaa !13
  %1575 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %1576 = load ptr, ptr %1575, align 8, !tbaa !15
  %1577 = load i64, ptr %18, align 8, !tbaa !11
  %1578 = getelementptr inbounds double, ptr %1576, i64 %1577
  %1579 = load double, ptr %1578, align 8, !tbaa !13
  %1580 = call double @llvm.fmuladd.f64(double %1574, double %1579, double %1569)
  store double %1580, ptr %24, align 8, !tbaa !13
  br label %1581

1581:                                             ; preds = %1568
  %1582 = load i64, ptr %18, align 8, !tbaa !11
  %1583 = add nsw i64 %1582, 1
  store i64 %1583, ptr %18, align 8, !tbaa !11
  br label %1563, !llvm.loop !62

1584:                                             ; preds = %1563
  %1585 = load double, ptr %23, align 8, !tbaa !13
  %1586 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1585, double noundef 0.000000e+00)
  br i1 %1586, label %1587, label %1615

1587:                                             ; preds = %1584
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1588

1588:                                             ; preds = %1611, %1587
  %1589 = load i64, ptr %18, align 8, !tbaa !11
  %1590 = load i64, ptr %16, align 8, !tbaa !11
  %1591 = sub nsw i64 %1590, 1
  %1592 = icmp sle i64 %1589, %1591
  br i1 %1592, label %1593, label %1614

1593:                                             ; preds = %1588
  %1594 = load double, ptr %24, align 8, !tbaa !13
  %1595 = load double, ptr %23, align 8, !tbaa !13
  %1596 = fmul double 5.000000e-01, %1595
  %1597 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %1598 = load ptr, ptr %1597, align 8, !tbaa !15
  %1599 = load i64, ptr %18, align 8, !tbaa !11
  %1600 = getelementptr inbounds double, ptr %1598, i64 %1599
  %1601 = load double, ptr %1600, align 8, !tbaa !13
  %1602 = fmul double %1596, %1601
  %1603 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1604 = load ptr, ptr %1603, align 8, !tbaa !15
  %1605 = load i64, ptr %18, align 8, !tbaa !11
  %1606 = getelementptr inbounds double, ptr %1604, i64 %1605
  %1607 = load double, ptr %1606, align 8, !tbaa !13
  %1608 = load ptr, ptr %4, align 8, !tbaa !9
  %1609 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1607, ptr noundef %1608)
  %1610 = call double @llvm.fmuladd.f64(double %1602, double %1609, double %1594)
  store double %1610, ptr %24, align 8, !tbaa !13
  br label %1611

1611:                                             ; preds = %1593
  %1612 = load i64, ptr %18, align 8, !tbaa !11
  %1613 = add nsw i64 %1612, 1
  store i64 %1613, ptr %18, align 8, !tbaa !11
  br label %1588, !llvm.loop !63

1614:                                             ; preds = %1588
  br label %1615

1615:                                             ; preds = %1614, %1584
  %1616 = load double, ptr %21, align 8, !tbaa !13
  %1617 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1616, double noundef 0.000000e+00)
  br i1 %1617, label %1618, label %1663

1618:                                             ; preds = %1615
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1619

1619:                                             ; preds = %1659, %1618
  %1620 = load i64, ptr %18, align 8, !tbaa !11
  %1621 = load i64, ptr %16, align 8, !tbaa !11
  %1622 = sub nsw i64 %1621, 1
  %1623 = icmp sle i64 %1620, %1622
  br i1 %1623, label %1624, label %1662

1624:                                             ; preds = %1619
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %1625

1625:                                             ; preds = %1655, %1624
  %1626 = load i64, ptr %20, align 8, !tbaa !11
  %1627 = load i64, ptr %16, align 8, !tbaa !11
  %1628 = sub nsw i64 %1627, 1
  %1629 = icmp sle i64 %1626, %1628
  br i1 %1629, label %1630, label %1658

1630:                                             ; preds = %1625
  %1631 = load double, ptr %24, align 8, !tbaa !13
  %1632 = load double, ptr %21, align 8, !tbaa !13
  %1633 = fmul double 5.000000e-01, %1632
  %1634 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1635 = load ptr, ptr %1634, align 8, !tbaa !15
  %1636 = load i64, ptr %18, align 8, !tbaa !11
  %1637 = getelementptr inbounds double, ptr %1635, i64 %1636
  %1638 = load double, ptr %1637, align 8, !tbaa !13
  %1639 = fmul double %1633, %1638
  %1640 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1641 = load ptr, ptr %1640, align 8, !tbaa !15
  %1642 = load i64, ptr %18, align 8, !tbaa !11
  %1643 = getelementptr inbounds ptr, ptr %1641, i64 %1642
  %1644 = load ptr, ptr %1643, align 8, !tbaa !9
  %1645 = load i64, ptr %20, align 8, !tbaa !11
  %1646 = getelementptr inbounds double, ptr %1644, i64 %1645
  %1647 = load double, ptr %1646, align 8, !tbaa !13
  %1648 = fmul double %1639, %1647
  %1649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1650 = load ptr, ptr %1649, align 8, !tbaa !15
  %1651 = load i64, ptr %20, align 8, !tbaa !11
  %1652 = getelementptr inbounds double, ptr %1650, i64 %1651
  %1653 = load double, ptr %1652, align 8, !tbaa !13
  %1654 = call double @llvm.fmuladd.f64(double %1648, double %1653, double %1631)
  store double %1654, ptr %24, align 8, !tbaa !13
  br label %1655

1655:                                             ; preds = %1630
  %1656 = load i64, ptr %20, align 8, !tbaa !11
  %1657 = add nsw i64 %1656, 1
  store i64 %1657, ptr %20, align 8, !tbaa !11
  br label %1625, !llvm.loop !64

1658:                                             ; preds = %1625
  br label %1659

1659:                                             ; preds = %1658
  %1660 = load i64, ptr %18, align 8, !tbaa !11
  %1661 = add nsw i64 %1660, 1
  store i64 %1661, ptr %18, align 8, !tbaa !11
  br label %1619, !llvm.loop !65

1662:                                             ; preds = %1619
  br label %1663

1663:                                             ; preds = %1662, %1615
  %1664 = load double, ptr %22, align 8, !tbaa !13
  %1665 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1664, double noundef 0.000000e+00)
  br i1 %1665, label %1666, label %1703

1666:                                             ; preds = %1663
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1667

1667:                                             ; preds = %1699, %1666
  %1668 = load i64, ptr %18, align 8, !tbaa !11
  %1669 = load i64, ptr %17, align 8, !tbaa !11
  %1670 = sub nsw i64 %1669, 1
  %1671 = icmp sle i64 %1668, %1670
  br i1 %1671, label %1672, label %1702

1672:                                             ; preds = %1667
  %1673 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %1674 = load ptr, ptr %1673, align 8, !tbaa !15
  %1675 = load i64, ptr %18, align 8, !tbaa !11
  %1676 = getelementptr inbounds ptr, ptr %1674, i64 %1675
  %1677 = load ptr, ptr %1676, align 8, !tbaa !9
  %1678 = getelementptr inbounds double, ptr %1677, i64 0
  %1679 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1680 = load ptr, ptr %1679, align 8, !tbaa !15
  %1681 = getelementptr inbounds double, ptr %1680, i64 0
  %1682 = load i64, ptr %16, align 8, !tbaa !11
  %1683 = sub nsw i64 %1682, 1
  %1684 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1683)
  %1685 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1678, i64 noundef 1, ptr noundef %1681, i64 noundef 1, i64 noundef %1684)
  store double %1685, ptr %25, align 8, !tbaa !13
  %1686 = load double, ptr %24, align 8, !tbaa !13
  %1687 = load double, ptr %22, align 8, !tbaa !13
  %1688 = fmul double 5.000000e-01, %1687
  %1689 = load double, ptr %25, align 8, !tbaa !13
  %1690 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %1691 = load ptr, ptr %1690, align 8, !tbaa !15
  %1692 = load i64, ptr %18, align 8, !tbaa !11
  %1693 = getelementptr inbounds double, ptr %1691, i64 %1692
  %1694 = load double, ptr %1693, align 8, !tbaa !13
  %1695 = fsub double %1689, %1694
  %1696 = load ptr, ptr %4, align 8, !tbaa !9
  %1697 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1695, ptr noundef %1696)
  %1698 = call double @llvm.fmuladd.f64(double %1688, double %1697, double %1686)
  store double %1698, ptr %24, align 8, !tbaa !13
  br label %1699

1699:                                             ; preds = %1672
  %1700 = load i64, ptr %18, align 8, !tbaa !11
  %1701 = add nsw i64 %1700, 1
  store i64 %1701, ptr %18, align 8, !tbaa !11
  br label %1667, !llvm.loop !66

1702:                                             ; preds = %1667
  br label %1703

1703:                                             ; preds = %1702, %1663
  %1704 = load ptr, ptr %4, align 8, !tbaa !9
  %1705 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %1704)
  store double %1705, ptr %25, align 8, !tbaa !13
  %1706 = load i8, ptr %8, align 1, !tbaa !5, !range !27, !noundef !28
  %1707 = trunc i8 %1706 to i1
  br i1 %1707, label %1715, label %1708

1708:                                             ; preds = %1703
  %1709 = load double, ptr %24, align 8, !tbaa !13
  %1710 = load double, ptr %25, align 8, !tbaa !13
  %1711 = fsub double %1709, %1710
  %1712 = load ptr, ptr %4, align 8, !tbaa !9
  %1713 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1711, ptr noundef %1712)
  %1714 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1713, double noundef 0x3D95FD7FE1796496)
  br label %1715

1715:                                             ; preds = %1708, %1703
  %1716 = phi i1 [ true, %1703 ], [ %1714, %1708 ]
  %1717 = zext i1 %1716 to i8
  store i8 %1717, ptr %8, align 1, !tbaa !5
  %1718 = load ptr, ptr %4, align 8, !tbaa !9
  %1719 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %1718)
  store double %1719, ptr %25, align 8, !tbaa !13
  %1720 = load i8, ptr %8, align 1, !tbaa !5, !range !27, !noundef !28
  %1721 = trunc i8 %1720 to i1
  br i1 %1721, label %1729, label %1722

1722:                                             ; preds = %1715
  %1723 = load double, ptr %24, align 8, !tbaa !13
  %1724 = load double, ptr %25, align 8, !tbaa !13
  %1725 = fsub double %1723, %1724
  %1726 = load ptr, ptr %4, align 8, !tbaa !9
  %1727 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1725, ptr noundef %1726)
  %1728 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1727, double noundef 0x3D95FD7FE1796496)
  br label %1729

1729:                                             ; preds = %1722, %1715
  %1730 = phi i1 [ true, %1715 ], [ %1728, %1722 ]
  %1731 = zext i1 %1730 to i8
  store i8 %1731, ptr %8, align 1, !tbaa !5
  %1732 = load ptr, ptr %4, align 8, !tbaa !9
  %1733 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %1732)
  store double %1733, ptr %25, align 8, !tbaa !13
  %1734 = load i8, ptr %8, align 1, !tbaa !5, !range !27, !noundef !28
  %1735 = trunc i8 %1734 to i1
  br i1 %1735, label %1743, label %1736

1736:                                             ; preds = %1729
  %1737 = load double, ptr %24, align 8, !tbaa !13
  %1738 = load double, ptr %25, align 8, !tbaa !13
  %1739 = fsub double %1737, %1738
  %1740 = load ptr, ptr %4, align 8, !tbaa !9
  %1741 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1739, ptr noundef %1740)
  %1742 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1741, double noundef 0x3D95FD7FE1796496)
  br label %1743

1743:                                             ; preds = %1736, %1729
  %1744 = phi i1 [ true, %1729 ], [ %1742, %1736 ]
  %1745 = zext i1 %1744 to i8
  store i8 %1745, ptr %8, align 1, !tbaa !5
  br label %1746

1746:                                             ; preds = %1743
  %1747 = load i64, ptr %19, align 8, !tbaa !11
  %1748 = add nsw i64 %1747, 1
  store i64 %1748, ptr %19, align 8, !tbaa !11
  br label %1107, !llvm.loop !67

1749:                                             ; preds = %1107
  br label %1750

1750:                                             ; preds = %1749
  %1751 = load i64, ptr %16, align 8, !tbaa !11
  %1752 = add nsw i64 %1751, 1
  store i64 %1752, ptr %16, align 8, !tbaa !11
  br label %1028, !llvm.loop !68

1753:                                             ; preds = %1028
  %1754 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %1755 = trunc i8 %1754 to i1
  br i1 %1755, label %1759, label %1756

1756:                                             ; preds = %1753
  %1757 = load i8, ptr %8, align 1, !tbaa !5, !range !27, !noundef !28
  %1758 = trunc i8 %1757 to i1
  br label %1759

1759:                                             ; preds = %1756, %1753
  %1760 = phi i1 [ true, %1753 ], [ %1758, %1756 ]
  %1761 = zext i1 %1760 to i8
  store i8 %1761, ptr %12, align 1, !tbaa !5
  store i8 0, ptr %9, align 1, !tbaa !5
  store i64 1, ptr %16, align 8, !tbaa !11
  br label %1762

1762:                                             ; preds = %1981, %1759
  %1763 = load i64, ptr %16, align 8, !tbaa !11
  %1764 = icmp sle i64 %1763, 5
  br i1 %1764, label %1765, label %1984

1765:                                             ; preds = %1762
  store i64 0, ptr %17, align 8, !tbaa !11
  br label %1766

1766:                                             ; preds = %1977, %1765
  %1767 = load i64, ptr %17, align 8, !tbaa !11
  %1768 = load i64, ptr %16, align 8, !tbaa !11
  %1769 = mul nsw i64 2, %1768
  %1770 = icmp sle i64 %1767, %1769
  br i1 %1770, label %1771, label %1980

1771:                                             ; preds = %1766
  %1772 = load i64, ptr %16, align 8, !tbaa !11
  %1773 = load i64, ptr %16, align 8, !tbaa !11
  %1774 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %31, i64 noundef %1772, i64 noundef %1773, ptr noundef %1774)
  %1775 = load i64, ptr %16, align 8, !tbaa !11
  %1776 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %33, i64 noundef %1775, ptr noundef %1776)
  %1777 = load i64, ptr %16, align 8, !tbaa !11
  %1778 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %1777, ptr noundef %1778)
  %1779 = load i64, ptr %16, align 8, !tbaa !11
  %1780 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %36, i64 noundef %1779, ptr noundef %1780)
  %1781 = load i64, ptr %17, align 8, !tbaa !11
  %1782 = icmp sgt i64 %1781, 0
  br i1 %1782, label %1783, label %1789

1783:                                             ; preds = %1771
  %1784 = load i64, ptr %17, align 8, !tbaa !11
  %1785 = load i64, ptr %16, align 8, !tbaa !11
  %1786 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %32, i64 noundef %1784, i64 noundef %1785, ptr noundef %1786)
  %1787 = load i64, ptr %17, align 8, !tbaa !11
  %1788 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %1787, ptr noundef %1788)
  br label %1789

1789:                                             ; preds = %1783, %1771
  %1790 = load ptr, ptr %4, align 8, !tbaa !9
  %1791 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1790)
  %1792 = fadd double %1791, 1.000000e+00
  store double %1792, ptr %21, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1793

1793:                                             ; preds = %1848, %1789
  %1794 = load i64, ptr %18, align 8, !tbaa !11
  %1795 = load i64, ptr %16, align 8, !tbaa !11
  %1796 = sub nsw i64 %1795, 1
  %1797 = icmp sle i64 %1794, %1796
  br i1 %1797, label %1798, label %1851

1798:                                             ; preds = %1793
  %1799 = load ptr, ptr %4, align 8, !tbaa !9
  %1800 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1799)
  %1801 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1800, double -1.000000e+00)
  %1802 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %1803 = load ptr, ptr %1802, align 8, !tbaa !15
  %1804 = load i64, ptr %18, align 8, !tbaa !11
  %1805 = getelementptr inbounds double, ptr %1803, i64 %1804
  store double %1801, ptr %1805, align 8, !tbaa !13
  %1806 = load ptr, ptr %4, align 8, !tbaa !9
  %1807 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1806)
  %1808 = fadd double 1.000000e+00, %1807
  %1809 = fmul double 1.000000e+01, %1808
  %1810 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1811 = load ptr, ptr %1810, align 8, !tbaa !15
  %1812 = load i64, ptr %18, align 8, !tbaa !11
  %1813 = getelementptr inbounds ptr, ptr %1811, i64 %1812
  %1814 = load ptr, ptr %1813, align 8, !tbaa !9
  %1815 = load i64, ptr %18, align 8, !tbaa !11
  %1816 = getelementptr inbounds double, ptr %1814, i64 %1815
  store double %1809, ptr %1816, align 8, !tbaa !13
  %1817 = load i64, ptr %18, align 8, !tbaa !11
  %1818 = add nsw i64 %1817, 1
  store i64 %1818, ptr %20, align 8, !tbaa !11
  br label %1819

1819:                                             ; preds = %1844, %1798
  %1820 = load i64, ptr %20, align 8, !tbaa !11
  %1821 = load i64, ptr %16, align 8, !tbaa !11
  %1822 = sub nsw i64 %1821, 1
  %1823 = icmp sle i64 %1820, %1822
  br i1 %1823, label %1824, label %1847

1824:                                             ; preds = %1819
  %1825 = load ptr, ptr %4, align 8, !tbaa !9
  %1826 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1825)
  %1827 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %1826, double -5.000000e-02)
  store double %1827, ptr %24, align 8, !tbaa !13
  %1828 = load double, ptr %24, align 8, !tbaa !13
  %1829 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1830 = load ptr, ptr %1829, align 8, !tbaa !15
  %1831 = load i64, ptr %18, align 8, !tbaa !11
  %1832 = getelementptr inbounds ptr, ptr %1830, i64 %1831
  %1833 = load ptr, ptr %1832, align 8, !tbaa !9
  %1834 = load i64, ptr %20, align 8, !tbaa !11
  %1835 = getelementptr inbounds double, ptr %1833, i64 %1834
  store double %1828, ptr %1835, align 8, !tbaa !13
  %1836 = load double, ptr %24, align 8, !tbaa !13
  %1837 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1838 = load ptr, ptr %1837, align 8, !tbaa !15
  %1839 = load i64, ptr %20, align 8, !tbaa !11
  %1840 = getelementptr inbounds ptr, ptr %1838, i64 %1839
  %1841 = load ptr, ptr %1840, align 8, !tbaa !9
  %1842 = load i64, ptr %18, align 8, !tbaa !11
  %1843 = getelementptr inbounds double, ptr %1841, i64 %1842
  store double %1836, ptr %1843, align 8, !tbaa !13
  br label %1844

1844:                                             ; preds = %1824
  %1845 = load i64, ptr %20, align 8, !tbaa !11
  %1846 = add nsw i64 %1845, 1
  store i64 %1846, ptr %20, align 8, !tbaa !11
  br label %1819, !llvm.loop !69

1847:                                             ; preds = %1819
  br label %1848

1848:                                             ; preds = %1847
  %1849 = load i64, ptr %18, align 8, !tbaa !11
  %1850 = add nsw i64 %1849, 1
  store i64 %1850, ptr %18, align 8, !tbaa !11
  br label %1793, !llvm.loop !70

1851:                                             ; preds = %1793
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1852

1852:                                             ; preds = %1879, %1851
  %1853 = load i64, ptr %18, align 8, !tbaa !11
  %1854 = load i64, ptr %16, align 8, !tbaa !11
  %1855 = sub nsw i64 %1854, 1
  %1856 = icmp sle i64 %1853, %1855
  br i1 %1856, label %1857, label %1882

1857:                                             ; preds = %1852
  %1858 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %1859 = load ptr, ptr %1858, align 8, !tbaa !15
  %1860 = load i64, ptr %18, align 8, !tbaa !11
  %1861 = getelementptr inbounds ptr, ptr %1859, i64 %1860
  %1862 = load ptr, ptr %1861, align 8, !tbaa !9
  %1863 = getelementptr inbounds double, ptr %1862, i64 0
  %1864 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %1865 = load ptr, ptr %1864, align 8, !tbaa !15
  %1866 = getelementptr inbounds double, ptr %1865, i64 0
  %1867 = load i64, ptr %16, align 8, !tbaa !11
  %1868 = sub nsw i64 %1867, 1
  %1869 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1868)
  %1870 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1863, i64 noundef 1, ptr noundef %1866, i64 noundef 1, i64 noundef %1869)
  store double %1870, ptr %24, align 8, !tbaa !13
  %1871 = load double, ptr %21, align 8, !tbaa !13
  %1872 = fneg double %1871
  %1873 = load double, ptr %24, align 8, !tbaa !13
  %1874 = fmul double %1872, %1873
  %1875 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %1876 = load ptr, ptr %1875, align 8, !tbaa !15
  %1877 = load i64, ptr %18, align 8, !tbaa !11
  %1878 = getelementptr inbounds double, ptr %1876, i64 %1877
  store double %1874, ptr %1878, align 8, !tbaa !13
  br label %1879

1879:                                             ; preds = %1857
  %1880 = load i64, ptr %18, align 8, !tbaa !11
  %1881 = add nsw i64 %1880, 1
  store i64 %1881, ptr %18, align 8, !tbaa !11
  br label %1852, !llvm.loop !71

1882:                                             ; preds = %1852
  %1883 = load ptr, ptr %4, align 8, !tbaa !9
  %1884 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1883)
  %1885 = fadd double %1884, 1.000000e+00
  store double %1885, ptr %22, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1886

1886:                                             ; preds = %1930, %1882
  %1887 = load i64, ptr %18, align 8, !tbaa !11
  %1888 = load i64, ptr %17, align 8, !tbaa !11
  %1889 = sub nsw i64 %1888, 1
  %1890 = icmp sle i64 %1887, %1889
  br i1 %1890, label %1891, label %1933

1891:                                             ; preds = %1886
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %1892

1892:                                             ; preds = %1908, %1891
  %1893 = load i64, ptr %20, align 8, !tbaa !11
  %1894 = load i64, ptr %16, align 8, !tbaa !11
  %1895 = sub nsw i64 %1894, 1
  %1896 = icmp sle i64 %1893, %1895
  br i1 %1896, label %1897, label %1911

1897:                                             ; preds = %1892
  %1898 = load ptr, ptr %4, align 8, !tbaa !9
  %1899 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1898)
  %1900 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1899, double -1.000000e+00)
  %1901 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %1902 = load ptr, ptr %1901, align 8, !tbaa !15
  %1903 = load i64, ptr %18, align 8, !tbaa !11
  %1904 = getelementptr inbounds ptr, ptr %1902, i64 %1903
  %1905 = load ptr, ptr %1904, align 8, !tbaa !9
  %1906 = load i64, ptr %20, align 8, !tbaa !11
  %1907 = getelementptr inbounds double, ptr %1905, i64 %1906
  store double %1900, ptr %1907, align 8, !tbaa !13
  br label %1908

1908:                                             ; preds = %1897
  %1909 = load i64, ptr %20, align 8, !tbaa !11
  %1910 = add nsw i64 %1909, 1
  store i64 %1910, ptr %20, align 8, !tbaa !11
  br label %1892, !llvm.loop !72

1911:                                             ; preds = %1892
  %1912 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %1913 = load ptr, ptr %1912, align 8, !tbaa !15
  %1914 = load i64, ptr %18, align 8, !tbaa !11
  %1915 = getelementptr inbounds ptr, ptr %1913, i64 %1914
  %1916 = load ptr, ptr %1915, align 8, !tbaa !9
  %1917 = getelementptr inbounds double, ptr %1916, i64 0
  %1918 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %1919 = load ptr, ptr %1918, align 8, !tbaa !15
  %1920 = getelementptr inbounds double, ptr %1919, i64 0
  %1921 = load i64, ptr %16, align 8, !tbaa !11
  %1922 = sub nsw i64 %1921, 1
  %1923 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1922)
  %1924 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1917, i64 noundef 1, ptr noundef %1920, i64 noundef 1, i64 noundef %1923)
  store double %1924, ptr %24, align 8, !tbaa !13
  %1925 = load double, ptr %24, align 8, !tbaa !13
  %1926 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %1927 = load ptr, ptr %1926, align 8, !tbaa !15
  %1928 = load i64, ptr %18, align 8, !tbaa !11
  %1929 = getelementptr inbounds double, ptr %1927, i64 %1928
  store double %1925, ptr %1929, align 8, !tbaa !13
  br label %1930

1930:                                             ; preds = %1911
  %1931 = load i64, ptr %18, align 8, !tbaa !11
  %1932 = add nsw i64 %1931, 1
  store i64 %1932, ptr %18, align 8, !tbaa !11
  br label %1886, !llvm.loop !73

1933:                                             ; preds = %1886
  %1934 = load i64, ptr %16, align 8, !tbaa !11
  %1935 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %1934, ptr noundef %13, ptr noundef %1935)
  %1936 = load ptr, ptr %4, align 8, !tbaa !9
  %1937 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1936)
  %1938 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1937, double noundef 5.000000e-01)
  %1939 = load double, ptr %21, align 8, !tbaa !13
  %1940 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %13, ptr noundef %31, i1 noundef zeroext %1938, double noundef %1939, ptr noundef %1940)
  %1941 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %33, ptr noundef %1941)
  %1942 = load i64, ptr %17, align 8, !tbaa !11
  %1943 = load double, ptr %22, align 8, !tbaa !13
  %1944 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %13, ptr noundef %32, ptr noundef %34, i64 noundef %1942, double noundef %1943, ptr noundef %1944)
  %1945 = load ptr, ptr %4, align 8, !tbaa !9
  %1946 = call noundef zeroext i1 @_ZN11alglib_impl21cqmconstrainedoptimumEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %1945)
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %1947

1947:                                             ; preds = %1973, %1933
  %1948 = load i64, ptr %18, align 8, !tbaa !11
  %1949 = load i64, ptr %16, align 8, !tbaa !11
  %1950 = sub nsw i64 %1949, 1
  %1951 = icmp sle i64 %1948, %1950
  br i1 %1951, label %1952, label %1976

1952:                                             ; preds = %1947
  %1953 = load i8, ptr %9, align 1, !tbaa !5, !range !27, !noundef !28
  %1954 = trunc i8 %1953 to i1
  br i1 %1954, label %1970, label %1955

1955:                                             ; preds = %1952
  %1956 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %1957 = load ptr, ptr %1956, align 8, !tbaa !15
  %1958 = load i64, ptr %18, align 8, !tbaa !11
  %1959 = getelementptr inbounds double, ptr %1957, i64 %1958
  %1960 = load double, ptr %1959, align 8, !tbaa !13
  %1961 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %1962 = load ptr, ptr %1961, align 8, !tbaa !15
  %1963 = load i64, ptr %18, align 8, !tbaa !11
  %1964 = getelementptr inbounds double, ptr %1962, i64 %1963
  %1965 = load double, ptr %1964, align 8, !tbaa !13
  %1966 = fsub double %1960, %1965
  %1967 = load ptr, ptr %4, align 8, !tbaa !9
  %1968 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1966, ptr noundef %1967)
  %1969 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1968, double noundef 5.000000e-10)
  br label %1970

1970:                                             ; preds = %1955, %1952
  %1971 = phi i1 [ true, %1952 ], [ %1969, %1955 ]
  %1972 = zext i1 %1971 to i8
  store i8 %1972, ptr %9, align 1, !tbaa !5
  br label %1973

1973:                                             ; preds = %1970
  %1974 = load i64, ptr %18, align 8, !tbaa !11
  %1975 = add nsw i64 %1974, 1
  store i64 %1975, ptr %18, align 8, !tbaa !11
  br label %1947, !llvm.loop !74

1976:                                             ; preds = %1947
  br label %1977

1977:                                             ; preds = %1976
  %1978 = load i64, ptr %17, align 8, !tbaa !11
  %1979 = add nsw i64 %1978, 1
  store i64 %1979, ptr %17, align 8, !tbaa !11
  br label %1766, !llvm.loop !75

1980:                                             ; preds = %1766
  br label %1981

1981:                                             ; preds = %1980
  %1982 = load i64, ptr %16, align 8, !tbaa !11
  %1983 = add nsw i64 %1982, 1
  store i64 %1983, ptr %16, align 8, !tbaa !11
  br label %1762, !llvm.loop !76

1984:                                             ; preds = %1762
  %1985 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %1986 = trunc i8 %1985 to i1
  br i1 %1986, label %1990, label %1987

1987:                                             ; preds = %1984
  %1988 = load i8, ptr %9, align 1, !tbaa !5, !range !27, !noundef !28
  %1989 = trunc i8 %1988 to i1
  br label %1990

1990:                                             ; preds = %1987, %1984
  %1991 = phi i1 [ true, %1984 ], [ %1989, %1987 ]
  %1992 = zext i1 %1991 to i8
  store i8 %1992, ptr %12, align 1, !tbaa !5
  store i8 0, ptr %10, align 1, !tbaa !5
  store double 1.000000e-03, ptr %26, align 8, !tbaa !13
  store i64 1, ptr %16, align 8, !tbaa !11
  br label %1993

1993:                                             ; preds = %2253, %1990
  %1994 = load i64, ptr %16, align 8, !tbaa !11
  %1995 = icmp sle i64 %1994, 5
  br i1 %1995, label %1996, label %2256

1996:                                             ; preds = %1993
  store i64 0, ptr %17, align 8, !tbaa !11
  br label %1997

1997:                                             ; preds = %2249, %1996
  %1998 = load i64, ptr %17, align 8, !tbaa !11
  %1999 = load i64, ptr %16, align 8, !tbaa !11
  %2000 = mul nsw i64 2, %1999
  %2001 = icmp sle i64 %1998, %2000
  br i1 %2001, label %2002, label %2252

2002:                                             ; preds = %1997
  %2003 = load i64, ptr %16, align 8, !tbaa !11
  %2004 = load i64, ptr %16, align 8, !tbaa !11
  %2005 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %31, i64 noundef %2003, i64 noundef %2004, ptr noundef %2005)
  %2006 = load i64, ptr %16, align 8, !tbaa !11
  %2007 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %33, i64 noundef %2006, ptr noundef %2007)
  %2008 = load i64, ptr %16, align 8, !tbaa !11
  %2009 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %2008, ptr noundef %2009)
  %2010 = load i64, ptr %16, align 8, !tbaa !11
  %2011 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %37, i64 noundef %2010, ptr noundef %2011)
  %2012 = load i64, ptr %16, align 8, !tbaa !11
  %2013 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %44, i64 noundef %2012, ptr noundef %2013)
  %2014 = load i64, ptr %17, align 8, !tbaa !11
  %2015 = icmp sgt i64 %2014, 0
  br i1 %2015, label %2016, label %2022

2016:                                             ; preds = %2002
  %2017 = load i64, ptr %17, align 8, !tbaa !11
  %2018 = load i64, ptr %16, align 8, !tbaa !11
  %2019 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %32, i64 noundef %2017, i64 noundef %2018, ptr noundef %2019)
  %2020 = load i64, ptr %17, align 8, !tbaa !11
  %2021 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %2020, ptr noundef %2021)
  br label %2022

2022:                                             ; preds = %2016, %2002
  %2023 = load ptr, ptr %4, align 8, !tbaa !9
  %2024 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2023)
  %2025 = fadd double %2024, 1.000000e+00
  store double %2025, ptr %21, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2026

2026:                                             ; preds = %2096, %2022
  %2027 = load i64, ptr %18, align 8, !tbaa !11
  %2028 = load i64, ptr %16, align 8, !tbaa !11
  %2029 = sub nsw i64 %2028, 1
  %2030 = icmp sle i64 %2027, %2029
  br i1 %2030, label %2031, label %2099

2031:                                             ; preds = %2026
  %2032 = load ptr, ptr %4, align 8, !tbaa !9
  %2033 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2032)
  %2034 = fadd double 1.000000e+00, %2033
  %2035 = fmul double 1.000000e+01, %2034
  %2036 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %2037 = load ptr, ptr %2036, align 8, !tbaa !15
  %2038 = load i64, ptr %18, align 8, !tbaa !11
  %2039 = getelementptr inbounds ptr, ptr %2037, i64 %2038
  %2040 = load ptr, ptr %2039, align 8, !tbaa !9
  %2041 = load i64, ptr %18, align 8, !tbaa !11
  %2042 = getelementptr inbounds double, ptr %2040, i64 %2041
  store double %2035, ptr %2042, align 8, !tbaa !13
  %2043 = load ptr, ptr %4, align 8, !tbaa !9
  %2044 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2043)
  %2045 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2044, double -1.000000e+00)
  %2046 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %2047 = load ptr, ptr %2046, align 8, !tbaa !15
  %2048 = load i64, ptr %18, align 8, !tbaa !11
  %2049 = getelementptr inbounds double, ptr %2047, i64 %2048
  store double %2045, ptr %2049, align 8, !tbaa !13
  %2050 = load ptr, ptr %4, align 8, !tbaa !9
  %2051 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2050)
  %2052 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2051, double -1.000000e+00)
  %2053 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %2054 = load ptr, ptr %2053, align 8, !tbaa !15
  %2055 = load i64, ptr %18, align 8, !tbaa !11
  %2056 = getelementptr inbounds double, ptr %2054, i64 %2055
  store double %2052, ptr %2056, align 8, !tbaa !13
  %2057 = load ptr, ptr %4, align 8, !tbaa !9
  %2058 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2057)
  %2059 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2058, double noundef 5.000000e-01)
  %2060 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %2061 = load ptr, ptr %2060, align 8, !tbaa !15
  %2062 = load i64, ptr %18, align 8, !tbaa !11
  %2063 = getelementptr inbounds i8, ptr %2061, i64 %2062
  %2064 = zext i1 %2059 to i8
  store i8 %2064, ptr %2063, align 1, !tbaa !5
  %2065 = load i64, ptr %18, align 8, !tbaa !11
  %2066 = add nsw i64 %2065, 1
  store i64 %2066, ptr %20, align 8, !tbaa !11
  br label %2067

2067:                                             ; preds = %2092, %2031
  %2068 = load i64, ptr %20, align 8, !tbaa !11
  %2069 = load i64, ptr %16, align 8, !tbaa !11
  %2070 = sub nsw i64 %2069, 1
  %2071 = icmp sle i64 %2068, %2070
  br i1 %2071, label %2072, label %2095

2072:                                             ; preds = %2067
  %2073 = load ptr, ptr %4, align 8, !tbaa !9
  %2074 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2073)
  %2075 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %2074, double -5.000000e-02)
  store double %2075, ptr %24, align 8, !tbaa !13
  %2076 = load double, ptr %24, align 8, !tbaa !13
  %2077 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %2078 = load ptr, ptr %2077, align 8, !tbaa !15
  %2079 = load i64, ptr %18, align 8, !tbaa !11
  %2080 = getelementptr inbounds ptr, ptr %2078, i64 %2079
  %2081 = load ptr, ptr %2080, align 8, !tbaa !9
  %2082 = load i64, ptr %20, align 8, !tbaa !11
  %2083 = getelementptr inbounds double, ptr %2081, i64 %2082
  store double %2076, ptr %2083, align 8, !tbaa !13
  %2084 = load double, ptr %24, align 8, !tbaa !13
  %2085 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %31, i32 0, i32 6
  %2086 = load ptr, ptr %2085, align 8, !tbaa !15
  %2087 = load i64, ptr %20, align 8, !tbaa !11
  %2088 = getelementptr inbounds ptr, ptr %2086, i64 %2087
  %2089 = load ptr, ptr %2088, align 8, !tbaa !9
  %2090 = load i64, ptr %18, align 8, !tbaa !11
  %2091 = getelementptr inbounds double, ptr %2089, i64 %2090
  store double %2084, ptr %2091, align 8, !tbaa !13
  br label %2092

2092:                                             ; preds = %2072
  %2093 = load i64, ptr %20, align 8, !tbaa !11
  %2094 = add nsw i64 %2093, 1
  store i64 %2094, ptr %20, align 8, !tbaa !11
  br label %2067, !llvm.loop !77

2095:                                             ; preds = %2067
  br label %2096

2096:                                             ; preds = %2095
  %2097 = load i64, ptr %18, align 8, !tbaa !11
  %2098 = add nsw i64 %2097, 1
  store i64 %2098, ptr %18, align 8, !tbaa !11
  br label %2026, !llvm.loop !78

2099:                                             ; preds = %2026
  %2100 = load ptr, ptr %4, align 8, !tbaa !9
  %2101 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2100)
  %2102 = fadd double %2101, 1.000000e+00
  store double %2102, ptr %22, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2103

2103:                                             ; preds = %2136, %2099
  %2104 = load i64, ptr %18, align 8, !tbaa !11
  %2105 = load i64, ptr %17, align 8, !tbaa !11
  %2106 = sub nsw i64 %2105, 1
  %2107 = icmp sle i64 %2104, %2106
  br i1 %2107, label %2108, label %2139

2108:                                             ; preds = %2103
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %2109

2109:                                             ; preds = %2125, %2108
  %2110 = load i64, ptr %20, align 8, !tbaa !11
  %2111 = load i64, ptr %16, align 8, !tbaa !11
  %2112 = sub nsw i64 %2111, 1
  %2113 = icmp sle i64 %2110, %2112
  br i1 %2113, label %2114, label %2128

2114:                                             ; preds = %2109
  %2115 = load ptr, ptr %4, align 8, !tbaa !9
  %2116 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2115)
  %2117 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2116, double -1.000000e+00)
  %2118 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %2119 = load ptr, ptr %2118, align 8, !tbaa !15
  %2120 = load i64, ptr %18, align 8, !tbaa !11
  %2121 = getelementptr inbounds ptr, ptr %2119, i64 %2120
  %2122 = load ptr, ptr %2121, align 8, !tbaa !9
  %2123 = load i64, ptr %20, align 8, !tbaa !11
  %2124 = getelementptr inbounds double, ptr %2122, i64 %2123
  store double %2117, ptr %2124, align 8, !tbaa !13
  br label %2125

2125:                                             ; preds = %2114
  %2126 = load i64, ptr %20, align 8, !tbaa !11
  %2127 = add nsw i64 %2126, 1
  store i64 %2127, ptr %20, align 8, !tbaa !11
  br label %2109, !llvm.loop !79

2128:                                             ; preds = %2109
  %2129 = load ptr, ptr %4, align 8, !tbaa !9
  %2130 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2129)
  %2131 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2130, double -1.000000e+00)
  %2132 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %2133 = load ptr, ptr %2132, align 8, !tbaa !15
  %2134 = load i64, ptr %18, align 8, !tbaa !11
  %2135 = getelementptr inbounds double, ptr %2133, i64 %2134
  store double %2131, ptr %2135, align 8, !tbaa !13
  br label %2136

2136:                                             ; preds = %2128
  %2137 = load i64, ptr %18, align 8, !tbaa !11
  %2138 = add nsw i64 %2137, 1
  store i64 %2138, ptr %18, align 8, !tbaa !11
  br label %2103, !llvm.loop !80

2139:                                             ; preds = %2103
  %2140 = load i64, ptr %16, align 8, !tbaa !11
  %2141 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %2140, ptr noundef %13, ptr noundef %2141)
  %2142 = load ptr, ptr %4, align 8, !tbaa !9
  %2143 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2142)
  %2144 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2143, double noundef 5.000000e-01)
  %2145 = load double, ptr %21, align 8, !tbaa !13
  %2146 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef %13, ptr noundef %31, i1 noundef zeroext %2144, double noundef %2145, ptr noundef %2146)
  %2147 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %33, ptr noundef %2147)
  %2148 = load i64, ptr %17, align 8, !tbaa !11
  %2149 = load double, ptr %22, align 8, !tbaa !13
  %2150 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %13, ptr noundef %32, ptr noundef %34, i64 noundef %2148, double noundef %2149, ptr noundef %2150)
  %2151 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %13, ptr noundef %37, ptr noundef %44, ptr noundef %2151)
  %2152 = load ptr, ptr %4, align 8, !tbaa !9
  %2153 = call noundef zeroext i1 @_ZN11alglib_impl21cqmconstrainedoptimumEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2152)
  br i1 %2153, label %2154, label %2247

2154:                                             ; preds = %2139
  %2155 = load ptr, ptr %4, align 8, !tbaa !9
  %2156 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2155)
  store double %2156, ptr %27, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2157

2157:                                             ; preds = %2243, %2154
  %2158 = load i64, ptr %18, align 8, !tbaa !11
  %2159 = load i64, ptr %16, align 8, !tbaa !11
  %2160 = sub nsw i64 %2159, 1
  %2161 = icmp sle i64 %2158, %2160
  br i1 %2161, label %2162, label %2246

2162:                                             ; preds = %2157
  %2163 = load i8, ptr %10, align 1, !tbaa !5, !range !27, !noundef !28
  %2164 = trunc i8 %2163 to i1
  br i1 %2164, label %2186, label %2165

2165:                                             ; preds = %2162
  %2166 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %2167 = load ptr, ptr %2166, align 8, !tbaa !15
  %2168 = load i64, ptr %18, align 8, !tbaa !11
  %2169 = getelementptr inbounds i8, ptr %2167, i64 %2168
  %2170 = load i8, ptr %2169, align 1, !tbaa !5, !range !27, !noundef !28
  %2171 = trunc i8 %2170 to i1
  br i1 %2171, label %2172, label %2184

2172:                                             ; preds = %2165
  %2173 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2174 = load ptr, ptr %2173, align 8, !tbaa !15
  %2175 = load i64, ptr %18, align 8, !tbaa !11
  %2176 = getelementptr inbounds double, ptr %2174, i64 %2175
  %2177 = load double, ptr %2176, align 8, !tbaa !13
  %2178 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %37, i32 0, i32 4
  %2179 = load ptr, ptr %2178, align 8, !tbaa !15
  %2180 = load i64, ptr %18, align 8, !tbaa !11
  %2181 = getelementptr inbounds double, ptr %2179, i64 %2180
  %2182 = load double, ptr %2181, align 8, !tbaa !13
  %2183 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2177, double noundef %2182)
  br label %2184

2184:                                             ; preds = %2172, %2165
  %2185 = phi i1 [ false, %2165 ], [ %2183, %2172 ]
  br label %2186

2186:                                             ; preds = %2184, %2162
  %2187 = phi i1 [ true, %2162 ], [ %2185, %2184 ]
  %2188 = zext i1 %2187 to i8
  store i8 %2188, ptr %10, align 1, !tbaa !5
  %2189 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %2190 = load ptr, ptr %2189, align 8, !tbaa !15
  %2191 = load i64, ptr %18, align 8, !tbaa !11
  %2192 = getelementptr inbounds i8, ptr %2190, i64 %2191
  %2193 = load i8, ptr %2192, align 1, !tbaa !5, !range !27, !noundef !28
  %2194 = trunc i8 %2193 to i1
  br i1 %2194, label %2242, label %2195

2195:                                             ; preds = %2186
  %2196 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2197 = load ptr, ptr %2196, align 8, !tbaa !15
  %2198 = load i64, ptr %18, align 8, !tbaa !11
  %2199 = getelementptr inbounds double, ptr %2197, i64 %2198
  %2200 = load double, ptr %2199, align 8, !tbaa !13
  store double %2200, ptr %24, align 8, !tbaa !13
  %2201 = load double, ptr %24, align 8, !tbaa !13
  %2202 = load double, ptr %26, align 8, !tbaa !13
  %2203 = fadd double %2201, %2202
  %2204 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2205 = load ptr, ptr %2204, align 8, !tbaa !15
  %2206 = load i64, ptr %18, align 8, !tbaa !11
  %2207 = getelementptr inbounds double, ptr %2205, i64 %2206
  store double %2203, ptr %2207, align 8, !tbaa !13
  %2208 = load ptr, ptr %4, align 8, !tbaa !9
  %2209 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2208)
  store double %2209, ptr %25, align 8, !tbaa !13
  %2210 = load i8, ptr %10, align 1, !tbaa !5, !range !27, !noundef !28
  %2211 = trunc i8 %2210 to i1
  br i1 %2211, label %2216, label %2212

2212:                                             ; preds = %2195
  %2213 = load double, ptr %25, align 8, !tbaa !13
  %2214 = load double, ptr %27, align 8, !tbaa !13
  %2215 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2213, double noundef %2214)
  br label %2216

2216:                                             ; preds = %2212, %2195
  %2217 = phi i1 [ true, %2195 ], [ %2215, %2212 ]
  %2218 = zext i1 %2217 to i8
  store i8 %2218, ptr %10, align 1, !tbaa !5
  %2219 = load double, ptr %24, align 8, !tbaa !13
  %2220 = load double, ptr %26, align 8, !tbaa !13
  %2221 = fsub double %2219, %2220
  %2222 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2223 = load ptr, ptr %2222, align 8, !tbaa !15
  %2224 = load i64, ptr %18, align 8, !tbaa !11
  %2225 = getelementptr inbounds double, ptr %2223, i64 %2224
  store double %2221, ptr %2225, align 8, !tbaa !13
  %2226 = load ptr, ptr %4, align 8, !tbaa !9
  %2227 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2226)
  store double %2227, ptr %25, align 8, !tbaa !13
  %2228 = load i8, ptr %10, align 1, !tbaa !5, !range !27, !noundef !28
  %2229 = trunc i8 %2228 to i1
  br i1 %2229, label %2234, label %2230

2230:                                             ; preds = %2216
  %2231 = load double, ptr %25, align 8, !tbaa !13
  %2232 = load double, ptr %27, align 8, !tbaa !13
  %2233 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2231, double noundef %2232)
  br label %2234

2234:                                             ; preds = %2230, %2216
  %2235 = phi i1 [ true, %2216 ], [ %2233, %2230 ]
  %2236 = zext i1 %2235 to i8
  store i8 %2236, ptr %10, align 1, !tbaa !5
  %2237 = load double, ptr %24, align 8, !tbaa !13
  %2238 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2239 = load ptr, ptr %2238, align 8, !tbaa !15
  %2240 = load i64, ptr %18, align 8, !tbaa !11
  %2241 = getelementptr inbounds double, ptr %2239, i64 %2240
  store double %2237, ptr %2241, align 8, !tbaa !13
  br label %2242

2242:                                             ; preds = %2234, %2186
  br label %2243

2243:                                             ; preds = %2242
  %2244 = load i64, ptr %18, align 8, !tbaa !11
  %2245 = add nsw i64 %2244, 1
  store i64 %2245, ptr %18, align 8, !tbaa !11
  br label %2157, !llvm.loop !81

2246:                                             ; preds = %2157
  br label %2248

2247:                                             ; preds = %2139
  store i8 1, ptr %10, align 1, !tbaa !5
  br label %2248

2248:                                             ; preds = %2247, %2246
  br label %2249

2249:                                             ; preds = %2248
  %2250 = load i64, ptr %17, align 8, !tbaa !11
  %2251 = add nsw i64 %2250, 1
  store i64 %2251, ptr %17, align 8, !tbaa !11
  br label %1997, !llvm.loop !82

2252:                                             ; preds = %1997
  br label %2253

2253:                                             ; preds = %2252
  %2254 = load i64, ptr %16, align 8, !tbaa !11
  %2255 = add nsw i64 %2254, 1
  store i64 %2255, ptr %16, align 8, !tbaa !11
  br label %1993, !llvm.loop !83

2256:                                             ; preds = %1993
  %2257 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %2258 = trunc i8 %2257 to i1
  br i1 %2258, label %2262, label %2259

2259:                                             ; preds = %2256
  %2260 = load i8, ptr %10, align 1, !tbaa !5, !range !27, !noundef !28
  %2261 = trunc i8 %2260 to i1
  br label %2262

2262:                                             ; preds = %2259, %2256
  %2263 = phi i1 [ true, %2256 ], [ %2261, %2259 ]
  %2264 = zext i1 %2263 to i8
  store i8 %2264, ptr %12, align 1, !tbaa !5
  store i8 0, ptr %11, align 1, !tbaa !5
  store i64 0, ptr %14, align 8, !tbaa !11
  br label %2265

2265:                                             ; preds = %2654, %2262
  %2266 = load i64, ptr %14, align 8, !tbaa !11
  %2267 = icmp sle i64 %2266, 5
  br i1 %2267, label %2268, label %2657

2268:                                             ; preds = %2265
  store i64 0, ptr %17, align 8, !tbaa !11
  br label %2269

2269:                                             ; preds = %2650, %2268
  %2270 = load i64, ptr %17, align 8, !tbaa !11
  %2271 = icmp sle i64 %2270, 5
  br i1 %2271, label %2272, label %2653

2272:                                             ; preds = %2269
  %2273 = load i64, ptr %16, align 8, !tbaa !11
  %2274 = sitofp i64 %2273 to double
  %2275 = load i64, ptr %14, align 8, !tbaa !11
  %2276 = sitofp i64 %2275 to double
  %2277 = load ptr, ptr %4, align 8, !tbaa !9
  %2278 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %2274, double noundef %2276, ptr noundef %2277)
  %2279 = load ptr, ptr %4, align 8, !tbaa !9
  %2280 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %2278, ptr noundef %2279)
  store i64 %2280, ptr %16, align 8, !tbaa !11
  %2281 = load i64, ptr %16, align 8, !tbaa !11
  %2282 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %38, i64 noundef %2281, ptr noundef %2282)
  %2283 = load i64, ptr %16, align 8, !tbaa !11
  %2284 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %33, i64 noundef %2283, ptr noundef %2284)
  %2285 = load i64, ptr %16, align 8, !tbaa !11
  %2286 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %2285, ptr noundef %2286)
  %2287 = load i64, ptr %16, align 8, !tbaa !11
  %2288 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %36, i64 noundef %2287, ptr noundef %2288)
  %2289 = load i64, ptr %16, align 8, !tbaa !11
  %2290 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %44, i64 noundef %2289, ptr noundef %2290)
  %2291 = load i64, ptr %17, align 8, !tbaa !11
  %2292 = icmp sgt i64 %2291, 0
  br i1 %2292, label %2293, label %2299

2293:                                             ; preds = %2272
  %2294 = load i64, ptr %17, align 8, !tbaa !11
  %2295 = load i64, ptr %16, align 8, !tbaa !11
  %2296 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %32, i64 noundef %2294, i64 noundef %2295, ptr noundef %2296)
  %2297 = load i64, ptr %17, align 8, !tbaa !11
  %2298 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %2297, ptr noundef %2298)
  br label %2299

2299:                                             ; preds = %2293, %2272
  %2300 = load ptr, ptr %4, align 8, !tbaa !9
  %2301 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2300)
  %2302 = fadd double 1.000000e+00, %2301
  store double %2302, ptr %23, align 8, !tbaa !13
  %2303 = load ptr, ptr %4, align 8, !tbaa !9
  %2304 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2303)
  %2305 = fadd double 1.000000e+00, %2304
  store double %2305, ptr %22, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2306

2306:                                             ; preds = %2352, %2299
  %2307 = load i64, ptr %18, align 8, !tbaa !11
  %2308 = load i64, ptr %16, align 8, !tbaa !11
  %2309 = sub nsw i64 %2308, 1
  %2310 = icmp sle i64 %2307, %2309
  br i1 %2310, label %2311, label %2355

2311:                                             ; preds = %2306
  %2312 = load ptr, ptr %4, align 8, !tbaa !9
  %2313 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2312)
  %2314 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2313, double -1.000000e+00)
  %2315 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %2316 = load ptr, ptr %2315, align 8, !tbaa !15
  %2317 = load i64, ptr %18, align 8, !tbaa !11
  %2318 = getelementptr inbounds double, ptr %2316, i64 %2317
  store double %2314, ptr %2318, align 8, !tbaa !13
  %2319 = load ptr, ptr %4, align 8, !tbaa !9
  %2320 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2319)
  %2321 = fadd double 1.000000e+00, %2320
  %2322 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %2323 = load ptr, ptr %2322, align 8, !tbaa !15
  %2324 = load i64, ptr %18, align 8, !tbaa !11
  %2325 = getelementptr inbounds double, ptr %2323, i64 %2324
  store double %2321, ptr %2325, align 8, !tbaa !13
  %2326 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %2327 = load ptr, ptr %2326, align 8, !tbaa !15
  %2328 = load i64, ptr %18, align 8, !tbaa !11
  %2329 = getelementptr inbounds double, ptr %2327, i64 %2328
  %2330 = load double, ptr %2329, align 8, !tbaa !13
  %2331 = fneg double %2330
  %2332 = load double, ptr %23, align 8, !tbaa !13
  %2333 = fmul double %2331, %2332
  %2334 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %2335 = load ptr, ptr %2334, align 8, !tbaa !15
  %2336 = load i64, ptr %18, align 8, !tbaa !11
  %2337 = getelementptr inbounds double, ptr %2335, i64 %2336
  %2338 = load double, ptr %2337, align 8, !tbaa !13
  %2339 = fmul double %2333, %2338
  %2340 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %2341 = load ptr, ptr %2340, align 8, !tbaa !15
  %2342 = load i64, ptr %18, align 8, !tbaa !11
  %2343 = getelementptr inbounds double, ptr %2341, i64 %2342
  store double %2339, ptr %2343, align 8, !tbaa !13
  %2344 = load ptr, ptr %4, align 8, !tbaa !9
  %2345 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2344)
  %2346 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2345, double noundef 5.000000e-01)
  %2347 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %2348 = load ptr, ptr %2347, align 8, !tbaa !15
  %2349 = load i64, ptr %18, align 8, !tbaa !11
  %2350 = getelementptr inbounds i8, ptr %2348, i64 %2349
  %2351 = zext i1 %2346 to i8
  store i8 %2351, ptr %2350, align 1, !tbaa !5
  br label %2352

2352:                                             ; preds = %2311
  %2353 = load i64, ptr %18, align 8, !tbaa !11
  %2354 = add nsw i64 %2353, 1
  store i64 %2354, ptr %18, align 8, !tbaa !11
  br label %2306, !llvm.loop !84

2355:                                             ; preds = %2306
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2356

2356:                                             ; preds = %2402, %2355
  %2357 = load i64, ptr %18, align 8, !tbaa !11
  %2358 = load i64, ptr %17, align 8, !tbaa !11
  %2359 = sub nsw i64 %2358, 1
  %2360 = icmp sle i64 %2357, %2359
  br i1 %2360, label %2361, label %2405

2361:                                             ; preds = %2356
  store double 0.000000e+00, ptr %24, align 8, !tbaa !13
  store i64 0, ptr %20, align 8, !tbaa !11
  br label %2362

2362:                                             ; preds = %2393, %2361
  %2363 = load i64, ptr %20, align 8, !tbaa !11
  %2364 = load i64, ptr %16, align 8, !tbaa !11
  %2365 = sub nsw i64 %2364, 1
  %2366 = icmp sle i64 %2363, %2365
  br i1 %2366, label %2367, label %2396

2367:                                             ; preds = %2362
  %2368 = load ptr, ptr %4, align 8, !tbaa !9
  %2369 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2368)
  %2370 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2369, double -1.000000e+00)
  %2371 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %2372 = load ptr, ptr %2371, align 8, !tbaa !15
  %2373 = load i64, ptr %18, align 8, !tbaa !11
  %2374 = getelementptr inbounds ptr, ptr %2372, i64 %2373
  %2375 = load ptr, ptr %2374, align 8, !tbaa !9
  %2376 = load i64, ptr %20, align 8, !tbaa !11
  %2377 = getelementptr inbounds double, ptr %2375, i64 %2376
  store double %2370, ptr %2377, align 8, !tbaa !13
  %2378 = load double, ptr %24, align 8, !tbaa !13
  %2379 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %2380 = load ptr, ptr %2379, align 8, !tbaa !15
  %2381 = load i64, ptr %18, align 8, !tbaa !11
  %2382 = getelementptr inbounds ptr, ptr %2380, i64 %2381
  %2383 = load ptr, ptr %2382, align 8, !tbaa !9
  %2384 = load i64, ptr %20, align 8, !tbaa !11
  %2385 = getelementptr inbounds double, ptr %2383, i64 %2384
  %2386 = load double, ptr %2385, align 8, !tbaa !13
  %2387 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %2388 = load ptr, ptr %2387, align 8, !tbaa !15
  %2389 = load i64, ptr %20, align 8, !tbaa !11
  %2390 = getelementptr inbounds double, ptr %2388, i64 %2389
  %2391 = load double, ptr %2390, align 8, !tbaa !13
  %2392 = call double @llvm.fmuladd.f64(double %2386, double %2391, double %2378)
  store double %2392, ptr %24, align 8, !tbaa !13
  br label %2393

2393:                                             ; preds = %2367
  %2394 = load i64, ptr %20, align 8, !tbaa !11
  %2395 = add nsw i64 %2394, 1
  store i64 %2395, ptr %20, align 8, !tbaa !11
  br label %2362, !llvm.loop !85

2396:                                             ; preds = %2362
  %2397 = load double, ptr %24, align 8, !tbaa !13
  %2398 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %2399 = load ptr, ptr %2398, align 8, !tbaa !15
  %2400 = load i64, ptr %18, align 8, !tbaa !11
  %2401 = getelementptr inbounds double, ptr %2399, i64 %2400
  store double %2397, ptr %2401, align 8, !tbaa !13
  br label %2402

2402:                                             ; preds = %2396
  %2403 = load i64, ptr %18, align 8, !tbaa !11
  %2404 = add nsw i64 %2403, 1
  store i64 %2404, ptr %18, align 8, !tbaa !11
  br label %2356, !llvm.loop !86

2405:                                             ; preds = %2356
  %2406 = load i64, ptr %16, align 8, !tbaa !11
  %2407 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %2406, ptr noundef %13, ptr noundef %2407)
  %2408 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %33, ptr noundef %2408)
  %2409 = load double, ptr %23, align 8, !tbaa !13
  %2410 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef %13, ptr noundef %38, double noundef %2409, ptr noundef %2410)
  %2411 = load i64, ptr %17, align 8, !tbaa !11
  %2412 = load double, ptr %22, align 8, !tbaa !13
  %2413 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef %13, ptr noundef %32, ptr noundef %34, i64 noundef %2411, double noundef %2412, ptr noundef %2413)
  %2414 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %13, ptr noundef %36, ptr noundef %44, ptr noundef %2414)
  %2415 = load ptr, ptr %4, align 8, !tbaa !9
  %2416 = call noundef zeroext i1 @_ZN11alglib_impl21cqmconstrainedoptimumEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2415)
  br i1 %2416, label %2417, label %2648

2417:                                             ; preds = %2405
  %2418 = load ptr, ptr %4, align 8, !tbaa !9
  %2419 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2418)
  store double %2419, ptr %27, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2420

2420:                                             ; preds = %2481, %2417
  %2421 = load i64, ptr %18, align 8, !tbaa !11
  %2422 = load i64, ptr %16, align 8, !tbaa !11
  %2423 = sub nsw i64 %2422, 1
  %2424 = icmp sle i64 %2421, %2423
  br i1 %2424, label %2425, label %2484

2425:                                             ; preds = %2420
  %2426 = load i8, ptr %11, align 1, !tbaa !5, !range !27, !noundef !28
  %2427 = trunc i8 %2426 to i1
  br i1 %2427, label %2449, label %2428

2428:                                             ; preds = %2425
  %2429 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %2430 = load ptr, ptr %2429, align 8, !tbaa !15
  %2431 = load i64, ptr %18, align 8, !tbaa !11
  %2432 = getelementptr inbounds i8, ptr %2430, i64 %2431
  %2433 = load i8, ptr %2432, align 1, !tbaa !5, !range !27, !noundef !28
  %2434 = trunc i8 %2433 to i1
  br i1 %2434, label %2435, label %2447

2435:                                             ; preds = %2428
  %2436 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2437 = load ptr, ptr %2436, align 8, !tbaa !15
  %2438 = load i64, ptr %18, align 8, !tbaa !11
  %2439 = getelementptr inbounds double, ptr %2437, i64 %2438
  %2440 = load double, ptr %2439, align 8, !tbaa !13
  %2441 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %2442 = load ptr, ptr %2441, align 8, !tbaa !15
  %2443 = load i64, ptr %18, align 8, !tbaa !11
  %2444 = getelementptr inbounds double, ptr %2442, i64 %2443
  %2445 = load double, ptr %2444, align 8, !tbaa !13
  %2446 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2440, double noundef %2445)
  br label %2447

2447:                                             ; preds = %2435, %2428
  %2448 = phi i1 [ false, %2428 ], [ %2446, %2435 ]
  br label %2449

2449:                                             ; preds = %2447, %2425
  %2450 = phi i1 [ true, %2425 ], [ %2448, %2447 ]
  %2451 = zext i1 %2450 to i8
  store i8 %2451, ptr %11, align 1, !tbaa !5
  %2452 = load i8, ptr %11, align 1, !tbaa !5, !range !27, !noundef !28
  %2453 = trunc i8 %2452 to i1
  br i1 %2453, label %2478, label %2454

2454:                                             ; preds = %2449
  %2455 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %2456 = load ptr, ptr %2455, align 8, !tbaa !15
  %2457 = load i64, ptr %18, align 8, !tbaa !11
  %2458 = getelementptr inbounds i8, ptr %2456, i64 %2457
  %2459 = load i8, ptr %2458, align 1, !tbaa !5, !range !27, !noundef !28
  %2460 = trunc i8 %2459 to i1
  br i1 %2460, label %2476, label %2461

2461:                                             ; preds = %2454
  %2462 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2463 = load ptr, ptr %2462, align 8, !tbaa !15
  %2464 = load i64, ptr %18, align 8, !tbaa !11
  %2465 = getelementptr inbounds double, ptr %2463, i64 %2464
  %2466 = load double, ptr %2465, align 8, !tbaa !13
  %2467 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %2468 = load ptr, ptr %2467, align 8, !tbaa !15
  %2469 = load i64, ptr %18, align 8, !tbaa !11
  %2470 = getelementptr inbounds double, ptr %2468, i64 %2469
  %2471 = load double, ptr %2470, align 8, !tbaa !13
  %2472 = fsub double %2466, %2471
  %2473 = load ptr, ptr %4, align 8, !tbaa !9
  %2474 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2472, ptr noundef %2473)
  %2475 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2474, double noundef 5.000000e-13)
  br label %2476

2476:                                             ; preds = %2461, %2454
  %2477 = phi i1 [ false, %2454 ], [ %2475, %2461 ]
  br label %2478

2478:                                             ; preds = %2476, %2449
  %2479 = phi i1 [ true, %2449 ], [ %2477, %2476 ]
  %2480 = zext i1 %2479 to i8
  store i8 %2480, ptr %11, align 1, !tbaa !5
  br label %2481

2481:                                             ; preds = %2478
  %2482 = load i64, ptr %18, align 8, !tbaa !11
  %2483 = add nsw i64 %2482, 1
  store i64 %2483, ptr %18, align 8, !tbaa !11
  br label %2420, !llvm.loop !87

2484:                                             ; preds = %2420
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2485

2485:                                             ; preds = %2516, %2484
  %2486 = load i64, ptr %18, align 8, !tbaa !11
  %2487 = load i64, ptr %16, align 8, !tbaa !11
  %2488 = sub nsw i64 %2487, 1
  %2489 = icmp sle i64 %2486, %2488
  br i1 %2489, label %2490, label %2519

2490:                                             ; preds = %2485
  %2491 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %44, i32 0, i32 4
  %2492 = load ptr, ptr %2491, align 8, !tbaa !15
  %2493 = load i64, ptr %18, align 8, !tbaa !11
  %2494 = getelementptr inbounds i8, ptr %2492, i64 %2493
  %2495 = load i8, ptr %2494, align 1, !tbaa !5, !range !27, !noundef !28
  %2496 = trunc i8 %2495 to i1
  br i1 %2496, label %2497, label %2507

2497:                                             ; preds = %2490
  %2498 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %36, i32 0, i32 4
  %2499 = load ptr, ptr %2498, align 8, !tbaa !15
  %2500 = load i64, ptr %18, align 8, !tbaa !11
  %2501 = getelementptr inbounds double, ptr %2499, i64 %2500
  %2502 = load double, ptr %2501, align 8, !tbaa !13
  %2503 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2504 = load ptr, ptr %2503, align 8, !tbaa !15
  %2505 = load i64, ptr %18, align 8, !tbaa !11
  %2506 = getelementptr inbounds double, ptr %2504, i64 %2505
  store double %2502, ptr %2506, align 8, !tbaa !13
  br label %2515

2507:                                             ; preds = %2490
  %2508 = load ptr, ptr %4, align 8, !tbaa !9
  %2509 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %2508)
  %2510 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %2509, double -1.000000e+00)
  %2511 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2512 = load ptr, ptr %2511, align 8, !tbaa !15
  %2513 = load i64, ptr %18, align 8, !tbaa !11
  %2514 = getelementptr inbounds double, ptr %2512, i64 %2513
  store double %2510, ptr %2514, align 8, !tbaa !13
  br label %2515

2515:                                             ; preds = %2507, %2497
  br label %2516

2516:                                             ; preds = %2515
  %2517 = load i64, ptr %18, align 8, !tbaa !11
  %2518 = add nsw i64 %2517, 1
  store i64 %2518, ptr %18, align 8, !tbaa !11
  br label %2485, !llvm.loop !88

2519:                                             ; preds = %2485
  store double 0.000000e+00, ptr %24, align 8, !tbaa !13
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2520

2520:                                             ; preds = %2554, %2519
  %2521 = load i64, ptr %18, align 8, !tbaa !11
  %2522 = load i64, ptr %16, align 8, !tbaa !11
  %2523 = sub nsw i64 %2522, 1
  %2524 = icmp sle i64 %2521, %2523
  br i1 %2524, label %2525, label %2557

2525:                                             ; preds = %2520
  %2526 = load double, ptr %24, align 8, !tbaa !13
  %2527 = load double, ptr %23, align 8, !tbaa !13
  %2528 = fmul double 5.000000e-01, %2527
  %2529 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %38, i32 0, i32 4
  %2530 = load ptr, ptr %2529, align 8, !tbaa !15
  %2531 = load i64, ptr %18, align 8, !tbaa !11
  %2532 = getelementptr inbounds double, ptr %2530, i64 %2531
  %2533 = load double, ptr %2532, align 8, !tbaa !13
  %2534 = fmul double %2528, %2533
  %2535 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2536 = load ptr, ptr %2535, align 8, !tbaa !15
  %2537 = load i64, ptr %18, align 8, !tbaa !11
  %2538 = getelementptr inbounds double, ptr %2536, i64 %2537
  %2539 = load double, ptr %2538, align 8, !tbaa !13
  %2540 = load ptr, ptr %4, align 8, !tbaa !9
  %2541 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2539, ptr noundef %2540)
  %2542 = call double @llvm.fmuladd.f64(double %2534, double %2541, double %2526)
  %2543 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2544 = load ptr, ptr %2543, align 8, !tbaa !15
  %2545 = load i64, ptr %18, align 8, !tbaa !11
  %2546 = getelementptr inbounds double, ptr %2544, i64 %2545
  %2547 = load double, ptr %2546, align 8, !tbaa !13
  %2548 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %2549 = load ptr, ptr %2548, align 8, !tbaa !15
  %2550 = load i64, ptr %18, align 8, !tbaa !11
  %2551 = getelementptr inbounds double, ptr %2549, i64 %2550
  %2552 = load double, ptr %2551, align 8, !tbaa !13
  %2553 = call double @llvm.fmuladd.f64(double %2547, double %2552, double %2542)
  store double %2553, ptr %24, align 8, !tbaa !13
  br label %2554

2554:                                             ; preds = %2525
  %2555 = load i64, ptr %18, align 8, !tbaa !11
  %2556 = add nsw i64 %2555, 1
  store i64 %2556, ptr %18, align 8, !tbaa !11
  br label %2520, !llvm.loop !89

2557:                                             ; preds = %2520
  store i64 0, ptr %18, align 8, !tbaa !11
  br label %2558

2558:                                             ; preds = %2590, %2557
  %2559 = load i64, ptr %18, align 8, !tbaa !11
  %2560 = load i64, ptr %17, align 8, !tbaa !11
  %2561 = sub nsw i64 %2560, 1
  %2562 = icmp sle i64 %2559, %2561
  br i1 %2562, label %2563, label %2593

2563:                                             ; preds = %2558
  %2564 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %32, i32 0, i32 6
  %2565 = load ptr, ptr %2564, align 8, !tbaa !15
  %2566 = load i64, ptr %18, align 8, !tbaa !11
  %2567 = getelementptr inbounds ptr, ptr %2565, i64 %2566
  %2568 = load ptr, ptr %2567, align 8, !tbaa !9
  %2569 = getelementptr inbounds double, ptr %2568, i64 0
  %2570 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %2571 = load ptr, ptr %2570, align 8, !tbaa !15
  %2572 = getelementptr inbounds double, ptr %2571, i64 0
  %2573 = load i64, ptr %16, align 8, !tbaa !11
  %2574 = sub nsw i64 %2573, 1
  %2575 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2574)
  %2576 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %2569, i64 noundef 1, ptr noundef %2572, i64 noundef 1, i64 noundef %2575)
  store double %2576, ptr %25, align 8, !tbaa !13
  %2577 = load double, ptr %24, align 8, !tbaa !13
  %2578 = load double, ptr %22, align 8, !tbaa !13
  %2579 = fmul double 5.000000e-01, %2578
  %2580 = load double, ptr %25, align 8, !tbaa !13
  %2581 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %2582 = load ptr, ptr %2581, align 8, !tbaa !15
  %2583 = load i64, ptr %18, align 8, !tbaa !11
  %2584 = getelementptr inbounds double, ptr %2582, i64 %2583
  %2585 = load double, ptr %2584, align 8, !tbaa !13
  %2586 = fsub double %2580, %2585
  %2587 = load ptr, ptr %4, align 8, !tbaa !9
  %2588 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2586, ptr noundef %2587)
  %2589 = call double @llvm.fmuladd.f64(double %2579, double %2588, double %2577)
  store double %2589, ptr %24, align 8, !tbaa !13
  br label %2590

2590:                                             ; preds = %2563
  %2591 = load i64, ptr %18, align 8, !tbaa !11
  %2592 = add nsw i64 %2591, 1
  store i64 %2592, ptr %18, align 8, !tbaa !11
  br label %2558, !llvm.loop !90

2593:                                             ; preds = %2558
  %2594 = load ptr, ptr %4, align 8, !tbaa !9
  %2595 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2594)
  store double %2595, ptr %25, align 8, !tbaa !13
  %2596 = load i8, ptr %11, align 1, !tbaa !5, !range !27, !noundef !28
  %2597 = trunc i8 %2596 to i1
  br i1 %2597, label %2609, label %2598

2598:                                             ; preds = %2593
  %2599 = load double, ptr %25, align 8, !tbaa !13
  %2600 = load ptr, ptr %4, align 8, !tbaa !9
  %2601 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2599, ptr noundef %2600)
  br i1 %2601, label %2602, label %2609

2602:                                             ; preds = %2598
  %2603 = load double, ptr %24, align 8, !tbaa !13
  %2604 = load double, ptr %25, align 8, !tbaa !13
  %2605 = fsub double %2603, %2604
  %2606 = load ptr, ptr %4, align 8, !tbaa !9
  %2607 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2605, ptr noundef %2606)
  %2608 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2607, double noundef 0x3D95FD7FE1796496)
  br label %2609

2609:                                             ; preds = %2602, %2598, %2593
  %2610 = phi i1 [ true, %2598 ], [ true, %2593 ], [ %2608, %2602 ]
  %2611 = zext i1 %2610 to i8
  store i8 %2611, ptr %11, align 1, !tbaa !5
  %2612 = load ptr, ptr %4, align 8, !tbaa !9
  %2613 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2612)
  store double %2613, ptr %25, align 8, !tbaa !13
  %2614 = load i8, ptr %11, align 1, !tbaa !5, !range !27, !noundef !28
  %2615 = trunc i8 %2614 to i1
  br i1 %2615, label %2627, label %2616

2616:                                             ; preds = %2609
  %2617 = load double, ptr %25, align 8, !tbaa !13
  %2618 = load ptr, ptr %4, align 8, !tbaa !9
  %2619 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2617, ptr noundef %2618)
  br i1 %2619, label %2620, label %2627

2620:                                             ; preds = %2616
  %2621 = load double, ptr %24, align 8, !tbaa !13
  %2622 = load double, ptr %25, align 8, !tbaa !13
  %2623 = fsub double %2621, %2622
  %2624 = load ptr, ptr %4, align 8, !tbaa !9
  %2625 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2623, ptr noundef %2624)
  %2626 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2625, double noundef 0x3D95FD7FE1796496)
  br label %2627

2627:                                             ; preds = %2620, %2616, %2609
  %2628 = phi i1 [ true, %2616 ], [ true, %2609 ], [ %2626, %2620 ]
  %2629 = zext i1 %2628 to i8
  store i8 %2629, ptr %11, align 1, !tbaa !5
  %2630 = load ptr, ptr %4, align 8, !tbaa !9
  %2631 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %13, ptr noundef %35, ptr noundef %2630)
  store double %2631, ptr %25, align 8, !tbaa !13
  %2632 = load i8, ptr %11, align 1, !tbaa !5, !range !27, !noundef !28
  %2633 = trunc i8 %2632 to i1
  br i1 %2633, label %2645, label %2634

2634:                                             ; preds = %2627
  %2635 = load double, ptr %25, align 8, !tbaa !13
  %2636 = load ptr, ptr %4, align 8, !tbaa !9
  %2637 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %2635, ptr noundef %2636)
  br i1 %2637, label %2638, label %2645

2638:                                             ; preds = %2634
  %2639 = load double, ptr %24, align 8, !tbaa !13
  %2640 = load double, ptr %25, align 8, !tbaa !13
  %2641 = fsub double %2639, %2640
  %2642 = load ptr, ptr %4, align 8, !tbaa !9
  %2643 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2641, ptr noundef %2642)
  %2644 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2643, double noundef 0x3D95FD7FE1796496)
  br label %2645

2645:                                             ; preds = %2638, %2634, %2627
  %2646 = phi i1 [ true, %2634 ], [ true, %2627 ], [ %2644, %2638 ]
  %2647 = zext i1 %2646 to i8
  store i8 %2647, ptr %11, align 1, !tbaa !5
  br label %2649

2648:                                             ; preds = %2405
  store i8 1, ptr %11, align 1, !tbaa !5
  br label %2649

2649:                                             ; preds = %2648, %2645
  br label %2650

2650:                                             ; preds = %2649
  %2651 = load i64, ptr %17, align 8, !tbaa !11
  %2652 = add nsw i64 %2651, 1
  store i64 %2652, ptr %17, align 8, !tbaa !11
  br label %2269, !llvm.loop !91

2653:                                             ; preds = %2269
  br label %2654

2654:                                             ; preds = %2653
  %2655 = load i64, ptr %14, align 8, !tbaa !11
  %2656 = add nsw i64 %2655, 1
  store i64 %2656, ptr %14, align 8, !tbaa !11
  br label %2265, !llvm.loop !92

2657:                                             ; preds = %2265
  %2658 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %2659 = trunc i8 %2658 to i1
  br i1 %2659, label %2663, label %2660

2660:                                             ; preds = %2657
  %2661 = load i8, ptr %11, align 1, !tbaa !5, !range !27, !noundef !28
  %2662 = trunc i8 %2661 to i1
  br label %2663

2663:                                             ; preds = %2660, %2657
  %2664 = phi i1 [ true, %2657 ], [ %2662, %2660 ]
  %2665 = zext i1 %2664 to i8
  store i8 %2665, ptr %12, align 1, !tbaa !5
  %2666 = load i8, ptr %3, align 1, !tbaa !5, !range !27, !noundef !28
  %2667 = trunc i8 %2666 to i1
  br i1 %2667, label %2726, label %2668

2668:                                             ; preds = %2663
  %2669 = call i32 (ptr, ...) @printf(ptr noundef @.str.289)
  %2670 = call i32 (ptr, ...) @printf(ptr noundef @.str.290)
  %2671 = load i8, ptr %6, align 1, !tbaa !5, !range !27, !noundef !28
  %2672 = trunc i8 %2671 to i1
  br i1 %2672, label %2673, label %2675

2673:                                             ; preds = %2668
  %2674 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %2677

2675:                                             ; preds = %2668
  %2676 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %2677

2677:                                             ; preds = %2675, %2673
  %2678 = call i32 (ptr, ...) @printf(ptr noundef @.str.291)
  %2679 = load i8, ptr %7, align 1, !tbaa !5, !range !27, !noundef !28
  %2680 = trunc i8 %2679 to i1
  br i1 %2680, label %2681, label %2683

2681:                                             ; preds = %2677
  %2682 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %2685

2683:                                             ; preds = %2677
  %2684 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %2685

2685:                                             ; preds = %2683, %2681
  %2686 = call i32 (ptr, ...) @printf(ptr noundef @.str.292)
  %2687 = load i8, ptr %8, align 1, !tbaa !5, !range !27, !noundef !28
  %2688 = trunc i8 %2687 to i1
  br i1 %2688, label %2689, label %2691

2689:                                             ; preds = %2685
  %2690 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %2693

2691:                                             ; preds = %2685
  %2692 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %2693

2693:                                             ; preds = %2691, %2689
  %2694 = call i32 (ptr, ...) @printf(ptr noundef @.str.293)
  %2695 = load i8, ptr %9, align 1, !tbaa !5, !range !27, !noundef !28
  %2696 = trunc i8 %2695 to i1
  br i1 %2696, label %2697, label %2699

2697:                                             ; preds = %2693
  %2698 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %2701

2699:                                             ; preds = %2693
  %2700 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %2701

2701:                                             ; preds = %2699, %2697
  %2702 = call i32 (ptr, ...) @printf(ptr noundef @.str.294)
  %2703 = load i8, ptr %10, align 1, !tbaa !5, !range !27, !noundef !28
  %2704 = trunc i8 %2703 to i1
  br i1 %2704, label %2705, label %2707

2705:                                             ; preds = %2701
  %2706 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %2709

2707:                                             ; preds = %2701
  %2708 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %2709

2709:                                             ; preds = %2707, %2705
  %2710 = call i32 (ptr, ...) @printf(ptr noundef @.str.295)
  %2711 = load i8, ptr %11, align 1, !tbaa !5, !range !27, !noundef !28
  %2712 = trunc i8 %2711 to i1
  br i1 %2712, label %2713, label %2715

2713:                                             ; preds = %2709
  %2714 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %2717

2715:                                             ; preds = %2709
  %2716 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %2717

2717:                                             ; preds = %2715, %2713
  %2718 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %2719 = trunc i8 %2718 to i1
  br i1 %2719, label %2720, label %2722

2720:                                             ; preds = %2717
  %2721 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  br label %2724

2722:                                             ; preds = %2717
  %2723 = call i32 (ptr, ...) @printf(ptr noundef @.str.2)
  br label %2724

2724:                                             ; preds = %2722, %2720
  %2725 = call i32 (ptr, ...) @printf(ptr noundef @.str.3)
  br label %2726

2726:                                             ; preds = %2724, %2663
  %2727 = load i8, ptr %12, align 1, !tbaa !5, !range !27, !noundef !28
  %2728 = trunc i8 %2727 to i1
  %2729 = xor i1 %2728, true
  %2730 = zext i1 %2729 to i8
  store i8 %2730, ptr %45, align 1, !tbaa !5
  %2731 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2731)
  %2732 = load i8, ptr %45, align 1, !tbaa !5, !range !27, !noundef !28
  %2733 = trunc i8 %2732 to i1
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1688, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  ret i1 %2733
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!7, !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = distinct !{!31, !17}
!32 = distinct !{!32, !17}
!33 = distinct !{!33, !17}
!34 = distinct !{!34, !17}
!35 = distinct !{!35, !17}
!36 = distinct !{!36, !17}
!37 = distinct !{!37, !17}
!38 = distinct !{!38, !17}
!39 = distinct !{!39, !17}
!40 = distinct !{!40, !17}
!41 = distinct !{!41, !17}
!42 = distinct !{!42, !17}
!43 = distinct !{!43, !17}
!44 = distinct !{!44, !17}
!45 = distinct !{!45, !17}
!46 = distinct !{!46, !17}
!47 = distinct !{!47, !17}
!48 = distinct !{!48, !17}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = distinct !{!51, !17}
!52 = distinct !{!52, !17}
!53 = distinct !{!53, !17}
!54 = distinct !{!54, !17}
!55 = distinct !{!55, !17}
!56 = distinct !{!56, !17}
!57 = distinct !{!57, !17}
!58 = distinct !{!58, !17}
!59 = distinct !{!59, !17}
!60 = distinct !{!60, !17}
!61 = distinct !{!61, !17}
!62 = distinct !{!62, !17}
!63 = distinct !{!63, !17}
!64 = distinct !{!64, !17}
!65 = distinct !{!65, !17}
!66 = distinct !{!66, !17}
!67 = distinct !{!67, !17}
!68 = distinct !{!68, !17}
!69 = distinct !{!69, !17}
!70 = distinct !{!70, !17}
!71 = distinct !{!71, !17}
!72 = distinct !{!72, !17}
!73 = distinct !{!73, !17}
!74 = distinct !{!74, !17}
!75 = distinct !{!75, !17}
!76 = distinct !{!76, !17}
!77 = distinct !{!77, !17}
!78 = distinct !{!78, !17}
!79 = distinct !{!79, !17}
!80 = distinct !{!80, !17}
!81 = distinct !{!81, !17}
!82 = distinct !{!82, !17}
!83 = distinct !{!83, !17}
!84 = distinct !{!84, !17}
!85 = distinct !{!85, !17}
!86 = distinct !{!86, !17}
!87 = distinct !{!87, !17}
!88 = distinct !{!88, !17}
!89 = distinct !{!89, !17}
!90 = distinct !{!90, !17}
!91 = distinct !{!91, !17}
!92 = distinct !{!92, !17}


; 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::convexquadraticmodel" = type { i64, i64, double, double, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, i8, i8, i8 }
%"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.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [43 x i8], align 1

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

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

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

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

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

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #3

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.preheader1081:                                   ; preds = %2, %520
  %indvars.iv = phi i64 [ 3, %2 ], [ %indvars.iv.next, %520 ]
  %.01116 = phi i1 [ false, %2 ], [ %516, %520 ]
  %.09251115 = phi i64 [ 1, %2 ], [ %521, %520 ]
  %31 = add nsw i64 %.09251115, -1
  %exitcond1291.not = icmp eq i64 %.09251115, 1
  %exitcond1291.not.1 = icmp eq i64 %.09251115, 2
  %exitcond1291.not.2 = icmp eq i64 %.09251115, 3
  %exitcond1291.not.3 = icmp eq i64 %.09251115, 4
  %exitcond1292.not = icmp eq i64 %.09251115, 1
  %exitcond1292.not.1 = icmp eq i64 %.09251115, 2
  %exitcond1292.not.2 = icmp eq i64 %.09251115, 3
  %exitcond1292.not.3 = icmp eq i64 %.09251115, 4
  %exitcond1294.not = icmp eq i64 %.09251115, 1
  %exitcond1294.not.1 = icmp eq i64 %.09251115, 2
  %exitcond1294.not.2 = icmp eq i64 %.09251115, 3
  %exitcond1294.not.3 = icmp eq i64 %.09251115, 4
  br label %32

32:                                               ; preds = %.preheader1081, %518
  %.11114 = phi i1 [ %.01116, %.preheader1081 ], [ %516, %518 ]
  %.09181113 = phi i64 [ 0, %.preheader1081 ], [ %519, %518 ]
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.09251115, i64 noundef %.09251115, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef %.09251115, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.09251115, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %.09251115, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %15, i64 noundef %.09251115, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %16, i64 noundef %.09251115, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %17, i64 noundef %.09251115, ptr noundef %1)
  %.not1016 = icmp eq i64 %.09181113, 0
  br i1 %.not1016, label %34, label %33

33:                                               ; preds = %32
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.09181113, i64 noundef %.09251115, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.09181113, ptr noundef %1)
  br label %34

34:                                               ; preds = %33, %32
  %35 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %36 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %37 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %38 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %1)
  %39 = sitofp i64 %38 to double
  br label %.backedge1380

.loopexit1077:                                    ; preds = %.lr.ph1090
  %exitcond1288.not = icmp eq i64 %55, %.09251115
  br i1 %exitcond1288.not, label %.lr.ph1094, label %.backedge1380.backedge

.backedge1380.backedge:                           ; preds = %.loopexit1077, %.loopexit1077.thread
  br label %.backedge1380, !llvm.loop !5

.loopexit1077.thread:                             ; preds = %.preheader1076
  %exitcond1288.not1373 = icmp eq i64 %55, %.09251115
  br i1 %exitcond1288.not1373, label %._crit_edge, label %.backedge1380.backedge

.backedge1380:                                    ; preds = %.backedge1380.backedge, %34
  %.09001091 = phi i64 [ 0, %34 ], [ %55, %.backedge1380.backedge ]
  %40 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %41 = fadd double %40, 1.000000e+00
  %42 = fmul double %41, 1.000000e+01
  %43 = load ptr, ptr %21, align 8, !tbaa !7
  %44 = getelementptr inbounds ptr, ptr %43, i64 %.09001091
  %45 = load ptr, ptr %44, align 8, !tbaa !10
  %46 = getelementptr inbounds double, ptr %45, i64 %.09001091
  store double %42, ptr %46, align 8, !tbaa !12
  %47 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %48 = call double @llvm.fmuladd.f64(double %47, double 2.000000e+00, double -1.000000e+00)
  %49 = load ptr, ptr %22, align 8, !tbaa !7
  %50 = getelementptr inbounds double, ptr %49, i64 %.09001091
  store double %48, ptr %50, align 8, !tbaa !12
  %51 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %52 = fadd double %51, 1.000000e+00
  %53 = load ptr, ptr %23, align 8, !tbaa !7
  %54 = getelementptr inbounds double, ptr %53, i64 %.09001091
  store double %52, ptr %54, align 8, !tbaa !12
  %55 = add nuw nsw i64 %.09001091, 1
  %.not1027.not1086 = icmp ult i64 %55, %.09251115
  br i1 %.not1027.not1086, label %.lr.ph, label %.preheader1076

.preheader1076:                                   ; preds = %.lr.ph, %.backedge1380
  br i1 %.not1016, label %.loopexit1077.thread, label %.lr.ph1090

.lr.ph:                                           ; preds = %.backedge1380, %.lr.ph
  %.08821087 = phi i64 [ %66, %.lr.ph ], [ %55, %.backedge1380 ]
  %56 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %57 = call double @llvm.fmuladd.f64(double %56, double 1.000000e-01, double -5.000000e-02)
  %58 = load ptr, ptr %21, align 8, !tbaa !7
  %59 = getelementptr inbounds ptr, ptr %58, i64 %.09001091
  %60 = load ptr, ptr %59, align 8, !tbaa !10
  %61 = getelementptr inbounds double, ptr %60, i64 %.08821087
  store double %57, ptr %61, align 8, !tbaa !12
  %62 = load ptr, ptr %21, align 8, !tbaa !7
  %63 = getelementptr inbounds ptr, ptr %62, i64 %.08821087
  %64 = load ptr, ptr %63, align 8, !tbaa !10
  %65 = getelementptr inbounds double, ptr %64, i64 %.09001091
  store double %57, ptr %65, align 8, !tbaa !12
  %66 = add nuw nsw i64 %.08821087, 1
  %.not1027.not = icmp ult i64 %66, %.09251115
  br i1 %.not1027.not, label %.lr.ph, label %.preheader1076, !llvm.loop !14

.lr.ph1090:                                       ; preds = %.preheader1076, %.lr.ph1090
  %.18831089 = phi i64 [ %73, %.lr.ph1090 ], [ 0, %.preheader1076 ]
  %67 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %68 = call double @llvm.fmuladd.f64(double %67, double 2.000000e+00, double -1.000000e+00)
  %69 = load ptr, ptr %24, align 8, !tbaa !7
  %70 = getelementptr inbounds ptr, ptr %69, i64 %.18831089
  %71 = load ptr, ptr %70, align 8, !tbaa !10
  %72 = getelementptr inbounds double, ptr %71, i64 %.09001091
  store double %68, ptr %72, align 8, !tbaa !12
  %73 = add nuw nsw i64 %.18831089, 1
  %exitcond.not = icmp eq i64 %73, %.09181113
  br i1 %exitcond.not, label %.loopexit1077, label %.lr.ph1090, !llvm.loop !15

.lr.ph1094:                                       ; preds = %.loopexit1077, %.lr.ph1094
  %.19011093 = phi i64 [ %78, %.lr.ph1094 ], [ 0, %.loopexit1077 ]
  %74 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %75 = call double @llvm.fmuladd.f64(double %74, double 2.000000e+00, double -1.000000e+00)
  %76 = load ptr, ptr %25, align 8, !tbaa !7
  %77 = getelementptr inbounds double, ptr %76, i64 %.19011093
  store double %75, ptr %77, align 8, !tbaa !12
  %78 = add nuw nsw i64 %.19011093, 1
  %exitcond1289.not = icmp eq i64 %78, %.09181113
  br i1 %exitcond1289.not, label %._crit_edge, label %.lr.ph1094, !llvm.loop !16

._crit_edge:                                      ; preds = %.loopexit1077.thread, %.lr.ph1094
  %79 = fadd double %35, 1.000000e+00
  %80 = fadd double %36, 1.000000e+00
  %81 = fmul double %37, %39
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %.09251115, ptr noundef nonnull %4, ptr noundef %1)
  %82 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %83 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %82, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %7, i1 noundef zeroext %83, double noundef %79, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %9, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef nonnull %10, i64 noundef %.09181113, double noundef %80, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, double noundef %81, ptr noundef %1)
  br label %84

84:                                               ; preds = %._crit_edge, %84
  %.29021095 = phi i64 [ 0, %._crit_edge ], [ %91, %84 ]
  %85 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %86 = call double @llvm.fmuladd.f64(double %85, double 2.000000e+00, double -1.000000e+00)
  %87 = load ptr, ptr %26, align 8, !tbaa !7
  %88 = getelementptr inbounds double, ptr %87, i64 %.29021095
  store double %86, ptr %88, align 8, !tbaa !12
  %89 = load ptr, ptr %27, align 8, !tbaa !7
  %90 = getelementptr inbounds double, ptr %89, i64 %.29021095
  store double 0.000000e+00, ptr %90, align 8, !tbaa !12
  %91 = add nuw nsw i64 %.29021095, 1
  %exitcond1290.not = icmp eq i64 %91, %.09251115
  br i1 %exitcond1290.not, label %92, label %84, !llvm.loop !17

92:                                               ; preds = %84
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %19, i64 noundef %.09251115, ptr noundef %1)
  %93 = load ptr, ptr %28, align 8, !tbaa !7
  store double 0.000000e+00, ptr %93, align 8, !tbaa !12
  br i1 %exitcond1291.not, label %.preheader1079, label %99, !llvm.loop !18

.preheader1079:                                   ; preds = %108, %105, %102, %99, %92
  %94 = fmul double %79, 5.000000e-01
  %.pre = load ptr, ptr %26, align 8, !tbaa !7
  %95 = insertelement <2 x double> poison, double %81, i64 0
  %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer
  %97 = insertelement <2 x double> poison, double %94, i64 0
  %98 = shufflevector <2 x double> %97, <2 x double> poison, <2 x i32> zeroinitializer
  br label %113

99:                                               ; preds = %92
  %100 = load ptr, ptr %28, align 8, !tbaa !7
  %101 = getelementptr inbounds i8, ptr %100, i64 8
  store double 0.000000e+00, ptr %101, align 8, !tbaa !12
  br i1 %exitcond1291.not.1, label %.preheader1079, label %102, !llvm.loop !18

102:                                              ; preds = %99
  %103 = load ptr, ptr %28, align 8, !tbaa !7
  %104 = getelementptr inbounds i8, ptr %103, i64 16
  store double 0.000000e+00, ptr %104, align 8, !tbaa !12
  br i1 %exitcond1291.not.2, label %.preheader1079, label %105, !llvm.loop !18

105:                                              ; preds = %102
  %106 = load ptr, ptr %28, align 8, !tbaa !7
  %107 = getelementptr inbounds i8, ptr %106, i64 24
  store double 0.000000e+00, ptr %107, align 8, !tbaa !12
  br i1 %exitcond1291.not.3, label %.preheader1079, label %108, !llvm.loop !18

108:                                              ; preds = %105
  %109 = load ptr, ptr %28, align 8, !tbaa !7
  %110 = getelementptr inbounds i8, ptr %109, i64 32
  store double 0.000000e+00, ptr %110, align 8, !tbaa !12
  br label %.preheader1079

.preheader1078:                                   ; preds = %371
  %111 = extractelement <2 x double> %.lcssa1443, i64 1
  br i1 %.not1016, label %._crit_edge1108, label %.lr.ph1107

.lr.ph1107:                                       ; preds = %.preheader1078
  %112 = fmul double %80, 5.000000e-01
  br label %373

113:                                              ; preds = %.preheader1079, %371
  %114 = phi ptr [ %.pre, %.preheader1079 ], [ %.lcssa1444, %371 ]
  %.49041100 = phi i64 [ 0, %.preheader1079 ], [ %372, %371 ]
  %115 = phi <2 x double> [ zeroinitializer, %.preheader1079 ], [ %.lcssa1443, %371 ]
  %116 = getelementptr inbounds double, ptr %114, i64 %.49041100
  %117 = load double, ptr %116, align 8, !tbaa !12
  %118 = load ptr, ptr %22, align 8, !tbaa !7
  %119 = getelementptr inbounds double, ptr %118, i64 %.49041100
  %120 = load double, ptr %119, align 8, !tbaa !12
  %121 = load ptr, ptr %27, align 8, !tbaa !7
  %122 = getelementptr inbounds double, ptr %121, i64 %.49041100
  %123 = load double, ptr %122, align 8, !tbaa !12
  %124 = fadd double %120, %123
  store double %124, ptr %122, align 8, !tbaa !12
  %125 = load ptr, ptr %26, align 8, !tbaa !7
  %126 = getelementptr inbounds double, ptr %125, i64 %.49041100
  %127 = load double, ptr %126, align 8, !tbaa !12
  %128 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %127, ptr noundef %1)
  %129 = load ptr, ptr %23, align 8, !tbaa !7
  %130 = getelementptr inbounds double, ptr %129, i64 %.49041100
  %131 = load double, ptr %130, align 8, !tbaa !12
  %132 = load ptr, ptr %27, align 8, !tbaa !7
  %133 = getelementptr inbounds double, ptr %132, i64 %.49041100
  %134 = load double, ptr %133, align 8, !tbaa !12
  %135 = load ptr, ptr %26, align 8, !tbaa !7
  %136 = getelementptr inbounds double, ptr %135, i64 %.49041100
  %137 = load double, ptr %136, align 8, !tbaa !12
  %138 = fmul double %81, %137
  %139 = call double @llvm.fmuladd.f64(double %138, double %131, double %134)
  store double %139, ptr %133, align 8, !tbaa !12
  %140 = load ptr, ptr %28, align 8, !tbaa !7
  %141 = getelementptr inbounds double, ptr %140, i64 %.49041100
  %142 = load double, ptr %141, align 8, !tbaa !12
  %143 = load ptr, ptr %26, align 8, !tbaa !7
  %144 = getelementptr inbounds double, ptr %143, i64 %.49041100
  %145 = load double, ptr %144, align 8, !tbaa !12
  %146 = fmul double %81, %145
  %147 = load ptr, ptr %23, align 8, !tbaa !7
  %148 = getelementptr inbounds double, ptr %147, i64 %.49041100
  %149 = load double, ptr %148, align 8, !tbaa !12
  %150 = call double @llvm.fmuladd.f64(double %146, double %149, double %142)
  store double %150, ptr %141, align 8, !tbaa !12
  %151 = load ptr, ptr %26, align 8, !tbaa !7
  %152 = getelementptr inbounds double, ptr %151, i64 %.49041100
  %153 = load double, ptr %152, align 8, !tbaa !12
  %154 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %153, ptr noundef %1)
  %.pre1364 = load ptr, ptr %21, align 8, !tbaa !7
  %.phi.trans.insert1365 = getelementptr inbounds ptr, ptr %.pre1364, i64 %.49041100
  %.pre1366 = load ptr, ptr %.phi.trans.insert1365, align 8, !tbaa !10
  %.pre1362 = load ptr, ptr %26, align 8, !tbaa !7
  %.phi.trans.insert = getelementptr inbounds double, ptr %.pre1362, i64 %.49041100
  %.pre1363 = load double, ptr %.phi.trans.insert, align 8, !tbaa !12
  %155 = insertelement <2 x double> poison, double %154, i64 0
  %156 = insertelement <2 x double> %155, double %128, i64 1
  %157 = fmul <2 x double> %156, <double 5.000000e-01, double 5.000000e-01>
  %158 = fmul <2 x double> %96, %157
  %159 = load ptr, ptr %23, align 8, !tbaa !7
  %160 = getelementptr inbounds double, ptr %159, i64 %.49041100
  %161 = load double, ptr %160, align 8, !tbaa !12
  %162 = insertelement <2 x double> poison, double %161, i64 0
  %163 = insertelement <2 x double> %162, double %131, i64 1
  %164 = extractelement <2 x double> %115, i64 1
  %165 = call double @llvm.fmuladd.f64(double %117, double %120, double %164)
  %166 = insertelement <2 x double> %115, double %165, i64 1
  %167 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %163, <2 x double> %166)
  %168 = load double, ptr %.pre1366, align 8, !tbaa !12
  %169 = load double, ptr %.pre1362, align 8, !tbaa !12
  %170 = load ptr, ptr %27, align 8, !tbaa !7
  %171 = getelementptr inbounds double, ptr %170, i64 %.49041100
  %172 = load double, ptr %171, align 8, !tbaa !12
  %173 = fmul double %79, %168
  %174 = call double @llvm.fmuladd.f64(double %173, double %169, double %172)
  store double %174, ptr %171, align 8, !tbaa !12
  %175 = load ptr, ptr %28, align 8, !tbaa !7
  %176 = getelementptr inbounds double, ptr %175, i64 %.49041100
  %177 = load double, ptr %176, align 8, !tbaa !12
  %178 = load ptr, ptr %21, align 8, !tbaa !7
  %179 = getelementptr inbounds ptr, ptr %178, i64 %.49041100
  %180 = load ptr, ptr %179, align 8, !tbaa !10
  %181 = load double, ptr %180, align 8, !tbaa !12
  %182 = fmul double %79, %181
  %183 = load ptr, ptr %26, align 8, !tbaa !7
  %184 = load double, ptr %183, align 8, !tbaa !12
  %185 = call double @llvm.fmuladd.f64(double %182, double %184, double %177)
  store double %185, ptr %176, align 8, !tbaa !12
  %186 = load ptr, ptr %26, align 8, !tbaa !7
  %187 = getelementptr inbounds double, ptr %186, i64 %.49041100
  %188 = load double, ptr %187, align 8, !tbaa !12
  %189 = load ptr, ptr %21, align 8, !tbaa !7
  %190 = getelementptr inbounds ptr, ptr %189, i64 %.49041100
  %191 = load ptr, ptr %190, align 8, !tbaa !10
  %192 = load double, ptr %191, align 8, !tbaa !12
  %193 = insertelement <2 x double> poison, double %188, i64 0
  %194 = insertelement <2 x double> %193, double %.pre1363, i64 1
  %195 = fmul <2 x double> %98, %194
  %196 = insertelement <2 x double> poison, double %192, i64 0
  %197 = insertelement <2 x double> %196, double %168, i64 1
  %198 = fmul <2 x double> %195, %197
  %199 = load double, ptr %186, align 8, !tbaa !12
  %200 = insertelement <2 x double> poison, double %199, i64 0
  %201 = insertelement <2 x double> %200, double %169, i64 1
  %202 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %198, <2 x double> %201, <2 x double> %167)
  br i1 %exitcond1292.not, label %371, label %203, !llvm.loop !19

203:                                              ; preds = %113
  %204 = getelementptr inbounds i8, ptr %191, i64 8
  %205 = load double, ptr %204, align 8, !tbaa !12
  %206 = getelementptr inbounds i8, ptr %186, i64 8
  %207 = load double, ptr %206, align 8, !tbaa !12
  %208 = load ptr, ptr %27, align 8, !tbaa !7
  %209 = getelementptr inbounds double, ptr %208, i64 %.49041100
  %210 = load double, ptr %209, align 8, !tbaa !12
  %211 = fmul double %79, %205
  %212 = call double @llvm.fmuladd.f64(double %211, double %207, double %210)
  store double %212, ptr %209, align 8, !tbaa !12
  %213 = load ptr, ptr %28, align 8, !tbaa !7
  %214 = getelementptr inbounds double, ptr %213, i64 %.49041100
  %215 = load double, ptr %214, align 8, !tbaa !12
  %216 = load ptr, ptr %21, align 8, !tbaa !7
  %217 = getelementptr inbounds ptr, ptr %216, i64 %.49041100
  %218 = load ptr, ptr %217, align 8, !tbaa !10
  %219 = getelementptr inbounds i8, ptr %218, i64 8
  %220 = load double, ptr %219, align 8, !tbaa !12
  %221 = fmul double %79, %220
  %222 = load ptr, ptr %26, align 8, !tbaa !7
  %223 = getelementptr inbounds i8, ptr %222, i64 8
  %224 = load double, ptr %223, align 8, !tbaa !12
  %225 = call double @llvm.fmuladd.f64(double %221, double %224, double %215)
  store double %225, ptr %214, align 8, !tbaa !12
  %226 = load ptr, ptr %26, align 8, !tbaa !7
  %227 = getelementptr inbounds double, ptr %226, i64 %.49041100
  %228 = load double, ptr %227, align 8, !tbaa !12
  %229 = load ptr, ptr %21, align 8, !tbaa !7
  %230 = getelementptr inbounds ptr, ptr %229, i64 %.49041100
  %231 = load ptr, ptr %230, align 8, !tbaa !10
  %232 = getelementptr inbounds i8, ptr %231, i64 8
  %233 = load double, ptr %232, align 8, !tbaa !12
  %234 = insertelement <2 x double> poison, double %228, i64 0
  %235 = insertelement <2 x double> %234, double %188, i64 1
  %236 = fmul <2 x double> %98, %235
  %237 = insertelement <2 x double> poison, double %233, i64 0
  %238 = insertelement <2 x double> %237, double %205, i64 1
  %239 = fmul <2 x double> %236, %238
  %240 = getelementptr inbounds i8, ptr %226, i64 8
  %241 = load double, ptr %240, align 8, !tbaa !12
  %242 = insertelement <2 x double> poison, double %241, i64 0
  %243 = insertelement <2 x double> %242, double %207, i64 1
  %244 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %239, <2 x double> %243, <2 x double> %202)
  br i1 %exitcond1292.not.1, label %371, label %245, !llvm.loop !19

245:                                              ; preds = %203
  %246 = getelementptr inbounds i8, ptr %231, i64 16
  %247 = load double, ptr %246, align 8, !tbaa !12
  %248 = getelementptr inbounds i8, ptr %226, i64 16
  %249 = load double, ptr %248, align 8, !tbaa !12
  %250 = load ptr, ptr %27, align 8, !tbaa !7
  %251 = getelementptr inbounds double, ptr %250, i64 %.49041100
  %252 = load double, ptr %251, align 8, !tbaa !12
  %253 = fmul double %79, %247
  %254 = call double @llvm.fmuladd.f64(double %253, double %249, double %252)
  store double %254, ptr %251, align 8, !tbaa !12
  %255 = load ptr, ptr %28, align 8, !tbaa !7
  %256 = getelementptr inbounds double, ptr %255, i64 %.49041100
  %257 = load double, ptr %256, align 8, !tbaa !12
  %258 = load ptr, ptr %21, align 8, !tbaa !7
  %259 = getelementptr inbounds ptr, ptr %258, i64 %.49041100
  %260 = load ptr, ptr %259, align 8, !tbaa !10
  %261 = getelementptr inbounds i8, ptr %260, i64 16
  %262 = load double, ptr %261, align 8, !tbaa !12
  %263 = fmul double %79, %262
  %264 = load ptr, ptr %26, align 8, !tbaa !7
  %265 = getelementptr inbounds i8, ptr %264, i64 16
  %266 = load double, ptr %265, align 8, !tbaa !12
  %267 = call double @llvm.fmuladd.f64(double %263, double %266, double %257)
  store double %267, ptr %256, align 8, !tbaa !12
  %268 = load ptr, ptr %26, align 8, !tbaa !7
  %269 = getelementptr inbounds double, ptr %268, i64 %.49041100
  %270 = load double, ptr %269, align 8, !tbaa !12
  %271 = load ptr, ptr %21, align 8, !tbaa !7
  %272 = getelementptr inbounds ptr, ptr %271, i64 %.49041100
  %273 = load ptr, ptr %272, align 8, !tbaa !10
  %274 = getelementptr inbounds i8, ptr %273, i64 16
  %275 = load double, ptr %274, align 8, !tbaa !12
  %276 = insertelement <2 x double> poison, double %270, i64 0
  %277 = insertelement <2 x double> %276, double %228, i64 1
  %278 = fmul <2 x double> %98, %277
  %279 = insertelement <2 x double> poison, double %275, i64 0
  %280 = insertelement <2 x double> %279, double %247, i64 1
  %281 = fmul <2 x double> %278, %280
  %282 = getelementptr inbounds i8, ptr %268, i64 16
  %283 = load double, ptr %282, align 8, !tbaa !12
  %284 = insertelement <2 x double> poison, double %283, i64 0
  %285 = insertelement <2 x double> %284, double %249, i64 1
  %286 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %281, <2 x double> %285, <2 x double> %244)
  br i1 %exitcond1292.not.2, label %371, label %287, !llvm.loop !19

287:                                              ; preds = %245
  %288 = getelementptr inbounds i8, ptr %273, i64 24
  %289 = load double, ptr %288, align 8, !tbaa !12
  %290 = getelementptr inbounds i8, ptr %268, i64 24
  %291 = load double, ptr %290, align 8, !tbaa !12
  %292 = load ptr, ptr %27, align 8, !tbaa !7
  %293 = getelementptr inbounds double, ptr %292, i64 %.49041100
  %294 = load double, ptr %293, align 8, !tbaa !12
  %295 = fmul double %79, %289
  %296 = call double @llvm.fmuladd.f64(double %295, double %291, double %294)
  store double %296, ptr %293, align 8, !tbaa !12
  %297 = load ptr, ptr %28, align 8, !tbaa !7
  %298 = getelementptr inbounds double, ptr %297, i64 %.49041100
  %299 = load double, ptr %298, align 8, !tbaa !12
  %300 = load ptr, ptr %21, align 8, !tbaa !7
  %301 = getelementptr inbounds ptr, ptr %300, i64 %.49041100
  %302 = load ptr, ptr %301, align 8, !tbaa !10
  %303 = getelementptr inbounds i8, ptr %302, i64 24
  %304 = load double, ptr %303, align 8, !tbaa !12
  %305 = fmul double %79, %304
  %306 = load ptr, ptr %26, align 8, !tbaa !7
  %307 = getelementptr inbounds i8, ptr %306, i64 24
  %308 = load double, ptr %307, align 8, !tbaa !12
  %309 = call double @llvm.fmuladd.f64(double %305, double %308, double %299)
  store double %309, ptr %298, align 8, !tbaa !12
  %310 = load ptr, ptr %26, align 8, !tbaa !7
  %311 = getelementptr inbounds double, ptr %310, i64 %.49041100
  %312 = load double, ptr %311, align 8, !tbaa !12
  %313 = load ptr, ptr %21, align 8, !tbaa !7
  %314 = getelementptr inbounds ptr, ptr %313, i64 %.49041100
  %315 = load ptr, ptr %314, align 8, !tbaa !10
  %316 = getelementptr inbounds i8, ptr %315, i64 24
  %317 = load double, ptr %316, align 8, !tbaa !12
  %318 = insertelement <2 x double> poison, double %312, i64 0
  %319 = insertelement <2 x double> %318, double %270, i64 1
  %320 = fmul <2 x double> %98, %319
  %321 = insertelement <2 x double> poison, double %317, i64 0
  %322 = insertelement <2 x double> %321, double %289, i64 1
  %323 = fmul <2 x double> %320, %322
  %324 = getelementptr inbounds i8, ptr %310, i64 24
  %325 = load double, ptr %324, align 8, !tbaa !12
  %326 = insertelement <2 x double> poison, double %325, i64 0
  %327 = insertelement <2 x double> %326, double %291, i64 1
  %328 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %323, <2 x double> %327, <2 x double> %286)
  br i1 %exitcond1292.not.3, label %371, label %329, !llvm.loop !19

329:                                              ; preds = %287
  %330 = getelementptr inbounds i8, ptr %315, i64 32
  %331 = load double, ptr %330, align 8, !tbaa !12
  %332 = getelementptr inbounds i8, ptr %310, i64 32
  %333 = load double, ptr %332, align 8, !tbaa !12
  %334 = load ptr, ptr %27, align 8, !tbaa !7
  %335 = getelementptr inbounds double, ptr %334, i64 %.49041100
  %336 = load double, ptr %335, align 8, !tbaa !12
  %337 = fmul double %79, %331
  %338 = call double @llvm.fmuladd.f64(double %337, double %333, double %336)
  store double %338, ptr %335, align 8, !tbaa !12
  %339 = load ptr, ptr %28, align 8, !tbaa !7
  %340 = getelementptr inbounds double, ptr %339, i64 %.49041100
  %341 = load double, ptr %340, align 8, !tbaa !12
  %342 = load ptr, ptr %21, align 8, !tbaa !7
  %343 = getelementptr inbounds ptr, ptr %342, i64 %.49041100
  %344 = load ptr, ptr %343, align 8, !tbaa !10
  %345 = getelementptr inbounds i8, ptr %344, i64 32
  %346 = load double, ptr %345, align 8, !tbaa !12
  %347 = fmul double %79, %346
  %348 = load ptr, ptr %26, align 8, !tbaa !7
  %349 = getelementptr inbounds i8, ptr %348, i64 32
  %350 = load double, ptr %349, align 8, !tbaa !12
  %351 = call double @llvm.fmuladd.f64(double %347, double %350, double %341)
  store double %351, ptr %340, align 8, !tbaa !12
  %352 = load ptr, ptr %26, align 8, !tbaa !7
  %353 = getelementptr inbounds double, ptr %352, i64 %.49041100
  %354 = load double, ptr %353, align 8, !tbaa !12
  %355 = load ptr, ptr %21, align 8, !tbaa !7
  %356 = getelementptr inbounds ptr, ptr %355, i64 %.49041100
  %357 = load ptr, ptr %356, align 8, !tbaa !10
  %358 = getelementptr inbounds i8, ptr %357, i64 32
  %359 = load double, ptr %358, align 8, !tbaa !12
  %360 = insertelement <2 x double> poison, double %354, i64 0
  %361 = insertelement <2 x double> %360, double %312, i64 1
  %362 = fmul <2 x double> %98, %361
  %363 = insertelement <2 x double> poison, double %359, i64 0
  %364 = insertelement <2 x double> %363, double %331, i64 1
  %365 = fmul <2 x double> %362, %364
  %366 = getelementptr inbounds i8, ptr %352, i64 32
  %367 = load double, ptr %366, align 8, !tbaa !12
  %368 = insertelement <2 x double> poison, double %367, i64 0
  %369 = insertelement <2 x double> %368, double %333, i64 1
  %370 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %365, <2 x double> %369, <2 x double> %328)
  br label %371

371:                                              ; preds = %329, %287, %245, %203, %113
  %.lcssa1444 = phi ptr [ %186, %113 ], [ %226, %203 ], [ %268, %245 ], [ %310, %287 ], [ %352, %329 ]
  %.lcssa1443 = phi <2 x double> [ %202, %113 ], [ %244, %203 ], [ %286, %245 ], [ %328, %287 ], [ %370, %329 ]
  %372 = add nuw nsw i64 %.49041100, 1
  %exitcond1293.not = icmp eq i64 %372, %.09251115
  br i1 %exitcond1293.not, label %.preheader1078, label %113, !llvm.loop !20

373:                                              ; preds = %.lr.ph1107, %462
  %.28711106 = phi double [ %111, %.lr.ph1107 ], [ %463, %462 ]
  %.59051105 = phi i64 [ 0, %.lr.ph1107 ], [ %464, %462 ]
  %374 = load ptr, ptr %24, align 8, !tbaa !7
  %375 = getelementptr inbounds ptr, ptr %374, i64 %.59051105
  %376 = load ptr, ptr %375, align 8, !tbaa !10
  %377 = load ptr, ptr %26, align 8, !tbaa !7
  %378 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %31)
  %379 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %376, i64 noundef 1, ptr noundef %377, i64 noundef 1, i64 noundef %378)
  store double %379, ptr %5, align 8, !tbaa !12
  %380 = load ptr, ptr %25, align 8, !tbaa !7
  %381 = getelementptr inbounds double, ptr %380, i64 %.59051105
  %382 = load double, ptr %381, align 8, !tbaa !12
  %383 = fsub double %379, %382
  %384 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %383, ptr noundef %1)
  %385 = load ptr, ptr %27, align 8, !tbaa !7
  %386 = load double, ptr %385, align 8, !tbaa !12
  %387 = load double, ptr %5, align 8, !tbaa !12
  %388 = load ptr, ptr %25, align 8, !tbaa !7
  %389 = getelementptr inbounds double, ptr %388, i64 %.59051105
  %390 = load double, ptr %389, align 8, !tbaa !12
  %391 = fsub double %387, %390
  %392 = fmul double %80, %391
  %393 = load ptr, ptr %24, align 8, !tbaa !7
  %394 = getelementptr inbounds ptr, ptr %393, i64 %.59051105
  %395 = load ptr, ptr %394, align 8, !tbaa !10
  %396 = load double, ptr %395, align 8, !tbaa !12
  %397 = call double @llvm.fmuladd.f64(double %392, double %396, double %386)
  store double %397, ptr %385, align 8, !tbaa !12
  br i1 %exitcond1294.not, label %462, label %398, !llvm.loop !21

398:                                              ; preds = %373
  %399 = load ptr, ptr %27, align 8, !tbaa !7
  %400 = getelementptr inbounds i8, ptr %399, i64 8
  %401 = load double, ptr %400, align 8, !tbaa !12
  %402 = load double, ptr %5, align 8, !tbaa !12
  %403 = load ptr, ptr %25, align 8, !tbaa !7
  %404 = getelementptr inbounds double, ptr %403, i64 %.59051105
  %405 = load double, ptr %404, align 8, !tbaa !12
  %406 = fsub double %402, %405
  %407 = fmul double %80, %406
  %408 = load ptr, ptr %24, align 8, !tbaa !7
  %409 = getelementptr inbounds ptr, ptr %408, i64 %.59051105
  %410 = load ptr, ptr %409, align 8, !tbaa !10
  %411 = getelementptr inbounds i8, ptr %410, i64 8
  %412 = load double, ptr %411, align 8, !tbaa !12
  %413 = call double @llvm.fmuladd.f64(double %407, double %412, double %401)
  store double %413, ptr %400, align 8, !tbaa !12
  br i1 %exitcond1294.not.1, label %462, label %414, !llvm.loop !21

414:                                              ; preds = %398
  %415 = load ptr, ptr %27, align 8, !tbaa !7
  %416 = getelementptr inbounds i8, ptr %415, i64 16
  %417 = load double, ptr %416, align 8, !tbaa !12
  %418 = load double, ptr %5, align 8, !tbaa !12
  %419 = load ptr, ptr %25, align 8, !tbaa !7
  %420 = getelementptr inbounds double, ptr %419, i64 %.59051105
  %421 = load double, ptr %420, align 8, !tbaa !12
  %422 = fsub double %418, %421
  %423 = fmul double %80, %422
  %424 = load ptr, ptr %24, align 8, !tbaa !7
  %425 = getelementptr inbounds ptr, ptr %424, i64 %.59051105
  %426 = load ptr, ptr %425, align 8, !tbaa !10
  %427 = getelementptr inbounds i8, ptr %426, i64 16
  %428 = load double, ptr %427, align 8, !tbaa !12
  %429 = call double @llvm.fmuladd.f64(double %423, double %428, double %417)
  store double %429, ptr %416, align 8, !tbaa !12
  br i1 %exitcond1294.not.2, label %462, label %430, !llvm.loop !21

430:                                              ; preds = %414
  %431 = load ptr, ptr %27, align 8, !tbaa !7
  %432 = getelementptr inbounds i8, ptr %431, i64 24
  %433 = load double, ptr %432, align 8, !tbaa !12
  %434 = load double, ptr %5, align 8, !tbaa !12
  %435 = load ptr, ptr %25, align 8, !tbaa !7
  %436 = getelementptr inbounds double, ptr %435, i64 %.59051105
  %437 = load double, ptr %436, align 8, !tbaa !12
  %438 = fsub double %434, %437
  %439 = fmul double %80, %438
  %440 = load ptr, ptr %24, align 8, !tbaa !7
  %441 = getelementptr inbounds ptr, ptr %440, i64 %.59051105
  %442 = load ptr, ptr %441, align 8, !tbaa !10
  %443 = getelementptr inbounds i8, ptr %442, i64 24
  %444 = load double, ptr %443, align 8, !tbaa !12
  %445 = call double @llvm.fmuladd.f64(double %439, double %444, double %433)
  store double %445, ptr %432, align 8, !tbaa !12
  br i1 %exitcond1294.not.3, label %462, label %446, !llvm.loop !21

446:                                              ; preds = %430
  %447 = load ptr, ptr %27, align 8, !tbaa !7
  %448 = getelementptr inbounds i8, ptr %447, i64 32
  %449 = load double, ptr %448, align 8, !tbaa !12
  %450 = load double, ptr %5, align 8, !tbaa !12
  %451 = load ptr, ptr %25, align 8, !tbaa !7
  %452 = getelementptr inbounds double, ptr %451, i64 %.59051105
  %453 = load double, ptr %452, align 8, !tbaa !12
  %454 = fsub double %450, %453
  %455 = fmul double %80, %454
  %456 = load ptr, ptr %24, align 8, !tbaa !7
  %457 = getelementptr inbounds ptr, ptr %456, i64 %.59051105
  %458 = load ptr, ptr %457, align 8, !tbaa !10
  %459 = getelementptr inbounds i8, ptr %458, i64 32
  %460 = load double, ptr %459, align 8, !tbaa !12
  %461 = call double @llvm.fmuladd.f64(double %455, double %460, double %449)
  store double %461, ptr %448, align 8, !tbaa !12
  br label %462

462:                                              ; preds = %446, %430, %414, %398, %373
  %463 = call double @llvm.fmuladd.f64(double %112, double %384, double %.28711106)
  %464 = add nuw nsw i64 %.59051105, 1
  %exitcond1295.not = icmp eq i64 %464, %.09181113
  br i1 %exitcond1295.not, label %._crit_edge1108, label %373, !llvm.loop !22

._crit_edge1108:                                  ; preds = %462, %.preheader1078
  %.2871.lcssa = phi double [ %111, %.preheader1078 ], [ %463, %462 ]
  %465 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %465, ptr %5, align 8, !tbaa !12
  br i1 %.11114, label %.critedge, label %466

466:                                              ; preds = %._crit_edge1108
  %467 = fsub double %.2871.lcssa, %465
  %468 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %467, ptr noundef %1)
  %469 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %468, double noundef 0x3D95FD7FE1796496)
  call void @_ZN11alglib_impl8cqmevalxEPNS_20convexquadraticmodelEPNS_9ae_vectorEPdS4_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %1)
  br i1 %469, label %.critedge1030.thread, label %470

470:                                              ; preds = %466
  %471 = load double, ptr %5, align 8, !tbaa !12
  %472 = fsub double %.2871.lcssa, %471
  %473 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %472, ptr noundef %1)
  %474 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %473, double noundef 0x3D95FD7FE1796496)
  br i1 %474, label %.critedge1030.thread, label %475

.critedge:                                        ; preds = %._crit_edge1108
  call void @_ZN11alglib_impl8cqmevalxEPNS_20convexquadraticmodelEPNS_9ae_vectorEPdS4_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %1)
  br label %.critedge1030.thread

475:                                              ; preds = %470
  %476 = load double, ptr %6, align 8, !tbaa !12
  %477 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %476, double noundef 0.000000e+00)
  br i1 %477, label %.critedge1030.thread, label %.critedge1030

.critedge1030.thread:                             ; preds = %475, %470, %.critedge, %466
  %478 = call noundef double @_ZN11alglib_impl9cqmxtadx2EPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef nonnull %17, ptr noundef %1)
  store double %478, ptr %5, align 8, !tbaa !12
  br label %487

.critedge1030:                                    ; preds = %475
  %479 = load double, ptr %6, align 8, !tbaa !12
  %480 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %479, double noundef 0x3D95FD7FE1796496)
  %481 = call noundef double @_ZN11alglib_impl9cqmxtadx2EPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef nonnull %17, ptr noundef %1)
  store double %481, ptr %5, align 8, !tbaa !12
  br i1 %480, label %487, label %482

482:                                              ; preds = %.critedge1030
  %483 = extractelement <2 x double> %.lcssa1443, i64 0
  %484 = fsub double %483, %481
  %485 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %484, ptr noundef %1)
  %486 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %485, double noundef 0x3D95FD7FE1796496)
  br label %487

487:                                              ; preds = %.critedge1030.thread, %482, %.critedge1030
  %488 = phi i1 [ true, %.critedge1030 ], [ %486, %482 ], [ true, %.critedge1030.thread ]
  call void @_ZN11alglib_impl20cqmgradunconstrainedEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef nonnull %16, ptr noundef %1)
  br label %489

489:                                              ; preds = %487, %500
  %.2.in1110 = phi i1 [ %488, %487 ], [ %501, %500 ]
  %.69061109 = phi i64 [ 0, %487 ], [ %502, %500 ]
  br i1 %.2.in1110, label %500, label %490

490:                                              ; preds = %489
  %491 = load ptr, ptr %27, align 8, !tbaa !7
  %492 = getelementptr inbounds double, ptr %491, i64 %.69061109
  %493 = load double, ptr %492, align 8, !tbaa !12
  %494 = load ptr, ptr %29, align 8, !tbaa !7
  %495 = getelementptr inbounds double, ptr %494, i64 %.69061109
  %496 = load double, ptr %495, align 8, !tbaa !12
  %497 = fsub double %493, %496
  %498 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %497, ptr noundef %1)
  %499 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %498, double noundef 0x3D95FD7FE1796496)
  br label %500

500:                                              ; preds = %490, %489
  %501 = phi i1 [ true, %489 ], [ %499, %490 ]
  %502 = add nuw nsw i64 %.69061109, 1
  %exitcond1296.not = icmp eq i64 %502, %.09251115
  br i1 %exitcond1296.not, label %503, label %489, !llvm.loop !23

503:                                              ; preds = %500
  call void @_ZN11alglib_impl6cqmadxEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef nonnull %18, ptr noundef %1)
  br label %504

504:                                              ; preds = %503, %515
  %.3.in1112 = phi i1 [ %501, %503 ], [ %516, %515 ]
  %.79071111 = phi i64 [ 0, %503 ], [ %517, %515 ]
  br i1 %.3.in1112, label %515, label %505

505:                                              ; preds = %504
  %506 = load ptr, ptr %30, align 8, !tbaa !7
  %507 = getelementptr inbounds double, ptr %506, i64 %.79071111
  %508 = load double, ptr %507, align 8, !tbaa !12
  %509 = load ptr, ptr %28, align 8, !tbaa !7
  %510 = getelementptr inbounds double, ptr %509, i64 %.79071111
  %511 = load double, ptr %510, align 8, !tbaa !12
  %512 = fsub double %508, %511
  %513 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %512, ptr noundef %1)
  %514 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %513, double noundef 0x3D95FD7FE1796496)
  br label %515

515:                                              ; preds = %505, %504
  %516 = phi i1 [ true, %504 ], [ %514, %505 ]
  %517 = add nuw nsw i64 %.79071111, 1
  %exitcond1297.not = icmp eq i64 %517, %.09251115
  br i1 %exitcond1297.not, label %518, label %504, !llvm.loop !24

518:                                              ; preds = %515
  %519 = add nuw nsw i64 %.09181113, 1
  %exitcond1298.not = icmp eq i64 %519, %indvars.iv
  br i1 %exitcond1298.not, label %520, label %32, !llvm.loop !25

520:                                              ; preds = %518
  %521 = add nuw nsw i64 %.09251115, 1
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 2
  %exitcond1299.not = icmp eq i64 %521, 6
  br i1 %exitcond1299.not, label %522, label %.preheader1081, !llvm.loop !26

522:                                              ; preds = %520
  %523 = getelementptr inbounds i8, ptr %13, i64 56
  %524 = getelementptr inbounds i8, ptr %20, i64 56
  br label %.preheader1075

.preheader1075:                                   ; preds = %522, %826
  %indvars.iv1307 = phi i64 [ 3, %522 ], [ %indvars.iv.next1308, %826 ]
  %.08651143 = phi i1 [ false, %522 ], [ %824, %826 ]
  %.19261142 = phi i64 [ 1, %522 ], [ %827, %826 ]
  %525 = add nsw i64 %.19261142, -1
  %exitcond1304.not = icmp eq i64 %.19261142, 1
  %exitcond1304.not.1 = icmp eq i64 %.19261142, 2
  %exitcond1304.not.2 = icmp eq i64 %.19261142, 3
  %exitcond1304.not.3 = icmp eq i64 %.19261142, 4
  %exitcond1305.not = icmp eq i64 %.19261142, 1
  %exitcond1304.not.1.1 = icmp eq i64 %.19261142, 2
  %exitcond1304.not.2.1 = icmp eq i64 %.19261142, 3
  %exitcond1304.not.3.1 = icmp eq i64 %.19261142, 4
  %exitcond1305.not.1 = icmp eq i64 %.19261142, 2
  %exitcond1304.not.2.2 = icmp eq i64 %.19261142, 3
  %exitcond1304.not.3.2 = icmp eq i64 %.19261142, 4
  %exitcond1305.not.2 = icmp eq i64 %.19261142, 3
  %exitcond1304.not.3.3 = icmp eq i64 %.19261142, 4
  %exitcond1305.not.3 = icmp eq i64 %.19261142, 4
  br label %526

526:                                              ; preds = %.preheader1075, %.critedge1033
  %.18661141 = phi i1 [ %.08651143, %.preheader1075 ], [ %824, %.critedge1033 ]
  %.19191140 = phi i64 [ 0, %.preheader1075 ], [ %825, %.critedge1033 ]
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.19261142, i64 noundef %.19261142, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef %.19261142, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.19261142, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.19261142, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %20, i64 noundef %.19261142, ptr noundef %1)
  %.not1006 = icmp eq i64 %.19191140, 0
  br i1 %.not1006, label %528, label %527

527:                                              ; preds = %526
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.19191140, i64 noundef %.19261142, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.19191140, ptr noundef %1)
  br label %528

528:                                              ; preds = %527, %526
  %529 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %530 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  br label %.backedge

.loopexit1071:                                    ; preds = %.lr.ph1123
  %exitcond1301.not = icmp eq i64 %551, %.19261142
  br i1 %exitcond1301.not, label %.lr.ph1127, label %.backedge.backedge

.backedge.backedge:                               ; preds = %.loopexit1071, %.loopexit1071.thread
  br label %.backedge, !llvm.loop !27

.loopexit1071.thread:                             ; preds = %.preheader1070
  %exitcond1301.not1374 = icmp eq i64 %551, %.19261142
  br i1 %exitcond1301.not1374, label %._crit_edge1128, label %.backedge.backedge

.backedge:                                        ; preds = %.backedge.backedge, %528
  %.89081124 = phi i64 [ 0, %528 ], [ %551, %.backedge.backedge ]
  %531 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %532 = fadd double %531, 1.000000e+00
  %533 = fmul double %532, 1.000000e+01
  %534 = load ptr, ptr %21, align 8, !tbaa !7
  %535 = getelementptr inbounds ptr, ptr %534, i64 %.89081124
  %536 = load ptr, ptr %535, align 8, !tbaa !10
  %537 = getelementptr inbounds double, ptr %536, i64 %.89081124
  store double %533, ptr %537, align 8, !tbaa !12
  %538 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %539 = call double @llvm.fmuladd.f64(double %538, double 2.000000e+00, double -1.000000e+00)
  %540 = load ptr, ptr %22, align 8, !tbaa !7
  %541 = getelementptr inbounds double, ptr %540, i64 %.89081124
  store double %539, ptr %541, align 8, !tbaa !12
  %542 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %543 = call double @llvm.fmuladd.f64(double %542, double 2.000000e+00, double -1.000000e+00)
  %544 = load ptr, ptr %523, align 8, !tbaa !7
  %545 = getelementptr inbounds double, ptr %544, i64 %.89081124
  store double %543, ptr %545, align 8, !tbaa !12
  %546 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %547 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %546, double noundef 5.000000e-01)
  %548 = load ptr, ptr %524, align 8, !tbaa !7
  %549 = getelementptr inbounds i8, ptr %548, i64 %.89081124
  %550 = zext i1 %547 to i8
  store i8 %550, ptr %549, align 1, !tbaa !28
  %551 = add nuw nsw i64 %.89081124, 1
  %.not1013.not1117 = icmp ult i64 %551, %.19261142
  br i1 %.not1013.not1117, label %.lr.ph1120, label %.preheader1070

.preheader1070:                                   ; preds = %.lr.ph1120, %.backedge
  br i1 %.not1006, label %.loopexit1071.thread, label %.lr.ph1123

.lr.ph1120:                                       ; preds = %.backedge, %.lr.ph1120
  %.48861118 = phi i64 [ %562, %.lr.ph1120 ], [ %551, %.backedge ]
  %552 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %553 = call double @llvm.fmuladd.f64(double %552, double 1.000000e-01, double -5.000000e-02)
  %554 = load ptr, ptr %21, align 8, !tbaa !7
  %555 = getelementptr inbounds ptr, ptr %554, i64 %.89081124
  %556 = load ptr, ptr %555, align 8, !tbaa !10
  %557 = getelementptr inbounds double, ptr %556, i64 %.48861118
  store double %553, ptr %557, align 8, !tbaa !12
  %558 = load ptr, ptr %21, align 8, !tbaa !7
  %559 = getelementptr inbounds ptr, ptr %558, i64 %.48861118
  %560 = load ptr, ptr %559, align 8, !tbaa !10
  %561 = getelementptr inbounds double, ptr %560, i64 %.89081124
  store double %553, ptr %561, align 8, !tbaa !12
  %562 = add nuw nsw i64 %.48861118, 1
  %.not1013.not = icmp ult i64 %562, %.19261142
  br i1 %.not1013.not, label %.lr.ph1120, label %.preheader1070, !llvm.loop !30

.lr.ph1123:                                       ; preds = %.preheader1070, %.lr.ph1123
  %.58871122 = phi i64 [ %569, %.lr.ph1123 ], [ 0, %.preheader1070 ]
  %563 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %564 = call double @llvm.fmuladd.f64(double %563, double 2.000000e+00, double -1.000000e+00)
  %565 = load ptr, ptr %24, align 8, !tbaa !7
  %566 = getelementptr inbounds ptr, ptr %565, i64 %.58871122
  %567 = load ptr, ptr %566, align 8, !tbaa !10
  %568 = getelementptr inbounds double, ptr %567, i64 %.89081124
  store double %564, ptr %568, align 8, !tbaa !12
  %569 = add nuw nsw i64 %.58871122, 1
  %exitcond1300.not = icmp eq i64 %569, %.19191140
  br i1 %exitcond1300.not, label %.loopexit1071, label %.lr.ph1123, !llvm.loop !31

.lr.ph1127:                                       ; preds = %.loopexit1071, %.lr.ph1127
  %.99091126 = phi i64 [ %574, %.lr.ph1127 ], [ 0, %.loopexit1071 ]
  %570 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %571 = call double @llvm.fmuladd.f64(double %570, double 2.000000e+00, double -1.000000e+00)
  %572 = load ptr, ptr %25, align 8, !tbaa !7
  %573 = getelementptr inbounds double, ptr %572, i64 %.99091126
  store double %571, ptr %573, align 8, !tbaa !12
  %574 = add nuw nsw i64 %.99091126, 1
  %exitcond1302.not = icmp eq i64 %574, %.19191140
  br i1 %exitcond1302.not, label %._crit_edge1128, label %.lr.ph1127, !llvm.loop !32

._crit_edge1128:                                  ; preds = %.loopexit1071.thread, %.lr.ph1127
  %575 = fadd double %529, 1.000000e+00
  %576 = fadd double %530, 1.000000e+00
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %.19261142, ptr noundef nonnull %4, ptr noundef %1)
  %577 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %578 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %577, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %7, i1 noundef zeroext %578, double noundef %575, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %9, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef nonnull %10, i64 noundef %.19191140, double noundef %576, ptr noundef %1)
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %13, ptr noundef nonnull %20, ptr noundef %1)
  br label %592

.preheader1073:                                   ; preds = %607
  %579 = load ptr, ptr %523, align 8, !tbaa !7
  %580 = load ptr, ptr %22, align 8, !tbaa !7
  %581 = fmul double %575, 5.000000e-01
  %582 = load ptr, ptr %21, align 8, !tbaa !7
  %583 = load double, ptr %579, align 8, !tbaa !12
  %584 = fmul double %581, %583
  %585 = load ptr, ptr %582, align 8, !tbaa !10
  %586 = load double, ptr %580, align 8, !tbaa !12
  %587 = call double @llvm.fmuladd.f64(double %583, double %586, double 0.000000e+00)
  %588 = load double, ptr %585, align 8, !tbaa !12
  %589 = fmul double %584, %588
  %590 = load double, ptr %579, align 8, !tbaa !12
  %591 = call double @llvm.fmuladd.f64(double %589, double %590, double %587)
  br i1 %exitcond1304.not, label %638, label %610, !llvm.loop !33

592:                                              ; preds = %._crit_edge1128, %607
  %.109101129 = phi i64 [ 0, %._crit_edge1128 ], [ %608, %607 ]
  %593 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %594 = call double @llvm.fmuladd.f64(double %593, double 2.000000e+00, double -1.000000e+00)
  %595 = load ptr, ptr %26, align 8, !tbaa !7
  %596 = getelementptr inbounds double, ptr %595, i64 %.109101129
  store double %594, ptr %596, align 8, !tbaa !12
  %597 = load ptr, ptr %524, align 8, !tbaa !7
  %598 = getelementptr inbounds i8, ptr %597, i64 %.109101129
  %599 = load i8, ptr %598, align 1, !tbaa !28, !range !34, !noundef !35
  %600 = trunc nuw i8 %599 to i1
  br i1 %600, label %607, label %601

601:                                              ; preds = %592
  %602 = load ptr, ptr %26, align 8, !tbaa !7
  %603 = getelementptr inbounds double, ptr %602, i64 %.109101129
  %604 = load double, ptr %603, align 8, !tbaa !12
  %605 = load ptr, ptr %523, align 8, !tbaa !7
  %606 = getelementptr inbounds double, ptr %605, i64 %.109101129
  store double %604, ptr %606, align 8, !tbaa !12
  br label %607

607:                                              ; preds = %592, %601
  %608 = add nuw nsw i64 %.109101129, 1
  %exitcond1303.not = icmp eq i64 %608, %.19261142
  br i1 %exitcond1303.not, label %.preheader1073, label %592, !llvm.loop !36

.preheader1072:                                   ; preds = %759, %758, %719, %679, %638
  %.lcssa1439.lcssa = phi double [ %.lcssa1439, %638 ], [ %.lcssa1439.1, %679 ], [ %.lcssa1439.2, %719 ], [ %.lcssa1439.3, %758 ], [ %795, %759 ]
  br i1 %.not1006, label %._crit_edge1138, label %.lr.ph1137

.lr.ph1137:                                       ; preds = %.preheader1072
  %609 = fmul double %576, 5.000000e-01
  br label %796

610:                                              ; preds = %.preheader1073
  %611 = getelementptr inbounds i8, ptr %585, i64 8
  %612 = load double, ptr %611, align 8, !tbaa !12
  %613 = fmul double %584, %612
  %614 = getelementptr inbounds i8, ptr %579, i64 8
  %615 = load double, ptr %614, align 8, !tbaa !12
  %616 = call double @llvm.fmuladd.f64(double %613, double %615, double %591)
  br i1 %exitcond1304.not.1, label %638, label %617, !llvm.loop !33

617:                                              ; preds = %610
  %618 = getelementptr inbounds i8, ptr %585, i64 16
  %619 = load double, ptr %618, align 8, !tbaa !12
  %620 = fmul double %584, %619
  %621 = getelementptr inbounds i8, ptr %579, i64 16
  %622 = load double, ptr %621, align 8, !tbaa !12
  %623 = call double @llvm.fmuladd.f64(double %620, double %622, double %616)
  br i1 %exitcond1304.not.2, label %638, label %624, !llvm.loop !33

624:                                              ; preds = %617
  %625 = getelementptr inbounds i8, ptr %585, i64 24
  %626 = load double, ptr %625, align 8, !tbaa !12
  %627 = fmul double %584, %626
  %628 = getelementptr inbounds i8, ptr %579, i64 24
  %629 = load double, ptr %628, align 8, !tbaa !12
  %630 = call double @llvm.fmuladd.f64(double %627, double %629, double %623)
  br i1 %exitcond1304.not.3, label %638, label %631, !llvm.loop !33

631:                                              ; preds = %624
  %632 = getelementptr inbounds i8, ptr %585, i64 32
  %633 = load double, ptr %632, align 8, !tbaa !12
  %634 = fmul double %584, %633
  %635 = getelementptr inbounds i8, ptr %579, i64 32
  %636 = load double, ptr %635, align 8, !tbaa !12
  %637 = call double @llvm.fmuladd.f64(double %634, double %636, double %630)
  br label %638

638:                                              ; preds = %631, %624, %617, %610, %.preheader1073
  %.lcssa1439 = phi double [ %591, %.preheader1073 ], [ %616, %610 ], [ %623, %617 ], [ %630, %624 ], [ %637, %631 ]
  br i1 %exitcond1305.not, label %.preheader1072, label %639, !llvm.loop !37

639:                                              ; preds = %638
  %640 = getelementptr inbounds i8, ptr %579, i64 8
  %641 = load double, ptr %640, align 8, !tbaa !12
  %642 = fmul double %581, %641
  %643 = getelementptr inbounds i8, ptr %582, i64 8
  %644 = load ptr, ptr %643, align 8, !tbaa !10
  %645 = load double, ptr %644, align 8, !tbaa !12
  %646 = fmul double %642, %645
  %647 = load double, ptr %579, align 8, !tbaa !12
  %648 = getelementptr inbounds i8, ptr %580, i64 8
  %649 = load double, ptr %648, align 8, !tbaa !12
  %650 = call double @llvm.fmuladd.f64(double %641, double %649, double %.lcssa1439)
  %651 = call double @llvm.fmuladd.f64(double %646, double %647, double %650)
  %652 = getelementptr inbounds i8, ptr %644, i64 8
  %653 = load double, ptr %652, align 8, !tbaa !12
  %654 = fmul double %642, %653
  %655 = getelementptr inbounds i8, ptr %579, i64 8
  %656 = load double, ptr %655, align 8, !tbaa !12
  %657 = call double @llvm.fmuladd.f64(double %654, double %656, double %651)
  br i1 %exitcond1304.not.1.1, label %679, label %658, !llvm.loop !33

658:                                              ; preds = %639
  %659 = getelementptr inbounds i8, ptr %644, i64 16
  %660 = load double, ptr %659, align 8, !tbaa !12
  %661 = fmul double %642, %660
  %662 = getelementptr inbounds i8, ptr %579, i64 16
  %663 = load double, ptr %662, align 8, !tbaa !12
  %664 = call double @llvm.fmuladd.f64(double %661, double %663, double %657)
  br i1 %exitcond1304.not.2.1, label %679, label %665, !llvm.loop !33

665:                                              ; preds = %658
  %666 = getelementptr inbounds i8, ptr %644, i64 24
  %667 = load double, ptr %666, align 8, !tbaa !12
  %668 = fmul double %642, %667
  %669 = getelementptr inbounds i8, ptr %579, i64 24
  %670 = load double, ptr %669, align 8, !tbaa !12
  %671 = call double @llvm.fmuladd.f64(double %668, double %670, double %664)
  br i1 %exitcond1304.not.3.1, label %679, label %672, !llvm.loop !33

672:                                              ; preds = %665
  %673 = getelementptr inbounds i8, ptr %644, i64 32
  %674 = load double, ptr %673, align 8, !tbaa !12
  %675 = fmul double %642, %674
  %676 = getelementptr inbounds i8, ptr %579, i64 32
  %677 = load double, ptr %676, align 8, !tbaa !12
  %678 = call double @llvm.fmuladd.f64(double %675, double %677, double %671)
  br label %679

679:                                              ; preds = %672, %665, %658, %639
  %.lcssa1439.1 = phi double [ %657, %639 ], [ %664, %658 ], [ %671, %665 ], [ %678, %672 ]
  br i1 %exitcond1305.not.1, label %.preheader1072, label %680, !llvm.loop !37

680:                                              ; preds = %679
  %681 = getelementptr inbounds i8, ptr %579, i64 16
  %682 = load double, ptr %681, align 8, !tbaa !12
  %683 = fmul double %581, %682
  %684 = getelementptr inbounds i8, ptr %582, i64 16
  %685 = load ptr, ptr %684, align 8, !tbaa !10
  %686 = getelementptr inbounds i8, ptr %685, i64 8
  %687 = load double, ptr %686, align 8, !tbaa !12
  %688 = fmul double %683, %687
  %689 = getelementptr inbounds i8, ptr %579, i64 8
  %690 = load double, ptr %689, align 8, !tbaa !12
  %691 = load double, ptr %685, align 8, !tbaa !12
  %692 = fmul double %683, %691
  %693 = load double, ptr %579, align 8, !tbaa !12
  %694 = getelementptr inbounds i8, ptr %580, i64 16
  %695 = load double, ptr %694, align 8, !tbaa !12
  %696 = call double @llvm.fmuladd.f64(double %682, double %695, double %.lcssa1439.1)
  %697 = call double @llvm.fmuladd.f64(double %692, double %693, double %696)
  %698 = call double @llvm.fmuladd.f64(double %688, double %690, double %697)
  %699 = getelementptr inbounds i8, ptr %685, i64 16
  %700 = load double, ptr %699, align 8, !tbaa !12
  %701 = fmul double %683, %700
  %702 = getelementptr inbounds i8, ptr %579, i64 16
  %703 = load double, ptr %702, align 8, !tbaa !12
  %704 = call double @llvm.fmuladd.f64(double %701, double %703, double %698)
  br i1 %exitcond1304.not.2.2, label %719, label %705, !llvm.loop !33

705:                                              ; preds = %680
  %706 = getelementptr inbounds i8, ptr %685, i64 24
  %707 = load double, ptr %706, align 8, !tbaa !12
  %708 = fmul double %683, %707
  %709 = getelementptr inbounds i8, ptr %579, i64 24
  %710 = load double, ptr %709, align 8, !tbaa !12
  %711 = call double @llvm.fmuladd.f64(double %708, double %710, double %704)
  br i1 %exitcond1304.not.3.2, label %719, label %712, !llvm.loop !33

712:                                              ; preds = %705
  %713 = getelementptr inbounds i8, ptr %685, i64 32
  %714 = load double, ptr %713, align 8, !tbaa !12
  %715 = fmul double %683, %714
  %716 = getelementptr inbounds i8, ptr %579, i64 32
  %717 = load double, ptr %716, align 8, !tbaa !12
  %718 = call double @llvm.fmuladd.f64(double %715, double %717, double %711)
  br label %719

719:                                              ; preds = %712, %705, %680
  %.lcssa1439.2 = phi double [ %704, %680 ], [ %711, %705 ], [ %718, %712 ]
  br i1 %exitcond1305.not.2, label %.preheader1072, label %720, !llvm.loop !37

720:                                              ; preds = %719
  %721 = getelementptr inbounds i8, ptr %579, i64 24
  %722 = load double, ptr %721, align 8, !tbaa !12
  %723 = fmul double %581, %722
  %724 = getelementptr inbounds i8, ptr %582, i64 24
  %725 = load ptr, ptr %724, align 8, !tbaa !10
  %726 = getelementptr inbounds i8, ptr %725, i64 16
  %727 = load double, ptr %726, align 8, !tbaa !12
  %728 = fmul double %723, %727
  %729 = getelementptr inbounds i8, ptr %579, i64 16
  %730 = load double, ptr %729, align 8, !tbaa !12
  %731 = getelementptr inbounds i8, ptr %725, i64 8
  %732 = load double, ptr %731, align 8, !tbaa !12
  %733 = fmul double %723, %732
  %734 = getelementptr inbounds i8, ptr %579, i64 8
  %735 = load double, ptr %734, align 8, !tbaa !12
  %736 = load double, ptr %725, align 8, !tbaa !12
  %737 = fmul double %723, %736
  %738 = load double, ptr %579, align 8, !tbaa !12
  %739 = getelementptr inbounds i8, ptr %580, i64 24
  %740 = load double, ptr %739, align 8, !tbaa !12
  %741 = call double @llvm.fmuladd.f64(double %722, double %740, double %.lcssa1439.2)
  %742 = call double @llvm.fmuladd.f64(double %737, double %738, double %741)
  %743 = call double @llvm.fmuladd.f64(double %733, double %735, double %742)
  %744 = call double @llvm.fmuladd.f64(double %728, double %730, double %743)
  %745 = getelementptr inbounds i8, ptr %725, i64 24
  %746 = load double, ptr %745, align 8, !tbaa !12
  %747 = fmul double %723, %746
  %748 = getelementptr inbounds i8, ptr %579, i64 24
  %749 = load double, ptr %748, align 8, !tbaa !12
  %750 = call double @llvm.fmuladd.f64(double %747, double %749, double %744)
  br i1 %exitcond1304.not.3.3, label %758, label %751, !llvm.loop !33

751:                                              ; preds = %720
  %752 = getelementptr inbounds i8, ptr %725, i64 32
  %753 = load double, ptr %752, align 8, !tbaa !12
  %754 = fmul double %723, %753
  %755 = getelementptr inbounds i8, ptr %579, i64 32
  %756 = load double, ptr %755, align 8, !tbaa !12
  %757 = call double @llvm.fmuladd.f64(double %754, double %756, double %750)
  br label %758

758:                                              ; preds = %751, %720
  %.lcssa1439.3 = phi double [ %750, %720 ], [ %757, %751 ]
  br i1 %exitcond1305.not.3, label %.preheader1072, label %759, !llvm.loop !37

759:                                              ; preds = %758
  %760 = getelementptr inbounds i8, ptr %579, i64 32
  %761 = load double, ptr %760, align 8, !tbaa !12
  %762 = fmul double %581, %761
  %763 = getelementptr inbounds i8, ptr %582, i64 32
  %764 = load ptr, ptr %763, align 8, !tbaa !10
  %765 = getelementptr inbounds i8, ptr %764, i64 24
  %766 = load double, ptr %765, align 8, !tbaa !12
  %767 = fmul double %762, %766
  %768 = getelementptr inbounds i8, ptr %579, i64 24
  %769 = load double, ptr %768, align 8, !tbaa !12
  %770 = getelementptr inbounds i8, ptr %764, i64 16
  %771 = load double, ptr %770, align 8, !tbaa !12
  %772 = fmul double %762, %771
  %773 = getelementptr inbounds i8, ptr %579, i64 16
  %774 = load double, ptr %773, align 8, !tbaa !12
  %775 = getelementptr inbounds i8, ptr %764, i64 8
  %776 = load double, ptr %775, align 8, !tbaa !12
  %777 = fmul double %762, %776
  %778 = getelementptr inbounds i8, ptr %579, i64 8
  %779 = load double, ptr %778, align 8, !tbaa !12
  %780 = load double, ptr %764, align 8, !tbaa !12
  %781 = fmul double %762, %780
  %782 = load double, ptr %579, align 8, !tbaa !12
  %783 = getelementptr inbounds i8, ptr %580, i64 32
  %784 = load double, ptr %783, align 8, !tbaa !12
  %785 = call double @llvm.fmuladd.f64(double %761, double %784, double %.lcssa1439.3)
  %786 = call double @llvm.fmuladd.f64(double %781, double %782, double %785)
  %787 = call double @llvm.fmuladd.f64(double %777, double %779, double %786)
  %788 = call double @llvm.fmuladd.f64(double %772, double %774, double %787)
  %789 = call double @llvm.fmuladd.f64(double %767, double %769, double %788)
  %790 = getelementptr inbounds i8, ptr %764, i64 32
  %791 = load double, ptr %790, align 8, !tbaa !12
  %792 = fmul double %762, %791
  %793 = getelementptr inbounds i8, ptr %579, i64 32
  %794 = load double, ptr %793, align 8, !tbaa !12
  %795 = call double @llvm.fmuladd.f64(double %792, double %794, double %789)
  br label %.preheader1072

796:                                              ; preds = %.lr.ph1137, %796
  %.51136 = phi double [ %.lcssa1439.lcssa, %.lr.ph1137 ], [ %808, %796 ]
  %.129121135 = phi i64 [ 0, %.lr.ph1137 ], [ %809, %796 ]
  %797 = load ptr, ptr %24, align 8, !tbaa !7
  %798 = getelementptr inbounds ptr, ptr %797, i64 %.129121135
  %799 = load ptr, ptr %798, align 8, !tbaa !10
  %800 = load ptr, ptr %523, align 8, !tbaa !7
  %801 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %525)
  %802 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %799, i64 noundef 1, ptr noundef %800, i64 noundef 1, i64 noundef %801)
  store double %802, ptr %5, align 8, !tbaa !12
  %803 = load ptr, ptr %25, align 8, !tbaa !7
  %804 = getelementptr inbounds double, ptr %803, i64 %.129121135
  %805 = load double, ptr %804, align 8, !tbaa !12
  %806 = fsub double %802, %805
  %807 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %806, ptr noundef %1)
  %808 = call double @llvm.fmuladd.f64(double %609, double %807, double %.51136)
  %809 = add nuw nsw i64 %.129121135, 1
  %exitcond1306.not = icmp eq i64 %809, %.19191140
  br i1 %exitcond1306.not, label %._crit_edge1138, label %796, !llvm.loop !38

._crit_edge1138:                                  ; preds = %796, %.preheader1072
  %.5.lcssa = phi double [ %.lcssa1439.lcssa, %.preheader1072 ], [ %808, %796 ]
  br i1 %.18661141, label %.critedge1033, label %810

810:                                              ; preds = %._crit_edge1138
  %811 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %13, ptr noundef %1)
  %812 = fsub double %.5.lcssa, %811
  %813 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %812, ptr noundef %1)
  %814 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %813, double noundef 0x3D95FD7FE1796496)
  br i1 %814, label %.critedge1033, label %.critedge1032

.critedge1032:                                    ; preds = %810
  %815 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  %816 = fsub double %.5.lcssa, %815
  %817 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %816, ptr noundef %1)
  %818 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %817, double noundef 0x3D95FD7FE1796496)
  br i1 %818, label %.critedge1033, label %819

819:                                              ; preds = %.critedge1032
  %820 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  %821 = fsub double %.5.lcssa, %820
  %822 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %821, ptr noundef %1)
  %823 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %822, double noundef 0x3D95FD7FE1796496)
  br label %.critedge1033

.critedge1033:                                    ; preds = %810, %._crit_edge1138, %819, %.critedge1032
  %824 = phi i1 [ true, %.critedge1032 ], [ %823, %819 ], [ true, %._crit_edge1138 ], [ true, %810 ]
  %825 = add nuw nsw i64 %.19191140, 1
  %exitcond1309.not = icmp eq i64 %825, %indvars.iv1307
  br i1 %exitcond1309.not, label %826, label %526, !llvm.loop !39

826:                                              ; preds = %.critedge1033
  %827 = add nuw nsw i64 %.19261142, 1
  %indvars.iv.next1308 = add nuw nsw i64 %indvars.iv1307, 2
  %exitcond1310.not = icmp eq i64 %827, 6
  br i1 %exitcond1310.not, label %828, label %.preheader1075, !llvm.loop !40

828:                                              ; preds = %826
  %829 = getelementptr inbounds i8, ptr %17, i64 56
  br label %830

830:                                              ; preds = %828, %1422
  %.08671193 = phi i1 [ false, %828 ], [ %1420, %1422 ]
  %.29271192 = phi i64 [ 1, %828 ], [ %1423, %1422 ]
  %831 = shl nuw nsw i64 %.29271192, 1
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.29271192, i64 noundef %.29271192, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef %.29271192, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %.29271192, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.29271192, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.29271192, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %831, i64 noundef %.29271192, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %831, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %20, i64 noundef %.29271192, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %17, i64 noundef %.29271192, ptr noundef %1)
  %832 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %exitcond1311.not = icmp eq i64 %.29271192, 1
  %exitcond1311.not.1 = icmp eq i64 %.29271192, 2
  %exitcond1311.not.2 = icmp eq i64 %.29271192, 3
  %exitcond1311.not.3 = icmp eq i64 %.29271192, 4
  br label %833

833:                                              ; preds = %830, %867
  %.139131145 = phi i64 [ 0, %830 ], [ %868, %867 ]
  %834 = load ptr, ptr %524, align 8, !tbaa !7
  %835 = getelementptr inbounds i8, ptr %834, i64 %.139131145
  store i8 0, ptr %835, align 1, !tbaa !28
  %836 = load ptr, ptr %23, align 8, !tbaa !7
  %837 = getelementptr inbounds double, ptr %836, i64 %.139131145
  store double 1.000000e+00, ptr %837, align 8, !tbaa !12
  %838 = load ptr, ptr %22, align 8, !tbaa !7
  %839 = getelementptr inbounds double, ptr %838, i64 %.139131145
  store double 0.000000e+00, ptr %839, align 8, !tbaa !12
  %840 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %841 = call double @llvm.fmuladd.f64(double %840, double 2.000000e+00, double -1.000000e+00)
  %842 = load ptr, ptr %523, align 8, !tbaa !7
  %843 = getelementptr inbounds double, ptr %842, i64 %.139131145
  store double %841, ptr %843, align 8, !tbaa !12
  %844 = load ptr, ptr %21, align 8, !tbaa !7
  %845 = getelementptr inbounds ptr, ptr %844, i64 %.139131145
  %846 = load ptr, ptr %845, align 8, !tbaa !10
  store double 0.000000e+00, ptr %846, align 8, !tbaa !12
  br i1 %exitcond1311.not, label %867, label %847, !llvm.loop !41

847:                                              ; preds = %833
  %848 = load ptr, ptr %21, align 8, !tbaa !7
  %849 = getelementptr inbounds ptr, ptr %848, i64 %.139131145
  %850 = load ptr, ptr %849, align 8, !tbaa !10
  %851 = getelementptr inbounds i8, ptr %850, i64 8
  store double 0.000000e+00, ptr %851, align 8, !tbaa !12
  br i1 %exitcond1311.not.1, label %867, label %852, !llvm.loop !41

852:                                              ; preds = %847
  %853 = load ptr, ptr %21, align 8, !tbaa !7
  %854 = getelementptr inbounds ptr, ptr %853, i64 %.139131145
  %855 = load ptr, ptr %854, align 8, !tbaa !10
  %856 = getelementptr inbounds i8, ptr %855, i64 16
  store double 0.000000e+00, ptr %856, align 8, !tbaa !12
  br i1 %exitcond1311.not.2, label %867, label %857, !llvm.loop !41

857:                                              ; preds = %852
  %858 = load ptr, ptr %21, align 8, !tbaa !7
  %859 = getelementptr inbounds ptr, ptr %858, i64 %.139131145
  %860 = load ptr, ptr %859, align 8, !tbaa !10
  %861 = getelementptr inbounds i8, ptr %860, i64 24
  store double 0.000000e+00, ptr %861, align 8, !tbaa !12
  br i1 %exitcond1311.not.3, label %867, label %862, !llvm.loop !41

862:                                              ; preds = %857
  %863 = load ptr, ptr %21, align 8, !tbaa !7
  %864 = getelementptr inbounds ptr, ptr %863, i64 %.139131145
  %865 = load ptr, ptr %864, align 8, !tbaa !10
  %866 = getelementptr inbounds i8, ptr %865, i64 32
  store double 0.000000e+00, ptr %866, align 8, !tbaa !12
  br label %867

867:                                              ; preds = %862, %857, %852, %847, %833
  %868 = add nuw nsw i64 %.139131145, 1
  %exitcond1312.not = icmp eq i64 %868, %.29271192
  br i1 %exitcond1312.not, label %869, label %833, !llvm.loop !42

869:                                              ; preds = %867
  %870 = fadd double %832, 1.000000e+00
  %871 = add nsw i64 %.29271192, -1
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %.29271192, ptr noundef nonnull %4, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, double noundef %870, ptr noundef %1)
  %872 = or disjoint i64 %831, 1
  %exitcond1320.not = icmp eq i64 %.29271192, 1
  %exitcond1320.not.1 = icmp eq i64 %.29271192, 2
  %exitcond1320.not.2 = icmp eq i64 %.29271192, 3
  %exitcond1325.not = icmp eq i64 %.29271192, 1
  %exitcond1325.not.1 = icmp eq i64 %.29271192, 2
  %exitcond1325.not.2 = icmp eq i64 %.29271192, 3
  %exitcond1325.not.3 = icmp eq i64 %.29271192, 4
  %exitcond1328.not = icmp eq i64 %.29271192, 1
  %exitcond1328.not.1 = icmp eq i64 %.29271192, 2
  %exitcond1328.not.2 = icmp eq i64 %.29271192, 3
  %exitcond1328.not.3 = icmp eq i64 %.29271192, 4
  %exitcond1330.not = icmp eq i64 %.29271192, 1
  %exitcond1330.not.1 = icmp eq i64 %.29271192, 2
  %exitcond1330.not.2 = icmp eq i64 %.29271192, 3
  %exitcond1330.not.3 = icmp eq i64 %.29271192, 4
  %exitcond1331.not = icmp eq i64 %.29271192, 1
  %exitcond1330.not.1.1 = icmp eq i64 %.29271192, 2
  %exitcond1330.not.2.1 = icmp eq i64 %.29271192, 3
  %exitcond1330.not.3.1 = icmp eq i64 %.29271192, 4
  %exitcond1331.not.1 = icmp eq i64 %.29271192, 2
  %exitcond1330.not.2.2 = icmp eq i64 %.29271192, 3
  %exitcond1330.not.3.2 = icmp eq i64 %.29271192, 4
  %exitcond1331.not.2 = icmp eq i64 %.29271192, 3
  %exitcond1330.not.3.3 = icmp eq i64 %.29271192, 4
  %exitcond1331.not.3 = icmp eq i64 %.29271192, 4
  br label %873

873:                                              ; preds = %869, %1419
  %.18681191 = phi i1 [ %.08671193, %869 ], [ %1420, %1419 ]
  %.08731190 = phi double [ %870, %869 ], [ %.2875, %1419 ]
  %.08761189 = phi double [ 0.000000e+00, %869 ], [ %.1877, %1419 ]
  %.08781188 = phi double [ 0.000000e+00, %869 ], [ %.3881, %1419 ]
  %.08991187 = phi i64 [ 1, %869 ], [ %1421, %1419 ]
  %.29201186 = phi i64 [ 0, %869 ], [ %.3921, %1419 ]
  %874 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 8, ptr noundef %1)
  %875 = sitofp i64 %874 to double
  %876 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 0.000000e+00)
  br i1 %876, label %877, label %887

877:                                              ; preds = %873
  %878 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  br label %879

879:                                              ; preds = %877, %879
  %.149141171 = phi i64 [ 0, %877 ], [ %884, %879 ]
  %880 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %881 = call double @llvm.fmuladd.f64(double %880, double 2.000000e+00, double 1.000000e+00)
  %882 = load ptr, ptr %23, align 8, !tbaa !7
  %883 = getelementptr inbounds double, ptr %882, i64 %.149141171
  store double %881, ptr %883, align 8, !tbaa !12
  %884 = add nuw nsw i64 %.149141171, 1
  %exitcond1326.not = icmp eq i64 %884, %.29271192
  br i1 %exitcond1326.not, label %885, label %879, !llvm.loop !43

885:                                              ; preds = %879
  %886 = fadd double %878, 1.000000e+00
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, double noundef %886, ptr noundef %1)
  br label %1144

887:                                              ; preds = %873
  %888 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 1.000000e+00)
  br i1 %888, label %889, label %936

889:                                              ; preds = %887
  %890 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %.08781188, double noundef 0.000000e+00)
  br i1 %890, label %891, label %921

891:                                              ; preds = %889
  %892 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  br label %893

.loopexit1056:                                    ; preds = %.lr.ph1167, %893
  %exitcond1323.not = icmp eq i64 %894, %.29271192
  br i1 %exitcond1323.not, label %.preheader1066, label %893, !llvm.loop !44

893:                                              ; preds = %891, %.loopexit1056
  %.159151168 = phi i64 [ 0, %891 ], [ %894, %.loopexit1056 ]
  %894 = add nuw nsw i64 %.159151168, 1
  %.not996.not1164 = icmp ult i64 %894, %.29271192
  br i1 %.not996.not1164, label %.lr.ph1167, label %.loopexit1056

.lr.ph1167:                                       ; preds = %893, %.lr.ph1167
  %.88901165 = phi i64 [ %909, %.lr.ph1167 ], [ %894, %893 ]
  %895 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %896 = call double @llvm.fmuladd.f64(double %895, double 2.000000e-01, double -1.000000e-01)
  %897 = load ptr, ptr %21, align 8, !tbaa !7
  %898 = getelementptr inbounds ptr, ptr %897, i64 %.159151168
  %899 = load ptr, ptr %898, align 8, !tbaa !10
  %900 = getelementptr inbounds double, ptr %899, i64 %.88901165
  store double %896, ptr %900, align 8, !tbaa !12
  %901 = load ptr, ptr %21, align 8, !tbaa !7
  %902 = getelementptr inbounds ptr, ptr %901, i64 %.159151168
  %903 = load ptr, ptr %902, align 8, !tbaa !10
  %904 = getelementptr inbounds double, ptr %903, i64 %.88901165
  %905 = load double, ptr %904, align 8, !tbaa !12
  %906 = getelementptr inbounds ptr, ptr %901, i64 %.88901165
  %907 = load ptr, ptr %906, align 8, !tbaa !10
  %908 = getelementptr inbounds double, ptr %907, i64 %.159151168
  store double %905, ptr %908, align 8, !tbaa !12
  %909 = add nuw nsw i64 %.88901165, 1
  %.not996.not = icmp ult i64 %909, %.29271192
  br i1 %.not996.not, label %.lr.ph1167, label %.loopexit1056, !llvm.loop !45

.preheader1066:                                   ; preds = %.loopexit1056, %.preheader1066
  %.169161169 = phi i64 [ %916, %.preheader1066 ], [ 0, %.loopexit1056 ]
  %910 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %911 = call double @llvm.fmuladd.f64(double %910, double 2.000000e+00, double 4.000000e+00)
  %912 = load ptr, ptr %21, align 8, !tbaa !7
  %913 = getelementptr inbounds ptr, ptr %912, i64 %.169161169
  %914 = load ptr, ptr %913, align 8, !tbaa !10
  %915 = getelementptr inbounds double, ptr %914, i64 %.169161169
  store double %911, ptr %915, align 8, !tbaa !12
  %916 = add nuw nsw i64 %.169161169, 1
  %exitcond1324.not = icmp eq i64 %916, %.29271192
  br i1 %exitcond1324.not, label %917, label %.preheader1066, !llvm.loop !46

917:                                              ; preds = %.preheader1066
  %918 = fadd double %892, 1.000000e+00
  %919 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %920 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %919, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %7, i1 noundef zeroext %920, double noundef %918, ptr noundef %1)
  br label %921

921:                                              ; preds = %889, %917
  %.1879 = phi double [ %918, %917 ], [ %.08781188, %889 ]
  %922 = load ptr, ptr %23, align 8, !tbaa !7
  store double 0.000000e+00, ptr %922, align 8, !tbaa !12
  br i1 %exitcond1325.not, label %935, label %923, !llvm.loop !47

923:                                              ; preds = %921
  %924 = load ptr, ptr %23, align 8, !tbaa !7
  %925 = getelementptr inbounds i8, ptr %924, i64 8
  store double 0.000000e+00, ptr %925, align 8, !tbaa !12
  br i1 %exitcond1325.not.1, label %935, label %926, !llvm.loop !47

926:                                              ; preds = %923
  %927 = load ptr, ptr %23, align 8, !tbaa !7
  %928 = getelementptr inbounds i8, ptr %927, i64 16
  store double 0.000000e+00, ptr %928, align 8, !tbaa !12
  br i1 %exitcond1325.not.2, label %935, label %929, !llvm.loop !47

929:                                              ; preds = %926
  %930 = load ptr, ptr %23, align 8, !tbaa !7
  %931 = getelementptr inbounds i8, ptr %930, i64 24
  store double 0.000000e+00, ptr %931, align 8, !tbaa !12
  br i1 %exitcond1325.not.3, label %935, label %932, !llvm.loop !47

932:                                              ; preds = %929
  %933 = load ptr, ptr %23, align 8, !tbaa !7
  %934 = getelementptr inbounds i8, ptr %933, i64 32
  store double 0.000000e+00, ptr %934, align 8, !tbaa !12
  br label %935

935:                                              ; preds = %932, %929, %926, %923, %921
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, double noundef 0.000000e+00, ptr noundef %1)
  br label %1144

936:                                              ; preds = %887
  %937 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 2.000000e+00)
  br i1 %937, label %938, label %968

938:                                              ; preds = %936
  %939 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  br label %940

.loopexit1057:                                    ; preds = %.lr.ph1161, %940
  %exitcond1321.not = icmp eq i64 %941, %.29271192
  br i1 %exitcond1321.not, label %.preheader1067, label %940, !llvm.loop !48

940:                                              ; preds = %938, %.loopexit1057
  %.181162 = phi i64 [ 0, %938 ], [ %941, %.loopexit1057 ]
  %941 = add nuw nsw i64 %.181162, 1
  %.not992.not1158 = icmp ult i64 %941, %.29271192
  br i1 %.not992.not1158, label %.lr.ph1161, label %.loopexit1057

.lr.ph1161:                                       ; preds = %940, %.lr.ph1161
  %.98911159 = phi i64 [ %956, %.lr.ph1161 ], [ %941, %940 ]
  %942 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %943 = call double @llvm.fmuladd.f64(double %942, double 2.000000e-01, double -1.000000e-01)
  %944 = load ptr, ptr %21, align 8, !tbaa !7
  %945 = getelementptr inbounds ptr, ptr %944, i64 %.181162
  %946 = load ptr, ptr %945, align 8, !tbaa !10
  %947 = getelementptr inbounds double, ptr %946, i64 %.98911159
  store double %943, ptr %947, align 8, !tbaa !12
  %948 = load ptr, ptr %21, align 8, !tbaa !7
  %949 = getelementptr inbounds ptr, ptr %948, i64 %.181162
  %950 = load ptr, ptr %949, align 8, !tbaa !10
  %951 = getelementptr inbounds double, ptr %950, i64 %.98911159
  %952 = load double, ptr %951, align 8, !tbaa !12
  %953 = getelementptr inbounds ptr, ptr %948, i64 %.98911159
  %954 = load ptr, ptr %953, align 8, !tbaa !10
  %955 = getelementptr inbounds double, ptr %954, i64 %.181162
  store double %952, ptr %955, align 8, !tbaa !12
  %956 = add nuw nsw i64 %.98911159, 1
  %.not992.not = icmp ult i64 %956, %.29271192
  br i1 %.not992.not, label %.lr.ph1161, label %.loopexit1057, !llvm.loop !49

.preheader1067:                                   ; preds = %.loopexit1057, %.preheader1067
  %.191163 = phi i64 [ %963, %.preheader1067 ], [ 0, %.loopexit1057 ]
  %957 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %958 = call double @llvm.fmuladd.f64(double %957, double 2.000000e+00, double 4.000000e+00)
  %959 = load ptr, ptr %21, align 8, !tbaa !7
  %960 = getelementptr inbounds ptr, ptr %959, i64 %.191163
  %961 = load ptr, ptr %960, align 8, !tbaa !10
  %962 = getelementptr inbounds double, ptr %961, i64 %.191163
  store double %958, ptr %962, align 8, !tbaa !12
  %963 = add nuw nsw i64 %.191163, 1
  %exitcond1322.not = icmp eq i64 %963, %.29271192
  br i1 %exitcond1322.not, label %964, label %.preheader1067, !llvm.loop !50

964:                                              ; preds = %.preheader1067
  %965 = fadd double %939, 1.000000e+00
  %966 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %967 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %966, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %7, i1 noundef zeroext %967, double noundef %965, ptr noundef %1)
  br label %1144

968:                                              ; preds = %936
  %969 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 3.000000e+00)
  br i1 %969, label %970, label %1084

970:                                              ; preds = %968
  %971 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %.08731190, double noundef 0.000000e+00)
  br i1 %971, label %972, label %.preheader1058

972:                                              ; preds = %970
  %973 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  br label %974

974:                                              ; preds = %972, %974
  %.201155 = phi i64 [ 0, %972 ], [ %979, %974 ]
  %975 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %976 = call double @llvm.fmuladd.f64(double %975, double 2.000000e+00, double 1.000000e+00)
  %977 = load ptr, ptr %23, align 8, !tbaa !7
  %978 = getelementptr inbounds double, ptr %977, i64 %.201155
  store double %976, ptr %978, align 8, !tbaa !12
  %979 = add nuw nsw i64 %.201155, 1
  %exitcond1318.not = icmp eq i64 %979, %.29271192
  br i1 %exitcond1318.not, label %980, label %974, !llvm.loop !51

980:                                              ; preds = %974
  %981 = fadd double %973, 1.000000e+00
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, double noundef %981, ptr noundef %1)
  br label %.preheader1058

.preheader1058:                                   ; preds = %980, %970
  %.1874 = phi double [ %981, %980 ], [ %.08731190, %970 ]
  %982 = load ptr, ptr %21, align 8, !tbaa !7
  %983 = load ptr, ptr %982, align 8, !tbaa !10
  store double 0.000000e+00, ptr %983, align 8, !tbaa !12
  %cond = icmp eq i64 %.29271192, 1
  br i1 %cond, label %1081, label %984

984:                                              ; preds = %.preheader1058
  %985 = load ptr, ptr %21, align 8, !tbaa !7
  %986 = load ptr, ptr %985, align 8, !tbaa !10
  %987 = getelementptr inbounds i8, ptr %986, i64 8
  store double 0.000000e+00, ptr %987, align 8, !tbaa !12
  %cond1471 = icmp eq i64 %.29271192, 2
  br i1 %cond1471, label %.preheader1058.1, label %988

988:                                              ; preds = %984
  %989 = load ptr, ptr %21, align 8, !tbaa !7
  %990 = load ptr, ptr %989, align 8, !tbaa !10
  %991 = getelementptr inbounds i8, ptr %990, i64 16
  store double 0.000000e+00, ptr %991, align 8, !tbaa !12
  %cond1472 = icmp eq i64 %.29271192, 3
  br i1 %cond1472, label %.preheader1058.1, label %992

992:                                              ; preds = %988
  %993 = load ptr, ptr %21, align 8, !tbaa !7
  %994 = load ptr, ptr %993, align 8, !tbaa !10
  %995 = getelementptr inbounds i8, ptr %994, i64 24
  store double 0.000000e+00, ptr %995, align 8, !tbaa !12
  %cond1473 = icmp eq i64 %.29271192, 4
  br i1 %cond1473, label %.preheader1058.1, label %996

996:                                              ; preds = %992
  %997 = load ptr, ptr %21, align 8, !tbaa !7
  %998 = load ptr, ptr %997, align 8, !tbaa !10
  %999 = getelementptr inbounds i8, ptr %998, i64 32
  store double 0.000000e+00, ptr %999, align 8, !tbaa !12
  br i1 %exitcond1320.not, label %1081, label %.preheader1058.1, !llvm.loop !52

.preheader1058.1:                                 ; preds = %992, %988, %984, %996
  %1000 = load ptr, ptr %21, align 8, !tbaa !7
  %1001 = getelementptr inbounds i8, ptr %1000, i64 8
  %1002 = load ptr, ptr %1001, align 8, !tbaa !10
  store double 0.000000e+00, ptr %1002, align 8, !tbaa !12
  %1003 = load ptr, ptr %21, align 8, !tbaa !7
  %1004 = getelementptr inbounds i8, ptr %1003, i64 8
  %1005 = load ptr, ptr %1004, align 8, !tbaa !10
  %1006 = getelementptr inbounds i8, ptr %1005, i64 8
  store double 0.000000e+00, ptr %1006, align 8, !tbaa !12
  %cond1474 = icmp eq i64 %.29271192, 2
  br i1 %cond1474, label %1081, label %1007

1007:                                             ; preds = %.preheader1058.1
  %1008 = load ptr, ptr %21, align 8, !tbaa !7
  %1009 = getelementptr inbounds i8, ptr %1008, i64 8
  %1010 = load ptr, ptr %1009, align 8, !tbaa !10
  %1011 = getelementptr inbounds i8, ptr %1010, i64 16
  store double 0.000000e+00, ptr %1011, align 8, !tbaa !12
  %cond1475 = icmp eq i64 %.29271192, 3
  br i1 %cond1475, label %.preheader1058.2, label %1012

1012:                                             ; preds = %1007
  %1013 = load ptr, ptr %21, align 8, !tbaa !7
  %1014 = getelementptr inbounds i8, ptr %1013, i64 8
  %1015 = load ptr, ptr %1014, align 8, !tbaa !10
  %1016 = getelementptr inbounds i8, ptr %1015, i64 24
  store double 0.000000e+00, ptr %1016, align 8, !tbaa !12
  %cond1476 = icmp eq i64 %.29271192, 4
  br i1 %cond1476, label %.preheader1058.2, label %1017

1017:                                             ; preds = %1012
  %1018 = load ptr, ptr %21, align 8, !tbaa !7
  %1019 = getelementptr inbounds i8, ptr %1018, i64 8
  %1020 = load ptr, ptr %1019, align 8, !tbaa !10
  %1021 = getelementptr inbounds i8, ptr %1020, i64 32
  store double 0.000000e+00, ptr %1021, align 8, !tbaa !12
  br i1 %exitcond1320.not.1, label %1081, label %.preheader1058.2, !llvm.loop !52

.preheader1058.2:                                 ; preds = %1012, %1007, %1017
  %1022 = load ptr, ptr %21, align 8, !tbaa !7
  %1023 = getelementptr inbounds i8, ptr %1022, i64 16
  %1024 = load ptr, ptr %1023, align 8, !tbaa !10
  store double 0.000000e+00, ptr %1024, align 8, !tbaa !12
  %1025 = load ptr, ptr %21, align 8, !tbaa !7
  %1026 = getelementptr inbounds i8, ptr %1025, i64 16
  %1027 = load ptr, ptr %1026, align 8, !tbaa !10
  %1028 = getelementptr inbounds i8, ptr %1027, i64 8
  store double 0.000000e+00, ptr %1028, align 8, !tbaa !12
  %1029 = load ptr, ptr %21, align 8, !tbaa !7
  %1030 = getelementptr inbounds i8, ptr %1029, i64 16
  %1031 = load ptr, ptr %1030, align 8, !tbaa !10
  %1032 = getelementptr inbounds i8, ptr %1031, i64 16
  store double 0.000000e+00, ptr %1032, align 8, !tbaa !12
  %cond1477 = icmp eq i64 %.29271192, 3
  br i1 %cond1477, label %1081, label %1033

1033:                                             ; preds = %.preheader1058.2
  %1034 = load ptr, ptr %21, align 8, !tbaa !7
  %1035 = getelementptr inbounds i8, ptr %1034, i64 16
  %1036 = load ptr, ptr %1035, align 8, !tbaa !10
  %1037 = getelementptr inbounds i8, ptr %1036, i64 24
  store double 0.000000e+00, ptr %1037, align 8, !tbaa !12
  %cond1478 = icmp eq i64 %.29271192, 4
  br i1 %cond1478, label %.preheader1058.3, label %1038

1038:                                             ; preds = %1033
  %1039 = load ptr, ptr %21, align 8, !tbaa !7
  %1040 = getelementptr inbounds i8, ptr %1039, i64 16
  %1041 = load ptr, ptr %1040, align 8, !tbaa !10
  %1042 = getelementptr inbounds i8, ptr %1041, i64 32
  store double 0.000000e+00, ptr %1042, align 8, !tbaa !12
  br i1 %exitcond1320.not.2, label %1081, label %.preheader1058.3, !llvm.loop !52

.preheader1058.3:                                 ; preds = %1033, %1038
  %1043 = load ptr, ptr %21, align 8, !tbaa !7
  %1044 = getelementptr inbounds i8, ptr %1043, i64 24
  %1045 = load ptr, ptr %1044, align 8, !tbaa !10
  store double 0.000000e+00, ptr %1045, align 8, !tbaa !12
  %1046 = load ptr, ptr %21, align 8, !tbaa !7
  %1047 = getelementptr inbounds i8, ptr %1046, i64 24
  %1048 = load ptr, ptr %1047, align 8, !tbaa !10
  %1049 = getelementptr inbounds i8, ptr %1048, i64 8
  store double 0.000000e+00, ptr %1049, align 8, !tbaa !12
  %1050 = load ptr, ptr %21, align 8, !tbaa !7
  %1051 = getelementptr inbounds i8, ptr %1050, i64 24
  %1052 = load ptr, ptr %1051, align 8, !tbaa !10
  %1053 = getelementptr inbounds i8, ptr %1052, i64 16
  store double 0.000000e+00, ptr %1053, align 8, !tbaa !12
  %1054 = load ptr, ptr %21, align 8, !tbaa !7
  %1055 = getelementptr inbounds i8, ptr %1054, i64 24
  %1056 = load ptr, ptr %1055, align 8, !tbaa !10
  %1057 = getelementptr inbounds i8, ptr %1056, i64 24
  store double 0.000000e+00, ptr %1057, align 8, !tbaa !12
  %cond1479 = icmp eq i64 %.29271192, 4
  br i1 %cond1479, label %1081, label %.preheader1058.4

.preheader1058.4:                                 ; preds = %.preheader1058.3
  %1058 = load ptr, ptr %21, align 8, !tbaa !7
  %1059 = getelementptr inbounds i8, ptr %1058, i64 24
  %1060 = load ptr, ptr %1059, align 8, !tbaa !10
  %1061 = getelementptr inbounds i8, ptr %1060, i64 32
  store double 0.000000e+00, ptr %1061, align 8, !tbaa !12
  %1062 = load ptr, ptr %21, align 8, !tbaa !7
  %1063 = getelementptr inbounds i8, ptr %1062, i64 32
  %1064 = load ptr, ptr %1063, align 8, !tbaa !10
  store double 0.000000e+00, ptr %1064, align 8, !tbaa !12
  %1065 = load ptr, ptr %21, align 8, !tbaa !7
  %1066 = getelementptr inbounds i8, ptr %1065, i64 32
  %1067 = load ptr, ptr %1066, align 8, !tbaa !10
  %1068 = getelementptr inbounds i8, ptr %1067, i64 8
  store double 0.000000e+00, ptr %1068, align 8, !tbaa !12
  %1069 = load ptr, ptr %21, align 8, !tbaa !7
  %1070 = getelementptr inbounds i8, ptr %1069, i64 32
  %1071 = load ptr, ptr %1070, align 8, !tbaa !10
  %1072 = getelementptr inbounds i8, ptr %1071, i64 16
  store double 0.000000e+00, ptr %1072, align 8, !tbaa !12
  %1073 = load ptr, ptr %21, align 8, !tbaa !7
  %1074 = getelementptr inbounds i8, ptr %1073, i64 32
  %1075 = load ptr, ptr %1074, align 8, !tbaa !10
  %1076 = getelementptr inbounds i8, ptr %1075, i64 24
  store double 0.000000e+00, ptr %1076, align 8, !tbaa !12
  %1077 = load ptr, ptr %21, align 8, !tbaa !7
  %1078 = getelementptr inbounds i8, ptr %1077, i64 32
  %1079 = load ptr, ptr %1078, align 8, !tbaa !10
  %1080 = getelementptr inbounds i8, ptr %1079, i64 32
  store double 0.000000e+00, ptr %1080, align 8, !tbaa !12
  br label %1081

1081:                                             ; preds = %.preheader1058.3, %.preheader1058.2, %.preheader1058.1, %.preheader1058, %.preheader1058.4, %1038, %1017, %996
  %1082 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1083 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1082, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %7, i1 noundef zeroext %1083, double noundef 0.000000e+00, ptr noundef %1)
  br label %1144

1084:                                             ; preds = %968
  %1085 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 4.000000e+00)
  br i1 %1085, label %.preheader1068, label %1092

.preheader1068:                                   ; preds = %1084, %.preheader1068
  %.221154 = phi i64 [ %1090, %.preheader1068 ], [ 0, %1084 ]
  %1086 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1087 = call double @llvm.fmuladd.f64(double %1086, double 2.000000e+00, double -1.000000e+00)
  %1088 = load ptr, ptr %22, align 8, !tbaa !7
  %1089 = getelementptr inbounds double, ptr %1088, i64 %.221154
  store double %1087, ptr %1089, align 8, !tbaa !12
  %1090 = add nuw nsw i64 %.221154, 1
  %exitcond1317.not = icmp eq i64 %1090, %.29271192
  br i1 %exitcond1317.not, label %1091, label %.preheader1068, !llvm.loop !53

1091:                                             ; preds = %.preheader1068
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %9, ptr noundef %1)
  br label %1144

1092:                                             ; preds = %1084
  %1093 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 5.000000e+00)
  br i1 %1093, label %1094, label %1112

1094:                                             ; preds = %1092
  %1095 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef %872, ptr noundef %1)
  %1096 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1097 = fadd double %1096, 1.000000e+00
  %.not984.not1149 = icmp sgt i64 %1095, 0
  br i1 %.not984.not1149, label %.lr.ph1152, label %._crit_edge1153

.lr.ph1152:                                       ; preds = %1094, %1110
  %.231150 = phi i64 [ %1111, %1110 ], [ 0, %1094 ]
  %1098 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1099 = call double @llvm.fmuladd.f64(double %1098, double 2.000000e+00, double -1.000000e+00)
  %1100 = load ptr, ptr %25, align 8, !tbaa !7
  %1101 = getelementptr inbounds double, ptr %1100, i64 %.231150
  store double %1099, ptr %1101, align 8, !tbaa !12
  br label %1102

1102:                                             ; preds = %.lr.ph1152, %1102
  %.118931148 = phi i64 [ 0, %.lr.ph1152 ], [ %1109, %1102 ]
  %1103 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1104 = call double @llvm.fmuladd.f64(double %1103, double 2.000000e+00, double -1.000000e+00)
  %1105 = load ptr, ptr %24, align 8, !tbaa !7
  %1106 = getelementptr inbounds ptr, ptr %1105, i64 %.231150
  %1107 = load ptr, ptr %1106, align 8, !tbaa !10
  %1108 = getelementptr inbounds double, ptr %1107, i64 %.118931148
  store double %1104, ptr %1108, align 8, !tbaa !12
  %1109 = add nuw nsw i64 %.118931148, 1
  %exitcond1315.not = icmp eq i64 %1109, %.29271192
  br i1 %exitcond1315.not, label %1110, label %1102, !llvm.loop !54

1110:                                             ; preds = %1102
  %1111 = add nuw nsw i64 %.231150, 1
  %exitcond1316.not = icmp eq i64 %1111, %1095
  br i1 %exitcond1316.not, label %._crit_edge1153, label %.lr.ph1152, !llvm.loop !55

._crit_edge1153:                                  ; preds = %1110, %1094
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef nonnull %10, i64 noundef %1095, double noundef %1097, ptr noundef %1)
  br label %1144

1112:                                             ; preds = %1092
  %1113 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 6.000000e+00)
  br i1 %1113, label %.preheader1069, label %1125

.preheader1069:                                   ; preds = %1112, %.preheader1069
  %.241147 = phi i64 [ %1123, %.preheader1069 ], [ 0, %1112 ]
  %1114 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1115 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1114, double noundef 5.000000e-01)
  %1116 = load ptr, ptr %524, align 8, !tbaa !7
  %1117 = getelementptr inbounds i8, ptr %1116, i64 %.241147
  %1118 = zext i1 %1115 to i8
  store i8 %1118, ptr %1117, align 1, !tbaa !28
  %1119 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1120 = call double @llvm.fmuladd.f64(double %1119, double 2.000000e+00, double -1.000000e+00)
  %1121 = load ptr, ptr %523, align 8, !tbaa !7
  %1122 = getelementptr inbounds double, ptr %1121, i64 %.241147
  store double %1120, ptr %1122, align 8, !tbaa !12
  %1123 = add nuw nsw i64 %.241147, 1
  %exitcond1314.not = icmp eq i64 %1123, %.29271192
  br i1 %exitcond1314.not, label %1124, label %.preheader1069, !llvm.loop !56

1124:                                             ; preds = %.preheader1069
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %13, ptr noundef nonnull %20, ptr noundef %1)
  br label %1144

1125:                                             ; preds = %1112
  %1126 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %875, double noundef 7.000000e+00)
  br i1 %1126, label %1127, label %1144

1127:                                             ; preds = %1125
  %1128 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %.08781188, double noundef 0.000000e+00)
  %.2880 = select i1 %1128, double 1.000000e+00, double %.08781188
  br label %1129

1129:                                             ; preds = %1127, %1129
  %.251146 = phi i64 [ 0, %1127 ], [ %1142, %1129 ]
  %1130 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1131 = fadd double %1130, 1.000000e+00
  %1132 = load ptr, ptr %829, align 8, !tbaa !7
  %1133 = getelementptr inbounds double, ptr %1132, i64 %.251146
  store double %1131, ptr %1133, align 8, !tbaa !12
  %1134 = load ptr, ptr %829, align 8, !tbaa !7
  %1135 = getelementptr inbounds double, ptr %1134, i64 %.251146
  %1136 = load double, ptr %1135, align 8, !tbaa !12
  %1137 = fdiv double %1136, %.2880
  %1138 = load ptr, ptr %21, align 8, !tbaa !7
  %1139 = getelementptr inbounds ptr, ptr %1138, i64 %.251146
  %1140 = load ptr, ptr %1139, align 8, !tbaa !10
  %1141 = getelementptr inbounds double, ptr %1140, i64 %.251146
  store double %1137, ptr %1141, align 8, !tbaa !12
  %1142 = add nuw nsw i64 %.251146, 1
  %exitcond1313.not = icmp eq i64 %1142, %.29271192
  br i1 %exitcond1313.not, label %1143, label %1129, !llvm.loop !57

1143:                                             ; preds = %1129
  call void @_ZN11alglib_impl23cqmrewritedensediagonalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %17, ptr noundef %1)
  br label %1144

1144:                                             ; preds = %935, %1081, %._crit_edge1153, %1125, %1143, %1124, %1091, %964, %885
  %.3921 = phi i64 [ %.29201186, %885 ], [ %.29201186, %935 ], [ %.29201186, %964 ], [ %.29201186, %1081 ], [ %.29201186, %1091 ], [ %1095, %._crit_edge1153 ], [ %.29201186, %1124 ], [ %.29201186, %1143 ], [ %.29201186, %1125 ]
  %.3881 = phi double [ %.08781188, %885 ], [ %.1879, %935 ], [ %965, %964 ], [ 0.000000e+00, %1081 ], [ %.08781188, %1091 ], [ %.08781188, %._crit_edge1153 ], [ %.08781188, %1124 ], [ %.2880, %1143 ], [ %.08781188, %1125 ]
  %.1877 = phi double [ %.08761189, %885 ], [ %.08761189, %935 ], [ %.08761189, %964 ], [ %.08761189, %1081 ], [ %.08761189, %1091 ], [ %1097, %._crit_edge1153 ], [ %.08761189, %1124 ], [ %.08761189, %1143 ], [ %.08761189, %1125 ]
  %.2875 = phi double [ %886, %885 ], [ 0.000000e+00, %935 ], [ %.08731190, %964 ], [ %.1874, %1081 ], [ %.08731190, %1091 ], [ %.08731190, %._crit_edge1153 ], [ %.08731190, %1124 ], [ %.08731190, %1143 ], [ %.08731190, %1125 ]
  br label %1150

.preheader1065:                                   ; preds = %1165
  %1145 = load ptr, ptr %26, align 8, !tbaa !7
  %1146 = load ptr, ptr %22, align 8, !tbaa !7
  %1147 = load double, ptr %1145, align 8, !tbaa !12
  %1148 = load double, ptr %1146, align 8, !tbaa !12
  %1149 = call double @llvm.fmuladd.f64(double %1147, double %1148, double 0.000000e+00)
  br i1 %exitcond1328.not, label %1191, label %1167, !llvm.loop !58

1150:                                             ; preds = %1144, %1165
  %.261172 = phi i64 [ 0, %1144 ], [ %1166, %1165 ]
  %1151 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1152 = call double @llvm.fmuladd.f64(double %1151, double 2.000000e+00, double -1.000000e+00)
  %1153 = load ptr, ptr %26, align 8, !tbaa !7
  %1154 = getelementptr inbounds double, ptr %1153, i64 %.261172
  store double %1152, ptr %1154, align 8, !tbaa !12
  %1155 = load ptr, ptr %524, align 8, !tbaa !7
  %1156 = getelementptr inbounds i8, ptr %1155, i64 %.261172
  %1157 = load i8, ptr %1156, align 1, !tbaa !28, !range !34, !noundef !35
  %1158 = trunc nuw i8 %1157 to i1
  br i1 %1158, label %1159, label %1165

1159:                                             ; preds = %1150
  %1160 = load ptr, ptr %523, align 8, !tbaa !7
  %1161 = getelementptr inbounds double, ptr %1160, i64 %.261172
  %1162 = load double, ptr %1161, align 8, !tbaa !12
  %1163 = load ptr, ptr %26, align 8, !tbaa !7
  %1164 = getelementptr inbounds double, ptr %1163, i64 %.261172
  store double %1162, ptr %1164, align 8, !tbaa !12
  br label %1165

1165:                                             ; preds = %1150, %1159
  %1166 = add nuw nsw i64 %.261172, 1
  %exitcond1327.not = icmp eq i64 %1166, %.29271192
  br i1 %exitcond1327.not, label %.preheader1065, label %1150, !llvm.loop !59

1167:                                             ; preds = %.preheader1065
  %1168 = getelementptr inbounds i8, ptr %1145, i64 8
  %1169 = load double, ptr %1168, align 8, !tbaa !12
  %1170 = getelementptr inbounds i8, ptr %1146, i64 8
  %1171 = load double, ptr %1170, align 8, !tbaa !12
  %1172 = call double @llvm.fmuladd.f64(double %1169, double %1171, double %1149)
  br i1 %exitcond1328.not.1, label %1191, label %1173, !llvm.loop !58

1173:                                             ; preds = %1167
  %1174 = getelementptr inbounds i8, ptr %1145, i64 16
  %1175 = load double, ptr %1174, align 8, !tbaa !12
  %1176 = getelementptr inbounds i8, ptr %1146, i64 16
  %1177 = load double, ptr %1176, align 8, !tbaa !12
  %1178 = call double @llvm.fmuladd.f64(double %1175, double %1177, double %1172)
  br i1 %exitcond1328.not.2, label %1191, label %1179, !llvm.loop !58

1179:                                             ; preds = %1173
  %1180 = getelementptr inbounds i8, ptr %1145, i64 24
  %1181 = load double, ptr %1180, align 8, !tbaa !12
  %1182 = getelementptr inbounds i8, ptr %1146, i64 24
  %1183 = load double, ptr %1182, align 8, !tbaa !12
  %1184 = call double @llvm.fmuladd.f64(double %1181, double %1183, double %1178)
  br i1 %exitcond1328.not.3, label %1191, label %1185, !llvm.loop !58

1185:                                             ; preds = %1179
  %1186 = getelementptr inbounds i8, ptr %1145, i64 32
  %1187 = load double, ptr %1186, align 8, !tbaa !12
  %1188 = getelementptr inbounds i8, ptr %1146, i64 32
  %1189 = load double, ptr %1188, align 8, !tbaa !12
  %1190 = call double @llvm.fmuladd.f64(double %1187, double %1189, double %1184)
  br label %1191

1191:                                             ; preds = %1185, %1179, %1173, %1167, %.preheader1065
  %.lcssa1433 = phi double [ %1149, %.preheader1065 ], [ %1172, %1167 ], [ %1178, %1173 ], [ %1184, %1179 ], [ %1190, %1185 ]
  %1192 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.2875, double noundef 0.000000e+00)
  br i1 %1192, label %.preheader1063, label %.loopexit1064

.preheader1063:                                   ; preds = %1191
  %1193 = fmul double %.2875, 5.000000e-01
  br label %1194

1194:                                             ; preds = %.preheader1063, %1194
  %.71176 = phi double [ %.lcssa1433, %.preheader1063 ], [ %1203, %1194 ]
  %.281175 = phi i64 [ 0, %.preheader1063 ], [ %1204, %1194 ]
  %1195 = load ptr, ptr %23, align 8, !tbaa !7
  %1196 = getelementptr inbounds double, ptr %1195, i64 %.281175
  %1197 = load double, ptr %1196, align 8, !tbaa !12
  %1198 = fmul double %1193, %1197
  %1199 = load ptr, ptr %26, align 8, !tbaa !7
  %1200 = getelementptr inbounds double, ptr %1199, i64 %.281175
  %1201 = load double, ptr %1200, align 8, !tbaa !12
  %1202 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1201, ptr noundef %1)
  %1203 = call double @llvm.fmuladd.f64(double %1198, double %1202, double %.71176)
  %1204 = add nuw nsw i64 %.281175, 1
  %exitcond1329.not = icmp eq i64 %1204, %.29271192
  br i1 %exitcond1329.not, label %.loopexit1064, label %1194, !llvm.loop !60

.loopexit1064:                                    ; preds = %1194, %1191
  %.8 = phi double [ %.lcssa1433, %1191 ], [ %1203, %1194 ]
  %1205 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.3881, double noundef 0.000000e+00)
  br i1 %1205, label %.preheader1061, label %.loopexit1062

.preheader1061:                                   ; preds = %.loopexit1064
  %1206 = fmul double %.3881, 5.000000e-01
  %1207 = load ptr, ptr %26, align 8, !tbaa !7
  %1208 = load ptr, ptr %21, align 8, !tbaa !7
  %1209 = load double, ptr %1207, align 8, !tbaa !12
  %1210 = fmul double %1206, %1209
  %1211 = load ptr, ptr %1208, align 8, !tbaa !10
  %1212 = load double, ptr %1211, align 8, !tbaa !12
  %1213 = fmul double %1210, %1212
  %1214 = load double, ptr %1207, align 8, !tbaa !12
  %1215 = call double @llvm.fmuladd.f64(double %1213, double %1214, double %.8)
  br i1 %exitcond1330.not, label %1244, label %1216, !llvm.loop !61

1216:                                             ; preds = %.preheader1061
  %1217 = getelementptr inbounds i8, ptr %1211, i64 8
  %1218 = load double, ptr %1217, align 8, !tbaa !12
  %1219 = fmul double %1210, %1218
  %1220 = getelementptr inbounds i8, ptr %1207, i64 8
  %1221 = load double, ptr %1220, align 8, !tbaa !12
  %1222 = call double @llvm.fmuladd.f64(double %1219, double %1221, double %1215)
  br i1 %exitcond1330.not.1, label %1244, label %1223, !llvm.loop !61

1223:                                             ; preds = %1216
  %1224 = getelementptr inbounds i8, ptr %1211, i64 16
  %1225 = load double, ptr %1224, align 8, !tbaa !12
  %1226 = fmul double %1210, %1225
  %1227 = getelementptr inbounds i8, ptr %1207, i64 16
  %1228 = load double, ptr %1227, align 8, !tbaa !12
  %1229 = call double @llvm.fmuladd.f64(double %1226, double %1228, double %1222)
  br i1 %exitcond1330.not.2, label %1244, label %1230, !llvm.loop !61

1230:                                             ; preds = %1223
  %1231 = getelementptr inbounds i8, ptr %1211, i64 24
  %1232 = load double, ptr %1231, align 8, !tbaa !12
  %1233 = fmul double %1210, %1232
  %1234 = getelementptr inbounds i8, ptr %1207, i64 24
  %1235 = load double, ptr %1234, align 8, !tbaa !12
  %1236 = call double @llvm.fmuladd.f64(double %1233, double %1235, double %1229)
  br i1 %exitcond1330.not.3, label %1244, label %1237, !llvm.loop !61

1237:                                             ; preds = %1230
  %1238 = getelementptr inbounds i8, ptr %1211, i64 32
  %1239 = load double, ptr %1238, align 8, !tbaa !12
  %1240 = fmul double %1210, %1239
  %1241 = getelementptr inbounds i8, ptr %1207, i64 32
  %1242 = load double, ptr %1241, align 8, !tbaa !12
  %1243 = call double @llvm.fmuladd.f64(double %1240, double %1242, double %1236)
  br label %1244

1244:                                             ; preds = %1237, %1230, %1223, %1216, %.preheader1061
  %.lcssa1435 = phi double [ %1215, %.preheader1061 ], [ %1222, %1216 ], [ %1229, %1223 ], [ %1236, %1230 ], [ %1243, %1237 ]
  br i1 %exitcond1331.not, label %.loopexit1062, label %.preheader1055.1, !llvm.loop !62

.preheader1055.1:                                 ; preds = %1244
  %1245 = getelementptr inbounds i8, ptr %1207, i64 8
  %1246 = load double, ptr %1245, align 8, !tbaa !12
  %1247 = fmul double %1206, %1246
  %1248 = getelementptr inbounds i8, ptr %1208, i64 8
  %1249 = load ptr, ptr %1248, align 8, !tbaa !10
  %1250 = load double, ptr %1249, align 8, !tbaa !12
  %1251 = fmul double %1247, %1250
  %1252 = load double, ptr %1207, align 8, !tbaa !12
  %1253 = call double @llvm.fmuladd.f64(double %1251, double %1252, double %.lcssa1435)
  %1254 = getelementptr inbounds i8, ptr %1249, i64 8
  %1255 = load double, ptr %1254, align 8, !tbaa !12
  %1256 = fmul double %1247, %1255
  %1257 = getelementptr inbounds i8, ptr %1207, i64 8
  %1258 = load double, ptr %1257, align 8, !tbaa !12
  %1259 = call double @llvm.fmuladd.f64(double %1256, double %1258, double %1253)
  br i1 %exitcond1330.not.1.1, label %1281, label %1260, !llvm.loop !61

1260:                                             ; preds = %.preheader1055.1
  %1261 = getelementptr inbounds i8, ptr %1249, i64 16
  %1262 = load double, ptr %1261, align 8, !tbaa !12
  %1263 = fmul double %1247, %1262
  %1264 = getelementptr inbounds i8, ptr %1207, i64 16
  %1265 = load double, ptr %1264, align 8, !tbaa !12
  %1266 = call double @llvm.fmuladd.f64(double %1263, double %1265, double %1259)
  br i1 %exitcond1330.not.2.1, label %1281, label %1267, !llvm.loop !61

1267:                                             ; preds = %1260
  %1268 = getelementptr inbounds i8, ptr %1249, i64 24
  %1269 = load double, ptr %1268, align 8, !tbaa !12
  %1270 = fmul double %1247, %1269
  %1271 = getelementptr inbounds i8, ptr %1207, i64 24
  %1272 = load double, ptr %1271, align 8, !tbaa !12
  %1273 = call double @llvm.fmuladd.f64(double %1270, double %1272, double %1266)
  br i1 %exitcond1330.not.3.1, label %1281, label %1274, !llvm.loop !61

1274:                                             ; preds = %1267
  %1275 = getelementptr inbounds i8, ptr %1249, i64 32
  %1276 = load double, ptr %1275, align 8, !tbaa !12
  %1277 = fmul double %1247, %1276
  %1278 = getelementptr inbounds i8, ptr %1207, i64 32
  %1279 = load double, ptr %1278, align 8, !tbaa !12
  %1280 = call double @llvm.fmuladd.f64(double %1277, double %1279, double %1273)
  br label %1281

1281:                                             ; preds = %1274, %1267, %1260, %.preheader1055.1
  %.lcssa1435.1 = phi double [ %1259, %.preheader1055.1 ], [ %1266, %1260 ], [ %1273, %1267 ], [ %1280, %1274 ]
  br i1 %exitcond1331.not.1, label %.loopexit1062, label %.preheader1055.2, !llvm.loop !62

.preheader1055.2:                                 ; preds = %1281
  %1282 = getelementptr inbounds i8, ptr %1207, i64 16
  %1283 = load double, ptr %1282, align 8, !tbaa !12
  %1284 = fmul double %1206, %1283
  %1285 = getelementptr inbounds i8, ptr %1208, i64 16
  %1286 = load ptr, ptr %1285, align 8, !tbaa !10
  %1287 = getelementptr inbounds i8, ptr %1286, i64 8
  %1288 = load double, ptr %1287, align 8, !tbaa !12
  %1289 = fmul double %1284, %1288
  %1290 = getelementptr inbounds i8, ptr %1207, i64 8
  %1291 = load double, ptr %1290, align 8, !tbaa !12
  %1292 = load double, ptr %1286, align 8, !tbaa !12
  %1293 = fmul double %1284, %1292
  %1294 = load double, ptr %1207, align 8, !tbaa !12
  %1295 = call double @llvm.fmuladd.f64(double %1293, double %1294, double %.lcssa1435.1)
  %1296 = call double @llvm.fmuladd.f64(double %1289, double %1291, double %1295)
  %1297 = getelementptr inbounds i8, ptr %1286, i64 16
  %1298 = load double, ptr %1297, align 8, !tbaa !12
  %1299 = fmul double %1284, %1298
  %1300 = getelementptr inbounds i8, ptr %1207, i64 16
  %1301 = load double, ptr %1300, align 8, !tbaa !12
  %1302 = call double @llvm.fmuladd.f64(double %1299, double %1301, double %1296)
  br i1 %exitcond1330.not.2.2, label %1317, label %1303, !llvm.loop !61

1303:                                             ; preds = %.preheader1055.2
  %1304 = getelementptr inbounds i8, ptr %1286, i64 24
  %1305 = load double, ptr %1304, align 8, !tbaa !12
  %1306 = fmul double %1284, %1305
  %1307 = getelementptr inbounds i8, ptr %1207, i64 24
  %1308 = load double, ptr %1307, align 8, !tbaa !12
  %1309 = call double @llvm.fmuladd.f64(double %1306, double %1308, double %1302)
  br i1 %exitcond1330.not.3.2, label %1317, label %1310, !llvm.loop !61

1310:                                             ; preds = %1303
  %1311 = getelementptr inbounds i8, ptr %1286, i64 32
  %1312 = load double, ptr %1311, align 8, !tbaa !12
  %1313 = fmul double %1284, %1312
  %1314 = getelementptr inbounds i8, ptr %1207, i64 32
  %1315 = load double, ptr %1314, align 8, !tbaa !12
  %1316 = call double @llvm.fmuladd.f64(double %1313, double %1315, double %1309)
  br label %1317

1317:                                             ; preds = %1310, %1303, %.preheader1055.2
  %.lcssa1435.2 = phi double [ %1302, %.preheader1055.2 ], [ %1309, %1303 ], [ %1316, %1310 ]
  br i1 %exitcond1331.not.2, label %.loopexit1062, label %.preheader1055.3, !llvm.loop !62

.preheader1055.3:                                 ; preds = %1317
  %1318 = getelementptr inbounds i8, ptr %1207, i64 24
  %1319 = load double, ptr %1318, align 8, !tbaa !12
  %1320 = fmul double %1206, %1319
  %1321 = getelementptr inbounds i8, ptr %1208, i64 24
  %1322 = load ptr, ptr %1321, align 8, !tbaa !10
  %1323 = getelementptr inbounds i8, ptr %1322, i64 16
  %1324 = load double, ptr %1323, align 8, !tbaa !12
  %1325 = fmul double %1320, %1324
  %1326 = getelementptr inbounds i8, ptr %1207, i64 16
  %1327 = load double, ptr %1326, align 8, !tbaa !12
  %1328 = getelementptr inbounds i8, ptr %1322, i64 8
  %1329 = load double, ptr %1328, align 8, !tbaa !12
  %1330 = fmul double %1320, %1329
  %1331 = getelementptr inbounds i8, ptr %1207, i64 8
  %1332 = load double, ptr %1331, align 8, !tbaa !12
  %1333 = load double, ptr %1322, align 8, !tbaa !12
  %1334 = fmul double %1320, %1333
  %1335 = load double, ptr %1207, align 8, !tbaa !12
  %1336 = call double @llvm.fmuladd.f64(double %1334, double %1335, double %.lcssa1435.2)
  %1337 = call double @llvm.fmuladd.f64(double %1330, double %1332, double %1336)
  %1338 = call double @llvm.fmuladd.f64(double %1325, double %1327, double %1337)
  %1339 = getelementptr inbounds i8, ptr %1322, i64 24
  %1340 = load double, ptr %1339, align 8, !tbaa !12
  %1341 = fmul double %1320, %1340
  %1342 = getelementptr inbounds i8, ptr %1207, i64 24
  %1343 = load double, ptr %1342, align 8, !tbaa !12
  %1344 = call double @llvm.fmuladd.f64(double %1341, double %1343, double %1338)
  br i1 %exitcond1330.not.3.3, label %1352, label %1345, !llvm.loop !61

1345:                                             ; preds = %.preheader1055.3
  %1346 = getelementptr inbounds i8, ptr %1322, i64 32
  %1347 = load double, ptr %1346, align 8, !tbaa !12
  %1348 = fmul double %1320, %1347
  %1349 = getelementptr inbounds i8, ptr %1207, i64 32
  %1350 = load double, ptr %1349, align 8, !tbaa !12
  %1351 = call double @llvm.fmuladd.f64(double %1348, double %1350, double %1344)
  br label %1352

1352:                                             ; preds = %1345, %.preheader1055.3
  %.lcssa1435.3 = phi double [ %1344, %.preheader1055.3 ], [ %1351, %1345 ]
  br i1 %exitcond1331.not.3, label %.loopexit1062, label %.preheader1055.4, !llvm.loop !62

.preheader1055.4:                                 ; preds = %1352
  %1353 = getelementptr inbounds i8, ptr %1207, i64 32
  %1354 = load double, ptr %1353, align 8, !tbaa !12
  %1355 = fmul double %1206, %1354
  %1356 = getelementptr inbounds i8, ptr %1208, i64 32
  %1357 = load ptr, ptr %1356, align 8, !tbaa !10
  %1358 = getelementptr inbounds i8, ptr %1357, i64 24
  %1359 = load double, ptr %1358, align 8, !tbaa !12
  %1360 = fmul double %1355, %1359
  %1361 = getelementptr inbounds i8, ptr %1207, i64 24
  %1362 = load double, ptr %1361, align 8, !tbaa !12
  %1363 = getelementptr inbounds i8, ptr %1357, i64 16
  %1364 = load double, ptr %1363, align 8, !tbaa !12
  %1365 = fmul double %1355, %1364
  %1366 = getelementptr inbounds i8, ptr %1207, i64 16
  %1367 = load double, ptr %1366, align 8, !tbaa !12
  %1368 = getelementptr inbounds i8, ptr %1357, i64 8
  %1369 = load double, ptr %1368, align 8, !tbaa !12
  %1370 = fmul double %1355, %1369
  %1371 = getelementptr inbounds i8, ptr %1207, i64 8
  %1372 = load double, ptr %1371, align 8, !tbaa !12
  %1373 = load double, ptr %1357, align 8, !tbaa !12
  %1374 = fmul double %1355, %1373
  %1375 = load double, ptr %1207, align 8, !tbaa !12
  %1376 = call double @llvm.fmuladd.f64(double %1374, double %1375, double %.lcssa1435.3)
  %1377 = call double @llvm.fmuladd.f64(double %1370, double %1372, double %1376)
  %1378 = call double @llvm.fmuladd.f64(double %1365, double %1367, double %1377)
  %1379 = call double @llvm.fmuladd.f64(double %1360, double %1362, double %1378)
  %1380 = getelementptr inbounds i8, ptr %1357, i64 32
  %1381 = load double, ptr %1380, align 8, !tbaa !12
  %1382 = fmul double %1355, %1381
  %1383 = getelementptr inbounds i8, ptr %1207, i64 32
  %1384 = load double, ptr %1383, align 8, !tbaa !12
  %1385 = call double @llvm.fmuladd.f64(double %1382, double %1384, double %1379)
  br label %.loopexit1062

.loopexit1062:                                    ; preds = %1244, %1281, %1317, %1352, %.preheader1055.4, %.loopexit1064
  %.11 = phi double [ %.8, %.loopexit1064 ], [ %.lcssa1435, %1244 ], [ %.lcssa1435.1, %1281 ], [ %.lcssa1435.2, %1317 ], [ %.lcssa1435.3, %1352 ], [ %1385, %.preheader1055.4 ]
  %1386 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.1877, double noundef 0.000000e+00)
  %.not1002.not1181 = icmp sgt i64 %.3921, 0
  %or.cond = select i1 %1386, i1 %.not1002.not1181, i1 false
  br i1 %or.cond, label %.lr.ph1184, label %.loopexit1060

.lr.ph1184:                                       ; preds = %.loopexit1062
  %1387 = fmul double %.1877, 5.000000e-01
  br label %1388

1388:                                             ; preds = %.lr.ph1184, %1388
  %.121183 = phi double [ %.11, %.lr.ph1184 ], [ %1400, %1388 ]
  %.301182 = phi i64 [ 0, %.lr.ph1184 ], [ %1401, %1388 ]
  %1389 = load ptr, ptr %24, align 8, !tbaa !7
  %1390 = getelementptr inbounds ptr, ptr %1389, i64 %.301182
  %1391 = load ptr, ptr %1390, align 8, !tbaa !10
  %1392 = load ptr, ptr %26, align 8, !tbaa !7
  %1393 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %871)
  %1394 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1391, i64 noundef 1, ptr noundef %1392, i64 noundef 1, i64 noundef %1393)
  store double %1394, ptr %5, align 8, !tbaa !12
  %1395 = load ptr, ptr %25, align 8, !tbaa !7
  %1396 = getelementptr inbounds double, ptr %1395, i64 %.301182
  %1397 = load double, ptr %1396, align 8, !tbaa !12
  %1398 = fsub double %1394, %1397
  %1399 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1398, ptr noundef %1)
  %1400 = call double @llvm.fmuladd.f64(double %1387, double %1399, double %.121183)
  %1401 = add nuw nsw i64 %.301182, 1
  %exitcond1332.not = icmp eq i64 %1401, %.3921
  br i1 %exitcond1332.not, label %.loopexit1060, label %1388, !llvm.loop !63

.loopexit1060:                                    ; preds = %1388, %.loopexit1062
  %.13 = phi double [ %.11, %.loopexit1062 ], [ %1400, %1388 ]
  %1402 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1402, ptr %5, align 8, !tbaa !12
  br i1 %.18681191, label %.thread, label %1404

.thread:                                          ; preds = %.loopexit1060
  %1403 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1403, ptr %5, align 8, !tbaa !12
  br label %.thread1038

1404:                                             ; preds = %.loopexit1060
  %1405 = fsub double %.13, %1402
  %1406 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1405, ptr noundef %1)
  %1407 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1406, double noundef 0x3D95FD7FE1796496)
  %1408 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1408, ptr %5, align 8, !tbaa !12
  br i1 %1407, label %.thread1038, label %1410

.thread1038:                                      ; preds = %1404, %.thread
  %1409 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1409, ptr %5, align 8, !tbaa !12
  br label %1419

1410:                                             ; preds = %1404
  %1411 = fsub double %.13, %1408
  %1412 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1411, ptr noundef %1)
  %1413 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1412, double noundef 0x3D95FD7FE1796496)
  %1414 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1414, ptr %5, align 8, !tbaa !12
  br i1 %1413, label %1419, label %1415

1415:                                             ; preds = %1410
  %1416 = fsub double %.13, %1414
  %1417 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1416, ptr noundef %1)
  %1418 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1417, double noundef 0x3D95FD7FE1796496)
  br label %1419

1419:                                             ; preds = %.thread1038, %1415, %1410
  %1420 = phi i1 [ true, %1410 ], [ %1418, %1415 ], [ true, %.thread1038 ]
  %1421 = add nuw nsw i64 %.08991187, 1
  %exitcond1333.not = icmp eq i64 %1421, 101
  br i1 %exitcond1333.not, label %1422, label %873, !llvm.loop !64

1422:                                             ; preds = %1419
  %1423 = add nuw nsw i64 %.29271192, 1
  %exitcond1334.not = icmp eq i64 %1423, 6
  br i1 %exitcond1334.not, label %1424, label %830, !llvm.loop !65

1424:                                             ; preds = %1422
  %1425 = or i1 %516, %824
  %1426 = getelementptr inbounds i8, ptr %12, i64 56
  br label %.preheader1054

.preheader1054:                                   ; preds = %1424, %1509
  %indvars.iv1340 = phi i64 [ 3, %1424 ], [ %indvars.iv.next1341, %1509 ]
  %.39281209 = phi i64 [ 1, %1424 ], [ %1510, %1509 ]
  %.09321208 = phi i1 [ false, %1424 ], [ %1505, %1509 ]
  %1427 = add nsw i64 %.39281209, -1
  br label %1428

1428:                                             ; preds = %.preheader1054, %1507
  %.49221207 = phi i64 [ 0, %.preheader1054 ], [ %1508, %1507 ]
  %.19331206 = phi i1 [ %.09321208, %.preheader1054 ], [ %1505, %1507 ]
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.39281209, i64 noundef %.39281209, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef %.39281209, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.39281209, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %.39281209, ptr noundef %1)
  %.not974 = icmp eq i64 %.49221207, 0
  br i1 %.not974, label %1430, label %1429

1429:                                             ; preds = %1428
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.49221207, i64 noundef %.39281209, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.49221207, ptr noundef %1)
  br label %1430

1430:                                             ; preds = %1429, %1428
  %1431 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  br label %1434

.loopexit1052:                                    ; preds = %.lr.ph1197, %1434
  %exitcond1335.not = icmp eq i64 %1446, %.39281209
  br i1 %exitcond1335.not, label %.preheader1053, label %1434, !llvm.loop !66

.preheader1053:                                   ; preds = %.loopexit1052
  %1432 = fadd double %1431, 1.000000e+00
  %1433 = fneg double %1432
  br label %1458

1434:                                             ; preds = %1430, %.loopexit1052
  %.311198 = phi i64 [ 0, %1430 ], [ %1446, %.loopexit1052 ]
  %1435 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1436 = call double @llvm.fmuladd.f64(double %1435, double 2.000000e+00, double -1.000000e+00)
  %1437 = load ptr, ptr %1426, align 8, !tbaa !7
  %1438 = getelementptr inbounds double, ptr %1437, i64 %.311198
  store double %1436, ptr %1438, align 8, !tbaa !12
  %1439 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1440 = fadd double %1439, 1.000000e+00
  %1441 = fmul double %1440, 1.000000e+01
  %1442 = load ptr, ptr %21, align 8, !tbaa !7
  %1443 = getelementptr inbounds ptr, ptr %1442, i64 %.311198
  %1444 = load ptr, ptr %1443, align 8, !tbaa !10
  %1445 = getelementptr inbounds double, ptr %1444, i64 %.311198
  store double %1441, ptr %1445, align 8, !tbaa !12
  %1446 = add nuw nsw i64 %.311198, 1
  %.not980.not1194 = icmp ult i64 %1446, %.39281209
  br i1 %.not980.not1194, label %.lr.ph1197, label %.loopexit1052

.lr.ph1197:                                       ; preds = %1434, %.lr.ph1197
  %.138951195 = phi i64 [ %1457, %.lr.ph1197 ], [ %1446, %1434 ]
  %1447 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1448 = call double @llvm.fmuladd.f64(double %1447, double 1.000000e-01, double -5.000000e-02)
  %1449 = load ptr, ptr %21, align 8, !tbaa !7
  %1450 = getelementptr inbounds ptr, ptr %1449, i64 %.311198
  %1451 = load ptr, ptr %1450, align 8, !tbaa !10
  %1452 = getelementptr inbounds double, ptr %1451, i64 %.138951195
  store double %1448, ptr %1452, align 8, !tbaa !12
  %1453 = load ptr, ptr %21, align 8, !tbaa !7
  %1454 = getelementptr inbounds ptr, ptr %1453, i64 %.138951195
  %1455 = load ptr, ptr %1454, align 8, !tbaa !10
  %1456 = getelementptr inbounds double, ptr %1455, i64 %.311198
  store double %1448, ptr %1456, align 8, !tbaa !12
  %1457 = add nuw nsw i64 %.138951195, 1
  %.not980.not = icmp ult i64 %1457, %.39281209
  br i1 %.not980.not, label %.lr.ph1197, label %.loopexit1052, !llvm.loop !67

1458:                                             ; preds = %.preheader1053, %1458
  %.321199 = phi i64 [ 0, %.preheader1053 ], [ %1468, %1458 ]
  %1459 = load ptr, ptr %21, align 8, !tbaa !7
  %1460 = getelementptr inbounds ptr, ptr %1459, i64 %.321199
  %1461 = load ptr, ptr %1460, align 8, !tbaa !10
  %1462 = load ptr, ptr %1426, align 8, !tbaa !7
  %1463 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1427)
  %1464 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1461, i64 noundef 1, ptr noundef %1462, i64 noundef 1, i64 noundef %1463)
  %1465 = fmul double %1464, %1433
  %1466 = load ptr, ptr %22, align 8, !tbaa !7
  %1467 = getelementptr inbounds double, ptr %1466, i64 %.321199
  store double %1465, ptr %1467, align 8, !tbaa !12
  %1468 = add nuw nsw i64 %.321199, 1
  %exitcond1336.not = icmp eq i64 %1468, %.39281209
  br i1 %exitcond1336.not, label %1469, label %1458, !llvm.loop !68

1469:                                             ; preds = %1458
  %1470 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1471 = fadd double %1470, 1.000000e+00
  br i1 %.not974, label %._crit_edge1203, label %.preheader1051

.preheader1051:                                   ; preds = %1469, %1480
  %.331202 = phi i64 [ %1489, %1480 ], [ 0, %1469 ]
  br label %1472

1472:                                             ; preds = %.preheader1051, %1472
  %.148961200 = phi i64 [ 0, %.preheader1051 ], [ %1479, %1472 ]
  %1473 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1474 = call double @llvm.fmuladd.f64(double %1473, double 2.000000e+00, double -1.000000e+00)
  %1475 = load ptr, ptr %24, align 8, !tbaa !7
  %1476 = getelementptr inbounds ptr, ptr %1475, i64 %.331202
  %1477 = load ptr, ptr %1476, align 8, !tbaa !10
  %1478 = getelementptr inbounds double, ptr %1477, i64 %.148961200
  store double %1474, ptr %1478, align 8, !tbaa !12
  %1479 = add nuw nsw i64 %.148961200, 1
  %exitcond1337.not = icmp eq i64 %1479, %.39281209
  br i1 %exitcond1337.not, label %1480, label %1472, !llvm.loop !69

1480:                                             ; preds = %1472
  %1481 = load ptr, ptr %24, align 8, !tbaa !7
  %1482 = getelementptr inbounds ptr, ptr %1481, i64 %.331202
  %1483 = load ptr, ptr %1482, align 8, !tbaa !10
  %1484 = load ptr, ptr %1426, align 8, !tbaa !7
  %1485 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1427)
  %1486 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1483, i64 noundef 1, ptr noundef %1484, i64 noundef 1, i64 noundef %1485)
  %1487 = load ptr, ptr %25, align 8, !tbaa !7
  %1488 = getelementptr inbounds double, ptr %1487, i64 %.331202
  store double %1486, ptr %1488, align 8, !tbaa !12
  %1489 = add nuw nsw i64 %.331202, 1
  %exitcond1338.not = icmp eq i64 %1489, %.49221207
  br i1 %exitcond1338.not, label %._crit_edge1203, label %.preheader1051, !llvm.loop !70

._crit_edge1203:                                  ; preds = %1480, %1469
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %.39281209, ptr noundef nonnull %4, ptr noundef %1)
  %1490 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1491 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1490, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %7, i1 noundef zeroext %1491, double noundef %1432, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %9, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef nonnull %10, i64 noundef %.49221207, double noundef %1471, ptr noundef %1)
  %1492 = call noundef zeroext i1 @_ZN11alglib_impl21cqmconstrainedoptimumEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  br label %1493

1493:                                             ; preds = %._crit_edge1203, %1504
  %.341205 = phi i64 [ 0, %._crit_edge1203 ], [ %1506, %1504 ]
  %.29341204 = phi i1 [ %.19331206, %._crit_edge1203 ], [ %1505, %1504 ]
  br i1 %.29341204, label %1504, label %1494

1494:                                             ; preds = %1493
  %1495 = load ptr, ptr %26, align 8, !tbaa !7
  %1496 = getelementptr inbounds double, ptr %1495, i64 %.341205
  %1497 = load double, ptr %1496, align 8, !tbaa !12
  %1498 = load ptr, ptr %1426, align 8, !tbaa !7
  %1499 = getelementptr inbounds double, ptr %1498, i64 %.341205
  %1500 = load double, ptr %1499, align 8, !tbaa !12
  %1501 = fsub double %1497, %1500
  %1502 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1501, ptr noundef %1)
  %1503 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1502, double noundef 5.000000e-10)
  br label %1504

1504:                                             ; preds = %1494, %1493
  %1505 = phi i1 [ true, %1493 ], [ %1503, %1494 ]
  %1506 = add nuw nsw i64 %.341205, 1
  %exitcond1339.not = icmp eq i64 %1506, %.39281209
  br i1 %exitcond1339.not, label %1507, label %1493, !llvm.loop !71

1507:                                             ; preds = %1504
  %1508 = add nuw nsw i64 %.49221207, 1
  %exitcond1342.not = icmp eq i64 %1508, %indvars.iv1340
  br i1 %exitcond1342.not, label %1509, label %1428, !llvm.loop !72

1509:                                             ; preds = %1507
  %1510 = add nuw nsw i64 %.39281209, 1
  %indvars.iv.next1341 = add nuw nsw i64 %indvars.iv1340, 2
  %exitcond1343.not = icmp eq i64 %1510, 6
  br i1 %exitcond1343.not, label %1511, label %.preheader1054, !llvm.loop !73

1511:                                             ; preds = %1509
  %1512 = or i1 %1425, %1420
  br label %.preheader1050

.preheader1050:                                   ; preds = %1511, %1616
  %indvars.iv1348 = phi i64 [ 3, %1511 ], [ %indvars.iv.next1349, %1616 ]
  %.49291224 = phi i64 [ 1, %1511 ], [ %1617, %1616 ]
  %.09401223 = phi i8 [ 0, %1511 ], [ %.4944, %1616 ]
  br label %1513

1513:                                             ; preds = %.preheader1050, %.loopexit1049
  %.59231222 = phi i64 [ 0, %.preheader1050 ], [ %1615, %.loopexit1049 ]
  %.19411221 = phi i8 [ %.09401223, %.preheader1050 ], [ %.4944, %.loopexit1049 ]
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %7, i64 noundef %.49291224, i64 noundef %.49291224, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef %.49291224, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %.49291224, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %13, i64 noundef %.49291224, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %20, i64 noundef %.49291224, ptr noundef %1)
  %.not967 = icmp eq i64 %.59231222, 0
  br i1 %.not967, label %1515, label %1514

1514:                                             ; preds = %1513
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.59231222, i64 noundef %.49291224, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.59231222, ptr noundef %1)
  br label %1515

1515:                                             ; preds = %1514, %1513
  %1516 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  br label %1517

.loopexit:                                        ; preds = %.lr.ph1213, %1517
  %exitcond1344.not = icmp eq i64 %1538, %.49291224
  br i1 %exitcond1344.not, label %1550, label %1517, !llvm.loop !74

1517:                                             ; preds = %1515, %.loopexit
  %.351214 = phi i64 [ 0, %1515 ], [ %1538, %.loopexit ]
  %1518 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1519 = fadd double %1518, 1.000000e+00
  %1520 = fmul double %1519, 1.000000e+01
  %1521 = load ptr, ptr %21, align 8, !tbaa !7
  %1522 = getelementptr inbounds ptr, ptr %1521, i64 %.351214
  %1523 = load ptr, ptr %1522, align 8, !tbaa !10
  %1524 = getelementptr inbounds double, ptr %1523, i64 %.351214
  store double %1520, ptr %1524, align 8, !tbaa !12
  %1525 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1526 = call double @llvm.fmuladd.f64(double %1525, double 2.000000e+00, double -1.000000e+00)
  %1527 = load ptr, ptr %22, align 8, !tbaa !7
  %1528 = getelementptr inbounds double, ptr %1527, i64 %.351214
  store double %1526, ptr %1528, align 8, !tbaa !12
  %1529 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1530 = call double @llvm.fmuladd.f64(double %1529, double 2.000000e+00, double -1.000000e+00)
  %1531 = load ptr, ptr %523, align 8, !tbaa !7
  %1532 = getelementptr inbounds double, ptr %1531, i64 %.351214
  store double %1530, ptr %1532, align 8, !tbaa !12
  %1533 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1534 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1533, double noundef 5.000000e-01)
  %1535 = load ptr, ptr %524, align 8, !tbaa !7
  %1536 = getelementptr inbounds i8, ptr %1535, i64 %.351214
  %1537 = zext i1 %1534 to i8
  store i8 %1537, ptr %1536, align 1, !tbaa !28
  %1538 = add nuw nsw i64 %.351214, 1
  %.not972.not1210 = icmp ult i64 %1538, %.49291224
  br i1 %.not972.not1210, label %.lr.ph1213, label %.loopexit

.lr.ph1213:                                       ; preds = %1517, %.lr.ph1213
  %.158971211 = phi i64 [ %1549, %.lr.ph1213 ], [ %1538, %1517 ]
  %1539 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1540 = call double @llvm.fmuladd.f64(double %1539, double 1.000000e-01, double -5.000000e-02)
  %1541 = load ptr, ptr %21, align 8, !tbaa !7
  %1542 = getelementptr inbounds ptr, ptr %1541, i64 %.351214
  %1543 = load ptr, ptr %1542, align 8, !tbaa !10
  %1544 = getelementptr inbounds double, ptr %1543, i64 %.158971211
  store double %1540, ptr %1544, align 8, !tbaa !12
  %1545 = load ptr, ptr %21, align 8, !tbaa !7
  %1546 = getelementptr inbounds ptr, ptr %1545, i64 %.158971211
  %1547 = load ptr, ptr %1546, align 8, !tbaa !10
  %1548 = getelementptr inbounds double, ptr %1547, i64 %.351214
  store double %1540, ptr %1548, align 8, !tbaa !12
  %1549 = add nuw nsw i64 %.158971211, 1
  %.not972.not = icmp ult i64 %1549, %.49291224
  br i1 %.not972.not, label %.lr.ph1213, label %.loopexit, !llvm.loop !75

1550:                                             ; preds = %.loopexit
  %1551 = fadd double %1516, 1.000000e+00
  %1552 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1553 = fadd double %1552, 1.000000e+00
  br i1 %.not967, label %._crit_edge1218, label %.preheader1048

.preheader1048:                                   ; preds = %1550, %1562
  %.361217 = phi i64 [ %1567, %1562 ], [ 0, %1550 ]
  br label %1554

1554:                                             ; preds = %.preheader1048, %1554
  %.168981215 = phi i64 [ 0, %.preheader1048 ], [ %1561, %1554 ]
  %1555 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1556 = call double @llvm.fmuladd.f64(double %1555, double 2.000000e+00, double -1.000000e+00)
  %1557 = load ptr, ptr %24, align 8, !tbaa !7
  %1558 = getelementptr inbounds ptr, ptr %1557, i64 %.361217
  %1559 = load ptr, ptr %1558, align 8, !tbaa !10
  %1560 = getelementptr inbounds double, ptr %1559, i64 %.168981215
  store double %1556, ptr %1560, align 8, !tbaa !12
  %1561 = add nuw nsw i64 %.168981215, 1
  %exitcond1345.not = icmp eq i64 %1561, %.49291224
  br i1 %exitcond1345.not, label %1562, label %1554, !llvm.loop !76

1562:                                             ; preds = %1554
  %1563 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1564 = call double @llvm.fmuladd.f64(double %1563, double 2.000000e+00, double -1.000000e+00)
  %1565 = load ptr, ptr %25, align 8, !tbaa !7
  %1566 = getelementptr inbounds double, ptr %1565, i64 %.361217
  store double %1564, ptr %1566, align 8, !tbaa !12
  %1567 = add nuw nsw i64 %.361217, 1
  %exitcond1346.not = icmp eq i64 %1567, %.59231222
  br i1 %exitcond1346.not, label %._crit_edge1218, label %.preheader1048, !llvm.loop !77

._crit_edge1218:                                  ; preds = %1562, %1550
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %.49291224, ptr noundef nonnull %4, ptr noundef %1)
  %1568 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1569 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1568, double noundef 5.000000e-01)
  call void @_ZN11alglib_impl7cqmsetaEPNS_20convexquadraticmodelEPNS_9ae_matrixEbdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %7, i1 noundef zeroext %1569, double noundef %1551, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %9, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef nonnull %10, i64 noundef %.59231222, double noundef %1553, ptr noundef %1)
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %13, ptr noundef nonnull %20, ptr noundef %1)
  %1570 = call noundef zeroext i1 @_ZN11alglib_impl21cqmconstrainedoptimumEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  br i1 %1570, label %1571, label %.loopexit1049

1571:                                             ; preds = %._crit_edge1218
  %1572 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  br label %1573

1573:                                             ; preds = %1571, %1613
  %.371220 = phi i64 [ 0, %1571 ], [ %1614, %1613 ]
  %.29421219 = phi i8 [ %.19411221, %1571 ], [ %.3943, %1613 ]
  %1574 = trunc nuw i8 %.29421219 to i1
  %.pre1368 = load ptr, ptr %524, align 8, !tbaa !7
  br i1 %1574, label %1587, label %1575

1575:                                             ; preds = %1573
  %1576 = getelementptr inbounds i8, ptr %.pre1368, i64 %.371220
  %1577 = load i8, ptr %1576, align 1, !tbaa !28, !range !34, !noundef !35
  %1578 = trunc nuw i8 %1577 to i1
  br i1 %1578, label %1579, label %1587

1579:                                             ; preds = %1575
  %1580 = load ptr, ptr %26, align 8, !tbaa !7
  %1581 = getelementptr inbounds double, ptr %1580, i64 %.371220
  %1582 = load double, ptr %1581, align 8, !tbaa !12
  %1583 = load ptr, ptr %523, align 8, !tbaa !7
  %1584 = getelementptr inbounds double, ptr %1583, i64 %.371220
  %1585 = load double, ptr %1584, align 8, !tbaa !12
  %1586 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1582, double noundef %1585)
  %.pre1367 = load ptr, ptr %524, align 8, !tbaa !7
  br label %1587

1587:                                             ; preds = %1575, %1579, %1573
  %1588 = phi ptr [ %.pre1368, %1573 ], [ %.pre1368, %1575 ], [ %.pre1367, %1579 ]
  %1589 = phi i1 [ true, %1573 ], [ false, %1575 ], [ %1586, %1579 ]
  %1590 = getelementptr inbounds i8, ptr %1588, i64 %.371220
  %1591 = load i8, ptr %1590, align 1, !tbaa !28, !range !34, !noundef !35
  %1592 = trunc nuw i8 %1591 to i1
  br i1 %1592, label %1613, label %1593

1593:                                             ; preds = %1587
  %1594 = load ptr, ptr %26, align 8, !tbaa !7
  %1595 = getelementptr inbounds double, ptr %1594, i64 %.371220
  %1596 = load double, ptr %1595, align 8, !tbaa !12
  %1597 = fadd double %1596, 1.000000e-03
  store double %1597, ptr %1595, align 8, !tbaa !12
  %1598 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1598, ptr %5, align 8, !tbaa !12
  br i1 %1589, label %1601, label %1599

1599:                                             ; preds = %1593
  %1600 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1598, double noundef %1572)
  br label %1601

1601:                                             ; preds = %1599, %1593
  %1602 = phi i1 [ true, %1593 ], [ %1600, %1599 ]
  %1603 = fadd double %1596, -1.000000e-03
  %1604 = load ptr, ptr %26, align 8, !tbaa !7
  %1605 = getelementptr inbounds double, ptr %1604, i64 %.371220
  store double %1603, ptr %1605, align 8, !tbaa !12
  %1606 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1606, ptr %5, align 8, !tbaa !12
  br i1 %1602, label %1609, label %1607

1607:                                             ; preds = %1601
  %1608 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1606, double noundef %1572)
  br label %1609

1609:                                             ; preds = %1607, %1601
  %1610 = phi i1 [ true, %1601 ], [ %1608, %1607 ]
  %1611 = load ptr, ptr %26, align 8, !tbaa !7
  %1612 = getelementptr inbounds double, ptr %1611, i64 %.371220
  store double %1596, ptr %1612, align 8, !tbaa !12
  br label %1613

1613:                                             ; preds = %1587, %1609
  %.3943.in = phi i1 [ %1589, %1587 ], [ %1610, %1609 ]
  %.3943 = zext i1 %.3943.in to i8
  %1614 = add nuw nsw i64 %.371220, 1
  %exitcond1347.not = icmp eq i64 %1614, %.49291224
  br i1 %exitcond1347.not, label %.loopexit1049, label %1573, !llvm.loop !78

.loopexit1049:                                    ; preds = %1613, %._crit_edge1218
  %.4944 = phi i8 [ 1, %._crit_edge1218 ], [ %.3943, %1613 ]
  %1615 = add nuw nsw i64 %.59231222, 1
  %exitcond1350.not = icmp eq i64 %1615, %indvars.iv1348
  br i1 %exitcond1350.not, label %1616, label %1513, !llvm.loop !79

1616:                                             ; preds = %.loopexit1049
  %1617 = add nuw nsw i64 %.49291224, 1
  %indvars.iv.next1349 = add nuw nsw i64 %indvars.iv1348, 2
  %exitcond1351.not = icmp eq i64 %1617, 6
  br i1 %exitcond1351.not, label %1618, label %.preheader1050, !llvm.loop !80

1618:                                             ; preds = %1616
  %1619 = trunc nuw i8 %.4944 to i1
  br label %.preheader1047

.preheader1047:                                   ; preds = %1618, %1810
  %.59301264 = phi i64 [ 6, %1618 ], [ %1625, %1810 ]
  %.09351263 = phi i64 [ 0, %1618 ], [ %1811, %1810 ]
  %.09361262 = phi i8 [ 0, %1618 ], [ %.3939, %1810 ]
  %1620 = uitofp nneg i64 %.09351263 to double
  br label %1621

1621:                                             ; preds = %.preheader1047, %1808
  %.69241260 = phi i64 [ 0, %.preheader1047 ], [ %1809, %1808 ]
  %.69311259 = phi i64 [ %.59301264, %.preheader1047 ], [ %1625, %1808 ]
  %.19371258 = phi i8 [ %.09361262, %.preheader1047 ], [ %.3939, %1808 ]
  %1622 = add nsw i64 %.69241260, -1
  %1623 = sitofp i64 %.69311259 to double
  %1624 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1623, double noundef %1620, ptr noundef %1)
  %1625 = call noundef i64 @_ZN11alglib_impl8ae_roundEdPNS_8ae_stateE(double noundef %1624, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %14, i64 noundef %1625, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %9, i64 noundef %1625, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %11, i64 noundef %1625, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1625, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %20, i64 noundef %1625, ptr noundef %1)
  %.not = icmp eq i64 %.69241260, 0
  br i1 %.not, label %1627, label %1626

1626:                                             ; preds = %1621
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %8, i64 noundef %.69241260, i64 noundef %1625, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %10, i64 noundef %.69241260, ptr noundef %1)
  br label %1627

1627:                                             ; preds = %1626, %1621
  %1628 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1629 = fadd double %1628, 1.000000e+00
  %1630 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1631 = fadd double %1630, 1.000000e+00
  %.not959.not1225 = icmp sgt i64 %1625, 0
  br i1 %.not959.not1225, label %.lr.ph1228, label %.preheader1046.thread

.preheader1046:                                   ; preds = %.lr.ph1228
  %1632 = add nsw i64 %1625, -1
  br i1 %.not, label %._crit_edge1237, label %.preheader.lr.ph

.preheader1046.thread:                            ; preds = %1627
  %1633 = add nsw i64 %1625, -1
  br i1 %.not, label %._crit_edge1237, label %.preheader.preheader

.preheader.lr.ph:                                 ; preds = %.preheader1046
  br i1 %.not959.not1225, label %.preheader.us, label %.preheader.preheader

.preheader.preheader:                             ; preds = %.preheader1046.thread, %.preheader.lr.ph
  %1634 = phi i64 [ %1632, %.preheader.lr.ph ], [ %1633, %.preheader1046.thread ]
  %xtraiter = and i64 %.69241260, 3
  %1635 = icmp ult i64 %1622, 3
  br i1 %1635, label %._crit_edge1237.loopexit1427.unr-lcssa, label %.preheader.preheader.new

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

.preheader.us:                                    ; preds = %.preheader.lr.ph, %._crit_edge1233.us
  %.391236.us = phi i64 [ %1655, %._crit_edge1233.us ], [ 0, %.preheader.lr.ph ]
  br label %1636

1636:                                             ; preds = %.preheader.us, %1636
  %.141231.us = phi double [ 0.000000e+00, %.preheader.us ], [ %1651, %1636 ]
  %.171230.us = phi i64 [ 0, %.preheader.us ], [ %1652, %1636 ]
  %1637 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1638 = call double @llvm.fmuladd.f64(double %1637, double 2.000000e+00, double -1.000000e+00)
  %1639 = load ptr, ptr %24, align 8, !tbaa !7
  %1640 = getelementptr inbounds ptr, ptr %1639, i64 %.391236.us
  %1641 = load ptr, ptr %1640, align 8, !tbaa !10
  %1642 = getelementptr inbounds double, ptr %1641, i64 %.171230.us
  store double %1638, ptr %1642, align 8, !tbaa !12
  %1643 = load ptr, ptr %24, align 8, !tbaa !7
  %1644 = getelementptr inbounds ptr, ptr %1643, i64 %.391236.us
  %1645 = load ptr, ptr %1644, align 8, !tbaa !10
  %1646 = getelementptr inbounds double, ptr %1645, i64 %.171230.us
  %1647 = load double, ptr %1646, align 8, !tbaa !12
  %1648 = load ptr, ptr %1426, align 8, !tbaa !7
  %1649 = getelementptr inbounds double, ptr %1648, i64 %.171230.us
  %1650 = load double, ptr %1649, align 8, !tbaa !12
  %1651 = call double @llvm.fmuladd.f64(double %1647, double %1650, double %.141231.us)
  %1652 = add nuw nsw i64 %.171230.us, 1
  %exitcond1354.not = icmp eq i64 %1652, %1625
  br i1 %exitcond1354.not, label %._crit_edge1233.us, label %1636, !llvm.loop !81

._crit_edge1233.us:                               ; preds = %1636
  %1653 = load ptr, ptr %25, align 8, !tbaa !7
  %1654 = getelementptr inbounds double, ptr %1653, i64 %.391236.us
  store double %1651, ptr %1654, align 8, !tbaa !12
  %1655 = add nuw nsw i64 %.391236.us, 1
  %exitcond1355.not = icmp eq i64 %1655, %.69241260
  br i1 %exitcond1355.not, label %._crit_edge1237, label %.preheader.us, !llvm.loop !82

.lr.ph1228:                                       ; preds = %1627, %.lr.ph1228
  %.381226 = phi i64 [ %1680, %.lr.ph1228 ], [ 0, %1627 ]
  %1656 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1657 = call double @llvm.fmuladd.f64(double %1656, double 2.000000e+00, double -1.000000e+00)
  %1658 = load ptr, ptr %1426, align 8, !tbaa !7
  %1659 = getelementptr inbounds double, ptr %1658, i64 %.381226
  store double %1657, ptr %1659, align 8, !tbaa !12
  %1660 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1661 = fadd double %1660, 1.000000e+00
  %1662 = load ptr, ptr %23, align 8, !tbaa !7
  %1663 = getelementptr inbounds double, ptr %1662, i64 %.381226
  store double %1661, ptr %1663, align 8, !tbaa !12
  %1664 = load ptr, ptr %1426, align 8, !tbaa !7
  %1665 = getelementptr inbounds double, ptr %1664, i64 %.381226
  %1666 = load double, ptr %1665, align 8, !tbaa !12
  %1667 = fneg double %1666
  %1668 = fmul double %1629, %1667
  %1669 = load ptr, ptr %23, align 8, !tbaa !7
  %1670 = getelementptr inbounds double, ptr %1669, i64 %.381226
  %1671 = load double, ptr %1670, align 8, !tbaa !12
  %1672 = fmul double %1668, %1671
  %1673 = load ptr, ptr %22, align 8, !tbaa !7
  %1674 = getelementptr inbounds double, ptr %1673, i64 %.381226
  store double %1672, ptr %1674, align 8, !tbaa !12
  %1675 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1676 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1675, double noundef 5.000000e-01)
  %1677 = load ptr, ptr %524, align 8, !tbaa !7
  %1678 = getelementptr inbounds i8, ptr %1677, i64 %.381226
  %1679 = zext i1 %1676 to i8
  store i8 %1679, ptr %1678, align 1, !tbaa !28
  %1680 = add nuw nsw i64 %.381226, 1
  %exitcond1352.not = icmp eq i64 %1680, %1625
  br i1 %exitcond1352.not, label %.preheader1046, label %.lr.ph1228, !llvm.loop !83

.preheader:                                       ; preds = %.preheader, %.preheader.preheader.new
  %.391236 = phi i64 [ 0, %.preheader.preheader.new ], [ %1692, %.preheader ]
  %niter = phi i64 [ 0, %.preheader.preheader.new ], [ %niter.next.3, %.preheader ]
  %1681 = load ptr, ptr %25, align 8, !tbaa !7
  %1682 = getelementptr inbounds double, ptr %1681, i64 %.391236
  store double 0.000000e+00, ptr %1682, align 8, !tbaa !12
  %1683 = or disjoint i64 %.391236, 1
  %1684 = load ptr, ptr %25, align 8, !tbaa !7
  %1685 = getelementptr inbounds double, ptr %1684, i64 %1683
  store double 0.000000e+00, ptr %1685, align 8, !tbaa !12
  %1686 = or disjoint i64 %.391236, 2
  %1687 = load ptr, ptr %25, align 8, !tbaa !7
  %1688 = getelementptr inbounds double, ptr %1687, i64 %1686
  store double 0.000000e+00, ptr %1688, align 8, !tbaa !12
  %1689 = or disjoint i64 %.391236, 3
  %1690 = load ptr, ptr %25, align 8, !tbaa !7
  %1691 = getelementptr inbounds double, ptr %1690, i64 %1689
  store double 0.000000e+00, ptr %1691, align 8, !tbaa !12
  %1692 = add nuw nsw i64 %.391236, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge1237.loopexit1427.unr-lcssa, label %.preheader, !llvm.loop !82

._crit_edge1237.loopexit1427.unr-lcssa:           ; preds = %.preheader, %.preheader.preheader
  %.391236.unr = phi i64 [ 0, %.preheader.preheader ], [ %1692, %.preheader ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1237, label %.preheader.epil

.preheader.epil:                                  ; preds = %._crit_edge1237.loopexit1427.unr-lcssa, %.preheader.epil
  %.391236.epil = phi i64 [ %1695, %.preheader.epil ], [ %.391236.unr, %._crit_edge1237.loopexit1427.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.preheader.epil ], [ 0, %._crit_edge1237.loopexit1427.unr-lcssa ]
  %1693 = load ptr, ptr %25, align 8, !tbaa !7
  %1694 = getelementptr inbounds double, ptr %1693, i64 %.391236.epil
  store double 0.000000e+00, ptr %1694, align 8, !tbaa !12
  %1695 = add nuw nsw i64 %.391236.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge1237, label %.preheader.epil, !llvm.loop !84

._crit_edge1237:                                  ; preds = %._crit_edge1237.loopexit1427.unr-lcssa, %.preheader.epil, %._crit_edge1233.us, %.preheader1046.thread, %.preheader1046
  %1696 = phi i64 [ %1633, %.preheader1046.thread ], [ %1632, %.preheader1046 ], [ %1632, %._crit_edge1233.us ], [ %1634, %.preheader.epil ], [ %1634, %._crit_edge1237.loopexit1427.unr-lcssa ]
  call void @_ZN11alglib_impl7cqminitElPNS_20convexquadraticmodelEPNS_8ae_stateE(i64 noundef %1625, ptr noundef nonnull %4, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetbEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %9, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetdEPNS_20convexquadraticmodelEPNS_9ae_vectorEdPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %14, double noundef %1629, ptr noundef %1)
  call void @_ZN11alglib_impl7cqmsetqEPNS_20convexquadraticmodelEPNS_9ae_matrixEPNS_9ae_vectorEldPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef nonnull %10, i64 noundef %.69241260, double noundef %1631, ptr noundef %1)
  call void @_ZN11alglib_impl15cqmsetactivesetEPNS_20convexquadraticmodelEPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %12, ptr noundef nonnull %20, ptr noundef %1)
  %1697 = call noundef zeroext i1 @_ZN11alglib_impl21cqmconstrainedoptimumEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  br i1 %1697, label %1698, label %1808

1698:                                             ; preds = %._crit_edge1237
  %1699 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  br i1 %.not959.not1225, label %.lr.ph1242, label %.preheader1043

.preheader1045:                                   ; preds = %.critedge1035
  br i1 %.not959.not1225, label %.lr.ph1246, label %.preheader1043

.lr.ph1242:                                       ; preds = %1698, %.critedge1035
  %.401240 = phi i64 [ %1728, %.critedge1035 ], [ 0, %1698 ]
  %.29381239 = phi i8 [ %1727, %.critedge1035 ], [ %.19371258, %1698 ]
  %1700 = trunc nuw i8 %.29381239 to i1
  br i1 %1700, label %.critedge1035, label %1701

1701:                                             ; preds = %.lr.ph1242
  %1702 = load ptr, ptr %524, align 8, !tbaa !7
  %1703 = getelementptr inbounds i8, ptr %1702, i64 %.401240
  %1704 = load i8, ptr %1703, align 1, !tbaa !28, !range !34, !noundef !35
  %1705 = trunc nuw i8 %1704 to i1
  br i1 %1705, label %1706, label %.critedge1037

1706:                                             ; preds = %1701
  %1707 = load ptr, ptr %26, align 8, !tbaa !7
  %1708 = getelementptr inbounds double, ptr %1707, i64 %.401240
  %1709 = load double, ptr %1708, align 8, !tbaa !12
  %1710 = load ptr, ptr %1426, align 8, !tbaa !7
  %1711 = getelementptr inbounds double, ptr %1710, i64 %.401240
  %1712 = load double, ptr %1711, align 8, !tbaa !12
  %1713 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1709, double noundef %1712)
  br i1 %1713, label %.critedge1035, label %..critedge1037_crit_edge

..critedge1037_crit_edge:                         ; preds = %1706
  %.pre1369 = load ptr, ptr %524, align 8, !tbaa !7
  %.phi.trans.insert1370 = getelementptr inbounds i8, ptr %.pre1369, i64 %.401240
  %.pre1371 = load i8, ptr %.phi.trans.insert1370, align 1, !tbaa !28, !range !34
  br label %.critedge1037

.critedge1037:                                    ; preds = %..critedge1037_crit_edge, %1701
  %1714 = phi i8 [ %.pre1371, %..critedge1037_crit_edge ], [ %1704, %1701 ]
  %1715 = trunc nuw i8 %1714 to i1
  br i1 %1715, label %.critedge1035, label %1716

1716:                                             ; preds = %.critedge1037
  %1717 = load ptr, ptr %26, align 8, !tbaa !7
  %1718 = getelementptr inbounds double, ptr %1717, i64 %.401240
  %1719 = load double, ptr %1718, align 8, !tbaa !12
  %1720 = load ptr, ptr %1426, align 8, !tbaa !7
  %1721 = getelementptr inbounds double, ptr %1720, i64 %.401240
  %1722 = load double, ptr %1721, align 8, !tbaa !12
  %1723 = fsub double %1719, %1722
  %1724 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1723, ptr noundef %1)
  %1725 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1724, double noundef 5.000000e-13)
  br label %.critedge1035

.critedge1035:                                    ; preds = %.lr.ph1242, %.critedge1037, %1716, %1706
  %1726 = phi i1 [ true, %1706 ], [ false, %.critedge1037 ], [ %1725, %1716 ], [ true, %.lr.ph1242 ]
  %1727 = zext i1 %1726 to i8
  %1728 = add nuw nsw i64 %.401240, 1
  %exitcond1356.not = icmp eq i64 %1728, %1625
  br i1 %exitcond1356.not, label %.preheader1045, label %.lr.ph1242, !llvm.loop !86

.preheader1044:                                   ; preds = %1741
  br i1 %.not959.not1225, label %.lr.ph1250, label %.preheader1043

.lr.ph1250:                                       ; preds = %.preheader1044
  %1729 = fmul double %1629, 5.000000e-01
  %.pre1372 = load ptr, ptr %26, align 8, !tbaa !7
  br label %1746

.lr.ph1246:                                       ; preds = %.preheader1045, %1741
  %.411245 = phi i64 [ %1744, %1741 ], [ 0, %.preheader1045 ]
  %1730 = load ptr, ptr %524, align 8, !tbaa !7
  %1731 = getelementptr inbounds i8, ptr %1730, i64 %.411245
  %1732 = load i8, ptr %1731, align 1, !tbaa !28, !range !34, !noundef !35
  %1733 = trunc nuw i8 %1732 to i1
  br i1 %1733, label %1734, label %1738

1734:                                             ; preds = %.lr.ph1246
  %1735 = load ptr, ptr %1426, align 8, !tbaa !7
  %1736 = getelementptr inbounds double, ptr %1735, i64 %.411245
  %1737 = load double, ptr %1736, align 8, !tbaa !12
  br label %1741

1738:                                             ; preds = %.lr.ph1246
  %1739 = call noundef double @_ZN11alglib_impl13ae_randomrealEPNS_8ae_stateE(ptr noundef %1)
  %1740 = call double @llvm.fmuladd.f64(double %1739, double 2.000000e+00, double -1.000000e+00)
  br label %1741

1741:                                             ; preds = %1734, %1738
  %.sink = phi double [ %1737, %1734 ], [ %1740, %1738 ]
  %1742 = load ptr, ptr %26, align 8, !tbaa !7
  %1743 = getelementptr inbounds double, ptr %1742, i64 %.411245
  store double %.sink, ptr %1743, align 8, !tbaa !12
  %1744 = add nuw nsw i64 %.411245, 1
  %exitcond1357.not = icmp eq i64 %1744, %1625
  br i1 %exitcond1357.not, label %.preheader1044, label %.lr.ph1246, !llvm.loop !87

.preheader1043:                                   ; preds = %1746, %1698, %.preheader1045, %.preheader1044
  %.2938.lcssa13761378 = phi i8 [ %1727, %.preheader1044 ], [ %1727, %.preheader1045 ], [ %.19371258, %1698 ], [ %1727, %1746 ]
  %.15.lcssa = phi double [ 0.000000e+00, %.preheader1044 ], [ 0.000000e+00, %.preheader1045 ], [ 0.000000e+00, %1698 ], [ %1762, %1746 ]
  br i1 %.not, label %._crit_edge1256, label %.lr.ph1255

.lr.ph1255:                                       ; preds = %.preheader1043
  %1745 = fmul double %1631, 5.000000e-01
  br label %1764

1746:                                             ; preds = %.lr.ph1250, %1746
  %1747 = phi ptr [ %.pre1372, %.lr.ph1250 ], [ %1756, %1746 ]
  %.151249 = phi double [ 0.000000e+00, %.lr.ph1250 ], [ %1762, %1746 ]
  %.421248 = phi i64 [ 0, %.lr.ph1250 ], [ %1763, %1746 ]
  %1748 = load ptr, ptr %23, align 8, !tbaa !7
  %1749 = getelementptr inbounds double, ptr %1748, i64 %.421248
  %1750 = load double, ptr %1749, align 8, !tbaa !12
  %1751 = fmul double %1729, %1750
  %1752 = getelementptr inbounds double, ptr %1747, i64 %.421248
  %1753 = load double, ptr %1752, align 8, !tbaa !12
  %1754 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1753, ptr noundef %1)
  %1755 = call double @llvm.fmuladd.f64(double %1751, double %1754, double %.151249)
  %1756 = load ptr, ptr %26, align 8, !tbaa !7
  %1757 = getelementptr inbounds double, ptr %1756, i64 %.421248
  %1758 = load double, ptr %1757, align 8, !tbaa !12
  %1759 = load ptr, ptr %22, align 8, !tbaa !7
  %1760 = getelementptr inbounds double, ptr %1759, i64 %.421248
  %1761 = load double, ptr %1760, align 8, !tbaa !12
  %1762 = call double @llvm.fmuladd.f64(double %1758, double %1761, double %1755)
  %1763 = add nuw nsw i64 %.421248, 1
  %exitcond1358.not = icmp eq i64 %1763, %1625
  br i1 %exitcond1358.not, label %.preheader1043, label %1746, !llvm.loop !88

1764:                                             ; preds = %.lr.ph1255, %1764
  %.161254 = phi double [ %.15.lcssa, %.lr.ph1255 ], [ %1776, %1764 ]
  %.431253 = phi i64 [ 0, %.lr.ph1255 ], [ %1777, %1764 ]
  %1765 = load ptr, ptr %24, align 8, !tbaa !7
  %1766 = getelementptr inbounds ptr, ptr %1765, i64 %.431253
  %1767 = load ptr, ptr %1766, align 8, !tbaa !10
  %1768 = load ptr, ptr %26, align 8, !tbaa !7
  %1769 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1696)
  %1770 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %1767, i64 noundef 1, ptr noundef %1768, i64 noundef 1, i64 noundef %1769)
  store double %1770, ptr %5, align 8, !tbaa !12
  %1771 = load ptr, ptr %25, align 8, !tbaa !7
  %1772 = getelementptr inbounds double, ptr %1771, i64 %.431253
  %1773 = load double, ptr %1772, align 8, !tbaa !12
  %1774 = fsub double %1770, %1773
  %1775 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1774, ptr noundef %1)
  %1776 = call double @llvm.fmuladd.f64(double %1745, double %1775, double %.161254)
  %1777 = add nuw nsw i64 %.431253, 1
  %exitcond1359.not = icmp eq i64 %1777, %.69241260
  br i1 %exitcond1359.not, label %._crit_edge1256, label %1764, !llvm.loop !89

._crit_edge1256:                                  ; preds = %1764, %.preheader1043
  %.16.lcssa = phi double [ %.15.lcssa, %.preheader1043 ], [ %1776, %1764 ]
  %1778 = call noundef double @_ZN11alglib_impl7cqmevalEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1778, ptr %5, align 8, !tbaa !12
  %1779 = trunc nuw i8 %.2938.lcssa13761378 to i1
  br i1 %1779, label %.thread1040, label %1780

1780:                                             ; preds = %._crit_edge1256
  %1781 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1778, ptr noundef %1)
  br i1 %1781, label %1783, label %.thread1040

.thread1040:                                      ; preds = %1780, %._crit_edge1256
  %1782 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1782, ptr %5, align 8, !tbaa !12
  br label %.thread1042

1783:                                             ; preds = %1780
  %1784 = load double, ptr %5, align 8, !tbaa !12
  %1785 = fsub double %.16.lcssa, %1784
  %1786 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1785, ptr noundef %1)
  %1787 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1786, double noundef 0x3D95FD7FE1796496)
  %1788 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaltEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1788, ptr %5, align 8, !tbaa !12
  br i1 %1787, label %.thread1042, label %1789

1789:                                             ; preds = %1783
  %1790 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1788, ptr noundef %1)
  br i1 %1790, label %1792, label %.thread1042

.thread1042:                                      ; preds = %1789, %1783, %.thread1040
  %1791 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1791, ptr %5, align 8, !tbaa !12
  br label %1805

1792:                                             ; preds = %1789
  %1793 = load double, ptr %5, align 8, !tbaa !12
  %1794 = fsub double %.16.lcssa, %1793
  %1795 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1794, ptr noundef %1)
  %1796 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1795, double noundef 0x3D95FD7FE1796496)
  %1797 = call noundef double @_ZN11alglib_impl24cqmdebugconstrainedevaleEPNS_20convexquadraticmodelEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %11, ptr noundef %1)
  store double %1797, ptr %5, align 8, !tbaa !12
  br i1 %1796, label %1805, label %1798

1798:                                             ; preds = %1792
  %1799 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1797, ptr noundef %1)
  br i1 %1799, label %1800, label %1805

1800:                                             ; preds = %1798
  %1801 = load double, ptr %5, align 8, !tbaa !12
  %1802 = fsub double %.16.lcssa, %1801
  %1803 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1802, ptr noundef %1)
  %1804 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1803, double noundef 0x3D95FD7FE1796496)
  br label %1805

1805:                                             ; preds = %.thread1042, %1800, %1798, %1792
  %1806 = phi i1 [ true, %1798 ], [ true, %1792 ], [ %1804, %1800 ], [ true, %.thread1042 ]
  %1807 = zext i1 %1806 to i8
  br label %1808

1808:                                             ; preds = %._crit_edge1237, %1805
  %.3939 = phi i8 [ %1807, %1805 ], [ 1, %._crit_edge1237 ]
  %1809 = add nuw nsw i64 %.69241260, 1
  %exitcond1360.not = icmp eq i64 %1809, 6
  br i1 %exitcond1360.not, label %1810, label %1621, !llvm.loop !90

1810:                                             ; preds = %1808
  %1811 = add nuw nsw i64 %.09351263, 1
  %exitcond1361.not = icmp eq i64 %1811, 6
  br i1 %exitcond1361.not, label %1812, label %.preheader1047, !llvm.loop !91

1812:                                             ; preds = %1810
  %1813 = or i1 %1512, %1505
  %1814 = select i1 %1813, i1 true, i1 %1619
  %1815 = trunc nuw i8 %.3939 to i1
  %1816 = select i1 %1814, i1 true, i1 %1815
  br i1 %0, label %1833, label %1817

1817:                                             ; preds = %1812
  %1818 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.289)
  %1819 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.290)
  %.str.7..str.6 = select i1 %516, ptr @.str.7, ptr @.str.6
  %1820 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.7..str.6)
  %1821 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.291)
  %.str.6.sink1402 = select i1 %824, ptr @.str.7, ptr @.str.6
  %1822 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink1402)
  %1823 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.292)
  %.str.6.sink1403 = select i1 %1420, ptr @.str.7, ptr @.str.6
  %1824 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink1403)
  %1825 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.293)
  %.str.6.sink1404 = select i1 %1505, ptr @.str.7, ptr @.str.6
  %1826 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink1404)
  %1827 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.294)
  %.str.6.sink1405 = select i1 %1619, ptr @.str.7, ptr @.str.6
  %1828 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink1405)
  %1829 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.295)
  %.str.6.sink1406 = select i1 %1815, ptr @.str.7, ptr @.str.6
  %1830 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink1406)
  %.str.2.sink = select i1 %1816, ptr @.str.1, ptr @.str.2
  %1831 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.2.sink)
  %1832 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3)
  br label %1833

1833:                                             ; preds = %1817, %1812
  %1834 = xor i1 %1816, true
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 1688, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  ret i1 %1834
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #6

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { nofree nounwind "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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 = !{!8, !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !11, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"double", !8, i64 0}
!14 = distinct !{!14, !6}
!15 = distinct !{!15, !6}
!16 = distinct !{!16, !6}
!17 = distinct !{!17, !6}
!18 = distinct !{!18, !6}
!19 = distinct !{!19, !6}
!20 = distinct !{!20, !6}
!21 = distinct !{!21, !6}
!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 = !{!29, !29, i64 0}
!29 = !{!"bool", !8, i64 0}
!30 = distinct !{!30, !6}
!31 = distinct !{!31, !6}
!32 = distinct !{!32, !6}
!33 = distinct !{!33, !6}
!34 = !{i8 0, i8 2}
!35 = !{}
!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 = distinct !{!51, !6}
!52 = distinct !{!52, !6}
!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}
!60 = distinct !{!60, !6}
!61 = distinct !{!61, !6}
!62 = distinct !{!62, !6}
!63 = distinct !{!63, !6}
!64 = distinct !{!64, !6}
!65 = distinct !{!65, !6}
!66 = distinct !{!66, !6}
!67 = distinct !{!67, !6}
!68 = distinct !{!68, !6}
!69 = distinct !{!69, !6}
!70 = distinct !{!70, !6}
!71 = distinct !{!71, !6}
!72 = distinct !{!72, !6}
!73 = distinct !{!73, !6}
!74 = distinct !{!74, !6}
!75 = distinct !{!75, !6}
!76 = distinct !{!76, !6}
!77 = distinct !{!77, !6}
!78 = distinct !{!78, !6}
!79 = distinct !{!79, !6}
!80 = distinct !{!80, !6}
!81 = distinct !{!81, !6}
!82 = distinct !{!82, !6}
!83 = distinct !{!83, !6}
!84 = distinct !{!84, !85}
!85 = !{!"llvm.loop.unroll.disable"}
!86 = distinct !{!86, !6}
!87 = distinct !{!87, !6}
!88 = distinct !{!88, !6}
!89 = distinct !{!89, !6}
!90 = distinct !{!90, !6}
!91 = distinct !{!91, !6}


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