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

; 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::gdemostate" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", i8, %"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::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", i64, double, double, i64, i64, double, double, i64, double, double, double, double, i8, i64, double, double, i8, double, double, double, i64, %"struct.alglib_impl::ae_vector", double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::hqrndstate", %"struct.alglib_impl::gdemopopulation", %"struct.alglib_impl::gdemopopulation", %"struct.alglib_impl::ae_matrix", i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", i64, i64, double, i64, double, i64, %"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::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }
%"struct.alglib_impl::gdemopopulation" = type { i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"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::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

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

declare void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_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) #1

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

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

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

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

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 = { 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_impl10gdemostateE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !14, i64 32, !10, i64 96, !14, i64 104, !14, i64 168, !14, i64 232, !14, i64 296, !14, i64 360, !16, i64 424, !14, i64 504, !14, i64 568, !14, i64 632, !14, i64 696, !14, i64 760, !14, i64 824, !14, i64 888, !14, i64 952, !14, i64 1016, !13, i64 1080, !14, i64 1088, !13, i64 1152, !17, i64 1160, !17, i64 1168, !13, i64 1176, !13, i64 1184, !17, i64 1192, !17, i64 1200, !13, i64 1208, !17, i64 1216, !17, i64 1224, !17, i64 1232, !17, i64 1240, !10, i64 1248, !13, i64 1256, !17, i64 1264, !17, i64 1272, !10, i64 1280, !17, i64 1288, !17, i64 1296, !17, i64 1304, !13, i64 1312, !14, i64 1320, !17, i64 1384, !13, i64 1392, !14, i64 1400, !14, i64 1464, !18, i64 1528, !20, i64 1792, !21, i64 1816, !21, i64 2208, !16, i64 2600, !13, i64 2680, !13, i64 2688, !13, i64 2696, !16, i64 2704, !14, i64 2784, !13, i64 2848, !13, i64 2856, !17, i64 2864, !13, i64 2872, !17, i64 2880, !13, i64 2888, !14, i64 2896, !22, i64 2960, !14, i64 3328, !14, i64 3392, !14, i64 3456, !14, i64 3520}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !13, i64 0, !13, i64 8, !10, i64 16, !15, i64 24, !7, i64 56}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!16 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !15, i64 40, !7, i64 72}
!17 = !{!"double", !7, i64 0}
!18 = !{!"_ZTSN11alglib_impl10rcommstateE", !19, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!19 = !{!"int", !7, i64 0}
!20 = !{!"_ZTSN11alglib_impl10hqrndstateE", !13, i64 0, !13, i64 8, !13, i64 16}
!21 = !{!"_ZTSN11alglib_impl15gdemopopulationE", !13, i64 0, !16, i64 8, !16, i64 88, !16, i64 168, !16, i64 248, !14, i64 328}
!22 = !{!"_ZTSN11alglib_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360}
!23 = !{!12, !13, i64 8}
!24 = !{!12, !13, i64 16}
!25 = !{!12, !13, i64 24}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!12, !10, i64 96}
!29 = !{!12, !13, i64 1080}
!30 = !{!12, !13, i64 1152}
!31 = !{!12, !17, i64 1160}
!32 = !{!12, !17, i64 1168}
!33 = !{!12, !13, i64 1176}
!34 = !{!12, !13, i64 1184}
!35 = !{!12, !17, i64 1192}
!36 = !{!12, !17, i64 1200}
!37 = !{!12, !13, i64 1208}
!38 = !{!12, !17, i64 1216}
!39 = !{!12, !17, i64 1224}
!40 = !{!12, !17, i64 1232}
!41 = !{!12, !17, i64 1240}
!42 = !{!12, !10, i64 1248}
!43 = !{!12, !13, i64 1256}
!44 = !{!12, !17, i64 1264}
!45 = !{!12, !17, i64 1272}
!46 = !{!12, !10, i64 1280}
!47 = !{!12, !17, i64 1288}
!48 = !{!12, !17, i64 1296}
!49 = !{!12, !17, i64 1304}
!50 = !{!12, !13, i64 1312}
!51 = !{!12, !17, i64 1384}
!52 = !{!12, !13, i64 1392}
!53 = !{!12, !13, i64 2680}
!54 = !{!12, !13, i64 2688}
!55 = !{!12, !13, i64 2696}
!56 = !{!12, !13, i64 2848}
!57 = !{!12, !13, i64 2856}
!58 = !{!12, !17, i64 2864}
!59 = !{!12, !13, i64 2872}
!60 = !{!12, !17, i64 2880}
!61 = !{!12, !13, i64 2888}


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

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

declare void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_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 #0

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

declare void @_ZN11alglib_impl21_hqrndstate_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_impl26_gdemopopulation_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl21_gdemostate_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef %0, ptr noundef %1, ptr noundef %2, i1 noundef zeroext %3) local_unnamed_addr #1 {
  %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 i64>, ptr %6, align 8, !tbaa !5
  store <2 x i64> %8, ptr %7, align 8, !tbaa !5
  %9 = getelementptr inbounds i8, ptr %0, i64 32
  %10 = getelementptr inbounds i8, ptr %1, i64 32
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef %2, i1 noundef zeroext %3)
  %11 = getelementptr inbounds i8, ptr %1, i64 96
  %12 = load i8, ptr %11, align 8, !tbaa !9, !range !22, !noundef !23
  %13 = getelementptr inbounds i8, ptr %0, i64 96
  store i8 %12, ptr %13, align 8, !tbaa !9
  %14 = getelementptr inbounds i8, ptr %0, i64 104
  %15 = getelementptr inbounds i8, ptr %1, i64 104
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %2, i1 noundef zeroext %3)
  %16 = getelementptr inbounds i8, ptr %0, i64 168
  %17 = getelementptr inbounds i8, ptr %1, i64 168
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef %2, i1 noundef zeroext %3)
  %18 = getelementptr inbounds i8, ptr %0, i64 232
  %19 = getelementptr inbounds i8, ptr %1, i64 232
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %2, i1 noundef zeroext %3)
  %20 = getelementptr inbounds i8, ptr %0, i64 296
  %21 = getelementptr inbounds i8, ptr %1, i64 296
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef %2, i1 noundef zeroext %3)
  %22 = getelementptr inbounds i8, ptr %0, i64 360
  %23 = getelementptr inbounds i8, ptr %1, i64 360
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef %2, i1 noundef zeroext %3)
  %24 = getelementptr inbounds i8, ptr %0, i64 424
  %25 = getelementptr inbounds i8, ptr %1, i64 424
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef %2, i1 noundef zeroext %3)
  %26 = getelementptr inbounds i8, ptr %0, i64 504
  %27 = getelementptr inbounds i8, ptr %1, i64 504
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %2, i1 noundef zeroext %3)
  %28 = getelementptr inbounds i8, ptr %0, i64 568
  %29 = getelementptr inbounds i8, ptr %1, i64 568
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %2, i1 noundef zeroext %3)
  %30 = getelementptr inbounds i8, ptr %0, i64 632
  %31 = getelementptr inbounds i8, ptr %1, i64 632
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %2, i1 noundef zeroext %3)
  %32 = getelementptr inbounds i8, ptr %0, i64 696
  %33 = getelementptr inbounds i8, ptr %1, i64 696
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %2, i1 noundef zeroext %3)
  %34 = getelementptr inbounds i8, ptr %0, i64 760
  %35 = getelementptr inbounds i8, ptr %1, i64 760
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef %2, i1 noundef zeroext %3)
  %36 = getelementptr inbounds i8, ptr %0, i64 824
  %37 = getelementptr inbounds i8, ptr %1, i64 824
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %2, i1 noundef zeroext %3)
  %38 = getelementptr inbounds i8, ptr %0, i64 888
  %39 = getelementptr inbounds i8, ptr %1, i64 888
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %2, i1 noundef zeroext %3)
  %40 = getelementptr inbounds i8, ptr %0, i64 952
  %41 = getelementptr inbounds i8, ptr %1, i64 952
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef %2, i1 noundef zeroext %3)
  %42 = getelementptr inbounds i8, ptr %0, i64 1016
  %43 = getelementptr inbounds i8, ptr %1, i64 1016
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef %2, i1 noundef zeroext %3)
  %44 = getelementptr inbounds i8, ptr %1, i64 1080
  %45 = load i64, ptr %44, align 8, !tbaa !24
  %46 = getelementptr inbounds i8, ptr %0, i64 1080
  store i64 %45, ptr %46, align 8, !tbaa !24
  %47 = getelementptr inbounds i8, ptr %0, i64 1088
  %48 = getelementptr inbounds i8, ptr %1, i64 1088
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %47, ptr noundef nonnull %48, ptr noundef %2, i1 noundef zeroext %3)
  %49 = getelementptr inbounds i8, ptr %1, i64 1152
  %50 = load i64, ptr %49, align 8, !tbaa !25
  %51 = getelementptr inbounds i8, ptr %0, i64 1152
  store i64 %50, ptr %51, align 8, !tbaa !25
  %52 = getelementptr inbounds i8, ptr %1, i64 1160
  %53 = getelementptr inbounds i8, ptr %0, i64 1160
  %54 = load <2 x double>, ptr %52, align 8, !tbaa !26
  store <2 x double> %54, ptr %53, align 8, !tbaa !26
  %55 = getelementptr inbounds i8, ptr %1, i64 1176
  %56 = getelementptr inbounds i8, ptr %0, i64 1176
  %57 = load <2 x i64>, ptr %55, align 8, !tbaa !5
  store <2 x i64> %57, ptr %56, align 8, !tbaa !5
  %58 = getelementptr inbounds i8, ptr %1, i64 1192
  %59 = getelementptr inbounds i8, ptr %0, i64 1192
  %60 = load <2 x double>, ptr %58, align 8, !tbaa !26
  store <2 x double> %60, ptr %59, align 8, !tbaa !26
  %61 = getelementptr inbounds i8, ptr %1, i64 1208
  %62 = load i64, ptr %61, align 8, !tbaa !27
  %63 = getelementptr inbounds i8, ptr %0, i64 1208
  store i64 %62, ptr %63, align 8, !tbaa !27
  %64 = getelementptr inbounds i8, ptr %1, i64 1216
  %65 = getelementptr inbounds i8, ptr %0, i64 1216
  %66 = load <2 x double>, ptr %64, align 8, !tbaa !26
  store <2 x double> %66, ptr %65, align 8, !tbaa !26
  %67 = getelementptr inbounds i8, ptr %1, i64 1232
  %68 = getelementptr inbounds i8, ptr %0, i64 1232
  %69 = load <2 x double>, ptr %67, align 8, !tbaa !26
  store <2 x double> %69, ptr %68, align 8, !tbaa !26
  %70 = getelementptr inbounds i8, ptr %1, i64 1248
  %71 = load i8, ptr %70, align 8, !tbaa !28, !range !22, !noundef !23
  %72 = getelementptr inbounds i8, ptr %0, i64 1248
  store i8 %71, ptr %72, align 8, !tbaa !28
  %73 = getelementptr inbounds i8, ptr %1, i64 1256
  %74 = load i64, ptr %73, align 8, !tbaa !29
  %75 = getelementptr inbounds i8, ptr %0, i64 1256
  store i64 %74, ptr %75, align 8, !tbaa !29
  %76 = getelementptr inbounds i8, ptr %1, i64 1264
  %77 = getelementptr inbounds i8, ptr %0, i64 1264
  %78 = load <2 x double>, ptr %76, align 8, !tbaa !26
  store <2 x double> %78, ptr %77, align 8, !tbaa !26
  %79 = getelementptr inbounds i8, ptr %1, i64 1280
  %80 = load i8, ptr %79, align 8, !tbaa !30, !range !22, !noundef !23
  %81 = getelementptr inbounds i8, ptr %0, i64 1280
  store i8 %80, ptr %81, align 8, !tbaa !30
  %82 = getelementptr inbounds i8, ptr %1, i64 1288
  %83 = getelementptr inbounds i8, ptr %0, i64 1288
  %84 = load <2 x double>, ptr %82, align 8, !tbaa !26
  store <2 x double> %84, ptr %83, align 8, !tbaa !26
  %85 = getelementptr inbounds i8, ptr %1, i64 1304
  %86 = load double, ptr %85, align 8, !tbaa !31
  %87 = getelementptr inbounds i8, ptr %0, i64 1304
  store double %86, ptr %87, align 8, !tbaa !31
  %88 = getelementptr inbounds i8, ptr %1, i64 1312
  %89 = load i64, ptr %88, align 8, !tbaa !32
  %90 = getelementptr inbounds i8, ptr %0, i64 1312
  store i64 %89, ptr %90, align 8, !tbaa !32
  %91 = getelementptr inbounds i8, ptr %0, i64 1320
  %92 = getelementptr inbounds i8, ptr %1, i64 1320
  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 1384
  %94 = load double, ptr %93, align 8, !tbaa !33
  %95 = getelementptr inbounds i8, ptr %0, i64 1384
  store double %94, ptr %95, align 8, !tbaa !33
  %96 = getelementptr inbounds i8, ptr %1, i64 1392
  %97 = load i64, ptr %96, align 8, !tbaa !34
  %98 = getelementptr inbounds i8, ptr %0, i64 1392
  store i64 %97, ptr %98, align 8, !tbaa !34
  %99 = getelementptr inbounds i8, ptr %0, i64 1400
  %100 = getelementptr inbounds i8, ptr %1, i64 1400
  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 %0, i64 1464
  %102 = getelementptr inbounds i8, ptr %1, i64 1464
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %101, ptr noundef nonnull %102, ptr noundef %2, i1 noundef zeroext %3)
  %103 = getelementptr inbounds i8, ptr %0, i64 1528
  %104 = getelementptr inbounds i8, ptr %1, i64 1528
  tail call void @_ZN11alglib_impl21_rcommstate_init_copyEPNS_10rcommstateEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %103, ptr noundef nonnull %104, ptr noundef %2, i1 noundef zeroext %3)
  %105 = getelementptr inbounds i8, ptr %0, i64 1792
  %106 = getelementptr inbounds i8, ptr %1, i64 1792
  tail call void @_ZN11alglib_impl21_hqrndstate_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %105, ptr noundef nonnull %106, ptr noundef %2, i1 noundef zeroext %3)
  %107 = getelementptr inbounds i8, ptr %0, i64 1816
  %108 = getelementptr inbounds i8, ptr %1, i64 1816
  tail call void @_ZN11alglib_impl26_gdemopopulation_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %107, ptr noundef nonnull %108, ptr noundef %2, i1 noundef zeroext %3)
  %109 = getelementptr inbounds i8, ptr %0, i64 2208
  %110 = getelementptr inbounds i8, ptr %1, i64 2208
  tail call void @_ZN11alglib_impl26_gdemopopulation_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %109, ptr noundef nonnull %110, ptr noundef %2, i1 noundef zeroext %3)
  %111 = getelementptr inbounds i8, ptr %0, i64 2600
  %112 = getelementptr inbounds i8, ptr %1, i64 2600
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %111, ptr noundef nonnull %112, ptr noundef %2, i1 noundef zeroext %3)
  %113 = getelementptr inbounds i8, ptr %1, i64 2680
  %114 = getelementptr inbounds i8, ptr %0, i64 2680
  %115 = load <2 x i64>, ptr %113, align 8, !tbaa !5
  store <2 x i64> %115, ptr %114, align 8, !tbaa !5
  %116 = getelementptr inbounds i8, ptr %1, i64 2696
  %117 = load i64, ptr %116, align 8, !tbaa !35
  %118 = getelementptr inbounds i8, ptr %0, i64 2696
  store i64 %117, ptr %118, align 8, !tbaa !35
  %119 = getelementptr inbounds i8, ptr %0, i64 2704
  %120 = getelementptr inbounds i8, ptr %1, i64 2704
  tail call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %119, ptr noundef nonnull %120, ptr noundef %2, i1 noundef zeroext %3)
  %121 = getelementptr inbounds i8, ptr %0, i64 2784
  %122 = getelementptr inbounds i8, ptr %1, i64 2784
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %121, ptr noundef nonnull %122, ptr noundef %2, i1 noundef zeroext %3)
  %123 = getelementptr inbounds i8, ptr %1, i64 2848
  %124 = getelementptr inbounds i8, ptr %0, i64 2848
  %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 2864
  %127 = load double, ptr %126, align 8, !tbaa !36
  %128 = getelementptr inbounds i8, ptr %0, i64 2864
  store double %127, ptr %128, align 8, !tbaa !36
  %129 = getelementptr inbounds i8, ptr %1, i64 2872
  %130 = load i64, ptr %129, align 8, !tbaa !37
  %131 = getelementptr inbounds i8, ptr %0, i64 2872
  store i64 %130, ptr %131, align 8, !tbaa !37
  %132 = getelementptr inbounds i8, ptr %1, i64 2880
  %133 = load double, ptr %132, align 8, !tbaa !38
  %134 = getelementptr inbounds i8, ptr %0, i64 2880
  store double %133, ptr %134, align 8, !tbaa !38
  %135 = getelementptr inbounds i8, ptr %1, i64 2888
  %136 = load i64, ptr %135, align 8, !tbaa !39
  %137 = getelementptr inbounds i8, ptr %0, i64 2888
  store i64 %136, ptr %137, align 8, !tbaa !39
  %138 = getelementptr inbounds i8, ptr %0, i64 2896
  %139 = getelementptr inbounds i8, ptr %1, i64 2896
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %138, ptr noundef nonnull %139, ptr noundef %2, i1 noundef zeroext %3)
  %140 = getelementptr inbounds i8, ptr %0, i64 2960
  %141 = getelementptr inbounds i8, ptr %1, i64 2960
  tail call void @_ZN11alglib_impl23_sparsematrix_init_copyEPvPKvPNS_8ae_stateEb(ptr noundef nonnull %140, ptr noundef nonnull %141, ptr noundef %2, i1 noundef zeroext %3)
  %142 = getelementptr inbounds i8, ptr %0, i64 3328
  %143 = getelementptr inbounds i8, ptr %1, i64 3328
  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 3392
  %145 = getelementptr inbounds i8, ptr %1, i64 3392
  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 3456
  %147 = getelementptr inbounds i8, ptr %1, i64 3456
  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 3520
  %149 = getelementptr inbounds i8, ptr %1, i64 3520
  tail call void @_ZN11alglib_impl19ae_vector_init_copyEPNS_9ae_vectorEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %148, ptr noundef nonnull %149, ptr noundef %2, i1 noundef zeroext %3)
  ret void
}

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!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, !12, i64 96}
!10 = !{!"_ZTSN11alglib_impl10gdemostateE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !11, i64 32, !12, i64 96, !11, i64 104, !11, i64 168, !11, i64 232, !11, i64 296, !11, i64 360, !15, i64 424, !11, i64 504, !11, i64 568, !11, i64 632, !11, i64 696, !11, i64 760, !11, i64 824, !11, i64 888, !11, i64 952, !11, i64 1016, !6, i64 1080, !11, i64 1088, !6, i64 1152, !16, i64 1160, !16, i64 1168, !6, i64 1176, !6, i64 1184, !16, i64 1192, !16, i64 1200, !6, i64 1208, !16, i64 1216, !16, i64 1224, !16, i64 1232, !16, i64 1240, !12, i64 1248, !6, i64 1256, !16, i64 1264, !16, i64 1272, !12, i64 1280, !16, i64 1288, !16, i64 1296, !16, i64 1304, !6, i64 1312, !11, i64 1320, !16, i64 1384, !6, i64 1392, !11, i64 1400, !11, i64 1464, !17, i64 1528, !19, i64 1792, !20, i64 1816, !20, i64 2208, !15, i64 2600, !6, i64 2680, !6, i64 2688, !6, i64 2696, !15, i64 2704, !11, i64 2784, !6, i64 2848, !6, i64 2856, !16, i64 2864, !6, i64 2872, !16, i64 2880, !6, i64 2888, !11, i64 2896, !21, i64 2960, !11, i64 3328, !11, i64 3392, !11, i64 3456, !11, i64 3520}
!11 = !{!"_ZTSN11alglib_impl9ae_vectorE", !6, i64 0, !6, i64 8, !12, i64 16, !13, i64 24, !7, i64 56}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!14 = !{!"any pointer", !7, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_matrixE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !12, i64 32, !13, i64 40, !7, i64 72}
!16 = !{!"double", !7, i64 0}
!17 = !{!"_ZTSN11alglib_impl10rcommstateE", !18, i64 0, !11, i64 8, !11, i64 72, !11, i64 136, !11, i64 200}
!18 = !{!"int", !7, i64 0}
!19 = !{!"_ZTSN11alglib_impl10hqrndstateE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSN11alglib_impl15gdemopopulationE", !6, i64 0, !15, i64 8, !15, i64 88, !15, i64 168, !15, i64 248, !11, i64 328}
!21 = !{!"_ZTSN11alglib_impl12sparsematrixE", !11, i64 0, !11, i64 64, !11, i64 128, !11, i64 192, !11, i64 256, !6, i64 320, !6, i64 328, !6, i64 336, !6, i64 344, !6, i64 352, !6, i64 360}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!10, !6, i64 1080}
!25 = !{!10, !6, i64 1152}
!26 = !{!16, !16, i64 0}
!27 = !{!10, !6, i64 1208}
!28 = !{!10, !12, i64 1248}
!29 = !{!10, !6, i64 1256}
!30 = !{!10, !12, i64 1280}
!31 = !{!10, !16, i64 1304}
!32 = !{!10, !6, i64 1312}
!33 = !{!10, !16, i64 1384}
!34 = !{!10, !6, i64 1392}
!35 = !{!10, !6, i64 2696}
!36 = !{!10, !16, i64 2864}
!37 = !{!10, !6, i64 2872}
!38 = !{!10, !16, i64 2880}
!39 = !{!10, !6, i64 2888}


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