; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/src (optimization)

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

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::multiobjectivetestfunction" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"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", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"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", i64 }
%"struct.alglib_impl::ae_state" = type { i64, double, double, double, ptr, %"struct.alglib_impl::ae_dyn_block", ptr, i32, ptr, i64, ptr, ptr, ptr }

@.str.305 = external hidden unnamed_addr constant [31 x i8], align 1

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

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

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

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

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

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

; 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) #2

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl23motfcreaterandomunknownElllllddPNS_10hqrndstateEPNS_26multiobjectivetestfunctionEPNS_8ae_stateE(i64 noundef %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, double noundef %5, double noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9) #4 {
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"struct.alglib_impl::ae_frame", align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %27 = alloca %"struct.alglib_impl::ae_vector", align 8
  %28 = alloca %"struct.alglib_impl::ae_vector", align 8
  %29 = alloca %"struct.alglib_impl::ae_vector", align 8
  %30 = alloca %"struct.alglib_impl::ae_vector", align 8
  %31 = alloca i8, align 1
  %32 = alloca i8, align 1
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca i8, align 1
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca %"struct.alglib_impl::ae_vector", align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  store i64 %0, ptr %11, align 8, !tbaa !5
  store i64 %1, ptr %12, align 8, !tbaa !5
  store i64 %2, ptr %13, align 8, !tbaa !5
  store i64 %3, ptr %14, align 8, !tbaa !5
  store i64 %4, ptr %15, align 8, !tbaa !5
  store double %5, ptr %16, align 8, !tbaa !9
  store double %6, ptr %17, align 8, !tbaa !9
  store ptr %7, ptr %18, align 8, !tbaa !11
  store ptr %8, ptr %19, align 8, !tbaa !11
  store ptr %9, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, 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 80, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  %46 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %46, ptr noundef %21)
  call void @llvm.memset.p0.i64(ptr align 8 %26, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %28, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %29, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %30, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %41, i8 0, i64 64, i1 false)
  %47 = load ptr, ptr %19, align 8, !tbaa !11
  call void @_ZN11alglib_impl33_multiobjectivetestfunction_clearEPv(ptr noundef %47)
  %48 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %26, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %48, i1 noundef zeroext true)
  %49 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %27, i64 noundef 0, i64 noundef 3, ptr noundef %49, i1 noundef zeroext true)
  %50 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %28, i64 noundef 0, i64 noundef 3, ptr noundef %50, i1 noundef zeroext true)
  %51 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %29, i64 noundef 0, i64 noundef 3, ptr noundef %51, i1 noundef zeroext true)
  %52 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %30, i64 noundef 0, i64 noundef 3, ptr noundef %52, i1 noundef zeroext true)
  %53 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %41, i64 noundef 0, i64 noundef 3, ptr noundef %53, i1 noundef zeroext true)
  store i8 0, ptr %32, align 1, !tbaa !13
  store i8 0, ptr %33, align 1, !tbaa !13
  store i8 0, ptr %34, align 1, !tbaa !13
  store i8 0, ptr %35, align 1, !tbaa !13
  store i8 0, ptr %31, align 1, !tbaa !13
  %54 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef %32, ptr noundef %54)
  %55 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef %33, ptr noundef %55)
  %56 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef %34, ptr noundef %56)
  %57 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef %35, ptr noundef %57)
  %58 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef %31, ptr noundef %58)
  %59 = load ptr, ptr %19, align 8, !tbaa !11
  %60 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %59, i32 0, i32 12
  store i8 0, ptr %60, align 8, !tbaa !15
  %61 = load ptr, ptr %19, align 8, !tbaa !11
  %62 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %61, i32 0, i32 0
  store i64 0, ptr %62, align 8, !tbaa !20
  %63 = load i64, ptr %11, align 8, !tbaa !5
  %64 = load ptr, ptr %19, align 8, !tbaa !11
  %65 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %64, i32 0, i32 2
  store i64 %63, ptr %65, align 8, !tbaa !21
  %66 = load i64, ptr %12, align 8, !tbaa !5
  %67 = load ptr, ptr %19, align 8, !tbaa !11
  %68 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %67, i32 0, i32 3
  store i64 %66, ptr %68, align 8, !tbaa !22
  %69 = load i64, ptr %12, align 8, !tbaa !5
  %70 = load ptr, ptr %19, align 8, !tbaa !11
  %71 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %70, i32 0, i32 14
  %72 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %69, double noundef 0.000000e+00, ptr noundef %71, ptr noundef %72)
  %73 = load i64, ptr %12, align 8, !tbaa !5
  %74 = load i64, ptr %11, align 8, !tbaa !5
  %75 = load ptr, ptr %19, align 8, !tbaa !11
  %76 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %75, i32 0, i32 15
  %77 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %73, i64 noundef %74, double noundef 0.000000e+00, ptr noundef %76, ptr noundef %77)
  %78 = load i64, ptr %12, align 8, !tbaa !5
  %79 = load i64, ptr %11, align 8, !tbaa !5
  %80 = mul nsw i64 %78, %79
  %81 = load i64, ptr %11, align 8, !tbaa !5
  %82 = load ptr, ptr %19, align 8, !tbaa !11
  %83 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %82, i32 0, i32 16
  %84 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %80, i64 noundef %81, double noundef 0.000000e+00, ptr noundef %83, ptr noundef %84)
  %85 = load i64, ptr %12, align 8, !tbaa !5
  %86 = load i64, ptr %11, align 8, !tbaa !5
  %87 = load ptr, ptr %19, align 8, !tbaa !11
  %88 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %87, i32 0, i32 17
  %89 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %85, i64 noundef %86, double noundef 0.000000e+00, ptr noundef %88, ptr noundef %89)
  %90 = load i64, ptr %15, align 8, !tbaa !5
  %91 = icmp sge i64 %90, 0
  br i1 %91, label %92, label %95

92:                                               ; preds = %10
  %93 = load i64, ptr %15, align 8, !tbaa !5
  %94 = icmp sle i64 %93, 4
  br label %95

95:                                               ; preds = %92, %10
  %96 = phi i1 [ false, %10 ], [ %94, %92 ]
  %97 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %96, ptr noundef @.str.305, ptr noundef %97)
  %98 = load i64, ptr %15, align 8, !tbaa !5
  %99 = icmp eq i64 %98, 0
  br i1 %99, label %100, label %136

100:                                              ; preds = %95
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %101

101:                                              ; preds = %132, %100
  %102 = load i64, ptr %22, align 8, !tbaa !5
  %103 = load i64, ptr %12, align 8, !tbaa !5
  %104 = sub nsw i64 %103, 1
  %105 = icmp sle i64 %102, %104
  br i1 %105, label %106, label %135

106:                                              ; preds = %101
  store i64 0, ptr %23, align 8, !tbaa !5
  br label %107

107:                                              ; preds = %128, %106
  %108 = load i64, ptr %23, align 8, !tbaa !5
  %109 = load i64, ptr %11, align 8, !tbaa !5
  %110 = sub nsw i64 %109, 1
  %111 = icmp sle i64 %108, %110
  br i1 %111, label %112, label %131

112:                                              ; preds = %107
  %113 = load ptr, ptr %18, align 8, !tbaa !11
  %114 = load ptr, ptr %20, align 8, !tbaa !11
  %115 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %113, ptr noundef %114)
  %116 = fmul double 3.300000e-01, %115
  %117 = load ptr, ptr %20, align 8, !tbaa !11
  %118 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %116, ptr noundef %117)
  %119 = load ptr, ptr %19, align 8, !tbaa !11
  %120 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %119, i32 0, i32 17
  %121 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %120, i32 0, i32 6
  %122 = load ptr, ptr %121, align 8, !tbaa !23
  %123 = load i64, ptr %22, align 8, !tbaa !5
  %124 = getelementptr inbounds ptr, ptr %122, i64 %123
  %125 = load ptr, ptr %124, align 8, !tbaa !11
  %126 = load i64, ptr %23, align 8, !tbaa !5
  %127 = getelementptr inbounds double, ptr %125, i64 %126
  store double %118, ptr %127, align 8, !tbaa !9
  br label %128

128:                                              ; preds = %112
  %129 = load i64, ptr %23, align 8, !tbaa !5
  %130 = add nsw i64 %129, 1
  store i64 %130, ptr %23, align 8, !tbaa !5
  br label %107, !llvm.loop !24

131:                                              ; preds = %107
  br label %132

132:                                              ; preds = %131
  %133 = load i64, ptr %22, align 8, !tbaa !5
  %134 = add nsw i64 %133, 1
  store i64 %134, ptr %22, align 8, !tbaa !5
  br label %101, !llvm.loop !26

135:                                              ; preds = %101
  store i8 1, ptr %33, align 1, !tbaa !13
  store i8 1, ptr %35, align 1, !tbaa !13
  br label %136

136:                                              ; preds = %135, %95
  %137 = load i64, ptr %15, align 8, !tbaa !5
  %138 = icmp sle i64 %137, 2
  br i1 %138, label %139, label %195

139:                                              ; preds = %136
  %140 = load i64, ptr %15, align 8, !tbaa !5
  %141 = icmp ne i64 %140, 2
  br i1 %141, label %142, label %163

142:                                              ; preds = %139
  store i64 0, ptr %24, align 8, !tbaa !5
  br label %143

143:                                              ; preds = %159, %142
  %144 = load i64, ptr %24, align 8, !tbaa !5
  %145 = load i64, ptr %12, align 8, !tbaa !5
  %146 = sub nsw i64 %145, 1
  %147 = icmp sle i64 %144, %146
  br i1 %147, label %148, label %162

148:                                              ; preds = %143
  %149 = load i64, ptr %11, align 8, !tbaa !5
  %150 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %149, double noundef 1.000000e+02, ptr noundef %26, ptr noundef %150)
  %151 = load i64, ptr %11, align 8, !tbaa !5
  %152 = load i64, ptr %11, align 8, !tbaa !5
  %153 = load ptr, ptr %19, align 8, !tbaa !11
  %154 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %153, i32 0, i32 16
  %155 = load i64, ptr %24, align 8, !tbaa !5
  %156 = load i64, ptr %11, align 8, !tbaa !5
  %157 = mul nsw i64 %155, %156
  %158 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl11rmatrixcopyEllPKNS_9ae_matrixEllPS0_llPNS_8ae_stateE(i64 noundef %151, i64 noundef %152, ptr noundef %26, i64 noundef 0, i64 noundef 0, ptr noundef %154, i64 noundef %157, i64 noundef 0, ptr noundef %158)
  br label %159

159:                                              ; preds = %148
  %160 = load i64, ptr %24, align 8, !tbaa !5
  %161 = add nsw i64 %160, 1
  store i64 %161, ptr %24, align 8, !tbaa !5
  br label %143, !llvm.loop !27

162:                                              ; preds = %143
  br label %194

163:                                              ; preds = %139
  %164 = load i64, ptr %11, align 8, !tbaa !5
  %165 = load ptr, ptr %18, align 8, !tbaa !11
  %166 = load ptr, ptr %20, align 8, !tbaa !11
  %167 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %165, i64 noundef 5, ptr noundef %166)
  %168 = add nsw i64 1, %167
  %169 = load ptr, ptr %20, align 8, !tbaa !11
  %170 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %164, i64 noundef %168, ptr noundef %169)
  store i64 %170, ptr %25, align 8, !tbaa !5
  store i64 0, ptr %24, align 8, !tbaa !5
  br label %171

171:                                              ; preds = %190, %163
  %172 = load i64, ptr %24, align 8, !tbaa !5
  %173 = load i64, ptr %12, align 8, !tbaa !5
  %174 = sub nsw i64 %173, 1
  %175 = icmp sle i64 %172, %174
  br i1 %175, label %176, label %193

176:                                              ; preds = %171
  %177 = load ptr, ptr %18, align 8, !tbaa !11
  %178 = load i64, ptr %25, align 8, !tbaa !5
  %179 = load i64, ptr %11, align 8, !tbaa !5
  %180 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalmEPNS_10hqrndstateEllPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %177, i64 noundef %178, i64 noundef %179, ptr noundef %26, ptr noundef %180)
  %181 = load i64, ptr %11, align 8, !tbaa !5
  %182 = load i64, ptr %11, align 8, !tbaa !5
  %183 = load i64, ptr %25, align 8, !tbaa !5
  %184 = load ptr, ptr %19, align 8, !tbaa !11
  %185 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %184, i32 0, i32 16
  %186 = load i64, ptr %24, align 8, !tbaa !5
  %187 = load i64, ptr %11, align 8, !tbaa !5
  %188 = mul nsw i64 %186, %187
  %189 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef %181, i64 noundef %182, i64 noundef %183, double noundef 1.000000e+00, ptr noundef %26, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef %26, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef %185, i64 noundef %188, i64 noundef 0, ptr noundef %189)
  br label %190

190:                                              ; preds = %176
  %191 = load i64, ptr %24, align 8, !tbaa !5
  %192 = add nsw i64 %191, 1
  store i64 %192, ptr %24, align 8, !tbaa !5
  br label %171, !llvm.loop !28

193:                                              ; preds = %171
  br label %194

194:                                              ; preds = %193, %162
  store i8 1, ptr %34, align 1, !tbaa !13
  store i8 1, ptr %33, align 1, !tbaa !13
  br label %195

195:                                              ; preds = %194, %136
  %196 = load i64, ptr %15, align 8, !tbaa !5
  %197 = icmp sle i64 %196, 3
  br i1 %197, label %198, label %205

198:                                              ; preds = %195
  %199 = load ptr, ptr %18, align 8, !tbaa !11
  %200 = load i64, ptr %12, align 8, !tbaa !5
  %201 = load i64, ptr %11, align 8, !tbaa !5
  %202 = load ptr, ptr %19, align 8, !tbaa !11
  %203 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %202, i32 0, i32 15
  %204 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalmEPNS_10hqrndstateEllPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %199, i64 noundef %200, i64 noundef %201, ptr noundef %203, ptr noundef %204)
  store i8 1, ptr %32, align 1, !tbaa !13
  br label %205

205:                                              ; preds = %198, %195
  %206 = load i64, ptr %15, align 8, !tbaa !5
  %207 = icmp sle i64 %206, 4
  br i1 %207, label %208, label %214

208:                                              ; preds = %205
  %209 = load ptr, ptr %18, align 8, !tbaa !11
  %210 = load i64, ptr %12, align 8, !tbaa !5
  %211 = load ptr, ptr %19, align 8, !tbaa !11
  %212 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %211, i32 0, i32 14
  %213 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %209, i64 noundef %210, ptr noundef %212, ptr noundef %213)
  br label %214

214:                                              ; preds = %208, %205
  %215 = load i64, ptr %15, align 8, !tbaa !5
  %216 = icmp sge i64 %215, 2
  %217 = zext i1 %216 to i8
  store i8 %217, ptr %31, align 1, !tbaa !13
  %218 = load ptr, ptr %19, align 8, !tbaa !11
  %219 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %218, i32 0, i32 4
  %220 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %219, i64 noundef 0, i64 noundef 0, ptr noundef %220)
  %221 = load ptr, ptr %19, align 8, !tbaa !11
  %222 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %221, i32 0, i32 5
  store i64 0, ptr %222, align 8, !tbaa !29
  %223 = load ptr, ptr %19, align 8, !tbaa !11
  %224 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %223, i32 0, i32 6
  %225 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %224, i64 noundef 0, i64 noundef 0, ptr noundef %225)
  %226 = load ptr, ptr %19, align 8, !tbaa !11
  %227 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %226, i32 0, i32 7
  %228 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %227, i64 noundef 0, i64 noundef 0, ptr noundef %228)
  %229 = load ptr, ptr %19, align 8, !tbaa !11
  %230 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %229, i32 0, i32 8
  store i64 0, ptr %230, align 8, !tbaa !30
  %231 = load ptr, ptr %19, align 8, !tbaa !11
  %232 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %231, i32 0, i32 9
  %233 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %232, i64 noundef 0, ptr noundef %233)
  %234 = load ptr, ptr %19, align 8, !tbaa !11
  %235 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %234, i32 0, i32 10
  %236 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %235, i64 noundef 0, ptr noundef %236)
  %237 = load ptr, ptr %19, align 8, !tbaa !11
  %238 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %237, i32 0, i32 11
  %239 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %238, i64 noundef 0, ptr noundef %239)
  %240 = load ptr, ptr %18, align 8, !tbaa !11
  %241 = load i64, ptr %11, align 8, !tbaa !5
  %242 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %240, i64 noundef %241, ptr noundef %41, ptr noundef %242)
  %243 = load i64, ptr %11, align 8, !tbaa !5
  %244 = load ptr, ptr %20, align 8, !tbaa !11
  %245 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %244, i32 0, i32 3
  %246 = load double, ptr %245, align 8, !tbaa !31
  %247 = load ptr, ptr %19, align 8, !tbaa !11
  %248 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %247, i32 0, i32 18
  %249 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %243, double noundef %246, ptr noundef %248, ptr noundef %249)
  %250 = load i64, ptr %11, align 8, !tbaa !5
  %251 = load ptr, ptr %20, align 8, !tbaa !11
  %252 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %251, i32 0, i32 2
  %253 = load double, ptr %252, align 8, !tbaa !35
  %254 = load ptr, ptr %19, align 8, !tbaa !11
  %255 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %254, i32 0, i32 19
  %256 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %250, double noundef %253, ptr noundef %255, ptr noundef %256)
  %257 = load ptr, ptr %19, align 8, !tbaa !11
  %258 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %257, i32 0, i32 23
  store i64 0, ptr %258, align 8, !tbaa !36
  %259 = load ptr, ptr %19, align 8, !tbaa !11
  %260 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %259, i32 0, i32 30
  store i64 0, ptr %260, align 8, !tbaa !37
  store i64 0, ptr %36, align 8, !tbaa !5
  store i64 0, ptr %42, align 8, !tbaa !5
  br label %261

261:                                              ; preds = %634, %214
  %262 = load i64, ptr %36, align 8, !tbaa !5
  %263 = load i64, ptr %13, align 8, !tbaa !5
  %264 = icmp slt i64 %262, %263
  br i1 %264, label %265, label %270

265:                                              ; preds = %261
  %266 = load i64, ptr %42, align 8, !tbaa !5
  %267 = load i64, ptr %11, align 8, !tbaa !5
  %268 = mul nsw i64 2, %267
  %269 = icmp slt i64 %266, %268
  br label %270

270:                                              ; preds = %265, %261
  %271 = phi i1 [ false, %261 ], [ %269, %265 ]
  br i1 %271, label %272, label %635

272:                                              ; preds = %270
  %273 = load i64, ptr %42, align 8, !tbaa !5
  %274 = add nsw i64 %273, 1
  store i64 %274, ptr %42, align 8, !tbaa !5
  %275 = load ptr, ptr %18, align 8, !tbaa !11
  %276 = load ptr, ptr %20, align 8, !tbaa !11
  %277 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %275, i64 noundef 3, ptr noundef %276)
  store i64 %277, ptr %38, align 8, !tbaa !5
  %278 = load i64, ptr %38, align 8, !tbaa !5
  %279 = icmp eq i64 %278, 0
  br i1 %279, label %280, label %330

280:                                              ; preds = %272
  %281 = load ptr, ptr %18, align 8, !tbaa !11
  %282 = load i64, ptr %11, align 8, !tbaa !5
  %283 = load ptr, ptr %20, align 8, !tbaa !11
  %284 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %281, i64 noundef %282, ptr noundef %283)
  store i64 %284, ptr %22, align 8, !tbaa !5
  %285 = load ptr, ptr %19, align 8, !tbaa !11
  %286 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %285, i32 0, i32 18
  %287 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %286, i32 0, i32 4
  %288 = load ptr, ptr %287, align 8, !tbaa !23
  %289 = load i64, ptr %22, align 8, !tbaa !5
  %290 = getelementptr inbounds double, ptr %288, i64 %289
  %291 = load double, ptr %290, align 8, !tbaa !9
  %292 = load ptr, ptr %20, align 8, !tbaa !11
  %293 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef %291, ptr noundef %292)
  br i1 %293, label %294, label %329

294:                                              ; preds = %280
  %295 = load ptr, ptr %19, align 8, !tbaa !11
  %296 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %295, i32 0, i32 19
  %297 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %296, i32 0, i32 4
  %298 = load ptr, ptr %297, align 8, !tbaa !23
  %299 = load i64, ptr %22, align 8, !tbaa !5
  %300 = getelementptr inbounds double, ptr %298, i64 %299
  %301 = load double, ptr %300, align 8, !tbaa !9
  %302 = load ptr, ptr %20, align 8, !tbaa !11
  %303 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef %301, ptr noundef %302)
  br i1 %303, label %304, label %329

304:                                              ; preds = %294
  %305 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %306 = load ptr, ptr %305, align 8, !tbaa !23
  %307 = load i64, ptr %22, align 8, !tbaa !5
  %308 = getelementptr inbounds double, ptr %306, i64 %307
  %309 = load double, ptr %308, align 8, !tbaa !9
  %310 = load ptr, ptr %19, align 8, !tbaa !11
  %311 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %310, i32 0, i32 18
  %312 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %311, i32 0, i32 4
  %313 = load ptr, ptr %312, align 8, !tbaa !23
  %314 = load i64, ptr %22, align 8, !tbaa !5
  %315 = getelementptr inbounds double, ptr %313, i64 %314
  store double %309, ptr %315, align 8, !tbaa !9
  %316 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %317 = load ptr, ptr %316, align 8, !tbaa !23
  %318 = load i64, ptr %22, align 8, !tbaa !5
  %319 = getelementptr inbounds double, ptr %317, i64 %318
  %320 = load double, ptr %319, align 8, !tbaa !9
  %321 = load ptr, ptr %19, align 8, !tbaa !11
  %322 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %321, i32 0, i32 19
  %323 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %322, i32 0, i32 4
  %324 = load ptr, ptr %323, align 8, !tbaa !23
  %325 = load i64, ptr %22, align 8, !tbaa !5
  %326 = getelementptr inbounds double, ptr %324, i64 %325
  store double %320, ptr %326, align 8, !tbaa !9
  %327 = load i64, ptr %36, align 8, !tbaa !5
  %328 = add nsw i64 %327, 1
  store i64 %328, ptr %36, align 8, !tbaa !5
  br label %329

329:                                              ; preds = %304, %294, %280
  br label %330

330:                                              ; preds = %329, %272
  %331 = load i64, ptr %38, align 8, !tbaa !5
  %332 = icmp eq i64 %331, 1
  br i1 %332, label %333, label %395

333:                                              ; preds = %330
  %334 = load ptr, ptr %18, align 8, !tbaa !11
  %335 = load i64, ptr %11, align 8, !tbaa !5
  %336 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %334, i64 noundef %335, ptr noundef %30, ptr noundef %336)
  %337 = load i64, ptr %11, align 8, !tbaa !5
  %338 = load ptr, ptr %20, align 8, !tbaa !11
  %339 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %337, ptr noundef %30, ptr noundef %41, ptr noundef %338)
  store double %339, ptr %39, align 8, !tbaa !9
  %340 = load ptr, ptr %19, align 8, !tbaa !11
  %341 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %340, i32 0, i32 20
  %342 = load ptr, ptr %19, align 8, !tbaa !11
  %343 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %342, i32 0, i32 23
  %344 = load i64, ptr %343, align 8, !tbaa !36
  %345 = add nsw i64 %344, 1
  %346 = load i64, ptr %11, align 8, !tbaa !5
  %347 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %341, i64 noundef %345, i64 noundef %346, ptr noundef %347)
  %348 = load ptr, ptr %19, align 8, !tbaa !11
  %349 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %348, i32 0, i32 23
  %350 = load i64, ptr %349, align 8, !tbaa !36
  %351 = add nsw i64 %350, 1
  %352 = load ptr, ptr %19, align 8, !tbaa !11
  %353 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %352, i32 0, i32 21
  %354 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %351, ptr noundef %353, ptr noundef %354)
  %355 = load ptr, ptr %19, align 8, !tbaa !11
  %356 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %355, i32 0, i32 23
  %357 = load i64, ptr %356, align 8, !tbaa !36
  %358 = add nsw i64 %357, 1
  %359 = load ptr, ptr %19, align 8, !tbaa !11
  %360 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %359, i32 0, i32 22
  %361 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %358, ptr noundef %360, ptr noundef %361)
  %362 = load i64, ptr %11, align 8, !tbaa !5
  %363 = load ptr, ptr %19, align 8, !tbaa !11
  %364 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %363, i32 0, i32 20
  %365 = load ptr, ptr %19, align 8, !tbaa !11
  %366 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %365, i32 0, i32 23
  %367 = load i64, ptr %366, align 8, !tbaa !36
  %368 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %362, ptr noundef %30, ptr noundef %364, i64 noundef %367, ptr noundef %368)
  %369 = load double, ptr %39, align 8, !tbaa !9
  %370 = load ptr, ptr %19, align 8, !tbaa !11
  %371 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %370, i32 0, i32 21
  %372 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %371, i32 0, i32 4
  %373 = load ptr, ptr %372, align 8, !tbaa !23
  %374 = load ptr, ptr %19, align 8, !tbaa !11
  %375 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %374, i32 0, i32 23
  %376 = load i64, ptr %375, align 8, !tbaa !36
  %377 = getelementptr inbounds double, ptr %373, i64 %376
  store double %369, ptr %377, align 8, !tbaa !9
  %378 = load double, ptr %39, align 8, !tbaa !9
  %379 = load ptr, ptr %19, align 8, !tbaa !11
  %380 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %379, i32 0, i32 22
  %381 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %380, i32 0, i32 4
  %382 = load ptr, ptr %381, align 8, !tbaa !23
  %383 = load ptr, ptr %19, align 8, !tbaa !11
  %384 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %383, i32 0, i32 23
  %385 = load i64, ptr %384, align 8, !tbaa !36
  %386 = getelementptr inbounds double, ptr %382, i64 %385
  store double %378, ptr %386, align 8, !tbaa !9
  %387 = load ptr, ptr %19, align 8, !tbaa !11
  %388 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %387, i32 0, i32 23
  %389 = load i64, ptr %388, align 8, !tbaa !36
  %390 = add nsw i64 %389, 1
  %391 = load ptr, ptr %19, align 8, !tbaa !11
  %392 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %391, i32 0, i32 23
  store i64 %390, ptr %392, align 8, !tbaa !36
  %393 = load i64, ptr %36, align 8, !tbaa !5
  %394 = add nsw i64 %393, 1
  store i64 %394, ptr %36, align 8, !tbaa !5
  br label %395

395:                                              ; preds = %333, %330
  %396 = load i64, ptr %38, align 8, !tbaa !5
  %397 = icmp eq i64 %396, 2
  br i1 %397, label %398, label %634

398:                                              ; preds = %395
  %399 = load ptr, ptr %19, align 8, !tbaa !11
  %400 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %399, i32 0, i32 30
  %401 = load i64, ptr %400, align 8, !tbaa !37
  %402 = add nsw i64 %401, 1
  %403 = load ptr, ptr %19, align 8, !tbaa !11
  %404 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %403, i32 0, i32 24
  %405 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %402, ptr noundef %404, ptr noundef %405)
  %406 = load ptr, ptr %19, align 8, !tbaa !11
  %407 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %406, i32 0, i32 25
  %408 = load ptr, ptr %19, align 8, !tbaa !11
  %409 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %408, i32 0, i32 30
  %410 = load i64, ptr %409, align 8, !tbaa !37
  %411 = add nsw i64 %410, 1
  %412 = load i64, ptr %11, align 8, !tbaa !5
  %413 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %407, i64 noundef %411, i64 noundef %412, ptr noundef %413)
  %414 = load ptr, ptr %19, align 8, !tbaa !11
  %415 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %414, i32 0, i32 26
  %416 = load ptr, ptr %19, align 8, !tbaa !11
  %417 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %416, i32 0, i32 30
  %418 = load i64, ptr %417, align 8, !tbaa !37
  %419 = add nsw i64 %418, 1
  %420 = load i64, ptr %11, align 8, !tbaa !5
  %421 = mul nsw i64 %419, %420
  %422 = load i64, ptr %11, align 8, !tbaa !5
  %423 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %415, i64 noundef %421, i64 noundef %422, ptr noundef %423)
  %424 = load ptr, ptr %19, align 8, !tbaa !11
  %425 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %424, i32 0, i32 27
  %426 = load ptr, ptr %19, align 8, !tbaa !11
  %427 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %426, i32 0, i32 30
  %428 = load i64, ptr %427, align 8, !tbaa !37
  %429 = add nsw i64 %428, 1
  %430 = load i64, ptr %11, align 8, !tbaa !5
  %431 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %425, i64 noundef %429, i64 noundef %430, ptr noundef %431)
  %432 = load ptr, ptr %19, align 8, !tbaa !11
  %433 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %432, i32 0, i32 30
  %434 = load i64, ptr %433, align 8, !tbaa !37
  %435 = add nsw i64 %434, 1
  %436 = load ptr, ptr %19, align 8, !tbaa !11
  %437 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %436, i32 0, i32 28
  %438 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %435, ptr noundef %437, ptr noundef %438)
  %439 = load ptr, ptr %19, align 8, !tbaa !11
  %440 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %439, i32 0, i32 30
  %441 = load i64, ptr %440, align 8, !tbaa !37
  %442 = add nsw i64 %441, 1
  %443 = load ptr, ptr %19, align 8, !tbaa !11
  %444 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %443, i32 0, i32 29
  %445 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %442, ptr noundef %444, ptr noundef %445)
  store double 0.000000e+00, ptr %39, align 8, !tbaa !9
  %446 = load ptr, ptr %18, align 8, !tbaa !11
  %447 = load ptr, ptr %20, align 8, !tbaa !11
  %448 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %446, ptr noundef %447)
  %449 = load ptr, ptr %19, align 8, !tbaa !11
  %450 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %449, i32 0, i32 24
  %451 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %450, i32 0, i32 4
  %452 = load ptr, ptr %451, align 8, !tbaa !23
  %453 = load ptr, ptr %19, align 8, !tbaa !11
  %454 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %453, i32 0, i32 30
  %455 = load i64, ptr %454, align 8, !tbaa !37
  %456 = getelementptr inbounds double, ptr %452, i64 %455
  store double %448, ptr %456, align 8, !tbaa !9
  %457 = load double, ptr %39, align 8, !tbaa !9
  %458 = load ptr, ptr %19, align 8, !tbaa !11
  %459 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %458, i32 0, i32 24
  %460 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %459, i32 0, i32 4
  %461 = load ptr, ptr %460, align 8, !tbaa !23
  %462 = load ptr, ptr %19, align 8, !tbaa !11
  %463 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %462, i32 0, i32 30
  %464 = load i64, ptr %463, align 8, !tbaa !37
  %465 = getelementptr inbounds double, ptr %461, i64 %464
  %466 = load double, ptr %465, align 8, !tbaa !9
  %467 = fadd double %457, %466
  store double %467, ptr %39, align 8, !tbaa !9
  %468 = load ptr, ptr %18, align 8, !tbaa !11
  %469 = load i64, ptr %11, align 8, !tbaa !5
  %470 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %468, i64 noundef %469, ptr noundef %30, ptr noundef %470)
  %471 = load i64, ptr %11, align 8, !tbaa !5
  %472 = load ptr, ptr %19, align 8, !tbaa !11
  %473 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %472, i32 0, i32 25
  %474 = load ptr, ptr %19, align 8, !tbaa !11
  %475 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %474, i32 0, i32 30
  %476 = load i64, ptr %475, align 8, !tbaa !37
  %477 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %471, ptr noundef %30, ptr noundef %473, i64 noundef %476, ptr noundef %477)
  %478 = load double, ptr %39, align 8, !tbaa !9
  %479 = load i64, ptr %11, align 8, !tbaa !5
  %480 = load ptr, ptr %20, align 8, !tbaa !11
  %481 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %479, ptr noundef %30, ptr noundef %41, ptr noundef %480)
  %482 = fadd double %478, %481
  store double %482, ptr %39, align 8, !tbaa !9
  %483 = load i64, ptr %11, align 8, !tbaa !5
  %484 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %483, double noundef 1.000000e+01, ptr noundef %26, ptr noundef %484)
  %485 = load double, ptr %16, align 8, !tbaa !9
  %486 = load ptr, ptr %18, align 8, !tbaa !11
  %487 = load ptr, ptr %20, align 8, !tbaa !11
  %488 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %486, ptr noundef %487)
  %489 = load ptr, ptr %20, align 8, !tbaa !11
  %490 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %488, ptr noundef %489)
  %491 = fmul double %485, %490
  store double %491, ptr %40, align 8, !tbaa !9
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %492

492:                                              ; preds = %502, %398
  %493 = load i64, ptr %22, align 8, !tbaa !5
  %494 = load i64, ptr %11, align 8, !tbaa !5
  %495 = sub nsw i64 %494, 1
  %496 = icmp sle i64 %493, %495
  br i1 %496, label %497, label %505

497:                                              ; preds = %492
  %498 = load i64, ptr %11, align 8, !tbaa !5
  %499 = load double, ptr %40, align 8, !tbaa !9
  %500 = load i64, ptr %22, align 8, !tbaa !5
  %501 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %498, double noundef %499, ptr noundef %26, i64 noundef %500, ptr noundef %501)
  br label %502

502:                                              ; preds = %497
  %503 = load i64, ptr %22, align 8, !tbaa !5
  %504 = add nsw i64 %503, 1
  store i64 %504, ptr %22, align 8, !tbaa !5
  br label %492, !llvm.loop !38

505:                                              ; preds = %492
  %506 = load i64, ptr %11, align 8, !tbaa !5
  %507 = load i64, ptr %11, align 8, !tbaa !5
  %508 = load ptr, ptr %19, align 8, !tbaa !11
  %509 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %508, i32 0, i32 26
  %510 = load ptr, ptr %19, align 8, !tbaa !11
  %511 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %510, i32 0, i32 30
  %512 = load i64, ptr %511, align 8, !tbaa !37
  %513 = load i64, ptr %11, align 8, !tbaa !5
  %514 = mul nsw i64 %512, %513
  %515 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl11rmatrixcopyEllPKNS_9ae_matrixEllPS0_llPNS_8ae_stateE(i64 noundef %506, i64 noundef %507, ptr noundef %26, i64 noundef 0, i64 noundef 0, ptr noundef %509, i64 noundef %514, i64 noundef 0, ptr noundef %515)
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %516

516:                                              ; preds = %554, %505
  %517 = load i64, ptr %22, align 8, !tbaa !5
  %518 = load i64, ptr %11, align 8, !tbaa !5
  %519 = sub nsw i64 %518, 1
  %520 = icmp sle i64 %517, %519
  br i1 %520, label %521, label %557

521:                                              ; preds = %516
  store i64 0, ptr %23, align 8, !tbaa !5
  br label %522

522:                                              ; preds = %550, %521
  %523 = load i64, ptr %23, align 8, !tbaa !5
  %524 = load i64, ptr %11, align 8, !tbaa !5
  %525 = sub nsw i64 %524, 1
  %526 = icmp sle i64 %523, %525
  br i1 %526, label %527, label %553

527:                                              ; preds = %522
  %528 = load double, ptr %39, align 8, !tbaa !9
  %529 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %530 = load ptr, ptr %529, align 8, !tbaa !23
  %531 = load i64, ptr %22, align 8, !tbaa !5
  %532 = getelementptr inbounds double, ptr %530, i64 %531
  %533 = load double, ptr %532, align 8, !tbaa !9
  %534 = fmul double 5.000000e-01, %533
  %535 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %26, i32 0, i32 6
  %536 = load ptr, ptr %535, align 8, !tbaa !23
  %537 = load i64, ptr %22, align 8, !tbaa !5
  %538 = getelementptr inbounds ptr, ptr %536, i64 %537
  %539 = load ptr, ptr %538, align 8, !tbaa !11
  %540 = load i64, ptr %23, align 8, !tbaa !5
  %541 = getelementptr inbounds double, ptr %539, i64 %540
  %542 = load double, ptr %541, align 8, !tbaa !9
  %543 = fmul double %534, %542
  %544 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %545 = load ptr, ptr %544, align 8, !tbaa !23
  %546 = load i64, ptr %23, align 8, !tbaa !5
  %547 = getelementptr inbounds double, ptr %545, i64 %546
  %548 = load double, ptr %547, align 8, !tbaa !9
  %549 = call double @llvm.fmuladd.f64(double %543, double %548, double %528)
  store double %549, ptr %39, align 8, !tbaa !9
  br label %550

550:                                              ; preds = %527
  %551 = load i64, ptr %23, align 8, !tbaa !5
  %552 = add nsw i64 %551, 1
  store i64 %552, ptr %23, align 8, !tbaa !5
  br label %522, !llvm.loop !39

553:                                              ; preds = %522
  br label %554

554:                                              ; preds = %553
  %555 = load i64, ptr %22, align 8, !tbaa !5
  %556 = add nsw i64 %555, 1
  store i64 %556, ptr %22, align 8, !tbaa !5
  br label %516, !llvm.loop !40

557:                                              ; preds = %516
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %558

558:                                              ; preds = %604, %557
  %559 = load i64, ptr %22, align 8, !tbaa !5
  %560 = load i64, ptr %11, align 8, !tbaa !5
  %561 = sub nsw i64 %560, 1
  %562 = icmp sle i64 %559, %561
  br i1 %562, label %563, label %607

563:                                              ; preds = %558
  %564 = load double, ptr %17, align 8, !tbaa !9
  %565 = load ptr, ptr %18, align 8, !tbaa !11
  %566 = load ptr, ptr %20, align 8, !tbaa !11
  %567 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %565, ptr noundef %566)
  %568 = fmul double 3.300000e-01, %567
  %569 = load ptr, ptr %20, align 8, !tbaa !11
  %570 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %568, ptr noundef %569)
  %571 = fmul double %564, %570
  %572 = load ptr, ptr %19, align 8, !tbaa !11
  %573 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %572, i32 0, i32 27
  %574 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %573, i32 0, i32 6
  %575 = load ptr, ptr %574, align 8, !tbaa !23
  %576 = load ptr, ptr %19, align 8, !tbaa !11
  %577 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %576, i32 0, i32 30
  %578 = load i64, ptr %577, align 8, !tbaa !37
  %579 = getelementptr inbounds ptr, ptr %575, i64 %578
  %580 = load ptr, ptr %579, align 8, !tbaa !11
  %581 = load i64, ptr %22, align 8, !tbaa !5
  %582 = getelementptr inbounds double, ptr %580, i64 %581
  store double %571, ptr %582, align 8, !tbaa !9
  %583 = load double, ptr %39, align 8, !tbaa !9
  %584 = load ptr, ptr %19, align 8, !tbaa !11
  %585 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %584, i32 0, i32 27
  %586 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %585, i32 0, i32 6
  %587 = load ptr, ptr %586, align 8, !tbaa !23
  %588 = load ptr, ptr %19, align 8, !tbaa !11
  %589 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %588, i32 0, i32 30
  %590 = load i64, ptr %589, align 8, !tbaa !37
  %591 = getelementptr inbounds ptr, ptr %587, i64 %590
  %592 = load ptr, ptr %591, align 8, !tbaa !11
  %593 = load i64, ptr %22, align 8, !tbaa !5
  %594 = getelementptr inbounds double, ptr %592, i64 %593
  %595 = load double, ptr %594, align 8, !tbaa !9
  %596 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %597 = load ptr, ptr %596, align 8, !tbaa !23
  %598 = load i64, ptr %22, align 8, !tbaa !5
  %599 = getelementptr inbounds double, ptr %597, i64 %598
  %600 = load double, ptr %599, align 8, !tbaa !9
  %601 = load ptr, ptr %20, align 8, !tbaa !11
  %602 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %600, double noundef 4.000000e+00, ptr noundef %601)
  %603 = call double @llvm.fmuladd.f64(double %595, double %602, double %583)
  store double %603, ptr %39, align 8, !tbaa !9
  br label %604

604:                                              ; preds = %563
  %605 = load i64, ptr %22, align 8, !tbaa !5
  %606 = add nsw i64 %605, 1
  store i64 %606, ptr %22, align 8, !tbaa !5
  br label %558, !llvm.loop !41

607:                                              ; preds = %558
  %608 = load double, ptr %39, align 8, !tbaa !9
  %609 = load ptr, ptr %19, align 8, !tbaa !11
  %610 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %609, i32 0, i32 28
  %611 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %610, i32 0, i32 4
  %612 = load ptr, ptr %611, align 8, !tbaa !23
  %613 = load ptr, ptr %19, align 8, !tbaa !11
  %614 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %613, i32 0, i32 30
  %615 = load i64, ptr %614, align 8, !tbaa !37
  %616 = getelementptr inbounds double, ptr %612, i64 %615
  store double %608, ptr %616, align 8, !tbaa !9
  %617 = load double, ptr %39, align 8, !tbaa !9
  %618 = load ptr, ptr %19, align 8, !tbaa !11
  %619 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %618, i32 0, i32 29
  %620 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %619, i32 0, i32 4
  %621 = load ptr, ptr %620, align 8, !tbaa !23
  %622 = load ptr, ptr %19, align 8, !tbaa !11
  %623 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %622, i32 0, i32 30
  %624 = load i64, ptr %623, align 8, !tbaa !37
  %625 = getelementptr inbounds double, ptr %621, i64 %624
  store double %617, ptr %625, align 8, !tbaa !9
  %626 = load ptr, ptr %19, align 8, !tbaa !11
  %627 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %626, i32 0, i32 30
  %628 = load i64, ptr %627, align 8, !tbaa !37
  %629 = add nsw i64 %628, 1
  %630 = load ptr, ptr %19, align 8, !tbaa !11
  %631 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %630, i32 0, i32 30
  store i64 %629, ptr %631, align 8, !tbaa !37
  %632 = load i64, ptr %36, align 8, !tbaa !5
  %633 = add nsw i64 %632, 1
  store i64 %633, ptr %36, align 8, !tbaa !5
  br label %634

634:                                              ; preds = %607, %395
  br label %261, !llvm.loop !42

635:                                              ; preds = %270
  %636 = load ptr, ptr %18, align 8, !tbaa !11
  %637 = load i64, ptr %14, align 8, !tbaa !5
  %638 = add nsw i64 %637, 1
  %639 = load ptr, ptr %20, align 8, !tbaa !11
  %640 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %636, i64 noundef %638, ptr noundef %639)
  store i64 %640, ptr %43, align 8, !tbaa !5
  %641 = load ptr, ptr %18, align 8, !tbaa !11
  %642 = load i64, ptr %14, align 8, !tbaa !5
  %643 = load i64, ptr %43, align 8, !tbaa !5
  %644 = sub nsw i64 %642, %643
  %645 = add nsw i64 %644, 1
  %646 = load ptr, ptr %20, align 8, !tbaa !11
  %647 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %641, i64 noundef %645, ptr noundef %646)
  store i64 %647, ptr %44, align 8, !tbaa !5
  %648 = load i64, ptr %14, align 8, !tbaa !5
  %649 = load i64, ptr %43, align 8, !tbaa !5
  %650 = sub nsw i64 %648, %649
  %651 = load i64, ptr %44, align 8, !tbaa !5
  %652 = sub nsw i64 %650, %651
  store i64 %652, ptr %45, align 8, !tbaa !5
  store i64 0, ptr %24, align 8, !tbaa !5
  br label %653

653:                                              ; preds = %745, %635
  %654 = load i64, ptr %24, align 8, !tbaa !5
  %655 = load i64, ptr %43, align 8, !tbaa !5
  %656 = sub nsw i64 %655, 1
  %657 = icmp sle i64 %654, %656
  br i1 %657, label %658, label %748

658:                                              ; preds = %653
  %659 = load ptr, ptr %18, align 8, !tbaa !11
  %660 = load i64, ptr %11, align 8, !tbaa !5
  %661 = load ptr, ptr %20, align 8, !tbaa !11
  %662 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %659, i64 noundef %660, ptr noundef %661)
  store i64 %662, ptr %22, align 8, !tbaa !5
  %663 = load ptr, ptr %19, align 8, !tbaa !11
  %664 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %663, i32 0, i32 18
  %665 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %664, i32 0, i32 4
  %666 = load ptr, ptr %665, align 8, !tbaa !23
  %667 = load i64, ptr %22, align 8, !tbaa !5
  %668 = getelementptr inbounds double, ptr %666, i64 %667
  %669 = load double, ptr %668, align 8, !tbaa !9
  %670 = load ptr, ptr %20, align 8, !tbaa !11
  %671 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef %669, ptr noundef %670)
  br i1 %671, label %672, label %744

672:                                              ; preds = %658
  %673 = load ptr, ptr %19, align 8, !tbaa !11
  %674 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %673, i32 0, i32 19
  %675 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %674, i32 0, i32 4
  %676 = load ptr, ptr %675, align 8, !tbaa !23
  %677 = load i64, ptr %22, align 8, !tbaa !5
  %678 = getelementptr inbounds double, ptr %676, i64 %677
  %679 = load double, ptr %678, align 8, !tbaa !9
  %680 = load ptr, ptr %20, align 8, !tbaa !11
  %681 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef %679, ptr noundef %680)
  br i1 %681, label %682, label %744

682:                                              ; preds = %672
  %683 = load ptr, ptr %18, align 8, !tbaa !11
  %684 = load ptr, ptr %20, align 8, !tbaa !11
  %685 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %683, i64 noundef 3, ptr noundef %684)
  store i64 %685, ptr %38, align 8, !tbaa !5
  %686 = load i64, ptr %38, align 8, !tbaa !5
  %687 = icmp eq i64 %686, 0
  br i1 %687, label %691, label %688

688:                                              ; preds = %682
  %689 = load i64, ptr %38, align 8, !tbaa !5
  %690 = icmp eq i64 %689, 2
  br label %691

691:                                              ; preds = %688, %682
  %692 = phi i1 [ true, %682 ], [ %690, %688 ]
  %693 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %694 = load ptr, ptr %693, align 8, !tbaa !23
  %695 = load i64, ptr %22, align 8, !tbaa !5
  %696 = getelementptr inbounds double, ptr %694, i64 %695
  %697 = load double, ptr %696, align 8, !tbaa !9
  %698 = load ptr, ptr %18, align 8, !tbaa !11
  %699 = load ptr, ptr %20, align 8, !tbaa !11
  %700 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %698, ptr noundef %699)
  %701 = load ptr, ptr %20, align 8, !tbaa !11
  %702 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %700, ptr noundef %701)
  %703 = fsub double %697, %702
  %704 = load ptr, ptr %20, align 8, !tbaa !11
  %705 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %704, i32 0, i32 3
  %706 = load double, ptr %705, align 8, !tbaa !31
  %707 = load ptr, ptr %20, align 8, !tbaa !11
  %708 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %692, double noundef %703, double noundef %706, ptr noundef %707)
  %709 = load ptr, ptr %19, align 8, !tbaa !11
  %710 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %709, i32 0, i32 18
  %711 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %710, i32 0, i32 4
  %712 = load ptr, ptr %711, align 8, !tbaa !23
  %713 = load i64, ptr %22, align 8, !tbaa !5
  %714 = getelementptr inbounds double, ptr %712, i64 %713
  store double %708, ptr %714, align 8, !tbaa !9
  %715 = load i64, ptr %38, align 8, !tbaa !5
  %716 = icmp eq i64 %715, 1
  br i1 %716, label %720, label %717

717:                                              ; preds = %691
  %718 = load i64, ptr %38, align 8, !tbaa !5
  %719 = icmp eq i64 %718, 2
  br label %720

720:                                              ; preds = %717, %691
  %721 = phi i1 [ true, %691 ], [ %719, %717 ]
  %722 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %723 = load ptr, ptr %722, align 8, !tbaa !23
  %724 = load i64, ptr %22, align 8, !tbaa !5
  %725 = getelementptr inbounds double, ptr %723, i64 %724
  %726 = load double, ptr %725, align 8, !tbaa !9
  %727 = load ptr, ptr %18, align 8, !tbaa !11
  %728 = load ptr, ptr %20, align 8, !tbaa !11
  %729 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %727, ptr noundef %728)
  %730 = load ptr, ptr %20, align 8, !tbaa !11
  %731 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %729, ptr noundef %730)
  %732 = fadd double %726, %731
  %733 = load ptr, ptr %20, align 8, !tbaa !11
  %734 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %733, i32 0, i32 2
  %735 = load double, ptr %734, align 8, !tbaa !35
  %736 = load ptr, ptr %20, align 8, !tbaa !11
  %737 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %721, double noundef %732, double noundef %735, ptr noundef %736)
  %738 = load ptr, ptr %19, align 8, !tbaa !11
  %739 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %738, i32 0, i32 19
  %740 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %739, i32 0, i32 4
  %741 = load ptr, ptr %740, align 8, !tbaa !23
  %742 = load i64, ptr %22, align 8, !tbaa !5
  %743 = getelementptr inbounds double, ptr %741, i64 %742
  store double %737, ptr %743, align 8, !tbaa !9
  br label %744

744:                                              ; preds = %720, %672, %658
  br label %745

745:                                              ; preds = %744
  %746 = load i64, ptr %24, align 8, !tbaa !5
  %747 = add nsw i64 %746, 1
  store i64 %747, ptr %24, align 8, !tbaa !5
  br label %653, !llvm.loop !43

748:                                              ; preds = %653
  store i64 0, ptr %37, align 8, !tbaa !5
  br label %749

749:                                              ; preds = %853, %748
  %750 = load i64, ptr %37, align 8, !tbaa !5
  %751 = load i64, ptr %44, align 8, !tbaa !5
  %752 = sub nsw i64 %751, 1
  %753 = icmp sle i64 %750, %752
  br i1 %753, label %754, label %856

754:                                              ; preds = %749
  %755 = load ptr, ptr %18, align 8, !tbaa !11
  %756 = load i64, ptr %11, align 8, !tbaa !5
  %757 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %755, i64 noundef %756, ptr noundef %30, ptr noundef %757)
  %758 = load i64, ptr %11, align 8, !tbaa !5
  %759 = load ptr, ptr %20, align 8, !tbaa !11
  %760 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %758, ptr noundef %30, ptr noundef %41, ptr noundef %759)
  store double %760, ptr %39, align 8, !tbaa !9
  %761 = load ptr, ptr %18, align 8, !tbaa !11
  %762 = load ptr, ptr %20, align 8, !tbaa !11
  %763 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %761, i64 noundef 3, ptr noundef %762)
  store i64 %763, ptr %38, align 8, !tbaa !5
  %764 = load ptr, ptr %19, align 8, !tbaa !11
  %765 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %764, i32 0, i32 20
  %766 = load ptr, ptr %19, align 8, !tbaa !11
  %767 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %766, i32 0, i32 23
  %768 = load i64, ptr %767, align 8, !tbaa !36
  %769 = add nsw i64 %768, 1
  %770 = load i64, ptr %11, align 8, !tbaa !5
  %771 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %765, i64 noundef %769, i64 noundef %770, ptr noundef %771)
  %772 = load ptr, ptr %19, align 8, !tbaa !11
  %773 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %772, i32 0, i32 23
  %774 = load i64, ptr %773, align 8, !tbaa !36
  %775 = add nsw i64 %774, 1
  %776 = load ptr, ptr %19, align 8, !tbaa !11
  %777 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %776, i32 0, i32 21
  %778 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %775, ptr noundef %777, ptr noundef %778)
  %779 = load ptr, ptr %19, align 8, !tbaa !11
  %780 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %779, i32 0, i32 23
  %781 = load i64, ptr %780, align 8, !tbaa !36
  %782 = add nsw i64 %781, 1
  %783 = load ptr, ptr %19, align 8, !tbaa !11
  %784 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %783, i32 0, i32 22
  %785 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %782, ptr noundef %784, ptr noundef %785)
  %786 = load i64, ptr %11, align 8, !tbaa !5
  %787 = load ptr, ptr %19, align 8, !tbaa !11
  %788 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %787, i32 0, i32 20
  %789 = load ptr, ptr %19, align 8, !tbaa !11
  %790 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %789, i32 0, i32 23
  %791 = load i64, ptr %790, align 8, !tbaa !36
  %792 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %786, ptr noundef %30, ptr noundef %788, i64 noundef %791, ptr noundef %792)
  %793 = load i64, ptr %38, align 8, !tbaa !5
  %794 = icmp eq i64 %793, 0
  br i1 %794, label %798, label %795

795:                                              ; preds = %754
  %796 = load i64, ptr %38, align 8, !tbaa !5
  %797 = icmp eq i64 %796, 2
  br label %798

798:                                              ; preds = %795, %754
  %799 = phi i1 [ true, %754 ], [ %797, %795 ]
  %800 = load double, ptr %39, align 8, !tbaa !9
  %801 = load ptr, ptr %18, align 8, !tbaa !11
  %802 = load ptr, ptr %20, align 8, !tbaa !11
  %803 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %801, ptr noundef %802)
  %804 = load ptr, ptr %20, align 8, !tbaa !11
  %805 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %803, ptr noundef %804)
  %806 = fsub double %800, %805
  %807 = load ptr, ptr %20, align 8, !tbaa !11
  %808 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %807, i32 0, i32 3
  %809 = load double, ptr %808, align 8, !tbaa !31
  %810 = load ptr, ptr %20, align 8, !tbaa !11
  %811 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %799, double noundef %806, double noundef %809, ptr noundef %810)
  %812 = load ptr, ptr %19, align 8, !tbaa !11
  %813 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %812, i32 0, i32 21
  %814 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %813, i32 0, i32 4
  %815 = load ptr, ptr %814, align 8, !tbaa !23
  %816 = load ptr, ptr %19, align 8, !tbaa !11
  %817 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %816, i32 0, i32 23
  %818 = load i64, ptr %817, align 8, !tbaa !36
  %819 = getelementptr inbounds double, ptr %815, i64 %818
  store double %811, ptr %819, align 8, !tbaa !9
  %820 = load i64, ptr %38, align 8, !tbaa !5
  %821 = icmp eq i64 %820, 1
  br i1 %821, label %825, label %822

822:                                              ; preds = %798
  %823 = load i64, ptr %38, align 8, !tbaa !5
  %824 = icmp eq i64 %823, 2
  br label %825

825:                                              ; preds = %822, %798
  %826 = phi i1 [ true, %798 ], [ %824, %822 ]
  %827 = load double, ptr %39, align 8, !tbaa !9
  %828 = load ptr, ptr %18, align 8, !tbaa !11
  %829 = load ptr, ptr %20, align 8, !tbaa !11
  %830 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %828, ptr noundef %829)
  %831 = load ptr, ptr %20, align 8, !tbaa !11
  %832 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %830, ptr noundef %831)
  %833 = fadd double %827, %832
  %834 = load ptr, ptr %20, align 8, !tbaa !11
  %835 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %834, i32 0, i32 2
  %836 = load double, ptr %835, align 8, !tbaa !35
  %837 = load ptr, ptr %20, align 8, !tbaa !11
  %838 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %826, double noundef %833, double noundef %836, ptr noundef %837)
  %839 = load ptr, ptr %19, align 8, !tbaa !11
  %840 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %839, i32 0, i32 22
  %841 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %840, i32 0, i32 4
  %842 = load ptr, ptr %841, align 8, !tbaa !23
  %843 = load ptr, ptr %19, align 8, !tbaa !11
  %844 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %843, i32 0, i32 23
  %845 = load i64, ptr %844, align 8, !tbaa !36
  %846 = getelementptr inbounds double, ptr %842, i64 %845
  store double %838, ptr %846, align 8, !tbaa !9
  %847 = load ptr, ptr %19, align 8, !tbaa !11
  %848 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %847, i32 0, i32 23
  %849 = load i64, ptr %848, align 8, !tbaa !36
  %850 = add nsw i64 %849, 1
  %851 = load ptr, ptr %19, align 8, !tbaa !11
  %852 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %851, i32 0, i32 23
  store i64 %850, ptr %852, align 8, !tbaa !36
  br label %853

853:                                              ; preds = %825
  %854 = load i64, ptr %37, align 8, !tbaa !5
  %855 = add nsw i64 %854, 1
  store i64 %855, ptr %37, align 8, !tbaa !5
  br label %749, !llvm.loop !44

856:                                              ; preds = %749
  store i64 0, ptr %37, align 8, !tbaa !5
  br label %857

857:                                              ; preds = %1135, %856
  %858 = load i64, ptr %37, align 8, !tbaa !5
  %859 = load i64, ptr %45, align 8, !tbaa !5
  %860 = sub nsw i64 %859, 1
  %861 = icmp sle i64 %858, %860
  br i1 %861, label %862, label %1138

862:                                              ; preds = %857
  %863 = load ptr, ptr %19, align 8, !tbaa !11
  %864 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %863, i32 0, i32 30
  %865 = load i64, ptr %864, align 8, !tbaa !37
  %866 = add nsw i64 %865, 1
  %867 = load ptr, ptr %19, align 8, !tbaa !11
  %868 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %867, i32 0, i32 24
  %869 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %866, ptr noundef %868, ptr noundef %869)
  %870 = load ptr, ptr %19, align 8, !tbaa !11
  %871 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %870, i32 0, i32 25
  %872 = load ptr, ptr %19, align 8, !tbaa !11
  %873 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %872, i32 0, i32 30
  %874 = load i64, ptr %873, align 8, !tbaa !37
  %875 = add nsw i64 %874, 1
  %876 = load i64, ptr %11, align 8, !tbaa !5
  %877 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %871, i64 noundef %875, i64 noundef %876, ptr noundef %877)
  %878 = load ptr, ptr %19, align 8, !tbaa !11
  %879 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %878, i32 0, i32 26
  %880 = load ptr, ptr %19, align 8, !tbaa !11
  %881 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %880, i32 0, i32 30
  %882 = load i64, ptr %881, align 8, !tbaa !37
  %883 = add nsw i64 %882, 1
  %884 = load i64, ptr %11, align 8, !tbaa !5
  %885 = mul nsw i64 %883, %884
  %886 = load i64, ptr %11, align 8, !tbaa !5
  %887 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %879, i64 noundef %885, i64 noundef %886, ptr noundef %887)
  %888 = load ptr, ptr %19, align 8, !tbaa !11
  %889 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %888, i32 0, i32 27
  %890 = load ptr, ptr %19, align 8, !tbaa !11
  %891 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %890, i32 0, i32 30
  %892 = load i64, ptr %891, align 8, !tbaa !37
  %893 = add nsw i64 %892, 1
  %894 = load i64, ptr %11, align 8, !tbaa !5
  %895 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %889, i64 noundef %893, i64 noundef %894, ptr noundef %895)
  %896 = load ptr, ptr %19, align 8, !tbaa !11
  %897 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %896, i32 0, i32 30
  %898 = load i64, ptr %897, align 8, !tbaa !37
  %899 = add nsw i64 %898, 1
  %900 = load ptr, ptr %19, align 8, !tbaa !11
  %901 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %900, i32 0, i32 28
  %902 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %899, ptr noundef %901, ptr noundef %902)
  %903 = load ptr, ptr %19, align 8, !tbaa !11
  %904 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %903, i32 0, i32 30
  %905 = load i64, ptr %904, align 8, !tbaa !37
  %906 = add nsw i64 %905, 1
  %907 = load ptr, ptr %19, align 8, !tbaa !11
  %908 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %907, i32 0, i32 29
  %909 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %906, ptr noundef %908, ptr noundef %909)
  store double 0.000000e+00, ptr %39, align 8, !tbaa !9
  %910 = load ptr, ptr %18, align 8, !tbaa !11
  %911 = load ptr, ptr %20, align 8, !tbaa !11
  %912 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %910, ptr noundef %911)
  %913 = load ptr, ptr %19, align 8, !tbaa !11
  %914 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %913, i32 0, i32 24
  %915 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %914, i32 0, i32 4
  %916 = load ptr, ptr %915, align 8, !tbaa !23
  %917 = load ptr, ptr %19, align 8, !tbaa !11
  %918 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %917, i32 0, i32 30
  %919 = load i64, ptr %918, align 8, !tbaa !37
  %920 = getelementptr inbounds double, ptr %916, i64 %919
  store double %912, ptr %920, align 8, !tbaa !9
  %921 = load double, ptr %39, align 8, !tbaa !9
  %922 = load ptr, ptr %19, align 8, !tbaa !11
  %923 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %922, i32 0, i32 24
  %924 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %923, i32 0, i32 4
  %925 = load ptr, ptr %924, align 8, !tbaa !23
  %926 = load ptr, ptr %19, align 8, !tbaa !11
  %927 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %926, i32 0, i32 30
  %928 = load i64, ptr %927, align 8, !tbaa !37
  %929 = getelementptr inbounds double, ptr %925, i64 %928
  %930 = load double, ptr %929, align 8, !tbaa !9
  %931 = fadd double %921, %930
  store double %931, ptr %39, align 8, !tbaa !9
  %932 = load ptr, ptr %18, align 8, !tbaa !11
  %933 = load i64, ptr %11, align 8, !tbaa !5
  %934 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %932, i64 noundef %933, ptr noundef %30, ptr noundef %934)
  %935 = load i64, ptr %11, align 8, !tbaa !5
  %936 = load ptr, ptr %19, align 8, !tbaa !11
  %937 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %936, i32 0, i32 25
  %938 = load ptr, ptr %19, align 8, !tbaa !11
  %939 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %938, i32 0, i32 30
  %940 = load i64, ptr %939, align 8, !tbaa !37
  %941 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %935, ptr noundef %30, ptr noundef %937, i64 noundef %940, ptr noundef %941)
  %942 = load double, ptr %39, align 8, !tbaa !9
  %943 = load i64, ptr %11, align 8, !tbaa !5
  %944 = load ptr, ptr %20, align 8, !tbaa !11
  %945 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %943, ptr noundef %30, ptr noundef %41, ptr noundef %944)
  %946 = fadd double %942, %945
  store double %946, ptr %39, align 8, !tbaa !9
  %947 = load i64, ptr %11, align 8, !tbaa !5
  %948 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %947, double noundef 1.000000e+01, ptr noundef %26, ptr noundef %948)
  %949 = load double, ptr %16, align 8, !tbaa !9
  %950 = load ptr, ptr %18, align 8, !tbaa !11
  %951 = load ptr, ptr %20, align 8, !tbaa !11
  %952 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %950, ptr noundef %951)
  %953 = load ptr, ptr %20, align 8, !tbaa !11
  %954 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %952, ptr noundef %953)
  %955 = fmul double %949, %954
  store double %955, ptr %40, align 8, !tbaa !9
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %956

956:                                              ; preds = %966, %862
  %957 = load i64, ptr %22, align 8, !tbaa !5
  %958 = load i64, ptr %11, align 8, !tbaa !5
  %959 = sub nsw i64 %958, 1
  %960 = icmp sle i64 %957, %959
  br i1 %960, label %961, label %969

961:                                              ; preds = %956
  %962 = load i64, ptr %11, align 8, !tbaa !5
  %963 = load double, ptr %40, align 8, !tbaa !9
  %964 = load i64, ptr %22, align 8, !tbaa !5
  %965 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %962, double noundef %963, ptr noundef %26, i64 noundef %964, ptr noundef %965)
  br label %966

966:                                              ; preds = %961
  %967 = load i64, ptr %22, align 8, !tbaa !5
  %968 = add nsw i64 %967, 1
  store i64 %968, ptr %22, align 8, !tbaa !5
  br label %956, !llvm.loop !45

969:                                              ; preds = %956
  %970 = load i64, ptr %11, align 8, !tbaa !5
  %971 = load i64, ptr %11, align 8, !tbaa !5
  %972 = load ptr, ptr %19, align 8, !tbaa !11
  %973 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %972, i32 0, i32 26
  %974 = load ptr, ptr %19, align 8, !tbaa !11
  %975 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %974, i32 0, i32 30
  %976 = load i64, ptr %975, align 8, !tbaa !37
  %977 = load i64, ptr %11, align 8, !tbaa !5
  %978 = mul nsw i64 %976, %977
  %979 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl11rmatrixcopyEllPKNS_9ae_matrixEllPS0_llPNS_8ae_stateE(i64 noundef %970, i64 noundef %971, ptr noundef %26, i64 noundef 0, i64 noundef 0, ptr noundef %973, i64 noundef %978, i64 noundef 0, ptr noundef %979)
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %980

980:                                              ; preds = %1018, %969
  %981 = load i64, ptr %22, align 8, !tbaa !5
  %982 = load i64, ptr %11, align 8, !tbaa !5
  %983 = sub nsw i64 %982, 1
  %984 = icmp sle i64 %981, %983
  br i1 %984, label %985, label %1021

985:                                              ; preds = %980
  store i64 0, ptr %23, align 8, !tbaa !5
  br label %986

986:                                              ; preds = %1014, %985
  %987 = load i64, ptr %23, align 8, !tbaa !5
  %988 = load i64, ptr %11, align 8, !tbaa !5
  %989 = sub nsw i64 %988, 1
  %990 = icmp sle i64 %987, %989
  br i1 %990, label %991, label %1017

991:                                              ; preds = %986
  %992 = load double, ptr %39, align 8, !tbaa !9
  %993 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %994 = load ptr, ptr %993, align 8, !tbaa !23
  %995 = load i64, ptr %22, align 8, !tbaa !5
  %996 = getelementptr inbounds double, ptr %994, i64 %995
  %997 = load double, ptr %996, align 8, !tbaa !9
  %998 = fmul double 5.000000e-01, %997
  %999 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %26, i32 0, i32 6
  %1000 = load ptr, ptr %999, align 8, !tbaa !23
  %1001 = load i64, ptr %22, align 8, !tbaa !5
  %1002 = getelementptr inbounds ptr, ptr %1000, i64 %1001
  %1003 = load ptr, ptr %1002, align 8, !tbaa !11
  %1004 = load i64, ptr %23, align 8, !tbaa !5
  %1005 = getelementptr inbounds double, ptr %1003, i64 %1004
  %1006 = load double, ptr %1005, align 8, !tbaa !9
  %1007 = fmul double %998, %1006
  %1008 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %1009 = load ptr, ptr %1008, align 8, !tbaa !23
  %1010 = load i64, ptr %23, align 8, !tbaa !5
  %1011 = getelementptr inbounds double, ptr %1009, i64 %1010
  %1012 = load double, ptr %1011, align 8, !tbaa !9
  %1013 = call double @llvm.fmuladd.f64(double %1007, double %1012, double %992)
  store double %1013, ptr %39, align 8, !tbaa !9
  br label %1014

1014:                                             ; preds = %991
  %1015 = load i64, ptr %23, align 8, !tbaa !5
  %1016 = add nsw i64 %1015, 1
  store i64 %1016, ptr %23, align 8, !tbaa !5
  br label %986, !llvm.loop !46

1017:                                             ; preds = %986
  br label %1018

1018:                                             ; preds = %1017
  %1019 = load i64, ptr %22, align 8, !tbaa !5
  %1020 = add nsw i64 %1019, 1
  store i64 %1020, ptr %22, align 8, !tbaa !5
  br label %980, !llvm.loop !47

1021:                                             ; preds = %980
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %1022

1022:                                             ; preds = %1068, %1021
  %1023 = load i64, ptr %22, align 8, !tbaa !5
  %1024 = load i64, ptr %11, align 8, !tbaa !5
  %1025 = sub nsw i64 %1024, 1
  %1026 = icmp sle i64 %1023, %1025
  br i1 %1026, label %1027, label %1071

1027:                                             ; preds = %1022
  %1028 = load double, ptr %17, align 8, !tbaa !9
  %1029 = load ptr, ptr %18, align 8, !tbaa !11
  %1030 = load ptr, ptr %20, align 8, !tbaa !11
  %1031 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %1029, ptr noundef %1030)
  %1032 = fmul double 3.300000e-01, %1031
  %1033 = load ptr, ptr %20, align 8, !tbaa !11
  %1034 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %1032, ptr noundef %1033)
  %1035 = fmul double %1028, %1034
  %1036 = load ptr, ptr %19, align 8, !tbaa !11
  %1037 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1036, i32 0, i32 27
  %1038 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1037, i32 0, i32 6
  %1039 = load ptr, ptr %1038, align 8, !tbaa !23
  %1040 = load ptr, ptr %19, align 8, !tbaa !11
  %1041 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1040, i32 0, i32 30
  %1042 = load i64, ptr %1041, align 8, !tbaa !37
  %1043 = getelementptr inbounds ptr, ptr %1039, i64 %1042
  %1044 = load ptr, ptr %1043, align 8, !tbaa !11
  %1045 = load i64, ptr %22, align 8, !tbaa !5
  %1046 = getelementptr inbounds double, ptr %1044, i64 %1045
  store double %1035, ptr %1046, align 8, !tbaa !9
  %1047 = load double, ptr %39, align 8, !tbaa !9
  %1048 = load ptr, ptr %19, align 8, !tbaa !11
  %1049 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1048, i32 0, i32 27
  %1050 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1049, i32 0, i32 6
  %1051 = load ptr, ptr %1050, align 8, !tbaa !23
  %1052 = load ptr, ptr %19, align 8, !tbaa !11
  %1053 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1052, i32 0, i32 30
  %1054 = load i64, ptr %1053, align 8, !tbaa !37
  %1055 = getelementptr inbounds ptr, ptr %1051, i64 %1054
  %1056 = load ptr, ptr %1055, align 8, !tbaa !11
  %1057 = load i64, ptr %22, align 8, !tbaa !5
  %1058 = getelementptr inbounds double, ptr %1056, i64 %1057
  %1059 = load double, ptr %1058, align 8, !tbaa !9
  %1060 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %1061 = load ptr, ptr %1060, align 8, !tbaa !23
  %1062 = load i64, ptr %22, align 8, !tbaa !5
  %1063 = getelementptr inbounds double, ptr %1061, i64 %1062
  %1064 = load double, ptr %1063, align 8, !tbaa !9
  %1065 = load ptr, ptr %20, align 8, !tbaa !11
  %1066 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1064, double noundef 4.000000e+00, ptr noundef %1065)
  %1067 = call double @llvm.fmuladd.f64(double %1059, double %1066, double %1047)
  store double %1067, ptr %39, align 8, !tbaa !9
  br label %1068

1068:                                             ; preds = %1027
  %1069 = load i64, ptr %22, align 8, !tbaa !5
  %1070 = add nsw i64 %1069, 1
  store i64 %1070, ptr %22, align 8, !tbaa !5
  br label %1022, !llvm.loop !48

1071:                                             ; preds = %1022
  %1072 = load ptr, ptr %18, align 8, !tbaa !11
  %1073 = load ptr, ptr %20, align 8, !tbaa !11
  %1074 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %1072, i64 noundef 3, ptr noundef %1073)
  store i64 %1074, ptr %38, align 8, !tbaa !5
  %1075 = load i64, ptr %38, align 8, !tbaa !5
  %1076 = icmp eq i64 %1075, 0
  br i1 %1076, label %1080, label %1077

1077:                                             ; preds = %1071
  %1078 = load i64, ptr %38, align 8, !tbaa !5
  %1079 = icmp eq i64 %1078, 2
  br label %1080

1080:                                             ; preds = %1077, %1071
  %1081 = phi i1 [ true, %1071 ], [ %1079, %1077 ]
  %1082 = load double, ptr %39, align 8, !tbaa !9
  %1083 = load ptr, ptr %18, align 8, !tbaa !11
  %1084 = load ptr, ptr %20, align 8, !tbaa !11
  %1085 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %1083, ptr noundef %1084)
  %1086 = load ptr, ptr %20, align 8, !tbaa !11
  %1087 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %1085, ptr noundef %1086)
  %1088 = fsub double %1082, %1087
  %1089 = load ptr, ptr %20, align 8, !tbaa !11
  %1090 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1089, i32 0, i32 3
  %1091 = load double, ptr %1090, align 8, !tbaa !31
  %1092 = load ptr, ptr %20, align 8, !tbaa !11
  %1093 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1081, double noundef %1088, double noundef %1091, ptr noundef %1092)
  %1094 = load ptr, ptr %19, align 8, !tbaa !11
  %1095 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1094, i32 0, i32 28
  %1096 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1095, i32 0, i32 4
  %1097 = load ptr, ptr %1096, align 8, !tbaa !23
  %1098 = load ptr, ptr %19, align 8, !tbaa !11
  %1099 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1098, i32 0, i32 30
  %1100 = load i64, ptr %1099, align 8, !tbaa !37
  %1101 = getelementptr inbounds double, ptr %1097, i64 %1100
  store double %1093, ptr %1101, align 8, !tbaa !9
  %1102 = load i64, ptr %38, align 8, !tbaa !5
  %1103 = icmp eq i64 %1102, 1
  br i1 %1103, label %1107, label %1104

1104:                                             ; preds = %1080
  %1105 = load i64, ptr %38, align 8, !tbaa !5
  %1106 = icmp eq i64 %1105, 2
  br label %1107

1107:                                             ; preds = %1104, %1080
  %1108 = phi i1 [ true, %1080 ], [ %1106, %1104 ]
  %1109 = load double, ptr %39, align 8, !tbaa !9
  %1110 = load ptr, ptr %18, align 8, !tbaa !11
  %1111 = load ptr, ptr %20, align 8, !tbaa !11
  %1112 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %1110, ptr noundef %1111)
  %1113 = load ptr, ptr %20, align 8, !tbaa !11
  %1114 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %1112, ptr noundef %1113)
  %1115 = fadd double %1109, %1114
  %1116 = load ptr, ptr %20, align 8, !tbaa !11
  %1117 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1116, i32 0, i32 2
  %1118 = load double, ptr %1117, align 8, !tbaa !35
  %1119 = load ptr, ptr %20, align 8, !tbaa !11
  %1120 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1108, double noundef %1115, double noundef %1118, ptr noundef %1119)
  %1121 = load ptr, ptr %19, align 8, !tbaa !11
  %1122 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1121, i32 0, i32 29
  %1123 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1122, i32 0, i32 4
  %1124 = load ptr, ptr %1123, align 8, !tbaa !23
  %1125 = load ptr, ptr %19, align 8, !tbaa !11
  %1126 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1125, i32 0, i32 30
  %1127 = load i64, ptr %1126, align 8, !tbaa !37
  %1128 = getelementptr inbounds double, ptr %1124, i64 %1127
  store double %1120, ptr %1128, align 8, !tbaa !9
  %1129 = load ptr, ptr %19, align 8, !tbaa !11
  %1130 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1129, i32 0, i32 30
  %1131 = load i64, ptr %1130, align 8, !tbaa !37
  %1132 = add nsw i64 %1131, 1
  %1133 = load ptr, ptr %19, align 8, !tbaa !11
  %1134 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1133, i32 0, i32 30
  store i64 %1132, ptr %1134, align 8, !tbaa !37
  br label %1135

1135:                                             ; preds = %1107
  %1136 = load i64, ptr %37, align 8, !tbaa !5
  %1137 = add nsw i64 %1136, 1
  store i64 %1137, ptr %37, align 8, !tbaa !5
  br label %857, !llvm.loop !49

1138:                                             ; preds = %857
  %1139 = load ptr, ptr %20, align 8, !tbaa !11
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1139)
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 80, 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 32, ptr %21) #5
  ret void
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl33_multiobjectivetestfunction_clearEPv(ptr noundef) #4

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!16, !14, i64 480}
!16 = !{!"_ZTSN11alglib_impl26multiobjectivetestfunctionE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !17, i64 32, !6, i64 112, !17, i64 120, !17, i64 200, !6, i64 280, !19, i64 288, !19, i64 352, !19, i64 416, !14, i64 480, !17, i64 488, !19, i64 568, !17, i64 632, !17, i64 712, !17, i64 792, !19, i64 872, !19, i64 936, !17, i64 1000, !19, i64 1080, !19, i64 1144, !6, i64 1208, !19, i64 1216, !17, i64 1280, !17, i64 1360, !17, i64 1440, !19, i64 1520, !19, i64 1584, !6, i64 1648}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !14, i64 32, !18, i64 40, !7, i64 72}
!18 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!19 = !{!"_ZTSN11alglib_impl9ae_vectorE", !6, i64 0, !6, i64 8, !14, i64 16, !18, i64 24, !7, i64 56}
!20 = !{!16, !6, i64 0}
!21 = !{!16, !6, i64 16}
!22 = !{!16, !6, i64 24}
!23 = !{!7, !7, i64 0}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = distinct !{!26, !25}
!27 = distinct !{!27, !25}
!28 = distinct !{!28, !25}
!29 = !{!16, !6, i64 112}
!30 = !{!16, !6, i64 280}
!31 = !{!32, !10, i64 24}
!32 = !{!"_ZTSN11alglib_impl8ae_stateE", !6, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !12, i64 32, !18, i64 40, !12, i64 72, !33, i64 80, !12, i64 88, !34, i64 96, !12, i64 104, !12, i64 112, !12, i64 120}
!33 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !7, i64 0}
!34 = !{!"long long", !7, i64 0}
!35 = !{!32, !10, i64 16}
!36 = !{!16, !6, i64 1208}
!37 = !{!16, !6, i64 1648}
!38 = distinct !{!38, !25}
!39 = distinct !{!39, !25}
!40 = distinct !{!40, !25}
!41 = distinct !{!41, !25}
!42 = distinct !{!42, !25}
!43 = distinct !{!43, !25}
!44 = distinct !{!44, !25}
!45 = distinct !{!45, !25}
!46 = distinct !{!46, !25}
!47 = distinct !{!47, !25}
!48 = distinct !{!48, !25}
!49 = distinct !{!49, !25}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }

@.str.305 = external hidden unnamed_addr constant [31 x i8], align 1

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl23motfcreaterandomunknownElllllddPNS_10hqrndstateEPNS_26multiobjectivetestfunctionEPNS_8ae_stateE(i64 noundef %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, double noundef %5, double noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9) local_unnamed_addr #4 {
  %11 = alloca %"struct.alglib_impl::ae_frame", align 8
  %12 = alloca %"struct.alglib_impl::ae_matrix", 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 i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i8, align 1
  %22 = alloca %"struct.alglib_impl::ae_vector", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %22) #5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %9, ptr noundef nonnull %11)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %12, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(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) %22, i8 0, i64 64, i1 false)
  call void @_ZN11alglib_impl33_multiobjectivetestfunction_clearEPv(ptr noundef %8)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %9, 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 %9, 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 %9, 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 %9, 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 %9, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %22, i64 noundef 0, i64 noundef 3, ptr noundef %9, i1 noundef zeroext true)
  store i8 0, ptr %18, align 1, !tbaa !5
  store i8 0, ptr %19, align 1, !tbaa !5
  store i8 0, ptr %20, align 1, !tbaa !5
  store i8 0, ptr %21, align 1, !tbaa !5
  store i8 0, ptr %17, align 1, !tbaa !5
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef nonnull %18, ptr noundef %9)
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef nonnull %19, ptr noundef %9)
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef nonnull %20, ptr noundef %9)
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef nonnull %21, ptr noundef %9)
  call void @_ZN11alglib_impl12touchbooleanEPbPNS_8ae_stateE(ptr noundef nonnull %17, ptr noundef %9)
  %23 = getelementptr inbounds i8, ptr %8, i64 480
  store i8 0, ptr %23, align 8, !tbaa !9
  store i64 0, ptr %8, align 8, !tbaa !16
  %24 = getelementptr inbounds i8, ptr %8, i64 16
  store i64 %0, ptr %24, align 8, !tbaa !17
  %25 = getelementptr inbounds i8, ptr %8, i64 24
  store i64 %1, ptr %25, align 8, !tbaa !18
  %26 = getelementptr inbounds i8, ptr %8, i64 568
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1, double noundef 0.000000e+00, ptr noundef nonnull %26, ptr noundef %9)
  %27 = getelementptr inbounds i8, ptr %8, i64 632
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1, i64 noundef %0, double noundef 0.000000e+00, ptr noundef nonnull %27, ptr noundef %9)
  %28 = mul nsw i64 %1, %0
  %29 = getelementptr inbounds i8, ptr %8, i64 712
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %28, i64 noundef %0, double noundef 0.000000e+00, ptr noundef nonnull %29, ptr noundef %9)
  %30 = getelementptr inbounds i8, ptr %8, i64 792
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1, i64 noundef %0, double noundef 0.000000e+00, ptr noundef nonnull %30, ptr noundef %9)
  %31 = icmp slt i64 %4, 5
  %32 = icmp ult i64 %4, 5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %32, ptr noundef nonnull @.str.305, ptr noundef %9)
  %33 = icmp eq i64 %4, 0
  br i1 %33, label %.preheader521, label %45

.preheader521:                                    ; preds = %10
  %.not.not524 = icmp sgt i64 %1, 0
  br i1 %.not.not524, label %.preheader520.lr.ph, label %._crit_edge526

.preheader520.lr.ph:                              ; preds = %.preheader521
  %.not506.not522 = icmp sgt i64 %0, 0
  %34 = getelementptr inbounds i8, ptr %8, i64 864
  br i1 %.not506.not522, label %.preheader520.us, label %._crit_edge526

.preheader520.us:                                 ; preds = %.preheader520.lr.ph, %._crit_edge.us
  %.0525.us = phi i64 [ %44, %._crit_edge.us ], [ 0, %.preheader520.lr.ph ]
  br label %35

35:                                               ; preds = %.preheader520.us, %35
  %.0471523.us = phi i64 [ 0, %.preheader520.us ], [ %43, %35 ]
  %36 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %37 = fmul double %36, 3.300000e-01
  %38 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %37, ptr noundef %9)
  %39 = load ptr, ptr %34, align 8, !tbaa !19
  %40 = getelementptr inbounds ptr, ptr %39, i64 %.0525.us
  %41 = load ptr, ptr %40, align 8, !tbaa !20
  %42 = getelementptr inbounds double, ptr %41, i64 %.0471523.us
  store double %38, ptr %42, align 8, !tbaa !21
  %43 = add nuw nsw i64 %.0471523.us, 1
  %exitcond.not = icmp eq i64 %43, %0
  br i1 %exitcond.not, label %._crit_edge.us, label %35, !llvm.loop !23

._crit_edge.us:                                   ; preds = %35
  %44 = add nuw nsw i64 %.0525.us, 1
  %exitcond590.not = icmp eq i64 %44, %1
  br i1 %exitcond590.not, label %._crit_edge526, label %.preheader520.us, !llvm.loop !25

._crit_edge526:                                   ; preds = %._crit_edge.us, %.preheader520.lr.ph, %.preheader521
  store i8 1, ptr %19, align 1, !tbaa !5
  store i8 1, ptr %21, align 1, !tbaa !5
  br label %45

45:                                               ; preds = %._crit_edge526, %10
  %46 = icmp slt i64 %4, 3
  br i1 %46, label %47, label %56

47:                                               ; preds = %45
  %.not = icmp eq i64 %4, 2
  br i1 %.not, label %50, label %.preheader518

.preheader518:                                    ; preds = %47
  %.not494.not527 = icmp sgt i64 %1, 0
  br i1 %.not494.not527, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %.preheader518, %.lr.ph
  %.0474528 = phi i64 [ %49, %.lr.ph ], [ 0, %.preheader518 ]
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %0, double noundef 1.000000e+02, ptr noundef nonnull %12, ptr noundef %9)
  %48 = mul nsw i64 %.0474528, %0
  call void @_ZN11alglib_impl11rmatrixcopyEllPKNS_9ae_matrixEllPS0_llPNS_8ae_stateE(i64 noundef %0, i64 noundef %0, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %29, i64 noundef %48, i64 noundef 0, ptr noundef %9)
  %49 = add nuw nsw i64 %.0474528, 1
  %exitcond591.not = icmp eq i64 %49, %1
  br i1 %exitcond591.not, label %.loopexit, label %.lr.ph, !llvm.loop !26

50:                                               ; preds = %47
  %51 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef 5, ptr noundef %9)
  %52 = add nsw i64 %51, 1
  %53 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %0, i64 noundef %52, ptr noundef %9)
  %.not493.not529 = icmp sgt i64 %1, 0
  br i1 %.not493.not529, label %.lr.ph531, label %.loopexit

.lr.ph531:                                        ; preds = %50, %.lr.ph531
  %.1475530 = phi i64 [ %55, %.lr.ph531 ], [ 0, %50 ]
  call void @_ZN11alglib_impl12hqrndnormalmEPNS_10hqrndstateEllPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %7, i64 noundef %53, i64 noundef %0, ptr noundef nonnull %12, ptr noundef %9)
  %54 = mul nsw i64 %.1475530, %0
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef %0, i64 noundef %0, i64 noundef %53, double noundef 1.000000e+00, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, i64 noundef 1, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef nonnull %29, i64 noundef %54, i64 noundef 0, ptr noundef %9)
  %55 = add nuw nsw i64 %.1475530, 1
  %exitcond592.not = icmp eq i64 %55, %1
  br i1 %exitcond592.not, label %.loopexit, label %.lr.ph531, !llvm.loop !27

.loopexit:                                        ; preds = %.lr.ph, %.lr.ph531, %.preheader518, %50
  store i8 1, ptr %20, align 1, !tbaa !5
  store i8 1, ptr %19, align 1, !tbaa !5
  br label %56

56:                                               ; preds = %.loopexit, %45
  %57 = icmp slt i64 %4, 4
  br i1 %57, label %.thread, label %58

.thread:                                          ; preds = %56
  call void @_ZN11alglib_impl12hqrndnormalmEPNS_10hqrndstateEllPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %7, i64 noundef %1, i64 noundef %0, ptr noundef nonnull %27, ptr noundef %9)
  store i8 1, ptr %18, align 1, !tbaa !5
  br label %59

58:                                               ; preds = %56
  br i1 %31, label %59, label %60

59:                                               ; preds = %.thread, %58
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef %1, ptr noundef nonnull %26, ptr noundef %9)
  br label %60

60:                                               ; preds = %59, %58
  %61 = icmp sgt i64 %4, 1
  %62 = zext i1 %61 to i8
  store i8 %62, ptr %17, align 1, !tbaa !5
  %63 = getelementptr inbounds i8, ptr %8, i64 32
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %63, i64 noundef 0, i64 noundef 0, ptr noundef %9)
  %64 = getelementptr inbounds i8, ptr %8, i64 112
  store i64 0, ptr %64, align 8, !tbaa !28
  %65 = getelementptr inbounds i8, ptr %8, i64 120
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %65, i64 noundef 0, i64 noundef 0, ptr noundef %9)
  %66 = getelementptr inbounds i8, ptr %8, i64 200
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %66, i64 noundef 0, i64 noundef 0, ptr noundef %9)
  %67 = getelementptr inbounds i8, ptr %8, i64 280
  store i64 0, ptr %67, align 8, !tbaa !29
  %68 = getelementptr inbounds i8, ptr %8, i64 288
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %68, i64 noundef 0, ptr noundef %9)
  %69 = getelementptr inbounds i8, ptr %8, i64 352
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %69, i64 noundef 0, ptr noundef %9)
  %70 = getelementptr inbounds i8, ptr %8, i64 416
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %70, i64 noundef 0, ptr noundef %9)
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef %0, ptr noundef nonnull %22, ptr noundef %9)
  %71 = getelementptr inbounds i8, ptr %9, i64 24
  %72 = load double, ptr %71, align 8, !tbaa !30
  %73 = getelementptr inbounds i8, ptr %8, i64 872
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %0, double noundef %72, ptr noundef nonnull %73, ptr noundef %9)
  %74 = getelementptr inbounds i8, ptr %9, i64 16
  %75 = load double, ptr %74, align 8, !tbaa !34
  %76 = getelementptr inbounds i8, ptr %8, i64 936
  call void @_ZN11alglib_impl10rsetallocvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %0, double noundef %75, ptr noundef nonnull %76, ptr noundef %9)
  %77 = getelementptr inbounds i8, ptr %8, i64 1208
  store i64 0, ptr %77, align 8, !tbaa !35
  %78 = getelementptr inbounds i8, ptr %8, i64 1648
  store i64 0, ptr %78, align 8, !tbaa !36
  %79 = shl nsw i64 %0, 1
  %80 = icmp sgt i64 %2, 0
  %81 = icmp sgt i64 %0, 0
  %or.cond549 = and i1 %80, %81
  br i1 %or.cond549, label %.lr.ph553, label %.critedge

.lr.ph553:                                        ; preds = %60
  %82 = getelementptr inbounds i8, ptr %8, i64 1216
  %83 = getelementptr inbounds i8, ptr %8, i64 1280
  %84 = getelementptr inbounds i8, ptr %8, i64 1360
  %85 = getelementptr inbounds i8, ptr %8, i64 1440
  %86 = getelementptr inbounds i8, ptr %8, i64 1520
  %87 = getelementptr inbounds i8, ptr %8, i64 1584
  %88 = getelementptr inbounds i8, ptr %8, i64 1272
  %89 = getelementptr inbounds i8, ptr %22, i64 56
  %90 = getelementptr inbounds i8, ptr %12, i64 72
  %91 = getelementptr inbounds i8, ptr %8, i64 1512
  %92 = getelementptr inbounds i8, ptr %8, i64 1576
  %93 = getelementptr inbounds i8, ptr %8, i64 1640
  %94 = getelementptr inbounds i8, ptr %8, i64 1000
  %95 = getelementptr inbounds i8, ptr %8, i64 1080
  %96 = getelementptr inbounds i8, ptr %8, i64 1144
  %97 = getelementptr inbounds i8, ptr %8, i64 1136
  %98 = getelementptr inbounds i8, ptr %8, i64 1200
  %99 = getelementptr inbounds i8, ptr %8, i64 928
  %100 = getelementptr inbounds i8, ptr %8, i64 992
  %xtraiter = and i64 %0, 3
  %101 = icmp ult i64 %0, 4
  %unroll_iter = and i64 %0, 9223372036854775804
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br label %102

102:                                              ; preds = %.lr.ph553, %.thread511
  %.0477551 = phi i64 [ 0, %.lr.ph553 ], [ %103, %.thread511 ]
  %.0486550 = phi i64 [ 0, %.lr.ph553 ], [ %.3489, %.thread511 ]
  %103 = add nuw nsw i64 %.0477551, 1
  %104 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef 3, ptr noundef %9)
  switch i64 %104, label %.thread511 [
    i64 0, label %105
    i64 1, label %128
    i64 2, label %.lr.ph534.preheader
  ]

105:                                              ; preds = %102
  %106 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef %0, ptr noundef %9)
  %107 = load ptr, ptr %99, align 8, !tbaa !19
  %108 = getelementptr inbounds double, ptr %107, i64 %106
  %109 = load double, ptr %108, align 8, !tbaa !21
  %110 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef %109, ptr noundef %9)
  br i1 %110, label %111, label %.thread511

111:                                              ; preds = %105
  %112 = load ptr, ptr %100, align 8, !tbaa !19
  %113 = getelementptr inbounds double, ptr %112, i64 %106
  %114 = load double, ptr %113, align 8, !tbaa !21
  %115 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef %114, ptr noundef %9)
  br i1 %115, label %116, label %.thread511

116:                                              ; preds = %111
  %117 = load ptr, ptr %89, align 8, !tbaa !19
  %118 = getelementptr inbounds double, ptr %117, i64 %106
  %119 = load double, ptr %118, align 8, !tbaa !21
  %120 = load ptr, ptr %99, align 8, !tbaa !19
  %121 = getelementptr inbounds double, ptr %120, i64 %106
  store double %119, ptr %121, align 8, !tbaa !21
  %122 = load ptr, ptr %89, align 8, !tbaa !19
  %123 = getelementptr inbounds double, ptr %122, i64 %106
  %124 = load double, ptr %123, align 8, !tbaa !21
  %125 = load ptr, ptr %100, align 8, !tbaa !19
  %126 = getelementptr inbounds double, ptr %125, i64 %106
  store double %124, ptr %126, align 8, !tbaa !21
  %127 = add nsw i64 %.0486550, 1
  br label %.thread511

128:                                              ; preds = %102
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef %0, ptr noundef nonnull %16, ptr noundef %9)
  %129 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %22, ptr noundef %9)
  %130 = load i64, ptr %77, align 8, !tbaa !35
  %131 = add nsw i64 %130, 1
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %94, i64 noundef %131, i64 noundef %0, ptr noundef %9)
  %132 = load i64, ptr %77, align 8, !tbaa !35
  %133 = add nsw i64 %132, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %133, ptr noundef nonnull %95, ptr noundef %9)
  %134 = load i64, ptr %77, align 8, !tbaa !35
  %135 = add nsw i64 %134, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %135, ptr noundef nonnull %96, ptr noundef %9)
  %136 = load i64, ptr %77, align 8, !tbaa !35
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %94, i64 noundef %136, ptr noundef %9)
  %137 = load ptr, ptr %97, align 8, !tbaa !19
  %138 = load i64, ptr %77, align 8, !tbaa !35
  %139 = getelementptr inbounds double, ptr %137, i64 %138
  store double %129, ptr %139, align 8, !tbaa !21
  %140 = load ptr, ptr %98, align 8, !tbaa !19
  %141 = getelementptr inbounds double, ptr %140, i64 %138
  store double %129, ptr %141, align 8, !tbaa !21
  %142 = add nsw i64 %138, 1
  store i64 %142, ptr %77, align 8, !tbaa !35
  %143 = add nsw i64 %.0486550, 1
  br label %.thread511

.lr.ph534.preheader:                              ; preds = %102
  %144 = load i64, ptr %78, align 8, !tbaa !36
  %145 = add nsw i64 %144, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %145, ptr noundef nonnull %82, ptr noundef %9)
  %146 = load i64, ptr %78, align 8, !tbaa !36
  %147 = add nsw i64 %146, 1
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %83, i64 noundef %147, i64 noundef %0, ptr noundef %9)
  %148 = load i64, ptr %78, align 8, !tbaa !36
  %149 = add nsw i64 %148, 1
  %150 = mul nsw i64 %149, %0
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %84, i64 noundef %150, i64 noundef %0, ptr noundef %9)
  %151 = load i64, ptr %78, align 8, !tbaa !36
  %152 = add nsw i64 %151, 1
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %85, i64 noundef %152, i64 noundef %0, ptr noundef %9)
  %153 = load i64, ptr %78, align 8, !tbaa !36
  %154 = add nsw i64 %153, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %154, ptr noundef nonnull %86, ptr noundef %9)
  %155 = load i64, ptr %78, align 8, !tbaa !36
  %156 = add nsw i64 %155, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %156, ptr noundef nonnull %87, ptr noundef %9)
  %157 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %158 = load ptr, ptr %88, align 8, !tbaa !19
  %159 = load i64, ptr %78, align 8, !tbaa !36
  %160 = getelementptr inbounds double, ptr %158, i64 %159
  store double %157, ptr %160, align 8, !tbaa !21
  %161 = load ptr, ptr %88, align 8, !tbaa !19
  %162 = getelementptr inbounds double, ptr %161, i64 %159
  %163 = load double, ptr %162, align 8, !tbaa !21
  %164 = fadd double %163, 0.000000e+00
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef %0, ptr noundef nonnull %16, ptr noundef %9)
  %165 = load i64, ptr %78, align 8, !tbaa !36
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %83, i64 noundef %165, ptr noundef %9)
  %166 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %22, ptr noundef %9)
  %167 = fadd double %164, %166
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %0, double noundef 1.000000e+01, ptr noundef nonnull %12, ptr noundef %9)
  %168 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %169 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %168, ptr noundef %9)
  %170 = fmul double %169, %5
  br label %.lr.ph534

.lr.ph534:                                        ; preds = %.lr.ph534.preheader, %.lr.ph534
  %.1533 = phi i64 [ %171, %.lr.ph534 ], [ 0, %.lr.ph534.preheader ]
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %0, double noundef %170, ptr noundef nonnull %12, i64 noundef %.1533, ptr noundef %9)
  %171 = add nuw nsw i64 %.1533, 1
  %exitcond593.not = icmp eq i64 %171, %0
  br i1 %exitcond593.not, label %.preheader516.lr.ph, label %.lr.ph534, !llvm.loop !37

.preheader516.lr.ph:                              ; preds = %.lr.ph534
  %172 = load i64, ptr %78, align 8, !tbaa !36
  %173 = mul nsw i64 %172, %0
  call void @_ZN11alglib_impl11rmatrixcopyEllPKNS_9ae_matrixEllPS0_llPNS_8ae_stateE(i64 noundef %0, i64 noundef %0, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %84, i64 noundef %173, i64 noundef 0, ptr noundef %9)
  %174 = load ptr, ptr %89, align 8
  %175 = load ptr, ptr %90, align 8
  br label %.preheader516.us

.preheader516.us:                                 ; preds = %._crit_edge539.us, %.preheader516.lr.ph
  %.2542.us = phi i64 [ 0, %.preheader516.lr.ph ], [ %216, %._crit_edge539.us ]
  %.0478541.us = phi double [ %167, %.preheader516.lr.ph ], [ %.lcssa614, %._crit_edge539.us ]
  %176 = getelementptr inbounds double, ptr %174, i64 %.2542.us
  %177 = load double, ptr %176, align 8, !tbaa !21
  %178 = fmul double %177, 5.000000e-01
  %179 = getelementptr inbounds ptr, ptr %175, i64 %.2542.us
  %180 = load ptr, ptr %179, align 8, !tbaa !20
  br i1 %101, label %._crit_edge539.us.unr-lcssa, label %.preheader516.us.new

.preheader516.us.new:                             ; preds = %.preheader516.us, %.preheader516.us.new
  %.1472537.us = phi i64 [ %208, %.preheader516.us.new ], [ 0, %.preheader516.us ]
  %.1479536.us = phi double [ %207, %.preheader516.us.new ], [ %.0478541.us, %.preheader516.us ]
  %niter = phi i64 [ %niter.next.3, %.preheader516.us.new ], [ 0, %.preheader516.us ]
  %181 = getelementptr inbounds double, ptr %180, i64 %.1472537.us
  %182 = load double, ptr %181, align 8, !tbaa !21
  %183 = fmul double %178, %182
  %184 = getelementptr inbounds double, ptr %174, i64 %.1472537.us
  %185 = load double, ptr %184, align 8, !tbaa !21
  %186 = call double @llvm.fmuladd.f64(double %183, double %185, double %.1479536.us)
  %187 = or disjoint i64 %.1472537.us, 1
  %188 = getelementptr inbounds double, ptr %180, i64 %187
  %189 = load double, ptr %188, align 8, !tbaa !21
  %190 = fmul double %178, %189
  %191 = getelementptr inbounds double, ptr %174, i64 %187
  %192 = load double, ptr %191, align 8, !tbaa !21
  %193 = call double @llvm.fmuladd.f64(double %190, double %192, double %186)
  %194 = or disjoint i64 %.1472537.us, 2
  %195 = getelementptr inbounds double, ptr %180, i64 %194
  %196 = load double, ptr %195, align 8, !tbaa !21
  %197 = fmul double %178, %196
  %198 = getelementptr inbounds double, ptr %174, i64 %194
  %199 = load double, ptr %198, align 8, !tbaa !21
  %200 = call double @llvm.fmuladd.f64(double %197, double %199, double %193)
  %201 = or disjoint i64 %.1472537.us, 3
  %202 = getelementptr inbounds double, ptr %180, i64 %201
  %203 = load double, ptr %202, align 8, !tbaa !21
  %204 = fmul double %178, %203
  %205 = getelementptr inbounds double, ptr %174, i64 %201
  %206 = load double, ptr %205, align 8, !tbaa !21
  %207 = call double @llvm.fmuladd.f64(double %204, double %206, double %200)
  %208 = add nuw nsw i64 %.1472537.us, 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_edge539.us.unr-lcssa, label %.preheader516.us.new, !llvm.loop !38

._crit_edge539.us.unr-lcssa:                      ; preds = %.preheader516.us.new, %.preheader516.us
  %.lcssa614.ph = phi double [ poison, %.preheader516.us ], [ %207, %.preheader516.us.new ]
  %.1472537.us.unr = phi i64 [ 0, %.preheader516.us ], [ %208, %.preheader516.us.new ]
  %.1479536.us.unr = phi double [ %.0478541.us, %.preheader516.us ], [ %207, %.preheader516.us.new ]
  br i1 %lcmp.mod.not, label %._crit_edge539.us, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge539.us.unr-lcssa, %.epil.preheader
  %.1472537.us.epil = phi i64 [ %215, %.epil.preheader ], [ %.1472537.us.unr, %._crit_edge539.us.unr-lcssa ]
  %.1479536.us.epil = phi double [ %214, %.epil.preheader ], [ %.1479536.us.unr, %._crit_edge539.us.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge539.us.unr-lcssa ]
  %209 = getelementptr inbounds double, ptr %180, i64 %.1472537.us.epil
  %210 = load double, ptr %209, align 8, !tbaa !21
  %211 = fmul double %178, %210
  %212 = getelementptr inbounds double, ptr %174, i64 %.1472537.us.epil
  %213 = load double, ptr %212, align 8, !tbaa !21
  %214 = call double @llvm.fmuladd.f64(double %211, double %213, double %.1479536.us.epil)
  %215 = add nuw nsw i64 %.1472537.us.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_edge539.us, label %.epil.preheader, !llvm.loop !39

._crit_edge539.us:                                ; preds = %.epil.preheader, %._crit_edge539.us.unr-lcssa
  %.lcssa614 = phi double [ %.lcssa614.ph, %._crit_edge539.us.unr-lcssa ], [ %214, %.epil.preheader ]
  %216 = add nuw nsw i64 %.2542.us, 1
  %exitcond595.not = icmp eq i64 %216, %0
  br i1 %exitcond595.not, label %.lr.ph547, label %.preheader516.us, !llvm.loop !41

.lr.ph547:                                        ; preds = %._crit_edge539.us, %.lr.ph547
  %.3546 = phi i64 [ %236, %.lr.ph547 ], [ 0, %._crit_edge539.us ]
  %.2480545 = phi double [ %235, %.lr.ph547 ], [ %.lcssa614, %._crit_edge539.us ]
  %217 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %218 = fmul double %217, 3.300000e-01
  %219 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %218, ptr noundef %9)
  %220 = fmul double %219, %6
  %221 = load ptr, ptr %91, align 8, !tbaa !19
  %222 = load i64, ptr %78, align 8, !tbaa !36
  %223 = getelementptr inbounds ptr, ptr %221, i64 %222
  %224 = load ptr, ptr %223, align 8, !tbaa !20
  %225 = getelementptr inbounds double, ptr %224, i64 %.3546
  store double %220, ptr %225, align 8, !tbaa !21
  %226 = load ptr, ptr %91, align 8, !tbaa !19
  %227 = getelementptr inbounds ptr, ptr %226, i64 %222
  %228 = load ptr, ptr %227, align 8, !tbaa !20
  %229 = getelementptr inbounds double, ptr %228, i64 %.3546
  %230 = load double, ptr %229, align 8, !tbaa !21
  %231 = load ptr, ptr %89, align 8, !tbaa !19
  %232 = getelementptr inbounds double, ptr %231, i64 %.3546
  %233 = load double, ptr %232, align 8, !tbaa !21
  %234 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %233, double noundef 4.000000e+00, ptr noundef %9)
  %235 = call double @llvm.fmuladd.f64(double %230, double %234, double %.2480545)
  %236 = add nuw nsw i64 %.3546, 1
  %exitcond596.not = icmp eq i64 %236, %0
  br i1 %exitcond596.not, label %._crit_edge548, label %.lr.ph547, !llvm.loop !42

._crit_edge548:                                   ; preds = %.lr.ph547
  %237 = load ptr, ptr %92, align 8, !tbaa !19
  %238 = load i64, ptr %78, align 8, !tbaa !36
  %239 = getelementptr inbounds double, ptr %237, i64 %238
  store double %235, ptr %239, align 8, !tbaa !21
  %240 = load ptr, ptr %93, align 8, !tbaa !19
  %241 = getelementptr inbounds double, ptr %240, i64 %238
  store double %235, ptr %241, align 8, !tbaa !21
  %242 = add nsw i64 %238, 1
  store i64 %242, ptr %78, align 8, !tbaa !36
  %243 = add nsw i64 %.0486550, 1
  br label %.thread511

.thread511:                                       ; preds = %102, %116, %111, %105, %128, %._crit_edge548
  %.3489 = phi i64 [ %243, %._crit_edge548 ], [ %143, %128 ], [ %.0486550, %105 ], [ %.0486550, %111 ], [ %127, %116 ], [ %.0486550, %102 ]
  %244 = icmp slt i64 %.3489, %2
  %245 = icmp slt i64 %103, %79
  %or.cond = select i1 %244, i1 %245, i1 false
  br i1 %or.cond, label %102, label %.critedge, !llvm.loop !43

.critedge:                                        ; preds = %.thread511, %60
  %246 = add nsw i64 %3, 1
  %247 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef %246, ptr noundef %9)
  %248 = sub nsw i64 %3, %247
  %249 = add nsw i64 %248, 1
  %250 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef %249, ptr noundef %9)
  %.not495.not554 = icmp sgt i64 %247, 0
  br i1 %.not495.not554, label %.lr.ph556, label %.preheader515

.lr.ph556:                                        ; preds = %.critedge
  %251 = getelementptr inbounds i8, ptr %8, i64 928
  %252 = getelementptr inbounds i8, ptr %8, i64 992
  %253 = getelementptr inbounds i8, ptr %22, i64 56
  br label %259

.preheader515:                                    ; preds = %296, %.critedge
  %.not496.not557 = icmp sgt i64 %250, 0
  br i1 %.not496.not557, label %.lr.ph559, label %.preheader514

.lr.ph559:                                        ; preds = %.preheader515
  %254 = getelementptr inbounds i8, ptr %8, i64 1000
  %255 = getelementptr inbounds i8, ptr %8, i64 1080
  %256 = getelementptr inbounds i8, ptr %8, i64 1144
  %257 = getelementptr inbounds i8, ptr %8, i64 1136
  %258 = getelementptr inbounds i8, ptr %8, i64 1200
  br label %314

259:                                              ; preds = %.lr.ph556, %296
  %.2476555 = phi i64 [ 0, %.lr.ph556 ], [ %297, %296 ]
  %260 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef %0, ptr noundef %9)
  %261 = load ptr, ptr %251, align 8, !tbaa !19
  %262 = getelementptr inbounds double, ptr %261, i64 %260
  %263 = load double, ptr %262, align 8, !tbaa !21
  %264 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isneginfEdPNS_8ae_stateE(double noundef %263, ptr noundef %9)
  br i1 %264, label %265, label %296

265:                                              ; preds = %259
  %266 = load ptr, ptr %252, align 8, !tbaa !19
  %267 = getelementptr inbounds double, ptr %266, i64 %260
  %268 = load double, ptr %267, align 8, !tbaa !21
  %269 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isposinfEdPNS_8ae_stateE(double noundef %268, ptr noundef %9)
  br i1 %269, label %270, label %296

270:                                              ; preds = %265
  %271 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef 3, ptr noundef %9)
  %272 = and i64 %271, -3
  %273 = icmp eq i64 %272, 0
  %274 = load ptr, ptr %253, align 8, !tbaa !19
  %275 = getelementptr inbounds double, ptr %274, i64 %260
  %276 = load double, ptr %275, align 8, !tbaa !21
  %277 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %278 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %277, ptr noundef %9)
  %279 = fsub double %276, %278
  %280 = load double, ptr %71, align 8, !tbaa !30
  %281 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %273, double noundef %279, double noundef %280, ptr noundef %9)
  %282 = load ptr, ptr %251, align 8, !tbaa !19
  %283 = getelementptr inbounds double, ptr %282, i64 %260
  store double %281, ptr %283, align 8, !tbaa !21
  %284 = add i64 %271, -1
  %285 = icmp ult i64 %284, 2
  %286 = load ptr, ptr %253, align 8, !tbaa !19
  %287 = getelementptr inbounds double, ptr %286, i64 %260
  %288 = load double, ptr %287, align 8, !tbaa !21
  %289 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %290 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %289, ptr noundef %9)
  %291 = fadd double %288, %290
  %292 = load double, ptr %74, align 8, !tbaa !34
  %293 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %285, double noundef %291, double noundef %292, ptr noundef %9)
  %294 = load ptr, ptr %252, align 8, !tbaa !19
  %295 = getelementptr inbounds double, ptr %294, i64 %260
  store double %293, ptr %295, align 8, !tbaa !21
  br label %296

296:                                              ; preds = %259, %265, %270
  %297 = add nuw nsw i64 %.2476555, 1
  %exitcond597.not = icmp eq i64 %297, %247
  br i1 %exitcond597.not, label %.preheader515, label %259, !llvm.loop !44

.preheader514:                                    ; preds = %314, %.preheader515
  %298 = sub i64 %250, %248
  %.not497581 = icmp sgt i64 %298, -1
  br i1 %.not497581, label %._crit_edge584, label %.lr.ph583

.lr.ph583:                                        ; preds = %.preheader514
  %299 = getelementptr inbounds i8, ptr %8, i64 1216
  %300 = getelementptr inbounds i8, ptr %8, i64 1280
  %301 = getelementptr inbounds i8, ptr %8, i64 1360
  %302 = getelementptr inbounds i8, ptr %8, i64 1440
  %303 = getelementptr inbounds i8, ptr %8, i64 1520
  %304 = getelementptr inbounds i8, ptr %8, i64 1584
  %305 = getelementptr inbounds i8, ptr %8, i64 1272
  %306 = getelementptr inbounds i8, ptr %22, i64 56
  %307 = getelementptr inbounds i8, ptr %12, i64 72
  %308 = getelementptr inbounds i8, ptr %8, i64 1512
  %309 = getelementptr inbounds i8, ptr %8, i64 1576
  %310 = getelementptr inbounds i8, ptr %8, i64 1640
  %311 = add i64 %250, %247
  %312 = sub i64 %3, %311
  %.pre = load i64, ptr %78, align 8, !tbaa !36
  %xtraiter619 = and i64 %0, 3
  %313 = icmp ult i64 %0, 4
  %unroll_iter623 = and i64 %0, 9223372036854775804
  %lcmp.mod621.not = icmp eq i64 %xtraiter619, 0
  br label %346

314:                                              ; preds = %.lr.ph559, %314
  %.0484558 = phi i64 [ 0, %.lr.ph559 ], [ %345, %314 ]
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef %0, ptr noundef nonnull %16, ptr noundef %9)
  %315 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %22, ptr noundef %9)
  %316 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef 3, ptr noundef %9)
  %317 = load i64, ptr %77, align 8, !tbaa !35
  %318 = add nsw i64 %317, 1
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %254, i64 noundef %318, i64 noundef %0, ptr noundef %9)
  %319 = load i64, ptr %77, align 8, !tbaa !35
  %320 = add nsw i64 %319, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %320, ptr noundef nonnull %255, ptr noundef %9)
  %321 = load i64, ptr %77, align 8, !tbaa !35
  %322 = add nsw i64 %321, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %322, ptr noundef nonnull %256, ptr noundef %9)
  %323 = load i64, ptr %77, align 8, !tbaa !35
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %254, i64 noundef %323, ptr noundef %9)
  %324 = and i64 %316, -3
  %325 = icmp eq i64 %324, 0
  %326 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %327 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %326, ptr noundef %9)
  %328 = fsub double %315, %327
  %329 = load double, ptr %71, align 8, !tbaa !30
  %330 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %325, double noundef %328, double noundef %329, ptr noundef %9)
  %331 = load ptr, ptr %257, align 8, !tbaa !19
  %332 = load i64, ptr %77, align 8, !tbaa !35
  %333 = getelementptr inbounds double, ptr %331, i64 %332
  store double %330, ptr %333, align 8, !tbaa !21
  %334 = add i64 %316, -1
  %335 = icmp ult i64 %334, 2
  %336 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %337 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %336, ptr noundef %9)
  %338 = fadd double %315, %337
  %339 = load double, ptr %74, align 8, !tbaa !34
  %340 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %335, double noundef %338, double noundef %339, ptr noundef %9)
  %341 = load ptr, ptr %258, align 8, !tbaa !19
  %342 = load i64, ptr %77, align 8, !tbaa !35
  %343 = getelementptr inbounds double, ptr %341, i64 %342
  store double %340, ptr %343, align 8, !tbaa !21
  %344 = add nsw i64 %342, 1
  store i64 %344, ptr %77, align 8, !tbaa !35
  %345 = add nuw nsw i64 %.0484558, 1
  %exitcond598.not = icmp eq i64 %345, %250
  br i1 %exitcond598.not, label %.preheader514, label %314, !llvm.loop !45

346:                                              ; preds = %.lr.ph583, %._crit_edge579
  %347 = phi i64 [ %.pre, %.lr.ph583 ], [ %463, %._crit_edge579 ]
  %.1485582 = phi i64 [ 0, %.lr.ph583 ], [ %464, %._crit_edge579 ]
  %348 = add nsw i64 %347, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %348, ptr noundef nonnull %299, ptr noundef %9)
  %349 = load i64, ptr %78, align 8, !tbaa !36
  %350 = add nsw i64 %349, 1
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %300, i64 noundef %350, i64 noundef %0, ptr noundef %9)
  %351 = load i64, ptr %78, align 8, !tbaa !36
  %352 = add nsw i64 %351, 1
  %353 = mul nsw i64 %352, %0
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %301, i64 noundef %353, i64 noundef %0, ptr noundef %9)
  %354 = load i64, ptr %78, align 8, !tbaa !36
  %355 = add nsw i64 %354, 1
  call void @_ZN11alglib_impl17rmatrixgrowrowstoEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %302, i64 noundef %355, i64 noundef %0, ptr noundef %9)
  %356 = load i64, ptr %78, align 8, !tbaa !36
  %357 = add nsw i64 %356, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %357, ptr noundef nonnull %303, ptr noundef %9)
  %358 = load i64, ptr %78, align 8, !tbaa !36
  %359 = add nsw i64 %358, 1
  call void @_ZN11alglib_impl6rgrowvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %359, ptr noundef nonnull %304, ptr noundef %9)
  %360 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %361 = load ptr, ptr %305, align 8, !tbaa !19
  %362 = load i64, ptr %78, align 8, !tbaa !36
  %363 = getelementptr inbounds double, ptr %361, i64 %362
  store double %360, ptr %363, align 8, !tbaa !21
  %364 = load ptr, ptr %305, align 8, !tbaa !19
  %365 = getelementptr inbounds double, ptr %364, i64 %362
  %366 = load double, ptr %365, align 8, !tbaa !21
  %367 = fadd double %366, 0.000000e+00
  call void @_ZN11alglib_impl12hqrndnormalvEPNS_10hqrndstateElPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef %0, ptr noundef nonnull %16, ptr noundef %9)
  %368 = load i64, ptr %78, align 8, !tbaa !36
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %300, i64 noundef %368, ptr noundef %9)
  %369 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %22, ptr noundef %9)
  %370 = fadd double %367, %369
  call void @_ZN11alglib_impl16spdmatrixrndcondEldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %0, double noundef 1.000000e+01, ptr noundef nonnull %12, ptr noundef %9)
  %371 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %372 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %371, ptr noundef %9)
  %373 = fmul double %372, %5
  br i1 %81, label %.lr.ph563, label %._crit_edge564.thread

._crit_edge564.thread:                            ; preds = %346
  %374 = load i64, ptr %78, align 8, !tbaa !36
  %375 = mul nsw i64 %374, %0
  call void @_ZN11alglib_impl11rmatrixcopyEllPKNS_9ae_matrixEllPS0_llPNS_8ae_stateE(i64 noundef %0, i64 noundef %0, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %301, i64 noundef %375, i64 noundef 0, ptr noundef %9)
  br label %._crit_edge579

.lr.ph563:                                        ; preds = %346, %.lr.ph563
  %.4561 = phi i64 [ %376, %.lr.ph563 ], [ 0, %346 ]
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %0, double noundef %373, ptr noundef nonnull %12, i64 noundef %.4561, ptr noundef %9)
  %376 = add nuw nsw i64 %.4561, 1
  %exitcond599.not = icmp eq i64 %376, %0
  br i1 %exitcond599.not, label %._crit_edge564, label %.lr.ph563, !llvm.loop !46

._crit_edge564:                                   ; preds = %.lr.ph563
  %377 = load i64, ptr %78, align 8, !tbaa !36
  %378 = mul nsw i64 %377, %0
  call void @_ZN11alglib_impl11rmatrixcopyEllPKNS_9ae_matrixEllPS0_llPNS_8ae_stateE(i64 noundef %0, i64 noundef %0, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %301, i64 noundef %378, i64 noundef 0, ptr noundef %9)
  br i1 %81, label %.preheader.lr.ph, label %._crit_edge579

.preheader.lr.ph:                                 ; preds = %._crit_edge564
  %379 = load ptr, ptr %306, align 8
  %380 = load ptr, ptr %307, align 8
  br label %.preheader.us

.preheader.us:                                    ; preds = %._crit_edge569.us, %.preheader.lr.ph
  %.5573.us = phi i64 [ 0, %.preheader.lr.ph ], [ %421, %._crit_edge569.us ]
  %.3481572.us = phi double [ %370, %.preheader.lr.ph ], [ %.lcssa, %._crit_edge569.us ]
  %381 = getelementptr inbounds double, ptr %379, i64 %.5573.us
  %382 = load double, ptr %381, align 8, !tbaa !21
  %383 = fmul double %382, 5.000000e-01
  %384 = getelementptr inbounds ptr, ptr %380, i64 %.5573.us
  %385 = load ptr, ptr %384, align 8, !tbaa !20
  br i1 %313, label %._crit_edge569.us.unr-lcssa, label %.preheader.us.new

.preheader.us.new:                                ; preds = %.preheader.us, %.preheader.us.new
  %.2473567.us = phi i64 [ %413, %.preheader.us.new ], [ 0, %.preheader.us ]
  %.4482566.us = phi double [ %412, %.preheader.us.new ], [ %.3481572.us, %.preheader.us ]
  %niter624 = phi i64 [ %niter624.next.3, %.preheader.us.new ], [ 0, %.preheader.us ]
  %386 = getelementptr inbounds double, ptr %385, i64 %.2473567.us
  %387 = load double, ptr %386, align 8, !tbaa !21
  %388 = fmul double %383, %387
  %389 = getelementptr inbounds double, ptr %379, i64 %.2473567.us
  %390 = load double, ptr %389, align 8, !tbaa !21
  %391 = call double @llvm.fmuladd.f64(double %388, double %390, double %.4482566.us)
  %392 = or disjoint i64 %.2473567.us, 1
  %393 = getelementptr inbounds double, ptr %385, i64 %392
  %394 = load double, ptr %393, align 8, !tbaa !21
  %395 = fmul double %383, %394
  %396 = getelementptr inbounds double, ptr %379, i64 %392
  %397 = load double, ptr %396, align 8, !tbaa !21
  %398 = call double @llvm.fmuladd.f64(double %395, double %397, double %391)
  %399 = or disjoint i64 %.2473567.us, 2
  %400 = getelementptr inbounds double, ptr %385, i64 %399
  %401 = load double, ptr %400, align 8, !tbaa !21
  %402 = fmul double %383, %401
  %403 = getelementptr inbounds double, ptr %379, i64 %399
  %404 = load double, ptr %403, align 8, !tbaa !21
  %405 = call double @llvm.fmuladd.f64(double %402, double %404, double %398)
  %406 = or disjoint i64 %.2473567.us, 3
  %407 = getelementptr inbounds double, ptr %385, i64 %406
  %408 = load double, ptr %407, align 8, !tbaa !21
  %409 = fmul double %383, %408
  %410 = getelementptr inbounds double, ptr %379, i64 %406
  %411 = load double, ptr %410, align 8, !tbaa !21
  %412 = call double @llvm.fmuladd.f64(double %409, double %411, double %405)
  %413 = add nuw nsw i64 %.2473567.us, 4
  %niter624.next.3 = add i64 %niter624, 4
  %niter624.ncmp.3 = icmp eq i64 %niter624.next.3, %unroll_iter623
  br i1 %niter624.ncmp.3, label %._crit_edge569.us.unr-lcssa, label %.preheader.us.new, !llvm.loop !47

._crit_edge569.us.unr-lcssa:                      ; preds = %.preheader.us.new, %.preheader.us
  %.lcssa.ph = phi double [ poison, %.preheader.us ], [ %412, %.preheader.us.new ]
  %.2473567.us.unr = phi i64 [ 0, %.preheader.us ], [ %413, %.preheader.us.new ]
  %.4482566.us.unr = phi double [ %.3481572.us, %.preheader.us ], [ %412, %.preheader.us.new ]
  br i1 %lcmp.mod621.not, label %._crit_edge569.us, label %.epil.preheader618

.epil.preheader618:                               ; preds = %._crit_edge569.us.unr-lcssa, %.epil.preheader618
  %.2473567.us.epil = phi i64 [ %420, %.epil.preheader618 ], [ %.2473567.us.unr, %._crit_edge569.us.unr-lcssa ]
  %.4482566.us.epil = phi double [ %419, %.epil.preheader618 ], [ %.4482566.us.unr, %._crit_edge569.us.unr-lcssa ]
  %epil.iter620 = phi i64 [ %epil.iter620.next, %.epil.preheader618 ], [ 0, %._crit_edge569.us.unr-lcssa ]
  %414 = getelementptr inbounds double, ptr %385, i64 %.2473567.us.epil
  %415 = load double, ptr %414, align 8, !tbaa !21
  %416 = fmul double %383, %415
  %417 = getelementptr inbounds double, ptr %379, i64 %.2473567.us.epil
  %418 = load double, ptr %417, align 8, !tbaa !21
  %419 = call double @llvm.fmuladd.f64(double %416, double %418, double %.4482566.us.epil)
  %420 = add nuw nsw i64 %.2473567.us.epil, 1
  %epil.iter620.next = add i64 %epil.iter620, 1
  %epil.iter620.cmp.not = icmp eq i64 %epil.iter620.next, %xtraiter619
  br i1 %epil.iter620.cmp.not, label %._crit_edge569.us, label %.epil.preheader618, !llvm.loop !48

._crit_edge569.us:                                ; preds = %.epil.preheader618, %._crit_edge569.us.unr-lcssa
  %.lcssa = phi double [ %.lcssa.ph, %._crit_edge569.us.unr-lcssa ], [ %419, %.epil.preheader618 ]
  %421 = add nuw nsw i64 %.5573.us, 1
  %exitcond601.not = icmp eq i64 %421, %0
  br i1 %exitcond601.not, label %.preheader513, label %.preheader.us, !llvm.loop !49

.preheader513:                                    ; preds = %._crit_edge569.us
  br i1 %81, label %.lr.ph578, label %._crit_edge579

.lr.ph578:                                        ; preds = %.preheader513, %.lr.ph578
  %.6577 = phi i64 [ %441, %.lr.ph578 ], [ 0, %.preheader513 ]
  %.5483576 = phi double [ %440, %.lr.ph578 ], [ %.lcssa, %.preheader513 ]
  %422 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %423 = fmul double %422, 3.300000e-01
  %424 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %423, ptr noundef %9)
  %425 = fmul double %424, %6
  %426 = load ptr, ptr %308, align 8, !tbaa !19
  %427 = load i64, ptr %78, align 8, !tbaa !36
  %428 = getelementptr inbounds ptr, ptr %426, i64 %427
  %429 = load ptr, ptr %428, align 8, !tbaa !20
  %430 = getelementptr inbounds double, ptr %429, i64 %.6577
  store double %425, ptr %430, align 8, !tbaa !21
  %431 = load ptr, ptr %308, align 8, !tbaa !19
  %432 = getelementptr inbounds ptr, ptr %431, i64 %427
  %433 = load ptr, ptr %432, align 8, !tbaa !20
  %434 = getelementptr inbounds double, ptr %433, i64 %.6577
  %435 = load double, ptr %434, align 8, !tbaa !21
  %436 = load ptr, ptr %306, align 8, !tbaa !19
  %437 = getelementptr inbounds double, ptr %436, i64 %.6577
  %438 = load double, ptr %437, align 8, !tbaa !21
  %439 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %438, double noundef 4.000000e+00, ptr noundef %9)
  %440 = call double @llvm.fmuladd.f64(double %435, double %439, double %.5483576)
  %441 = add nuw nsw i64 %.6577, 1
  %exitcond602.not = icmp eq i64 %441, %0
  br i1 %exitcond602.not, label %._crit_edge579, label %.lr.ph578, !llvm.loop !50

._crit_edge579:                                   ; preds = %.lr.ph578, %._crit_edge564, %._crit_edge564.thread, %.preheader513
  %.5483.lcssa = phi double [ %.lcssa, %.preheader513 ], [ %370, %._crit_edge564.thread ], [ %370, %._crit_edge564 ], [ %440, %.lr.ph578 ]
  %442 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %7, i64 noundef 3, ptr noundef %9)
  %443 = and i64 %442, -3
  %444 = icmp eq i64 %443, 0
  %445 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %446 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %445, ptr noundef %9)
  %447 = fsub double %.5483.lcssa, %446
  %448 = load double, ptr %71, align 8, !tbaa !30
  %449 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %444, double noundef %447, double noundef %448, ptr noundef %9)
  %450 = load ptr, ptr %309, align 8, !tbaa !19
  %451 = load i64, ptr %78, align 8, !tbaa !36
  %452 = getelementptr inbounds double, ptr %450, i64 %451
  store double %449, ptr %452, align 8, !tbaa !21
  %453 = add i64 %442, -1
  %454 = icmp ult i64 %453, 2
  %455 = call noundef double @_ZN11alglib_impl11hqrndnormalEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %7, ptr noundef %9)
  %456 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef %455, ptr noundef %9)
  %457 = fadd double %.5483.lcssa, %456
  %458 = load double, ptr %74, align 8, !tbaa !34
  %459 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %454, double noundef %457, double noundef %458, ptr noundef %9)
  %460 = load ptr, ptr %310, align 8, !tbaa !19
  %461 = load i64, ptr %78, align 8, !tbaa !36
  %462 = getelementptr inbounds double, ptr %460, i64 %461
  store double %459, ptr %462, align 8, !tbaa !21
  %463 = add nsw i64 %461, 1
  store i64 %463, ptr %78, align 8, !tbaa !36
  %464 = add nuw i64 %.1485582, 1
  %exitcond603.not = icmp eq i64 %464, %312
  br i1 %exitcond603.not, label %._crit_edge584, label %346, !llvm.loop !51

._crit_edge584:                                   ; preds = %._crit_edge579, %.preheader514
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %9)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  ret void
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl33_multiobjectivetestfunction_clearEPv(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree 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, !6, i64 480}
!10 = !{!"_ZTSN11alglib_impl26multiobjectivetestfunctionE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !12, i64 32, !11, i64 112, !12, i64 120, !12, i64 200, !11, i64 280, !15, i64 288, !15, i64 352, !15, i64 416, !6, i64 480, !12, i64 488, !15, i64 568, !12, i64 632, !12, i64 712, !12, i64 792, !15, i64 872, !15, i64 936, !12, i64 1000, !15, i64 1080, !15, i64 1144, !11, i64 1208, !15, i64 1216, !12, i64 1280, !12, i64 1360, !12, i64 1440, !15, i64 1520, !15, i64 1584, !11, i64 1648}
!11 = !{!"long", !7, i64 0}
!12 = !{!"_ZTSN11alglib_impl9ae_matrixE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !6, i64 32, !13, i64 40, !7, i64 72}
!13 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!14 = !{!"any pointer", !7, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_vectorE", !11, i64 0, !11, i64 8, !6, i64 16, !13, i64 24, !7, i64 56}
!16 = !{!10, !11, i64 0}
!17 = !{!10, !11, i64 16}
!18 = !{!10, !11, i64 24}
!19 = !{!7, !7, i64 0}
!20 = !{!14, !14, i64 0}
!21 = !{!22, !22, i64 0}
!22 = !{!"double", !7, i64 0}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = distinct !{!25, !24}
!26 = distinct !{!26, !24}
!27 = distinct !{!27, !24}
!28 = !{!10, !11, i64 112}
!29 = !{!10, !11, i64 280}
!30 = !{!31, !22, i64 24}
!31 = !{!"_ZTSN11alglib_impl8ae_stateE", !11, i64 0, !22, i64 8, !22, i64 16, !22, i64 24, !14, i64 32, !13, i64 40, !14, i64 72, !32, i64 80, !14, i64 88, !33, i64 96, !14, i64 104, !14, i64 112, !14, i64 120}
!32 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !7, i64 0}
!33 = !{!"long long", !7, i64 0}
!34 = !{!31, !22, i64 16}
!35 = !{!10, !11, i64 1208}
!36 = !{!10, !11, i64 1648}
!37 = distinct !{!37, !24}
!38 = distinct !{!38, !24}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.unroll.disable"}
!41 = distinct !{!41, !24}
!42 = distinct !{!42, !24}
!43 = distinct !{!43, !24}
!44 = distinct !{!44, !24}
!45 = distinct !{!45, !24}
!46 = distinct !{!46, !24}
!47 = distinct !{!47, !24}
!48 = distinct !{!48, !40}
!49 = distinct !{!49, !24}
!50 = distinct !{!50, !24}
!51 = distinct !{!51, !24}


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