; 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::minnsstate" = type { i64, i64, double, i64, i8, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_matrix", i64, i64, i64, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, i8, i8, %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::hqrndstate", double, i64, double, double, double, double, double, double, double, double, i64, double, i64, i64, i64, i64, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minnsqp", %"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", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64, double, double, i64 }
%"struct.alglib_impl::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }
%"struct.alglib_impl::minnsqp" = type { double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::snnlssolver" }
%"struct.alglib_impl::snnlssolver" = type { i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, %"struct.alglib_impl::ae_vector", %"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_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%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.1761 = external hidden unnamed_addr constant [38 x i8], align 1

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl14minnsiterationEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1) #2 {
  %3 = alloca i1, align 1
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i64, align 8
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca i8, align 1
  %18 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  %19 = load ptr, ptr %4, align 8, !tbaa !5
  %20 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %19, i32 0, i32 24
  %21 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %20, i32 0, i32 0
  %22 = load i32, ptr %21, align 8, !tbaa !9
  %23 = icmp sge i32 %22, 0
  br i1 %23, label %24, label %102

24:                                               ; preds = %2
  %25 = load ptr, ptr %4, align 8, !tbaa !5
  %26 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %25, i32 0, i32 24
  %27 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %26, i32 0, i32 1
  %28 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %29 = load ptr, ptr %28, align 8, !tbaa !22
  %30 = getelementptr inbounds i64, ptr %29, i64 0
  %31 = load i64, ptr %30, align 8, !tbaa !23
  store i64 %31, ptr %6, align 8, !tbaa !23
  %32 = load ptr, ptr %4, align 8, !tbaa !5
  %33 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %32, i32 0, i32 24
  %34 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %33, i32 0, i32 1
  %35 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %36 = load ptr, ptr %35, align 8, !tbaa !22
  %37 = getelementptr inbounds i64, ptr %36, i64 1
  %38 = load i64, ptr %37, align 8, !tbaa !23
  store i64 %38, ptr %7, align 8, !tbaa !23
  %39 = load ptr, ptr %4, align 8, !tbaa !5
  %40 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %39, i32 0, i32 24
  %41 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %40, i32 0, i32 1
  %42 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %43 = load ptr, ptr %42, align 8, !tbaa !22
  %44 = getelementptr inbounds i64, ptr %43, i64 2
  %45 = load i64, ptr %44, align 8, !tbaa !23
  store i64 %45, ptr %8, align 8, !tbaa !23
  %46 = load ptr, ptr %4, align 8, !tbaa !5
  %47 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %46, i32 0, i32 24
  %48 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %47, i32 0, i32 1
  %49 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %48, i32 0, i32 4
  %50 = load ptr, ptr %49, align 8, !tbaa !22
  %51 = getelementptr inbounds i64, ptr %50, i64 3
  %52 = load i64, ptr %51, align 8, !tbaa !23
  store i64 %52, ptr %9, align 8, !tbaa !23
  %53 = load ptr, ptr %4, align 8, !tbaa !5
  %54 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %53, i32 0, i32 24
  %55 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %54, i32 0, i32 1
  %56 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %55, i32 0, i32 4
  %57 = load ptr, ptr %56, align 8, !tbaa !22
  %58 = getelementptr inbounds i64, ptr %57, i64 4
  %59 = load i64, ptr %58, align 8, !tbaa !23
  store i64 %59, ptr %10, align 8, !tbaa !23
  %60 = load ptr, ptr %4, align 8, !tbaa !5
  %61 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %60, i32 0, i32 24
  %62 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %61, i32 0, i32 1
  %63 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %62, i32 0, i32 4
  %64 = load ptr, ptr %63, align 8, !tbaa !22
  %65 = getelementptr inbounds i64, ptr %64, i64 5
  %66 = load i64, ptr %65, align 8, !tbaa !23
  store i64 %66, ptr %11, align 8, !tbaa !23
  %67 = load ptr, ptr %4, align 8, !tbaa !5
  %68 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %67, i32 0, i32 24
  %69 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %68, i32 0, i32 1
  %70 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %69, i32 0, i32 4
  %71 = load ptr, ptr %70, align 8, !tbaa !22
  %72 = getelementptr inbounds i64, ptr %71, i64 6
  %73 = load i64, ptr %72, align 8, !tbaa !23
  store i64 %73, ptr %12, align 8, !tbaa !23
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %74, i32 0, i32 24
  %76 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %75, i32 0, i32 1
  %77 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %76, i32 0, i32 4
  %78 = load ptr, ptr %77, align 8, !tbaa !22
  %79 = getelementptr inbounds i64, ptr %78, i64 7
  %80 = load i64, ptr %79, align 8, !tbaa !23
  store i64 %80, ptr %13, align 8, !tbaa !23
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %81, i32 0, i32 24
  %83 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %82, i32 0, i32 3
  %84 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %83, i32 0, i32 4
  %85 = load ptr, ptr %84, align 8, !tbaa !22
  %86 = getelementptr inbounds double, ptr %85, i64 0
  %87 = load double, ptr %86, align 8, !tbaa !24
  store double %87, ptr %14, align 8, !tbaa !24
  %88 = load ptr, ptr %4, align 8, !tbaa !5
  %89 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %88, i32 0, i32 24
  %90 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %89, i32 0, i32 3
  %91 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %90, i32 0, i32 4
  %92 = load ptr, ptr %91, align 8, !tbaa !22
  %93 = getelementptr inbounds double, ptr %92, i64 1
  %94 = load double, ptr %93, align 8, !tbaa !24
  store double %94, ptr %15, align 8, !tbaa !24
  %95 = load ptr, ptr %4, align 8, !tbaa !5
  %96 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %95, i32 0, i32 24
  %97 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %96, i32 0, i32 3
  %98 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %97, i32 0, i32 4
  %99 = load ptr, ptr %98, align 8, !tbaa !22
  %100 = getelementptr inbounds double, ptr %99, i64 2
  %101 = load double, ptr %100, align 8, !tbaa !24
  store double %101, ptr %16, align 8, !tbaa !24
  br label %103

102:                                              ; preds = %2
  store i64 359, ptr %6, align 8, !tbaa !23
  store i64 -58, ptr %7, align 8, !tbaa !23
  store i64 -919, ptr %8, align 8, !tbaa !23
  store i64 -909, ptr %9, align 8, !tbaa !23
  store i64 81, ptr %10, align 8, !tbaa !23
  store i64 255, ptr %11, align 8, !tbaa !23
  store i64 74, ptr %12, align 8, !tbaa !23
  store i64 -788, ptr %13, align 8, !tbaa !23
  store double 8.090000e+02, ptr %14, align 8, !tbaa !24
  store double 2.050000e+02, ptr %15, align 8, !tbaa !24
  store double -8.380000e+02, ptr %16, align 8, !tbaa !24
  br label %103

103:                                              ; preds = %102, %24
  %104 = load ptr, ptr %4, align 8, !tbaa !5
  %105 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %104, i32 0, i32 24
  %106 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %105, i32 0, i32 0
  %107 = load i32, ptr %106, align 8, !tbaa !9
  %108 = icmp eq i32 %107, 0
  br i1 %108, label %109, label %110

109:                                              ; preds = %103
  br label %280

110:                                              ; preds = %103
  %111 = load ptr, ptr %4, align 8, !tbaa !5
  %112 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %111, i32 0, i32 24
  %113 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %112, i32 0, i32 0
  %114 = load i32, ptr %113, align 8, !tbaa !9
  %115 = icmp eq i32 %114, 1
  br i1 %115, label %116, label %117

116:                                              ; preds = %110
  br label %419

117:                                              ; preds = %110
  %118 = load ptr, ptr %4, align 8, !tbaa !5
  %119 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %118, i32 0, i32 24
  %120 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %119, i32 0, i32 0
  %121 = load i32, ptr %120, align 8, !tbaa !9
  %122 = icmp eq i32 %121, 2
  br i1 %122, label %123, label %124

123:                                              ; preds = %117
  br label %445

124:                                              ; preds = %117
  %125 = load ptr, ptr %4, align 8, !tbaa !5
  %126 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %125, i32 0, i32 24
  %127 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %126, i32 0, i32 0
  %128 = load i32, ptr %127, align 8, !tbaa !9
  %129 = icmp eq i32 %128, 3
  br i1 %129, label %130, label %131

130:                                              ; preds = %124
  br label %525

131:                                              ; preds = %124
  %132 = load ptr, ptr %4, align 8, !tbaa !5
  %133 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %132, i32 0, i32 82
  store double 0.000000e+00, ptr %133, align 8, !tbaa !25
  %134 = load ptr, ptr %4, align 8, !tbaa !5
  %135 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %134, i32 0, i32 83
  store double 0.000000e+00, ptr %135, align 8, !tbaa !26
  %136 = load ptr, ptr %4, align 8, !tbaa !5
  %137 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %136, i32 0, i32 81
  store i64 0, ptr %137, align 8, !tbaa !27
  %138 = load ptr, ptr %4, align 8, !tbaa !5
  %139 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %138, i32 0, i32 76
  store i64 0, ptr %139, align 8, !tbaa !28
  %140 = load ptr, ptr %4, align 8, !tbaa !5
  %141 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %140, i32 0, i32 77
  store i64 0, ptr %141, align 8, !tbaa !29
  %142 = load ptr, ptr %4, align 8, !tbaa !5
  %143 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %142, i32 0, i32 78
  store i64 0, ptr %143, align 8, !tbaa !30
  %144 = load ptr, ptr %4, align 8, !tbaa !5
  %145 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %144, i32 0, i32 79
  store i64 0, ptr %145, align 8, !tbaa !31
  %146 = load ptr, ptr %4, align 8, !tbaa !5
  %147 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %146, i32 0, i32 80
  store i64 0, ptr %147, align 8, !tbaa !32
  %148 = load ptr, ptr %4, align 8, !tbaa !5
  %149 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %148, i32 0, i32 57
  store i8 0, ptr %149, align 8, !tbaa !33
  %150 = load ptr, ptr %4, align 8, !tbaa !5
  %151 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %150, i32 0, i32 84
  store i64 0, ptr %151, align 8, !tbaa !34
  %152 = load ptr, ptr %4, align 8, !tbaa !5
  %153 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %152, i32 0, i32 1
  %154 = load i64, ptr %153, align 8, !tbaa !35
  store i64 %154, ptr %9, align 8, !tbaa !23
  %155 = load ptr, ptr %4, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %155, i32 0, i32 11
  %157 = load i64, ptr %156, align 8, !tbaa !36
  store i64 %157, ptr %10, align 8, !tbaa !23
  %158 = load ptr, ptr %4, align 8, !tbaa !5
  %159 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %158, i32 0, i32 12
  %160 = load i64, ptr %159, align 8, !tbaa !37
  store i64 %160, ptr %11, align 8, !tbaa !23
  %161 = load ptr, ptr %4, align 8, !tbaa !5
  %162 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %161, i32 0, i32 14
  %163 = load i64, ptr %162, align 8, !tbaa !38
  store i64 %163, ptr %12, align 8, !tbaa !23
  %164 = load ptr, ptr %4, align 8, !tbaa !5
  %165 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %164, i32 0, i32 15
  %166 = load i64, ptr %165, align 8, !tbaa !39
  store i64 %166, ptr %13, align 8, !tbaa !23
  %167 = load ptr, ptr %4, align 8, !tbaa !5
  %168 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24minns_clearrequestfieldsEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef %167, ptr noundef %168)
  %169 = load ptr, ptr %4, align 8, !tbaa !5
  %170 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %169, i32 0, i32 0
  %171 = load i64, ptr %170, align 8, !tbaa !40
  %172 = icmp ne i64 %171, 0
  br i1 %172, label %173, label %174

173:                                              ; preds = %131
  br label %712

174:                                              ; preds = %131
  %175 = load ptr, ptr %4, align 8, !tbaa !5
  %176 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %175, i32 0, i32 5
  %177 = load double, ptr %176, align 8, !tbaa !41
  %178 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %177, double noundef 0.000000e+00)
  br i1 %178, label %179, label %205

179:                                              ; preds = %174
  %180 = load ptr, ptr %4, align 8, !tbaa !5
  %181 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %180, i32 0, i32 71
  %182 = load i64, ptr %9, align 8, !tbaa !23
  %183 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %181, i64 noundef %182, ptr noundef %183)
  %184 = load ptr, ptr %4, align 8, !tbaa !5
  %185 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %184, i32 0, i32 72
  %186 = load i64, ptr %12, align 8, !tbaa !23
  %187 = add nsw i64 1, %186
  %188 = load i64, ptr %13, align 8, !tbaa !23
  %189 = add nsw i64 %187, %188
  %190 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %185, i64 noundef %189, ptr noundef %190)
  %191 = load ptr, ptr %4, align 8, !tbaa !5
  %192 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %191, i32 0, i32 74
  %193 = load i64, ptr %12, align 8, !tbaa !23
  %194 = add nsw i64 1, %193
  %195 = load i64, ptr %13, align 8, !tbaa !23
  %196 = add nsw i64 %194, %195
  %197 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %192, i64 noundef %196, ptr noundef %197)
  %198 = load ptr, ptr %4, align 8, !tbaa !5
  %199 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %198, i32 0, i32 73
  %200 = load i64, ptr %12, align 8, !tbaa !23
  %201 = add nsw i64 1, %200
  %202 = load i64, ptr %13, align 8, !tbaa !23
  %203 = add nsw i64 %201, %202
  %204 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %199, i64 noundef %203, ptr noundef %204)
  br label %205

205:                                              ; preds = %179, %174
  %206 = load ptr, ptr %4, align 8, !tbaa !5
  %207 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %206, i32 0, i32 75
  %208 = load i64, ptr %9, align 8, !tbaa !23
  %209 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %207, i64 noundef %208, ptr noundef %209)
  %210 = load ptr, ptr %4, align 8, !tbaa !5
  %211 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %210, i32 0, i32 48
  %212 = load i64, ptr %9, align 8, !tbaa !23
  %213 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %211, i64 noundef %212, ptr noundef %213)
  %214 = load ptr, ptr %4, align 8, !tbaa !5
  %215 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %214, i32 0, i32 49
  %216 = load i64, ptr %9, align 8, !tbaa !23
  %217 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %215, i64 noundef %216, ptr noundef %217)
  %218 = load ptr, ptr %4, align 8, !tbaa !5
  %219 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %218, i32 0, i32 25
  %220 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %219, i32 0, i32 1
  %221 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %220, i64 noundef 14, ptr noundef %221)
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %222, i32 0, i32 25
  %224 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %223, i32 0, i32 2
  %225 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %224, i64 noundef 6, ptr noundef %225)
  %226 = load ptr, ptr %4, align 8, !tbaa !5
  %227 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %226, i32 0, i32 25
  %228 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %227, i32 0, i32 3
  %229 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %228, i64 noundef 11, ptr noundef %229)
  %230 = load ptr, ptr %4, align 8, !tbaa !5
  %231 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %230, i32 0, i32 25
  %232 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %231, i32 0, i32 0
  store i32 -1, ptr %232, align 8, !tbaa !42
  br label %233

233:                                              ; preds = %708, %205
  %234 = load ptr, ptr %4, align 8, !tbaa !5
  %235 = load ptr, ptr %5, align 8, !tbaa !5
  %236 = call noundef zeroext i1 @_ZN11alglib_implL18minns_agsiterationEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef %234, ptr noundef %235)
  br i1 %236, label %238, label %237

237:                                              ; preds = %233
  br label %709

238:                                              ; preds = %233
  %239 = load i64, ptr %9, align 8, !tbaa !23
  %240 = load ptr, ptr %4, align 8, !tbaa !5
  %241 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %240, i32 0, i32 17
  %242 = load ptr, ptr %4, align 8, !tbaa !5
  %243 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %242, i32 0, i32 75
  %244 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %239, ptr noundef %241, ptr noundef %243, ptr noundef %244)
  %245 = load ptr, ptr %4, align 8, !tbaa !5
  %246 = load ptr, ptr %4, align 8, !tbaa !5
  %247 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %246, i32 0, i32 17
  %248 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL20minns_unscalepointbcEPKNS_10minnsstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %245, ptr noundef %247, ptr noundef %248)
  %249 = load ptr, ptr %4, align 8, !tbaa !5
  %250 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %249, i32 0, i32 5
  %251 = load double, ptr %250, align 8, !tbaa !41
  %252 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %251, double noundef 0.000000e+00)
  br i1 %252, label %253, label %258

253:                                              ; preds = %238
  %254 = load ptr, ptr %4, align 8, !tbaa !5
  %255 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %254, i32 0, i32 21
  %256 = load i8, ptr %255, align 8, !tbaa !43, !range !44, !noundef !45
  %257 = trunc i8 %256 to i1
  br i1 %257, label %259, label %258

258:                                              ; preds = %253, %238
  br label %521

259:                                              ; preds = %253
  %260 = load ptr, ptr %4, align 8, !tbaa !5
  %261 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %260, i32 0, i32 21
  store i8 0, ptr %261, align 8, !tbaa !43
  %262 = load ptr, ptr %4, align 8, !tbaa !5
  %263 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %262, i32 0, i32 22
  store i8 1, ptr %263, align 1, !tbaa !46
  %264 = load ptr, ptr %4, align 8, !tbaa !5
  %265 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %264, i32 0, i32 71
  %266 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %265, i32 0, i32 4
  %267 = load ptr, ptr %266, align 8, !tbaa !22
  %268 = getelementptr inbounds double, ptr %267, i64 0
  %269 = load ptr, ptr %4, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %269, i32 0, i32 17
  %271 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %270, i32 0, i32 4
  %272 = load ptr, ptr %271, align 8, !tbaa !22
  %273 = getelementptr inbounds double, ptr %272, i64 0
  %274 = load i64, ptr %9, align 8, !tbaa !23
  %275 = sub nsw i64 %274, 1
  %276 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %275)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %268, i64 noundef 1, ptr noundef %273, i64 noundef 1, i64 noundef %276)
  %277 = load ptr, ptr %4, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %277, i32 0, i32 24
  %279 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %278, i32 0, i32 0
  store i32 0, ptr %279, align 8, !tbaa !9
  br label %715

280:                                              ; preds = %109
  %281 = load ptr, ptr %4, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %281, i32 0, i32 72
  %283 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %282, i32 0, i32 4
  %284 = load ptr, ptr %283, align 8, !tbaa !22
  %285 = getelementptr inbounds double, ptr %284, i64 0
  %286 = load ptr, ptr %4, align 8, !tbaa !5
  %287 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %286, i32 0, i32 19
  %288 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %287, i32 0, i32 4
  %289 = load ptr, ptr %288, align 8, !tbaa !22
  %290 = getelementptr inbounds double, ptr %289, i64 0
  %291 = load i64, ptr %12, align 8, !tbaa !23
  %292 = load i64, ptr %13, align 8, !tbaa !23
  %293 = add nsw i64 %291, %292
  %294 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %293)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %285, i64 noundef 1, ptr noundef %290, i64 noundef 1, i64 noundef %294)
  %295 = load ptr, ptr %4, align 8, !tbaa !5
  %296 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %295, i32 0, i32 78
  %297 = load i64, ptr %296, align 8, !tbaa !30
  %298 = add nsw i64 %297, 1
  %299 = load ptr, ptr %4, align 8, !tbaa !5
  %300 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %299, i32 0, i32 78
  store i64 %298, ptr %300, align 8, !tbaa !30
  store i64 0, ptr %8, align 8, !tbaa !23
  br label %301

301:                                              ; preds = %498, %280
  %302 = load i64, ptr %8, align 8, !tbaa !23
  %303 = load i64, ptr %9, align 8, !tbaa !23
  %304 = sub nsw i64 %303, 1
  %305 = icmp sgt i64 %302, %304
  br i1 %305, label %306, label %307

306:                                              ; preds = %301
  br label %501

307:                                              ; preds = %301
  %308 = load ptr, ptr %4, align 8, !tbaa !5
  %309 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %308, i32 0, i32 71
  %310 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %309, i32 0, i32 4
  %311 = load ptr, ptr %310, align 8, !tbaa !22
  %312 = load i64, ptr %8, align 8, !tbaa !23
  %313 = getelementptr inbounds double, ptr %311, i64 %312
  %314 = load double, ptr %313, align 8, !tbaa !24
  store double %314, ptr %14, align 8, !tbaa !24
  %315 = load double, ptr %14, align 8, !tbaa !24
  %316 = load ptr, ptr %4, align 8, !tbaa !5
  %317 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %316, i32 0, i32 5
  %318 = load double, ptr %317, align 8, !tbaa !41
  %319 = load ptr, ptr %4, align 8, !tbaa !5
  %320 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %319, i32 0, i32 6
  %321 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %320, i32 0, i32 4
  %322 = load ptr, ptr %321, align 8, !tbaa !22
  %323 = load i64, ptr %8, align 8, !tbaa !23
  %324 = getelementptr inbounds double, ptr %322, i64 %323
  %325 = load double, ptr %324, align 8, !tbaa !24
  %326 = fneg double %318
  %327 = call double @llvm.fmuladd.f64(double %326, double %325, double %315)
  store double %327, ptr %16, align 8, !tbaa !24
  %328 = load double, ptr %14, align 8, !tbaa !24
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %329, i32 0, i32 5
  %331 = load double, ptr %330, align 8, !tbaa !41
  %332 = load ptr, ptr %4, align 8, !tbaa !5
  %333 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %332, i32 0, i32 6
  %334 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %333, i32 0, i32 4
  %335 = load ptr, ptr %334, align 8, !tbaa !22
  %336 = load i64, ptr %8, align 8, !tbaa !23
  %337 = getelementptr inbounds double, ptr %335, i64 %336
  %338 = load double, ptr %337, align 8, !tbaa !24
  %339 = call double @llvm.fmuladd.f64(double %331, double %338, double %328)
  store double %339, ptr %15, align 8, !tbaa !24
  %340 = load ptr, ptr %4, align 8, !tbaa !5
  %341 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %340, i32 0, i32 9
  %342 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %341, i32 0, i32 4
  %343 = load ptr, ptr %342, align 8, !tbaa !22
  %344 = load i64, ptr %8, align 8, !tbaa !23
  %345 = getelementptr inbounds i8, ptr %343, i64 %344
  %346 = load i8, ptr %345, align 1, !tbaa !47, !range !44, !noundef !45
  %347 = trunc i8 %346 to i1
  br i1 %347, label %348, label %366

348:                                              ; preds = %307
  %349 = load double, ptr %16, align 8, !tbaa !24
  %350 = load ptr, ptr %4, align 8, !tbaa !5
  %351 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %350, i32 0, i32 7
  %352 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %351, i32 0, i32 4
  %353 = load ptr, ptr %352, align 8, !tbaa !22
  %354 = load i64, ptr %8, align 8, !tbaa !23
  %355 = getelementptr inbounds double, ptr %353, i64 %354
  %356 = load double, ptr %355, align 8, !tbaa !24
  %357 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %349, double noundef %356)
  br i1 %357, label %358, label %366

358:                                              ; preds = %348
  %359 = load ptr, ptr %4, align 8, !tbaa !5
  %360 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %359, i32 0, i32 7
  %361 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %360, i32 0, i32 4
  %362 = load ptr, ptr %361, align 8, !tbaa !22
  %363 = load i64, ptr %8, align 8, !tbaa !23
  %364 = getelementptr inbounds double, ptr %362, i64 %363
  %365 = load double, ptr %364, align 8, !tbaa !24
  store double %365, ptr %16, align 8, !tbaa !24
  br label %366

366:                                              ; preds = %358, %348, %307
  %367 = load ptr, ptr %4, align 8, !tbaa !5
  %368 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %367, i32 0, i32 10
  %369 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %368, i32 0, i32 4
  %370 = load ptr, ptr %369, align 8, !tbaa !22
  %371 = load i64, ptr %8, align 8, !tbaa !23
  %372 = getelementptr inbounds i8, ptr %370, i64 %371
  %373 = load i8, ptr %372, align 1, !tbaa !47, !range !44, !noundef !45
  %374 = trunc i8 %373 to i1
  br i1 %374, label %375, label %393

375:                                              ; preds = %366
  %376 = load double, ptr %15, align 8, !tbaa !24
  %377 = load ptr, ptr %4, align 8, !tbaa !5
  %378 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %377, i32 0, i32 8
  %379 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %378, i32 0, i32 4
  %380 = load ptr, ptr %379, align 8, !tbaa !22
  %381 = load i64, ptr %8, align 8, !tbaa !23
  %382 = getelementptr inbounds double, ptr %380, i64 %381
  %383 = load double, ptr %382, align 8, !tbaa !24
  %384 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %376, double noundef %383)
  br i1 %384, label %385, label %393

385:                                              ; preds = %375
  %386 = load ptr, ptr %4, align 8, !tbaa !5
  %387 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %386, i32 0, i32 8
  %388 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %387, i32 0, i32 4
  %389 = load ptr, ptr %388, align 8, !tbaa !22
  %390 = load i64, ptr %8, align 8, !tbaa !23
  %391 = getelementptr inbounds double, ptr %389, i64 %390
  %392 = load double, ptr %391, align 8, !tbaa !24
  store double %392, ptr %15, align 8, !tbaa !24
  br label %393

393:                                              ; preds = %385, %375, %366
  %394 = load double, ptr %16, align 8, !tbaa !24
  %395 = load double, ptr %15, align 8, !tbaa !24
  %396 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %394, double noundef %395)
  %397 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %396, ptr noundef @.str.1761, ptr noundef %397)
  %398 = load double, ptr %16, align 8, !tbaa !24
  %399 = load double, ptr %15, align 8, !tbaa !24
  %400 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %398, double noundef %399)
  br i1 %400, label %401, label %402

401:                                              ; preds = %393
  br label %489

402:                                              ; preds = %393
  %403 = load i64, ptr %9, align 8, !tbaa !23
  %404 = load ptr, ptr %4, align 8, !tbaa !5
  %405 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %404, i32 0, i32 71
  %406 = load ptr, ptr %4, align 8, !tbaa !5
  %407 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %406, i32 0, i32 17
  %408 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %403, ptr noundef %405, ptr noundef %407, ptr noundef %408)
  %409 = load double, ptr %16, align 8, !tbaa !24
  %410 = load ptr, ptr %4, align 8, !tbaa !5
  %411 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %410, i32 0, i32 17
  %412 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %411, i32 0, i32 4
  %413 = load ptr, ptr %412, align 8, !tbaa !22
  %414 = load i64, ptr %8, align 8, !tbaa !23
  %415 = getelementptr inbounds double, ptr %413, i64 %414
  store double %409, ptr %415, align 8, !tbaa !24
  %416 = load ptr, ptr %4, align 8, !tbaa !5
  %417 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %416, i32 0, i32 24
  %418 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %417, i32 0, i32 0
  store i32 1, ptr %418, align 8, !tbaa !9
  br label %715

419:                                              ; preds = %116
  %420 = load i64, ptr %12, align 8, !tbaa !23
  %421 = add nsw i64 1, %420
  %422 = load i64, ptr %13, align 8, !tbaa !23
  %423 = add nsw i64 %421, %422
  %424 = load ptr, ptr %4, align 8, !tbaa !5
  %425 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %424, i32 0, i32 19
  %426 = load ptr, ptr %4, align 8, !tbaa !5
  %427 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %426, i32 0, i32 74
  %428 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %423, ptr noundef %425, ptr noundef %427, ptr noundef %428)
  %429 = load i64, ptr %9, align 8, !tbaa !23
  %430 = load ptr, ptr %4, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %430, i32 0, i32 71
  %432 = load ptr, ptr %4, align 8, !tbaa !5
  %433 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %432, i32 0, i32 17
  %434 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %429, ptr noundef %431, ptr noundef %433, ptr noundef %434)
  %435 = load double, ptr %15, align 8, !tbaa !24
  %436 = load ptr, ptr %4, align 8, !tbaa !5
  %437 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %436, i32 0, i32 17
  %438 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %437, i32 0, i32 4
  %439 = load ptr, ptr %438, align 8, !tbaa !22
  %440 = load i64, ptr %8, align 8, !tbaa !23
  %441 = getelementptr inbounds double, ptr %439, i64 %440
  store double %435, ptr %441, align 8, !tbaa !24
  %442 = load ptr, ptr %4, align 8, !tbaa !5
  %443 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %442, i32 0, i32 24
  %444 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %443, i32 0, i32 0
  store i32 2, ptr %444, align 8, !tbaa !9
  br label %715

445:                                              ; preds = %123
  %446 = load i64, ptr %12, align 8, !tbaa !23
  %447 = add nsw i64 1, %446
  %448 = load i64, ptr %13, align 8, !tbaa !23
  %449 = add nsw i64 %447, %448
  %450 = load ptr, ptr %4, align 8, !tbaa !5
  %451 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %450, i32 0, i32 19
  %452 = load ptr, ptr %4, align 8, !tbaa !5
  %453 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %452, i32 0, i32 73
  %454 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %449, ptr noundef %451, ptr noundef %453, ptr noundef %454)
  %455 = load i64, ptr %12, align 8, !tbaa !23
  %456 = add nsw i64 1, %455
  %457 = load i64, ptr %13, align 8, !tbaa !23
  %458 = add nsw i64 %456, %457
  %459 = load double, ptr %15, align 8, !tbaa !24
  %460 = load double, ptr %16, align 8, !tbaa !24
  %461 = fsub double %459, %460
  %462 = fdiv double 1.000000e+00, %461
  %463 = load ptr, ptr %4, align 8, !tbaa !5
  %464 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %463, i32 0, i32 73
  %465 = load ptr, ptr %4, align 8, !tbaa !5
  %466 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %465, i32 0, i32 20
  %467 = load i64, ptr %8, align 8, !tbaa !23
  %468 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rcopymulvcEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %458, double noundef %462, ptr noundef %464, ptr noundef %466, i64 noundef %467, ptr noundef %468)
  %469 = load i64, ptr %12, align 8, !tbaa !23
  %470 = add nsw i64 1, %469
  %471 = load i64, ptr %13, align 8, !tbaa !23
  %472 = add nsw i64 %470, %471
  %473 = load double, ptr %15, align 8, !tbaa !24
  %474 = load double, ptr %16, align 8, !tbaa !24
  %475 = fsub double %473, %474
  %476 = fdiv double -1.000000e+00, %475
  %477 = load ptr, ptr %4, align 8, !tbaa !5
  %478 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %477, i32 0, i32 74
  %479 = load ptr, ptr %4, align 8, !tbaa !5
  %480 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %479, i32 0, i32 20
  %481 = load i64, ptr %8, align 8, !tbaa !23
  %482 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddvcEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %472, double noundef %476, ptr noundef %478, ptr noundef %480, i64 noundef %481, ptr noundef %482)
  %483 = load ptr, ptr %4, align 8, !tbaa !5
  %484 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %483, i32 0, i32 78
  %485 = load i64, ptr %484, align 8, !tbaa !30
  %486 = add nsw i64 %485, 2
  %487 = load ptr, ptr %4, align 8, !tbaa !5
  %488 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %487, i32 0, i32 78
  store i64 %486, ptr %488, align 8, !tbaa !30
  br label %498

489:                                              ; preds = %401
  %490 = load i64, ptr %12, align 8, !tbaa !23
  %491 = add nsw i64 1, %490
  %492 = load i64, ptr %13, align 8, !tbaa !23
  %493 = add nsw i64 %491, %492
  %494 = load ptr, ptr %4, align 8, !tbaa !5
  %495 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %494, i32 0, i32 20
  %496 = load i64, ptr %8, align 8, !tbaa !23
  %497 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetcEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %493, double noundef 0.000000e+00, ptr noundef %495, i64 noundef %496, ptr noundef %497)
  br label %498

498:                                              ; preds = %489, %445
  %499 = load i64, ptr %8, align 8, !tbaa !23
  %500 = add nsw i64 %499, 1
  store i64 %500, ptr %8, align 8, !tbaa !23
  br label %301

501:                                              ; preds = %306
  %502 = load i64, ptr %9, align 8, !tbaa !23
  %503 = load ptr, ptr %4, align 8, !tbaa !5
  %504 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %503, i32 0, i32 75
  %505 = load ptr, ptr %4, align 8, !tbaa !5
  %506 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %505, i32 0, i32 17
  %507 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %502, ptr noundef %504, ptr noundef %506, ptr noundef %507)
  %508 = load i64, ptr %12, align 8, !tbaa !23
  %509 = add nsw i64 1, %508
  %510 = load i64, ptr %13, align 8, !tbaa !23
  %511 = add nsw i64 %509, %510
  %512 = load ptr, ptr %4, align 8, !tbaa !5
  %513 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %512, i32 0, i32 72
  %514 = load ptr, ptr %4, align 8, !tbaa !5
  %515 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %514, i32 0, i32 19
  %516 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %511, ptr noundef %513, ptr noundef %515, ptr noundef %516)
  %517 = load ptr, ptr %4, align 8, !tbaa !5
  %518 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %517, i32 0, i32 22
  store i8 0, ptr %518, align 1, !tbaa !46
  %519 = load ptr, ptr %4, align 8, !tbaa !5
  %520 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %519, i32 0, i32 21
  store i8 1, ptr %520, align 8, !tbaa !43
  br label %535

521:                                              ; preds = %258
  %522 = load ptr, ptr %4, align 8, !tbaa !5
  %523 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %522, i32 0, i32 24
  %524 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %523, i32 0, i32 0
  store i32 3, ptr %524, align 8, !tbaa !9
  br label %715

525:                                              ; preds = %130
  %526 = load ptr, ptr %4, align 8, !tbaa !5
  %527 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %526, i32 0, i32 78
  %528 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %527, ptr noundef %528)
  %529 = load i64, ptr %9, align 8, !tbaa !23
  %530 = load ptr, ptr %4, align 8, !tbaa !5
  %531 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %530, i32 0, i32 75
  %532 = load ptr, ptr %4, align 8, !tbaa !5
  %533 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %532, i32 0, i32 17
  %534 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %529, ptr noundef %531, ptr noundef %533, ptr noundef %534)
  br label %535

535:                                              ; preds = %525, %501
  store i64 0, ptr %6, align 8, !tbaa !23
  br label %536

536:                                              ; preds = %550, %535
  %537 = load i64, ptr %6, align 8, !tbaa !23
  %538 = load i64, ptr %12, align 8, !tbaa !23
  %539 = load i64, ptr %13, align 8, !tbaa !23
  %540 = add nsw i64 %538, %539
  %541 = icmp sle i64 %537, %540
  br i1 %541, label %542, label %553

542:                                              ; preds = %536
  %543 = load i64, ptr %9, align 8, !tbaa !23
  %544 = load ptr, ptr %4, align 8, !tbaa !5
  %545 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %544, i32 0, i32 6
  %546 = load ptr, ptr %4, align 8, !tbaa !5
  %547 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %546, i32 0, i32 20
  %548 = load i64, ptr %6, align 8, !tbaa !23
  %549 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %543, ptr noundef %545, ptr noundef %547, i64 noundef %548, ptr noundef %549)
  br label %550

550:                                              ; preds = %542
  %551 = load i64, ptr %6, align 8, !tbaa !23
  %552 = add nsw i64 %551, 1
  store i64 %552, ptr %6, align 8, !tbaa !23
  br label %536, !llvm.loop !48

553:                                              ; preds = %536
  %554 = load ptr, ptr %4, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %554, i32 0, i32 19
  %556 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %555, i32 0, i32 4
  %557 = load ptr, ptr %556, align 8, !tbaa !22
  %558 = getelementptr inbounds double, ptr %557, i64 0
  %559 = load double, ptr %558, align 8, !tbaa !24
  %560 = load ptr, ptr %4, align 8, !tbaa !5
  %561 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %560, i32 0, i32 50
  store double %559, ptr %561, align 8, !tbaa !50
  %562 = load ptr, ptr %4, align 8, !tbaa !5
  %563 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %562, i32 0, i32 19
  %564 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %563, i32 0, i32 4
  %565 = load ptr, ptr %564, align 8, !tbaa !22
  %566 = getelementptr inbounds double, ptr %565, i64 0
  %567 = load double, ptr %566, align 8, !tbaa !24
  %568 = load ptr, ptr %4, align 8, !tbaa !5
  %569 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %568, i32 0, i32 51
  store double %567, ptr %569, align 8, !tbaa !51
  %570 = load i64, ptr %9, align 8, !tbaa !23
  %571 = load ptr, ptr %4, align 8, !tbaa !5
  %572 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %571, i32 0, i32 20
  %573 = load ptr, ptr %4, align 8, !tbaa !5
  %574 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %573, i32 0, i32 48
  %575 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %570, ptr noundef %572, i64 noundef 0, ptr noundef %574, ptr noundef %575)
  %576 = load i64, ptr %9, align 8, !tbaa !23
  %577 = load ptr, ptr %4, align 8, !tbaa !5
  %578 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %577, i32 0, i32 20
  %579 = load ptr, ptr %4, align 8, !tbaa !5
  %580 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %579, i32 0, i32 49
  %581 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %576, ptr noundef %578, i64 noundef 0, ptr noundef %580, ptr noundef %581)
  store i64 0, ptr %6, align 8, !tbaa !23
  br label %582

582:                                              ; preds = %644, %553
  %583 = load i64, ptr %6, align 8, !tbaa !23
  %584 = load i64, ptr %10, align 8, !tbaa !23
  %585 = load i64, ptr %11, align 8, !tbaa !23
  %586 = add nsw i64 %584, %585
  %587 = sub nsw i64 %586, 1
  %588 = icmp sle i64 %583, %587
  br i1 %588, label %589, label %647

589:                                              ; preds = %582
  %590 = load i64, ptr %9, align 8, !tbaa !23
  %591 = load ptr, ptr %4, align 8, !tbaa !5
  %592 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %591, i32 0, i32 17
  %593 = load ptr, ptr %4, align 8, !tbaa !5
  %594 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %593, i32 0, i32 60
  %595 = load i64, ptr %6, align 8, !tbaa !23
  %596 = load ptr, ptr %5, align 8, !tbaa !5
  %597 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %590, ptr noundef %592, ptr noundef %594, i64 noundef %595, ptr noundef %596)
  %598 = load ptr, ptr %4, align 8, !tbaa !5
  %599 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %598, i32 0, i32 60
  %600 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %599, i32 0, i32 6
  %601 = load ptr, ptr %600, align 8, !tbaa !22
  %602 = load i64, ptr %6, align 8, !tbaa !23
  %603 = getelementptr inbounds ptr, ptr %601, i64 %602
  %604 = load ptr, ptr %603, align 8, !tbaa !5
  %605 = load i64, ptr %9, align 8, !tbaa !23
  %606 = getelementptr inbounds double, ptr %604, i64 %605
  %607 = load double, ptr %606, align 8, !tbaa !24
  %608 = fsub double %597, %607
  store double %608, ptr %14, align 8, !tbaa !24
  %609 = load i64, ptr %6, align 8, !tbaa !23
  %610 = load i64, ptr %10, align 8, !tbaa !23
  %611 = icmp sge i64 %609, %610
  br i1 %611, label %612, label %616

612:                                              ; preds = %589
  %613 = load double, ptr %14, align 8, !tbaa !24
  %614 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %613, double noundef 0.000000e+00)
  br i1 %614, label %615, label %616

615:                                              ; preds = %612
  br label %644

616:                                              ; preds = %612, %589
  %617 = load ptr, ptr %4, align 8, !tbaa !5
  %618 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %617, i32 0, i32 51
  %619 = load double, ptr %618, align 8, !tbaa !51
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %620, i32 0, i32 61
  %622 = load double, ptr %621, align 8, !tbaa !52
  %623 = load double, ptr %14, align 8, !tbaa !24
  %624 = load ptr, ptr %5, align 8, !tbaa !5
  %625 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %623, ptr noundef %624)
  %626 = call double @llvm.fmuladd.f64(double %622, double %625, double %619)
  %627 = load ptr, ptr %4, align 8, !tbaa !5
  %628 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %627, i32 0, i32 51
  store double %626, ptr %628, align 8, !tbaa !51
  %629 = load i64, ptr %9, align 8, !tbaa !23
  %630 = load ptr, ptr %4, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %630, i32 0, i32 61
  %632 = load double, ptr %631, align 8, !tbaa !52
  %633 = load double, ptr %14, align 8, !tbaa !24
  %634 = load ptr, ptr %5, align 8, !tbaa !5
  %635 = call noundef i64 @_ZN11alglib_impl7ae_signEdPNS_8ae_stateE(double noundef %633, ptr noundef %634)
  %636 = sitofp i64 %635 to double
  %637 = fmul double %632, %636
  %638 = load ptr, ptr %4, align 8, !tbaa !5
  %639 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %638, i32 0, i32 60
  %640 = load i64, ptr %6, align 8, !tbaa !23
  %641 = load ptr, ptr %4, align 8, !tbaa !5
  %642 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %641, i32 0, i32 49
  %643 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddrvEldPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %629, double noundef %637, ptr noundef %639, i64 noundef %640, ptr noundef %642, ptr noundef %643)
  br label %644

644:                                              ; preds = %616, %615
  %645 = load i64, ptr %6, align 8, !tbaa !23
  %646 = add nsw i64 %645, 1
  store i64 %646, ptr %6, align 8, !tbaa !23
  br label %582, !llvm.loop !53

647:                                              ; preds = %582
  store i64 1, ptr %6, align 8, !tbaa !23
  br label %648

648:                                              ; preds = %705, %647
  %649 = load i64, ptr %6, align 8, !tbaa !23
  %650 = load i64, ptr %12, align 8, !tbaa !23
  %651 = load i64, ptr %13, align 8, !tbaa !23
  %652 = add nsw i64 %650, %651
  %653 = icmp sle i64 %649, %652
  br i1 %653, label %654, label %708

654:                                              ; preds = %648
  %655 = load ptr, ptr %4, align 8, !tbaa !5
  %656 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %655, i32 0, i32 19
  %657 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %656, i32 0, i32 4
  %658 = load ptr, ptr %657, align 8, !tbaa !22
  %659 = load i64, ptr %6, align 8, !tbaa !23
  %660 = getelementptr inbounds double, ptr %658, i64 %659
  %661 = load double, ptr %660, align 8, !tbaa !24
  store double %661, ptr %14, align 8, !tbaa !24
  %662 = load i64, ptr %6, align 8, !tbaa !23
  %663 = load i64, ptr %12, align 8, !tbaa !23
  %664 = icmp sle i64 %662, %663
  br i1 %664, label %665, label %669

665:                                              ; preds = %654
  %666 = load double, ptr %14, align 8, !tbaa !24
  %667 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %666, double noundef 0.000000e+00)
  br i1 %667, label %668, label %669

668:                                              ; preds = %665
  br label %705

669:                                              ; preds = %665, %654
  %670 = load i64, ptr %6, align 8, !tbaa !23
  %671 = load i64, ptr %12, align 8, !tbaa !23
  %672 = icmp sgt i64 %670, %671
  br i1 %672, label %673, label %677

673:                                              ; preds = %669
  %674 = load double, ptr %14, align 8, !tbaa !24
  %675 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %674, double noundef 0.000000e+00)
  br i1 %675, label %676, label %677

676:                                              ; preds = %673
  br label %705

677:                                              ; preds = %673, %669
  %678 = load ptr, ptr %4, align 8, !tbaa !5
  %679 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %678, i32 0, i32 51
  %680 = load double, ptr %679, align 8, !tbaa !51
  %681 = load ptr, ptr %4, align 8, !tbaa !5
  %682 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %681, i32 0, i32 38
  %683 = load double, ptr %682, align 8, !tbaa !54
  %684 = load double, ptr %14, align 8, !tbaa !24
  %685 = load ptr, ptr %5, align 8, !tbaa !5
  %686 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %684, ptr noundef %685)
  %687 = call double @llvm.fmuladd.f64(double %683, double %686, double %680)
  %688 = load ptr, ptr %4, align 8, !tbaa !5
  %689 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %688, i32 0, i32 51
  store double %687, ptr %689, align 8, !tbaa !51
  %690 = load i64, ptr %9, align 8, !tbaa !23
  %691 = load ptr, ptr %4, align 8, !tbaa !5
  %692 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %691, i32 0, i32 38
  %693 = load double, ptr %692, align 8, !tbaa !54
  %694 = load double, ptr %14, align 8, !tbaa !24
  %695 = load ptr, ptr %5, align 8, !tbaa !5
  %696 = call noundef i64 @_ZN11alglib_impl7ae_signEdPNS_8ae_stateE(double noundef %694, ptr noundef %695)
  %697 = sitofp i64 %696 to double
  %698 = fmul double %693, %697
  %699 = load ptr, ptr %4, align 8, !tbaa !5
  %700 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %699, i32 0, i32 20
  %701 = load i64, ptr %6, align 8, !tbaa !23
  %702 = load ptr, ptr %4, align 8, !tbaa !5
  %703 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %702, i32 0, i32 49
  %704 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddrvEldPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %690, double noundef %698, ptr noundef %700, i64 noundef %701, ptr noundef %703, ptr noundef %704)
  br label %705

705:                                              ; preds = %677, %676, %668
  %706 = load i64, ptr %6, align 8, !tbaa !23
  %707 = add nsw i64 %706, 1
  store i64 %707, ptr %6, align 8, !tbaa !23
  br label %648, !llvm.loop !55

708:                                              ; preds = %648
  br label %233

709:                                              ; preds = %237
  store i8 0, ptr %17, align 1, !tbaa !47
  %710 = load i8, ptr %17, align 1, !tbaa !47, !range !44, !noundef !45
  %711 = trunc i8 %710 to i1
  store i1 %711, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %795

712:                                              ; preds = %173
  store i8 0, ptr %17, align 1, !tbaa !47
  %713 = load i8, ptr %17, align 1, !tbaa !47, !range !44, !noundef !45
  %714 = trunc i8 %713 to i1
  store i1 %714, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %795

715:                                              ; preds = %521, %419, %402, %259
  store i8 1, ptr %17, align 1, !tbaa !47
  %716 = load i64, ptr %6, align 8, !tbaa !23
  %717 = load ptr, ptr %4, align 8, !tbaa !5
  %718 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %717, i32 0, i32 24
  %719 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %718, i32 0, i32 1
  %720 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %719, i32 0, i32 4
  %721 = load ptr, ptr %720, align 8, !tbaa !22
  %722 = getelementptr inbounds i64, ptr %721, i64 0
  store i64 %716, ptr %722, align 8, !tbaa !23
  %723 = load i64, ptr %7, align 8, !tbaa !23
  %724 = load ptr, ptr %4, align 8, !tbaa !5
  %725 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %724, i32 0, i32 24
  %726 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %725, i32 0, i32 1
  %727 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %726, i32 0, i32 4
  %728 = load ptr, ptr %727, align 8, !tbaa !22
  %729 = getelementptr inbounds i64, ptr %728, i64 1
  store i64 %723, ptr %729, align 8, !tbaa !23
  %730 = load i64, ptr %8, align 8, !tbaa !23
  %731 = load ptr, ptr %4, align 8, !tbaa !5
  %732 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %731, i32 0, i32 24
  %733 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %732, i32 0, i32 1
  %734 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %733, i32 0, i32 4
  %735 = load ptr, ptr %734, align 8, !tbaa !22
  %736 = getelementptr inbounds i64, ptr %735, i64 2
  store i64 %730, ptr %736, align 8, !tbaa !23
  %737 = load i64, ptr %9, align 8, !tbaa !23
  %738 = load ptr, ptr %4, align 8, !tbaa !5
  %739 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %738, i32 0, i32 24
  %740 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %739, i32 0, i32 1
  %741 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %740, i32 0, i32 4
  %742 = load ptr, ptr %741, align 8, !tbaa !22
  %743 = getelementptr inbounds i64, ptr %742, i64 3
  store i64 %737, ptr %743, align 8, !tbaa !23
  %744 = load i64, ptr %10, align 8, !tbaa !23
  %745 = load ptr, ptr %4, align 8, !tbaa !5
  %746 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %745, i32 0, i32 24
  %747 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %746, i32 0, i32 1
  %748 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %747, i32 0, i32 4
  %749 = load ptr, ptr %748, align 8, !tbaa !22
  %750 = getelementptr inbounds i64, ptr %749, i64 4
  store i64 %744, ptr %750, align 8, !tbaa !23
  %751 = load i64, ptr %11, align 8, !tbaa !23
  %752 = load ptr, ptr %4, align 8, !tbaa !5
  %753 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %752, i32 0, i32 24
  %754 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %753, i32 0, i32 1
  %755 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %754, i32 0, i32 4
  %756 = load ptr, ptr %755, align 8, !tbaa !22
  %757 = getelementptr inbounds i64, ptr %756, i64 5
  store i64 %751, ptr %757, align 8, !tbaa !23
  %758 = load i64, ptr %12, align 8, !tbaa !23
  %759 = load ptr, ptr %4, align 8, !tbaa !5
  %760 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %759, i32 0, i32 24
  %761 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %760, i32 0, i32 1
  %762 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %761, i32 0, i32 4
  %763 = load ptr, ptr %762, align 8, !tbaa !22
  %764 = getelementptr inbounds i64, ptr %763, i64 6
  store i64 %758, ptr %764, align 8, !tbaa !23
  %765 = load i64, ptr %13, align 8, !tbaa !23
  %766 = load ptr, ptr %4, align 8, !tbaa !5
  %767 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %766, i32 0, i32 24
  %768 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %767, i32 0, i32 1
  %769 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %768, i32 0, i32 4
  %770 = load ptr, ptr %769, align 8, !tbaa !22
  %771 = getelementptr inbounds i64, ptr %770, i64 7
  store i64 %765, ptr %771, align 8, !tbaa !23
  %772 = load double, ptr %14, align 8, !tbaa !24
  %773 = load ptr, ptr %4, align 8, !tbaa !5
  %774 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %773, i32 0, i32 24
  %775 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %774, i32 0, i32 3
  %776 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %775, i32 0, i32 4
  %777 = load ptr, ptr %776, align 8, !tbaa !22
  %778 = getelementptr inbounds double, ptr %777, i64 0
  store double %772, ptr %778, align 8, !tbaa !24
  %779 = load double, ptr %15, align 8, !tbaa !24
  %780 = load ptr, ptr %4, align 8, !tbaa !5
  %781 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %780, i32 0, i32 24
  %782 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %781, i32 0, i32 3
  %783 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %782, i32 0, i32 4
  %784 = load ptr, ptr %783, align 8, !tbaa !22
  %785 = getelementptr inbounds double, ptr %784, i64 1
  store double %779, ptr %785, align 8, !tbaa !24
  %786 = load double, ptr %16, align 8, !tbaa !24
  %787 = load ptr, ptr %4, align 8, !tbaa !5
  %788 = getelementptr inbounds %"struct.alglib_impl::minnsstate", ptr %787, i32 0, i32 24
  %789 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %788, i32 0, i32 3
  %790 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %789, i32 0, i32 4
  %791 = load ptr, ptr %790, align 8, !tbaa !22
  %792 = getelementptr inbounds double, ptr %791, i64 2
  store double %786, ptr %792, align 8, !tbaa !24
  %793 = load i8, ptr %17, align 1, !tbaa !47, !range !44, !noundef !45
  %794 = trunc i8 %793 to i1
  store i1 %794, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %795

795:                                              ; preds = %715, %712, %709
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  %796 = load i1, ptr %3, align 1
  ret i1 %796
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL24minns_clearrequestfieldsEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL18minns_agsiterationEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20minns_unscalepointbcEPKNS_10minnsstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !18, i64 712}
!10 = !{!"_ZTSN11alglib_impl10minnsstateE", !11, i64 0, !11, i64 8, !12, i64 16, !11, i64 24, !13, i64 32, !12, i64 40, !14, i64 48, !14, i64 112, !14, i64 176, !14, i64 240, !14, i64 304, !11, i64 368, !11, i64 376, !16, i64 384, !11, i64 464, !11, i64 472, !11, i64 480, !14, i64 488, !12, i64 552, !14, i64 560, !16, i64 624, !13, i64 704, !13, i64 705, !13, i64 706, !17, i64 712, !17, i64 976, !19, i64 1240, !12, i64 1264, !11, i64 1272, !12, i64 1280, !12, i64 1288, !12, i64 1296, !12, i64 1304, !12, i64 1312, !12, i64 1320, !12, i64 1328, !12, i64 1336, !11, i64 1344, !12, i64 1352, !11, i64 1360, !11, i64 1368, !11, i64 1376, !11, i64 1384, !12, i64 1392, !12, i64 1400, !14, i64 1408, !14, i64 1472, !14, i64 1536, !14, i64 1600, !14, i64 1664, !12, i64 1728, !12, i64 1736, !14, i64 1744, !14, i64 1808, !14, i64 1872, !14, i64 1936, !14, i64 2000, !13, i64 2064, !14, i64 2072, !14, i64 2136, !16, i64 2200, !12, i64 2280, !16, i64 2288, !16, i64 2368, !16, i64 2448, !14, i64 2528, !20, i64 2592, !14, i64 5336, !14, i64 5400, !16, i64 5464, !14, i64 5544, !14, i64 5608, !14, i64 5672, !14, i64 5736, !14, i64 5800, !14, i64 5864, !11, i64 5928, !11, i64 5936, !11, i64 5944, !11, i64 5952, !11, i64 5960, !11, i64 5968, !12, i64 5976, !12, i64 5984, !11, i64 5992}
!11 = !{!"long", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !11, i64 0, !11, i64 8, !13, i64 16, !15, i64 24, !7, i64 56}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!16 = !{!"_ZTSN11alglib_impl9ae_matrixE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !13, i64 32, !15, i64 40, !7, i64 72}
!17 = !{!"_ZTSN11alglib_impl10rcommstateE", !18, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!18 = !{!"int", !7, i64 0}
!19 = !{!"_ZTSN11alglib_impl10hqrndstateE", !11, i64 0, !11, i64 8, !11, i64 16}
!20 = !{!"_ZTSN11alglib_impl7minnsqpE", !12, i64 0, !12, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !16, i64 336, !16, i64 416, !16, i64 496, !14, i64 576, !14, i64 640, !14, i64 704, !14, i64 768, !14, i64 832, !14, i64 896, !16, i64 960, !14, i64 1040, !21, i64 1104}
!21 = !{!"_ZTSN11alglib_impl11snnlssolverE", !11, i64 0, !11, i64 8, !11, i64 16, !16, i64 24, !14, i64 104, !14, i64 168, !12, i64 232, !11, i64 240, !14, i64 248, !14, i64 312, !16, i64 376, !16, i64 456, !16, i64 536, !14, i64 616, !14, i64 680, !14, i64 744, !14, i64 808, !14, i64 872, !14, i64 936, !14, i64 1000, !14, i64 1064, !14, i64 1128, !14, i64 1192, !14, i64 1256, !14, i64 1320, !14, i64 1384, !14, i64 1448, !14, i64 1512, !14, i64 1576}
!22 = !{!7, !7, i64 0}
!23 = !{!11, !11, i64 0}
!24 = !{!12, !12, i64 0}
!25 = !{!10, !12, i64 5976}
!26 = !{!10, !12, i64 5984}
!27 = !{!10, !11, i64 5968}
!28 = !{!10, !11, i64 5928}
!29 = !{!10, !11, i64 5936}
!30 = !{!10, !11, i64 5944}
!31 = !{!10, !11, i64 5952}
!32 = !{!10, !11, i64 5960}
!33 = !{!10, !13, i64 2064}
!34 = !{!10, !11, i64 5992}
!35 = !{!10, !11, i64 8}
!36 = !{!10, !11, i64 368}
!37 = !{!10, !11, i64 376}
!38 = !{!10, !11, i64 464}
!39 = !{!10, !11, i64 472}
!40 = !{!10, !11, i64 0}
!41 = !{!10, !12, i64 40}
!42 = !{!10, !18, i64 976}
!43 = !{!10, !13, i64 704}
!44 = !{i8 0, i8 2}
!45 = !{}
!46 = !{!10, !13, i64 705}
!47 = !{!13, !13, i64 0}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!10, !12, i64 1728}
!51 = !{!10, !12, i64 1736}
!52 = !{!10, !12, i64 2280}
!53 = distinct !{!53, !49}
!54 = !{!10, !12, i64 1352}
!55 = distinct !{!55, !49}


; 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"

@.str.1761 = external hidden unnamed_addr constant [38 x i8], align 1

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl14minnsiterationEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1) local_unnamed_addr #1 {
  %3 = getelementptr inbounds i8, ptr %0, i64 712
  %4 = load i32, ptr %3, align 8, !tbaa !5
  %5 = icmp sgt i32 %4, -1
  br i1 %5, label %6, label %31

6:                                                ; preds = %2
  %7 = getelementptr inbounds i8, ptr %0, i64 776
  %8 = load ptr, ptr %7, align 8, !tbaa !21
  %9 = load i64, ptr %8, align 8, !tbaa !22
  %10 = getelementptr inbounds i8, ptr %8, i64 8
  %11 = load i64, ptr %10, align 8, !tbaa !22
  %12 = getelementptr inbounds i8, ptr %8, i64 16
  %13 = load i64, ptr %12, align 8, !tbaa !22
  %14 = getelementptr inbounds i8, ptr %8, i64 24
  %15 = load i64, ptr %14, align 8, !tbaa !22
  %16 = getelementptr inbounds i8, ptr %8, i64 32
  %17 = load i64, ptr %16, align 8, !tbaa !22
  %18 = getelementptr inbounds i8, ptr %8, i64 40
  %19 = load i64, ptr %18, align 8, !tbaa !22
  %20 = getelementptr inbounds i8, ptr %8, i64 48
  %21 = load i64, ptr %20, align 8, !tbaa !22
  %22 = getelementptr inbounds i8, ptr %8, i64 56
  %23 = load i64, ptr %22, align 8, !tbaa !22
  %24 = getelementptr inbounds i8, ptr %0, i64 904
  %25 = load ptr, ptr %24, align 8, !tbaa !21
  %26 = load double, ptr %25, align 8, !tbaa !23
  %27 = getelementptr inbounds i8, ptr %25, i64 8
  %28 = load double, ptr %27, align 8, !tbaa !23
  %29 = getelementptr inbounds i8, ptr %25, i64 16
  %30 = load double, ptr %29, align 8, !tbaa !23
  br label %31

31:                                               ; preds = %2, %6
  %.0323 = phi i64 [ %9, %6 ], [ 359, %2 ]
  %.0322 = phi i64 [ %11, %6 ], [ -58, %2 ]
  %.0316 = phi i64 [ %13, %6 ], [ -919, %2 ]
  %.0313 = phi i64 [ %15, %6 ], [ -909, %2 ]
  %.0310 = phi i64 [ %17, %6 ], [ 81, %2 ]
  %.0307 = phi i64 [ %19, %6 ], [ 255, %2 ]
  %.0304 = phi i64 [ %21, %6 ], [ 74, %2 ]
  %.0301 = phi i64 [ %23, %6 ], [ -788, %2 ]
  %.0294 = phi double [ %26, %6 ], [ 8.090000e+02, %2 ]
  %.0287 = phi double [ %28, %6 ], [ 2.050000e+02, %2 ]
  %.0 = phi double [ %30, %6 ], [ -8.380000e+02, %2 ]
  switch i32 %4, label %32 [
    i32 0, label %84
    i32 1, label %149
    i32 2, label %159
    i32 3, label %187
  ]

32:                                               ; preds = %31
  %33 = getelementptr inbounds i8, ptr %0, i64 5928
  %34 = getelementptr inbounds i8, ptr %0, i64 2064
  store i8 0, ptr %34, align 8, !tbaa !24
  %35 = getelementptr inbounds i8, ptr %0, i64 8
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %33, i8 0, i64 72, i1 false)
  %36 = load i64, ptr %35, align 8, !tbaa !25
  %37 = getelementptr inbounds i8, ptr %0, i64 368
  %38 = load i64, ptr %37, align 8, !tbaa !26
  %39 = getelementptr inbounds i8, ptr %0, i64 376
  %40 = load i64, ptr %39, align 8, !tbaa !27
  %41 = getelementptr inbounds i8, ptr %0, i64 464
  %42 = load i64, ptr %41, align 8, !tbaa !28
  %43 = getelementptr inbounds i8, ptr %0, i64 472
  %44 = load i64, ptr %43, align 8, !tbaa !29
  tail call void @_ZN11alglib_implL24minns_clearrequestfieldsEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %45 = load i64, ptr %0, align 8, !tbaa !30
  %.not = icmp eq i64 %45, 0
  br i1 %.not, label %46, label %274

46:                                               ; preds = %32
  %47 = getelementptr inbounds i8, ptr %0, i64 40
  %48 = load double, ptr %47, align 8, !tbaa !31
  %49 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %48, double noundef 0.000000e+00)
  br i1 %49, label %50, label %57

50:                                               ; preds = %46
  %51 = getelementptr inbounds i8, ptr %0, i64 5608
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %51, i64 noundef %36, ptr noundef %1)
  %52 = getelementptr inbounds i8, ptr %0, i64 5672
  %53 = add nsw i64 %42, 1
  %54 = add nsw i64 %53, %44
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %52, i64 noundef %54, ptr noundef %1)
  %55 = getelementptr inbounds i8, ptr %0, i64 5800
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %55, i64 noundef %54, ptr noundef %1)
  %56 = getelementptr inbounds i8, ptr %0, i64 5736
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %56, i64 noundef %54, ptr noundef %1)
  br label %57

57:                                               ; preds = %50, %46
  %58 = getelementptr inbounds i8, ptr %0, i64 5864
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %58, i64 noundef %36, ptr noundef %1)
  %59 = getelementptr inbounds i8, ptr %0, i64 1600
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %59, i64 noundef %36, ptr noundef %1)
  %60 = getelementptr inbounds i8, ptr %0, i64 1664
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %60, i64 noundef %36, ptr noundef %1)
  %61 = getelementptr inbounds i8, ptr %0, i64 976
  %62 = getelementptr inbounds i8, ptr %0, i64 984
  tail call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %62, i64 noundef 14, ptr noundef %1)
  %63 = getelementptr inbounds i8, ptr %0, i64 1048
  tail call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %63, i64 noundef 6, ptr noundef %1)
  %64 = getelementptr inbounds i8, ptr %0, i64 1112
  tail call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %64, i64 noundef 11, ptr noundef %1)
  store i32 -1, ptr %61, align 8, !tbaa !32
  br label %.loopexit

.loopexit:                                        ; preds = %249, %.preheader, %57
  %.1324 = phi i64 [ %.0323, %57 ], [ 1, %.preheader ], [ %210, %249 ]
  %.1317 = phi i64 [ %.0316, %57 ], [ %.4320, %.preheader ], [ %.4320, %249 ]
  %.1314 = phi i64 [ %36, %57 ], [ %.0313, %.preheader ], [ %.0313, %249 ]
  %.1311 = phi i64 [ %38, %57 ], [ %.0310, %.preheader ], [ %.0310, %249 ]
  %.1308 = phi i64 [ %40, %57 ], [ %.0307, %.preheader ], [ %.0307, %249 ]
  %.1305 = phi i64 [ %42, %57 ], [ %.0304, %.preheader ], [ %.0304, %249 ]
  %.1302 = phi i64 [ %44, %57 ], [ %.0301, %.preheader ], [ %.0301, %249 ]
  %.1295 = phi double [ %.0294, %57 ], [ %.5299.lcssa, %.preheader ], [ %235, %249 ]
  %.1288 = phi double [ %.0287, %57 ], [ %.5292, %.preheader ], [ %.5292, %249 ]
  %.1 = phi double [ %.0, %57 ], [ %.5, %.preheader ], [ %.5, %249 ]
  %65 = tail call noundef zeroext i1 @_ZN11alglib_implL18minns_agsiterationEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  br i1 %65, label %66, label %274

66:                                               ; preds = %.loopexit
  %67 = getelementptr inbounds i8, ptr %0, i64 488
  %68 = getelementptr inbounds i8, ptr %0, i64 5864
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.1314, ptr noundef nonnull %67, ptr noundef nonnull %68, ptr noundef %1)
  tail call void @_ZN11alglib_implL20minns_unscalepointbcEPKNS_10minnsstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %67, ptr noundef %1)
  %69 = getelementptr inbounds i8, ptr %0, i64 40
  %70 = load double, ptr %69, align 8, !tbaa !31
  %71 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %70, double noundef 0.000000e+00)
  br i1 %71, label %72, label %251

72:                                               ; preds = %66
  %73 = getelementptr inbounds i8, ptr %0, i64 704
  %74 = load i8, ptr %73, align 8, !tbaa !33, !range !34, !noundef !35
  %75 = trunc nuw i8 %74 to i1
  br i1 %75, label %76, label %251

76:                                               ; preds = %72
  store i8 0, ptr %73, align 8, !tbaa !33
  %77 = getelementptr inbounds i8, ptr %0, i64 705
  store i8 1, ptr %77, align 1, !tbaa !36
  %78 = getelementptr inbounds i8, ptr %0, i64 5664
  %79 = load ptr, ptr %78, align 8, !tbaa !21
  %80 = getelementptr inbounds i8, ptr %0, i64 544
  %81 = load ptr, ptr %80, align 8, !tbaa !21
  %82 = add nsw i64 %.1314, -1
  %83 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %82)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %79, i64 noundef 1, ptr noundef %81, i64 noundef 1, i64 noundef %83)
  br label %251

84:                                               ; preds = %31
  %85 = getelementptr inbounds i8, ptr %0, i64 5728
  %86 = load ptr, ptr %85, align 8, !tbaa !21
  %87 = getelementptr inbounds i8, ptr %0, i64 616
  %88 = load ptr, ptr %87, align 8, !tbaa !21
  %89 = add nsw i64 %.0301, %.0304
  %90 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %89)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %86, i64 noundef 1, ptr noundef %88, i64 noundef 1, i64 noundef %90)
  %91 = getelementptr inbounds i8, ptr %0, i64 5944
  %92 = load i64, ptr %91, align 8, !tbaa !37
  %93 = add nsw i64 %92, 1
  store i64 %93, ptr %91, align 8, !tbaa !37
  br label %94

94:                                               ; preds = %176, %84
  %.2318 = phi i64 [ 0, %84 ], [ %177, %176 ]
  %.2296 = phi double [ %.0294, %84 ], [ %.3297, %176 ]
  %.2289 = phi double [ %.0287, %84 ], [ %.4291, %176 ]
  %.2 = phi double [ %.0, %84 ], [ %.4, %176 ]
  %.not332 = icmp slt i64 %.2318, %.0313
  br i1 %.not332, label %95, label %178

95:                                               ; preds = %94
  %96 = getelementptr inbounds i8, ptr %0, i64 5608
  %97 = getelementptr inbounds i8, ptr %0, i64 5664
  %98 = load ptr, ptr %97, align 8, !tbaa !21
  %99 = getelementptr inbounds double, ptr %98, i64 %.2318
  %100 = load double, ptr %99, align 8, !tbaa !23
  %101 = getelementptr inbounds i8, ptr %0, i64 40
  %102 = load double, ptr %101, align 8, !tbaa !31
  %103 = getelementptr inbounds i8, ptr %0, i64 104
  %104 = load ptr, ptr %103, align 8, !tbaa !21
  %105 = getelementptr inbounds double, ptr %104, i64 %.2318
  %106 = load double, ptr %105, align 8, !tbaa !23
  %107 = fneg double %102
  %108 = tail call double @llvm.fmuladd.f64(double %107, double %106, double %100)
  %109 = tail call double @llvm.fmuladd.f64(double %102, double %106, double %100)
  %110 = getelementptr inbounds i8, ptr %0, i64 296
  %111 = load ptr, ptr %110, align 8, !tbaa !21
  %112 = getelementptr inbounds i8, ptr %111, i64 %.2318
  %113 = load i8, ptr %112, align 1, !tbaa !38, !range !34, !noundef !35
  %114 = trunc nuw i8 %113 to i1
  br i1 %114, label %115, label %125

115:                                              ; preds = %95
  %116 = getelementptr inbounds i8, ptr %0, i64 168
  %117 = load ptr, ptr %116, align 8, !tbaa !21
  %118 = getelementptr inbounds double, ptr %117, i64 %.2318
  %119 = load double, ptr %118, align 8, !tbaa !23
  %120 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %108, double noundef %119)
  br i1 %120, label %121, label %125

121:                                              ; preds = %115
  %122 = load ptr, ptr %116, align 8, !tbaa !21
  %123 = getelementptr inbounds double, ptr %122, i64 %.2318
  %124 = load double, ptr %123, align 8, !tbaa !23
  br label %125

125:                                              ; preds = %121, %115, %95
  %.3 = phi double [ %124, %121 ], [ %108, %115 ], [ %108, %95 ]
  %126 = getelementptr inbounds i8, ptr %0, i64 360
  %127 = load ptr, ptr %126, align 8, !tbaa !21
  %128 = getelementptr inbounds i8, ptr %127, i64 %.2318
  %129 = load i8, ptr %128, align 1, !tbaa !38, !range !34, !noundef !35
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %141

131:                                              ; preds = %125
  %132 = getelementptr inbounds i8, ptr %0, i64 232
  %133 = load ptr, ptr %132, align 8, !tbaa !21
  %134 = getelementptr inbounds double, ptr %133, i64 %.2318
  %135 = load double, ptr %134, align 8, !tbaa !23
  %136 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %109, double noundef %135)
  br i1 %136, label %137, label %141

137:                                              ; preds = %131
  %138 = load ptr, ptr %132, align 8, !tbaa !21
  %139 = getelementptr inbounds double, ptr %138, i64 %.2318
  %140 = load double, ptr %139, align 8, !tbaa !23
  br label %141

141:                                              ; preds = %137, %131, %125
  %.3290 = phi double [ %140, %137 ], [ %109, %131 ], [ %109, %125 ]
  %142 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %.3, double noundef %.3290)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %142, ptr noundef nonnull @.str.1761, ptr noundef %1)
  %143 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %.3, double noundef %.3290)
  br i1 %143, label %172, label %144

144:                                              ; preds = %141
  %145 = getelementptr inbounds i8, ptr %0, i64 488
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %96, ptr noundef nonnull %145, ptr noundef %1)
  %146 = getelementptr inbounds i8, ptr %0, i64 544
  %147 = load ptr, ptr %146, align 8, !tbaa !21
  %148 = getelementptr inbounds double, ptr %147, i64 %.2318
  store double %.3, ptr %148, align 8, !tbaa !23
  br label %251

149:                                              ; preds = %31
  %150 = add i64 %.0301, %.0304
  %151 = add i64 %150, 1
  %152 = getelementptr inbounds i8, ptr %0, i64 560
  %153 = getelementptr inbounds i8, ptr %0, i64 5800
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %151, ptr noundef nonnull %152, ptr noundef nonnull %153, ptr noundef %1)
  %154 = getelementptr inbounds i8, ptr %0, i64 5608
  %155 = getelementptr inbounds i8, ptr %0, i64 488
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %154, ptr noundef nonnull %155, ptr noundef %1)
  %156 = getelementptr inbounds i8, ptr %0, i64 544
  %157 = load ptr, ptr %156, align 8, !tbaa !21
  %158 = getelementptr inbounds double, ptr %157, i64 %.0316
  store double %.0287, ptr %158, align 8, !tbaa !23
  br label %251

159:                                              ; preds = %31
  %160 = add i64 %.0301, %.0304
  %161 = add i64 %160, 1
  %162 = getelementptr inbounds i8, ptr %0, i64 560
  %163 = getelementptr inbounds i8, ptr %0, i64 5736
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %161, ptr noundef nonnull %162, ptr noundef nonnull %163, ptr noundef %1)
  %164 = fsub double %.0287, %.0
  %165 = fdiv double 1.000000e+00, %164
  %166 = getelementptr inbounds i8, ptr %0, i64 624
  tail call void @_ZN11alglib_impl10rcopymulvcEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %161, double noundef %165, ptr noundef nonnull %163, ptr noundef nonnull %166, i64 noundef %.0316, ptr noundef %1)
  %167 = fdiv double -1.000000e+00, %164
  %168 = getelementptr inbounds i8, ptr %0, i64 5800
  tail call void @_ZN11alglib_impl6raddvcEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %161, double noundef %167, ptr noundef nonnull %168, ptr noundef nonnull %166, i64 noundef %.0316, ptr noundef %1)
  %169 = getelementptr inbounds i8, ptr %0, i64 5944
  %170 = load i64, ptr %169, align 8, !tbaa !37
  %171 = add nsw i64 %170, 2
  store i64 %171, ptr %169, align 8, !tbaa !37
  br label %176

172:                                              ; preds = %141
  %173 = add i64 %.0301, %.0304
  %174 = add i64 %173, 1
  %175 = getelementptr inbounds i8, ptr %0, i64 624
  tail call void @_ZN11alglib_impl5rsetcEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %174, double noundef 0.000000e+00, ptr noundef nonnull %175, i64 noundef %.2318, ptr noundef %1)
  br label %176

176:                                              ; preds = %172, %159
  %.3319 = phi i64 [ %.2318, %172 ], [ %.0316, %159 ]
  %.3297 = phi double [ %100, %172 ], [ %.0294, %159 ]
  %.4291 = phi double [ %.3290, %172 ], [ %.0287, %159 ]
  %.4 = phi double [ %.3, %172 ], [ %.0, %159 ]
  %177 = add nsw i64 %.3319, 1
  br label %94

178:                                              ; preds = %94
  %179 = getelementptr inbounds i8, ptr %0, i64 5864
  %180 = getelementptr inbounds i8, ptr %0, i64 488
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %179, ptr noundef nonnull %180, ptr noundef %1)
  %181 = add i64 %.0301, %.0304
  %182 = add i64 %181, 1
  %183 = getelementptr inbounds i8, ptr %0, i64 5672
  %184 = getelementptr inbounds i8, ptr %0, i64 560
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %182, ptr noundef nonnull %183, ptr noundef nonnull %184, ptr noundef %1)
  %185 = getelementptr inbounds i8, ptr %0, i64 705
  store i8 0, ptr %185, align 1, !tbaa !36
  %186 = getelementptr inbounds i8, ptr %0, i64 704
  store i8 1, ptr %186, align 8, !tbaa !33
  br label %191

187:                                              ; preds = %31
  %188 = getelementptr inbounds i8, ptr %0, i64 5944
  tail call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %188, ptr noundef %1)
  %189 = getelementptr inbounds i8, ptr %0, i64 5864
  %190 = getelementptr inbounds i8, ptr %0, i64 488
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %189, ptr noundef nonnull %190, ptr noundef %1)
  %.pre = add i64 %.0301, %.0304
  br label %191

191:                                              ; preds = %187, %178
  %.pre-phi = phi i64 [ %.pre, %187 ], [ %181, %178 ]
  %.4320 = phi i64 [ %.0316, %187 ], [ %.2318, %178 ]
  %.4298 = phi double [ %.0294, %187 ], [ %.2296, %178 ]
  %.5292 = phi double [ %.0287, %187 ], [ %.2289, %178 ]
  %.5 = phi double [ %.0, %187 ], [ %.2, %178 ]
  %.not333338 = icmp slt i64 %.pre-phi, 0
  br i1 %.not333338, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %191
  %192 = getelementptr inbounds i8, ptr %0, i64 48
  %193 = getelementptr inbounds i8, ptr %0, i64 624
  br label %194

194:                                              ; preds = %.lr.ph, %194
  %.2325339 = phi i64 [ 0, %.lr.ph ], [ %195, %194 ]
  tail call void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %192, ptr noundef nonnull %193, i64 noundef %.2325339, ptr noundef %1)
  %195 = add nuw i64 %.2325339, 1
  %exitcond.not = icmp eq i64 %.2325339, %.pre-phi
  br i1 %exitcond.not, label %._crit_edge, label %194, !llvm.loop !39

._crit_edge:                                      ; preds = %194, %191
  %196 = getelementptr inbounds i8, ptr %0, i64 616
  %197 = load ptr, ptr %196, align 8, !tbaa !21
  %198 = load double, ptr %197, align 8, !tbaa !23
  %199 = getelementptr inbounds i8, ptr %0, i64 1728
  store double %198, ptr %199, align 8, !tbaa !41
  %200 = getelementptr inbounds i8, ptr %0, i64 1736
  store double %198, ptr %200, align 8, !tbaa !42
  %201 = getelementptr inbounds i8, ptr %0, i64 624
  %202 = getelementptr inbounds i8, ptr %0, i64 1600
  tail call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %201, i64 noundef 0, ptr noundef nonnull %202, ptr noundef %1)
  %203 = getelementptr inbounds i8, ptr %0, i64 1664
  tail call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %201, i64 noundef 0, ptr noundef nonnull %203, ptr noundef %1)
  %204 = add nsw i64 %.0307, %.0310
  %.not334.not340 = icmp sgt i64 %204, 0
  br i1 %.not334.not340, label %.lr.ph343, label %.preheader

.lr.ph343:                                        ; preds = %._crit_edge
  %205 = getelementptr inbounds i8, ptr %0, i64 488
  %206 = getelementptr inbounds i8, ptr %0, i64 2200
  %207 = getelementptr inbounds i8, ptr %0, i64 2272
  %208 = getelementptr inbounds i8, ptr %0, i64 2280
  br label %211

.preheader:                                       ; preds = %230, %._crit_edge
  %.5299.lcssa = phi double [ %.4298, %._crit_edge ], [ %218, %230 ]
  %.not335345 = icmp slt i64 %.pre-phi, 1
  br i1 %.not335345, label %.loopexit, label %.lr.ph347

.lr.ph347:                                        ; preds = %.preheader
  %209 = getelementptr inbounds i8, ptr %0, i64 1352
  %210 = add nuw i64 %.pre-phi, 1
  br label %232

211:                                              ; preds = %.lr.ph343, %230
  %.3326341 = phi i64 [ 0, %.lr.ph343 ], [ %231, %230 ]
  %212 = tail call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.0313, ptr noundef nonnull %205, ptr noundef nonnull %206, i64 noundef %.3326341, ptr noundef %1)
  %213 = load ptr, ptr %207, align 8, !tbaa !21
  %214 = getelementptr inbounds ptr, ptr %213, i64 %.3326341
  %215 = load ptr, ptr %214, align 8, !tbaa !43
  %216 = getelementptr inbounds double, ptr %215, i64 %.0313
  %217 = load double, ptr %216, align 8, !tbaa !23
  %218 = fsub double %212, %217
  %.not337 = icmp slt i64 %.3326341, %.0310
  br i1 %.not337, label %221, label %219

219:                                              ; preds = %211
  %220 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %218, double noundef 0.000000e+00)
  br i1 %220, label %230, label %221

221:                                              ; preds = %219, %211
  %222 = load double, ptr %200, align 8, !tbaa !42
  %223 = load double, ptr %208, align 8, !tbaa !44
  %224 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %218, ptr noundef %1)
  %225 = tail call double @llvm.fmuladd.f64(double %223, double %224, double %222)
  store double %225, ptr %200, align 8, !tbaa !42
  %226 = load double, ptr %208, align 8, !tbaa !44
  %227 = tail call noundef i64 @_ZN11alglib_impl7ae_signEdPNS_8ae_stateE(double noundef %218, ptr noundef %1)
  %228 = sitofp i64 %227 to double
  %229 = fmul double %226, %228
  tail call void @_ZN11alglib_impl6raddrvEldPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0313, double noundef %229, ptr noundef nonnull %206, i64 noundef %.3326341, ptr noundef nonnull %203, ptr noundef %1)
  br label %230

230:                                              ; preds = %219, %221
  %231 = add nuw nsw i64 %.3326341, 1
  %exitcond352.not = icmp eq i64 %231, %204
  br i1 %exitcond352.not, label %.preheader, label %211, !llvm.loop !45

232:                                              ; preds = %.lr.ph347, %249
  %.4327346 = phi i64 [ 1, %.lr.ph347 ], [ %250, %249 ]
  %233 = load ptr, ptr %196, align 8, !tbaa !21
  %234 = getelementptr inbounds double, ptr %233, i64 %.4327346
  %235 = load double, ptr %234, align 8, !tbaa !23
  %.not336 = icmp sgt i64 %.4327346, %.0304
  br i1 %.not336, label %238, label %236

236:                                              ; preds = %232
  %237 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %235, double noundef 0.000000e+00)
  br i1 %237, label %249, label %240

238:                                              ; preds = %232
  %239 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %235, double noundef 0.000000e+00)
  br i1 %239, label %249, label %240

240:                                              ; preds = %236, %238
  %241 = load double, ptr %200, align 8, !tbaa !42
  %242 = load double, ptr %209, align 8, !tbaa !46
  %243 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %235, ptr noundef %1)
  %244 = tail call double @llvm.fmuladd.f64(double %242, double %243, double %241)
  store double %244, ptr %200, align 8, !tbaa !42
  %245 = load double, ptr %209, align 8, !tbaa !46
  %246 = tail call noundef i64 @_ZN11alglib_impl7ae_signEdPNS_8ae_stateE(double noundef %235, ptr noundef %1)
  %247 = sitofp i64 %246 to double
  %248 = fmul double %245, %247
  tail call void @_ZN11alglib_impl6raddrvEldPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.0313, double noundef %248, ptr noundef nonnull %201, i64 noundef %.4327346, ptr noundef nonnull %203, ptr noundef %1)
  br label %249

249:                                              ; preds = %238, %236, %240
  %250 = add nuw i64 %.4327346, 1
  %exitcond353.not = icmp eq i64 %.4327346, %.pre-phi
  br i1 %exitcond353.not, label %.loopexit, label %232, !llvm.loop !47

251:                                              ; preds = %72, %66, %149, %144, %76
  %.sink = phi i32 [ 2, %149 ], [ 1, %144 ], [ 0, %76 ], [ 3, %66 ], [ 3, %72 ]
  %.5328 = phi i64 [ %.0323, %149 ], [ %.0323, %144 ], [ %.1324, %76 ], [ %.1324, %66 ], [ %.1324, %72 ]
  %.5321 = phi i64 [ %.0316, %149 ], [ %.2318, %144 ], [ %.1317, %76 ], [ %.1317, %66 ], [ %.1317, %72 ]
  %.2315 = phi i64 [ %.0313, %149 ], [ %.0313, %144 ], [ %.1314, %76 ], [ %.1314, %66 ], [ %.1314, %72 ]
  %.2312 = phi i64 [ %.0310, %149 ], [ %.0310, %144 ], [ %.1311, %76 ], [ %.1311, %66 ], [ %.1311, %72 ]
  %.2309 = phi i64 [ %.0307, %149 ], [ %.0307, %144 ], [ %.1308, %76 ], [ %.1308, %66 ], [ %.1308, %72 ]
  %.2306 = phi i64 [ %.0304, %149 ], [ %.0304, %144 ], [ %.1305, %76 ], [ %.1305, %66 ], [ %.1305, %72 ]
  %.2303 = phi i64 [ %.0301, %149 ], [ %.0301, %144 ], [ %.1302, %76 ], [ %.1302, %66 ], [ %.1302, %72 ]
  %.7 = phi double [ %.0294, %149 ], [ %100, %144 ], [ %.1295, %76 ], [ %.1295, %66 ], [ %.1295, %72 ]
  %.6293 = phi double [ %.0287, %149 ], [ %.3290, %144 ], [ %.1288, %76 ], [ %.1288, %66 ], [ %.1288, %72 ]
  %.6 = phi double [ %.0, %149 ], [ %.3, %144 ], [ %.1, %76 ], [ %.1, %66 ], [ %.1, %72 ]
  store i32 %.sink, ptr %3, align 8, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %0, i64 776
  %253 = load ptr, ptr %252, align 8, !tbaa !21
  store i64 %.5328, ptr %253, align 8, !tbaa !22
  %254 = load ptr, ptr %252, align 8, !tbaa !21
  %255 = getelementptr inbounds i8, ptr %254, i64 8
  store i64 %.0322, ptr %255, align 8, !tbaa !22
  %256 = load ptr, ptr %252, align 8, !tbaa !21
  %257 = getelementptr inbounds i8, ptr %256, i64 16
  store i64 %.5321, ptr %257, align 8, !tbaa !22
  %258 = load ptr, ptr %252, align 8, !tbaa !21
  %259 = getelementptr inbounds i8, ptr %258, i64 24
  store i64 %.2315, ptr %259, align 8, !tbaa !22
  %260 = load ptr, ptr %252, align 8, !tbaa !21
  %261 = getelementptr inbounds i8, ptr %260, i64 32
  store i64 %.2312, ptr %261, align 8, !tbaa !22
  %262 = load ptr, ptr %252, align 8, !tbaa !21
  %263 = getelementptr inbounds i8, ptr %262, i64 40
  store i64 %.2309, ptr %263, align 8, !tbaa !22
  %264 = load ptr, ptr %252, align 8, !tbaa !21
  %265 = getelementptr inbounds i8, ptr %264, i64 48
  store i64 %.2306, ptr %265, align 8, !tbaa !22
  %266 = load ptr, ptr %252, align 8, !tbaa !21
  %267 = getelementptr inbounds i8, ptr %266, i64 56
  store i64 %.2303, ptr %267, align 8, !tbaa !22
  %268 = getelementptr inbounds i8, ptr %0, i64 904
  %269 = load ptr, ptr %268, align 8, !tbaa !21
  store double %.7, ptr %269, align 8, !tbaa !23
  %270 = load ptr, ptr %268, align 8, !tbaa !21
  %271 = getelementptr inbounds i8, ptr %270, i64 8
  store double %.6293, ptr %271, align 8, !tbaa !23
  %272 = load ptr, ptr %268, align 8, !tbaa !21
  %273 = getelementptr inbounds i8, ptr %272, i64 16
  store double %.6, ptr %273, align 8, !tbaa !23
  br label %274

274:                                              ; preds = %32, %.loopexit, %251
  %.0329 = phi i1 [ true, %251 ], [ false, %.loopexit ], [ false, %32 ]
  ret i1 %.0329
}

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

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

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

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

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

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

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

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

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

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

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

declare noundef i64 @_ZN11alglib_impl7ae_signEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl11rmergemulvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl5rsetcEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL24minns_clearrequestfieldsEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL18minns_agsiterationEPNS_10minnsstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20minns_unscalepointbcEPKNS_10minnsstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl10rcopymulvcEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl6raddvcEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl6raddrvEldPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

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

attributes #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 #1 = { 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 #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { mustprogress nounwind 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 #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }

!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, !17, i64 712}
!6 = !{!"_ZTSN11alglib_impl10minnsstateE", !7, i64 0, !7, i64 8, !10, i64 16, !7, i64 24, !11, i64 32, !10, i64 40, !12, i64 48, !12, i64 112, !12, i64 176, !12, i64 240, !12, i64 304, !7, i64 368, !7, i64 376, !15, i64 384, !7, i64 464, !7, i64 472, !7, i64 480, !12, i64 488, !10, i64 552, !12, i64 560, !15, i64 624, !11, i64 704, !11, i64 705, !11, i64 706, !16, i64 712, !16, i64 976, !18, i64 1240, !10, i64 1264, !7, i64 1272, !10, i64 1280, !10, i64 1288, !10, i64 1296, !10, i64 1304, !10, i64 1312, !10, i64 1320, !10, i64 1328, !10, i64 1336, !7, i64 1344, !10, i64 1352, !7, i64 1360, !7, i64 1368, !7, i64 1376, !7, i64 1384, !10, i64 1392, !10, i64 1400, !12, i64 1408, !12, i64 1472, !12, i64 1536, !12, i64 1600, !12, i64 1664, !10, i64 1728, !10, i64 1736, !12, i64 1744, !12, i64 1808, !12, i64 1872, !12, i64 1936, !12, i64 2000, !11, i64 2064, !12, i64 2072, !12, i64 2136, !15, i64 2200, !10, i64 2280, !15, i64 2288, !15, i64 2368, !15, i64 2448, !12, i64 2528, !19, i64 2592, !12, i64 5336, !12, i64 5400, !15, i64 5464, !12, i64 5544, !12, i64 5608, !12, i64 5672, !12, i64 5736, !12, i64 5800, !12, i64 5864, !7, i64 5928, !7, i64 5936, !7, i64 5944, !7, i64 5952, !7, i64 5960, !7, i64 5968, !10, i64 5976, !10, i64 5984, !7, i64 5992}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !13, i64 24, !8, i64 56}
!13 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!14 = !{!"any pointer", !8, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !13, i64 40, !8, i64 72}
!16 = !{!"_ZTSN11alglib_impl10rcommstateE", !17, i64 0, !12, i64 8, !12, i64 72, !12, i64 136, !12, i64 200}
!17 = !{!"int", !8, i64 0}
!18 = !{!"_ZTSN11alglib_impl10hqrndstateE", !7, i64 0, !7, i64 8, !7, i64 16}
!19 = !{!"_ZTSN11alglib_impl7minnsqpE", !10, i64 0, !10, i64 8, !12, i64 16, !12, i64 80, !12, i64 144, !12, i64 208, !12, i64 272, !15, i64 336, !15, i64 416, !15, i64 496, !12, i64 576, !12, i64 640, !12, i64 704, !12, i64 768, !12, i64 832, !12, i64 896, !15, i64 960, !12, i64 1040, !20, i64 1104}
!20 = !{!"_ZTSN11alglib_impl11snnlssolverE", !7, i64 0, !7, i64 8, !7, i64 16, !15, i64 24, !12, i64 104, !12, i64 168, !10, i64 232, !7, i64 240, !12, i64 248, !12, i64 312, !15, i64 376, !15, i64 456, !15, i64 536, !12, i64 616, !12, i64 680, !12, i64 744, !12, i64 808, !12, i64 872, !12, i64 936, !12, i64 1000, !12, i64 1064, !12, i64 1128, !12, i64 1192, !12, i64 1256, !12, i64 1320, !12, i64 1384, !12, i64 1448, !12, i64 1512, !12, i64 1576}
!21 = !{!8, !8, i64 0}
!22 = !{!7, !7, i64 0}
!23 = !{!10, !10, i64 0}
!24 = !{!6, !11, i64 2064}
!25 = !{!6, !7, i64 8}
!26 = !{!6, !7, i64 368}
!27 = !{!6, !7, i64 376}
!28 = !{!6, !7, i64 464}
!29 = !{!6, !7, i64 472}
!30 = !{!6, !7, i64 0}
!31 = !{!6, !10, i64 40}
!32 = !{!6, !17, i64 976}
!33 = !{!6, !11, i64 704}
!34 = !{i8 0, i8 2}
!35 = !{}
!36 = !{!6, !11, i64 705}
!37 = !{!6, !7, i64 5944}
!38 = !{!11, !11, i64 0}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!6, !10, i64 1728}
!42 = !{!6, !10, i64 1736}
!43 = !{!14, !14, i64 0}
!44 = !{!6, !10, i64 2280}
!45 = distinct !{!45, !40}
!46 = !{!6, !10, i64 1352}
!47 = distinct !{!47, !40}


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