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

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

%"struct.alglib_impl::minlbfgsstate" = type { i64, i64, double, double, double, i64, i8, double, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", i64, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::precbuflbfgs", %"struct.alglib_impl::precbuflowrank", double, double, double, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"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_matrix", %"struct.alglib_impl::sparsematrix", double, %"struct.alglib_impl::rcommstate", i64, i64, i64, %"struct.alglib_impl::linminstate", i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::precbuflbfgs" = type { %"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::ae_vector" }
%"struct.alglib_impl::precbuflowrank" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::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::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::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::smoothnessmonitor" = type { i64, i64, i8, %"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_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate", i8, i8, i64, i64, double, double, i8, %"struct.alglib_impl::optguardreport", double, double, %"struct.alglib_impl::optguardnonc0report", %"struct.alglib_impl::optguardnonc0report", double, double, %"struct.alglib_impl::optguardnonc1test0report", %"struct.alglib_impl::optguardnonc1test0report", double, double, %"struct.alglib_impl::optguardnonc1test1report", %"struct.alglib_impl::optguardnonc1test1report", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rcommstate", %"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_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardreport" = type { i8, i8, i64, double, i8, i8, i8, i64, double, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardnonc0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test1report" = type { i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl24_minlbfgsstate_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %0, ptr noundef %1, ptr noundef %2, i1 noundef zeroext %3) #1 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  %11 = zext i1 %3 to i8
  store i8 %11, ptr %8, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #3
  %12 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %12, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #3
  %13 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %13, ptr %10, align 8, !tbaa !5
  %14 = load ptr, ptr %10, align 8, !tbaa !5
  %15 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %14, i32 0, i32 0
  %16 = load i64, ptr %15, align 8, !tbaa !11
  %17 = load ptr, ptr %9, align 8, !tbaa !5
  %18 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %17, i32 0, i32 0
  store i64 %16, ptr %18, align 8, !tbaa !11
  %19 = load ptr, ptr %10, align 8, !tbaa !5
  %20 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %19, i32 0, i32 1
  %21 = load i64, ptr %20, align 8, !tbaa !29
  %22 = load ptr, ptr %9, align 8, !tbaa !5
  %23 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %22, i32 0, i32 1
  store i64 %21, ptr %23, align 8, !tbaa !29
  %24 = load ptr, ptr %10, align 8, !tbaa !5
  %25 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %24, i32 0, i32 2
  %26 = load double, ptr %25, align 8, !tbaa !30
  %27 = load ptr, ptr %9, align 8, !tbaa !5
  %28 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %27, i32 0, i32 2
  store double %26, ptr %28, align 8, !tbaa !30
  %29 = load ptr, ptr %10, align 8, !tbaa !5
  %30 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %29, i32 0, i32 3
  %31 = load double, ptr %30, align 8, !tbaa !31
  %32 = load ptr, ptr %9, align 8, !tbaa !5
  %33 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %32, i32 0, i32 3
  store double %31, ptr %33, align 8, !tbaa !31
  %34 = load ptr, ptr %10, align 8, !tbaa !5
  %35 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %34, i32 0, i32 4
  %36 = load double, ptr %35, align 8, !tbaa !32
  %37 = load ptr, ptr %9, align 8, !tbaa !5
  %38 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %37, i32 0, i32 4
  store double %36, ptr %38, align 8, !tbaa !32
  %39 = load ptr, ptr %10, align 8, !tbaa !5
  %40 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %39, i32 0, i32 5
  %41 = load i64, ptr %40, align 8, !tbaa !33
  %42 = load ptr, ptr %9, align 8, !tbaa !5
  %43 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %42, i32 0, i32 5
  store i64 %41, ptr %43, align 8, !tbaa !33
  %44 = load ptr, ptr %10, align 8, !tbaa !5
  %45 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %44, i32 0, i32 6
  %46 = load i8, ptr %45, align 8, !tbaa !34, !range !35, !noundef !36
  %47 = trunc i8 %46 to i1
  %48 = load ptr, ptr %9, align 8, !tbaa !5
  %49 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %48, i32 0, i32 6
  %50 = zext i1 %47 to i8
  store i8 %50, ptr %49, align 8, !tbaa !34
  %51 = load ptr, ptr %10, align 8, !tbaa !5
  %52 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %51, i32 0, i32 7
  %53 = load double, ptr %52, align 8, !tbaa !37
  %54 = load ptr, ptr %9, align 8, !tbaa !5
  %55 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %54, i32 0, i32 7
  store double %53, ptr %55, align 8, !tbaa !37
  %56 = load ptr, ptr %9, align 8, !tbaa !5
  %57 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %56, i32 0, i32 8
  %58 = load ptr, ptr %10, align 8, !tbaa !5
  %59 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %58, i32 0, i32 8
  %60 = load ptr, ptr %7, align 8, !tbaa !5
  %61 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %62 = trunc i8 %61 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %57, ptr noundef %59, ptr noundef %60, i1 noundef zeroext %62)
  %63 = load ptr, ptr %10, align 8, !tbaa !5
  %64 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %63, i32 0, i32 9
  %65 = load double, ptr %64, align 8, !tbaa !38
  %66 = load ptr, ptr %9, align 8, !tbaa !5
  %67 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %66, i32 0, i32 9
  store double %65, ptr %67, align 8, !tbaa !38
  %68 = load ptr, ptr %10, align 8, !tbaa !5
  %69 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %68, i32 0, i32 10
  %70 = load i64, ptr %69, align 8, !tbaa !39
  %71 = load ptr, ptr %9, align 8, !tbaa !5
  %72 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %71, i32 0, i32 10
  store i64 %70, ptr %72, align 8, !tbaa !39
  %73 = load ptr, ptr %10, align 8, !tbaa !5
  %74 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %73, i32 0, i32 11
  %75 = load i64, ptr %74, align 8, !tbaa !40
  %76 = load ptr, ptr %9, align 8, !tbaa !5
  %77 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %76, i32 0, i32 11
  store i64 %75, ptr %77, align 8, !tbaa !40
  %78 = load ptr, ptr %10, align 8, !tbaa !5
  %79 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %78, i32 0, i32 12
  %80 = load i64, ptr %79, align 8, !tbaa !41
  %81 = load ptr, ptr %9, align 8, !tbaa !5
  %82 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %81, i32 0, i32 12
  store i64 %80, ptr %82, align 8, !tbaa !41
  %83 = load ptr, ptr %10, align 8, !tbaa !5
  %84 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %83, i32 0, i32 13
  %85 = load i64, ptr %84, align 8, !tbaa !42
  %86 = load ptr, ptr %9, align 8, !tbaa !5
  %87 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %86, i32 0, i32 13
  store i64 %85, ptr %87, align 8, !tbaa !42
  %88 = load ptr, ptr %10, align 8, !tbaa !5
  %89 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %88, i32 0, i32 14
  %90 = load i64, ptr %89, align 8, !tbaa !43
  %91 = load ptr, ptr %9, align 8, !tbaa !5
  %92 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %91, i32 0, i32 14
  store i64 %90, ptr %92, align 8, !tbaa !43
  %93 = load ptr, ptr %9, align 8, !tbaa !5
  %94 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %93, i32 0, i32 15
  %95 = load ptr, ptr %10, align 8, !tbaa !5
  %96 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %95, i32 0, i32 15
  %97 = load ptr, ptr %7, align 8, !tbaa !5
  %98 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %99 = trunc i8 %98 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %94, ptr noundef %96, ptr noundef %97, i1 noundef zeroext %99)
  %100 = load ptr, ptr %9, align 8, !tbaa !5
  %101 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %100, i32 0, i32 16
  %102 = load ptr, ptr %10, align 8, !tbaa !5
  %103 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %102, i32 0, i32 16
  %104 = load ptr, ptr %7, align 8, !tbaa !5
  %105 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %106 = trunc i8 %105 to i1
  call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef %101, ptr noundef %103, ptr noundef %104, i1 noundef zeroext %106)
  %107 = load ptr, ptr %9, align 8, !tbaa !5
  %108 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %107, i32 0, i32 17
  %109 = load ptr, ptr %10, align 8, !tbaa !5
  %110 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %109, i32 0, i32 17
  %111 = load ptr, ptr %7, align 8, !tbaa !5
  %112 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %113 = trunc i8 %112 to i1
  call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef %108, ptr noundef %110, ptr noundef %111, i1 noundef zeroext %113)
  %114 = load ptr, ptr %9, align 8, !tbaa !5
  %115 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %114, i32 0, i32 18
  %116 = load ptr, ptr %10, align 8, !tbaa !5
  %117 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %116, i32 0, i32 18
  %118 = load ptr, ptr %7, align 8, !tbaa !5
  %119 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %120 = trunc i8 %119 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %115, ptr noundef %117, ptr noundef %118, i1 noundef zeroext %120)
  %121 = load ptr, ptr %9, align 8, !tbaa !5
  %122 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %121, i32 0, i32 19
  %123 = load ptr, ptr %10, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %123, i32 0, i32 19
  %125 = load ptr, ptr %7, align 8, !tbaa !5
  %126 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %127 = trunc i8 %126 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %122, ptr noundef %124, ptr noundef %125, i1 noundef zeroext %127)
  %128 = load ptr, ptr %9, align 8, !tbaa !5
  %129 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %128, i32 0, i32 20
  %130 = load ptr, ptr %10, align 8, !tbaa !5
  %131 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %130, i32 0, i32 20
  %132 = load ptr, ptr %7, align 8, !tbaa !5
  %133 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %134 = trunc i8 %133 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %129, ptr noundef %131, ptr noundef %132, i1 noundef zeroext %134)
  %135 = load ptr, ptr %10, align 8, !tbaa !5
  %136 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %135, i32 0, i32 21
  %137 = load double, ptr %136, align 8, !tbaa !44
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %138, i32 0, i32 21
  store double %137, ptr %139, align 8, !tbaa !44
  %140 = load ptr, ptr %10, align 8, !tbaa !5
  %141 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %140, i32 0, i32 22
  %142 = load double, ptr %141, align 8, !tbaa !45
  %143 = load ptr, ptr %9, align 8, !tbaa !5
  %144 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %143, i32 0, i32 22
  store double %142, ptr %144, align 8, !tbaa !45
  %145 = load ptr, ptr %9, align 8, !tbaa !5
  %146 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %145, i32 0, i32 23
  %147 = load ptr, ptr %10, align 8, !tbaa !5
  %148 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %147, i32 0, i32 23
  %149 = load ptr, ptr %7, align 8, !tbaa !5
  %150 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %151 = trunc i8 %150 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %146, ptr noundef %148, ptr noundef %149, i1 noundef zeroext %151)
  %152 = load ptr, ptr %10, align 8, !tbaa !5
  %153 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %152, i32 0, i32 24
  %154 = load double, ptr %153, align 8, !tbaa !46
  %155 = load ptr, ptr %9, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %155, i32 0, i32 24
  store double %154, ptr %156, align 8, !tbaa !46
  %157 = load ptr, ptr %10, align 8, !tbaa !5
  %158 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %157, i32 0, i32 25
  %159 = load double, ptr %158, align 8, !tbaa !47
  %160 = load ptr, ptr %9, align 8, !tbaa !5
  %161 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %160, i32 0, i32 25
  store double %159, ptr %161, align 8, !tbaa !47
  %162 = load ptr, ptr %9, align 8, !tbaa !5
  %163 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %162, i32 0, i32 26
  %164 = load ptr, ptr %10, align 8, !tbaa !5
  %165 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %164, i32 0, i32 26
  %166 = load ptr, ptr %7, align 8, !tbaa !5
  %167 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %168 = trunc i8 %167 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %163, ptr noundef %165, ptr noundef %166, i1 noundef zeroext %168)
  %169 = load ptr, ptr %10, align 8, !tbaa !5
  %170 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %169, i32 0, i32 27
  %171 = load i64, ptr %170, align 8, !tbaa !48
  %172 = load ptr, ptr %9, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %172, i32 0, i32 27
  store i64 %171, ptr %173, align 8, !tbaa !48
  %174 = load ptr, ptr %10, align 8, !tbaa !5
  %175 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %174, i32 0, i32 28
  %176 = load double, ptr %175, align 8, !tbaa !49
  %177 = load ptr, ptr %9, align 8, !tbaa !5
  %178 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %177, i32 0, i32 28
  store double %176, ptr %178, align 8, !tbaa !49
  %179 = load ptr, ptr %9, align 8, !tbaa !5
  %180 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %179, i32 0, i32 29
  %181 = load ptr, ptr %10, align 8, !tbaa !5
  %182 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %181, i32 0, i32 29
  %183 = load ptr, ptr %7, align 8, !tbaa !5
  %184 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %185 = trunc i8 %184 to i1
  call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef %180, ptr noundef %182, ptr noundef %183, i1 noundef zeroext %185)
  %186 = load ptr, ptr %9, align 8, !tbaa !5
  %187 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %186, i32 0, i32 30
  %188 = load ptr, ptr %10, align 8, !tbaa !5
  %189 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %188, i32 0, i32 30
  %190 = load ptr, ptr %7, align 8, !tbaa !5
  %191 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %192 = trunc i8 %191 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %187, ptr noundef %189, ptr noundef %190, i1 noundef zeroext %192)
  %193 = load ptr, ptr %9, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %193, i32 0, i32 31
  %195 = load ptr, ptr %10, align 8, !tbaa !5
  %196 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %195, i32 0, i32 31
  %197 = load ptr, ptr %7, align 8, !tbaa !5
  %198 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %199 = trunc i8 %198 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %194, ptr noundef %196, ptr noundef %197, i1 noundef zeroext %199)
  %200 = load ptr, ptr %9, align 8, !tbaa !5
  %201 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %200, i32 0, i32 32
  %202 = load ptr, ptr %10, align 8, !tbaa !5
  %203 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %202, i32 0, i32 32
  %204 = load ptr, ptr %7, align 8, !tbaa !5
  %205 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %206 = trunc i8 %205 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %201, ptr noundef %203, ptr noundef %204, i1 noundef zeroext %206)
  %207 = load ptr, ptr %9, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %207, i32 0, i32 33
  %209 = load ptr, ptr %10, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %209, i32 0, i32 33
  %211 = load ptr, ptr %7, align 8, !tbaa !5
  %212 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %213 = trunc i8 %212 to i1
  call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef %208, ptr noundef %210, ptr noundef %211, i1 noundef zeroext %213)
  %214 = load ptr, ptr %10, align 8, !tbaa !5
  %215 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %214, i32 0, i32 34
  %216 = load i64, ptr %215, align 8, !tbaa !50
  %217 = load ptr, ptr %9, align 8, !tbaa !5
  %218 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %217, i32 0, i32 34
  store i64 %216, ptr %218, align 8, !tbaa !50
  %219 = load ptr, ptr %9, align 8, !tbaa !5
  %220 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %219, i32 0, i32 35
  %221 = load ptr, ptr %10, align 8, !tbaa !5
  %222 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %221, i32 0, i32 35
  %223 = load ptr, ptr %7, align 8, !tbaa !5
  %224 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %225 = trunc i8 %224 to i1
  call void @_ZN11alglib_impl23_precbuflbfgs_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %220, ptr noundef %222, ptr noundef %223, i1 noundef zeroext %225)
  %226 = load ptr, ptr %9, align 8, !tbaa !5
  %227 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %226, i32 0, i32 36
  %228 = load ptr, ptr %10, align 8, !tbaa !5
  %229 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %228, i32 0, i32 36
  %230 = load ptr, ptr %7, align 8, !tbaa !5
  %231 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %232 = trunc i8 %231 to i1
  call void @_ZN11alglib_impl25_precbuflowrank_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %227, ptr noundef %229, ptr noundef %230, i1 noundef zeroext %232)
  %233 = load ptr, ptr %10, align 8, !tbaa !5
  %234 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %233, i32 0, i32 37
  %235 = load double, ptr %234, align 8, !tbaa !51
  %236 = load ptr, ptr %9, align 8, !tbaa !5
  %237 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %236, i32 0, i32 37
  store double %235, ptr %237, align 8, !tbaa !51
  %238 = load ptr, ptr %10, align 8, !tbaa !5
  %239 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %238, i32 0, i32 38
  %240 = load double, ptr %239, align 8, !tbaa !52
  %241 = load ptr, ptr %9, align 8, !tbaa !5
  %242 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %241, i32 0, i32 38
  store double %240, ptr %242, align 8, !tbaa !52
  %243 = load ptr, ptr %10, align 8, !tbaa !5
  %244 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %243, i32 0, i32 39
  %245 = load double, ptr %244, align 8, !tbaa !53
  %246 = load ptr, ptr %9, align 8, !tbaa !5
  %247 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %246, i32 0, i32 39
  store double %245, ptr %247, align 8, !tbaa !53
  %248 = load ptr, ptr %10, align 8, !tbaa !5
  %249 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %248, i32 0, i32 40
  %250 = load double, ptr %249, align 8, !tbaa !54
  %251 = load ptr, ptr %9, align 8, !tbaa !5
  %252 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %251, i32 0, i32 40
  store double %250, ptr %252, align 8, !tbaa !54
  %253 = load ptr, ptr %10, align 8, !tbaa !5
  %254 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %253, i32 0, i32 41
  %255 = load double, ptr %254, align 8, !tbaa !55
  %256 = load ptr, ptr %9, align 8, !tbaa !5
  %257 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %256, i32 0, i32 41
  store double %255, ptr %257, align 8, !tbaa !55
  %258 = load ptr, ptr %10, align 8, !tbaa !5
  %259 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %258, i32 0, i32 42
  %260 = load double, ptr %259, align 8, !tbaa !56
  %261 = load ptr, ptr %9, align 8, !tbaa !5
  %262 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %261, i32 0, i32 42
  store double %260, ptr %262, align 8, !tbaa !56
  %263 = load ptr, ptr %9, align 8, !tbaa !5
  %264 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %263, i32 0, i32 43
  %265 = load ptr, ptr %10, align 8, !tbaa !5
  %266 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %265, i32 0, i32 43
  %267 = load ptr, ptr %7, align 8, !tbaa !5
  %268 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %269 = trunc i8 %268 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %264, ptr noundef %266, ptr noundef %267, i1 noundef zeroext %269)
  %270 = load ptr, ptr %9, align 8, !tbaa !5
  %271 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %270, i32 0, i32 44
  %272 = load ptr, ptr %10, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %272, i32 0, i32 44
  %274 = load ptr, ptr %7, align 8, !tbaa !5
  %275 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %276 = trunc i8 %275 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %271, ptr noundef %273, ptr noundef %274, i1 noundef zeroext %276)
  %277 = load ptr, ptr %10, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %277, i32 0, i32 45
  %279 = load i64, ptr %278, align 8, !tbaa !57
  %280 = load ptr, ptr %9, align 8, !tbaa !5
  %281 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %280, i32 0, i32 45
  store i64 %279, ptr %281, align 8, !tbaa !57
  %282 = load ptr, ptr %10, align 8, !tbaa !5
  %283 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %282, i32 0, i32 46
  %284 = load i8, ptr %283, align 8, !tbaa !58, !range !35, !noundef !36
  %285 = trunc i8 %284 to i1
  %286 = load ptr, ptr %9, align 8, !tbaa !5
  %287 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %286, i32 0, i32 46
  %288 = zext i1 %285 to i8
  store i8 %288, ptr %287, align 8, !tbaa !58
  %289 = load ptr, ptr %9, align 8, !tbaa !5
  %290 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %289, i32 0, i32 47
  %291 = load ptr, ptr %10, align 8, !tbaa !5
  %292 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %291, i32 0, i32 47
  %293 = load ptr, ptr %7, align 8, !tbaa !5
  %294 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %295 = trunc i8 %294 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %290, ptr noundef %292, ptr noundef %293, i1 noundef zeroext %295)
  %296 = load ptr, ptr %10, align 8, !tbaa !5
  %297 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %296, i32 0, i32 48
  %298 = load double, ptr %297, align 8, !tbaa !59
  %299 = load ptr, ptr %9, align 8, !tbaa !5
  %300 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %299, i32 0, i32 48
  store double %298, ptr %300, align 8, !tbaa !59
  %301 = load ptr, ptr %9, align 8, !tbaa !5
  %302 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %301, i32 0, i32 49
  %303 = load ptr, ptr %10, align 8, !tbaa !5
  %304 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %303, i32 0, i32 49
  %305 = load ptr, ptr %7, align 8, !tbaa !5
  %306 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %307 = trunc i8 %306 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %302, ptr noundef %304, ptr noundef %305, i1 noundef zeroext %307)
  %308 = load ptr, ptr %10, align 8, !tbaa !5
  %309 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %308, i32 0, i32 50
  %310 = load i8, ptr %309, align 8, !tbaa !60, !range !35, !noundef !36
  %311 = trunc i8 %310 to i1
  %312 = load ptr, ptr %9, align 8, !tbaa !5
  %313 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %312, i32 0, i32 50
  %314 = zext i1 %311 to i8
  store i8 %314, ptr %313, align 8, !tbaa !60
  %315 = load ptr, ptr %10, align 8, !tbaa !5
  %316 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %315, i32 0, i32 51
  %317 = load i8, ptr %316, align 1, !tbaa !61, !range !35, !noundef !36
  %318 = trunc i8 %317 to i1
  %319 = load ptr, ptr %9, align 8, !tbaa !5
  %320 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %319, i32 0, i32 51
  %321 = zext i1 %318 to i8
  store i8 %321, ptr %320, align 1, !tbaa !61
  %322 = load ptr, ptr %10, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %322, i32 0, i32 52
  %324 = load i8, ptr %323, align 2, !tbaa !62, !range !35, !noundef !36
  %325 = trunc i8 %324 to i1
  %326 = load ptr, ptr %9, align 8, !tbaa !5
  %327 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %326, i32 0, i32 52
  %328 = zext i1 %325 to i8
  store i8 %328, ptr %327, align 2, !tbaa !62
  %329 = load ptr, ptr %10, align 8, !tbaa !5
  %330 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %329, i32 0, i32 53
  %331 = load i64, ptr %330, align 8, !tbaa !63
  %332 = load ptr, ptr %9, align 8, !tbaa !5
  %333 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %332, i32 0, i32 53
  store i64 %331, ptr %333, align 8, !tbaa !63
  %334 = load ptr, ptr %9, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %334, i32 0, i32 54
  %336 = load ptr, ptr %10, align 8, !tbaa !5
  %337 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %336, i32 0, i32 54
  %338 = load ptr, ptr %7, align 8, !tbaa !5
  %339 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %340 = trunc i8 %339 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %335, ptr noundef %337, ptr noundef %338, i1 noundef zeroext %340)
  %341 = load ptr, ptr %10, align 8, !tbaa !5
  %342 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %341, i32 0, i32 55
  %343 = load double, ptr %342, align 8, !tbaa !64
  %344 = load ptr, ptr %9, align 8, !tbaa !5
  %345 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %344, i32 0, i32 55
  store double %343, ptr %345, align 8, !tbaa !64
  %346 = load ptr, ptr %10, align 8, !tbaa !5
  %347 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %346, i32 0, i32 56
  %348 = load i64, ptr %347, align 8, !tbaa !65
  %349 = load ptr, ptr %9, align 8, !tbaa !5
  %350 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %349, i32 0, i32 56
  store i64 %348, ptr %350, align 8, !tbaa !65
  %351 = load ptr, ptr %10, align 8, !tbaa !5
  %352 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %351, i32 0, i32 57
  %353 = load i64, ptr %352, align 8, !tbaa !66
  %354 = load ptr, ptr %9, align 8, !tbaa !5
  %355 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %354, i32 0, i32 57
  store i64 %353, ptr %355, align 8, !tbaa !66
  %356 = load ptr, ptr %10, align 8, !tbaa !5
  %357 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %356, i32 0, i32 58
  %358 = load i64, ptr %357, align 8, !tbaa !67
  %359 = load ptr, ptr %9, align 8, !tbaa !5
  %360 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %359, i32 0, i32 58
  store i64 %358, ptr %360, align 8, !tbaa !67
  %361 = load ptr, ptr %10, align 8, !tbaa !5
  %362 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %361, i32 0, i32 59
  %363 = load i64, ptr %362, align 8, !tbaa !68
  %364 = load ptr, ptr %9, align 8, !tbaa !5
  %365 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %364, i32 0, i32 59
  store i64 %363, ptr %365, align 8, !tbaa !68
  %366 = load ptr, ptr %10, align 8, !tbaa !5
  %367 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %366, i32 0, i32 60
  %368 = load i64, ptr %367, align 8, !tbaa !69
  %369 = load ptr, ptr %9, align 8, !tbaa !5
  %370 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %369, i32 0, i32 60
  store i64 %368, ptr %370, align 8, !tbaa !69
  %371 = load ptr, ptr %9, align 8, !tbaa !5
  %372 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %371, i32 0, i32 61
  %373 = load ptr, ptr %10, align 8, !tbaa !5
  %374 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %373, i32 0, i32 61
  %375 = load ptr, ptr %7, align 8, !tbaa !5
  %376 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %377 = trunc i8 %376 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %372, ptr noundef %374, ptr noundef %375, i1 noundef zeroext %377)
  %378 = load ptr, ptr %9, align 8, !tbaa !5
  %379 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %378, i32 0, i32 62
  %380 = load ptr, ptr %10, align 8, !tbaa !5
  %381 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %380, i32 0, i32 62
  %382 = load ptr, ptr %7, align 8, !tbaa !5
  %383 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %384 = trunc i8 %383 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %379, ptr noundef %381, ptr noundef %382, i1 noundef zeroext %384)
  %385 = load ptr, ptr %9, align 8, !tbaa !5
  %386 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %385, i32 0, i32 63
  %387 = load ptr, ptr %10, align 8, !tbaa !5
  %388 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %387, i32 0, i32 63
  %389 = load ptr, ptr %7, align 8, !tbaa !5
  %390 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %391 = trunc i8 %390 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %386, ptr noundef %388, ptr noundef %389, i1 noundef zeroext %391)
  %392 = load ptr, ptr %9, align 8, !tbaa !5
  %393 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %392, i32 0, i32 64
  %394 = load ptr, ptr %10, align 8, !tbaa !5
  %395 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %394, i32 0, i32 64
  %396 = load ptr, ptr %7, align 8, !tbaa !5
  %397 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %398 = trunc i8 %397 to i1
  call void @_ZN11alglib_impl23_sparsematrix_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %393, ptr noundef %395, ptr noundef %396, i1 noundef zeroext %398)
  %399 = load ptr, ptr %9, align 8, !tbaa !5
  %400 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %399, i32 0, i32 65
  %401 = load ptr, ptr %10, align 8, !tbaa !5
  %402 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %401, i32 0, i32 65
  %403 = load ptr, ptr %7, align 8, !tbaa !5
  %404 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %405 = trunc i8 %404 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %400, ptr noundef %402, ptr noundef %403, i1 noundef zeroext %405)
  %406 = load ptr, ptr %9, align 8, !tbaa !5
  %407 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %406, i32 0, i32 66
  %408 = load ptr, ptr %10, align 8, !tbaa !5
  %409 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %408, i32 0, i32 66
  %410 = load ptr, ptr %7, align 8, !tbaa !5
  %411 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %412 = trunc i8 %411 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %407, ptr noundef %409, ptr noundef %410, i1 noundef zeroext %412)
  %413 = load ptr, ptr %9, align 8, !tbaa !5
  %414 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %413, i32 0, i32 67
  %415 = load ptr, ptr %10, align 8, !tbaa !5
  %416 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %415, i32 0, i32 67
  %417 = load ptr, ptr %7, align 8, !tbaa !5
  %418 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %419 = trunc i8 %418 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %414, ptr noundef %416, ptr noundef %417, i1 noundef zeroext %419)
  %420 = load ptr, ptr %9, align 8, !tbaa !5
  %421 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %420, i32 0, i32 68
  %422 = load ptr, ptr %10, align 8, !tbaa !5
  %423 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %422, i32 0, i32 68
  %424 = load ptr, ptr %7, align 8, !tbaa !5
  %425 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %426 = trunc i8 %425 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %421, ptr noundef %423, ptr noundef %424, i1 noundef zeroext %426)
  %427 = load ptr, ptr %9, align 8, !tbaa !5
  %428 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %427, i32 0, i32 69
  %429 = load ptr, ptr %10, align 8, !tbaa !5
  %430 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %429, i32 0, i32 69
  %431 = load ptr, ptr %7, align 8, !tbaa !5
  %432 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %433 = trunc i8 %432 to i1
  call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef %428, ptr noundef %430, ptr noundef %431, i1 noundef zeroext %433)
  %434 = load ptr, ptr %9, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %434, i32 0, i32 70
  %436 = load ptr, ptr %10, align 8, !tbaa !5
  %437 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %436, i32 0, i32 70
  %438 = load ptr, ptr %7, align 8, !tbaa !5
  %439 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %440 = trunc i8 %439 to i1
  call void @_ZN11alglib_impl23_sparsematrix_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %435, ptr noundef %437, ptr noundef %438, i1 noundef zeroext %440)
  %441 = load ptr, ptr %10, align 8, !tbaa !5
  %442 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %441, i32 0, i32 71
  %443 = load double, ptr %442, align 8, !tbaa !70
  %444 = load ptr, ptr %9, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %444, i32 0, i32 71
  store double %443, ptr %445, align 8, !tbaa !70
  %446 = load ptr, ptr %9, align 8, !tbaa !5
  %447 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %446, i32 0, i32 72
  %448 = load ptr, ptr %10, align 8, !tbaa !5
  %449 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %448, i32 0, i32 72
  %450 = load ptr, ptr %7, align 8, !tbaa !5
  %451 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %452 = trunc i8 %451 to i1
  call void @_ZN11alglib_impl21_rcommstate_init_copyEPNS_10rcommstateEPKS0_PNS_8ae_stateEb(ptr noundef %447, ptr noundef %449, ptr noundef %450, i1 noundef zeroext %452)
  %453 = load ptr, ptr %10, align 8, !tbaa !5
  %454 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %453, i32 0, i32 73
  %455 = load i64, ptr %454, align 8, !tbaa !71
  %456 = load ptr, ptr %9, align 8, !tbaa !5
  %457 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %456, i32 0, i32 73
  store i64 %455, ptr %457, align 8, !tbaa !71
  %458 = load ptr, ptr %10, align 8, !tbaa !5
  %459 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %458, i32 0, i32 74
  %460 = load i64, ptr %459, align 8, !tbaa !72
  %461 = load ptr, ptr %9, align 8, !tbaa !5
  %462 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %461, i32 0, i32 74
  store i64 %460, ptr %462, align 8, !tbaa !72
  %463 = load ptr, ptr %10, align 8, !tbaa !5
  %464 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %463, i32 0, i32 75
  %465 = load i64, ptr %464, align 8, !tbaa !73
  %466 = load ptr, ptr %9, align 8, !tbaa !5
  %467 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %466, i32 0, i32 75
  store i64 %465, ptr %467, align 8, !tbaa !73
  %468 = load ptr, ptr %9, align 8, !tbaa !5
  %469 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %468, i32 0, i32 76
  %470 = load ptr, ptr %10, align 8, !tbaa !5
  %471 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %470, i32 0, i32 76
  %472 = load ptr, ptr %7, align 8, !tbaa !5
  %473 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %474 = trunc i8 %473 to i1
  call void @_ZN11alglib_impl22_linminstate_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %469, ptr noundef %471, ptr noundef %472, i1 noundef zeroext %474)
  %475 = load ptr, ptr %10, align 8, !tbaa !5
  %476 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %475, i32 0, i32 77
  %477 = load i64, ptr %476, align 8, !tbaa !74
  %478 = load ptr, ptr %9, align 8, !tbaa !5
  %479 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %478, i32 0, i32 77
  store i64 %477, ptr %479, align 8, !tbaa !74
  %480 = load ptr, ptr %9, align 8, !tbaa !5
  %481 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %480, i32 0, i32 78
  %482 = load ptr, ptr %10, align 8, !tbaa !5
  %483 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %482, i32 0, i32 78
  %484 = load ptr, ptr %7, align 8, !tbaa !5
  %485 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %486 = trunc i8 %485 to i1
  call void @_ZN11alglib_impl28_smoothnessmonitor_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %481, ptr noundef %483, ptr noundef %484, i1 noundef zeroext %486)
  %487 = load ptr, ptr %9, align 8, !tbaa !5
  %488 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %487, i32 0, i32 79
  %489 = load ptr, ptr %10, align 8, !tbaa !5
  %490 = getelementptr inbounds %"struct.alglib_impl::minlbfgsstate", ptr %489, i32 0, i32 79
  %491 = load ptr, ptr %7, align 8, !tbaa !5
  %492 = load i8, ptr %8, align 1, !tbaa !9, !range !35, !noundef !36
  %493 = trunc i8 %492 to i1
  call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef %488, ptr noundef %490, ptr noundef %491, i1 noundef zeroext %493)
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #3
  ret void
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl23_precbuflbfgs_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl25_precbuflowrank_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28_smoothnessmonitor_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #1

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "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 = { 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, !13, i64 0}
!12 = !{!"_ZTSN11alglib_impl13minlbfgsstateE", !13, i64 0, !13, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !13, i64 40, !10, i64 48, !14, i64 56, !15, i64 64, !14, i64 128, !13, i64 136, !13, i64 144, !13, i64 152, !13, i64 160, !13, i64 168, !15, i64 176, !17, i64 240, !17, i64 320, !15, i64 400, !15, i64 464, !15, i64 528, !14, i64 592, !14, i64 600, !15, i64 608, !14, i64 672, !14, i64 680, !15, i64 688, !13, i64 752, !14, i64 760, !17, i64 768, !15, i64 848, !15, i64 912, !15, i64 976, !17, i64 1040, !13, i64 1120, !18, i64 1128, !19, i64 1592, !14, i64 2040, !14, i64 2048, !14, i64 2056, !14, i64 2064, !14, i64 2072, !14, i64 2080, !15, i64 2088, !15, i64 2152, !13, i64 2216, !10, i64 2224, !15, i64 2232, !14, i64 2296, !15, i64 2304, !10, i64 2368, !10, i64 2369, !10, i64 2370, !13, i64 2376, !15, i64 2384, !14, i64 2448, !13, i64 2456, !13, i64 2464, !13, i64 2472, !13, i64 2480, !13, i64 2488, !15, i64 2496, !15, i64 2560, !15, i64 2624, !20, i64 2688, !15, i64 3056, !15, i64 3120, !15, i64 3184, !15, i64 3248, !17, i64 3312, !20, i64 3392, !14, i64 3760, !21, i64 3768, !13, i64 4032, !13, i64 4040, !13, i64 4048, !23, i64 4056, !13, i64 4248, !24, i64 4256, !15, i64 9960}
!13 = !{!"long", !7, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_vectorE", !13, i64 0, !13, i64 8, !10, i64 16, !16, i64 24, !7, i64 56}
!16 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !16, i64 40, !7, i64 72}
!18 = !{!"_ZTSN11alglib_impl12precbuflbfgsE", !15, i64 0, !15, i64 64, !15, i64 128, !17, i64 192, !15, i64 272, !15, i64 336, !15, i64 400}
!19 = !{!"_ZTSN11alglib_impl14precbuflowrankE", !13, i64 0, !13, i64 8, !15, i64 16, !17, i64 80, !15, i64 160, !17, i64 224, !17, i64 304, !15, i64 384}
!20 = !{!"_ZTSN11alglib_impl12sparsematrixE", !15, i64 0, !15, i64 64, !15, i64 128, !15, i64 192, !15, i64 256, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360}
!21 = !{!"_ZTSN11alglib_impl10rcommstateE", !22, i64 0, !15, i64 8, !15, i64 72, !15, i64 136, !15, i64 200}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTSN11alglib_impl11linminstateE", !10, i64 0, !10, i64 1, !13, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !14, i64 136, !14, i64 144, !14, i64 152, !14, i64 160, !14, i64 168, !14, i64 176, !14, i64 184}
!24 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !13, i64 0, !13, i64 8, !10, i64 16, !15, i64 24, !15, i64 88, !13, i64 152, !15, i64 160, !15, i64 224, !15, i64 288, !17, i64 352, !15, i64 432, !15, i64 496, !13, i64 560, !13, i64 568, !13, i64 576, !14, i64 584, !13, i64 592, !15, i64 600, !15, i64 664, !14, i64 728, !15, i64 736, !15, i64 800, !14, i64 864, !17, i64 872, !17, i64 952, !17, i64 1032, !15, i64 1112, !15, i64 1176, !21, i64 1240, !10, i64 1504, !10, i64 1505, !13, i64 1512, !13, i64 1520, !14, i64 1528, !14, i64 1536, !10, i64 1544, !25, i64 1552, !14, i64 1848, !14, i64 1856, !26, i64 1864, !26, i64 2184, !14, i64 2504, !14, i64 2512, !27, i64 2520, !27, i64 2840, !14, i64 3160, !14, i64 3168, !28, i64 3176, !28, i64 3504, !10, i64 3832, !15, i64 3840, !15, i64 3904, !17, i64 3968, !21, i64 4048, !15, i64 4312, !15, i64 4376, !15, i64 4440, !15, i64 4504, !15, i64 4568, !15, i64 4632, !15, i64 4696, !15, i64 4760, !17, i64 4824, !17, i64 4904, !15, i64 4984, !15, i64 5048, !15, i64 5112, !15, i64 5176, !15, i64 5240, !15, i64 5304, !15, i64 5368, !15, i64 5432, !15, i64 5496, !15, i64 5560, !17, i64 5624}
!25 = !{!"_ZTSN11alglib_impl14optguardreportE", !10, i64 0, !10, i64 1, !13, i64 8, !14, i64 16, !10, i64 24, !10, i64 25, !10, i64 26, !13, i64 32, !14, i64 40, !10, i64 48, !13, i64 56, !13, i64 64, !15, i64 72, !17, i64 136, !17, i64 216}
!26 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !10, i64 0, !13, i64 8, !15, i64 16, !15, i64 80, !13, i64 144, !15, i64 152, !15, i64 216, !13, i64 280, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312}
!27 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !10, i64 0, !13, i64 8, !15, i64 16, !15, i64 80, !13, i64 144, !15, i64 152, !15, i64 216, !13, i64 280, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312}
!28 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !10, i64 0, !13, i64 8, !13, i64 16, !15, i64 24, !15, i64 88, !13, i64 152, !15, i64 160, !15, i64 224, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312, !13, i64 320}
!29 = !{!12, !13, i64 8}
!30 = !{!12, !14, i64 16}
!31 = !{!12, !14, i64 24}
!32 = !{!12, !14, i64 32}
!33 = !{!12, !13, i64 40}
!34 = !{!12, !10, i64 48}
!35 = !{i8 0, i8 2}
!36 = !{}
!37 = !{!12, !14, i64 56}
!38 = !{!12, !14, i64 128}
!39 = !{!12, !13, i64 136}
!40 = !{!12, !13, i64 144}
!41 = !{!12, !13, i64 152}
!42 = !{!12, !13, i64 160}
!43 = !{!12, !13, i64 168}
!44 = !{!12, !14, i64 592}
!45 = !{!12, !14, i64 600}
!46 = !{!12, !14, i64 672}
!47 = !{!12, !14, i64 680}
!48 = !{!12, !13, i64 752}
!49 = !{!12, !14, i64 760}
!50 = !{!12, !13, i64 1120}
!51 = !{!12, !14, i64 2040}
!52 = !{!12, !14, i64 2048}
!53 = !{!12, !14, i64 2056}
!54 = !{!12, !14, i64 2064}
!55 = !{!12, !14, i64 2072}
!56 = !{!12, !14, i64 2080}
!57 = !{!12, !13, i64 2216}
!58 = !{!12, !10, i64 2224}
!59 = !{!12, !14, i64 2296}
!60 = !{!12, !10, i64 2368}
!61 = !{!12, !10, i64 2369}
!62 = !{!12, !10, i64 2370}
!63 = !{!12, !13, i64 2376}
!64 = !{!12, !14, i64 2448}
!65 = !{!12, !13, i64 2456}
!66 = !{!12, !13, i64 2464}
!67 = !{!12, !13, i64 2472}
!68 = !{!12, !13, i64 2480}
!69 = !{!12, !13, i64 2488}
!70 = !{!12, !14, i64 3760}
!71 = !{!12, !13, i64 4032}
!72 = !{!12, !13, i64 4040}
!73 = !{!12, !13, i64 4048}
!74 = !{!12, !13, i64 4248}


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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl24_minlbfgsstate_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %0, ptr noundef %1, ptr noundef %2, i1 noundef zeroext %3) local_unnamed_addr #0 {
  %5 = load <2 x i64>, ptr %1, align 8, !tbaa !5
  store <2 x i64> %5, ptr %0, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %1, i64 16
  %7 = getelementptr inbounds i8, ptr %0, i64 16
  %8 = load <2 x double>, ptr %6, align 8, !tbaa !9
  store <2 x double> %8, ptr %7, align 8, !tbaa !9
  %9 = getelementptr inbounds i8, ptr %1, i64 32
  %10 = load double, ptr %9, align 8, !tbaa !11
  %11 = getelementptr inbounds i8, ptr %0, i64 32
  store double %10, ptr %11, align 8, !tbaa !11
  %12 = getelementptr inbounds i8, ptr %1, i64 40
  %13 = load i64, ptr %12, align 8, !tbaa !29
  %14 = getelementptr inbounds i8, ptr %0, i64 40
  store i64 %13, ptr %14, align 8, !tbaa !29
  %15 = getelementptr inbounds i8, ptr %1, i64 48
  %16 = load i8, ptr %15, align 8, !tbaa !30, !range !31, !noundef !32
  %17 = getelementptr inbounds i8, ptr %0, i64 48
  store i8 %16, ptr %17, align 8, !tbaa !30
  %18 = getelementptr inbounds i8, ptr %1, i64 56
  %19 = load double, ptr %18, align 8, !tbaa !33
  %20 = getelementptr inbounds i8, ptr %0, i64 56
  store double %19, ptr %20, align 8, !tbaa !33
  %21 = getelementptr inbounds i8, ptr %0, i64 64
  %22 = getelementptr inbounds i8, ptr %1, i64 64
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef %2, i1 noundef zeroext %3)
  %23 = getelementptr inbounds i8, ptr %1, i64 128
  %24 = load double, ptr %23, align 8, !tbaa !34
  %25 = getelementptr inbounds i8, ptr %0, i64 128
  store double %24, ptr %25, align 8, !tbaa !34
  %26 = getelementptr inbounds i8, ptr %1, i64 136
  %27 = getelementptr inbounds i8, ptr %0, i64 136
  %28 = load <2 x i64>, ptr %26, align 8, !tbaa !5
  store <2 x i64> %28, ptr %27, align 8, !tbaa !5
  %29 = getelementptr inbounds i8, ptr %1, i64 152
  %30 = getelementptr inbounds i8, ptr %0, i64 152
  %31 = load <2 x i64>, ptr %29, align 8, !tbaa !5
  store <2 x i64> %31, ptr %30, align 8, !tbaa !5
  %32 = getelementptr inbounds i8, ptr %1, i64 168
  %33 = load i64, ptr %32, align 8, !tbaa !35
  %34 = getelementptr inbounds i8, ptr %0, i64 168
  store i64 %33, ptr %34, align 8, !tbaa !35
  %35 = getelementptr inbounds i8, ptr %0, i64 176
  %36 = getelementptr inbounds i8, ptr %1, i64 176
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef %2, i1 noundef zeroext %3)
  %37 = getelementptr inbounds i8, ptr %0, i64 240
  %38 = getelementptr inbounds i8, ptr %1, i64 240
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef %2, i1 noundef zeroext %3)
  %39 = getelementptr inbounds i8, ptr %0, i64 320
  %40 = getelementptr inbounds i8, ptr %1, i64 320
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %2, i1 noundef zeroext %3)
  %41 = getelementptr inbounds i8, ptr %0, i64 400
  %42 = getelementptr inbounds i8, ptr %1, i64 400
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef %2, i1 noundef zeroext %3)
  %43 = getelementptr inbounds i8, ptr %0, i64 464
  %44 = getelementptr inbounds i8, ptr %1, i64 464
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %43, ptr noundef nonnull %44, ptr noundef %2, i1 noundef zeroext %3)
  %45 = getelementptr inbounds i8, ptr %0, i64 528
  %46 = getelementptr inbounds i8, ptr %1, i64 528
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef %2, i1 noundef zeroext %3)
  %47 = getelementptr inbounds i8, ptr %1, i64 592
  %48 = getelementptr inbounds i8, ptr %0, i64 592
  %49 = load <2 x double>, ptr %47, align 8, !tbaa !9
  store <2 x double> %49, ptr %48, align 8, !tbaa !9
  %50 = getelementptr inbounds i8, ptr %0, i64 608
  %51 = getelementptr inbounds i8, ptr %1, i64 608
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %50, ptr noundef nonnull %51, ptr noundef %2, i1 noundef zeroext %3)
  %52 = getelementptr inbounds i8, ptr %1, i64 672
  %53 = getelementptr inbounds i8, ptr %0, i64 672
  %54 = load <2 x double>, ptr %52, align 8, !tbaa !9
  store <2 x double> %54, ptr %53, align 8, !tbaa !9
  %55 = getelementptr inbounds i8, ptr %0, i64 688
  %56 = getelementptr inbounds i8, ptr %1, i64 688
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef %2, i1 noundef zeroext %3)
  %57 = getelementptr inbounds i8, ptr %1, i64 752
  %58 = load i64, ptr %57, align 8, !tbaa !36
  %59 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %58, ptr %59, align 8, !tbaa !36
  %60 = getelementptr inbounds i8, ptr %1, i64 760
  %61 = load double, ptr %60, align 8, !tbaa !37
  %62 = getelementptr inbounds i8, ptr %0, i64 760
  store double %61, ptr %62, align 8, !tbaa !37
  %63 = getelementptr inbounds i8, ptr %0, i64 768
  %64 = getelementptr inbounds i8, ptr %1, i64 768
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %63, ptr noundef nonnull %64, ptr noundef %2, i1 noundef zeroext %3)
  %65 = getelementptr inbounds i8, ptr %0, i64 848
  %66 = getelementptr inbounds i8, ptr %1, i64 848
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef %2, i1 noundef zeroext %3)
  %67 = getelementptr inbounds i8, ptr %0, i64 912
  %68 = getelementptr inbounds i8, ptr %1, i64 912
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %67, ptr noundef nonnull %68, ptr noundef %2, i1 noundef zeroext %3)
  %69 = getelementptr inbounds i8, ptr %0, i64 976
  %70 = getelementptr inbounds i8, ptr %1, i64 976
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef %2, i1 noundef zeroext %3)
  %71 = getelementptr inbounds i8, ptr %0, i64 1040
  %72 = getelementptr inbounds i8, ptr %1, i64 1040
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %71, ptr noundef nonnull %72, ptr noundef %2, i1 noundef zeroext %3)
  %73 = getelementptr inbounds i8, ptr %1, i64 1120
  %74 = load i64, ptr %73, align 8, !tbaa !38
  %75 = getelementptr inbounds i8, ptr %0, i64 1120
  store i64 %74, ptr %75, align 8, !tbaa !38
  %76 = getelementptr inbounds i8, ptr %0, i64 1128
  %77 = getelementptr inbounds i8, ptr %1, i64 1128
  tail call void @_ZN11alglib_impl23_precbuflbfgs_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %76, ptr noundef nonnull %77, ptr noundef %2, i1 noundef zeroext %3)
  %78 = getelementptr inbounds i8, ptr %0, i64 1592
  %79 = getelementptr inbounds i8, ptr %1, i64 1592
  tail call void @_ZN11alglib_impl25_precbuflowrank_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %78, ptr noundef nonnull %79, ptr noundef %2, i1 noundef zeroext %3)
  %80 = getelementptr inbounds i8, ptr %1, i64 2040
  %81 = getelementptr inbounds i8, ptr %0, i64 2040
  %82 = load <2 x double>, ptr %80, align 8, !tbaa !9
  store <2 x double> %82, ptr %81, align 8, !tbaa !9
  %83 = getelementptr inbounds i8, ptr %1, i64 2056
  %84 = getelementptr inbounds i8, ptr %0, i64 2056
  %85 = load <2 x double>, ptr %83, align 8, !tbaa !9
  store <2 x double> %85, ptr %84, align 8, !tbaa !9
  %86 = getelementptr inbounds i8, ptr %1, i64 2072
  %87 = getelementptr inbounds i8, ptr %0, i64 2072
  %88 = load <2 x double>, ptr %86, align 8, !tbaa !9
  store <2 x double> %88, ptr %87, align 8, !tbaa !9
  %89 = getelementptr inbounds i8, ptr %0, i64 2088
  %90 = getelementptr inbounds i8, ptr %1, i64 2088
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %89, ptr noundef nonnull %90, ptr noundef %2, i1 noundef zeroext %3)
  %91 = getelementptr inbounds i8, ptr %0, i64 2152
  %92 = getelementptr inbounds i8, ptr %1, i64 2152
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %91, ptr noundef nonnull %92, ptr noundef %2, i1 noundef zeroext %3)
  %93 = getelementptr inbounds i8, ptr %1, i64 2216
  %94 = load i64, ptr %93, align 8, !tbaa !39
  %95 = getelementptr inbounds i8, ptr %0, i64 2216
  store i64 %94, ptr %95, align 8, !tbaa !39
  %96 = getelementptr inbounds i8, ptr %1, i64 2224
  %97 = load i8, ptr %96, align 8, !tbaa !40, !range !31, !noundef !32
  %98 = getelementptr inbounds i8, ptr %0, i64 2224
  store i8 %97, ptr %98, align 8, !tbaa !40
  %99 = getelementptr inbounds i8, ptr %0, i64 2232
  %100 = getelementptr inbounds i8, ptr %1, i64 2232
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %99, ptr noundef nonnull %100, ptr noundef %2, i1 noundef zeroext %3)
  %101 = getelementptr inbounds i8, ptr %1, i64 2296
  %102 = load double, ptr %101, align 8, !tbaa !41
  %103 = getelementptr inbounds i8, ptr %0, i64 2296
  store double %102, ptr %103, align 8, !tbaa !41
  %104 = getelementptr inbounds i8, ptr %0, i64 2304
  %105 = getelementptr inbounds i8, ptr %1, i64 2304
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %104, ptr noundef nonnull %105, ptr noundef %2, i1 noundef zeroext %3)
  %106 = getelementptr inbounds i8, ptr %1, i64 2368
  %107 = load i8, ptr %106, align 8, !tbaa !42, !range !31, !noundef !32
  %108 = getelementptr inbounds i8, ptr %0, i64 2368
  store i8 %107, ptr %108, align 8, !tbaa !42
  %109 = getelementptr inbounds i8, ptr %1, i64 2369
  %110 = load i8, ptr %109, align 1, !tbaa !43, !range !31, !noundef !32
  %111 = getelementptr inbounds i8, ptr %0, i64 2369
  store i8 %110, ptr %111, align 1, !tbaa !43
  %112 = getelementptr inbounds i8, ptr %1, i64 2370
  %113 = load i8, ptr %112, align 2, !tbaa !44, !range !31, !noundef !32
  %114 = getelementptr inbounds i8, ptr %0, i64 2370
  store i8 %113, ptr %114, align 2, !tbaa !44
  %115 = getelementptr inbounds i8, ptr %1, i64 2376
  %116 = load i64, ptr %115, align 8, !tbaa !45
  %117 = getelementptr inbounds i8, ptr %0, i64 2376
  store i64 %116, ptr %117, align 8, !tbaa !45
  %118 = getelementptr inbounds i8, ptr %0, i64 2384
  %119 = getelementptr inbounds i8, ptr %1, i64 2384
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %118, ptr noundef nonnull %119, ptr noundef %2, i1 noundef zeroext %3)
  %120 = getelementptr inbounds i8, ptr %1, i64 2448
  %121 = load double, ptr %120, align 8, !tbaa !46
  %122 = getelementptr inbounds i8, ptr %0, i64 2448
  store double %121, ptr %122, align 8, !tbaa !46
  %123 = getelementptr inbounds i8, ptr %1, i64 2456
  %124 = getelementptr inbounds i8, ptr %0, i64 2456
  %125 = load <2 x i64>, ptr %123, align 8, !tbaa !5
  store <2 x i64> %125, ptr %124, align 8, !tbaa !5
  %126 = getelementptr inbounds i8, ptr %1, i64 2472
  %127 = getelementptr inbounds i8, ptr %0, i64 2472
  %128 = load <2 x i64>, ptr %126, align 8, !tbaa !5
  store <2 x i64> %128, ptr %127, align 8, !tbaa !5
  %129 = getelementptr inbounds i8, ptr %1, i64 2488
  %130 = load i64, ptr %129, align 8, !tbaa !47
  %131 = getelementptr inbounds i8, ptr %0, i64 2488
  store i64 %130, ptr %131, align 8, !tbaa !47
  %132 = getelementptr inbounds i8, ptr %0, i64 2496
  %133 = getelementptr inbounds i8, ptr %1, i64 2496
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %132, ptr noundef nonnull %133, ptr noundef %2, i1 noundef zeroext %3)
  %134 = getelementptr inbounds i8, ptr %0, i64 2560
  %135 = getelementptr inbounds i8, ptr %1, i64 2560
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %134, ptr noundef nonnull %135, ptr noundef %2, i1 noundef zeroext %3)
  %136 = getelementptr inbounds i8, ptr %0, i64 2624
  %137 = getelementptr inbounds i8, ptr %1, i64 2624
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %136, ptr noundef nonnull %137, ptr noundef %2, i1 noundef zeroext %3)
  %138 = getelementptr inbounds i8, ptr %0, i64 2688
  %139 = getelementptr inbounds i8, ptr %1, i64 2688
  tail call void @_ZN11alglib_impl23_sparsematrix_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %138, ptr noundef nonnull %139, ptr noundef %2, i1 noundef zeroext %3)
  %140 = getelementptr inbounds i8, ptr %0, i64 3056
  %141 = getelementptr inbounds i8, ptr %1, i64 3056
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %140, ptr noundef nonnull %141, ptr noundef %2, i1 noundef zeroext %3)
  %142 = getelementptr inbounds i8, ptr %0, i64 3120
  %143 = getelementptr inbounds i8, ptr %1, i64 3120
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %142, ptr noundef nonnull %143, ptr noundef %2, i1 noundef zeroext %3)
  %144 = getelementptr inbounds i8, ptr %0, i64 3184
  %145 = getelementptr inbounds i8, ptr %1, i64 3184
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %144, ptr noundef nonnull %145, ptr noundef %2, i1 noundef zeroext %3)
  %146 = getelementptr inbounds i8, ptr %0, i64 3248
  %147 = getelementptr inbounds i8, ptr %1, i64 3248
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %146, ptr noundef nonnull %147, ptr noundef %2, i1 noundef zeroext %3)
  %148 = getelementptr inbounds i8, ptr %0, i64 3312
  %149 = getelementptr inbounds i8, ptr %1, i64 3312
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %148, ptr noundef nonnull %149, ptr noundef %2, i1 noundef zeroext %3)
  %150 = getelementptr inbounds i8, ptr %0, i64 3392
  %151 = getelementptr inbounds i8, ptr %1, i64 3392
  tail call void @_ZN11alglib_impl23_sparsematrix_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %150, ptr noundef nonnull %151, ptr noundef %2, i1 noundef zeroext %3)
  %152 = getelementptr inbounds i8, ptr %1, i64 3760
  %153 = load double, ptr %152, align 8, !tbaa !48
  %154 = getelementptr inbounds i8, ptr %0, i64 3760
  store double %153, ptr %154, align 8, !tbaa !48
  %155 = getelementptr inbounds i8, ptr %0, i64 3768
  %156 = getelementptr inbounds i8, ptr %1, i64 3768
  tail call void @_ZN11alglib_impl21_rcommstate_init_copyEPNS_10rcommstateEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %155, ptr noundef nonnull %156, ptr noundef %2, i1 noundef zeroext %3)
  %157 = getelementptr inbounds i8, ptr %1, i64 4032
  %158 = getelementptr inbounds i8, ptr %0, i64 4032
  %159 = load <2 x i64>, ptr %157, align 8, !tbaa !5
  store <2 x i64> %159, ptr %158, align 8, !tbaa !5
  %160 = getelementptr inbounds i8, ptr %1, i64 4048
  %161 = load i64, ptr %160, align 8, !tbaa !49
  %162 = getelementptr inbounds i8, ptr %0, i64 4048
  store i64 %161, ptr %162, align 8, !tbaa !49
  %163 = getelementptr inbounds i8, ptr %0, i64 4056
  %164 = getelementptr inbounds i8, ptr %1, i64 4056
  tail call void @_ZN11alglib_impl22_linminstate_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %163, ptr noundef nonnull %164, ptr noundef %2, i1 noundef zeroext %3)
  %165 = getelementptr inbounds i8, ptr %1, i64 4248
  %166 = load i64, ptr %165, align 8, !tbaa !50
  %167 = getelementptr inbounds i8, ptr %0, i64 4248
  store i64 %166, ptr %167, align 8, !tbaa !50
  %168 = getelementptr inbounds i8, ptr %0, i64 4256
  %169 = getelementptr inbounds i8, ptr %1, i64 4256
  tail call void @_ZN11alglib_impl28_smoothnessmonitor_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %168, ptr noundef nonnull %169, ptr noundef %2, i1 noundef zeroext %3)
  %170 = getelementptr inbounds i8, ptr %0, i64 9960
  %171 = getelementptr inbounds i8, ptr %1, i64 9960
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %170, ptr noundef nonnull %171, ptr noundef %2, i1 noundef zeroext %3)
  ret void
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl23_precbuflbfgs_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl25_precbuflowrank_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28_smoothnessmonitor_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

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

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

attributes #0 = { 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 #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" }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !10, i64 32}
!12 = !{!"_ZTSN11alglib_impl13minlbfgsstateE", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !6, i64 40, !13, i64 48, !10, i64 56, !14, i64 64, !10, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !14, i64 176, !17, i64 240, !17, i64 320, !14, i64 400, !14, i64 464, !14, i64 528, !10, i64 592, !10, i64 600, !14, i64 608, !10, i64 672, !10, i64 680, !14, i64 688, !6, i64 752, !10, i64 760, !17, i64 768, !14, i64 848, !14, i64 912, !14, i64 976, !17, i64 1040, !6, i64 1120, !18, i64 1128, !19, i64 1592, !10, i64 2040, !10, i64 2048, !10, i64 2056, !10, i64 2064, !10, i64 2072, !10, i64 2080, !14, i64 2088, !14, i64 2152, !6, i64 2216, !13, i64 2224, !14, i64 2232, !10, i64 2296, !14, i64 2304, !13, i64 2368, !13, i64 2369, !13, i64 2370, !6, i64 2376, !14, i64 2384, !10, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !6, i64 2480, !6, i64 2488, !14, i64 2496, !14, i64 2560, !14, i64 2624, !20, i64 2688, !14, i64 3056, !14, i64 3120, !14, i64 3184, !14, i64 3248, !17, i64 3312, !20, i64 3392, !10, i64 3760, !21, i64 3768, !6, i64 4032, !6, i64 4040, !6, i64 4048, !23, i64 4056, !6, i64 4248, !24, i64 4256, !14, i64 9960}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !6, i64 0, !6, i64 8, !13, i64 16, !15, i64 24, !7, i64 56}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !13, i64 32, !15, i64 40, !7, i64 72}
!18 = !{!"_ZTSN11alglib_impl12precbuflbfgsE", !14, i64 0, !14, i64 64, !14, i64 128, !17, i64 192, !14, i64 272, !14, i64 336, !14, i64 400}
!19 = !{!"_ZTSN11alglib_impl14precbuflowrankE", !6, i64 0, !6, i64 8, !14, i64 16, !17, i64 80, !14, i64 160, !17, i64 224, !17, i64 304, !14, i64 384}
!20 = !{!"_ZTSN11alglib_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !6, i64 320, !6, i64 328, !6, i64 336, !6, i64 344, !6, i64 352, !6, i64 360}
!21 = !{!"_ZTSN11alglib_impl10rcommstateE", !22, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTSN11alglib_impl11linminstateE", !13, i64 0, !13, i64 1, !6, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184}
!24 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !6, i64 0, !6, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !6, i64 152, !14, i64 160, !14, i64 224, !14, i64 288, !17, i64 352, !14, i64 432, !14, i64 496, !6, i64 560, !6, i64 568, !6, i64 576, !10, i64 584, !6, i64 592, !14, i64 600, !14, i64 664, !10, i64 728, !14, i64 736, !14, i64 800, !10, i64 864, !17, i64 872, !17, i64 952, !17, i64 1032, !14, i64 1112, !14, i64 1176, !21, i64 1240, !13, i64 1504, !13, i64 1505, !6, i64 1512, !6, i64 1520, !10, i64 1528, !10, i64 1536, !13, i64 1544, !25, i64 1552, !10, i64 1848, !10, i64 1856, !26, i64 1864, !26, i64 2184, !10, i64 2504, !10, i64 2512, !27, i64 2520, !27, i64 2840, !10, i64 3160, !10, i64 3168, !28, i64 3176, !28, i64 3504, !13, i64 3832, !14, i64 3840, !14, i64 3904, !17, i64 3968, !21, i64 4048, !14, i64 4312, !14, i64 4376, !14, i64 4440, !14, i64 4504, !14, i64 4568, !14, i64 4632, !14, i64 4696, !14, i64 4760, !17, i64 4824, !17, i64 4904, !14, i64 4984, !14, i64 5048, !14, i64 5112, !14, i64 5176, !14, i64 5240, !14, i64 5304, !14, i64 5368, !14, i64 5432, !14, i64 5496, !14, i64 5560, !17, i64 5624}
!25 = !{!"_ZTSN11alglib_impl14optguardreportE", !13, i64 0, !13, i64 1, !6, i64 8, !10, i64 16, !13, i64 24, !13, i64 25, !13, i64 26, !6, i64 32, !10, i64 40, !13, i64 48, !6, i64 56, !6, i64 64, !14, i64 72, !17, i64 136, !17, i64 216}
!26 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 80, !6, i64 144, !14, i64 152, !14, i64 216, !6, i64 280, !6, i64 288, !6, i64 296, !6, i64 304, !6, i64 312}
!27 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 80, !6, i64 144, !14, i64 152, !14, i64 216, !6, i64 280, !6, i64 288, !6, i64 296, !6, i64 304, !6, i64 312}
!28 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !13, i64 0, !6, i64 8, !6, i64 16, !14, i64 24, !14, i64 88, !6, i64 152, !14, i64 160, !14, i64 224, !6, i64 288, !6, i64 296, !6, i64 304, !6, i64 312, !6, i64 320}
!29 = !{!12, !6, i64 40}
!30 = !{!12, !13, i64 48}
!31 = !{i8 0, i8 2}
!32 = !{}
!33 = !{!12, !10, i64 56}
!34 = !{!12, !10, i64 128}
!35 = !{!12, !6, i64 168}
!36 = !{!12, !6, i64 752}
!37 = !{!12, !10, i64 760}
!38 = !{!12, !6, i64 1120}
!39 = !{!12, !6, i64 2216}
!40 = !{!12, !13, i64 2224}
!41 = !{!12, !10, i64 2296}
!42 = !{!12, !13, i64 2368}
!43 = !{!12, !13, i64 2369}
!44 = !{!12, !13, i64 2370}
!45 = !{!12, !6, i64 2376}
!46 = !{!12, !10, i64 2448}
!47 = !{!12, !6, i64 2488}
!48 = !{!12, !10, i64 3760}
!49 = !{!12, !6, i64 4048}
!50 = !{!12, !6, i64 4248}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SLPVectorizerPass,SROAPass,TailCallElimPass