; LLVM IR from venumb/ZSPACE :: cpp/depends/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::minslpstate" = type { i64, i64, i64, i64, i64, %"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", double, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, i8, i8, double, double, %"struct.alglib_impl::minslpsubsolver", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::linminstate", i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"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_matrix", double, 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_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, double, i64, %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64, i64, double, i64, double, i64, double, i64, %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::minslpsubsolver" = type { %"struct.alglib_impl::dualsimplexstate", %"struct.alglib_impl::dualsimplexsettings", %"struct.alglib_impl::dualsimplexbasis", i8, %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::dualsimplexstate" = type { %"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::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::dualsimplexbasis", %"struct.alglib_impl::dualsimplexsubproblem", %"struct.alglib_impl::dualsimplexsubproblem", %"struct.alglib_impl::dualsimplexsubproblem", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_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::dualsimplexsubproblem" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::dualsimplexsettings" = type { double, double, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::dualsimplexbasis" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"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", 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", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sluv2buffer", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::sluv2buffer" = type { i64, %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sluv2list1matrix", %"struct.alglib_impl::sluv2list1matrix", %"struct.alglib_impl::sluv2sparsetrail", %"struct.alglib_impl::sluv2densetrail", %"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", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sluv2list1matrix" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64 }
%"struct.alglib_impl::sluv2sparsetrail" = type { i64, i64, %"struct.alglib_impl::ae_vector", i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sluv2densetrail" = type { i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::linminstate" = type { i8, i8, i64, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"struct.alglib_impl::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 }
%"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" }

@_ZN11alglib_implL23nlcslp_slpdeltadecreaseE = external hidden global double, align 8
@_ZN11alglib_implL23nlcslp_slpdeltaincreaseE = external hidden global double, align 8
@_ZN11alglib_implL23nlcslp_slpstpclosetooneE = external hidden global double, align 8
@_ZN11alglib_implL19nlcslp_inittrustradE = external hidden global double, align 8
@_ZN11alglib_implL25nlcslp_augmentationfactorE = external hidden global double, align 8
@_ZN11alglib_implL21nlcslp_stagnationepsxE = external hidden global double, align 8
@_ZN11alglib_implL21nlcslp_stagnationepsfE = external hidden global double, align 8
@_ZN11alglib_implL23nlcslp_xstagnationlimitE = external hidden global i64, align 8
@_ZN11alglib_implL23nlcslp_fstagnationlimitE = external hidden global i64, align 8

; 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 noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef, double noundef) #1

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl16checklcviolationEPNS_9ae_matrixEPNS_9ae_vectorEllS3_lPdPlPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl17checknlcviolationEPNS_9ae_vectorEllPdPlPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) #2

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 void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl15minslpiterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i1 noundef zeroext %2, ptr noundef %3) #2 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca ptr, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca i8, align 1
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca i64, align 8
  %28 = alloca double, align 8
  %29 = alloca i8, align 1
  %30 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  %31 = zext i1 %2 to i8
  store i8 %31, ptr %8, align 1, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #4
  %32 = load ptr, ptr %6, align 8, !tbaa !5
  %33 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %32, i32 0, i32 71
  %34 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %33, i32 0, i32 0
  %35 = load i32, ptr %34, align 8, !tbaa !11
  %36 = icmp sge i32 %35, 0
  br i1 %36, label %37, label %173

37:                                               ; preds = %4
  %38 = load ptr, ptr %6, align 8, !tbaa !5
  %39 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %38, i32 0, i32 71
  %40 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %39, i32 0, i32 1
  %41 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %40, i32 0, i32 4
  %42 = load ptr, ptr %41, align 8, !tbaa !31
  %43 = getelementptr inbounds i64, ptr %42, i64 0
  %44 = load i64, ptr %43, align 8, !tbaa !32
  store i64 %44, ptr %10, align 8, !tbaa !32
  %45 = load ptr, ptr %6, align 8, !tbaa !5
  %46 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %45, i32 0, i32 71
  %47 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %46, i32 0, i32 1
  %48 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %47, i32 0, i32 4
  %49 = load ptr, ptr %48, align 8, !tbaa !31
  %50 = getelementptr inbounds i64, ptr %49, i64 1
  %51 = load i64, ptr %50, align 8, !tbaa !32
  store i64 %51, ptr %11, align 8, !tbaa !32
  %52 = load ptr, ptr %6, align 8, !tbaa !5
  %53 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %52, i32 0, i32 71
  %54 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %53, i32 0, i32 1
  %55 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %54, i32 0, i32 4
  %56 = load ptr, ptr %55, align 8, !tbaa !31
  %57 = getelementptr inbounds i64, ptr %56, i64 2
  %58 = load i64, ptr %57, align 8, !tbaa !32
  store i64 %58, ptr %12, align 8, !tbaa !32
  %59 = load ptr, ptr %6, align 8, !tbaa !5
  %60 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %59, i32 0, i32 71
  %61 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %60, i32 0, i32 1
  %62 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %61, i32 0, i32 4
  %63 = load ptr, ptr %62, align 8, !tbaa !31
  %64 = getelementptr inbounds i64, ptr %63, i64 3
  %65 = load i64, ptr %64, align 8, !tbaa !32
  store i64 %65, ptr %13, align 8, !tbaa !32
  %66 = load ptr, ptr %6, align 8, !tbaa !5
  %67 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %66, i32 0, i32 71
  %68 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %67, i32 0, i32 1
  %69 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %68, i32 0, i32 4
  %70 = load ptr, ptr %69, align 8, !tbaa !31
  %71 = getelementptr inbounds i64, ptr %70, i64 4
  %72 = load i64, ptr %71, align 8, !tbaa !32
  store i64 %72, ptr %14, align 8, !tbaa !32
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  %74 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %73, i32 0, i32 71
  %75 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %74, i32 0, i32 1
  %76 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %75, i32 0, i32 4
  %77 = load ptr, ptr %76, align 8, !tbaa !31
  %78 = getelementptr inbounds i64, ptr %77, i64 5
  %79 = load i64, ptr %78, align 8, !tbaa !32
  store i64 %79, ptr %15, align 8, !tbaa !32
  %80 = load ptr, ptr %6, align 8, !tbaa !5
  %81 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %80, i32 0, i32 71
  %82 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %81, i32 0, i32 1
  %83 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %82, i32 0, i32 4
  %84 = load ptr, ptr %83, align 8, !tbaa !31
  %85 = getelementptr inbounds i64, ptr %84, i64 6
  %86 = load i64, ptr %85, align 8, !tbaa !32
  store i64 %86, ptr %16, align 8, !tbaa !32
  %87 = load ptr, ptr %6, align 8, !tbaa !5
  %88 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %87, i32 0, i32 71
  %89 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %88, i32 0, i32 1
  %90 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %89, i32 0, i32 4
  %91 = load ptr, ptr %90, align 8, !tbaa !31
  %92 = getelementptr inbounds i64, ptr %91, i64 7
  %93 = load i64, ptr %92, align 8, !tbaa !32
  store i64 %93, ptr %17, align 8, !tbaa !32
  %94 = load ptr, ptr %6, align 8, !tbaa !5
  %95 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %94, i32 0, i32 71
  %96 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %95, i32 0, i32 1
  %97 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %96, i32 0, i32 4
  %98 = load ptr, ptr %97, align 8, !tbaa !31
  %99 = getelementptr inbounds i64, ptr %98, i64 8
  %100 = load i64, ptr %99, align 8, !tbaa !32
  store i64 %100, ptr %18, align 8, !tbaa !32
  %101 = load ptr, ptr %6, align 8, !tbaa !5
  %102 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %101, i32 0, i32 71
  %103 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %102, i32 0, i32 1
  %104 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %103, i32 0, i32 4
  %105 = load ptr, ptr %104, align 8, !tbaa !31
  %106 = getelementptr inbounds i64, ptr %105, i64 9
  %107 = load i64, ptr %106, align 8, !tbaa !32
  store i64 %107, ptr %27, align 8, !tbaa !32
  %108 = load ptr, ptr %6, align 8, !tbaa !5
  %109 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %108, i32 0, i32 71
  %110 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %109, i32 0, i32 2
  %111 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %110, i32 0, i32 4
  %112 = load ptr, ptr %111, align 8, !tbaa !31
  %113 = getelementptr inbounds i8, ptr %112, i64 0
  %114 = load i8, ptr %113, align 1, !tbaa !9, !range !33, !noundef !34
  %115 = trunc i8 %114 to i1
  %116 = zext i1 %115 to i8
  store i8 %116, ptr %22, align 1, !tbaa !9
  %117 = load ptr, ptr %6, align 8, !tbaa !5
  %118 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %117, i32 0, i32 71
  %119 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %118, i32 0, i32 3
  %120 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %119, i32 0, i32 4
  %121 = load ptr, ptr %120, align 8, !tbaa !31
  %122 = getelementptr inbounds double, ptr %121, i64 0
  %123 = load double, ptr %122, align 8, !tbaa !35
  store double %123, ptr %19, align 8, !tbaa !35
  %124 = load ptr, ptr %6, align 8, !tbaa !5
  %125 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %124, i32 0, i32 71
  %126 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %125, i32 0, i32 3
  %127 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %126, i32 0, i32 4
  %128 = load ptr, ptr %127, align 8, !tbaa !31
  %129 = getelementptr inbounds double, ptr %128, i64 1
  %130 = load double, ptr %129, align 8, !tbaa !35
  store double %130, ptr %20, align 8, !tbaa !35
  %131 = load ptr, ptr %6, align 8, !tbaa !5
  %132 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %131, i32 0, i32 71
  %133 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %132, i32 0, i32 3
  %134 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %133, i32 0, i32 4
  %135 = load ptr, ptr %134, align 8, !tbaa !31
  %136 = getelementptr inbounds double, ptr %135, i64 2
  %137 = load double, ptr %136, align 8, !tbaa !35
  store double %137, ptr %21, align 8, !tbaa !35
  %138 = load ptr, ptr %6, align 8, !tbaa !5
  %139 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %138, i32 0, i32 71
  %140 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %139, i32 0, i32 3
  %141 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %140, i32 0, i32 4
  %142 = load ptr, ptr %141, align 8, !tbaa !31
  %143 = getelementptr inbounds double, ptr %142, i64 3
  %144 = load double, ptr %143, align 8, !tbaa !35
  store double %144, ptr %23, align 8, !tbaa !35
  %145 = load ptr, ptr %6, align 8, !tbaa !5
  %146 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %145, i32 0, i32 71
  %147 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %146, i32 0, i32 3
  %148 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %147, i32 0, i32 4
  %149 = load ptr, ptr %148, align 8, !tbaa !31
  %150 = getelementptr inbounds double, ptr %149, i64 4
  %151 = load double, ptr %150, align 8, !tbaa !35
  store double %151, ptr %24, align 8, !tbaa !35
  %152 = load ptr, ptr %6, align 8, !tbaa !5
  %153 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %152, i32 0, i32 71
  %154 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %153, i32 0, i32 3
  %155 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %154, i32 0, i32 4
  %156 = load ptr, ptr %155, align 8, !tbaa !31
  %157 = getelementptr inbounds double, ptr %156, i64 5
  %158 = load double, ptr %157, align 8, !tbaa !35
  store double %158, ptr %25, align 8, !tbaa !35
  %159 = load ptr, ptr %6, align 8, !tbaa !5
  %160 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %159, i32 0, i32 71
  %161 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %160, i32 0, i32 3
  %162 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %161, i32 0, i32 4
  %163 = load ptr, ptr %162, align 8, !tbaa !31
  %164 = getelementptr inbounds double, ptr %163, i64 6
  %165 = load double, ptr %164, align 8, !tbaa !35
  store double %165, ptr %26, align 8, !tbaa !35
  %166 = load ptr, ptr %6, align 8, !tbaa !5
  %167 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %166, i32 0, i32 71
  %168 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %167, i32 0, i32 3
  %169 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %168, i32 0, i32 4
  %170 = load ptr, ptr %169, align 8, !tbaa !31
  %171 = getelementptr inbounds double, ptr %170, i64 7
  %172 = load double, ptr %171, align 8, !tbaa !35
  store double %172, ptr %28, align 8, !tbaa !35
  br label %174

173:                                              ; preds = %4
  store i64 359, ptr %10, align 8, !tbaa !32
  store i64 -58, ptr %11, align 8, !tbaa !32
  store i64 -919, ptr %12, align 8, !tbaa !32
  store i64 -909, ptr %13, align 8, !tbaa !32
  store i64 81, ptr %14, align 8, !tbaa !32
  store i64 255, ptr %15, align 8, !tbaa !32
  store i64 74, ptr %16, align 8, !tbaa !32
  store i64 -788, ptr %17, align 8, !tbaa !32
  store i64 809, ptr %18, align 8, !tbaa !32
  store i64 205, ptr %27, align 8, !tbaa !32
  store i8 0, ptr %22, align 1, !tbaa !9
  store double 9.390000e+02, ptr %19, align 8, !tbaa !35
  store double -5.260000e+02, ptr %20, align 8, !tbaa !35
  store double 7.630000e+02, ptr %21, align 8, !tbaa !35
  store double -5.410000e+02, ptr %23, align 8, !tbaa !35
  store double -6.980000e+02, ptr %24, align 8, !tbaa !35
  store double -9.000000e+02, ptr %25, align 8, !tbaa !35
  store double -3.180000e+02, ptr %26, align 8, !tbaa !35
  store double -9.400000e+02, ptr %28, align 8, !tbaa !35
  br label %174

174:                                              ; preds = %173, %37
  %175 = load ptr, ptr %6, align 8, !tbaa !5
  %176 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %175, i32 0, i32 71
  %177 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %176, i32 0, i32 0
  %178 = load i32, ptr %177, align 8, !tbaa !11
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %181

180:                                              ; preds = %174
  br label %277

181:                                              ; preds = %174
  %182 = load ptr, ptr %6, align 8, !tbaa !5
  %183 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %182, i32 0, i32 71
  %184 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %183, i32 0, i32 0
  %185 = load i32, ptr %184, align 8, !tbaa !11
  %186 = icmp eq i32 %185, 1
  br i1 %186, label %187, label %188

187:                                              ; preds = %181
  br label %347

188:                                              ; preds = %181
  %189 = load ptr, ptr %6, align 8, !tbaa !5
  %190 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %189, i32 0, i32 71
  %191 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %190, i32 0, i32 0
  %192 = load i32, ptr %191, align 8, !tbaa !11
  %193 = icmp eq i32 %192, 2
  br i1 %193, label %194, label %195

194:                                              ; preds = %188
  br label %545

195:                                              ; preds = %188
  %196 = load ptr, ptr %6, align 8, !tbaa !5
  %197 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %196, i32 0, i32 71
  %198 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %197, i32 0, i32 0
  %199 = load i32, ptr %198, align 8, !tbaa !11
  %200 = icmp eq i32 %199, 3
  br i1 %200, label %201, label %202

201:                                              ; preds = %195
  br label %583

202:                                              ; preds = %195
  %203 = load ptr, ptr %6, align 8, !tbaa !5
  %204 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %203, i32 0, i32 71
  %205 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %204, i32 0, i32 0
  %206 = load i32, ptr %205, align 8, !tbaa !11
  %207 = icmp eq i32 %206, 4
  br i1 %207, label %208, label %209

208:                                              ; preds = %202
  br label %649

209:                                              ; preds = %202
  %210 = load ptr, ptr %6, align 8, !tbaa !5
  %211 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %210, i32 0, i32 0
  %212 = load i64, ptr %211, align 8, !tbaa !36
  store i64 %212, ptr %10, align 8, !tbaa !32
  %213 = load ptr, ptr %6, align 8, !tbaa !5
  %214 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %213, i32 0, i32 1
  %215 = load i64, ptr %214, align 8, !tbaa !37
  store i64 %215, ptr %12, align 8, !tbaa !32
  %216 = load ptr, ptr %6, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %216, i32 0, i32 2
  %218 = load i64, ptr %217, align 8, !tbaa !38
  store i64 %218, ptr %13, align 8, !tbaa !32
  %219 = load ptr, ptr %6, align 8, !tbaa !5
  %220 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %219, i32 0, i32 3
  %221 = load i64, ptr %220, align 8, !tbaa !39
  store i64 %221, ptr %14, align 8, !tbaa !32
  %222 = load ptr, ptr %6, align 8, !tbaa !5
  %223 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %222, i32 0, i32 4
  %224 = load i64, ptr %223, align 8, !tbaa !40
  store i64 %224, ptr %15, align 8, !tbaa !32
  %225 = load i64, ptr %10, align 8, !tbaa !32
  %226 = load i64, ptr %12, align 8, !tbaa !32
  %227 = load i64, ptr %14, align 8, !tbaa !32
  %228 = add nsw i64 %226, %227
  %229 = mul nsw i64 2, %228
  %230 = add nsw i64 %225, %229
  %231 = load i64, ptr %13, align 8, !tbaa !32
  %232 = load i64, ptr %15, align 8, !tbaa !32
  %233 = add nsw i64 %231, %232
  %234 = add nsw i64 %230, %233
  store i64 %234, ptr %11, align 8, !tbaa !32
  %235 = load ptr, ptr %6, align 8, !tbaa !5
  %236 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %235, i32 0, i32 18
  store i8 0, ptr %236, align 8, !tbaa !41
  %237 = load ptr, ptr %6, align 8, !tbaa !5
  %238 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %237, i32 0, i32 19
  store i8 0, ptr %238, align 1, !tbaa !42
  %239 = load ptr, ptr %6, align 8, !tbaa !5
  %240 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %239, i32 0, i32 27
  store i64 0, ptr %240, align 8, !tbaa !43
  %241 = load ptr, ptr %6, align 8, !tbaa !5
  %242 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %241, i32 0, i32 28
  store i64 0, ptr %242, align 8, !tbaa !44
  %243 = load double, ptr @_ZN11alglib_implL19nlcslp_inittrustradE, align 8, !tbaa !35
  %244 = load ptr, ptr %6, align 8, !tbaa !5
  %245 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %244, i32 0, i32 20
  store double %243, ptr %245, align 8, !tbaa !45
  store i64 0, ptr %16, align 8, !tbaa !32
  br label %246

246:                                              ; preds = %264, %209
  %247 = load i64, ptr %16, align 8, !tbaa !32
  %248 = load i64, ptr %12, align 8, !tbaa !32
  %249 = load i64, ptr %13, align 8, !tbaa !32
  %250 = add nsw i64 %248, %249
  %251 = load i64, ptr %14, align 8, !tbaa !32
  %252 = add nsw i64 %250, %251
  %253 = load i64, ptr %15, align 8, !tbaa !32
  %254 = add nsw i64 %252, %253
  %255 = sub nsw i64 %254, 1
  %256 = icmp sle i64 %247, %255
  br i1 %256, label %257, label %267

257:                                              ; preds = %246
  %258 = load ptr, ptr %6, align 8, !tbaa !5
  %259 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %258, i32 0, i32 49
  %260 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %259, i32 0, i32 4
  %261 = load ptr, ptr %260, align 8, !tbaa !31
  %262 = load i64, ptr %16, align 8, !tbaa !32
  %263 = getelementptr inbounds double, ptr %261, i64 %262
  store double 0.000000e+00, ptr %263, align 8, !tbaa !35
  br label %264

264:                                              ; preds = %257
  %265 = load i64, ptr %16, align 8, !tbaa !32
  %266 = add nsw i64 %265, 1
  store i64 %266, ptr %16, align 8, !tbaa !32
  br label %246, !llvm.loop !46

267:                                              ; preds = %246
  store double 0.000000e+00, ptr %23, align 8, !tbaa !35
  store i64 0, ptr %27, align 8, !tbaa !32
  store double 0.000000e+00, ptr %28, align 8, !tbaa !35
  %268 = load ptr, ptr %6, align 8, !tbaa !5
  %269 = load ptr, ptr %6, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %269, i32 0, i32 30
  %271 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcslp_slpsendxEPNS_11minslpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %268, ptr noundef %270, ptr noundef %271)
  %272 = load ptr, ptr %6, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %272, i32 0, i32 18
  store i8 1, ptr %273, align 8, !tbaa !41
  %274 = load ptr, ptr %6, align 8, !tbaa !5
  %275 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %274, i32 0, i32 71
  %276 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %275, i32 0, i32 0
  store i32 0, ptr %276, align 8, !tbaa !11
  br label %894

277:                                              ; preds = %180
  %278 = load ptr, ptr %6, align 8, !tbaa !5
  %279 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %278, i32 0, i32 18
  store i8 0, ptr %279, align 8, !tbaa !41
  %280 = load ptr, ptr %6, align 8, !tbaa !5
  %281 = load ptr, ptr %6, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %281, i32 0, i32 34
  %283 = load ptr, ptr %6, align 8, !tbaa !5
  %284 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %283, i32 0, i32 38
  %285 = load ptr, ptr %9, align 8, !tbaa !5
  %286 = call noundef zeroext i1 @_ZN11alglib_implL21nlcslp_slpretrievefijEPNS_11minslpstateEPNS_9ae_vectorEPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef %280, ptr noundef %282, ptr noundef %284, ptr noundef %285)
  br i1 %286, label %315, label %287

287:                                              ; preds = %277
  store i64 0, ptr %16, align 8, !tbaa !32
  br label %288

288:                                              ; preds = %307, %287
  %289 = load i64, ptr %16, align 8, !tbaa !32
  %290 = load i64, ptr %10, align 8, !tbaa !32
  %291 = sub nsw i64 %290, 1
  %292 = icmp sle i64 %289, %291
  br i1 %292, label %293, label %310

293:                                              ; preds = %288
  %294 = load ptr, ptr %6, align 8, !tbaa !5
  %295 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %294, i32 0, i32 30
  %296 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %295, i32 0, i32 4
  %297 = load ptr, ptr %296, align 8, !tbaa !31
  %298 = load i64, ptr %16, align 8, !tbaa !32
  %299 = getelementptr inbounds double, ptr %297, i64 %298
  %300 = load double, ptr %299, align 8, !tbaa !35
  %301 = load ptr, ptr %6, align 8, !tbaa !5
  %302 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %301, i32 0, i32 31
  %303 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %302, i32 0, i32 4
  %304 = load ptr, ptr %303, align 8, !tbaa !31
  %305 = load i64, ptr %16, align 8, !tbaa !32
  %306 = getelementptr inbounds double, ptr %304, i64 %305
  store double %300, ptr %306, align 8, !tbaa !35
  br label %307

307:                                              ; preds = %293
  %308 = load i64, ptr %16, align 8, !tbaa !32
  %309 = add nsw i64 %308, 1
  store i64 %309, ptr %16, align 8, !tbaa !32
  br label %288, !llvm.loop !48

310:                                              ; preds = %288
  %311 = load ptr, ptr %6, align 8, !tbaa !5
  %312 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %311, i32 0, i32 64
  store i64 -8, ptr %312, align 8, !tbaa !49
  store i8 0, ptr %29, align 1, !tbaa !9
  %313 = load i8, ptr %29, align 1, !tbaa !9, !range !33, !noundef !34
  %314 = trunc i8 %313 to i1
  store i1 %314, ptr %5, align 1
  store i32 1, ptr %30, align 4
  br label %1032

315:                                              ; preds = %277
  %316 = load ptr, ptr %6, align 8, !tbaa !5
  %317 = load ptr, ptr %6, align 8, !tbaa !5
  %318 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %317, i32 0, i32 30
  %319 = load ptr, ptr %6, align 8, !tbaa !5
  %320 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %319, i32 0, i32 34
  %321 = load ptr, ptr %6, align 8, !tbaa !5
  %322 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %321, i32 0, i32 38
  %323 = load ptr, ptr %6, align 8, !tbaa !5
  %324 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %323, i32 0, i32 31
  %325 = load ptr, ptr %6, align 8, !tbaa !5
  %326 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %325, i32 0, i32 35
  %327 = load ptr, ptr %6, align 8, !tbaa !5
  %328 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %327, i32 0, i32 39
  %329 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcslp_slpcopystateEPNS_11minslpstateEPNS_9ae_vectorES3_PNS_9ae_matrixES3_S3_S5_PNS_8ae_stateE(ptr noundef %316, ptr noundef %318, ptr noundef %320, ptr noundef %322, ptr noundef %324, ptr noundef %326, ptr noundef %328, ptr noundef %329)
  %330 = load ptr, ptr %6, align 8, !tbaa !5
  %331 = load ptr, ptr %6, align 8, !tbaa !5
  %332 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %331, i32 0, i32 31
  %333 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcslp_slpsendxEPNS_11minslpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %330, ptr noundef %332, ptr noundef %333)
  %334 = load ptr, ptr %6, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %334, i32 0, i32 35
  %336 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %335, i32 0, i32 4
  %337 = load ptr, ptr %336, align 8, !tbaa !31
  %338 = getelementptr inbounds double, ptr %337, i64 0
  %339 = load double, ptr %338, align 8, !tbaa !35
  %340 = load ptr, ptr %6, align 8, !tbaa !5
  %341 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %340, i32 0, i32 17
  store double %339, ptr %341, align 8, !tbaa !50
  %342 = load ptr, ptr %6, align 8, !tbaa !5
  %343 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %342, i32 0, i32 19
  store i8 1, ptr %343, align 1, !tbaa !42
  %344 = load ptr, ptr %6, align 8, !tbaa !5
  %345 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %344, i32 0, i32 71
  %346 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %345, i32 0, i32 0
  store i32 1, ptr %346, align 8, !tbaa !11
  br label %894

347:                                              ; preds = %187
  %348 = load ptr, ptr %6, align 8, !tbaa !5
  %349 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %348, i32 0, i32 19
  store i8 0, ptr %349, align 1, !tbaa !42
  %350 = load ptr, ptr %6, align 8, !tbaa !5
  %351 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %350, i32 0, i32 5
  %352 = load ptr, ptr %6, align 8, !tbaa !5
  %353 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %352, i32 0, i32 6
  %354 = load i64, ptr %12, align 8, !tbaa !32
  %355 = load i64, ptr %13, align 8, !tbaa !32
  %356 = load ptr, ptr %6, align 8, !tbaa !5
  %357 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %356, i32 0, i32 31
  %358 = load i64, ptr %10, align 8, !tbaa !32
  %359 = load ptr, ptr %6, align 8, !tbaa !5
  %360 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %359, i32 0, i32 67
  %361 = load ptr, ptr %6, align 8, !tbaa !5
  %362 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %361, i32 0, i32 68
  %363 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl16checklcviolationEPNS_9ae_matrixEPNS_9ae_vectorEllS3_lPdPlPNS_8ae_stateE(ptr noundef %351, ptr noundef %353, i64 noundef %354, i64 noundef %355, ptr noundef %357, i64 noundef %358, ptr noundef %360, ptr noundef %362, ptr noundef %363)
  %364 = load ptr, ptr %6, align 8, !tbaa !5
  %365 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %364, i32 0, i32 35
  %366 = load i64, ptr %14, align 8, !tbaa !32
  %367 = load i64, ptr %15, align 8, !tbaa !32
  %368 = load ptr, ptr %6, align 8, !tbaa !5
  %369 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %368, i32 0, i32 69
  %370 = load ptr, ptr %6, align 8, !tbaa !5
  %371 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %370, i32 0, i32 70
  %372 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl17checknlcviolationEPNS_9ae_vectorEllPdPlPNS_8ae_stateE(ptr noundef %365, i64 noundef %366, i64 noundef %367, ptr noundef %369, ptr noundef %371, ptr noundef %372)
  %373 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL21nlcslp_tracebeginningEPNS_8ae_stateE(ptr noundef %373)
  %374 = load ptr, ptr %6, align 8, !tbaa !5
  %375 = load ptr, ptr %6, align 8, !tbaa !5
  %376 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %375, i32 0, i32 22
  %377 = load ptr, ptr %6, align 8, !tbaa !5
  %378 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %377, i32 0, i32 13
  %379 = load i64, ptr %378, align 8, !tbaa !51
  %380 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL22nlcslp_initlpsubsolverEPNS_11minslpstateEPNS_15minslpsubsolverElPNS_8ae_stateE(ptr noundef %374, ptr noundef %376, i64 noundef %379, ptr noundef %380)
  br label %381

381:                                              ; preds = %888, %653, %587, %549, %347
  %382 = load ptr, ptr %6, align 8, !tbaa !5
  %383 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %382, i32 0, i32 39
  %384 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %383, i32 0, i32 6
  %385 = load ptr, ptr %384, align 8, !tbaa !31
  %386 = getelementptr inbounds ptr, ptr %385, i64 0
  %387 = load ptr, ptr %386, align 8, !tbaa !5
  %388 = getelementptr inbounds double, ptr %387, i64 0
  %389 = load ptr, ptr %6, align 8, !tbaa !5
  %390 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %389, i32 0, i32 39
  %391 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %390, i32 0, i32 6
  %392 = load ptr, ptr %391, align 8, !tbaa !31
  %393 = getelementptr inbounds ptr, ptr %392, i64 0
  %394 = load ptr, ptr %393, align 8, !tbaa !5
  %395 = getelementptr inbounds double, ptr %394, i64 0
  %396 = load i64, ptr %10, align 8, !tbaa !32
  %397 = sub nsw i64 %396, 1
  %398 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %397)
  %399 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %388, i64 noundef 1, ptr noundef %395, i64 noundef 1, i64 noundef %398)
  store double %399, ptr %19, align 8, !tbaa !35
  %400 = load double, ptr %19, align 8, !tbaa !35
  %401 = load ptr, ptr %9, align 8, !tbaa !5
  %402 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %400, ptr noundef %401)
  %403 = load double, ptr %23, align 8, !tbaa !35
  %404 = load ptr, ptr %9, align 8, !tbaa !5
  %405 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %402, double noundef %403, ptr noundef %404)
  store double %405, ptr %24, align 8, !tbaa !35
  store i64 0, ptr %16, align 8, !tbaa !32
  br label %406

406:                                              ; preds = %432, %381
  %407 = load i64, ptr %16, align 8, !tbaa !32
  %408 = load i64, ptr %12, align 8, !tbaa !32
  %409 = load i64, ptr %13, align 8, !tbaa !32
  %410 = add nsw i64 %408, %409
  %411 = sub nsw i64 %410, 1
  %412 = icmp sle i64 %407, %411
  br i1 %412, label %413, label %435

413:                                              ; preds = %406
  %414 = load ptr, ptr %6, align 8, !tbaa !5
  %415 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %414, i32 0, i32 49
  %416 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %415, i32 0, i32 4
  %417 = load ptr, ptr %416, align 8, !tbaa !31
  %418 = load i64, ptr %16, align 8, !tbaa !32
  %419 = getelementptr inbounds double, ptr %417, i64 %418
  %420 = load double, ptr %419, align 8, !tbaa !35
  %421 = load double, ptr @_ZN11alglib_implL25nlcslp_augmentationfactorE, align 8, !tbaa !35
  %422 = load double, ptr %24, align 8, !tbaa !35
  %423 = fmul double %421, %422
  %424 = load ptr, ptr %9, align 8, !tbaa !5
  %425 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %420, double noundef %423, ptr noundef %424)
  %426 = load ptr, ptr %6, align 8, !tbaa !5
  %427 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %426, i32 0, i32 49
  %428 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %427, i32 0, i32 4
  %429 = load ptr, ptr %428, align 8, !tbaa !31
  %430 = load i64, ptr %16, align 8, !tbaa !32
  %431 = getelementptr inbounds double, ptr %429, i64 %430
  store double %425, ptr %431, align 8, !tbaa !35
  br label %432

432:                                              ; preds = %413
  %433 = load i64, ptr %16, align 8, !tbaa !32
  %434 = add nsw i64 %433, 1
  store i64 %434, ptr %16, align 8, !tbaa !32
  br label %406, !llvm.loop !52

435:                                              ; preds = %406
  %436 = load double, ptr %24, align 8, !tbaa !35
  %437 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %436, double noundef 0.000000e+00)
  br i1 %437, label %438, label %507

438:                                              ; preds = %435
  store i64 0, ptr %16, align 8, !tbaa !32
  br label %439

439:                                              ; preds = %503, %438
  %440 = load i64, ptr %16, align 8, !tbaa !32
  %441 = load i64, ptr %14, align 8, !tbaa !32
  %442 = load i64, ptr %15, align 8, !tbaa !32
  %443 = add nsw i64 %441, %442
  %444 = sub nsw i64 %443, 1
  %445 = icmp sle i64 %440, %444
  br i1 %445, label %446, label %506

446:                                              ; preds = %439
  %447 = load ptr, ptr %6, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %447, i32 0, i32 39
  %449 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %448, i32 0, i32 6
  %450 = load ptr, ptr %449, align 8, !tbaa !31
  %451 = load i64, ptr %16, align 8, !tbaa !32
  %452 = add nsw i64 1, %451
  %453 = getelementptr inbounds ptr, ptr %450, i64 %452
  %454 = load ptr, ptr %453, align 8, !tbaa !5
  %455 = getelementptr inbounds double, ptr %454, i64 0
  %456 = load ptr, ptr %6, align 8, !tbaa !5
  %457 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %456, i32 0, i32 39
  %458 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %457, i32 0, i32 6
  %459 = load ptr, ptr %458, align 8, !tbaa !31
  %460 = load i64, ptr %16, align 8, !tbaa !32
  %461 = add nsw i64 1, %460
  %462 = getelementptr inbounds ptr, ptr %459, i64 %461
  %463 = load ptr, ptr %462, align 8, !tbaa !5
  %464 = getelementptr inbounds double, ptr %463, i64 0
  %465 = load i64, ptr %10, align 8, !tbaa !32
  %466 = sub nsw i64 %465, 1
  %467 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %466)
  %468 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %455, i64 noundef 1, ptr noundef %464, i64 noundef 1, i64 noundef %467)
  store double %468, ptr %20, align 8, !tbaa !35
  %469 = load double, ptr %20, align 8, !tbaa !35
  %470 = load ptr, ptr %9, align 8, !tbaa !5
  %471 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %469, ptr noundef %470)
  %472 = load double, ptr %24, align 8, !tbaa !35
  %473 = load ptr, ptr %9, align 8, !tbaa !5
  %474 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %471, double noundef %472, ptr noundef %473)
  store double %474, ptr %20, align 8, !tbaa !35
  %475 = load ptr, ptr %6, align 8, !tbaa !5
  %476 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %475, i32 0, i32 49
  %477 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %476, i32 0, i32 4
  %478 = load ptr, ptr %477, align 8, !tbaa !31
  %479 = load i64, ptr %12, align 8, !tbaa !32
  %480 = load i64, ptr %13, align 8, !tbaa !32
  %481 = add nsw i64 %479, %480
  %482 = load i64, ptr %16, align 8, !tbaa !32
  %483 = add nsw i64 %481, %482
  %484 = getelementptr inbounds double, ptr %478, i64 %483
  %485 = load double, ptr %484, align 8, !tbaa !35
  %486 = load double, ptr @_ZN11alglib_implL25nlcslp_augmentationfactorE, align 8, !tbaa !35
  %487 = load double, ptr %24, align 8, !tbaa !35
  %488 = load double, ptr %20, align 8, !tbaa !35
  %489 = fdiv double %487, %488
  %490 = fmul double %486, %489
  %491 = load ptr, ptr %9, align 8, !tbaa !5
  %492 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %485, double noundef %490, ptr noundef %491)
  %493 = load ptr, ptr %6, align 8, !tbaa !5
  %494 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %493, i32 0, i32 49
  %495 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %494, i32 0, i32 4
  %496 = load ptr, ptr %495, align 8, !tbaa !31
  %497 = load i64, ptr %12, align 8, !tbaa !32
  %498 = load i64, ptr %13, align 8, !tbaa !32
  %499 = add nsw i64 %497, %498
  %500 = load i64, ptr %16, align 8, !tbaa !32
  %501 = add nsw i64 %499, %500
  %502 = getelementptr inbounds double, ptr %496, i64 %501
  store double %492, ptr %502, align 8, !tbaa !35
  br label %503

503:                                              ; preds = %446
  %504 = load i64, ptr %16, align 8, !tbaa !32
  %505 = add nsw i64 %504, 1
  store i64 %505, ptr %16, align 8, !tbaa !32
  br label %439, !llvm.loop !53

506:                                              ; preds = %439
  br label %507

507:                                              ; preds = %506, %435
  %508 = load ptr, ptr %6, align 8, !tbaa !5
  %509 = load ptr, ptr %6, align 8, !tbaa !5
  %510 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %509, i32 0, i32 31
  %511 = load ptr, ptr %6, align 8, !tbaa !5
  %512 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %511, i32 0, i32 35
  %513 = load ptr, ptr %6, align 8, !tbaa !5
  %514 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %513, i32 0, i32 39
  %515 = load ptr, ptr %6, align 8, !tbaa !5
  %516 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %515, i32 0, i32 30
  %517 = load ptr, ptr %6, align 8, !tbaa !5
  %518 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %517, i32 0, i32 34
  %519 = load ptr, ptr %6, align 8, !tbaa !5
  %520 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %519, i32 0, i32 38
  %521 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcslp_slpcopystateEPNS_11minslpstateEPNS_9ae_vectorES3_PNS_9ae_matrixES3_S3_S5_PNS_8ae_stateE(ptr noundef %508, ptr noundef %510, ptr noundef %512, ptr noundef %514, ptr noundef %516, ptr noundef %518, ptr noundef %520, ptr noundef %521)
  %522 = load ptr, ptr %6, align 8, !tbaa !5
  %523 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %522, i32 0, i32 72
  %524 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %523, i32 0, i32 1
  %525 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %524, i64 noundef 9, ptr noundef %525)
  %526 = load ptr, ptr %6, align 8, !tbaa !5
  %527 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %526, i32 0, i32 72
  %528 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %527, i32 0, i32 3
  %529 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %528, i64 noundef 5, ptr noundef %529)
  %530 = load ptr, ptr %6, align 8, !tbaa !5
  %531 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %530, i32 0, i32 72
  %532 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %531, i32 0, i32 0
  store i32 -1, ptr %532, align 8, !tbaa !54
  br label %533

533:                                              ; preds = %545, %507
  %534 = load ptr, ptr %6, align 8, !tbaa !5
  %535 = load ptr, ptr %7, align 8, !tbaa !5
  %536 = load i8, ptr %8, align 1, !tbaa !9, !range !33, !noundef !34
  %537 = trunc i8 %536 to i1
  %538 = load ptr, ptr %9, align 8, !tbaa !5
  %539 = call noundef zeroext i1 @_ZN11alglib_implL23nlcslp_phase13iterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbbPlPdPNS_8ae_stateE(ptr noundef %534, ptr noundef %535, i1 noundef zeroext true, i1 noundef zeroext %537, ptr noundef %27, ptr noundef %28, ptr noundef %538)
  br i1 %539, label %541, label %540

540:                                              ; preds = %533
  br label %546

541:                                              ; preds = %533
  %542 = load ptr, ptr %6, align 8, !tbaa !5
  %543 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %542, i32 0, i32 71
  %544 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %543, i32 0, i32 0
  store i32 2, ptr %544, align 8, !tbaa !11
  br label %894

545:                                              ; preds = %194
  br label %533

546:                                              ; preds = %540
  %547 = load i64, ptr %27, align 8, !tbaa !32
  %548 = icmp slt i64 %547, 0
  br i1 %548, label %549, label %550

549:                                              ; preds = %546
  br label %381

550:                                              ; preds = %546
  %551 = load i64, ptr %27, align 8, !tbaa !32
  %552 = icmp eq i64 %551, 0
  br i1 %552, label %553, label %554

553:                                              ; preds = %550
  br label %889

554:                                              ; preds = %550
  %555 = load double, ptr %28, align 8, !tbaa !35
  %556 = load double, ptr @_ZN11alglib_implL23nlcslp_slpstpclosetooneE, align 8, !tbaa !35
  %557 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %555, double noundef %556)
  br i1 %557, label %558, label %559

558:                                              ; preds = %554
  br label %660

559:                                              ; preds = %554
  %560 = load ptr, ptr %6, align 8, !tbaa !5
  %561 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %560, i32 0, i32 73
  %562 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %561, i32 0, i32 1
  %563 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %562, i64 noundef 12, ptr noundef %563)
  %564 = load ptr, ptr %6, align 8, !tbaa !5
  %565 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %564, i32 0, i32 73
  %566 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %565, i32 0, i32 3
  %567 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %566, i64 noundef 4, ptr noundef %567)
  %568 = load ptr, ptr %6, align 8, !tbaa !5
  %569 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %568, i32 0, i32 73
  %570 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %569, i32 0, i32 0
  store i32 -1, ptr %570, align 8, !tbaa !55
  br label %571

571:                                              ; preds = %583, %559
  %572 = load ptr, ptr %6, align 8, !tbaa !5
  %573 = load ptr, ptr %7, align 8, !tbaa !5
  %574 = load i8, ptr %8, align 1, !tbaa !9, !range !33, !noundef !34
  %575 = trunc i8 %574 to i1
  %576 = load ptr, ptr %9, align 8, !tbaa !5
  %577 = call noundef zeroext i1 @_ZN11alglib_implL22nlcslp_phase2iterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbPdPlPNS_8ae_stateE(ptr noundef %572, ptr noundef %573, i1 noundef zeroext %575, ptr noundef %23, ptr noundef %27, ptr noundef %576)
  br i1 %577, label %579, label %578

578:                                              ; preds = %571
  br label %584

579:                                              ; preds = %571
  %580 = load ptr, ptr %6, align 8, !tbaa !5
  %581 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %580, i32 0, i32 71
  %582 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %581, i32 0, i32 0
  store i32 3, ptr %582, align 8, !tbaa !11
  br label %894

583:                                              ; preds = %201
  br label %571

584:                                              ; preds = %578
  %585 = load i64, ptr %27, align 8, !tbaa !32
  %586 = icmp slt i64 %585, 0
  br i1 %586, label %587, label %588

587:                                              ; preds = %584
  br label %381

588:                                              ; preds = %584
  %589 = load i64, ptr %27, align 8, !tbaa !32
  %590 = icmp eq i64 %589, 0
  br i1 %590, label %591, label %592

591:                                              ; preds = %588
  br label %889

592:                                              ; preds = %588
  %593 = load ptr, ptr %6, align 8, !tbaa !5
  %594 = load ptr, ptr %6, align 8, !tbaa !5
  %595 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %594, i32 0, i32 30
  %596 = load ptr, ptr %6, align 8, !tbaa !5
  %597 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %596, i32 0, i32 20
  %598 = load double, ptr %597, align 8, !tbaa !45
  %599 = load ptr, ptr %6, align 8, !tbaa !5
  %600 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %599, i32 0, i32 34
  %601 = load ptr, ptr %6, align 8, !tbaa !5
  %602 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %601, i32 0, i32 38
  %603 = load ptr, ptr %6, align 8, !tbaa !5
  %604 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %603, i32 0, i32 47
  %605 = load ptr, ptr %9, align 8, !tbaa !5
  %606 = call noundef double @_ZN11alglib_implL20nlcslp_meritfunctionEPNS_11minslpstateEPNS_9ae_vectorEdS3_PNS_9ae_matrixES3_PNS_8ae_stateE(ptr noundef %593, ptr noundef %595, double noundef %598, ptr noundef %600, ptr noundef %602, ptr noundef %604, ptr noundef %605)
  store double %606, ptr %25, align 8, !tbaa !35
  %607 = load ptr, ptr %6, align 8, !tbaa !5
  %608 = load ptr, ptr %6, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %608, i32 0, i32 31
  %610 = load ptr, ptr %6, align 8, !tbaa !5
  %611 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %610, i32 0, i32 20
  %612 = load double, ptr %611, align 8, !tbaa !45
  %613 = load ptr, ptr %6, align 8, !tbaa !5
  %614 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %613, i32 0, i32 35
  %615 = load ptr, ptr %6, align 8, !tbaa !5
  %616 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %615, i32 0, i32 39
  %617 = load ptr, ptr %6, align 8, !tbaa !5
  %618 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %617, i32 0, i32 47
  %619 = load ptr, ptr %9, align 8, !tbaa !5
  %620 = call noundef double @_ZN11alglib_implL20nlcslp_meritfunctionEPNS_11minslpstateEPNS_9ae_vectorEdS3_PNS_9ae_matrixES3_PNS_8ae_stateE(ptr noundef %607, ptr noundef %609, double noundef %612, ptr noundef %614, ptr noundef %616, ptr noundef %618, ptr noundef %619)
  store double %620, ptr %26, align 8, !tbaa !35
  %621 = load double, ptr %26, align 8, !tbaa !35
  %622 = load double, ptr %25, align 8, !tbaa !35
  %623 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %621, double noundef %622)
  br i1 %623, label %624, label %625

624:                                              ; preds = %592
  br label %659

625:                                              ; preds = %592
  %626 = load ptr, ptr %6, align 8, !tbaa !5
  %627 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %626, i32 0, i32 72
  %628 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %627, i32 0, i32 1
  %629 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %628, i64 noundef 9, ptr noundef %629)
  %630 = load ptr, ptr %6, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %630, i32 0, i32 72
  %632 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %631, i32 0, i32 3
  %633 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %632, i64 noundef 5, ptr noundef %633)
  %634 = load ptr, ptr %6, align 8, !tbaa !5
  %635 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %634, i32 0, i32 72
  %636 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %635, i32 0, i32 0
  store i32 -1, ptr %636, align 8, !tbaa !54
  br label %637

637:                                              ; preds = %649, %625
  %638 = load ptr, ptr %6, align 8, !tbaa !5
  %639 = load ptr, ptr %7, align 8, !tbaa !5
  %640 = load i8, ptr %8, align 1, !tbaa !9, !range !33, !noundef !34
  %641 = trunc i8 %640 to i1
  %642 = load ptr, ptr %9, align 8, !tbaa !5
  %643 = call noundef zeroext i1 @_ZN11alglib_implL23nlcslp_phase13iterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbbPlPdPNS_8ae_stateE(ptr noundef %638, ptr noundef %639, i1 noundef zeroext false, i1 noundef zeroext %641, ptr noundef %27, ptr noundef %28, ptr noundef %642)
  br i1 %643, label %645, label %644

644:                                              ; preds = %637
  br label %650

645:                                              ; preds = %637
  %646 = load ptr, ptr %6, align 8, !tbaa !5
  %647 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %646, i32 0, i32 71
  %648 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %647, i32 0, i32 0
  store i32 4, ptr %648, align 8, !tbaa !11
  br label %894

649:                                              ; preds = %208
  br label %637

650:                                              ; preds = %644
  %651 = load i64, ptr %27, align 8, !tbaa !32
  %652 = icmp slt i64 %651, 0
  br i1 %652, label %653, label %654

653:                                              ; preds = %650
  br label %381

654:                                              ; preds = %650
  %655 = load i64, ptr %27, align 8, !tbaa !32
  %656 = icmp eq i64 %655, 0
  br i1 %656, label %657, label %658

657:                                              ; preds = %654
  br label %889

658:                                              ; preds = %654
  br label %659

659:                                              ; preds = %658, %624
  br label %660

660:                                              ; preds = %659, %558
  %661 = load ptr, ptr %6, align 8, !tbaa !5
  %662 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL21nlcslp_tracemultistepEPNS_11minslpstateEPNS_8ae_stateE(ptr noundef %661, ptr noundef %662)
  %663 = load ptr, ptr %6, align 8, !tbaa !5
  %664 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %663, i32 0, i32 21
  store double 0.000000e+00, ptr %664, align 8, !tbaa !56
  store i64 0, ptr %16, align 8, !tbaa !32
  br label %665

665:                                              ; preds = %699, %660
  %666 = load i64, ptr %16, align 8, !tbaa !32
  %667 = load i64, ptr %10, align 8, !tbaa !32
  %668 = sub nsw i64 %667, 1
  %669 = icmp sle i64 %666, %668
  br i1 %669, label %670, label %702

670:                                              ; preds = %665
  %671 = load ptr, ptr %6, align 8, !tbaa !5
  %672 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %671, i32 0, i32 21
  %673 = load double, ptr %672, align 8, !tbaa !56
  %674 = load ptr, ptr %6, align 8, !tbaa !5
  %675 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %674, i32 0, i32 30
  %676 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %675, i32 0, i32 4
  %677 = load ptr, ptr %676, align 8, !tbaa !31
  %678 = load i64, ptr %16, align 8, !tbaa !32
  %679 = getelementptr inbounds double, ptr %677, i64 %678
  %680 = load double, ptr %679, align 8, !tbaa !35
  %681 = load ptr, ptr %6, align 8, !tbaa !5
  %682 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %681, i32 0, i32 31
  %683 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %682, i32 0, i32 4
  %684 = load ptr, ptr %683, align 8, !tbaa !31
  %685 = load i64, ptr %16, align 8, !tbaa !32
  %686 = getelementptr inbounds double, ptr %684, i64 %685
  %687 = load double, ptr %686, align 8, !tbaa !35
  %688 = fsub double %680, %687
  %689 = load ptr, ptr %9, align 8, !tbaa !5
  %690 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %688, ptr noundef %689)
  %691 = load ptr, ptr %6, align 8, !tbaa !5
  %692 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %691, i32 0, i32 20
  %693 = load double, ptr %692, align 8, !tbaa !45
  %694 = fdiv double %690, %693
  %695 = load ptr, ptr %9, align 8, !tbaa !5
  %696 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %673, double noundef %694, ptr noundef %695)
  %697 = load ptr, ptr %6, align 8, !tbaa !5
  %698 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %697, i32 0, i32 21
  store double %696, ptr %698, align 8, !tbaa !56
  br label %699

699:                                              ; preds = %670
  %700 = load i64, ptr %16, align 8, !tbaa !32
  %701 = add nsw i64 %700, 1
  store i64 %701, ptr %16, align 8, !tbaa !32
  br label %665, !llvm.loop !57

702:                                              ; preds = %665
  %703 = load ptr, ptr %6, align 8, !tbaa !5
  %704 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %703, i32 0, i32 21
  %705 = load double, ptr %704, align 8, !tbaa !56
  %706 = load double, ptr @_ZN11alglib_implL23nlcslp_slpdeltadecreaseE, align 8, !tbaa !35
  %707 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %705, double noundef %706)
  br i1 %707, label %708, label %722

708:                                              ; preds = %702
  %709 = load ptr, ptr %6, align 8, !tbaa !5
  %710 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %709, i32 0, i32 20
  %711 = load double, ptr %710, align 8, !tbaa !45
  %712 = load ptr, ptr %6, align 8, !tbaa !5
  %713 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %712, i32 0, i32 21
  %714 = load double, ptr %713, align 8, !tbaa !56
  %715 = load double, ptr @_ZN11alglib_implL23nlcslp_slpdeltadecreaseE, align 8, !tbaa !35
  %716 = fdiv double %714, %715
  %717 = load ptr, ptr %9, align 8, !tbaa !5
  %718 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %716, double noundef 1.000000e-01, ptr noundef %717)
  %719 = fmul double %711, %718
  %720 = load ptr, ptr %6, align 8, !tbaa !5
  %721 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %720, i32 0, i32 20
  store double %719, ptr %721, align 8, !tbaa !45
  br label %722

722:                                              ; preds = %708, %702
  %723 = load ptr, ptr %6, align 8, !tbaa !5
  %724 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %723, i32 0, i32 21
  %725 = load double, ptr %724, align 8, !tbaa !56
  %726 = load double, ptr @_ZN11alglib_implL23nlcslp_slpdeltaincreaseE, align 8, !tbaa !35
  %727 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %725, double noundef %726)
  br i1 %727, label %728, label %735

728:                                              ; preds = %722
  %729 = load ptr, ptr %6, align 8, !tbaa !5
  %730 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %729, i32 0, i32 20
  %731 = load double, ptr %730, align 8, !tbaa !45
  %732 = fmul double %731, 2.000000e+00
  %733 = load ptr, ptr %6, align 8, !tbaa !5
  %734 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %733, i32 0, i32 20
  store double %732, ptr %734, align 8, !tbaa !45
  br label %735

735:                                              ; preds = %728, %722
  %736 = load ptr, ptr %6, align 8, !tbaa !5
  %737 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %736, i32 0, i32 63
  %738 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %737, ptr noundef %738)
  store double 0.000000e+00, ptr %19, align 8, !tbaa !35
  store double 0.000000e+00, ptr %20, align 8, !tbaa !35
  store i64 0, ptr %16, align 8, !tbaa !32
  br label %739

739:                                              ; preds = %788, %735
  %740 = load i64, ptr %16, align 8, !tbaa !32
  %741 = load i64, ptr %10, align 8, !tbaa !32
  %742 = sub nsw i64 %741, 1
  %743 = icmp sle i64 %740, %742
  br i1 %743, label %744, label %791

744:                                              ; preds = %739
  %745 = load ptr, ptr %6, align 8, !tbaa !5
  %746 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %745, i32 0, i32 30
  %747 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %746, i32 0, i32 4
  %748 = load ptr, ptr %747, align 8, !tbaa !31
  %749 = load i64, ptr %16, align 8, !tbaa !32
  %750 = getelementptr inbounds double, ptr %748, i64 %749
  %751 = load double, ptr %750, align 8, !tbaa !35
  %752 = load ptr, ptr %6, align 8, !tbaa !5
  %753 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %752, i32 0, i32 29
  %754 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %753, i32 0, i32 4
  %755 = load ptr, ptr %754, align 8, !tbaa !31
  %756 = load i64, ptr %16, align 8, !tbaa !32
  %757 = getelementptr inbounds double, ptr %755, i64 %756
  store double %751, ptr %757, align 8, !tbaa !35
  %758 = load double, ptr %19, align 8, !tbaa !35
  %759 = load ptr, ptr %6, align 8, !tbaa !5
  %760 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %759, i32 0, i32 30
  %761 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %760, i32 0, i32 4
  %762 = load ptr, ptr %761, align 8, !tbaa !31
  %763 = load i64, ptr %16, align 8, !tbaa !32
  %764 = getelementptr inbounds double, ptr %762, i64 %763
  %765 = load double, ptr %764, align 8, !tbaa !35
  %766 = load ptr, ptr %6, align 8, !tbaa !5
  %767 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %766, i32 0, i32 31
  %768 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %767, i32 0, i32 4
  %769 = load ptr, ptr %768, align 8, !tbaa !31
  %770 = load i64, ptr %16, align 8, !tbaa !32
  %771 = getelementptr inbounds double, ptr %769, i64 %770
  %772 = load double, ptr %771, align 8, !tbaa !35
  %773 = fsub double %765, %772
  %774 = load ptr, ptr %9, align 8, !tbaa !5
  %775 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %773, ptr noundef %774)
  %776 = fadd double %758, %775
  store double %776, ptr %19, align 8, !tbaa !35
  %777 = load double, ptr %20, align 8, !tbaa !35
  %778 = load ptr, ptr %6, align 8, !tbaa !5
  %779 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %778, i32 0, i32 31
  %780 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %779, i32 0, i32 4
  %781 = load ptr, ptr %780, align 8, !tbaa !31
  %782 = load i64, ptr %16, align 8, !tbaa !32
  %783 = getelementptr inbounds double, ptr %781, i64 %782
  %784 = load double, ptr %783, align 8, !tbaa !35
  %785 = load ptr, ptr %9, align 8, !tbaa !5
  %786 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %784, ptr noundef %785)
  %787 = fadd double %777, %786
  store double %787, ptr %20, align 8, !tbaa !35
  br label %788

788:                                              ; preds = %744
  %789 = load i64, ptr %16, align 8, !tbaa !32
  %790 = add nsw i64 %789, 1
  store i64 %790, ptr %16, align 8, !tbaa !32
  br label %739, !llvm.loop !58

791:                                              ; preds = %739
  %792 = load double, ptr %19, align 8, !tbaa !35
  %793 = load ptr, ptr %9, align 8, !tbaa !5
  %794 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %792, ptr noundef %793)
  store double %794, ptr %19, align 8, !tbaa !35
  %795 = load double, ptr %20, align 8, !tbaa !35
  %796 = load ptr, ptr %9, align 8, !tbaa !5
  %797 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %795, ptr noundef %796)
  store double %797, ptr %20, align 8, !tbaa !35
  %798 = load double, ptr %19, align 8, !tbaa !35
  %799 = load ptr, ptr %6, align 8, !tbaa !5
  %800 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %799, i32 0, i32 11
  %801 = load double, ptr %800, align 8, !tbaa !59
  %802 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %798, double noundef %801)
  br i1 %802, label %809, label %803

803:                                              ; preds = %791
  %804 = load double, ptr %19, align 8, !tbaa !35
  %805 = load double, ptr @_ZN11alglib_implL21nlcslp_stagnationepsxE, align 8, !tbaa !35
  %806 = load double, ptr %20, align 8, !tbaa !35
  %807 = fmul double %805, %806
  %808 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %804, double noundef %807)
  br i1 %808, label %809, label %813

809:                                              ; preds = %803, %791
  %810 = load ptr, ptr %6, align 8, !tbaa !5
  %811 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %810, i32 0, i32 27
  %812 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %811, ptr noundef %812)
  br label %816

813:                                              ; preds = %803
  %814 = load ptr, ptr %6, align 8, !tbaa !5
  %815 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %814, i32 0, i32 27
  store i64 0, ptr %815, align 8, !tbaa !43
  br label %816

816:                                              ; preds = %813, %809
  %817 = load ptr, ptr %6, align 8, !tbaa !5
  %818 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %817, i32 0, i32 35
  %819 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %818, i32 0, i32 4
  %820 = load ptr, ptr %819, align 8, !tbaa !31
  %821 = getelementptr inbounds double, ptr %820, i64 0
  %822 = load double, ptr %821, align 8, !tbaa !35
  %823 = load ptr, ptr %6, align 8, !tbaa !5
  %824 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %823, i32 0, i32 34
  %825 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %824, i32 0, i32 4
  %826 = load ptr, ptr %825, align 8, !tbaa !31
  %827 = getelementptr inbounds double, ptr %826, i64 0
  %828 = load double, ptr %827, align 8, !tbaa !35
  %829 = fsub double %822, %828
  %830 = load ptr, ptr %9, align 8, !tbaa !5
  %831 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %829, ptr noundef %830)
  %832 = load double, ptr @_ZN11alglib_implL21nlcslp_stagnationepsfE, align 8, !tbaa !35
  %833 = load ptr, ptr %6, align 8, !tbaa !5
  %834 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %833, i32 0, i32 34
  %835 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %834, i32 0, i32 4
  %836 = load ptr, ptr %835, align 8, !tbaa !31
  %837 = getelementptr inbounds double, ptr %836, i64 0
  %838 = load double, ptr %837, align 8, !tbaa !35
  %839 = load ptr, ptr %9, align 8, !tbaa !5
  %840 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %838, ptr noundef %839)
  %841 = load ptr, ptr %9, align 8, !tbaa !5
  %842 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %840, double noundef 1.000000e+00, ptr noundef %841)
  %843 = fmul double %832, %842
  %844 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %831, double noundef %843)
  br i1 %844, label %845, label %849

845:                                              ; preds = %816
  %846 = load ptr, ptr %6, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %846, i32 0, i32 28
  %848 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %847, ptr noundef %848)
  br label %852

849:                                              ; preds = %816
  %850 = load ptr, ptr %6, align 8, !tbaa !5
  %851 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %850, i32 0, i32 28
  store i64 0, ptr %851, align 8, !tbaa !44
  br label %852

852:                                              ; preds = %849, %845
  %853 = load ptr, ptr %6, align 8, !tbaa !5
  %854 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL19nlcslp_tracenlpstepEPNS_11minslpstateEPNS_8ae_stateE(ptr noundef %853, ptr noundef %854)
  %855 = load ptr, ptr %6, align 8, !tbaa !5
  %856 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %855, i32 0, i32 27
  %857 = load i64, ptr %856, align 8, !tbaa !43
  %858 = load i64, ptr @_ZN11alglib_implL23nlcslp_xstagnationlimitE, align 8, !tbaa !32
  %859 = icmp sge i64 %857, %858
  br i1 %859, label %860, label %863

860:                                              ; preds = %852
  %861 = load ptr, ptr %6, align 8, !tbaa !5
  %862 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %861, i32 0, i32 64
  store i64 2, ptr %862, align 8, !tbaa !49
  br label %889

863:                                              ; preds = %852
  %864 = load ptr, ptr %6, align 8, !tbaa !5
  %865 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %864, i32 0, i32 12
  %866 = load i64, ptr %865, align 8, !tbaa !60
  %867 = icmp sgt i64 %866, 0
  br i1 %867, label %868, label %879

868:                                              ; preds = %863
  %869 = load ptr, ptr %6, align 8, !tbaa !5
  %870 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %869, i32 0, i32 62
  %871 = load i64, ptr %870, align 8, !tbaa !61
  %872 = load ptr, ptr %6, align 8, !tbaa !5
  %873 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %872, i32 0, i32 12
  %874 = load i64, ptr %873, align 8, !tbaa !60
  %875 = icmp sge i64 %871, %874
  br i1 %875, label %876, label %879

876:                                              ; preds = %868
  %877 = load ptr, ptr %6, align 8, !tbaa !5
  %878 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %877, i32 0, i32 64
  store i64 5, ptr %878, align 8, !tbaa !49
  br label %889

879:                                              ; preds = %868, %863
  %880 = load ptr, ptr %6, align 8, !tbaa !5
  %881 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %880, i32 0, i32 28
  %882 = load i64, ptr %881, align 8, !tbaa !44
  %883 = load i64, ptr @_ZN11alglib_implL23nlcslp_fstagnationlimitE, align 8, !tbaa !32
  %884 = icmp sge i64 %882, %883
  br i1 %884, label %885, label %888

885:                                              ; preds = %879
  %886 = load ptr, ptr %6, align 8, !tbaa !5
  %887 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %886, i32 0, i32 64
  store i64 7, ptr %887, align 8, !tbaa !49
  br label %889

888:                                              ; preds = %879
  br label %381

889:                                              ; preds = %885, %876, %860, %657, %591, %553
  %890 = load ptr, ptr %6, align 8, !tbaa !5
  %891 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL22nlcslp_tracefinalpointEPNS_11minslpstateEPNS_8ae_stateE(ptr noundef %890, ptr noundef %891)
  store i8 0, ptr %29, align 1, !tbaa !9
  %892 = load i8, ptr %29, align 1, !tbaa !9, !range !33, !noundef !34
  %893 = trunc i8 %892 to i1
  store i1 %893, ptr %5, align 1
  store i32 1, ptr %30, align 4
  br label %1032

894:                                              ; preds = %645, %579, %541, %315, %267
  store i8 1, ptr %29, align 1, !tbaa !9
  %895 = load i64, ptr %10, align 8, !tbaa !32
  %896 = load ptr, ptr %6, align 8, !tbaa !5
  %897 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %896, i32 0, i32 71
  %898 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %897, i32 0, i32 1
  %899 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %898, i32 0, i32 4
  %900 = load ptr, ptr %899, align 8, !tbaa !31
  %901 = getelementptr inbounds i64, ptr %900, i64 0
  store i64 %895, ptr %901, align 8, !tbaa !32
  %902 = load i64, ptr %11, align 8, !tbaa !32
  %903 = load ptr, ptr %6, align 8, !tbaa !5
  %904 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %903, i32 0, i32 71
  %905 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %904, i32 0, i32 1
  %906 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %905, i32 0, i32 4
  %907 = load ptr, ptr %906, align 8, !tbaa !31
  %908 = getelementptr inbounds i64, ptr %907, i64 1
  store i64 %902, ptr %908, align 8, !tbaa !32
  %909 = load i64, ptr %12, align 8, !tbaa !32
  %910 = load ptr, ptr %6, align 8, !tbaa !5
  %911 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %910, i32 0, i32 71
  %912 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %911, i32 0, i32 1
  %913 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %912, i32 0, i32 4
  %914 = load ptr, ptr %913, align 8, !tbaa !31
  %915 = getelementptr inbounds i64, ptr %914, i64 2
  store i64 %909, ptr %915, align 8, !tbaa !32
  %916 = load i64, ptr %13, align 8, !tbaa !32
  %917 = load ptr, ptr %6, align 8, !tbaa !5
  %918 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %917, i32 0, i32 71
  %919 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %918, i32 0, i32 1
  %920 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %919, i32 0, i32 4
  %921 = load ptr, ptr %920, align 8, !tbaa !31
  %922 = getelementptr inbounds i64, ptr %921, i64 3
  store i64 %916, ptr %922, align 8, !tbaa !32
  %923 = load i64, ptr %14, align 8, !tbaa !32
  %924 = load ptr, ptr %6, align 8, !tbaa !5
  %925 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %924, i32 0, i32 71
  %926 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %925, i32 0, i32 1
  %927 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %926, i32 0, i32 4
  %928 = load ptr, ptr %927, align 8, !tbaa !31
  %929 = getelementptr inbounds i64, ptr %928, i64 4
  store i64 %923, ptr %929, align 8, !tbaa !32
  %930 = load i64, ptr %15, align 8, !tbaa !32
  %931 = load ptr, ptr %6, align 8, !tbaa !5
  %932 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %931, i32 0, i32 71
  %933 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %932, i32 0, i32 1
  %934 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %933, i32 0, i32 4
  %935 = load ptr, ptr %934, align 8, !tbaa !31
  %936 = getelementptr inbounds i64, ptr %935, i64 5
  store i64 %930, ptr %936, align 8, !tbaa !32
  %937 = load i64, ptr %16, align 8, !tbaa !32
  %938 = load ptr, ptr %6, align 8, !tbaa !5
  %939 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %938, i32 0, i32 71
  %940 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %939, i32 0, i32 1
  %941 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %940, i32 0, i32 4
  %942 = load ptr, ptr %941, align 8, !tbaa !31
  %943 = getelementptr inbounds i64, ptr %942, i64 6
  store i64 %937, ptr %943, align 8, !tbaa !32
  %944 = load i64, ptr %17, align 8, !tbaa !32
  %945 = load ptr, ptr %6, align 8, !tbaa !5
  %946 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %945, i32 0, i32 71
  %947 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %946, i32 0, i32 1
  %948 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %947, i32 0, i32 4
  %949 = load ptr, ptr %948, align 8, !tbaa !31
  %950 = getelementptr inbounds i64, ptr %949, i64 7
  store i64 %944, ptr %950, align 8, !tbaa !32
  %951 = load i64, ptr %18, align 8, !tbaa !32
  %952 = load ptr, ptr %6, align 8, !tbaa !5
  %953 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %952, i32 0, i32 71
  %954 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %953, i32 0, i32 1
  %955 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %954, i32 0, i32 4
  %956 = load ptr, ptr %955, align 8, !tbaa !31
  %957 = getelementptr inbounds i64, ptr %956, i64 8
  store i64 %951, ptr %957, align 8, !tbaa !32
  %958 = load i64, ptr %27, align 8, !tbaa !32
  %959 = load ptr, ptr %6, align 8, !tbaa !5
  %960 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %959, i32 0, i32 71
  %961 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %960, i32 0, i32 1
  %962 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %961, i32 0, i32 4
  %963 = load ptr, ptr %962, align 8, !tbaa !31
  %964 = getelementptr inbounds i64, ptr %963, i64 9
  store i64 %958, ptr %964, align 8, !tbaa !32
  %965 = load i8, ptr %22, align 1, !tbaa !9, !range !33, !noundef !34
  %966 = trunc i8 %965 to i1
  %967 = load ptr, ptr %6, align 8, !tbaa !5
  %968 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %967, i32 0, i32 71
  %969 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %968, i32 0, i32 2
  %970 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %969, i32 0, i32 4
  %971 = load ptr, ptr %970, align 8, !tbaa !31
  %972 = getelementptr inbounds i8, ptr %971, i64 0
  %973 = zext i1 %966 to i8
  store i8 %973, ptr %972, align 1, !tbaa !9
  %974 = load double, ptr %19, align 8, !tbaa !35
  %975 = load ptr, ptr %6, align 8, !tbaa !5
  %976 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %975, i32 0, i32 71
  %977 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %976, i32 0, i32 3
  %978 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %977, i32 0, i32 4
  %979 = load ptr, ptr %978, align 8, !tbaa !31
  %980 = getelementptr inbounds double, ptr %979, i64 0
  store double %974, ptr %980, align 8, !tbaa !35
  %981 = load double, ptr %20, align 8, !tbaa !35
  %982 = load ptr, ptr %6, align 8, !tbaa !5
  %983 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %982, i32 0, i32 71
  %984 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %983, i32 0, i32 3
  %985 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %984, i32 0, i32 4
  %986 = load ptr, ptr %985, align 8, !tbaa !31
  %987 = getelementptr inbounds double, ptr %986, i64 1
  store double %981, ptr %987, align 8, !tbaa !35
  %988 = load double, ptr %21, align 8, !tbaa !35
  %989 = load ptr, ptr %6, align 8, !tbaa !5
  %990 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %989, i32 0, i32 71
  %991 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %990, i32 0, i32 3
  %992 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %991, i32 0, i32 4
  %993 = load ptr, ptr %992, align 8, !tbaa !31
  %994 = getelementptr inbounds double, ptr %993, i64 2
  store double %988, ptr %994, align 8, !tbaa !35
  %995 = load double, ptr %23, align 8, !tbaa !35
  %996 = load ptr, ptr %6, align 8, !tbaa !5
  %997 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %996, i32 0, i32 71
  %998 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %997, i32 0, i32 3
  %999 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %998, i32 0, i32 4
  %1000 = load ptr, ptr %999, align 8, !tbaa !31
  %1001 = getelementptr inbounds double, ptr %1000, i64 3
  store double %995, ptr %1001, align 8, !tbaa !35
  %1002 = load double, ptr %24, align 8, !tbaa !35
  %1003 = load ptr, ptr %6, align 8, !tbaa !5
  %1004 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %1003, i32 0, i32 71
  %1005 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1004, i32 0, i32 3
  %1006 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1005, i32 0, i32 4
  %1007 = load ptr, ptr %1006, align 8, !tbaa !31
  %1008 = getelementptr inbounds double, ptr %1007, i64 4
  store double %1002, ptr %1008, align 8, !tbaa !35
  %1009 = load double, ptr %25, align 8, !tbaa !35
  %1010 = load ptr, ptr %6, align 8, !tbaa !5
  %1011 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %1010, i32 0, i32 71
  %1012 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1011, i32 0, i32 3
  %1013 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1012, i32 0, i32 4
  %1014 = load ptr, ptr %1013, align 8, !tbaa !31
  %1015 = getelementptr inbounds double, ptr %1014, i64 5
  store double %1009, ptr %1015, align 8, !tbaa !35
  %1016 = load double, ptr %26, align 8, !tbaa !35
  %1017 = load ptr, ptr %6, align 8, !tbaa !5
  %1018 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %1017, i32 0, i32 71
  %1019 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1018, i32 0, i32 3
  %1020 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1019, i32 0, i32 4
  %1021 = load ptr, ptr %1020, align 8, !tbaa !31
  %1022 = getelementptr inbounds double, ptr %1021, i64 6
  store double %1016, ptr %1022, align 8, !tbaa !35
  %1023 = load double, ptr %28, align 8, !tbaa !35
  %1024 = load ptr, ptr %6, align 8, !tbaa !5
  %1025 = getelementptr inbounds %"struct.alglib_impl::minslpstate", ptr %1024, i32 0, i32 71
  %1026 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1025, i32 0, i32 3
  %1027 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1026, i32 0, i32 4
  %1028 = load ptr, ptr %1027, align 8, !tbaa !31
  %1029 = getelementptr inbounds double, ptr %1028, i64 7
  store double %1023, ptr %1029, align 8, !tbaa !35
  %1030 = load i8, ptr %29, align 1, !tbaa !9, !range !33, !noundef !34
  %1031 = trunc i8 %1030 to i1
  store i1 %1031, ptr %5, align 1
  store i32 1, ptr %30, align 4
  br label %1032

1032:                                             ; preds = %894, %889, %310
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  %1033 = load i1, ptr %5, align 1
  ret i1 %1033
}

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

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

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

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

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

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

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

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

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

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

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

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 = { 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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !30, i64 22032}
!12 = !{!"_ZTSN11alglib_impl11minslpstateE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !16, i64 120, !16, i64 184, !16, i64 248, !16, i64 312, !16, i64 376, !17, i64 440, !13, i64 448, !13, i64 456, !16, i64 464, !16, i64 528, !14, i64 592, !17, i64 672, !10, i64 680, !10, i64 681, !17, i64 688, !17, i64 696, !18, i64 704, !16, i64 20000, !16, i64 20064, !16, i64 20128, !28, i64 20192, !13, i64 20384, !13, i64 20392, !16, i64 20400, !16, i64 20464, !16, i64 20528, !16, i64 20592, !16, i64 20656, !16, i64 20720, !16, i64 20784, !16, i64 20848, !16, i64 20912, !14, i64 20976, !14, i64 21056, !14, i64 21136, !14, i64 21216, !17, i64 21296, !17, i64 21304, !17, i64 21312, !16, i64 21320, !16, i64 21384, !16, i64 21448, !16, i64 21512, !16, i64 21576, !16, i64 21640, !16, i64 21704, !16, i64 21768, !17, i64 21832, !13, i64 21840, !17, i64 21848, !13, i64 21856, !16, i64 21864, !13, i64 21928, !13, i64 21936, !13, i64 21944, !13, i64 21952, !13, i64 21960, !13, i64 21968, !13, i64 21976, !17, i64 21984, !13, i64 21992, !17, i64 22000, !13, i64 22008, !17, i64 22016, !13, i64 22024, !29, i64 22032, !29, i64 22296, !29, i64 22560}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !15, i64 40, !7, i64 72}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!16 = !{!"_ZTSN11alglib_impl9ae_vectorE", !13, i64 0, !13, i64 8, !10, i64 16, !15, i64 24, !7, i64 56}
!17 = !{!"double", !7, i64 0}
!18 = !{!"_ZTSN11alglib_impl15minslpsubsolverE", !19, i64 0, !27, i64 10944, !21, i64 11000, !10, i64 17272, !14, i64 17280, !13, i64 17360, !16, i64 17368, !16, i64 17432, !16, i64 17496, !16, i64 17560, !16, i64 17624, !20, i64 17688, !20, i64 18056, !13, i64 18424, !14, i64 18432, !14, i64 18512, !14, i64 18592, !20, i64 18672, !16, i64 19040, !16, i64 19104, !16, i64 19168, !16, i64 19232}
!19 = !{!"_ZTSN11alglib_impl16dualsimplexstateE", !16, i64 0, !16, i64 64, !16, i64 128, !16, i64 192, !13, i64 256, !13, i64 264, !20, i64 272, !20, i64 640, !21, i64 1008, !26, i64 7280, !26, i64 8072, !26, i64 8864, !16, i64 9656, !16, i64 9720, !16, i64 9784, !16, i64 9848, !17, i64 9912, !17, i64 9920, !17, i64 9928, !13, i64 9936, !13, i64 9944, !13, i64 9952, !13, i64 9960, !13, i64 9968, !16, i64 9976, !13, i64 10040, !16, i64 10048, !16, i64 10112, !16, i64 10176, !16, i64 10240, !16, i64 10304, !16, i64 10368, !16, i64 10432, !16, i64 10496, !16, i64 10560, !16, i64 10624, !16, i64 10688, !16, i64 10752, !16, i64 10816, !16, i64 10880}
!20 = !{!"_ZTSN11alglib_impl12sparsematrixE", !16, i64 0, !16, i64 64, !16, i64 128, !16, i64 192, !16, i64 256, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360}
!21 = !{!"_ZTSN11alglib_impl16dualsimplexbasisE", !13, i64 0, !13, i64 8, !16, i64 16, !16, i64 80, !16, i64 144, !13, i64 208, !10, i64 216, !13, i64 224, !14, i64 232, !20, i64 312, !20, i64 680, !20, i64 1048, !16, i64 1416, !16, i64 1480, !16, i64 1544, !16, i64 1608, !16, i64 1672, !16, i64 1736, !16, i64 1800, !10, i64 1864, !17, i64 1872, !16, i64 1880, !16, i64 1944, !16, i64 2008, !16, i64 2072, !16, i64 2136, !14, i64 2200, !16, i64 2280, !16, i64 2344, !20, i64 2408, !20, i64 2776, !22, i64 3144, !16, i64 5712, !16, i64 5776, !16, i64 5840, !20, i64 5904}
!22 = !{!"_ZTSN11alglib_impl11sluv2bufferE", !13, i64 0, !20, i64 8, !20, i64 376, !23, i64 744, !23, i64 968, !24, i64 1192, !25, i64 1816, !16, i64 1976, !14, i64 2040, !16, i64 2120, !16, i64 2184, !16, i64 2248, !16, i64 2312, !16, i64 2376, !16, i64 2440, !16, i64 2504}
!23 = !{!"_ZTSN11alglib_impl16sluv2list1matrixE", !13, i64 0, !13, i64 8, !16, i64 16, !16, i64 80, !16, i64 144, !13, i64 208, !13, i64 216}
!24 = !{!"_ZTSN11alglib_impl16sluv2sparsetrailE", !13, i64 0, !13, i64 8, !16, i64 16, !13, i64 80, !13, i64 88, !13, i64 96, !16, i64 104, !16, i64 168, !16, i64 232, !16, i64 296, !16, i64 360, !16, i64 424, !16, i64 488, !13, i64 552, !16, i64 560}
!25 = !{!"_ZTSN11alglib_impl15sluv2densetrailE", !13, i64 0, !13, i64 8, !14, i64 16, !16, i64 96}
!26 = !{!"_ZTSN11alglib_impl21dualsimplexsubproblemE", !13, i64 0, !13, i64 8, !16, i64 16, !16, i64 80, !16, i64 144, !16, i64 208, !16, i64 272, !16, i64 336, !13, i64 400, !16, i64 408, !16, i64 472, !16, i64 536, !16, i64 600, !16, i64 664, !16, i64 728}
!27 = !{!"_ZTSN11alglib_impl19dualsimplexsettingsE", !17, i64 0, !17, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48}
!28 = !{!"_ZTSN11alglib_impl11linminstateE", !10, i64 0, !10, i64 1, !13, i64 8, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !17, i64 56, !17, i64 64, !17, i64 72, !17, i64 80, !17, i64 88, !17, i64 96, !17, i64 104, !17, i64 112, !17, i64 120, !17, i64 128, !17, i64 136, !17, i64 144, !17, i64 152, !17, i64 160, !17, i64 168, !17, i64 176, !17, i64 184}
!29 = !{!"_ZTSN11alglib_impl10rcommstateE", !30, i64 0, !16, i64 8, !16, i64 72, !16, i64 136, !16, i64 200}
!30 = !{!"int", !7, i64 0}
!31 = !{!7, !7, i64 0}
!32 = !{!13, !13, i64 0}
!33 = !{i8 0, i8 2}
!34 = !{}
!35 = !{!17, !17, i64 0}
!36 = !{!12, !13, i64 0}
!37 = !{!12, !13, i64 8}
!38 = !{!12, !13, i64 16}
!39 = !{!12, !13, i64 24}
!40 = !{!12, !13, i64 32}
!41 = !{!12, !10, i64 680}
!42 = !{!12, !10, i64 681}
!43 = !{!12, !13, i64 20384}
!44 = !{!12, !13, i64 20392}
!45 = !{!12, !17, i64 688}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = distinct !{!48, !47}
!49 = !{!12, !13, i64 21976}
!50 = !{!12, !17, i64 672}
!51 = !{!12, !13, i64 456}
!52 = distinct !{!52, !47}
!53 = distinct !{!53, !47}
!54 = !{!12, !30, i64 22296}
!55 = !{!12, !30, i64 22560}
!56 = !{!12, !17, i64 696}
!57 = distinct !{!57, !47}
!58 = distinct !{!58, !47}
!59 = !{!12, !17, i64 440}
!60 = !{!12, !13, i64 448}
!61 = !{!12, !13, i64 21960}


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

@_ZN11alglib_implL23nlcslp_slpdeltadecreaseE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL23nlcslp_slpdeltaincreaseE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL23nlcslp_slpstpclosetooneE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL19nlcslp_inittrustradE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL25nlcslp_augmentationfactorE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL21nlcslp_stagnationepsxE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL21nlcslp_stagnationepsfE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL23nlcslp_xstagnationlimitE = external hidden local_unnamed_addr global i64, align 8
@_ZN11alglib_implL23nlcslp_fstagnationlimitE = external hidden local_unnamed_addr global i64, align 8

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl16checklcviolationEPNS_9ae_matrixEPNS_9ae_vectorEllS3_lPdPlPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl17checknlcviolationEPNS_9ae_vectorEllPdPlPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl15minslpiterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i1 noundef zeroext %2, ptr noundef %3) local_unnamed_addr #2 {
  %5 = alloca double, align 8
  %6 = alloca i64, align 8
  %7 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  %8 = getelementptr inbounds i8, ptr %0, i64 22032
  %9 = load i32, ptr %8, align 8, !tbaa !5
  %10 = icmp sgt i32 %9, -1
  br i1 %10, label %11, label %53

11:                                               ; preds = %4
  %12 = getelementptr inbounds i8, ptr %0, i64 22096
  %13 = load ptr, ptr %12, align 8, !tbaa !29
  %14 = load i64, ptr %13, align 8, !tbaa !30
  %15 = getelementptr inbounds i8, ptr %13, i64 8
  %16 = load i64, ptr %15, align 8, !tbaa !30
  %17 = getelementptr inbounds i8, ptr %13, i64 16
  %18 = load i64, ptr %17, align 8, !tbaa !30
  %19 = getelementptr inbounds i8, ptr %13, i64 24
  %20 = load i64, ptr %19, align 8, !tbaa !30
  %21 = getelementptr inbounds i8, ptr %13, i64 32
  %22 = load i64, ptr %21, align 8, !tbaa !30
  %23 = getelementptr inbounds i8, ptr %13, i64 40
  %24 = load i64, ptr %23, align 8, !tbaa !30
  %25 = getelementptr inbounds i8, ptr %13, i64 48
  %26 = load i64, ptr %25, align 8, !tbaa !30
  %27 = getelementptr inbounds i8, ptr %13, i64 56
  %28 = load i64, ptr %27, align 8, !tbaa !30
  %29 = getelementptr inbounds i8, ptr %13, i64 64
  %30 = load i64, ptr %29, align 8, !tbaa !30
  %31 = getelementptr inbounds i8, ptr %13, i64 72
  %32 = load i64, ptr %31, align 8, !tbaa !30
  %33 = getelementptr inbounds i8, ptr %0, i64 22160
  %34 = load ptr, ptr %33, align 8, !tbaa !29
  %35 = load i8, ptr %34, align 1, !tbaa !31, !range !32, !noundef !33
  %36 = getelementptr inbounds i8, ptr %0, i64 22224
  %37 = load ptr, ptr %36, align 8, !tbaa !29
  %38 = load double, ptr %37, align 8, !tbaa !34
  %39 = getelementptr inbounds i8, ptr %37, i64 8
  %40 = load double, ptr %39, align 8, !tbaa !34
  %41 = getelementptr inbounds i8, ptr %37, i64 16
  %42 = load double, ptr %41, align 8, !tbaa !34
  %43 = getelementptr inbounds i8, ptr %37, i64 24
  %44 = load double, ptr %43, align 8, !tbaa !34
  %45 = getelementptr inbounds i8, ptr %37, i64 32
  %46 = load double, ptr %45, align 8, !tbaa !34
  %47 = getelementptr inbounds i8, ptr %37, i64 40
  %48 = load double, ptr %47, align 8, !tbaa !34
  %49 = getelementptr inbounds i8, ptr %37, i64 48
  %50 = load double, ptr %49, align 8, !tbaa !34
  %51 = getelementptr inbounds i8, ptr %37, i64 56
  %52 = load double, ptr %51, align 8, !tbaa !34
  br label %53

53:                                               ; preds = %4, %11
  %.sink416 = phi i64 [ %32, %11 ], [ 205, %4 ]
  %.sink = phi double [ %44, %11 ], [ -5.410000e+02, %4 ]
  %storemerge = phi double [ %52, %11 ], [ -9.400000e+02, %4 ]
  %.0357 = phi i64 [ %14, %11 ], [ 359, %4 ]
  %.0355 = phi i64 [ %16, %11 ], [ -58, %4 ]
  %.0353 = phi i64 [ %18, %11 ], [ -919, %4 ]
  %.0351 = phi i64 [ %20, %11 ], [ -909, %4 ]
  %.0349 = phi i64 [ %22, %11 ], [ 81, %4 ]
  %.0347 = phi i64 [ %24, %11 ], [ 255, %4 ]
  %.0338 = phi i64 [ %26, %11 ], [ 74, %4 ]
  %.0337 = phi i64 [ %28, %11 ], [ -788, %4 ]
  %.0336 = phi i64 [ %30, %11 ], [ 809, %4 ]
  %.0330 = phi double [ %38, %11 ], [ 9.390000e+02, %4 ]
  %.0323 = phi double [ %40, %11 ], [ -5.260000e+02, %4 ]
  %.0322 = phi double [ %42, %11 ], [ 7.630000e+02, %4 ]
  %.0321 = phi i8 [ %35, %11 ], [ 0, %4 ]
  %.0316 = phi double [ %46, %11 ], [ -6.980000e+02, %4 ]
  %.0309 = phi double [ %48, %11 ], [ -9.000000e+02, %4 ]
  %.0 = phi double [ %50, %11 ], [ -3.180000e+02, %4 ]
  store i64 %.sink416, ptr %6, align 8
  store double %.sink, ptr %5, align 8
  store double %storemerge, ptr %7, align 8, !tbaa !34
  switch i32 %9, label %54 [
    i32 0, label %99
    i32 1, label %149
    i32 2, label %215
    i32 3, label %230
    i32 4, label %255
  ]

54:                                               ; preds = %53
  %55 = load i64, ptr %0, align 8, !tbaa !35
  %56 = getelementptr inbounds i8, ptr %0, i64 8
  %57 = load i64, ptr %56, align 8, !tbaa !36
  %58 = getelementptr inbounds i8, ptr %0, i64 16
  %59 = load i64, ptr %58, align 8, !tbaa !37
  %60 = getelementptr inbounds i8, ptr %0, i64 24
  %61 = load i64, ptr %60, align 8, !tbaa !38
  %62 = getelementptr inbounds i8, ptr %0, i64 32
  %63 = load i64, ptr %62, align 8, !tbaa !39
  %64 = add i64 %61, %57
  %65 = shl nsw i64 %64, 1
  %66 = add i64 %63, %59
  %67 = add i64 %66, %55
  %68 = add i64 %67, %65
  %69 = getelementptr inbounds i8, ptr %0, i64 680
  store i8 0, ptr %69, align 8, !tbaa !40
  %70 = getelementptr inbounds i8, ptr %0, i64 681
  store i8 0, ptr %70, align 1, !tbaa !41
  %71 = getelementptr inbounds i8, ptr %0, i64 20384
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %71, i8 0, i64 16, i1 false)
  %72 = load double, ptr @_ZN11alglib_implL19nlcslp_inittrustradE, align 8, !tbaa !34
  %73 = getelementptr inbounds i8, ptr %0, i64 688
  store double %72, ptr %73, align 8, !tbaa !42
  %74 = add i64 %64, %59
  %75 = add nsw i64 %74, %63
  %.not.not400 = icmp sgt i64 %75, 0
  br i1 %.not.not400, label %.lr.ph403, label %._crit_edge404

.lr.ph403:                                        ; preds = %54
  %76 = getelementptr inbounds i8, ptr %0, i64 21632
  %77 = add i64 %61, %57
  %78 = add i64 %77, %59
  %79 = add i64 %78, %63
  %80 = add i64 %79, -1
  %xtraiter430 = and i64 %75, 3
  %81 = icmp ult i64 %80, 3
  br i1 %81, label %._crit_edge404.loopexit.unr-lcssa, label %.lr.ph403.new

.lr.ph403.new:                                    ; preds = %.lr.ph403
  %unroll_iter433 = and i64 %75, 9223372036854775804
  br label %82

82:                                               ; preds = %82, %.lr.ph403.new
  %.1339401 = phi i64 [ 0, %.lr.ph403.new ], [ %94, %82 ]
  %niter434 = phi i64 [ 0, %.lr.ph403.new ], [ %niter434.next.3, %82 ]
  %83 = load ptr, ptr %76, align 8, !tbaa !29
  %84 = getelementptr inbounds double, ptr %83, i64 %.1339401
  store double 0.000000e+00, ptr %84, align 8, !tbaa !34
  %85 = or disjoint i64 %.1339401, 1
  %86 = load ptr, ptr %76, align 8, !tbaa !29
  %87 = getelementptr inbounds double, ptr %86, i64 %85
  store double 0.000000e+00, ptr %87, align 8, !tbaa !34
  %88 = or disjoint i64 %.1339401, 2
  %89 = load ptr, ptr %76, align 8, !tbaa !29
  %90 = getelementptr inbounds double, ptr %89, i64 %88
  store double 0.000000e+00, ptr %90, align 8, !tbaa !34
  %91 = or disjoint i64 %.1339401, 3
  %92 = load ptr, ptr %76, align 8, !tbaa !29
  %93 = getelementptr inbounds double, ptr %92, i64 %91
  store double 0.000000e+00, ptr %93, align 8, !tbaa !34
  %94 = add nuw nsw i64 %.1339401, 4
  %niter434.next.3 = add i64 %niter434, 4
  %niter434.ncmp.3 = icmp eq i64 %niter434.next.3, %unroll_iter433
  br i1 %niter434.ncmp.3, label %._crit_edge404.loopexit.unr-lcssa, label %82, !llvm.loop !43

._crit_edge404.loopexit.unr-lcssa:                ; preds = %82, %.lr.ph403
  %.1339401.unr = phi i64 [ 0, %.lr.ph403 ], [ %94, %82 ]
  %lcmp.mod432.not = icmp eq i64 %xtraiter430, 0
  br i1 %lcmp.mod432.not, label %._crit_edge404, label %.epil.preheader429

.epil.preheader429:                               ; preds = %._crit_edge404.loopexit.unr-lcssa, %.epil.preheader429
  %.1339401.epil = phi i64 [ %97, %.epil.preheader429 ], [ %.1339401.unr, %._crit_edge404.loopexit.unr-lcssa ]
  %epil.iter431 = phi i64 [ %epil.iter431.next, %.epil.preheader429 ], [ 0, %._crit_edge404.loopexit.unr-lcssa ]
  %95 = load ptr, ptr %76, align 8, !tbaa !29
  %96 = getelementptr inbounds double, ptr %95, i64 %.1339401.epil
  store double 0.000000e+00, ptr %96, align 8, !tbaa !34
  %97 = add nuw nsw i64 %.1339401.epil, 1
  %epil.iter431.next = add i64 %epil.iter431, 1
  %epil.iter431.cmp.not = icmp eq i64 %epil.iter431.next, %xtraiter430
  br i1 %epil.iter431.cmp.not, label %._crit_edge404, label %.epil.preheader429, !llvm.loop !45

._crit_edge404:                                   ; preds = %._crit_edge404.loopexit.unr-lcssa, %.epil.preheader429, %54
  %.1339.lcssa = phi i64 [ 0, %54 ], [ %75, %.epil.preheader429 ], [ %75, %._crit_edge404.loopexit.unr-lcssa ]
  store double 0.000000e+00, ptr %5, align 8, !tbaa !34
  store i64 0, ptr %6, align 8, !tbaa !30
  store double 0.000000e+00, ptr %7, align 8, !tbaa !34
  %98 = getelementptr inbounds i8, ptr %0, i64 20464
  tail call void @_ZN11alglib_implL15nlcslp_slpsendxEPNS_11minslpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %98, ptr noundef %3)
  store i8 1, ptr %69, align 8, !tbaa !40
  br label %375

99:                                               ; preds = %53
  %100 = getelementptr inbounds i8, ptr %0, i64 680
  store i8 0, ptr %100, align 8, !tbaa !40
  %101 = getelementptr inbounds i8, ptr %0, i64 20720
  %102 = getelementptr inbounds i8, ptr %0, i64 20976
  %103 = tail call noundef zeroext i1 @_ZN11alglib_implL21nlcslp_slpretrievefijEPNS_11minslpstateEPNS_9ae_vectorEPNS_9ae_matrixEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %101, ptr noundef nonnull %102, ptr noundef %3)
  br i1 %103, label %139, label %.preheader

.preheader:                                       ; preds = %99
  %.not372.not396 = icmp sgt i64 %.0357, 0
  br i1 %.not372.not396, label %.lr.ph398, label %._crit_edge399

.lr.ph398:                                        ; preds = %.preheader
  %104 = getelementptr inbounds i8, ptr %0, i64 20520
  %105 = getelementptr inbounds i8, ptr %0, i64 20584
  %xtraiter = and i64 %.0357, 3
  %106 = icmp ult i64 %.0357, 4
  br i1 %106, label %._crit_edge399.loopexit.unr-lcssa, label %.lr.ph398.new

.lr.ph398.new:                                    ; preds = %.lr.ph398
  %unroll_iter = and i64 %.0357, 9223372036854775804
  br label %107

107:                                              ; preds = %107, %.lr.ph398.new
  %.2340397 = phi i64 [ 0, %.lr.ph398.new ], [ %131, %107 ]
  %niter = phi i64 [ 0, %.lr.ph398.new ], [ %niter.next.3, %107 ]
  %108 = load ptr, ptr %104, align 8, !tbaa !29
  %109 = getelementptr inbounds double, ptr %108, i64 %.2340397
  %110 = load double, ptr %109, align 8, !tbaa !34
  %111 = load ptr, ptr %105, align 8, !tbaa !29
  %112 = getelementptr inbounds double, ptr %111, i64 %.2340397
  store double %110, ptr %112, align 8, !tbaa !34
  %113 = or disjoint i64 %.2340397, 1
  %114 = load ptr, ptr %104, align 8, !tbaa !29
  %115 = getelementptr inbounds double, ptr %114, i64 %113
  %116 = load double, ptr %115, align 8, !tbaa !34
  %117 = load ptr, ptr %105, align 8, !tbaa !29
  %118 = getelementptr inbounds double, ptr %117, i64 %113
  store double %116, ptr %118, align 8, !tbaa !34
  %119 = or disjoint i64 %.2340397, 2
  %120 = load ptr, ptr %104, align 8, !tbaa !29
  %121 = getelementptr inbounds double, ptr %120, i64 %119
  %122 = load double, ptr %121, align 8, !tbaa !34
  %123 = load ptr, ptr %105, align 8, !tbaa !29
  %124 = getelementptr inbounds double, ptr %123, i64 %119
  store double %122, ptr %124, align 8, !tbaa !34
  %125 = or disjoint i64 %.2340397, 3
  %126 = load ptr, ptr %104, align 8, !tbaa !29
  %127 = getelementptr inbounds double, ptr %126, i64 %125
  %128 = load double, ptr %127, align 8, !tbaa !34
  %129 = load ptr, ptr %105, align 8, !tbaa !29
  %130 = getelementptr inbounds double, ptr %129, i64 %125
  store double %128, ptr %130, align 8, !tbaa !34
  %131 = add nuw nsw i64 %.2340397, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge399.loopexit.unr-lcssa, label %107, !llvm.loop !47

._crit_edge399.loopexit.unr-lcssa:                ; preds = %107, %.lr.ph398
  %.2340397.unr = phi i64 [ 0, %.lr.ph398 ], [ %131, %107 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge399, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge399.loopexit.unr-lcssa, %.epil.preheader
  %.2340397.epil = phi i64 [ %137, %.epil.preheader ], [ %.2340397.unr, %._crit_edge399.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge399.loopexit.unr-lcssa ]
  %132 = load ptr, ptr %104, align 8, !tbaa !29
  %133 = getelementptr inbounds double, ptr %132, i64 %.2340397.epil
  %134 = load double, ptr %133, align 8, !tbaa !34
  %135 = load ptr, ptr %105, align 8, !tbaa !29
  %136 = getelementptr inbounds double, ptr %135, i64 %.2340397.epil
  store double %134, ptr %136, align 8, !tbaa !34
  %137 = add nuw nsw i64 %.2340397.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge399, label %.epil.preheader, !llvm.loop !48

._crit_edge399:                                   ; preds = %._crit_edge399.loopexit.unr-lcssa, %.epil.preheader, %.preheader
  %138 = getelementptr inbounds i8, ptr %0, i64 21976
  store i64 -8, ptr %138, align 8, !tbaa !49
  br label %417

139:                                              ; preds = %99
  %140 = getelementptr inbounds i8, ptr %0, i64 20464
  %141 = getelementptr inbounds i8, ptr %0, i64 20528
  %142 = getelementptr inbounds i8, ptr %0, i64 20784
  %143 = getelementptr inbounds i8, ptr %0, i64 21056
  tail call void @_ZN11alglib_implL19nlcslp_slpcopystateEPNS_11minslpstateEPNS_9ae_vectorES3_PNS_9ae_matrixES3_S3_S5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %140, ptr noundef nonnull %101, ptr noundef nonnull %102, ptr noundef nonnull %141, ptr noundef nonnull %142, ptr noundef nonnull %143, ptr noundef %3)
  tail call void @_ZN11alglib_implL15nlcslp_slpsendxEPNS_11minslpstateEPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %141, ptr noundef %3)
  %144 = getelementptr inbounds i8, ptr %0, i64 20840
  %145 = load ptr, ptr %144, align 8, !tbaa !29
  %146 = load double, ptr %145, align 8, !tbaa !34
  %147 = getelementptr inbounds i8, ptr %0, i64 672
  store double %146, ptr %147, align 8, !tbaa !50
  %148 = getelementptr inbounds i8, ptr %0, i64 681
  store i8 1, ptr %148, align 1, !tbaa !41
  br label %375

149:                                              ; preds = %53
  %150 = getelementptr inbounds i8, ptr %0, i64 681
  store i8 0, ptr %150, align 1, !tbaa !41
  %151 = getelementptr inbounds i8, ptr %0, i64 40
  %152 = getelementptr inbounds i8, ptr %0, i64 120
  %153 = getelementptr inbounds i8, ptr %0, i64 20528
  %154 = getelementptr inbounds i8, ptr %0, i64 22000
  %155 = getelementptr inbounds i8, ptr %0, i64 22008
  tail call void @_ZN11alglib_impl16checklcviolationEPNS_9ae_matrixEPNS_9ae_vectorEllS3_lPdPlPNS_8ae_stateE(ptr noundef nonnull %151, ptr noundef nonnull %152, i64 noundef %.0353, i64 noundef %.0351, ptr noundef nonnull %153, i64 noundef %.0357, ptr noundef nonnull %154, ptr noundef nonnull %155, ptr noundef %3)
  %156 = getelementptr inbounds i8, ptr %0, i64 20784
  %157 = getelementptr inbounds i8, ptr %0, i64 22016
  %158 = getelementptr inbounds i8, ptr %0, i64 22024
  tail call void @_ZN11alglib_impl17checknlcviolationEPNS_9ae_vectorEllPdPlPNS_8ae_stateE(ptr noundef nonnull %156, i64 noundef %.0349, i64 noundef %.0347, ptr noundef nonnull %157, ptr noundef nonnull %158, ptr noundef %3)
  tail call void @_ZN11alglib_implL21nlcslp_tracebeginningEPNS_8ae_stateE(ptr noundef %3)
  %159 = getelementptr inbounds i8, ptr %0, i64 704
  %160 = getelementptr inbounds i8, ptr %0, i64 456
  %161 = load i64, ptr %160, align 8, !tbaa !51
  tail call void @_ZN11alglib_implL22nlcslp_initlpsubsolverEPNS_11minslpstateEPNS_15minslpsubsolverElPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %159, i64 noundef %161, ptr noundef %3)
  br label %162

162:                                              ; preds = %369, %257, %232, %217, %149
  %.1324 = phi double [ %.0323, %149 ], [ %.4327, %217 ], [ %327, %369 ], [ %.5328, %232 ], [ %.6329, %257 ]
  %.1310 = phi double [ %.0309, %149 ], [ %.2311, %217 ], [ %.5314, %369 ], [ %.3312, %232 ], [ %.4313, %257 ]
  %.1 = phi double [ %.0, %149 ], [ %.2, %217 ], [ %.5, %369 ], [ %.3, %232 ], [ %.4, %257 ]
  %163 = getelementptr inbounds i8, ptr %0, i64 21056
  %164 = getelementptr inbounds i8, ptr %0, i64 21128
  %165 = load ptr, ptr %164, align 8, !tbaa !29
  %166 = load ptr, ptr %165, align 8, !tbaa !52
  %167 = add nsw i64 %.0357, -1
  %168 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %167)
  %169 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %166, i64 noundef 1, ptr noundef %166, i64 noundef 1, i64 noundef %168)
  %170 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %169, ptr noundef %3)
  %171 = load double, ptr %5, align 8, !tbaa !34
  %172 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %170, double noundef %171, ptr noundef %3)
  %173 = add nsw i64 %.0351, %.0353
  %.not.not366374 = icmp sgt i64 %173, 0
  br i1 %.not.not366374, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %162
  %174 = getelementptr inbounds i8, ptr %0, i64 21632
  br label %175

175:                                              ; preds = %.lr.ph, %175
  %.3341375 = phi i64 [ 0, %.lr.ph ], [ %184, %175 ]
  %176 = load ptr, ptr %174, align 8, !tbaa !29
  %177 = getelementptr inbounds double, ptr %176, i64 %.3341375
  %178 = load double, ptr %177, align 8, !tbaa !34
  %179 = load double, ptr @_ZN11alglib_implL25nlcslp_augmentationfactorE, align 8, !tbaa !34
  %180 = fmul double %172, %179
  %181 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %178, double noundef %180, ptr noundef %3)
  %182 = load ptr, ptr %174, align 8, !tbaa !29
  %183 = getelementptr inbounds double, ptr %182, i64 %.3341375
  store double %181, ptr %183, align 8, !tbaa !34
  %184 = add nuw nsw i64 %.3341375, 1
  %exitcond.not = icmp eq i64 %184, %173
  br i1 %exitcond.not, label %._crit_edge, label %175, !llvm.loop !53

._crit_edge:                                      ; preds = %175, %162
  %.3341.lcssa = phi i64 [ 0, %162 ], [ %173, %175 ]
  %185 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %172, double noundef 0.000000e+00)
  br i1 %185, label %.preheader373, label %.loopexit

.preheader373:                                    ; preds = %._crit_edge
  %186 = add nsw i64 %.0347, %.0349
  %.not.not367377 = icmp sgt i64 %186, 0
  br i1 %.not.not367377, label %.lr.ph379, label %.loopexit

.lr.ph379:                                        ; preds = %.preheader373
  %187 = getelementptr inbounds i8, ptr %0, i64 21632
  br label %188

188:                                              ; preds = %.lr.ph379, %188
  %.4342378 = phi i64 [ 0, %.lr.ph379 ], [ %190, %188 ]
  %189 = load ptr, ptr %164, align 8, !tbaa !29
  %190 = add nuw nsw i64 %.4342378, 1
  %191 = getelementptr inbounds ptr, ptr %189, i64 %190
  %192 = load ptr, ptr %191, align 8, !tbaa !52
  %193 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %167)
  %194 = call noundef double @_ZN11alglib_impl15ae_v_dotproductEPKdlS1_ll(ptr noundef %192, i64 noundef 1, ptr noundef %192, i64 noundef 1, i64 noundef %193)
  %195 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %194, ptr noundef %3)
  %196 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %195, double noundef %172, ptr noundef %3)
  %197 = load ptr, ptr %187, align 8, !tbaa !29
  %198 = add nsw i64 %.4342378, %173
  %199 = getelementptr inbounds double, ptr %197, i64 %198
  %200 = load double, ptr %199, align 8, !tbaa !34
  %201 = load double, ptr @_ZN11alglib_implL25nlcslp_augmentationfactorE, align 8, !tbaa !34
  %202 = fdiv double %172, %196
  %203 = fmul double %202, %201
  %204 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %200, double noundef %203, ptr noundef %3)
  %205 = load ptr, ptr %187, align 8, !tbaa !29
  %206 = getelementptr inbounds double, ptr %205, i64 %198
  store double %204, ptr %206, align 8, !tbaa !34
  %exitcond411.not = icmp eq i64 %190, %186
  br i1 %exitcond411.not, label %.loopexit, label %188, !llvm.loop !54

.loopexit:                                        ; preds = %188, %.preheader373, %._crit_edge
  %.5343 = phi i64 [ %.3341.lcssa, %._crit_edge ], [ 0, %.preheader373 ], [ %186, %188 ]
  %.3326 = phi double [ %.1324, %._crit_edge ], [ %.1324, %.preheader373 ], [ %196, %188 ]
  %207 = getelementptr inbounds i8, ptr %0, i64 20528
  %208 = getelementptr inbounds i8, ptr %0, i64 20784
  %209 = getelementptr inbounds i8, ptr %0, i64 20464
  %210 = getelementptr inbounds i8, ptr %0, i64 20720
  %211 = getelementptr inbounds i8, ptr %0, i64 20976
  call void @_ZN11alglib_implL19nlcslp_slpcopystateEPNS_11minslpstateEPNS_9ae_vectorES3_PNS_9ae_matrixES3_S3_S5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %207, ptr noundef nonnull %208, ptr noundef nonnull %163, ptr noundef nonnull %209, ptr noundef nonnull %210, ptr noundef nonnull %211, ptr noundef %3)
  %212 = getelementptr inbounds i8, ptr %0, i64 22296
  %213 = getelementptr inbounds i8, ptr %0, i64 22304
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %213, i64 noundef 9, ptr noundef %3)
  %214 = getelementptr inbounds i8, ptr %0, i64 22432
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %214, i64 noundef 5, ptr noundef %3)
  store i32 -1, ptr %212, align 8, !tbaa !55
  br label %215

215:                                              ; preds = %53, %.loopexit
  %.6344 = phi i64 [ %.5343, %.loopexit ], [ %.0338, %53 ]
  %.1331 = phi double [ %169, %.loopexit ], [ %.0330, %53 ]
  %.4327 = phi double [ %.3326, %.loopexit ], [ %.0323, %53 ]
  %.1317 = phi double [ %172, %.loopexit ], [ %.0316, %53 ]
  %.2311 = phi double [ %.1310, %.loopexit ], [ %.0309, %53 ]
  %.2 = phi double [ %.1, %.loopexit ], [ %.0, %53 ]
  %216 = call noundef zeroext i1 @_ZN11alglib_implL23nlcslp_phase13iterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbbPlPdPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i1 noundef zeroext true, i1 noundef zeroext %2, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %3)
  br i1 %216, label %375, label %217

217:                                              ; preds = %215
  %218 = load i64, ptr %6, align 8, !tbaa !30
  %219 = icmp slt i64 %218, 0
  br i1 %219, label %162, label %220

220:                                              ; preds = %217
  %221 = icmp eq i64 %218, 0
  br i1 %221, label %374, label %222

222:                                              ; preds = %220
  %223 = load double, ptr %7, align 8, !tbaa !34
  %224 = load double, ptr @_ZN11alglib_implL23nlcslp_slpstpclosetooneE, align 8, !tbaa !34
  %225 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %223, double noundef %224)
  br i1 %225, label %262, label %226

226:                                              ; preds = %222
  %227 = getelementptr inbounds i8, ptr %0, i64 22560
  %228 = getelementptr inbounds i8, ptr %0, i64 22568
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %228, i64 noundef 12, ptr noundef %3)
  %229 = getelementptr inbounds i8, ptr %0, i64 22696
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %229, i64 noundef 4, ptr noundef %3)
  store i32 -1, ptr %227, align 8, !tbaa !56
  br label %230

230:                                              ; preds = %53, %226
  %.7345 = phi i64 [ %.6344, %226 ], [ %.0338, %53 ]
  %.2332 = phi double [ %.1331, %226 ], [ %.0330, %53 ]
  %.5328 = phi double [ %.4327, %226 ], [ %.0323, %53 ]
  %.2318 = phi double [ %.1317, %226 ], [ %.0316, %53 ]
  %.3312 = phi double [ %.2311, %226 ], [ %.0309, %53 ]
  %.3 = phi double [ %.2, %226 ], [ %.0, %53 ]
  %231 = call noundef zeroext i1 @_ZN11alglib_implL22nlcslp_phase2iterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbPdPlPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i1 noundef zeroext %2, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %3)
  br i1 %231, label %375, label %232

232:                                              ; preds = %230
  %233 = load i64, ptr %6, align 8, !tbaa !30
  %234 = icmp slt i64 %233, 0
  br i1 %234, label %162, label %235

235:                                              ; preds = %232
  %236 = icmp eq i64 %233, 0
  br i1 %236, label %374, label %237

237:                                              ; preds = %235
  %238 = getelementptr inbounds i8, ptr %0, i64 20464
  %239 = getelementptr inbounds i8, ptr %0, i64 688
  %240 = load double, ptr %239, align 8, !tbaa !42
  %241 = getelementptr inbounds i8, ptr %0, i64 20720
  %242 = getelementptr inbounds i8, ptr %0, i64 20976
  %243 = getelementptr inbounds i8, ptr %0, i64 21448
  %244 = call noundef double @_ZN11alglib_implL20nlcslp_meritfunctionEPNS_11minslpstateEPNS_9ae_vectorEdS3_PNS_9ae_matrixES3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %238, double noundef %240, ptr noundef nonnull %241, ptr noundef nonnull %242, ptr noundef nonnull %243, ptr noundef %3)
  %245 = getelementptr inbounds i8, ptr %0, i64 20528
  %246 = load double, ptr %239, align 8, !tbaa !42
  %247 = getelementptr inbounds i8, ptr %0, i64 20784
  %248 = getelementptr inbounds i8, ptr %0, i64 21056
  %249 = call noundef double @_ZN11alglib_implL20nlcslp_meritfunctionEPNS_11minslpstateEPNS_9ae_vectorEdS3_PNS_9ae_matrixES3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %245, double noundef %246, ptr noundef nonnull %247, ptr noundef nonnull %248, ptr noundef nonnull %243, ptr noundef %3)
  %250 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %249, double noundef %244)
  br i1 %250, label %262, label %251

251:                                              ; preds = %237
  %252 = getelementptr inbounds i8, ptr %0, i64 22296
  %253 = getelementptr inbounds i8, ptr %0, i64 22304
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %253, i64 noundef 9, ptr noundef %3)
  %254 = getelementptr inbounds i8, ptr %0, i64 22432
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %254, i64 noundef 5, ptr noundef %3)
  store i32 -1, ptr %252, align 8, !tbaa !55
  br label %255

255:                                              ; preds = %53, %251
  %.8346 = phi i64 [ %.7345, %251 ], [ %.0338, %53 ]
  %.3333 = phi double [ %.2332, %251 ], [ %.0330, %53 ]
  %.6329 = phi double [ %.5328, %251 ], [ %.0323, %53 ]
  %.3319 = phi double [ %.2318, %251 ], [ %.0316, %53 ]
  %.4313 = phi double [ %244, %251 ], [ %.0309, %53 ]
  %.4 = phi double [ %249, %251 ], [ %.0, %53 ]
  %256 = call noundef zeroext i1 @_ZN11alglib_implL23nlcslp_phase13iterationEPNS_11minslpstateEPNS_17smoothnessmonitorEbbPlPdPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i1 noundef zeroext false, i1 noundef zeroext %2, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %3)
  br i1 %256, label %375, label %257

257:                                              ; preds = %255
  %258 = load i64, ptr %6, align 8, !tbaa !30
  %259 = icmp slt i64 %258, 0
  br i1 %259, label %162, label %260

260:                                              ; preds = %257
  %261 = icmp eq i64 %258, 0
  br i1 %261, label %374, label %262

262:                                              ; preds = %237, %260, %222
  %.5314 = phi double [ %.2311, %222 ], [ %244, %237 ], [ %.4313, %260 ]
  %.5 = phi double [ %.2, %222 ], [ %249, %237 ], [ %.4, %260 ]
  call void @_ZN11alglib_implL21nlcslp_tracemultistepEPNS_11minslpstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %3)
  %263 = getelementptr inbounds i8, ptr %0, i64 696
  store double 0.000000e+00, ptr %263, align 8, !tbaa !57
  %.not.not368382 = icmp sgt i64 %.0357, 0
  br i1 %.not.not368382, label %.lr.ph385, label %._crit_edge386

.lr.ph385:                                        ; preds = %262
  %264 = getelementptr inbounds i8, ptr %0, i64 20520
  %265 = getelementptr inbounds i8, ptr %0, i64 20584
  %266 = getelementptr inbounds i8, ptr %0, i64 688
  br label %267

267:                                              ; preds = %.lr.ph385, %267
  %268 = phi double [ 0.000000e+00, %.lr.ph385 ], [ %279, %267 ]
  %.9383 = phi i64 [ 0, %.lr.ph385 ], [ %280, %267 ]
  %269 = load ptr, ptr %264, align 8, !tbaa !29
  %270 = getelementptr inbounds double, ptr %269, i64 %.9383
  %271 = load double, ptr %270, align 8, !tbaa !34
  %272 = load ptr, ptr %265, align 8, !tbaa !29
  %273 = getelementptr inbounds double, ptr %272, i64 %.9383
  %274 = load double, ptr %273, align 8, !tbaa !34
  %275 = fsub double %271, %274
  %276 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %275, ptr noundef %3)
  %277 = load double, ptr %266, align 8, !tbaa !42
  %278 = fdiv double %276, %277
  %279 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %268, double noundef %278, ptr noundef %3)
  store double %279, ptr %263, align 8, !tbaa !57
  %280 = add nuw nsw i64 %.9383, 1
  %exitcond412.not = icmp eq i64 %280, %.0357
  br i1 %exitcond412.not, label %._crit_edge386, label %267, !llvm.loop !58

._crit_edge386:                                   ; preds = %267, %262
  %281 = phi double [ 0.000000e+00, %262 ], [ %279, %267 ]
  %282 = load double, ptr @_ZN11alglib_implL23nlcslp_slpdeltadecreaseE, align 8, !tbaa !34
  %283 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %281, double noundef %282)
  br i1 %283, label %284, label %292

284:                                              ; preds = %._crit_edge386
  %285 = getelementptr inbounds i8, ptr %0, i64 688
  %286 = load double, ptr %285, align 8, !tbaa !42
  %287 = load double, ptr %263, align 8, !tbaa !57
  %288 = load double, ptr @_ZN11alglib_implL23nlcslp_slpdeltadecreaseE, align 8, !tbaa !34
  %289 = fdiv double %287, %288
  %290 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %289, double noundef 1.000000e-01, ptr noundef %3)
  %291 = fmul double %286, %290
  store double %291, ptr %285, align 8, !tbaa !42
  br label %292

292:                                              ; preds = %284, %._crit_edge386
  %293 = load double, ptr %263, align 8, !tbaa !57
  %294 = load double, ptr @_ZN11alglib_implL23nlcslp_slpdeltaincreaseE, align 8, !tbaa !34
  %295 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %293, double noundef %294)
  br i1 %295, label %296, label %300

296:                                              ; preds = %292
  %297 = getelementptr inbounds i8, ptr %0, i64 688
  %298 = load double, ptr %297, align 8, !tbaa !42
  %299 = fmul double %298, 2.000000e+00
  store double %299, ptr %297, align 8, !tbaa !42
  br label %300

300:                                              ; preds = %296, %292
  %301 = getelementptr inbounds i8, ptr %0, i64 21968
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %301, ptr noundef %3)
  br i1 %.not.not368382, label %.lr.ph392, label %._crit_edge393

.lr.ph392:                                        ; preds = %300
  %302 = getelementptr inbounds i8, ptr %0, i64 20520
  %303 = getelementptr inbounds i8, ptr %0, i64 20456
  %304 = getelementptr inbounds i8, ptr %0, i64 20584
  br label %305

305:                                              ; preds = %.lr.ph392, %305
  %.7390 = phi double [ 0.000000e+00, %.lr.ph392 ], [ %324, %305 ]
  %.4334389 = phi double [ 0.000000e+00, %.lr.ph392 ], [ %319, %305 ]
  %.10388 = phi i64 [ 0, %.lr.ph392 ], [ %325, %305 ]
  %306 = load ptr, ptr %302, align 8, !tbaa !29
  %307 = getelementptr inbounds double, ptr %306, i64 %.10388
  %308 = load double, ptr %307, align 8, !tbaa !34
  %309 = load ptr, ptr %303, align 8, !tbaa !29
  %310 = getelementptr inbounds double, ptr %309, i64 %.10388
  store double %308, ptr %310, align 8, !tbaa !34
  %311 = load ptr, ptr %302, align 8, !tbaa !29
  %312 = getelementptr inbounds double, ptr %311, i64 %.10388
  %313 = load double, ptr %312, align 8, !tbaa !34
  %314 = load ptr, ptr %304, align 8, !tbaa !29
  %315 = getelementptr inbounds double, ptr %314, i64 %.10388
  %316 = load double, ptr %315, align 8, !tbaa !34
  %317 = fsub double %313, %316
  %318 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %317, ptr noundef %3)
  %319 = fadd double %.4334389, %318
  %320 = load ptr, ptr %304, align 8, !tbaa !29
  %321 = getelementptr inbounds double, ptr %320, i64 %.10388
  %322 = load double, ptr %321, align 8, !tbaa !34
  %323 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %322, ptr noundef %3)
  %324 = fadd double %.7390, %323
  %325 = add nuw nsw i64 %.10388, 1
  %exitcond413.not = icmp eq i64 %325, %.0357
  br i1 %exitcond413.not, label %._crit_edge393, label %305, !llvm.loop !59

._crit_edge393:                                   ; preds = %305, %300
  %.4334.lcssa = phi double [ 0.000000e+00, %300 ], [ %319, %305 ]
  %.7.lcssa = phi double [ 0.000000e+00, %300 ], [ %324, %305 ]
  %326 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.4334.lcssa, ptr noundef %3)
  %327 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.7.lcssa, ptr noundef %3)
  %328 = getelementptr inbounds i8, ptr %0, i64 440
  %329 = load double, ptr %328, align 8, !tbaa !60
  %330 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %326, double noundef %329)
  br i1 %330, label %335, label %331

331:                                              ; preds = %._crit_edge393
  %332 = load double, ptr @_ZN11alglib_implL21nlcslp_stagnationepsxE, align 8, !tbaa !34
  %333 = fmul double %327, %332
  %334 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %326, double noundef %333)
  br i1 %334, label %335, label %337

335:                                              ; preds = %331, %._crit_edge393
  %336 = getelementptr inbounds i8, ptr %0, i64 20384
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %336, ptr noundef %3)
  br label %339

337:                                              ; preds = %331
  %338 = getelementptr inbounds i8, ptr %0, i64 20384
  store i64 0, ptr %338, align 8, !tbaa !61
  br label %339

339:                                              ; preds = %337, %335
  %340 = getelementptr inbounds i8, ptr %0, i64 20840
  %341 = load ptr, ptr %340, align 8, !tbaa !29
  %342 = load double, ptr %341, align 8, !tbaa !34
  %343 = getelementptr inbounds i8, ptr %0, i64 20776
  %344 = load ptr, ptr %343, align 8, !tbaa !29
  %345 = load double, ptr %344, align 8, !tbaa !34
  %346 = fsub double %342, %345
  %347 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %346, ptr noundef %3)
  %348 = load double, ptr @_ZN11alglib_implL21nlcslp_stagnationepsfE, align 8, !tbaa !34
  %349 = load ptr, ptr %343, align 8, !tbaa !29
  %350 = load double, ptr %349, align 8, !tbaa !34
  %351 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %350, ptr noundef %3)
  %352 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %351, double noundef 1.000000e+00, ptr noundef %3)
  %353 = fmul double %348, %352
  %354 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %347, double noundef %353)
  %355 = getelementptr inbounds i8, ptr %0, i64 20392
  br i1 %354, label %356, label %357

356:                                              ; preds = %339
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %355, ptr noundef %3)
  br label %358

357:                                              ; preds = %339
  store i64 0, ptr %355, align 8, !tbaa !62
  br label %358

358:                                              ; preds = %357, %356
  call void @_ZN11alglib_implL19nlcslp_tracenlpstepEPNS_11minslpstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %3)
  %359 = getelementptr inbounds i8, ptr %0, i64 20384
  %360 = load i64, ptr %359, align 8, !tbaa !61
  %361 = load i64, ptr @_ZN11alglib_implL23nlcslp_xstagnationlimitE, align 8, !tbaa !30
  %.not = icmp slt i64 %360, %361
  br i1 %.not, label %362, label %.sink.split

362:                                              ; preds = %358
  %363 = getelementptr inbounds i8, ptr %0, i64 448
  %364 = load i64, ptr %363, align 8, !tbaa !63
  %365 = icmp sgt i64 %364, 0
  br i1 %365, label %366, label %369

366:                                              ; preds = %362
  %367 = getelementptr inbounds i8, ptr %0, i64 21960
  %368 = load i64, ptr %367, align 8, !tbaa !64
  %.not370 = icmp slt i64 %368, %364
  br i1 %.not370, label %369, label %.sink.split

369:                                              ; preds = %366, %362
  %370 = getelementptr inbounds i8, ptr %0, i64 20392
  %371 = load i64, ptr %370, align 8, !tbaa !62
  %372 = load i64, ptr @_ZN11alglib_implL23nlcslp_fstagnationlimitE, align 8, !tbaa !30
  %.not371 = icmp slt i64 %371, %372
  br i1 %.not371, label %162, label %.sink.split

.sink.split:                                      ; preds = %369, %366, %358
  %.sink420 = phi i64 [ 2, %358 ], [ 5, %366 ], [ 7, %369 ]
  %373 = getelementptr inbounds i8, ptr %0, i64 21976
  store i64 %.sink420, ptr %373, align 8, !tbaa !49
  br label %374

374:                                              ; preds = %.sink.split, %260, %235, %220
  call void @_ZN11alglib_implL22nlcslp_tracefinalpointEPNS_11minslpstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %3)
  br label %417

375:                                              ; preds = %255, %230, %215, %139, %._crit_edge404
  %.sink422 = phi i32 [ 1, %139 ], [ 0, %._crit_edge404 ], [ 2, %215 ], [ 3, %230 ], [ 4, %255 ]
  %.1358 = phi i64 [ %.0357, %139 ], [ %55, %._crit_edge404 ], [ %.0357, %215 ], [ %.0357, %230 ], [ %.0357, %255 ]
  %.1356 = phi i64 [ %.0355, %139 ], [ %68, %._crit_edge404 ], [ %.0355, %215 ], [ %.0355, %230 ], [ %.0355, %255 ]
  %.1354 = phi i64 [ %.0353, %139 ], [ %57, %._crit_edge404 ], [ %.0353, %215 ], [ %.0353, %230 ], [ %.0353, %255 ]
  %.1352 = phi i64 [ %.0351, %139 ], [ %59, %._crit_edge404 ], [ %.0351, %215 ], [ %.0351, %230 ], [ %.0351, %255 ]
  %.1350 = phi i64 [ %.0349, %139 ], [ %61, %._crit_edge404 ], [ %.0349, %215 ], [ %.0349, %230 ], [ %.0349, %255 ]
  %.1348 = phi i64 [ %.0347, %139 ], [ %63, %._crit_edge404 ], [ %.0347, %215 ], [ %.0347, %230 ], [ %.0347, %255 ]
  %.11 = phi i64 [ %.0338, %139 ], [ %.1339.lcssa, %._crit_edge404 ], [ %.6344, %215 ], [ %.7345, %230 ], [ %.8346, %255 ]
  %.5335 = phi double [ %.0330, %139 ], [ %.0330, %._crit_edge404 ], [ %.1331, %215 ], [ %.2332, %230 ], [ %.3333, %255 ]
  %.8 = phi double [ %.0323, %139 ], [ %.0323, %._crit_edge404 ], [ %.4327, %215 ], [ %.5328, %230 ], [ %.6329, %255 ]
  %.4320 = phi double [ %.0316, %139 ], [ %.0316, %._crit_edge404 ], [ %.1317, %215 ], [ %.2318, %230 ], [ %.3319, %255 ]
  %.6315 = phi double [ %.0309, %139 ], [ %.0309, %._crit_edge404 ], [ %.2311, %215 ], [ %.3312, %230 ], [ %.4313, %255 ]
  %.6 = phi double [ %.0, %139 ], [ %.0, %._crit_edge404 ], [ %.2, %215 ], [ %.3, %230 ], [ %.4, %255 ]
  store i32 %.sink422, ptr %8, align 8, !tbaa !5
  %376 = getelementptr inbounds i8, ptr %0, i64 22096
  %377 = load ptr, ptr %376, align 8, !tbaa !29
  store i64 %.1358, ptr %377, align 8, !tbaa !30
  %378 = load ptr, ptr %376, align 8, !tbaa !29
  %379 = getelementptr inbounds i8, ptr %378, i64 8
  store i64 %.1356, ptr %379, align 8, !tbaa !30
  %380 = load ptr, ptr %376, align 8, !tbaa !29
  %381 = getelementptr inbounds i8, ptr %380, i64 16
  store i64 %.1354, ptr %381, align 8, !tbaa !30
  %382 = load ptr, ptr %376, align 8, !tbaa !29
  %383 = getelementptr inbounds i8, ptr %382, i64 24
  store i64 %.1352, ptr %383, align 8, !tbaa !30
  %384 = load ptr, ptr %376, align 8, !tbaa !29
  %385 = getelementptr inbounds i8, ptr %384, i64 32
  store i64 %.1350, ptr %385, align 8, !tbaa !30
  %386 = load ptr, ptr %376, align 8, !tbaa !29
  %387 = getelementptr inbounds i8, ptr %386, i64 40
  store i64 %.1348, ptr %387, align 8, !tbaa !30
  %388 = load ptr, ptr %376, align 8, !tbaa !29
  %389 = getelementptr inbounds i8, ptr %388, i64 48
  store i64 %.11, ptr %389, align 8, !tbaa !30
  %390 = load ptr, ptr %376, align 8, !tbaa !29
  %391 = getelementptr inbounds i8, ptr %390, i64 56
  store i64 %.0337, ptr %391, align 8, !tbaa !30
  %392 = load ptr, ptr %376, align 8, !tbaa !29
  %393 = getelementptr inbounds i8, ptr %392, i64 64
  store i64 %.0336, ptr %393, align 8, !tbaa !30
  %394 = load i64, ptr %6, align 8, !tbaa !30
  %395 = load ptr, ptr %376, align 8, !tbaa !29
  %396 = getelementptr inbounds i8, ptr %395, i64 72
  store i64 %394, ptr %396, align 8, !tbaa !30
  %397 = getelementptr inbounds i8, ptr %0, i64 22160
  %398 = load ptr, ptr %397, align 8, !tbaa !29
  store i8 %.0321, ptr %398, align 1, !tbaa !31
  %399 = getelementptr inbounds i8, ptr %0, i64 22224
  %400 = load ptr, ptr %399, align 8, !tbaa !29
  store double %.5335, ptr %400, align 8, !tbaa !34
  %401 = load ptr, ptr %399, align 8, !tbaa !29
  %402 = getelementptr inbounds i8, ptr %401, i64 8
  store double %.8, ptr %402, align 8, !tbaa !34
  %403 = load ptr, ptr %399, align 8, !tbaa !29
  %404 = getelementptr inbounds i8, ptr %403, i64 16
  store double %.0322, ptr %404, align 8, !tbaa !34
  %405 = load double, ptr %5, align 8, !tbaa !34
  %406 = load ptr, ptr %399, align 8, !tbaa !29
  %407 = getelementptr inbounds i8, ptr %406, i64 24
  store double %405, ptr %407, align 8, !tbaa !34
  %408 = load ptr, ptr %399, align 8, !tbaa !29
  %409 = getelementptr inbounds i8, ptr %408, i64 32
  store double %.4320, ptr %409, align 8, !tbaa !34
  %410 = load ptr, ptr %399, align 8, !tbaa !29
  %411 = getelementptr inbounds i8, ptr %410, i64 40
  store double %.6315, ptr %411, align 8, !tbaa !34
  %412 = load ptr, ptr %399, align 8, !tbaa !29
  %413 = getelementptr inbounds i8, ptr %412, i64 48
  store double %.6, ptr %413, align 8, !tbaa !34
  %414 = load double, ptr %7, align 8, !tbaa !34
  %415 = load ptr, ptr %399, align 8, !tbaa !29
  %416 = getelementptr inbounds i8, ptr %415, i64 56
  store double %414, ptr %416, align 8, !tbaa !34
  br label %417

417:                                              ; preds = %375, %374, %._crit_edge399
  %.0359 = phi i1 [ true, %375 ], [ false, %._crit_edge399 ], [ false, %374 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  ret i1 %.0359
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef double @_ZN11alglib_implL20nlcslp_meritfunctionEPNS_11minslpstateEPNS_9ae_vectorEdS3_PNS_9ae_matrixES3_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

; 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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 = { 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) }
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, !28, i64 22032}
!6 = !{!"_ZTSN11alglib_impl11minslpstateE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !14, i64 120, !14, i64 184, !14, i64 248, !14, i64 312, !14, i64 376, !15, i64 440, !7, i64 448, !7, i64 456, !14, i64 464, !14, i64 528, !10, i64 592, !15, i64 672, !11, i64 680, !11, i64 681, !15, i64 688, !15, i64 696, !16, i64 704, !14, i64 20000, !14, i64 20064, !14, i64 20128, !26, i64 20192, !7, i64 20384, !7, i64 20392, !14, i64 20400, !14, i64 20464, !14, i64 20528, !14, i64 20592, !14, i64 20656, !14, i64 20720, !14, i64 20784, !14, i64 20848, !14, i64 20912, !10, i64 20976, !10, i64 21056, !10, i64 21136, !10, i64 21216, !15, i64 21296, !15, i64 21304, !15, i64 21312, !14, i64 21320, !14, i64 21384, !14, i64 21448, !14, i64 21512, !14, i64 21576, !14, i64 21640, !14, i64 21704, !14, i64 21768, !15, i64 21832, !7, i64 21840, !15, i64 21848, !7, i64 21856, !14, i64 21864, !7, i64 21928, !7, i64 21936, !7, i64 21944, !7, i64 21952, !7, i64 21960, !7, i64 21968, !7, i64 21976, !15, i64 21984, !7, i64 21992, !15, i64 22000, !7, i64 22008, !15, i64 22016, !7, i64 22024, !27, i64 22032, !27, i64 22296, !27, i64 22560}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !12, i64 40, !8, i64 72}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !8, i64 56}
!15 = !{!"double", !8, i64 0}
!16 = !{!"_ZTSN11alglib_impl15minslpsubsolverE", !17, i64 0, !25, i64 10944, !19, i64 11000, !11, i64 17272, !10, i64 17280, !7, i64 17360, !14, i64 17368, !14, i64 17432, !14, i64 17496, !14, i64 17560, !14, i64 17624, !18, i64 17688, !18, i64 18056, !7, i64 18424, !10, i64 18432, !10, i64 18512, !10, i64 18592, !18, i64 18672, !14, i64 19040, !14, i64 19104, !14, i64 19168, !14, i64 19232}
!17 = !{!"_ZTSN11alglib_impl16dualsimplexstateE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !7, i64 256, !7, i64 264, !18, i64 272, !18, i64 640, !19, i64 1008, !24, i64 7280, !24, i64 8072, !24, i64 8864, !14, i64 9656, !14, i64 9720, !14, i64 9784, !14, i64 9848, !15, i64 9912, !15, i64 9920, !15, i64 9928, !7, i64 9936, !7, i64 9944, !7, i64 9952, !7, i64 9960, !7, i64 9968, !14, i64 9976, !7, i64 10040, !14, i64 10048, !14, i64 10112, !14, i64 10176, !14, i64 10240, !14, i64 10304, !14, i64 10368, !14, i64 10432, !14, i64 10496, !14, i64 10560, !14, i64 10624, !14, i64 10688, !14, i64 10752, !14, i64 10816, !14, i64 10880}
!18 = !{!"_ZTSN11alglib_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !7, i64 320, !7, i64 328, !7, i64 336, !7, i64 344, !7, i64 352, !7, i64 360}
!19 = !{!"_ZTSN11alglib_impl16dualsimplexbasisE", !7, i64 0, !7, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !7, i64 208, !11, i64 216, !7, i64 224, !10, i64 232, !18, i64 312, !18, i64 680, !18, i64 1048, !14, i64 1416, !14, i64 1480, !14, i64 1544, !14, i64 1608, !14, i64 1672, !14, i64 1736, !14, i64 1800, !11, i64 1864, !15, i64 1872, !14, i64 1880, !14, i64 1944, !14, i64 2008, !14, i64 2072, !14, i64 2136, !10, i64 2200, !14, i64 2280, !14, i64 2344, !18, i64 2408, !18, i64 2776, !20, i64 3144, !14, i64 5712, !14, i64 5776, !14, i64 5840, !18, i64 5904}
!20 = !{!"_ZTSN11alglib_impl11sluv2bufferE", !7, i64 0, !18, i64 8, !18, i64 376, !21, i64 744, !21, i64 968, !22, i64 1192, !23, i64 1816, !14, i64 1976, !10, i64 2040, !14, i64 2120, !14, i64 2184, !14, i64 2248, !14, i64 2312, !14, i64 2376, !14, i64 2440, !14, i64 2504}
!21 = !{!"_ZTSN11alglib_impl16sluv2list1matrixE", !7, i64 0, !7, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !7, i64 208, !7, i64 216}
!22 = !{!"_ZTSN11alglib_impl16sluv2sparsetrailE", !7, i64 0, !7, i64 8, !14, i64 16, !7, i64 80, !7, i64 88, !7, i64 96, !14, i64 104, !14, i64 168, !14, i64 232, !14, i64 296, !14, i64 360, !14, i64 424, !14, i64 488, !7, i64 552, !14, i64 560}
!23 = !{!"_ZTSN11alglib_impl15sluv2densetrailE", !7, i64 0, !7, i64 8, !10, i64 16, !14, i64 96}
!24 = !{!"_ZTSN11alglib_impl21dualsimplexsubproblemE", !7, i64 0, !7, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !14, i64 336, !7, i64 400, !14, i64 408, !14, i64 472, !14, i64 536, !14, i64 600, !14, i64 664, !14, i64 728}
!25 = !{!"_ZTSN11alglib_impl19dualsimplexsettingsE", !15, i64 0, !15, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48}
!26 = !{!"_ZTSN11alglib_impl11linminstateE", !11, i64 0, !11, i64 1, !7, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !15, i64 48, !15, i64 56, !15, i64 64, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !15, i64 120, !15, i64 128, !15, i64 136, !15, i64 144, !15, i64 152, !15, i64 160, !15, i64 168, !15, i64 176, !15, i64 184}
!27 = !{!"_ZTSN11alglib_impl10rcommstateE", !28, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!28 = !{!"int", !8, i64 0}
!29 = !{!8, !8, i64 0}
!30 = !{!7, !7, i64 0}
!31 = !{!11, !11, i64 0}
!32 = !{i8 0, i8 2}
!33 = !{}
!34 = !{!15, !15, i64 0}
!35 = !{!6, !7, i64 0}
!36 = !{!6, !7, i64 8}
!37 = !{!6, !7, i64 16}
!38 = !{!6, !7, i64 24}
!39 = !{!6, !7, i64 32}
!40 = !{!6, !11, i64 680}
!41 = !{!6, !11, i64 681}
!42 = !{!6, !15, i64 688}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.unroll.disable"}
!47 = distinct !{!47, !44}
!48 = distinct !{!48, !46}
!49 = !{!6, !7, i64 21976}
!50 = !{!6, !15, i64 672}
!51 = !{!6, !7, i64 456}
!52 = !{!13, !13, i64 0}
!53 = distinct !{!53, !44}
!54 = distinct !{!54, !44}
!55 = !{!6, !28, i64 22296}
!56 = !{!6, !28, i64 22560}
!57 = !{!6, !15, i64 696}
!58 = distinct !{!58, !44}
!59 = distinct !{!59, !44}
!60 = !{!6, !15, i64 440}
!61 = !{!6, !7, i64 20384}
!62 = !{!6, !7, i64 20392}
!63 = !{!6, !7, i64 448}
!64 = !{!6, !7, i64 21960}


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